// /** @file GWP2PClient+Defense.h @brief 处理布撤防和预置位的分类 */ // P2PSDK // // Created by apple on 17/3/2. // Copyright © 2017年 gwell. All rights reserved. // #import "GWP2PClient.h" /** 操作预置位方式 */ typedef enum GWPresetPositionOperationType { GWPresetPositionOperationTypeTurnTo,/**< 转向某预置位 */ GWPresetPositionOperationTypeSet,/**< 在当前设备摄像头角度下增加给定索引的预置位,若给定索引设置过预置位,则覆盖原信息 */ GWPresetPositionOperationTypeQuery,/**< 查看所有预置位信息 */ GWPresetPositionOperationTypeDelete,/**< 删除某索引的预置位 */ } GWPresetPositionOperationType; /** @brief 定时布防模型,一个 GWSheduleDefencesModel 对象对应一条定时布防数据 */ @interface GWSheduleDefencesModel : NSObject @property (nonatomic, assign) BOOL on; /**< 此定时布防是否打开 */ @property (nonatomic, assign) NSUInteger index; /**< 此布防在设备的位置,一个设备最多五组布防 */ @property (nonatomic, assign) NSUInteger startTime_Hour; /**< 开始于多少小时 */ @property (nonatomic, assign) NSUInteger startTime_Minute; /**< 开始于多少分 */ @property (nonatomic, assign) NSUInteger endTime_Hour; /**< 结束于多少小时 */ @property (nonatomic, assign) NSUInteger endTime_Minute; /**< 结束于多少分 */ //每天的开关状态 @property (nonatomic, assign) BOOL mondayOn; /**< 周一是否打开 */ @property (nonatomic, assign) BOOL tuesdayOn; /**< 周二是否打开 */ @property (nonatomic, assign) BOOL wednesdayOn; /**< 周三是否打开 */ @property (nonatomic, assign) BOOL thursdayOn; /**< 周四是否打开 */ @property (nonatomic, assign) BOOL fridayOn; /**< 周五是否打开 */ @property (nonatomic, assign) BOOL saturdayOn; /**< 周六是否打开 */ @property (nonatomic, assign) BOOL sundayOn; /**< 周日是否打开 */ @end /** @brief 处理布撤防和预置位的分类 */ @interface GWP2PClient (Defense) #pragma mark - 普通布撤防操作 /** 设置设备布防状态 普通布防只是布防与不布防的操作,定时布防有很多数据,参见 GWSheduleDefencesModel @param defenceStateOn 布防的开关状态 @param deviceID 设备ID @param devicePassword 设备密码 @param completionBlock 与设备交互完成后的回调Block */ - (void)setDeviceDefenceState:(BOOL)defenceStateOn withDeviceID:(NSString *)deviceID devicePassword:(NSString *)devicePassword completionBlock:(CompletionBlock)completionBlock; #pragma mark - 定时布防操作 /** 获取设备定时布撤防数据:返回的字典中 @"schedule defences" 键对应一个 包含 GWSheduleDefencesModel 的数组 这个接口可判断设备是否支持定时布防,设置接口判断不了 @param deviceID 设备ID @param devicePassword 设备密码 @param completionBlock 与设备交互完成后的回调Block */ - (void)getDeviceSheduleDefenceDataWithDeviceID:(NSString *)deviceID devicePassword:(NSString *)devicePassword completionBlock:(CompletionBlock)completionBlock; /** 设置设备定时布撤防:每一次设置都会覆盖原来的布防记录,且index自动从0开始排 若接口调用不成功,请先调获取定时布防数据接口判断设备是否支持,如果设备不支持,只会返回连接失败 @param deviceID 设备ID @param devicePassword 设备密码 @param completionBlock 与设备交互完成后的回调Block */ - (void)setDeviceSheduleDefenceData:(NSArray *)sheduleDefencesArray withDeviceID:(NSString *)deviceID devicePassword:(NSString *)devicePassword completionBlock:(CompletionBlock)completionBlock; #pragma mark 预置位操作 /** 操作设备预置位 功能介绍:摇头机转动位置,可以让用户设置几个特定的点,记住摇头机的位置(如门、窗或者其他位置),设置好之后,发转向预置位指令,摇头机将转动到记住的位置 获取时completionBlock返回信息 : @"preset position indexes" 键对应一个保存已有预置位索引值的数组 NSMutableArray * indexesArray传值: 查看时indexesArray传nil或空数组。 转向某预置位时传一个元素,传多个取第一个,传nil或空数组取索引值为0的预置位。 添加预置位时传一个元素,一次只能添加一个预置位,传多个取第一个元素,传nil或空数组取索引值为0的预置位。 删除时传一个或多个元素,一次能删除多个预置位。不能传空数组或nil @param operationType GWPresetPositionOperationType枚举值 @param indexesArray 保存预置位索引值的数组:索引值范围为0-4,一个设备最多5个预置位,索引值不能重复如@[@(0), @(3)]。 @param deviceID 设备ID @param devicePassword 设备密码 @param completionBlock 与设备交互完成后的回调Block */ - (void)operateDevicePresetPositionWithOperationType:(GWPresetPositionOperationType)operationType presetPositionIndexArray:(NSArray *)indexesArray deviceID:(NSString *)deviceID devicePassword:(NSString *)devicePassword completionBlock:(CompletionBlock)completionBlock; @end