// // Copyright © 2018年 Zhejiang Dahua Technology Co.,Ltd. All rights reserved. // #import "DHNetSDKHelper.h" #import "DHNetSDKInterface.h" @implementation DHNetSDKHelper + (void)loginDeviceByIp:(NSString *)devIp port:(NSInteger)port username:(NSString *)username password:(NSString *)password success:(void (^)(long loginHandle))success failure:(void (^)(NSString *description))failure { dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ unsigned int error = 0; DHNetLoginDeviceInfo *deviceInfo = [DHNetSDKInterface loginDeviceByIP:devIp port:port username:username password:password errorCode:&error]; dispatch_async(dispatch_get_main_queue(), ^{ if (deviceInfo.loginHandle) { success(deviceInfo.loginHandle); } else { NSString *description = [DHNetSDKInterface getErrorDescription:error]; failure(description); } }); }); } + (void)loginDeviceExByIp:(NSString *)devIp port:(NSInteger)port username:(NSString *)username password:(NSString *)password success:(void (^)(DHNetLoginDeviceInfo *deviceInfo))success failure:(void (^)(NSString *description))failure { dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ unsigned int error = 0; DHNetLoginDeviceInfo *deviceInfo = [DHNetSDKInterface loginDeviceByIP:devIp port:port username:username password:password errorCode:&error]; dispatch_async(dispatch_get_main_queue(), ^{ if (deviceInfo.loginHandle) { success(deviceInfo); } else { NSString *description = [DHNetSDKInterface getErrorDescription:error]; failure(description); } }); }); } /// 安全登陆 /// @param devIp IP地址 /// @param port 端口号 /// @param username 用户名 /// @param password 密码 /// @param success /// @param failure + (void)loginWithHighLevelSecurityByIp:(NSString *)devIp port:(NSInteger)port username:(NSString *)username password:(NSString *)password success:(void (^)(long loginHandle))success failure:(void (^)(NSString *description))failure { dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ unsigned int error = 0; DHNetLoginDeviceInfo *deviceInfo = [DHNetSDKInterface loginWithHighLevelSecurityByIP:devIp port:port username:username password:password errorCode:&error]; dispatch_async(dispatch_get_main_queue(), ^{ if (deviceInfo.loginHandle) { success(deviceInfo.loginHandle); } else { if (error == -1) { //设备不支持高安全等级登录 failure(@"-1"); }else { NSString *description = [DHNetSDKInterface getErrorDescription:error]; failure(description); } } }); }); } + (void)loginWithHighLevelSecurityExByIp:(NSString *)devIp port:(NSInteger)port username:(NSString *)username password:(NSString *)password success:(void (^)(DHNetLoginDeviceInfo *deviceInfo))success failure:(void (^)(NSString *description))failure { dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ unsigned int error = 0; DHNetLoginDeviceInfo *deviceInfo = [DHNetSDKInterface loginWithHighLevelSecurityByIP:devIp port:port username:username password:password errorCode:&error]; dispatch_async(dispatch_get_main_queue(), ^{ if (deviceInfo.loginHandle) { success(deviceInfo); } else { if (error == -1) { //设备不支持高安全等级登录 failure(@"-1"); }else { NSString *description = [DHNetSDKInterface getErrorDescription:error]; failure(description); } } }); }); } + (void)logoutDevice:(long)loginHandle completion:(dispatch_block_t)completion { dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ [DHNetSDKInterface logout:loginHandle]; dispatch_async(dispatch_get_main_queue(), ^{ if (completion) { completion(); } }); }); } + (void)scDeviceApConnectWifi:(NSString *)mSSID password:(NSString *)password ip:(NSString *)deviceIP port:(NSInteger)port encryptionAuthority:(int)encryptionAuthority complete:(void (^)(NSInteger error))complete { dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ unsigned int error = 0; [DHNetSDKInterface scDeviceApConnectWifi:mSSID password:password ip:deviceIP port:port encryptionAuthority:encryptionAuthority]; dispatch_async(dispatch_get_main_queue(), ^{ complete(error); }); }); } + (void)scDeviceApLoadWifiList:(NSString *)deviceIP port:(NSInteger)port complete:(void (^)(NSArray * Wifilist, NSInteger error))complete { dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ unsigned int error = 0; NSArray *arr = [DHNetSDKInterface scDeviceApLoadWifiList:deviceIP port:port error:&error]; dispatch_async(dispatch_get_main_queue(), ^{ complete(arr, error); }); }); } + (void)loadWifiListByLoginHandle:(long)loginHandle complete:(void (^)(NSArray * Wifilist, NSInteger error))complete { dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ unsigned int error = 0; NSArray *arr = [DHNetSDKInterface loadWifiListByLoginHandle:loginHandle errorCode:&error]; dispatch_async(dispatch_get_main_queue(), ^{ complete(arr, error); }); }); } + (void)connectWIFIByDeviceId:(NSString *)deviceID ssid:(NSString *)ssid password:(NSString *)password devicePwd:(NSString *)devicePwd isSC:(BOOL)isSC complete:(void (^)(BOOL result))complete { dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ NSInteger errorCode = [DHNetSDKInterface connectWIFIByDeviceId:deviceID ssid:ssid password:password devicePwd:devicePwd isSC:isSC]; dispatch_async(dispatch_get_main_queue(), ^{ complete(errorCode == 0); }); }); } + (void)queryProductDefinition:(long)loginHandle success:(void (^)(DHDeviceProductDefinition *))success failure:(dispatch_block_t)failure { dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ DHDeviceProductDefinition *definition = [DHNetSDKInterface queryProductDefinitionInfo:loginHandle]; dispatch_async(dispatch_get_main_queue(), ^{ if (definition) { success(definition); } else { failure(); } }); }); } + (void)queryDeviceUserInfoDefinition:(long)loginHandle success:(void (^)(DHDeviceUserInfoDefinition *))success failure:(dispatch_block_t)failure { dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ DHDeviceUserInfoDefinition *definition = [DHNetSDKInterface queryDeviceUserInfo:loginHandle]; dispatch_async(dispatch_get_main_queue(), ^{ if (definition) { success(definition); } else { failure(); } }); }); } + (void)queryPasswordResetType:(DHDeviceNetInfo *)device byPhoneIp:(NSString *)phoneIp result:(void(^) (DHDeviceResetPWDInfo *))result { dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ DHDeviceResetPWDInfo * Info = [DHNetSDKInterface queryPasswordResetType:device byPhoneIp:phoneIp]; dispatch_async(dispatch_get_main_queue(), ^{ result(Info); }); }); } + (void)resetPassword:(NSString *)password device:(DHDeviceNetInfo *)device securityCode:(NSString *)securityCode contact:(NSString *)contact useAsPreset:(BOOL)useAsPreset byPhoneIp:(NSString *)phoneIp result:(void(^) (DHDevicePWDResetInfo *))result { dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ DHDevicePWDResetInfo *info = [DHNetSDKInterface resetPassword:password device:device securityCode:securityCode contact:contact useAsPreset:useAsPreset byPhoneIp:phoneIp]; dispatch_async(dispatch_get_main_queue(), ^{ result(info); }); }); } + (void)startNetSDKReportByRequestId:(NSString *)requestId; { [DHNetSDKInterface startNetSDKReportByRequestId:requestId]; } + (void)stopNetSDKReport{ [DHNetSDKInterface stopNetSDKReport]; } @end