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
|