开发版本-developer——01 first commit

This commit is contained in:
wbzhan
2019-07-08 18:24:03 +08:00
parent 5a10dfa182
commit 8693efe121
386 changed files with 7069 additions and 1951 deletions
+581
View File
@@ -0,0 +1,581 @@
//
/** @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