346 lines
14 KiB
Objective-C
Executable File
346 lines
14 KiB
Objective-C
Executable File
//
|
|
/** @file GWP2PClient+Alarm.h @brief 处理设备报警的分类 */
|
|
// P2PSDK
|
|
//
|
|
// Created by apple on 17/3/2.
|
|
// Copyright © 2017年 gwell. All rights reserved.
|
|
//
|
|
|
|
#import "GWP2PClient.h"
|
|
|
|
/**
|
|
邮箱加密方式
|
|
*/
|
|
typedef enum GWP2PAlarmEmailEncryptType {
|
|
GWP2PAlarmEmailEncryptTypeNone, /**< 不加密 */
|
|
GWP2PAlarmEmailEncryptTypeSSL, /**< SSL加密 */
|
|
GWP2PAlarmEmailEncryptTypeTLS, /**< TLS加密 */
|
|
}GWP2PAlarmEmailEncryptType;
|
|
|
|
/**
|
|
解除报警推送账号的操作类型
|
|
*/
|
|
typedef enum GWUnbindAlarmAccountOperationType {
|
|
GWUnbindAlarmAccountOperationTypeUnbindAlarmAccount = 0,/**< 解除设备报警推送账号(当前登陆服务器的) */
|
|
GWUnbindAlarmAccountOperationTypeStopDoorBellPush = 1,/**< 停止门铃推送至当前账号(当前登陆服务器的) */
|
|
}GWUnbindAlarmAccountOperationType;
|
|
|
|
|
|
/**
|
|
@brief 处理设备报警的分类
|
|
*/
|
|
@interface GWP2PClient (Alarm)
|
|
|
|
#pragma mark - 设备报警设置
|
|
/**
|
|
设置设备移动侦测状态
|
|
|
|
获取设备移动侦测状态请调 getMultipledeviceStatusWithDeviceID:password:completionBlock:
|
|
|
|
@param motionDetetionOn 移动侦测是否打开
|
|
@param deviceID 设备ID
|
|
@param devicePassword 设备密码
|
|
@param completionBlock 与设备交互完成后的回调Block
|
|
*/
|
|
- (void)setDeviceMotionDetetionState:(BOOL)motionDetetionOn
|
|
withDeviceID:(NSString *)deviceID
|
|
devicePassword:(NSString *)devicePassword
|
|
completionBlock:(CompletionBlock)completionBlock;
|
|
/**
|
|
设置设备移动侦测灵敏度
|
|
|
|
获取设备移动侦测灵敏度请调 getMultipledeviceStatusWithDeviceID:password:completionBlock:
|
|
|
|
@param motionDetetionSensitivity 移动侦测灵敏度:0-6,数值越大,灵敏度越高
|
|
@param deviceID 设备ID
|
|
@param devicePassword 设备密码
|
|
@param completionBlock 与设备交互完成后的回调Block
|
|
*/
|
|
- (void)setDeviceMotionDetetionSensitivity:(NSUInteger)motionDetetionSensitivity
|
|
withDeviceID:(NSString *)deviceID
|
|
devicePassword:(NSString *)devicePassword
|
|
completionBlock:(CompletionBlock)completionBlock;
|
|
|
|
/**
|
|
设置设备物件追踪状态
|
|
|
|
获取设备物件追踪状态请调 getMultipledeviceStatusWithDeviceID:password:completionBlock:
|
|
|
|
@param objectTrackingOn 物件追踪是否打开
|
|
@param deviceID 设备ID
|
|
@param devicePassword 设备密码
|
|
@param completionBlock 与设备交互完成后的回调Block
|
|
*/
|
|
- (void)setDeviceObjectTrackingState:(BOOL)objectTrackingOn
|
|
withDeviceID:(NSString *)deviceID
|
|
devicePassword:(NSString *)devicePassword
|
|
completionBlock:(CompletionBlock)completionBlock;
|
|
|
|
/**
|
|
设置设备蜂鸣器状态
|
|
|
|
获取设备蜂鸣器状态请调 getMultipledeviceStatusWithDeviceID:password:completionBlock:
|
|
|
|
@param buzzTime 蜂鸣时长,单位为分,可设数字有:0(关闭), 1, 2, 3
|
|
@param deviceID 设备ID
|
|
@param devicePassword 设备密码
|
|
@param completionBlock 与设备交互完成后的回调Block
|
|
*/
|
|
- (void)setDeviceBuzzerState:(NSUInteger)buzzTime
|
|
withDeviceID:(NSString *)deviceID
|
|
devicePassword:(NSString *)devicePassword
|
|
completionBlock:(CompletionBlock)completionBlock;
|
|
|
|
|
|
/**
|
|
设置设备报警声开关状态
|
|
获取设备报警声开关状态请调 getMultipledeviceStatusWithDeviceID:password:completionBlock:
|
|
@param alarmOn 开关状0关,1开
|
|
@param deviceID 设备ID
|
|
@param devicePassword 设备密码
|
|
@param completionBlock 与设备交互完成后的回调Block
|
|
*/
|
|
- (void)setDeviceSpecialAlarmState:(NSUInteger)alarmOn
|
|
withDeviceID:(NSString *)deviceID
|
|
devicePassword:(NSString *)devicePassword
|
|
completionBlock:(CompletionBlock)completionBlock;
|
|
|
|
/**
|
|
设置设备报警白光灯状态
|
|
获取设备备报警白光灯状态请调 getMultipledeviceStatusWithDeviceID:password:completionBlock:
|
|
@param alarmOn 开关状0关,1开
|
|
@param deviceID 设备ID
|
|
@param devicePassword 设备密码
|
|
@param completionBlock 与设备交互完成后的回调Block
|
|
*/
|
|
- (void)setDeviceWhiteAlarmLightState:(NSUInteger)alarmOn
|
|
withDeviceID:(NSString *)deviceID
|
|
devicePassword:(NSString *)devicePassword
|
|
completionBlock:(CompletionBlock)completionBlock;
|
|
|
|
/**
|
|
设置AI实验室人形侦测开关状态
|
|
获取AI实验室人形侦测开关状态请调 getMultipledeviceStatusWithDeviceID:password:completionBlock:
|
|
@param detectionOn 开关状0关,1开
|
|
@param deviceID 设备ID
|
|
@param devicePassword 设备密码
|
|
@param completionBlock 与设备交互完成后的回调Block
|
|
*/
|
|
- (void)setDeviceAIHumanoidDetectionState:(BOOL)detectionOn
|
|
withDeviceID:(NSString *)deviceID
|
|
devicePassword:(NSString *)devicePassword
|
|
completionBlock:(CompletionBlock)completionBlock;
|
|
|
|
/**
|
|
设置设备红蓝灯开关状态
|
|
获取设备红蓝灯开关状态请调 getMultipledeviceStatusWithDeviceID:password:completionBlock:
|
|
@param alarmOn 开关状0关,1开
|
|
@param deviceID 设备ID
|
|
@param devicePassword 设备密码
|
|
@param completionBlock 与设备交互完成后的回调Block
|
|
*/
|
|
- (void)setDeviceRedBluelAlarmLightState:(NSUInteger)alarmOn
|
|
withDeviceID:(NSString *)deviceID
|
|
devicePassword:(NSString *)devicePassword
|
|
completionBlock:(CompletionBlock)completionBlock;
|
|
/**
|
|
设置设备人体红外开关状态
|
|
|
|
获取设备人体红外开关状态请调 getMultipledeviceStatusWithDeviceID:password:completionBlock:
|
|
|
|
如果获取不到设备人体红外开关状态,调用些方法无效
|
|
|
|
@param humanInfraredOn 人体红外是否打开
|
|
@param deviceID 设备ID
|
|
@param devicePassword 设备密码
|
|
@param completionBlock 与设备交互完成后的回调Block
|
|
*/
|
|
- (void)setDeviceHumanInfraredState:(BOOL)humanInfraredOn
|
|
withDeviceID:(NSString *)deviceID
|
|
devicePassword:(NSString *)devicePassword
|
|
completionBlock:(CompletionBlock)completionBlock;
|
|
|
|
/**
|
|
设置设备有线报警输入开关状态
|
|
|
|
获取设备蜂有线报警输入开关状态请调 getMultipledeviceStatusWithDeviceID:password:completionBlock:
|
|
|
|
如果获取不到设备有线报警输入开关状态,调用些方法无效
|
|
|
|
@param wiredAlarmInputOn 有线报警输入是否打开
|
|
@param deviceID 设备ID
|
|
@param devicePassword 设备密码
|
|
@param completionBlock 与设备交互完成后的回调Block
|
|
*/
|
|
- (void)setDeviceWiredAlarmInputState:(BOOL)wiredAlarmInputOn
|
|
withDeviceID:(NSString *)deviceID
|
|
devicePassword:(NSString *)devicePassword
|
|
completionBlock:(CompletionBlock)completionBlock;
|
|
|
|
/**
|
|
设置设备有线报警输出开关状态
|
|
|
|
获取设备蜂有线报警输出开关状态请调 getMultipledeviceStatusWithDeviceID:password:completionBlock:
|
|
|
|
如果获取不到设备有线报警输出开关状态,调用些方法无效
|
|
|
|
@param wiredAlarmOutputOn 有线报警输出是否打开
|
|
@param deviceID 设备ID
|
|
@param devicePassword 设备密码
|
|
@param completionBlock 与设备交互完成后的回调Block
|
|
*/
|
|
- (void)setDeviceWiredAlarmOutputState:(BOOL)wiredAlarmOutputOn
|
|
withDeviceID:(NSString *)deviceID
|
|
devicePassword:(NSString *)devicePassword
|
|
completionBlock:(CompletionBlock)completionBlock;
|
|
|
|
/**
|
|
获取设备报警时推送的绑定账号
|
|
|
|
completionBlock返回字典:
|
|
|
|
@"account count" 绑定账号的个数
|
|
|
|
@"account maxCount" 设备最大可绑定账号的个数
|
|
|
|
@"accounts" 绑定的账号,类型为 NSArray<NSString *> *
|
|
|
|
@param deviceID 设备ID
|
|
@param devicePassword 设备密码
|
|
@param completionBlock 与设备交互完成后的回调Block
|
|
*/
|
|
- (void)getDeviceBindedAlarmAccountWithDeviceID:(NSString *)deviceID
|
|
devicePassword:(NSString *)devicePassword
|
|
completionBlock:(CompletionBlock)completionBlock;
|
|
|
|
/**
|
|
设置设备报警时推送的绑定账号
|
|
@param accounts 要绑定的账号数组(多个账号),参数为字符串,绑定成功后覆盖原来的数据。账号为登陆技威web服务器后返回的经过 & 0x7fffffff 位处理的数字账号,在yoosee上显示的以0开头的账号
|
|
@param deviceID 设备ID
|
|
@param devicePassword 设备密码
|
|
@param completionBlock 与设备交互完成后的回调Block
|
|
*/
|
|
- (void)setDeviceBindedAlarmAccounts:(NSArray<NSString *> *)accounts
|
|
withDeviceID:(NSString *)deviceID
|
|
devicePassword:(NSString *)devicePassword
|
|
completionBlock:(CompletionBlock)completionBlock;
|
|
|
|
/**
|
|
获取设备报警邮箱
|
|
|
|
completionBlock字典返回:
|
|
|
|
@"email" 绑定的邮箱,类型:NSString
|
|
|
|
@"email is verified" 邮箱是否验证,类型:BOOL YES表示未验证,NO表示已验证
|
|
|
|
@"surport SMTP" 设备是否支持SMTP邮箱,类型:BOOL
|
|
|
|
@"password is right" SMTP邮箱密码是否正确,类型:BOOL
|
|
|
|
@"SMTP server" SMTP服务器,类型:NSString
|
|
|
|
@"SMTP port" SMTP端口,类型:NSNumber
|
|
|
|
@"SMTP user" SMTP用户,类型:NSString
|
|
|
|
@"SMTP password" SMTP密码,类型:NSString
|
|
|
|
@"encrypt type" 加密类型,类型:GWP2PAlarmEmailEncryptType
|
|
|
|
@param deviceID 设备ID
|
|
@param devicePassword 设备密码
|
|
@param completionBlock 与设备交互完成后的回调Block
|
|
*/
|
|
- (void)getDeviceAlarmEmailWithDeviceID:(NSString *)deviceID
|
|
devicePassword:(NSString *)devicePassword
|
|
completionBlock:(CompletionBlock)completionBlock;
|
|
|
|
/**
|
|
设置设备报警邮箱,设置后返回的数据不准确,再调获取接口获取邮箱数据
|
|
|
|
老设备,不支持SMTP,是否支持SMTP在获取报警邮箱时得到,则用技威服务器的邮箱发送邮件至设置邮箱
|
|
|
|
新设备,支持SMTP,报警时,若完整地设置邮箱(SMTP及密码都通过验证),用设置的邮箱发送邮件至设置的邮箱自己
|
|
|
|
一些常用的邮箱SMTP服务器与端口号:
|
|
|
|
腾讯: smtp.qq.com 465
|
|
|
|
yahoo: smtp.mail.yahoo.com 465
|
|
|
|
google: 173.194.193.108 465, 173.194.67.108 465, smtp.gmail.com 465
|
|
|
|
189: smtp.189.cn 465
|
|
|
|
hotEmail: smtp.live.com 465
|
|
|
|
网易: smtp.163.com 25
|
|
|
|
新浪: smtp.sina.com.cn 465
|
|
|
|
completionBlock返回:获取后的邮箱密码等数据可能不准确,可参考的是邮箱是否验证成功,SMTP邮箱密码是否正确
|
|
|
|
@"success" BOOL类型,操作是否成功
|
|
|
|
@"email" 绑定的邮箱,类型:NSString
|
|
|
|
@"email is verified" 邮箱是否验证,类型:NSNumber 1表示未验证,0表示已验证,这个与其它逻辑相反,要注意
|
|
|
|
@"surport SMTP" 设备是否支持SMTP邮箱,类型:NSNumber @(BOOL)
|
|
|
|
@"password is right" SMTP邮箱密码是否正确,类型:NSNumber @(BOOL)
|
|
|
|
@param alarmEmail 报警邮箱地址, 解绑时要传 @"0",否则解绑不成功
|
|
@param deviceID 设备ID
|
|
@param devicePassword 设备密码
|
|
@param isSupportSMTP 设备是否支持SMTP邮箱:获取报警邮箱时可获取此参数;若设备支持,必须传入SMTP的服务器、端口、用户名、用户密码才能绑定邮箱,此参数也必须为YES
|
|
@param SMTPServer SMTP服务器
|
|
@param SMTPPort SMTP服务器端口
|
|
@param SMTPUser SMTP用户名:设备报警时用来发送邮件
|
|
@param SMTPPassword SMTP密码 或者 SMTP授权码
|
|
@param encryptType 加密类型
|
|
@param emailTile 邮件主题:设备报警时发送邮件的标题
|
|
@param emailContent 邮件内容:设备报警时发送邮件的内容
|
|
@param completionBlock 与设备交互完成后的回调Block
|
|
*/
|
|
- (void)setDeviceAlarmEmail:(NSString *)alarmEmail
|
|
withDeviceID:(NSString *)deviceID
|
|
devicePassword:(NSString *)devicePassword
|
|
isSupportSMTP:(BOOL)isSupportSMTP
|
|
SMTPServer:(NSString *)SMTPServer
|
|
SMTPPort:(NSUInteger)SMTPPort
|
|
SMTPUser:(NSString *)SMTPUser
|
|
SMTPPassword:(NSString *)SMTPPassword
|
|
encryptType:(GWP2PAlarmEmailEncryptType)encryptType
|
|
emailTitle:(NSString *)emailTile
|
|
emailContent:(NSString *)emailContent
|
|
completionBlock:(CompletionBlock)completionBlock;
|
|
|
|
#pragma mark - 设备报警后操作
|
|
/**
|
|
设备报警时,关闭蜂鸣器
|
|
|
|
@param deviceID 设备ID
|
|
@param devicePassword 设备密码
|
|
@param completionBlock 与设备交互完成后的回调Block
|
|
*/
|
|
- (void)closeBuzzerWhenDeviceIsAlarmingWithDeviceID:(NSString *)deviceID
|
|
devicePassword:(NSString *)devicePassword
|
|
completionBlock:(CompletionBlock)completionBlock;
|
|
|
|
/**
|
|
设备报警时解除关联的当前报警账号
|
|
|
|
@param deviceID 设备ID
|
|
@param devicePassword 设备密码
|
|
@param operationType 操作类型,有
|
|
@param completionBlock 与设备交互完成后的回调Block
|
|
*/
|
|
- (void)unbindDeviceCurrentAlarmAccountWithDeviceID:(NSString *)deviceID
|
|
devicePassword:(NSString *)devicePassword
|
|
operationType:(GWUnbindAlarmAccountOperationType)operationType
|
|
completionBlock:(CompletionBlock)completionBlock;
|
|
|
|
@end
|