582 lines
28 KiB
Objective-C
582 lines
28 KiB
Objective-C
//
|
||
/** @file GWP2PClient+Sensor.h @brief 处理传感器的分类 */
|
||
// P2PSDK
|
||
//
|
||
// Created by apple on 17/3/13.
|
||
// Copyright © 2017年 gwell. All rights reserved.
|
||
//
|
||
|
||
|
||
|
||
|
||
#import "GWP2PClient.h"
|
||
|
||
|
||
#pragma mark - 串口透传数据类型
|
||
|
||
#pragma pack(1) //告诉编译器,后面的数据类型以1(括号内参数)个字节的方式对齐
|
||
/**
|
||
@brief 串口透传App采用IPC1的方式,串口设备收到的数据结构
|
||
*/
|
||
struct sUserDefineMesg {
|
||
unsigned char UserCmdType;// 第1个字节 命令标识,串口透传为 31
|
||
unsigned int RemotePhoneID; // 第2~5共4个字节 存储远程手机端ID:把Yoosee上看到的数据账号,转化为4个字节(32位)的二进制数据,把二进制的最高位(第32位)由0转为1,得到的数据就是实际传送到设备的数据.而串口工具显示还要按字节倒一下顺序,将得到的新的32位的二进制数据,分成4个8位的二进制数据,显示时用16进制,最后把4个数的顺序倒过来显示.
|
||
unsigned char cDataLength; // 第6个字节 最大值为251 sendData数据的字节数
|
||
char *sendData; // 从第6个字节开始,最多251个字节
|
||
};
|
||
#pragma pack() //结束自定义对齐,采用默认的对齐方式.iOS情况下,是位宽为8字节,结构体对齐方式为按4字节对齐。
|
||
|
||
/**
|
||
串口透传发送模式,App发送串口透传信息,数据前要以字符串“IPC1”或“IPC2”开头,所以分两种发送模式,详情请查阅技威硬件的"串口通信操作说明"
|
||
*/
|
||
typedef NS_ENUM(NSUInteger, GWSerialTransmissionSendingMode) {
|
||
|
||
/**
|
||
串口透传,数据结构前带有"IPC1"的字符串,
|
||
IPC设备会把消息类型(31),发送者账号ID,二进制数据的字节大小,二进制数据推送给串口设备,串口设备收到的数据结构具体格式参见结构体 sUserDefineMesg
|
||
*/
|
||
GWSerialTransmissionSendingModeIPC1,
|
||
|
||
/**
|
||
串口透传,数据结构前带有"IPC2"的字符串,
|
||
IPC设备只把二进制数据推送给串口设备
|
||
*/
|
||
GWSerialTransmissionSendingModeIPC2,
|
||
|
||
/**
|
||
串口透传,数据中不带"IPC1"或"IPC2",由用户自己定义数据,满足一些特殊的客户需求
|
||
*/
|
||
GWSerialTransmissionSendingModeOther,
|
||
};
|
||
|
||
#pragma mark - 情景模式设备数据模型
|
||
/**
|
||
@brief 情景模式设备传感器唯一标识,由三个值标记,硬件规范。特殊传感器(移动侦测和攻防)不需要标识.
|
||
*/
|
||
typedef struct GWSceneModeDeviceSensorIdentify {
|
||
NSUInteger data0;
|
||
NSUInteger data1;
|
||
NSUInteger data2;
|
||
} GWSceneModeDeviceSensorIdentify;
|
||
|
||
|
||
/**
|
||
特殊传感器类型
|
||
*/
|
||
typedef NS_ENUM(NSUInteger, GWSceneModeDeviceSpecialSensorType) {
|
||
GWSceneModeDeviceSpecialSensorTypeMotionDetect, /**< 0 移动侦测 */
|
||
GWSceneModeDeviceSpecialSensorTypeAttack, /**< 1 防攻击 */
|
||
|
||
GWSceneModeDeviceSpecialSensorTypeMAX = 8, //
|
||
};
|
||
|
||
/**
|
||
普通传感器及遥控
|
||
*/
|
||
typedef NS_ENUM(NSUInteger, GWSceneModeDeviceCommonSensorType) {
|
||
//传感器对应的UI (有无开关,有无情景模式)
|
||
GWSceneModeDeviceCommonSensorTypeRemoteController, /**< 0 遥控器 (无, 无) */
|
||
GWSceneModeDeviceCommonSensorTypeDoorSwitch , /**< 1 门磁 (有, 有) */
|
||
GWSceneModeDeviceCommonSensorTypeSmokeTransducer, /**< 2 烟雾传感器 (有, 有) */
|
||
GWSceneModeDeviceCommonSensorTypeGasSensor , /**< 3 瓦斯探测传感器 (有, 有) */
|
||
GWSceneModeDeviceCommonSensorTypeLight, /**< 4 电灯 (有, 无) */
|
||
GWSceneModeDeviceCommonSensorTypeCurtain, /**< 5 窗帘 (有, 无) */
|
||
GWSceneModeDeviceCommonSensorTypeScocket, /**< 6 插座 (有, 无) */
|
||
GWSceneModeDeviceCommonSensorTypePIR, /**< 7 人体红外 (有, 有) */
|
||
GWSceneModeDeviceCommonSensorTypeWaterInvade, /**< 8 水浸 (有, 有) */
|
||
GWSceneModeDeviceCommonSensorTypeUrgency, /**< 9 急救 (有, 有) */
|
||
GWSceneModeDeviceCommonSensorTypeWarningSpeaker, /**< 10 警号 (有, 无) */
|
||
GWSceneModeDeviceCommonSensorTypeAirConditioner /**< 11 空调传感器 (有, 无) */
|
||
};
|
||
|
||
|
||
/**
|
||
情景模式设备传感器类型
|
||
|
||
1 特殊传感器 :移动侦测、防攻击
|
||
|
||
0 普通传感器和遥控器 普通传感器类型有:1为门磁;2为烟雾;3为瓦斯;4为电灯;5为窗帘;7为插座;等等...
|
||
*/
|
||
typedef enum GWSceneModeDeviceSensorMainType{
|
||
GWSceneModeDeviceSensorTypeCommonSensorOrRemoteController, /**< 0 普通传感器及遥控 */
|
||
GWSceneModeDeviceSensorTypeSpecialSensor, /**< 1 特殊传感器 */
|
||
} GWSceneModeDeviceSensorMainType;
|
||
|
||
/**
|
||
@brief 情景模式设备传感器类型,硬件规范,用两个值来标识类型
|
||
*/
|
||
typedef struct GWSceneModeDeviceSensorType {
|
||
GWSceneModeDeviceSensorMainType type; /**< 特殊传感器、普通传感器或遥控器 */
|
||
NSUInteger subType;/**< 根据type的不同,表示不同的传感器 */
|
||
} GWSceneModeDeviceSensorType;
|
||
|
||
|
||
|
||
/**
|
||
情景模式设备 类型插座的传感器的操作类型
|
||
*/
|
||
typedef enum GWSensorLikeSocketOperationType {
|
||
GWSensorLikeSocketOperationTypeQuery = 1,//情景模式设备, 查询 类似插座传感器的开关状态
|
||
GWSensorLikeSocketOperationTypeOpen,//情景模式设备, 打开 类似插座传感器的开关
|
||
GWSensorLikeSocketOperationTypeClose,//情景模式设备, 关闭 类似插座传感器的开关
|
||
GWSensorLikeSocketOperationTypeHalfOpen,//情景模式设备, 使类型插座传感器的开关处于 半开 状态
|
||
} GWSensorLikeSocketOperationType;
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
/** @brief 情景模式设备 各种传感器类型值及功能情况
|
||
|
||
名称 type subType 有无开关 有无情景模式 有无传感器唯一标识 是否支持名字
|
||
|
||
移动侦测 1 0 有 有 无 否 特殊传感器
|
||
|
||
防攻击 1 1 有 有 无 否 特殊传感器
|
||
|
||
遥控器 0 0 无 无 有 是 下面都是普通传感器或遥控器
|
||
|
||
门磁 0 1 有 有 有 是
|
||
|
||
烟雾传感器 0 2 有 有 有 是
|
||
|
||
瓦斯探测传感器 0 3 有 有 有 是
|
||
|
||
电灯 0 4 有 无 有 是
|
||
|
||
窗帘 0 5 有 无 有 是
|
||
|
||
插座 0 6 有 无 有 是
|
||
|
||
人体红外 0 7 有 有 有 是
|
||
|
||
水浸 0 8 有 有 有 是
|
||
|
||
急救 0 9 有 有 有 是
|
||
|
||
警号 0 10 有 无 有 是
|
||
|
||
空调传感器 0 11 有 无 有 是
|
||
*/
|
||
@interface GWSceneModeDeviceSensorModel : NSObject
|
||
|
||
//2个值唯一标识某个传感器 硬件规范
|
||
@property (nonatomic, assign) GWSceneModeDeviceSensorType sensorType;/**< 传感器类型。从硬件获取到,操作传感器时用,不要更改 */
|
||
//3个值唯一标识某个传感器 硬件规范
|
||
@property (nonatomic, assign) GWSceneModeDeviceSensorIdentify identify;/**< 传感器唯一标识,特殊传感器(移动侦测、攻防)不用标识。从硬件获取到,操作传感器时用,不要更改。 */
|
||
|
||
@property (nonatomic, assign) NSUInteger bindedPresetPositionIndex;/**< 绑定的预置位索引 */
|
||
|
||
//在家模式
|
||
@property (nonatomic, assign) BOOL enableAtHome;/**< 在家模式是否开启 */
|
||
@property (nonatomic, assign) BOOL enablePushAtHome;/**< 在家模式推送是否开启 */
|
||
@property (nonatomic, assign) BOOL enableSnapshotAtHome;/**< 在家模式快照是否开启 */
|
||
@property (nonatomic, assign) BOOL enableRecordAtHome;/**< 在家模式录像是否开启 */
|
||
@property (nonatomic, assign) NSUInteger warningToneAtHome;/**< 在家模式的报警声音类型 */
|
||
|
||
//外出模式
|
||
@property (nonatomic, assign) BOOL enableGoOut;/**< 外出模式是否开启 */
|
||
@property (nonatomic, assign) BOOL enablePushGoOut;/**< 外出模式推送是否开启 */
|
||
@property (nonatomic, assign) BOOL enableSnapshotGoOut;/**< 外出模式快照是否开启 */
|
||
@property (nonatomic, assign) BOOL enableRecordGoOut;/**< 外出模式录像是否开启 */
|
||
@property (nonatomic, assign) NSInteger warningToneGoOut;/**< 外出模式的报警声音类型 */
|
||
|
||
//睡眠模式
|
||
@property (nonatomic, assign) BOOL enableSleep;/**< 睡眠模式是否开启 */
|
||
@property (nonatomic, assign) BOOL enablePushSleep;/**< 睡眠模式推送是否开启 */
|
||
@property (nonatomic, assign) BOOL enableSnapshotSleep;/**< 睡眠模式快照是否开启 */
|
||
@property (nonatomic, assign) BOOL enableRecordSleep;/**< 睡眠模式录像是否开启 */
|
||
@property (nonatomic, assign) NSUInteger warningToneSleep;/**< 睡眠模式的报警声音类型 */
|
||
|
||
@property (nonatomic, copy) NSString *name;/**< 传感器名字 */
|
||
@property (nonatomic, assign) BOOL nameHasBeChanged;/**< 名字是否被改过 */
|
||
|
||
@property (nonatomic, assign) int bLampStatu;/**< 开关状态 */
|
||
|
||
@end
|
||
|
||
|
||
|
||
|
||
#pragma mark - GWP2PClient
|
||
/**
|
||
@brief 处理传感器的分类
|
||
|
||
传感器接口分情景模式和非情景模式两种,调用接口时要先调[GWP2PClient getMultipleDeviceStatusWithDeviceID:password:completionBlock:]获取设备子类型,然后和 GWP2PDeviceIPCSubtype 子类型枚举值进行比较,注释里面支持情景模式的设备类型,请调用情景模式设备传感器接口操作传感器,不支持的请调用普通传感器接口操作传感器
|
||
*/
|
||
@interface GWP2PClient (Sensor)
|
||
|
||
#pragma mark - 普通设备传感器
|
||
/**
|
||
获取设备已连接的传感器及遥控器
|
||
|
||
completionBlock返回字典中:
|
||
|
||
@"sensors" 键对应一个数组(NSMutableArray<NSDictionary *> *),数组中一个字典对应一个设备连接的传感器
|
||
|
||
传感器的字典中,index 键对应的值为传感器连接设备的防区位置,0-7为遥控器,8-63为普通传感器,64-71为特殊传感器,操作传感器时用做标识, description 键对应的值为字符串描述的传感器类型
|
||
|
||
@param deviceID 设备ID
|
||
@param devicePassword 设备密码
|
||
@param completionBlock 与设备交互完成后的回调Block
|
||
*/
|
||
- (void)getDeviceConnectedSensorsWithDeviceID:(NSString *)deviceID
|
||
devicePassword:(NSString *)devicePassword
|
||
completionBlock:(CompletionBlock)completionBlock;
|
||
|
||
/**
|
||
获取已连接传感器的开关状态(遥控器不支持)
|
||
|
||
completionBlock返回字典中:
|
||
|
||
@"swithches status" 键对应一个数组(NSMutableArray<NSDictionary *> *),数组中的字典个数与传入sensorIndexesArray的NSNumber个数对应,且index相同,字典中 on 键对应的值为BOOL封装的NSNumber类型,表示index下的传感器有没有打开
|
||
|
||
@param sensorIndexesArray 传感器的索引数组,索引范围为8-71(遥控器没有开关状态),不要重复,若所传的索引未添加传感器,获取到的开关状态会为YES
|
||
@param deviceID 设备ID
|
||
@param devicePassword 设备密码
|
||
@param completionBlock 与设备交互完成后的回调Block
|
||
*/
|
||
- (void)getDeviceSwitchStateOfConnectedSensorsWithSensorIndexes:(NSArray<NSNumber *> *)sensorIndexesArray
|
||
deviceID:(NSString *)deviceID
|
||
devicePassword:(NSString *)devicePassword
|
||
completionBlock:(CompletionBlock)completionBlock;
|
||
|
||
/**
|
||
获取传感器绑定的预置位(报警时转向预置位)(遥控器不支持)
|
||
|
||
获取前先调 getMultipledeviceStatusWithDeviceID:password:completionBlock: 获取设备是否支持预置位功能(返回字典中没有支持预置位键 preset position suppurted 就是不支持),支持才获取
|
||
|
||
completionBlock返回字典中:
|
||
|
||
@"sensor index" 键对应的值为传感器索引
|
||
|
||
@"preset position index" 键对应绑定的预置位索引值(0-4),255 表示未绑定预置位
|
||
|
||
@"alarm type" 暂时不用
|
||
|
||
@param sensorIndex 传感器的索引值,绑定预置位只支持索引值范围为8-15(普通传感器)、64-71(特殊传感器),其它的不支持
|
||
@param deviceID 设备ID
|
||
@param devicePassword 设备密码
|
||
@param completionBlock 与设备交互完成后的回调Block
|
||
*/
|
||
- (void)getDevicePresetPositionBindedByConnectedSensorWithSensorIndex:(NSUInteger)sensorIndex
|
||
deviceID:(NSString *)deviceID
|
||
devicePassword:(NSString *)devicePassword
|
||
completionBlock:(CompletionBlock)completionBlock;
|
||
|
||
/**
|
||
让传感器绑定预置位(报警时转向预置位)(遥控器不支持)
|
||
|
||
设备不支持时调用无效
|
||
|
||
@param presetPositionIndex 预置位索引值
|
||
@param sensorIndex 传感器的索引值,绑定预置位只支持索引值范围为8-15(普通传感器)、64-71(特殊传感器),其它的不支持
|
||
@param deviceID 设备ID
|
||
@param devicePassword 设备密码
|
||
@param completionBlock 与设备交互完成后的回调Block
|
||
*/
|
||
- (void)bindPresetPosition:(NSUInteger)presetPositionIndex
|
||
withConnectedSensor:(NSUInteger)sensorIndex
|
||
deviceID:(NSString *)deviceID
|
||
devicePassword:(NSString *)devicePassword
|
||
completionBlock:(CompletionBlock)completionBlock;
|
||
|
||
/**
|
||
获取传感器的名字 (一次获取所有已连接传感器的名字)
|
||
|
||
先调用该接口,看看设备是否支持传感器名字存储,老版本设备不支持,app的名字操作在本地也要同时存储
|
||
|
||
completionBlock返回字典中:
|
||
|
||
@"sensor names" 键对应一个数组(NSMutableArray<NSDictionary *> *),数组中的每个字典对应一个传感器的索引(键为 index)和名字(键为 name)
|
||
|
||
@param deviceID 设备ID
|
||
@param devicePassword 设备密码
|
||
@param completionBlock 与设备交互完成后的回调Block
|
||
*/
|
||
- (void)getDeviceSensorNamesWithDeviceID:(NSString *)deviceID
|
||
devicePassword:(NSString *)devicePassword
|
||
completionBlock:(CompletionBlock)completionBlock;
|
||
|
||
/**
|
||
设置传感器的名字 (一次只能设置一个传感器的名字)
|
||
|
||
@param sensorName 要设置的传感器名字,长度为1-16位
|
||
@param sensorIndex 传感器索引值
|
||
@param deviceID 设备ID
|
||
@param devicePassword 设备密码
|
||
@param completionBlock 与设备交互完成后的回调Block
|
||
*/
|
||
- (void)setDeviceSensorName:(NSString *)sensorName
|
||
withSensorIndex:(NSUInteger)sensorIndex
|
||
deviceID:(NSString *)deviceID
|
||
devicePassword:(NSString *)devicePassword
|
||
completionBlock:(CompletionBlock)completionBlock;
|
||
|
||
/**
|
||
操作一个传感器或遥控器
|
||
|
||
添加传感器时,先调增加指令,再一直按传感器的发送信号按钮发出信号,设备接收到添加指令然后搜索传感器信号,搜索到传感器信号后才会连接传感器
|
||
|
||
遥控器当初设计时只是用来布防、撤防和紧急报警,遥控器的报警都是紧急报警,报警时,设备是没有传防区和通道给我们的服务器,所以服务器传到app的防区和通道是一个垃圾值,这时没有参考意义。
|
||
|
||
如果想要知道是哪个遥控器报警,请把遥控器绑定在普通传感器和特殊传感器的索引值上,当成传感器用
|
||
|
||
@param sensorIndex 传感器索引值: 0-7为遥控器,8-63为普通传感器,64-71为特殊传感器,删除时若传入索引未连接传感器,可能会返回删除成功
|
||
@param operationType 操作类型:只支持增加、删除
|
||
@param deviceID 设备ID
|
||
@param devicePassword 设备密码
|
||
@param completionBlock 与设备交互完成后的回调Block
|
||
*/
|
||
- (void)operateASensor:(NSUInteger)sensorIndex
|
||
withOperationType:(P2POperationType)operationType
|
||
deviceID:(NSString *)deviceID
|
||
devicePassword:(NSString *)devicePassword
|
||
completionBlock:(CompletionBlock)completionBlock;
|
||
|
||
/**
|
||
设置一个传感器(不包括遥控器)的开关状态
|
||
|
||
@param sensorIndex 传感器索引值: 不支持遥控器,8-63为普通传感器,64-71为特殊传感器
|
||
@param switchOn 是不是打开
|
||
@param deviceID 设备ID
|
||
@param devicePassword 设备密码
|
||
@param completionBlock 与设备交互完成后的回调Block
|
||
*/
|
||
- (void)setASensor:(NSUInteger)sensorIndex
|
||
switchState:(BOOL)switchOn
|
||
deviceID:(NSString *)deviceID
|
||
devicePassword:(NSString *)devicePassword
|
||
completionBlock:(CompletionBlock)completionBlock;
|
||
|
||
|
||
#pragma mark - 情景模式设备传感器
|
||
/**
|
||
情景模式设备 获取所有传感器信息(包括遥控器、普通传感器、特殊传感器)
|
||
|
||
completionBlock返回字典中:
|
||
|
||
@"sensors" 键对应一个 NSArray<GWSceneModeDeviceSensorModel *> * 数组
|
||
|
||
@param deviceID 设备ID
|
||
@param devicePassword 设备密码
|
||
@param completionBlock 与设备交互完成后的回调Block
|
||
*/
|
||
- (void)sceneModeDeviceGetSensorsInfomationWithDeviceID:(NSString *)deviceID
|
||
devicePassword:(NSString *)devicePassword
|
||
completionBlock:(CompletionBlock)completionBlock;
|
||
|
||
/**
|
||
情景模式设备 操作一个插座类型的传感器的开关状态
|
||
|
||
添加传感器时,先调指令,再一直按传感器的发送信号按钮发出信号,设备接收到添加指令然后搜索到传感器信号后才会连接传感器
|
||
|
||
插座类型的判断条件
|
||
|
||
sensorType.type == 0 && //主类型为普通传感器或遥控器
|
||
|
||
(sensorType.subType == GWSceneModeDeviceCommonSensorTypeScocket || //子类型为 插座
|
||
|
||
sensorType.subType == GWSceneModeDeviceCommonSensorTypeLight || //子类型为 电灯
|
||
|
||
sensorType.subType == GWSceneModeDeviceCommonSensorTypeCurtain || //子类型为 窗帘
|
||
|
||
sensorType.subType == GWSceneModeDeviceCommonSensorTypeWarningSpeaker || //子类型为 警号
|
||
|
||
sensorType.subType == GWSceneModeDeviceCommonSensorTypeAirConditioner) //子类型为 空调传感器
|
||
|
||
@param sensorIdentify 传感器标识,由设备获取
|
||
@param sensorType 传感器类型,由设备获取,类型和标识都要传对
|
||
@param operationType 操作类型,四个枚举值
|
||
@param deviceID 设备ID
|
||
@param devicePassword 设备密码
|
||
@param completionBlock 与设备交互完成后的回调Block
|
||
*/
|
||
- (void)sceneModeDeviceOperateSwitchStateOfSensorLikeSocket:(GWSceneModeDeviceSensorIdentify)sensorIdentify
|
||
withSensorType:(GWSceneModeDeviceSensorType)sensorType
|
||
operationType:(GWSensorLikeSocketOperationType)operationType
|
||
deviceID:(NSString *)deviceID
|
||
devicePassword:(NSString *)devicePassword
|
||
completionBlock:(CompletionBlock)completionBlock;
|
||
|
||
/**
|
||
情景模式设备 设置遥控器名字
|
||
|
||
@param remoteControlName 遥控器名字,16个字节,大于16个字节后的忽略
|
||
@param remoteControlIdentify 遥控器标识,由设备获取
|
||
@param deviceID 设备ID
|
||
@param devicePassword 设备密码
|
||
@param completionBlock 与设备交互完成后的回调Block
|
||
*/
|
||
- (void)sceneModeDeviceSetRemoteControlName:(NSString *)remoteControlName
|
||
withSensorIdentify:(GWSceneModeDeviceSensorIdentify)remoteControlIdentify
|
||
deviceID:(NSString *)deviceID
|
||
devicePassword:(NSString *)devicePassword
|
||
completionBlock:(CompletionBlock)completionBlock;
|
||
|
||
/**
|
||
情景模式设备 设置传感器名字
|
||
|
||
@param sensorName 遥控器名字,16个字节,大于16个字节后的忽略,设为空时传 @""
|
||
@param sensorIdentify 传感器标识,由设备获取
|
||
@param sensorType 传感器类型,由设备获取,类型和标识都要传对
|
||
@param deviceID 设备ID
|
||
@param devicePassword 设备密码
|
||
@param completionBlock 与设备交互完成后的回调Block
|
||
*/
|
||
- (void)sceneModeDeviceSetSensorName:(NSString *)sensorName
|
||
withSensorIdentify:(GWSceneModeDeviceSensorIdentify)sensorIdentify
|
||
sensorType:(GWSceneModeDeviceSensorType)sensorType
|
||
deviceID:(NSString *)deviceID
|
||
devicePassword:(NSString *)devicePassword
|
||
completionBlock:(CompletionBlock)completionBlock;
|
||
|
||
/**
|
||
情景模式设备 删除一个遥控器
|
||
|
||
@param remoteControlIdentify 遥控器标识,由设备获取
|
||
@param deviceID 设备ID
|
||
@param devicePassword 设备密码
|
||
@param completionBlock 与设备交互完成后的回调Block
|
||
*/
|
||
- (void)sceneModeDeviceRemoveARemoteControl:(GWSceneModeDeviceSensorIdentify)remoteControlIdentify
|
||
deviceID:(NSString *)deviceID
|
||
devicePassword:(NSString *)devicePassword
|
||
completionBlock:(CompletionBlock)completionBlock;
|
||
|
||
/**
|
||
情景模式设备 删除一个传感器
|
||
|
||
@param sensorType 传感器类型,由设备获取
|
||
@param sensorIdentify 传感器标识,由设备获取,类型和标识都要传对
|
||
@param deviceID 设备ID
|
||
@param devicePassword 设备密码
|
||
@param completionBlock 与设备交互完成后的回调Block
|
||
*/
|
||
- (void)sceneModeDeviceRemoveASensor:(GWSceneModeDeviceSensorIdentify)sensorIdentify
|
||
withSensorType:(GWSceneModeDeviceSensorType)sensorType
|
||
deviceID:(NSString *)deviceID
|
||
devicePassword:(NSString *)devicePassword
|
||
completionBlock:(CompletionBlock)completionBlock;
|
||
|
||
/**
|
||
情景模式设备 连接一个传感器或遥控器
|
||
|
||
连接传感器时,先调指令,再一直按传感器的发送信号按钮发出信号,设备接收到添加指令然后搜索到传感器信号后才会连接传感器
|
||
|
||
@param deviceID 设备ID
|
||
@param devicePassword 设备密码
|
||
@param completionBlock 与设备交互完成后的回调Block
|
||
*/
|
||
- (void)sceneModeDeviceConnectASensorOrRemoteControlWithDeviceID:(NSString *)deviceID
|
||
devicePassword:(NSString *)devicePassword
|
||
completionBlock:(CompletionBlock)completionBlock;
|
||
|
||
/**
|
||
情景模式设备 通过二维码扫描连接一个传感器或遥控器
|
||
|
||
@param codeString 二维码扫描到的字符串
|
||
@param deviceID 设备ID
|
||
@param devicePassword 设备密码
|
||
@param completionBlock 与设备交互完成后的回调Block
|
||
*/
|
||
- (void)sceneModeDeviceConnectASensorOrRemoteControlWithQRCode:(NSString *)codeString
|
||
deviceID:(NSString *)deviceID
|
||
devicePassword:(NSString *)devicePassword
|
||
completionBlock:(CompletionBlock)completionBlock;
|
||
|
||
/**
|
||
情景模式设备 设置特殊传感器(包括移动侦测和防攻击。其它的传感器调此指令,即使返回成功,也无实际设置效果)
|
||
|
||
包括设置情景模式,预置位(需要设备支持)
|
||
|
||
@param sensorModel 传感器模型
|
||
@param deviceID 设备ID
|
||
@param devicePassword 设备密码
|
||
@param completionBlock 与设备交互完成后的回调Block
|
||
*/
|
||
- (void)sceneModeDeviceSetASpecialSensor:(GWSceneModeDeviceSensorModel *)sensorModel
|
||
withDeviceID:(NSString *)deviceID
|
||
devicePassword:(NSString *)devicePassword
|
||
completionBlock:(CompletionBlock)completionBlock;
|
||
|
||
/**
|
||
情景模式设备 设置普通传感器情景模式
|
||
|
||
传感器是否支持情景模式参考 GWSceneModeDeviceSensorModel 的注释
|
||
|
||
@param sensorModel 传感器模型,只设置情景模式(在家、外出、睡眠三种情景模式的开关,提示音,推送,抓拍,录像情况),模型中其它的数据不处理
|
||
@param deviceID 设备ID
|
||
@param devicePassword 设备密码
|
||
@param completionBlock 与设备交互完成后的回调Block
|
||
*/
|
||
- (void)sceneModeDeviceSetSceneMode:(GWSceneModeDeviceSensorModel *)sensorModel
|
||
withDeviceID:(NSString *)deviceID
|
||
devicePassword:(NSString *)devicePassword
|
||
completionBlock:(CompletionBlock)completionBlock;
|
||
|
||
/**
|
||
情景模式设备 设置普通传感器预置位(需要设备支持,设置时先获取预置位信息)
|
||
|
||
@param presetPositionIndex 预置位索引
|
||
@param sensorIdentify 传感器标识,由设备获取,类型和标识都要传对
|
||
@param sensorType 传感器类型,由设备获取
|
||
@param deviceID 设备ID
|
||
@param devicePassword 设备密码
|
||
@param completionBlock 与设备交互完成后的回调Block
|
||
*/
|
||
- (void)sceneModeDeviceSetCommonSensorPresetPosition:(NSUInteger)presetPositionIndex
|
||
withSensorIdentify:(GWSceneModeDeviceSensorIdentify)sensorIdentify
|
||
sensorType:(GWSceneModeDeviceSensorType)sensorType
|
||
deviceID:(NSString *)deviceID
|
||
devicePassword:(NSString *)devicePassword
|
||
completionBlock:(CompletionBlock)completionBlock;
|
||
|
||
#pragma mark - 门铃开锁
|
||
/**
|
||
门铃设备开锁
|
||
|
||
@param deviceID 设备ID
|
||
@param devicePassword 设备密码
|
||
@param completionBlock 与设备交互完成后的回调Block
|
||
*/
|
||
- (void)doorbellDeviceUnlockWithDeviceID:(NSString *)deviceID
|
||
devicePassword:(NSString *)devicePassword
|
||
completionBlock:(CompletionBlock)completionBlock;
|
||
|
||
#pragma mark - 设置访客开锁权限
|
||
/**
|
||
设置访客开锁权限
|
||
|
||
@param onOrOff 访客是否拥有开锁权限
|
||
@param deviceID 设备ID
|
||
@param devicePassword 设备密码
|
||
@param completionBlock 与设备交互完成后的回调Block
|
||
*/
|
||
- (void)setVisitorUnlockAuthorityState:(BOOL)onOrOff
|
||
withDeviceId:(NSString *)deviceID
|
||
devicePassword:(NSString*)devicePassword
|
||
completionBlock:(CompletionBlock)completionBlock;
|
||
|
||
#pragma mark - 串口透传
|
||
/**
|
||
发送串口透传数据
|
||
|
||
如果
|
||
|
||
@param data 要发送的二进制数据,以GWSerialTransmissionSendingModeIPC1和GWSerialTransmissionSendingModeIPC2两种模式的数据长度必须在0~252字节之间,不能为0和252个字节,用户不需要在此data中增加"IPC1""IPC2",通过选择第二个参数的玫举值内部拼接好了.以GWSerialTransmissionSendingModeOther模式发送时,数据长度范围为0-256字节,用户需要在此data中增加命令标识,如"ALERTOR"等
|
||
@param sendingMode 发送模式
|
||
@param deviceID 设备ID,如果在同一局域网内,采用IPC1模式发送数据,串口设备收到的账号为IP,用此IP也能给手机发送数据
|
||
@param devicePassword 设备密码
|
||
@param completionBlock 与设备交互完成后的回调Block
|
||
*/
|
||
- (void)sendSerialTransmissionData:(NSData *)data
|
||
withSendingMode:(GWSerialTransmissionSendingMode)sendingMode
|
||
deviceID:(NSString *)deviceID
|
||
devicePassword:(NSString *)devicePassword
|
||
completionBlock:(CompletionBlock)completionBlock;
|
||
|
||
@end
|