| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 |
- //
- // DeviceControl.m
- // FunSDKDemo
- //
- // Created by XM on 2018/5/10.
- // Copyright © 2018年 XM. All rights reserved.
- //
- #import "DeviceControl.h"
- #import "DevicelistArchiveModel.h"
- @interface DeviceControl ()
- {
- NSMutableArray *deviceArray; //包含所有设备的数组
- NSMutableArray *channelPlayingArray; //即将播放的设备通道数组
- NSInteger selectChannel; //当前预览通道数组中,正在处理的通道索引(多通道预览时生效,目前只添加了一个通道进行预览,所以默认0不需要设置)
- }
- @end
- @implementation DeviceControl
- + (instancetype)getInstance {
- static DeviceControl *Manager;
- static dispatch_once_t onceToken;
- dispatch_once(&onceToken, ^{
- Manager = [[DeviceControl alloc]init];
- });
- return Manager;
- }
- - (id)init {
- self = [super init];
- deviceArray = [[NSMutableArray alloc] initWithCapacity:0];
- channelPlayingArray = [[NSMutableArray alloc] initWithCapacity:0];
- [DevicelistArchiveModel sharedDeviceListArchiveModel];
- return self;
- }
- #pragma mark 清空所有缓存的设备
- - (void)clearDeviceArray {
- [deviceArray removeAllObjects];
- }
- #pragma mark 添加设备
- - (void)addDevice:(DeviceObject*)devObject {
- [deviceArray addObject:devObject];
- }
- #pragma mark 获取所有设备
- - (NSMutableArray*)currentDeviceArray {
- return deviceArray;
- }
- #pragma mark - 将要预览的设备通道数组处理
- - (void)setSelectChannel:(ChannelObject *)channel {
- [channelPlayingArray removeAllObjects];
- [channelPlayingArray addObject:channel];
- }
- - (NSMutableArray *)getSelectChannelArray {
- return [channelPlayingArray mutableCopy];
- }
- - (void)cleanSelectChannel {
- [channelPlayingArray removeAllObjects];
- }
- #pragma mark - 设置当前正要处理的通道,比如抓图录像中的通道,设备配置中的通道等
- - (void)setSelectChannelIndex:(NSInteger)selectChannel {
- selectChannel = selectChannel;
- }
- - (NSInteger)getSelectChannelIndex {
- return selectChannel;
- }
- - (ChannelObject*)getSelectChannel {
- return [channelPlayingArray objectAtIndex:selectChannel];
- }
- #pragma mark - 保存设备到本地存储 (设备数据发成变动时,重新存储)
- - (void)saveDeviceList {
- [[DevicelistArchiveModel sharedDeviceListArchiveModel] saveDevicelist:[deviceArray mutableCopy]];
- }
- #pragma mark 通过序列号获取deviceObject对象
- - (DeviceObject *)GetDeviceObjectBySN:(NSString *)devSN {
- if (deviceArray == nil || devSN == nil) {
- return nil;
- }
- for (int i = 0; i < deviceArray.count; i ++) {
- DeviceObject *devObject = [deviceArray objectAtIndex:i];
- if (devObject == nil) {
- continue;
- }
- if ([devObject.deviceMac isEqualToString:devSN]) {
- return devObject;
- }
- }
- return nil;
- }
- #pragma mark 获取channelObject对象
- - (ChannelObject*)addName:(NSString*)channelName ToDeviceObject:(DeviceObject*)devObject {
- ChannelObject *object = [[ChannelObject alloc] init];
- object.channelName = channelName;
- object.deviceMac = devObject.deviceMac;
- object.loginName = devObject.loginName;
- object.loginPsw = devObject.loginPsw;
- return object;
- }
- #pragma mark 设备列表比较 (获取设备列表成功之后,服务器获取到的设备和本地缓存的设备比较)
- - (void)checkDeviceValid {
- //传递一下数组
- [[DevicelistArchiveModel sharedDeviceListArchiveModel] setReceivedSeviceArray:deviceArray];
- //返回对比之后的设备列表数组
- NSMutableArray *array = [[DevicelistArchiveModel sharedDeviceListArchiveModel] devicelistCompare];
- if (array && array.count >0) {
- deviceArray = [array mutableCopy];
- }
- }
- @end
|