From 485a9553e08984a945d692483b1aea15a02ef5ab Mon Sep 17 00:00:00 2001
From: chenqiyang <1406175257@qq.com>
Date: 星期一, 13 三月 2023 11:09:17 +0800
Subject: [PATCH] 1.更新sdk到5.1.1 2.新增临时密码列表界面 3.新增跳转添加设备页接口 4.新增添加门锁设备逻辑
---
EZSDK/EZSDK/EZ/PrefixHeader.pch | 2
EZSDK/EZSDK/EZ/Global/EZHttpUtil.h | 67
EZSDK/EZSDK/EZ/Global/HDLEZConstants.h | 181 +
EZSDK/EZSDK/EZ/Global/HDLEZConstants.m | 290 ++
EZSDK/EZSDK.xcodeproj/project.pbxproj | 454 ++-
EZSDK/EZSDK/SDK/include/modules/EZVideoTalk/EZBAVParam.h | 196 +
EZSDK/EZSDK/EZ/Base/HDLFVTopBarView.h | 25
EZSDK/EZSDK/SDK/include/modules/Sadp.h | 557 ++++
EZSDK/EZSDK/SDK/include/modules/EZVideoTalk/EZVideoTalkView.h | 0
EZSDK/EZSDK/SDK/include/EZConstants.h | 57
EZSDK/EZSDK/SDK/include/modules/EZDeviceCloudServiceInfo.h | 65
EZSDK/EZSDK/EZ/Base/HDLEZNoDataView.m | 43
EZSDK/EZSDK/SDK/include/modules/EZConfigTokenInfo.h | 21
EZSDK/EZSDK/SDK/include/modules/EZVideoTalk/EZConferenceClient.h | 238 +
EZSDK/EZSDK/SDK/include/modules/EZProbeDeviceInfo.h | 2
EZSDK/EZSDK/SDK/include/EZConstants_Auth.h | 52
EZSDK/EZSDK/EZ/Base/HDLEZNoDataView.h | 18
EZSDK/EZSDK/SDK/include/EZGlobalSDK.h | 1503 ++++++----
EZSDK/EZSDK/SDK/include/modules/EZVideoTalk/EZVideoTalkSDK.h | 268 +
EZSDK/EZSDK/EZ/UIViewControllers/EZAPConfigResultViewController.m | 90
EZSDK/EZSDK/SDK/include/modules/EZVideoTalk/EZVideoTalkGlobal.h | 63
EZSDK/EZSDK/SDK/include/modules/EZAlarmInfo.h | 14
EZSDK/EZSDK/SDK/include/modules/EZVideoTalk/EZRTCVideoEncodeParam.h | 30
EZSDK/EZSDK/SDK/include/EZStreamPlayer.h | 8
EZSDK/EZSDK/SDK/include/modules/EZRecordCoverFetcherManager.h | 69
EZSDK/EZSDK/SDK/include/modules/EZVideoTalk/EZVideoTalk.h | 179 +
EZSDK/EZSDK/SDK/include/modules/EZCameraInfo.h | 2
EZSDK/EZSDK/SDK/include/modules/EZWiFiItemInfo.h | 21
EZSDK/EZSDK/EZ/TempPassword/Controllers/HDLEZVisitorRecordViewController.m | 88
EZSDK/EZSDK/EZ/TempPassword/Models/HDLEZTemInfoModel.h | 22
EZSDK/EZSDK/EZ/Venders/openssl/lib/libcrypto.a | 0
EZSDK/EZSDK/SDK/include/modules/EZPMPlayPrivateTokenInfo.h | 22
EZSDK/EZSDK/SDK/include/modules/EZVideoTalk/EZRTCMediaSessionDefines.h | 107
EZSDK.IOS/EZSDK.IOS/Library/lib/libcrypto.a | 0
EZSDK/EZSDK/EZ/TempPassword/Controllers/HDLEZVisitorRecordViewController.h | 18
EZSDK/EZSDK/EZ/TempPassword/Models/HDLEZTemInfoModel.m | 12
EZSDK/EZSDK/SDK/include/modules/EZSADPDeviceInfo.h | 2
EZSDK/EZSDK/EZ/TempPassword/Views/HDLEZVisitorRecordCell.m | 138 +
EZSDK/EZSDK/EZ/TempPassword/Views/HDLFVCreateTemPassView.h | 43
EZSDK/EZSDK/EZ/UIViewControllers/EZLivePlayViewController.m | 28
EZSDK/EZSDK/SDK/include/modules/EZAPDevInfo.h | 23
EZSDK/EZSDK/SDK/include/modules/EZRecordDownloadTask.h | 19
EZSDK/EZSDK/EZ/UIViewControllers/EZDeviceResultViewController.m | 46
EZSDK/EZSDK/EZ/TempPassword/Views/HDLEZVisitorRecordCell.h | 21
EZSDK/EZSDK/SDK/include/EZPlayer.h | 84
EZSDK/EZSDK/SDK/include/modules/EZCloudRecordFile.h | 2
EZSDK/EZSDK/EZSDK.h | 18
EZSDK/EZSDK/SDK/libEZOpenSDK.a | 0
EZSDK/EZSDK/SDK/include/EZConstants_WifiConfig.h | 36
EZSDK/EZSDK/SDK/include/modules/EZVideoTalk/EZRTCCameraParam.h | 38
EZSDK.IOS/EZSDK.IOS/Library/lib/libssl.a | 0
EZSDK/EZSDK/SDK/include/modules/EZDeviceRecordFile.h | 5
EZSDK/EZSDK/EZ/TempPassword/Controllers/HDLFVTempPassViewController.m | 339 ++
EZSDK/EZSDK/EZ/Base/HDLEZTopBarView.h | 25
EZSDK/EZSDK/EZ/TempPassword/Controllers/HDLFVTempPassViewController.h | 26
EZSDK/EZSDK/SDK/include/modules/EZVideoTalk/EZVideoTalkSDKDefines.h | 17
EZSDK/EZSDK/EZ/Base/HDLEZTopBarView.m | 104
EZSDK/EZSDK/EZ/UIViewControllers/EZAddByQRCodeViewController.m | 6
EZSDK/EZSDK/SDK/include/EZOpenSDK.h | 1211 ++++----
EZSDK/EZSDK.xcodeproj/xcshareddata/xcschemes/EZSDK.xcscheme | 2
EZSDK/EZSDK/EZ/TempPassword/Views/HDLFVCreateTemPassView.m | 240 +
EZSDK/EZSDK/SDK/include/EZHCNetDeviceSDK.h | 51
EZSDK/EZSDK/EZ/UIViewControllers/EZAddByQRCodeViewController.h | 7
EZSDK/EZSDK/EZSDK.m | 40
Demo/EZOpensdk_iOS_4.15.1_build20201104/Demo/EZOpenSDKDemo/TableViewCells/MessageListCell.m | 3
EZSDK.IOS/EZSDK.IOS/EZSDK.IOS.csproj | 11
EZSDK/EZSDK/EZ/TempPassword/Views/HDLEZVisitorRecordView.m | 79
EZSDK/EZSDK/EZ/Base/HDLEZBaseViewController.m | 108
EZSDK/EZSDK/EZ/UIViewControllers/EZAPWiFiConfigViewController.m | 60
EZSDK/EZSDK/SDK/include/modules/EZVideoTalk/EZRTCSampleHandleManager.h | 31
EZSDK/EZSDK/EZ/Base/HDLEZBaseViewController.h | 45
EZSDK/EZSDK/EZ/Venders/openssl/lib/libssl.a | 0
EZSDK/EZSDK/EZ/TempPassword/Views/HDLEZVisitorRecordView.h | 23
EZSDK/EZSDK/EZ/UIViewControllers/EZWifiConfigViewController.m | 9
/dev/null | 151 -
EZSDK.IOS/EZSDK.IOS/Library/libEZSDK.a | 0
EZSDK/EZSDK/SDK/include/modules/EZDeviceInfo.h | 6
EZSDK/EZSDK/EZ/Global/EZHttpUtil.m | 177 +
EZSDK/EZSDK/SDK/include/modules/EZDevicePtzAngleInfo.h | 47
EZSDK/EZSDK/EZ/Global/GlobalKit.h | 4
80 files changed, 6,429 insertions(+), 1,680 deletions(-)
diff --git a/Demo/EZOpensdk_iOS_4.15.1_build20201104/Demo/EZOpenSDKDemo/TableViewCells/MessageListCell.m b/Demo/EZOpensdk_iOS_4.15.1_build20201104/Demo/EZOpenSDKDemo/TableViewCells/MessageListCell.m
index 6ded266..e07bace 100644
--- a/Demo/EZOpensdk_iOS_4.15.1_build20201104/Demo/EZOpenSDKDemo/TableViewCells/MessageListCell.m
+++ b/Demo/EZOpensdk_iOS_4.15.1_build20201104/Demo/EZOpenSDKDemo/TableViewCells/MessageListCell.m
@@ -59,8 +59,7 @@
{
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
formatter.dateFormat = @"HH:mm:ss";
-// self.timeLabel.text = [formatter stringFromDate:[info getAlarmStartTime]];
- self.timeLabel.text = [self compareCurrentTime:[info getAlarmStartTime]];
+ self.timeLabel.text = [formatter stringFromDate:[info getAlarmStartTime]];
self.readStatusIcon.hidden = NO;
if(info.isChecked)
{
diff --git a/EZSDK.IOS/EZSDK.IOS/EZSDK.IOS.csproj b/EZSDK.IOS/EZSDK.IOS/EZSDK.IOS.csproj
index a8f1ef4..3ec93e4 100644
--- a/EZSDK.IOS/EZSDK.IOS/EZSDK.IOS.csproj
+++ b/EZSDK.IOS/EZSDK.IOS/EZSDK.IOS.csproj
@@ -48,10 +48,17 @@
<ItemGroup>
<NativeReference Include="Library\libEZSDK.a">
<Kind>Static</Kind>
+ <Frameworks>UIKit Foundation OpenAL CoreMedia GLKit AudioToolbox ExternalAccessory VideoToolbox MobileCoreServices SystemConfiguration NetworkExtension AVFoundation</Frameworks>
+ <LinkerFlags> -dead_strip -lc++ -lsqlite3.0 -lz -liconv.2.4.0 -lbz2 -ObjC</LinkerFlags>
<IsCxx>True</IsCxx>
<ForceLoad>True</ForceLoad>
- <Frameworks>UIKit Foundation OpenAL CoreMedia GLKit AudioToolbox ExternalAccessory VideoToolbox MobileCoreServices SystemConfiguration NetworkExtension AVFoundation</Frameworks>
- <LinkerFlags>-dead_strip -lc++ -lsqlite3.0 -lz -liconv.2.4.0 -lbz2 -ObjC</LinkerFlags>
+ </NativeReference>
+ <NativeReference Include="Library\lib\libcrypto.a">
+ <Kind>Static</Kind>
+ <ForceLoad>True</ForceLoad>
+ </NativeReference>
+ <NativeReference Include="Library\lib\libssl.a">
+ <Kind>Static</Kind>
</NativeReference>
</ItemGroup>
<Import Project="$(MSBuildExtensionsPath)\Xamarin\iOS\Xamarin.iOS.ObjCBinding.CSharp.targets" />
diff --git a/EZSDK.IOS/EZSDK.IOS/Library/lib/libcrypto.a b/EZSDK.IOS/EZSDK.IOS/Library/lib/libcrypto.a
new file mode 100644
index 0000000..ad3d482
--- /dev/null
+++ b/EZSDK.IOS/EZSDK.IOS/Library/lib/libcrypto.a
Binary files differ
diff --git a/EZSDK.IOS/EZSDK.IOS/Library/lib/libssl.a b/EZSDK.IOS/EZSDK.IOS/Library/lib/libssl.a
new file mode 100644
index 0000000..342610d
--- /dev/null
+++ b/EZSDK.IOS/EZSDK.IOS/Library/lib/libssl.a
Binary files differ
diff --git a/EZSDK.IOS/EZSDK.IOS/Library/libEZSDK.a b/EZSDK.IOS/EZSDK.IOS/Library/libEZSDK.a
index aadfd57..144f2c3 100644
--- a/EZSDK.IOS/EZSDK.IOS/Library/libEZSDK.a
+++ b/EZSDK.IOS/EZSDK.IOS/Library/libEZSDK.a
Binary files differ
diff --git a/EZSDK/EZSDK.xcodeproj/project.pbxproj b/EZSDK/EZSDK.xcodeproj/project.pbxproj
index cded2a4..b7eb3da 100644
--- a/EZSDK/EZSDK.xcodeproj/project.pbxproj
+++ b/EZSDK/EZSDK.xcodeproj/project.pbxproj
@@ -7,6 +7,15 @@
objects = {
/* Begin PBXBuildFile section */
+ AE5068D829B9DB5E009EA09A /* HDLEZTemInfoModel.m in Sources */ = {isa = PBXBuildFile; fileRef = AE5068D729B9DB5E009EA09A /* HDLEZTemInfoModel.m */; };
+ AEC306D229B9F2B5000B3861 /* HDLEZVisitorRecordView.m in Sources */ = {isa = PBXBuildFile; fileRef = AEC306D129B9F2B5000B3861 /* HDLEZVisitorRecordView.m */; };
+ AEC306D529B9F2DB000B3861 /* HDLEZVisitorRecordCell.m in Sources */ = {isa = PBXBuildFile; fileRef = AEC306D429B9F2DB000B3861 /* HDLEZVisitorRecordCell.m */; };
+ AEDD944129B0329D00EAA2CA /* libEZOpenSDK.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AEDD940729B0329D00EAA2CA /* libEZOpenSDK.a */; };
+ AEE84D3B29BABAC00078FDAD /* HDLEZVisitorRecordViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = AEE84D3929BABABF0078FDAD /* HDLEZVisitorRecordViewController.m */; };
+ AEE84D3F29BAC5BF0078FDAD /* HDLEZBaseViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = AEE84D3D29BAC5BC0078FDAD /* HDLEZBaseViewController.m */; };
+ AEE84D4329BAC7FE0078FDAD /* HDLEZConstants.m in Sources */ = {isa = PBXBuildFile; fileRef = AEE84D4129BAC7F90078FDAD /* HDLEZConstants.m */; };
+ AEE84D4629BACBAD0078FDAD /* HDLEZTopBarView.m in Sources */ = {isa = PBXBuildFile; fileRef = AEE84D4429BACBAA0078FDAD /* HDLEZTopBarView.m */; };
+ AEE84D4929BAE2590078FDAD /* HDLEZNoDataView.m in Sources */ = {isa = PBXBuildFile; fileRef = AEE84D4829BAE2590078FDAD /* HDLEZNoDataView.m */; };
B95AB87E26984D49007BC8D7 /* HDLAlarmInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = B95AB87D26984D49007BC8D7 /* HDLAlarmInfo.m */; };
B95AB88726984DD5007BC8D7 /* NSObject+YYModel.m in Sources */ = {isa = PBXBuildFile; fileRef = B95AB88426984DD5007BC8D7 /* NSObject+YYModel.m */; };
B95AB88826984DD5007BC8D7 /* YYClassInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = B95AB88526984DD5007BC8D7 /* YYClassInfo.m */; };
@@ -77,7 +86,6 @@
B9BC99F225C0FFBD00C024FE /* UIView+WebCacheOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = B9BC98A425C0FFB800C024FE /* UIView+WebCacheOperation.m */; };
B9BC99F325C0FFBD00C024FE /* UIButton+WebCache.m in Sources */ = {isa = PBXBuildFile; fileRef = B9BC98A825C0FFB800C024FE /* UIButton+WebCache.m */; };
B9BC99F425C0FFBD00C024FE /* libcrypto.a in Frameworks */ = {isa = PBXBuildFile; fileRef = B9BC98FD25C0FFBA00C024FE /* libcrypto.a */; };
- B9BC99F525C0FFBD00C024FE /* libssl.a in Frameworks */ = {isa = PBXBuildFile; fileRef = B9BC98FE25C0FFBA00C024FE /* libssl.a */; };
B9BC99F625C0FFBD00C024FE /* Aspects.m in Sources */ = {isa = PBXBuildFile; fileRef = B9BC990125C0FFBA00C024FE /* Aspects.m */; };
B9BC99F725C0FFBD00C024FE /* EZQRView.m in Sources */ = {isa = PBXBuildFile; fileRef = B9BC990425C0FFBA00C024FE /* EZQRView.m */; };
B9BC99F825C0FFBD00C024FE /* EZCustomTableView.m in Sources */ = {isa = PBXBuildFile; fileRef = B9BC990925C0FFBA00C024FE /* EZCustomTableView.m */; };
@@ -126,7 +134,6 @@
B9BC9A2725C0FFBD00C024FE /* EZAddByQRCodeViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = B9BC996625C0FFBB00C024FE /* EZAddByQRCodeViewController.m */; };
B9BC9A2825C0FFBD00C024FE /* EZPlaybackViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = B9BC996A25C0FFBB00C024FE /* EZPlaybackViewController.m */; };
B9BC9A2925C0FFBD00C024FE /* GlobalKit.m in Sources */ = {isa = PBXBuildFile; fileRef = B9BC997025C0FFBB00C024FE /* GlobalKit.m */; };
- B9BC9A2B25C0FFBD00C024FE /* libEZOpenSDK.a in Frameworks */ = {isa = PBXBuildFile; fileRef = B9BC999A25C0FFBD00C024FE /* libEZOpenSDK.a */; };
B9EA4E8525C7E806000FFDA2 /* UIScrollView+MJRefresh.m in Sources */ = {isa = PBXBuildFile; fileRef = B9EA4E5625C7E805000FFDA2 /* UIScrollView+MJRefresh.m */; };
B9EA4E8625C7E806000FFDA2 /* MJRefreshConst.m in Sources */ = {isa = PBXBuildFile; fileRef = B9EA4E5725C7E805000FFDA2 /* MJRefreshConst.m */; };
B9EA4E8725C7E806000FFDA2 /* UIScrollView+MJExtension.m in Sources */ = {isa = PBXBuildFile; fileRef = B9EA4E5D25C7E805000FFDA2 /* UIScrollView+MJExtension.m */; };
@@ -162,6 +169,77 @@
/* End PBXCopyFilesBuildPhase section */
/* Begin PBXFileReference section */
+ AE5068D629B9DB5E009EA09A /* HDLEZTemInfoModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HDLEZTemInfoModel.h; sourceTree = "<group>"; };
+ AE5068D729B9DB5E009EA09A /* HDLEZTemInfoModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = HDLEZTemInfoModel.m; sourceTree = "<group>"; };
+ AEC306D029B9F2B5000B3861 /* HDLEZVisitorRecordView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HDLEZVisitorRecordView.h; sourceTree = "<group>"; };
+ AEC306D129B9F2B5000B3861 /* HDLEZVisitorRecordView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HDLEZVisitorRecordView.m; sourceTree = "<group>"; };
+ AEC306D329B9F2DA000B3861 /* HDLEZVisitorRecordCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HDLEZVisitorRecordCell.h; sourceTree = "<group>"; };
+ AEC306D429B9F2DB000B3861 /* HDLEZVisitorRecordCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HDLEZVisitorRecordCell.m; sourceTree = "<group>"; };
+ AEDD940729B0329D00EAA2CA /* libEZOpenSDK.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libEZOpenSDK.a; sourceTree = "<group>"; };
+ AEDD940929B0329D00EAA2CA /* EZConstants.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZConstants.h; sourceTree = "<group>"; };
+ AEDD940A29B0329D00EAA2CA /* EZHCNetDeviceSDK.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZHCNetDeviceSDK.h; sourceTree = "<group>"; };
+ AEDD940B29B0329D00EAA2CA /* EZStreamPlayer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZStreamPlayer.h; sourceTree = "<group>"; };
+ AEDD940C29B0329D00EAA2CA /* EZOpenSDK.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZOpenSDK.h; sourceTree = "<group>"; };
+ AEDD940D29B0329D00EAA2CA /* EZConstants_Auth.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZConstants_Auth.h; sourceTree = "<group>"; };
+ AEDD940E29B0329D00EAA2CA /* EZPlayer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZPlayer.h; sourceTree = "<group>"; };
+ AEDD940F29B0329D00EAA2CA /* EZGlobalSDK.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZGlobalSDK.h; sourceTree = "<group>"; };
+ AEDD941129B0329D00EAA2CA /* EZDeviceVersion.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZDeviceVersion.h; sourceTree = "<group>"; };
+ AEDD941229B0329D00EAA2CA /* EZUserInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZUserInfo.h; sourceTree = "<group>"; };
+ AEDD941329B0329D00EAA2CA /* EZDeviceUpgradeStatus.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZDeviceUpgradeStatus.h; sourceTree = "<group>"; };
+ AEDD941429B0329D00EAA2CA /* EZAccessToken.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZAccessToken.h; sourceTree = "<group>"; };
+ AEDD941529B0329D00EAA2CA /* EZPlayerExParamInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZPlayerExParamInfo.h; sourceTree = "<group>"; };
+ AEDD941729B0329D00EAA2CA /* EZRTCCameraParam.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZRTCCameraParam.h; sourceTree = "<group>"; };
+ AEDD941829B0329D00EAA2CA /* EZRTCMediaSessionDefines.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZRTCMediaSessionDefines.h; sourceTree = "<group>"; };
+ AEDD941929B0329D00EAA2CA /* EZVideoTalkSDKDefines.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZVideoTalkSDKDefines.h; sourceTree = "<group>"; };
+ AEDD941A29B0329D00EAA2CA /* EZVideoTalkView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZVideoTalkView.h; sourceTree = "<group>"; };
+ AEDD941B29B0329D00EAA2CA /* EZConferenceClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZConferenceClient.h; sourceTree = "<group>"; };
+ AEDD941C29B0329D00EAA2CA /* EZVideoTalkGlobal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZVideoTalkGlobal.h; sourceTree = "<group>"; };
+ AEDD941D29B0329D00EAA2CA /* EZVideoTalk.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZVideoTalk.h; sourceTree = "<group>"; };
+ AEDD941E29B0329D00EAA2CA /* EZVideoTalkSDK.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZVideoTalkSDK.h; sourceTree = "<group>"; };
+ AEDD941F29B0329D00EAA2CA /* EZRTCSampleHandleManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZRTCSampleHandleManager.h; sourceTree = "<group>"; };
+ AEDD942029B0329D00EAA2CA /* EZBAVParam.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZBAVParam.h; sourceTree = "<group>"; };
+ AEDD942129B0329D00EAA2CA /* EZRTCVideoEncodeParam.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZRTCVideoEncodeParam.h; sourceTree = "<group>"; };
+ AEDD942229B0329D00EAA2CA /* EZAPDevInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZAPDevInfo.h; sourceTree = "<group>"; };
+ AEDD942329B0329D00EAA2CA /* EzvizWatchServerInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EzvizWatchServerInfo.h; sourceTree = "<group>"; };
+ AEDD942429B0329D00EAA2CA /* EZDeviceRecordDownloadTask.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZDeviceRecordDownloadTask.h; sourceTree = "<group>"; };
+ AEDD942529B0329D00EAA2CA /* EzvizRecordFileInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EzvizRecordFileInfo.h; sourceTree = "<group>"; };
+ AEDD942629B0329D00EAA2CA /* EZDeviceRecordFile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZDeviceRecordFile.h; sourceTree = "<group>"; };
+ AEDD942729B0329D00EAA2CA /* EZLeaveMessage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZLeaveMessage.h; sourceTree = "<group>"; };
+ AEDD942829B0329D00EAA2CA /* EZWiFiItemInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZWiFiItemInfo.h; sourceTree = "<group>"; };
+ AEDD942929B0329D00EAA2CA /* EZRecordCoverFetcherManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZRecordCoverFetcherManager.h; sourceTree = "<group>"; };
+ AEDD942A29B0329D00EAA2CA /* EZHiddnsDeviceInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZHiddnsDeviceInfo.h; sourceTree = "<group>"; };
+ AEDD942B29B0329D00EAA2CA /* Sadp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Sadp.h; sourceTree = "<group>"; };
+ AEDD942C29B0329D00EAA2CA /* EZDeviceInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZDeviceInfo.h; sourceTree = "<group>"; };
+ AEDD942D29B0329D00EAA2CA /* EZRecordDownloader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZRecordDownloader.h; sourceTree = "<group>"; };
+ AEDD942E29B0329D00EAA2CA /* EZRecordDownloadTask.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZRecordDownloadTask.h; sourceTree = "<group>"; };
+ AEDD942F29B0329D00EAA2CA /* EZVideoTransformer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZVideoTransformer.h; sourceTree = "<group>"; };
+ AEDD943029B0329D00EAA2CA /* EZTokenKit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZTokenKit.h; sourceTree = "<group>"; };
+ AEDD943129B0329D00EAA2CA /* EZPMPlayPrivateTokenInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZPMPlayPrivateTokenInfo.h; sourceTree = "<group>"; };
+ AEDD943229B0329D00EAA2CA /* EZDetectorInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZDetectorInfo.h; sourceTree = "<group>"; };
+ AEDD943329B0329D00EAA2CA /* EZHCNetDeviceInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZHCNetDeviceInfo.h; sourceTree = "<group>"; };
+ AEDD943429B0329D00EAA2CA /* EZCameraInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZCameraInfo.h; sourceTree = "<group>"; };
+ AEDD943529B0329D00EAA2CA /* EZCloudRecordFile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZCloudRecordFile.h; sourceTree = "<group>"; };
+ AEDD943629B0329D00EAA2CA /* EZCloudRecordDownloadTask.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZCloudRecordDownloadTask.h; sourceTree = "<group>"; };
+ AEDD943729B0329D00EAA2CA /* EZAreaInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZAreaInfo.h; sourceTree = "<group>"; };
+ AEDD943829B0329D00EAA2CA /* EZProbeDeviceInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZProbeDeviceInfo.h; sourceTree = "<group>"; };
+ AEDD943929B0329D00EAA2CA /* EZDevicePtzAngleInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZDevicePtzAngleInfo.h; sourceTree = "<group>"; };
+ AEDD943A29B0329D00EAA2CA /* EZDeviceCloudServiceInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZDeviceCloudServiceInfo.h; sourceTree = "<group>"; };
+ AEDD943B29B0329D00EAA2CA /* EZVideoQualityInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZVideoQualityInfo.h; sourceTree = "<group>"; };
+ AEDD943C29B0329D00EAA2CA /* EZAlarmInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZAlarmInfo.h; sourceTree = "<group>"; };
+ AEDD943D29B0329D00EAA2CA /* EZConfigTokenInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZConfigTokenInfo.h; sourceTree = "<group>"; };
+ AEDD943E29B0329D00EAA2CA /* EZSADPDeviceInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZSADPDeviceInfo.h; sourceTree = "<group>"; };
+ AEDD943F29B0329D00EAA2CA /* EZStorageInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZStorageInfo.h; sourceTree = "<group>"; };
+ AEDD944029B0329D00EAA2CA /* EZConstants_WifiConfig.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZConstants_WifiConfig.h; sourceTree = "<group>"; };
+ AEE84D3929BABABF0078FDAD /* HDLEZVisitorRecordViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HDLEZVisitorRecordViewController.m; sourceTree = "<group>"; };
+ AEE84D3A29BABAC00078FDAD /* HDLEZVisitorRecordViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HDLEZVisitorRecordViewController.h; sourceTree = "<group>"; };
+ AEE84D3D29BAC5BC0078FDAD /* HDLEZBaseViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HDLEZBaseViewController.m; sourceTree = "<group>"; };
+ AEE84D3E29BAC5BF0078FDAD /* HDLEZBaseViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HDLEZBaseViewController.h; sourceTree = "<group>"; };
+ AEE84D4029BAC7F60078FDAD /* HDLEZConstants.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HDLEZConstants.h; sourceTree = "<group>"; };
+ AEE84D4129BAC7F90078FDAD /* HDLEZConstants.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HDLEZConstants.m; sourceTree = "<group>"; };
+ AEE84D4429BACBAA0078FDAD /* HDLEZTopBarView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HDLEZTopBarView.m; sourceTree = "<group>"; };
+ AEE84D4529BACBAD0078FDAD /* HDLEZTopBarView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HDLEZTopBarView.h; sourceTree = "<group>"; };
+ AEE84D4729BAE2550078FDAD /* HDLEZNoDataView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HDLEZNoDataView.h; sourceTree = "<group>"; };
+ AEE84D4829BAE2590078FDAD /* HDLEZNoDataView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HDLEZNoDataView.m; sourceTree = "<group>"; };
B95AB87C26984D49007BC8D7 /* HDLAlarmInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HDLAlarmInfo.h; sourceTree = "<group>"; };
B95AB87D26984D49007BC8D7 /* HDLAlarmInfo.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HDLAlarmInfo.m; sourceTree = "<group>"; };
B95AB88226984DD5007BC8D7 /* YYClassInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YYClassInfo.h; sourceTree = "<group>"; };
@@ -173,43 +251,6 @@
B965BE0025EE0B0D00E58AFB /* ResponseData.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ResponseData.m; sourceTree = "<group>"; };
B965BE0125EE0B0D00E58AFB /* EZHttpUtil.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZHttpUtil.h; sourceTree = "<group>"; };
B965BE0225EE0B0D00E58AFB /* ResponseData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ResponseData.h; sourceTree = "<group>"; };
- B99F57BB262D85CF0049A308 /* EZConstants.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZConstants.h; sourceTree = "<group>"; };
- B99F57BC262D85CF0049A308 /* EZHCNetDeviceSDK.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZHCNetDeviceSDK.h; sourceTree = "<group>"; };
- B99F57BD262D85CF0049A308 /* EZStreamPlayer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZStreamPlayer.h; sourceTree = "<group>"; };
- B99F57BE262D85CF0049A308 /* EZOpenSDK.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZOpenSDK.h; sourceTree = "<group>"; };
- B99F57BF262D85CF0049A308 /* EZPlayer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZPlayer.h; sourceTree = "<group>"; };
- B99F57C0262D85CF0049A308 /* EZGlobalSDK.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZGlobalSDK.h; sourceTree = "<group>"; };
- B99F57C2262D85CF0049A308 /* EZDeviceVersion.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZDeviceVersion.h; sourceTree = "<group>"; };
- B99F57C3262D85CF0049A308 /* EZUserInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZUserInfo.h; sourceTree = "<group>"; };
- B99F57C4262D85CF0049A308 /* EZDeviceUpgradeStatus.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZDeviceUpgradeStatus.h; sourceTree = "<group>"; };
- B99F57C5262D85CF0049A308 /* EZAccessToken.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZAccessToken.h; sourceTree = "<group>"; };
- B99F57C6262D85CF0049A308 /* EZPlayerExParamInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZPlayerExParamInfo.h; sourceTree = "<group>"; };
- B99F57C7262D85CF0049A308 /* EzvizWatchServerInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EzvizWatchServerInfo.h; sourceTree = "<group>"; };
- B99F57C8262D85CF0049A308 /* EZDeviceRecordDownloadTask.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZDeviceRecordDownloadTask.h; sourceTree = "<group>"; };
- B99F57C9262D85CF0049A308 /* EzvizRecordFileInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EzvizRecordFileInfo.h; sourceTree = "<group>"; };
- B99F57CA262D85CF0049A308 /* EZDeviceRecordFile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZDeviceRecordFile.h; sourceTree = "<group>"; };
- B99F57CB262D85CF0049A308 /* EZLeaveMessage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZLeaveMessage.h; sourceTree = "<group>"; };
- B99F57CC262D85CF0049A308 /* EZHiddnsDeviceInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZHiddnsDeviceInfo.h; sourceTree = "<group>"; };
- B99F57CD262D85CF0049A308 /* EZVideoTalkView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZVideoTalkView.h; sourceTree = "<group>"; };
- B99F57CE262D85CF0049A308 /* EZDeviceInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZDeviceInfo.h; sourceTree = "<group>"; };
- B99F57CF262D85CF0049A308 /* EZRecordDownloader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZRecordDownloader.h; sourceTree = "<group>"; };
- B99F57D0262D85CF0049A308 /* EZRecordDownloadTask.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZRecordDownloadTask.h; sourceTree = "<group>"; };
- B99F57D1262D85CF0049A308 /* EZVideoTransformer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZVideoTransformer.h; sourceTree = "<group>"; };
- B99F57D2262D85CF0049A308 /* EZTokenKit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZTokenKit.h; sourceTree = "<group>"; };
- B99F57D3262D85CF0049A308 /* EZDetectorInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZDetectorInfo.h; sourceTree = "<group>"; };
- B99F57D4262D85CF0049A308 /* EZHCNetDeviceInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZHCNetDeviceInfo.h; sourceTree = "<group>"; };
- B99F57D5262D85CF0049A308 /* EZCameraInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZCameraInfo.h; sourceTree = "<group>"; };
- B99F57D6262D85CF0049A308 /* EZCloudRecordFile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZCloudRecordFile.h; sourceTree = "<group>"; };
- B99F57D7262D85CF0049A308 /* EZCloudRecordDownloadTask.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZCloudRecordDownloadTask.h; sourceTree = "<group>"; };
- B99F57D8262D85CF0049A308 /* EZAreaInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZAreaInfo.h; sourceTree = "<group>"; };
- B99F57D9262D85CF0049A308 /* EZProbeDeviceInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZProbeDeviceInfo.h; sourceTree = "<group>"; };
- B99F57DA262D85CF0049A308 /* EZVideoTalkSDK.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZVideoTalkSDK.h; sourceTree = "<group>"; };
- B99F57DB262D85CF0049A308 /* EZMediaSessionVideoParam.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZMediaSessionVideoParam.h; sourceTree = "<group>"; };
- B99F57DC262D85CF0049A308 /* EZVideoQualityInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZVideoQualityInfo.h; sourceTree = "<group>"; };
- B99F57DD262D85CF0049A308 /* EZAlarmInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZAlarmInfo.h; sourceTree = "<group>"; };
- B99F57DE262D85CF0049A308 /* EZVideoTalkParam.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZVideoTalkParam.h; sourceTree = "<group>"; };
- B99F57DF262D85CF0049A308 /* EZSADPDeviceInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZSADPDeviceInfo.h; sourceTree = "<group>"; };
- B99F57E0262D85CF0049A308 /* EZStorageInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZStorageInfo.h; sourceTree = "<group>"; };
B9BC92FA25C0FC3500C024FE /* libEZSDK.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libEZSDK.a; sourceTree = BUILT_PRODUCTS_DIR; };
B9BC92FD25C0FC3500C024FE /* EZSDK.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = EZSDK.h; sourceTree = "<group>"; };
B9BC92FE25C0FC3500C024FE /* EZSDK.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = EZSDK.m; sourceTree = "<group>"; };
@@ -427,7 +468,6 @@
B9BC98FA25C0FFBA00C024FE /* lhash.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = lhash.h; sourceTree = "<group>"; };
B9BC98FB25C0FFBA00C024FE /* pq_compat.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = pq_compat.h; sourceTree = "<group>"; };
B9BC98FD25C0FFBA00C024FE /* libcrypto.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libcrypto.a; sourceTree = "<group>"; };
- B9BC98FE25C0FFBA00C024FE /* libssl.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libssl.a; sourceTree = "<group>"; };
B9BC990025C0FFBA00C024FE /* Aspects.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Aspects.h; sourceTree = "<group>"; };
B9BC990125C0FFBA00C024FE /* Aspects.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Aspects.m; sourceTree = "<group>"; };
B9BC990325C0FFBA00C024FE /* NSDate-Utilities.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSDate-Utilities.h"; sourceTree = "<group>"; };
@@ -527,7 +567,6 @@
B9BC996E25C0FFBB00C024FE /* PrefixHeader.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PrefixHeader.pch; sourceTree = "<group>"; };
B9BC997025C0FFBB00C024FE /* GlobalKit.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GlobalKit.m; sourceTree = "<group>"; };
B9BC997125C0FFBB00C024FE /* GlobalKit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GlobalKit.h; sourceTree = "<group>"; };
- B9BC999A25C0FFBD00C024FE /* libEZOpenSDK.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libEZOpenSDK.a; sourceTree = "<group>"; };
B9EA4E5425C7E805000FFDA2 /* LICENSE */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = LICENSE; sourceTree = "<group>"; };
B9EA4E5625C7E805000FFDA2 /* UIScrollView+MJRefresh.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIScrollView+MJRefresh.m"; sourceTree = "<group>"; };
B9EA4E5725C7E805000FFDA2 /* MJRefreshConst.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MJRefreshConst.m; sourceTree = "<group>"; };
@@ -577,8 +616,7 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
- B9BC99F525C0FFBD00C024FE /* libssl.a in Frameworks */,
- B9BC9A2B25C0FFBD00C024FE /* libEZOpenSDK.a in Frameworks */,
+ AEDD944129B0329D00EAA2CA /* libEZOpenSDK.a in Frameworks */,
B9BC99F425C0FFBD00C024FE /* libcrypto.a in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
@@ -586,68 +624,145 @@
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
- B95AB88126984DD5007BC8D7 /* YYModel */ = {
+ AE5068C329B9CE40009EA09A /* TempPassword */ = {
isa = PBXGroup;
children = (
- B95AB88226984DD5007BC8D7 /* YYClassInfo.h */,
- B95AB88326984DD5007BC8D7 /* YYModel.h */,
- B95AB88426984DD5007BC8D7 /* NSObject+YYModel.m */,
- B95AB88526984DD5007BC8D7 /* YYClassInfo.m */,
- B95AB88626984DD5007BC8D7 /* NSObject+YYModel.h */,
+ AE5068C429B9CED3009EA09A /* Controllers */,
+ AE5068C529B9CEDC009EA09A /* Views */,
+ AE5068C629B9CEE6009EA09A /* Models */,
);
- path = YYModel;
+ path = TempPassword;
sourceTree = "<group>";
};
- B99F57BA262D85CF0049A308 /* include */ = {
+ AE5068C429B9CED3009EA09A /* Controllers */ = {
isa = PBXGroup;
children = (
- B99F57BB262D85CF0049A308 /* EZConstants.h */,
- B99F57BC262D85CF0049A308 /* EZHCNetDeviceSDK.h */,
- B99F57BD262D85CF0049A308 /* EZStreamPlayer.h */,
- B99F57BE262D85CF0049A308 /* EZOpenSDK.h */,
- B99F57BF262D85CF0049A308 /* EZPlayer.h */,
- B99F57C0262D85CF0049A308 /* EZGlobalSDK.h */,
- B99F57C1262D85CF0049A308 /* modules */,
+ AEE84D3A29BABAC00078FDAD /* HDLEZVisitorRecordViewController.h */,
+ AEE84D3929BABABF0078FDAD /* HDLEZVisitorRecordViewController.m */,
+ );
+ path = Controllers;
+ sourceTree = "<group>";
+ };
+ AE5068C529B9CEDC009EA09A /* Views */ = {
+ isa = PBXGroup;
+ children = (
+ AEC306D029B9F2B5000B3861 /* HDLEZVisitorRecordView.h */,
+ AEC306D129B9F2B5000B3861 /* HDLEZVisitorRecordView.m */,
+ AEC306D329B9F2DA000B3861 /* HDLEZVisitorRecordCell.h */,
+ AEC306D429B9F2DB000B3861 /* HDLEZVisitorRecordCell.m */,
+ );
+ path = Views;
+ sourceTree = "<group>";
+ };
+ AE5068C629B9CEE6009EA09A /* Models */ = {
+ isa = PBXGroup;
+ children = (
+ AE5068D629B9DB5E009EA09A /* HDLEZTemInfoModel.h */,
+ AE5068D729B9DB5E009EA09A /* HDLEZTemInfoModel.m */,
+ );
+ path = Models;
+ sourceTree = "<group>";
+ };
+ AEDD940829B0329D00EAA2CA /* include */ = {
+ isa = PBXGroup;
+ children = (
+ AEDD940929B0329D00EAA2CA /* EZConstants.h */,
+ AEDD940A29B0329D00EAA2CA /* EZHCNetDeviceSDK.h */,
+ AEDD940B29B0329D00EAA2CA /* EZStreamPlayer.h */,
+ AEDD940C29B0329D00EAA2CA /* EZOpenSDK.h */,
+ AEDD940D29B0329D00EAA2CA /* EZConstants_Auth.h */,
+ AEDD940E29B0329D00EAA2CA /* EZPlayer.h */,
+ AEDD940F29B0329D00EAA2CA /* EZGlobalSDK.h */,
+ AEDD941029B0329D00EAA2CA /* modules */,
+ AEDD944029B0329D00EAA2CA /* EZConstants_WifiConfig.h */,
);
path = include;
sourceTree = "<group>";
};
- B99F57C1262D85CF0049A308 /* modules */ = {
+ AEDD941029B0329D00EAA2CA /* modules */ = {
isa = PBXGroup;
children = (
- B99F57C2262D85CF0049A308 /* EZDeviceVersion.h */,
- B99F57C3262D85CF0049A308 /* EZUserInfo.h */,
- B99F57C4262D85CF0049A308 /* EZDeviceUpgradeStatus.h */,
- B99F57C5262D85CF0049A308 /* EZAccessToken.h */,
- B99F57C6262D85CF0049A308 /* EZPlayerExParamInfo.h */,
- B99F57C7262D85CF0049A308 /* EzvizWatchServerInfo.h */,
- B99F57C8262D85CF0049A308 /* EZDeviceRecordDownloadTask.h */,
- B99F57C9262D85CF0049A308 /* EzvizRecordFileInfo.h */,
- B99F57CA262D85CF0049A308 /* EZDeviceRecordFile.h */,
- B99F57CB262D85CF0049A308 /* EZLeaveMessage.h */,
- B99F57CC262D85CF0049A308 /* EZHiddnsDeviceInfo.h */,
- B99F57CD262D85CF0049A308 /* EZVideoTalkView.h */,
- B99F57CE262D85CF0049A308 /* EZDeviceInfo.h */,
- B99F57CF262D85CF0049A308 /* EZRecordDownloader.h */,
- B99F57D0262D85CF0049A308 /* EZRecordDownloadTask.h */,
- B99F57D1262D85CF0049A308 /* EZVideoTransformer.h */,
- B99F57D2262D85CF0049A308 /* EZTokenKit.h */,
- B99F57D3262D85CF0049A308 /* EZDetectorInfo.h */,
- B99F57D4262D85CF0049A308 /* EZHCNetDeviceInfo.h */,
- B99F57D5262D85CF0049A308 /* EZCameraInfo.h */,
- B99F57D6262D85CF0049A308 /* EZCloudRecordFile.h */,
- B99F57D7262D85CF0049A308 /* EZCloudRecordDownloadTask.h */,
- B99F57D8262D85CF0049A308 /* EZAreaInfo.h */,
- B99F57D9262D85CF0049A308 /* EZProbeDeviceInfo.h */,
- B99F57DA262D85CF0049A308 /* EZVideoTalkSDK.h */,
- B99F57DB262D85CF0049A308 /* EZMediaSessionVideoParam.h */,
- B99F57DC262D85CF0049A308 /* EZVideoQualityInfo.h */,
- B99F57DD262D85CF0049A308 /* EZAlarmInfo.h */,
- B99F57DE262D85CF0049A308 /* EZVideoTalkParam.h */,
- B99F57DF262D85CF0049A308 /* EZSADPDeviceInfo.h */,
- B99F57E0262D85CF0049A308 /* EZStorageInfo.h */,
+ AEDD941129B0329D00EAA2CA /* EZDeviceVersion.h */,
+ AEDD941229B0329D00EAA2CA /* EZUserInfo.h */,
+ AEDD941329B0329D00EAA2CA /* EZDeviceUpgradeStatus.h */,
+ AEDD941429B0329D00EAA2CA /* EZAccessToken.h */,
+ AEDD941529B0329D00EAA2CA /* EZPlayerExParamInfo.h */,
+ AEDD941629B0329D00EAA2CA /* EZVideoTalk */,
+ AEDD942229B0329D00EAA2CA /* EZAPDevInfo.h */,
+ AEDD942329B0329D00EAA2CA /* EzvizWatchServerInfo.h */,
+ AEDD942429B0329D00EAA2CA /* EZDeviceRecordDownloadTask.h */,
+ AEDD942529B0329D00EAA2CA /* EzvizRecordFileInfo.h */,
+ AEDD942629B0329D00EAA2CA /* EZDeviceRecordFile.h */,
+ AEDD942729B0329D00EAA2CA /* EZLeaveMessage.h */,
+ AEDD942829B0329D00EAA2CA /* EZWiFiItemInfo.h */,
+ AEDD942929B0329D00EAA2CA /* EZRecordCoverFetcherManager.h */,
+ AEDD942A29B0329D00EAA2CA /* EZHiddnsDeviceInfo.h */,
+ AEDD942B29B0329D00EAA2CA /* Sadp.h */,
+ AEDD942C29B0329D00EAA2CA /* EZDeviceInfo.h */,
+ AEDD942D29B0329D00EAA2CA /* EZRecordDownloader.h */,
+ AEDD942E29B0329D00EAA2CA /* EZRecordDownloadTask.h */,
+ AEDD942F29B0329D00EAA2CA /* EZVideoTransformer.h */,
+ AEDD943029B0329D00EAA2CA /* EZTokenKit.h */,
+ AEDD943129B0329D00EAA2CA /* EZPMPlayPrivateTokenInfo.h */,
+ AEDD943229B0329D00EAA2CA /* EZDetectorInfo.h */,
+ AEDD943329B0329D00EAA2CA /* EZHCNetDeviceInfo.h */,
+ AEDD943429B0329D00EAA2CA /* EZCameraInfo.h */,
+ AEDD943529B0329D00EAA2CA /* EZCloudRecordFile.h */,
+ AEDD943629B0329D00EAA2CA /* EZCloudRecordDownloadTask.h */,
+ AEDD943729B0329D00EAA2CA /* EZAreaInfo.h */,
+ AEDD943829B0329D00EAA2CA /* EZProbeDeviceInfo.h */,
+ AEDD943929B0329D00EAA2CA /* EZDevicePtzAngleInfo.h */,
+ AEDD943A29B0329D00EAA2CA /* EZDeviceCloudServiceInfo.h */,
+ AEDD943B29B0329D00EAA2CA /* EZVideoQualityInfo.h */,
+ AEDD943C29B0329D00EAA2CA /* EZAlarmInfo.h */,
+ AEDD943D29B0329D00EAA2CA /* EZConfigTokenInfo.h */,
+ AEDD943E29B0329D00EAA2CA /* EZSADPDeviceInfo.h */,
+ AEDD943F29B0329D00EAA2CA /* EZStorageInfo.h */,
);
path = modules;
+ sourceTree = "<group>";
+ };
+ AEDD941629B0329D00EAA2CA /* EZVideoTalk */ = {
+ isa = PBXGroup;
+ children = (
+ AEDD941729B0329D00EAA2CA /* EZRTCCameraParam.h */,
+ AEDD941829B0329D00EAA2CA /* EZRTCMediaSessionDefines.h */,
+ AEDD941929B0329D00EAA2CA /* EZVideoTalkSDKDefines.h */,
+ AEDD941A29B0329D00EAA2CA /* EZVideoTalkView.h */,
+ AEDD941B29B0329D00EAA2CA /* EZConferenceClient.h */,
+ AEDD941C29B0329D00EAA2CA /* EZVideoTalkGlobal.h */,
+ AEDD941D29B0329D00EAA2CA /* EZVideoTalk.h */,
+ AEDD941E29B0329D00EAA2CA /* EZVideoTalkSDK.h */,
+ AEDD941F29B0329D00EAA2CA /* EZRTCSampleHandleManager.h */,
+ AEDD942029B0329D00EAA2CA /* EZBAVParam.h */,
+ AEDD942129B0329D00EAA2CA /* EZRTCVideoEncodeParam.h */,
+ );
+ path = EZVideoTalk;
+ sourceTree = "<group>";
+ };
+ AEE84D3C29BAC3CA0078FDAD /* Base */ = {
+ isa = PBXGroup;
+ children = (
+ AEE84D4729BAE2550078FDAD /* HDLEZNoDataView.h */,
+ AEE84D4829BAE2590078FDAD /* HDLEZNoDataView.m */,
+ AEE84D4529BACBAD0078FDAD /* HDLEZTopBarView.h */,
+ AEE84D4429BACBAA0078FDAD /* HDLEZTopBarView.m */,
+ AEE84D3E29BAC5BF0078FDAD /* HDLEZBaseViewController.h */,
+ AEE84D3D29BAC5BC0078FDAD /* HDLEZBaseViewController.m */,
+ );
+ path = Base;
+ sourceTree = "<group>";
+ };
+ B95AB88126984DD5007BC8D7 /* YYModel */ = {
+ isa = PBXGroup;
+ children = (
+ B95AB88626984DD5007BC8D7 /* NSObject+YYModel.h */,
+ B95AB88426984DD5007BC8D7 /* NSObject+YYModel.m */,
+ B95AB88226984DD5007BC8D7 /* YYClassInfo.h */,
+ B95AB88526984DD5007BC8D7 /* YYClassInfo.m */,
+ B95AB88326984DD5007BC8D7 /* YYModel.h */,
+ );
+ path = YYModel;
sourceTree = "<group>";
};
B9BC92F125C0FC3500C024FE = {
@@ -682,6 +797,8 @@
B9BC97D325C0FFB600C024FE /* EZ */ = {
isa = PBXGroup;
children = (
+ AEE84D3C29BAC3CA0078FDAD /* Base */,
+ AE5068C329B9CE40009EA09A /* TempPassword */,
B9BC97D425C0FFB600C024FE /* Venders */,
B9BC990225C0FFBA00C024FE /* CustomUI */,
B9BC991725C0FFBA00C024FE /* EZStartPushParameter.h */,
@@ -1040,7 +1157,6 @@
isa = PBXGroup;
children = (
B9BC98FD25C0FFBA00C024FE /* libcrypto.a */,
- B9BC98FE25C0FFBA00C024FE /* libssl.a */,
);
path = lib;
sourceTree = "<group>";
@@ -1057,26 +1173,26 @@
B9BC990225C0FFBA00C024FE /* CustomUI */ = {
isa = PBXGroup;
children = (
- B9BC990325C0FFBA00C024FE /* NSDate-Utilities.h */,
+ B9BC991325C0FFBA00C024FE /* EZCustomTableView.h */,
+ B9BC990925C0FFBA00C024FE /* EZCustomTableView.m */,
+ B9BC990E25C0FFBA00C024FE /* EZQRView.h */,
B9BC990425C0FFBA00C024FE /* EZQRView.m */,
B9BC990525C0FFBA00C024FE /* EZRecordCell.h */,
- B9BC990625C0FFBA00C024FE /* HIKLoadPercentView.h */,
- B9BC990725C0FFBA00C024FE /* HIKLoadViewItem+configPath.h */,
- B9BC990825C0FFBA00C024FE /* HIKLoadViewItem.h */,
- B9BC990925C0FFBA00C024FE /* EZCustomTableView.m */,
- B9BC990A25C0FFBA00C024FE /* UIImageView+EzvizOpenSDK.m */,
- B9BC990B25C0FFBA00C024FE /* Toast+UIView.m */,
- B9BC990C25C0FFBA00C024FE /* HIKLoadView.h */,
B9BC990D25C0FFBA00C024FE /* EZRecordCell.m */,
- B9BC990E25C0FFBA00C024FE /* EZQRView.h */,
- B9BC990F25C0FFBA00C024FE /* NSDate-Utilities.m */,
- B9BC991025C0FFBA00C024FE /* HIKLoadViewItem+configPath.m */,
+ B9BC990625C0FFBA00C024FE /* HIKLoadPercentView.h */,
B9BC991125C0FFBA00C024FE /* HIKLoadPercentView.m */,
- B9BC991225C0FFBA00C024FE /* UIImageView+EzvizOpenSDK.h */,
- B9BC991325C0FFBA00C024FE /* EZCustomTableView.h */,
- B9BC991425C0FFBA00C024FE /* HIKLoadViewItem.m */,
+ B9BC990C25C0FFBA00C024FE /* HIKLoadView.h */,
B9BC991525C0FFBA00C024FE /* HIKLoadView.m */,
+ B9BC990825C0FFBA00C024FE /* HIKLoadViewItem.h */,
+ B9BC991425C0FFBA00C024FE /* HIKLoadViewItem.m */,
+ B9BC990725C0FFBA00C024FE /* HIKLoadViewItem+configPath.h */,
+ B9BC991025C0FFBA00C024FE /* HIKLoadViewItem+configPath.m */,
+ B9BC990325C0FFBA00C024FE /* NSDate-Utilities.h */,
+ B9BC990F25C0FFBA00C024FE /* NSDate-Utilities.m */,
B9BC991625C0FFBA00C024FE /* Toast+UIView.h */,
+ B9BC990B25C0FFBA00C024FE /* Toast+UIView.m */,
+ B9BC991225C0FFBA00C024FE /* UIImageView+EzvizOpenSDK.h */,
+ B9BC990A25C0FFBA00C024FE /* UIImageView+EzvizOpenSDK.m */,
);
path = CustomUI;
sourceTree = "<group>";
@@ -1097,72 +1213,72 @@
B9BC992325C0FFBA00C024FE /* UIViewControllers */ = {
isa = PBXGroup;
children = (
- B9BC992F25C0FFBA00C024FE /* EZDeviceTableViewController.h */,
- B9BC994925C0FFBB00C024FE /* EZDeviceTableViewController.m */,
- B9BC996025C0FFBB00C024FE /* EZLivePlayViewController.h */,
- B9BC993925C0FFBA00C024FE /* EZLivePlayViewController.m */,
- B9BC993325C0FFBA00C024FE /* EZSettingViewController.h */,
- B9BC995825C0FFBB00C024FE /* EZSettingViewController.m */,
- B9BC994025C0FFBB00C024FE /* EZPlaybackViewController.h */,
- B9BC996A25C0FFBB00C024FE /* EZPlaybackViewController.m */,
- B9BC994625C0FFBB00C024FE /* EZEditViewController.h */,
- B9BC996525C0FFBB00C024FE /* EZEditViewController.m */,
- B9BC992425C0FFBA00C024FE /* EZWifiInfoViewController.h */,
- B9BC995525C0FFBB00C024FE /* EZWifiInfoViewController.m */,
+ B9BC994525C0FFBB00C024FE /* EZAddByQRCodeViewController.h */,
+ B9BC996625C0FFBB00C024FE /* EZAddByQRCodeViewController.m */,
+ B9BC995A25C0FFBB00C024FE /* EZAPConfigResultViewController.h */,
+ B9BC993F25C0FFBB00C024FE /* EZAPConfigResultViewController.m */,
+ B9BC996725C0FFBB00C024FE /* EZAPWiFiConfigViewController.h */,
+ B9BC994425C0FFBB00C024FE /* EZAPWiFiConfigViewController.m */,
B9BC992525C0FFBA00C024FE /* EZCalendarViewController.h */,
B9BC995425C0FFBB00C024FE /* EZCalendarViewController.m */,
+ B9BC995025C0FFBB00C024FE /* EZCameraTableViewController.h */,
+ B9BC992625C0FFBA00C024FE /* EZCameraTableViewController.m */,
+ B9BC993225C0FFBA00C024FE /* EZDdnsDeviceTableViewController.h */,
+ B9BC995925C0FFBB00C024FE /* EZDdnsDeviceTableViewController.m */,
+ B9BC996125C0FFBB00C024FE /* EZDeviceRestartTipsViewController.h */,
+ B9BC993825C0FFBA00C024FE /* EZDeviceRestartTipsViewController.m */,
+ B9BC995625C0FFBB00C024FE /* EZDeviceResultViewController.h */,
+ B9BC993525C0FFBA00C024FE /* EZDeviceResultViewController.m */,
+ B9BC992F25C0FFBA00C024FE /* EZDeviceTableViewController.h */,
+ B9BC994925C0FFBB00C024FE /* EZDeviceTableViewController.m */,
+ B9BC994C25C0FFBB00C024FE /* EZDeviceUpgradeViewController.h */,
+ B9BC992D25C0FFBA00C024FE /* EZDeviceUpgradeViewController.m */,
+ B9BC994625C0FFBB00C024FE /* EZEditViewController.h */,
+ B9BC996525C0FFBB00C024FE /* EZEditViewController.m */,
+ B9BC996925C0FFBB00C024FE /* EZEncryptCameraCell.h */,
+ B9BC994225C0FFBB00C024FE /* EZEncryptCameraCell.m */,
+ B9BC996825C0FFBB00C024FE /* EZHubDebugViewController.h */,
+ B9BC994325C0FFBB00C024FE /* EZHubDebugViewController.m */,
+ B9BC995C25C0FFBB00C024FE /* EZInputSerialViewController.h */,
+ B9BC993D25C0FFBB00C024FE /* EZInputSerialViewController.m */,
+ B9BC996025C0FFBB00C024FE /* EZLivePlayViewController.h */,
+ B9BC993925C0FFBA00C024FE /* EZLivePlayViewController.m */,
B9BC994B25C0FFBB00C024FE /* EZLocalCameraListViewController.h */,
B9BC992E25C0FFBA00C024FE /* EZLocalCameraListViewController.m */,
B9BC995725C0FFBB00C024FE /* EZLocalDeviceListViewController.h */,
B9BC993425C0FFBA00C024FE /* EZLocalDeviceListViewController.m */,
- B9BC995025C0FFBB00C024FE /* EZCameraTableViewController.h */,
- B9BC992625C0FFBA00C024FE /* EZCameraTableViewController.m */,
- B9BC993025C0FFBA00C024FE /* EZWifiTipsViewController.h */,
- B9BC994A25C0FFBB00C024FE /* EZWifiTipsViewController.m */,
- B9BC994F25C0FFBB00C024FE /* EZWifiConfigViewController.h */,
- B9BC992725C0FFBA00C024FE /* EZWifiConfigViewController.m */,
+ B9BC995F25C0FFBB00C024FE /* EZLocalRealPlayViewController.h */,
+ B9BC993A25C0FFBA00C024FE /* EZLocalRealPlayViewController.m */,
+ B9BC993E25C0FFBB00C024FE /* EZLocationAlertVCViewController.h */,
+ B9BC995B25C0FFBB00C024FE /* EZLocationAlertVCViewController.m */,
+ B9BC993B25C0FFBA00C024FE /* EZMessageListViewController.h */,
+ B9BC995E25C0FFBB00C024FE /* EZMessageListViewController.m */,
+ B9BC996225C0FFBB00C024FE /* EZMessagePhotoViewController.h */,
+ B9BC993725C0FFBA00C024FE /* EZMessagePhotoViewController.m */,
B9BC994E25C0FFBB00C024FE /* EZMessagePlaybackViewController.h */,
B9BC992B25C0FFBA00C024FE /* EZMessagePlaybackViewController.m */,
B9BC994D25C0FFBB00C024FE /* EZMultiChannelRealPlayVC.h */,
B9BC992C25C0FFBA00C024FE /* EZMultiChannelRealPlayVC.m */,
- B9BC994C25C0FFBB00C024FE /* EZDeviceUpgradeViewController.h */,
- B9BC992D25C0FFBA00C024FE /* EZDeviceUpgradeViewController.m */,
- B9BC994825C0FFBB00C024FE /* UIViewController+EZBackPop.h */,
- B9BC993125C0FFBA00C024FE /* UIViewController+EZBackPop.m */,
- B9BC993225C0FFBA00C024FE /* EZDdnsDeviceTableViewController.h */,
- B9BC995925C0FFBB00C024FE /* EZDdnsDeviceTableViewController.m */,
- B9BC995625C0FFBB00C024FE /* EZDeviceResultViewController.h */,
- B9BC993525C0FFBA00C024FE /* EZDeviceResultViewController.m */,
+ B9BC996B25C0FFBB00C024FE /* EZOfflineCameraCell.h */,
+ B9BC994125C0FFBB00C024FE /* EZOfflineCameraCell.m */,
+ B9BC994725C0FFBB00C024FE /* EZOnlineCameraCell.h */,
+ B9BC996425C0FFBB00C024FE /* EZOnlineCameraCell.m */,
+ B9BC994025C0FFBB00C024FE /* EZPlaybackViewController.h */,
+ B9BC996A25C0FFBB00C024FE /* EZPlaybackViewController.m */,
+ B9BC993325C0FFBA00C024FE /* EZSettingViewController.h */,
+ B9BC995825C0FFBB00C024FE /* EZSettingViewController.m */,
+ B9BC994F25C0FFBB00C024FE /* EZWifiConfigViewController.h */,
+ B9BC992725C0FFBA00C024FE /* EZWifiConfigViewController.m */,
+ B9BC992425C0FFBA00C024FE /* EZWifiInfoViewController.h */,
+ B9BC995525C0FFBB00C024FE /* EZWifiInfoViewController.m */,
+ B9BC993025C0FFBA00C024FE /* EZWifiTipsViewController.h */,
+ B9BC994A25C0FFBB00C024FE /* EZWifiTipsViewController.m */,
B9BC993625C0FFBA00C024FE /* UIAlertController+TextField.h */,
B9BC996325C0FFBB00C024FE /* UIAlertController+TextField.m */,
- B9BC996225C0FFBB00C024FE /* EZMessagePhotoViewController.h */,
- B9BC993725C0FFBA00C024FE /* EZMessagePhotoViewController.m */,
- B9BC996125C0FFBB00C024FE /* EZDeviceRestartTipsViewController.h */,
- B9BC993825C0FFBA00C024FE /* EZDeviceRestartTipsViewController.m */,
- B9BC995F25C0FFBB00C024FE /* EZLocalRealPlayViewController.h */,
- B9BC993A25C0FFBA00C024FE /* EZLocalRealPlayViewController.m */,
- B9BC993B25C0FFBA00C024FE /* EZMessageListViewController.h */,
- B9BC995E25C0FFBB00C024FE /* EZMessageListViewController.m */,
B9BC993C25C0FFBB00C024FE /* UINavigationController+EZOpenSDK.h */,
B9BC995D25C0FFBB00C024FE /* UINavigationController+EZOpenSDK.m */,
- B9BC995C25C0FFBB00C024FE /* EZInputSerialViewController.h */,
- B9BC993D25C0FFBB00C024FE /* EZInputSerialViewController.m */,
- B9BC995B25C0FFBB00C024FE /* EZLocationAlertVCViewController.m */,
- B9BC993E25C0FFBB00C024FE /* EZLocationAlertVCViewController.h */,
- B9BC995A25C0FFBB00C024FE /* EZAPConfigResultViewController.h */,
- B9BC993F25C0FFBB00C024FE /* EZAPConfigResultViewController.m */,
- B9BC994725C0FFBB00C024FE /* EZOnlineCameraCell.h */,
- B9BC994125C0FFBB00C024FE /* EZOfflineCameraCell.m */,
- B9BC996925C0FFBB00C024FE /* EZEncryptCameraCell.h */,
- B9BC994225C0FFBB00C024FE /* EZEncryptCameraCell.m */,
- B9BC996B25C0FFBB00C024FE /* EZOfflineCameraCell.h */,
- B9BC996425C0FFBB00C024FE /* EZOnlineCameraCell.m */,
- B9BC996825C0FFBB00C024FE /* EZHubDebugViewController.h */,
- B9BC994325C0FFBB00C024FE /* EZHubDebugViewController.m */,
- B9BC996725C0FFBB00C024FE /* EZAPWiFiConfigViewController.h */,
- B9BC994425C0FFBB00C024FE /* EZAPWiFiConfigViewController.m */,
- B9BC994525C0FFBB00C024FE /* EZAddByQRCodeViewController.h */,
- B9BC996625C0FFBB00C024FE /* EZAddByQRCodeViewController.m */,
+ B9BC994825C0FFBB00C024FE /* UIViewController+EZBackPop.h */,
+ B9BC993125C0FFBA00C024FE /* UIViewController+EZBackPop.m */,
);
path = UIViewControllers;
sourceTree = "<group>";
@@ -1170,6 +1286,8 @@
B9BC996F25C0FFBB00C024FE /* Global */ = {
isa = PBXGroup;
children = (
+ AEE84D4029BAC7F60078FDAD /* HDLEZConstants.h */,
+ AEE84D4129BAC7F90078FDAD /* HDLEZConstants.m */,
B95AB87C26984D49007BC8D7 /* HDLAlarmInfo.h */,
B95AB87D26984D49007BC8D7 /* HDLAlarmInfo.m */,
B9BC997125C0FFBB00C024FE /* GlobalKit.h */,
@@ -1185,8 +1303,8 @@
B9BC997425C0FFBC00C024FE /* SDK */ = {
isa = PBXGroup;
children = (
- B99F57BA262D85CF0049A308 /* include */,
- B9BC999A25C0FFBD00C024FE /* libEZOpenSDK.a */,
+ AEDD940829B0329D00EAA2CA /* include */,
+ AEDD940729B0329D00EAA2CA /* libEZOpenSDK.a */,
);
path = SDK;
sourceTree = "<group>";
@@ -1244,11 +1362,11 @@
isa = PBXGroup;
children = (
B9EA4E6525C7E805000FFDA2 /* MJRefreshBackGifFooter.h */,
- B9EA4E6625C7E805000FFDA2 /* MJRefreshBackStateFooter.h */,
- B9EA4E6725C7E805000FFDA2 /* MJRefreshBackNormalFooter.h */,
B9EA4E6825C7E806000FFDA2 /* MJRefreshBackGifFooter.m */,
- B9EA4E6925C7E806000FFDA2 /* MJRefreshBackStateFooter.m */,
+ B9EA4E6725C7E805000FFDA2 /* MJRefreshBackNormalFooter.h */,
B9EA4E6A25C7E806000FFDA2 /* MJRefreshBackNormalFooter.m */,
+ B9EA4E6625C7E805000FFDA2 /* MJRefreshBackStateFooter.h */,
+ B9EA4E6925C7E806000FFDA2 /* MJRefreshBackStateFooter.m */,
);
path = Back;
sourceTree = "<group>";
@@ -1373,6 +1491,8 @@
B9BC9A2125C0FFBD00C024FE /* EZLocationAlertVCViewController.m in Sources */,
B9BC99D025C0FFBD00C024FE /* UIViewController+DDKit.m in Sources */,
B9BC99F625C0FFBD00C024FE /* Aspects.m in Sources */,
+ AEE84D4629BACBAD0078FDAD /* HDLEZTopBarView.m in Sources */,
+ AEE84D4929BAE2590078FDAD /* HDLEZNoDataView.m in Sources */,
B9EA4E8925C7E806000FFDA2 /* UIView+MJExtension.m in Sources */,
B9BC99FA25C0FFBD00C024FE /* Toast+UIView.m in Sources */,
B9BC9A1525C0FFBD00C024FE /* EZAPConfigResultViewController.m in Sources */,
@@ -1382,6 +1502,7 @@
B9BC9A0A25C0FFBD00C024FE /* EZMultiChannelRealPlayVC.m in Sources */,
B9BC99F825C0FFBD00C024FE /* EZCustomTableView.m in Sources */,
B9BC9A2625C0FFBD00C024FE /* EZEditViewController.m in Sources */,
+ AEC306D529B9F2DB000B3861 /* HDLEZVisitorRecordCell.m in Sources */,
B9BC9A2525C0FFBD00C024FE /* EZOnlineCameraCell.m in Sources */,
B9BC999B25C0FFBD00C024FE /* UITableView+FDTemplateLayoutCell.m in Sources */,
B9BC9A0325C0FFBD00C024FE /* CameraListCell.m in Sources */,
@@ -1428,6 +1549,7 @@
B9BC9A1A25C0FFBD00C024FE /* EZDeviceTableViewController.m in Sources */,
B9BC99D625C0FFBD00C024FE /* AFNetworkActivityIndicatorManager.m in Sources */,
B9BC99EF25C0FFBD00C024FE /* SDWebImageDownloaderOperation.m in Sources */,
+ AEE84D4329BAC7FE0078FDAD /* HDLEZConstants.m in Sources */,
B9BC99BD25C0FFBD00C024FE /* MWGridCell.m in Sources */,
B9BC9A0E25C0FFBD00C024FE /* EZLocalDeviceListViewController.m in Sources */,
B9BC9A1125C0FFBD00C024FE /* EZDeviceRestartTipsViewController.m in Sources */,
@@ -1437,10 +1559,12 @@
B9BC92FF25C0FC3500C024FE /* EZSDK.m in Sources */,
B9BC99BA25C0FFBD00C024FE /* MWPhoto.m in Sources */,
B9BC9A1D25C0FFBD00C024FE /* EZCalendarViewController.m in Sources */,
+ AEC306D229B9F2B5000B3861 /* HDLEZVisitorRecordView.m in Sources */,
B9BC9A2925C0FFBD00C024FE /* GlobalKit.m in Sources */,
B9BC99E625C0FFBD00C024FE /* SDWebImageManager.m in Sources */,
B9BC99EC25C0FFBD00C024FE /* SDWebImageCompat.m in Sources */,
B9BC99E125C0FFBD00C024FE /* AFNetworkReachabilityManager.m in Sources */,
+ AEE84D3B29BABAC00078FDAD /* HDLEZVisitorRecordViewController.m in Sources */,
B9BC9A1B25C0FFBD00C024FE /* EZWifiTipsViewController.m in Sources */,
B9BC99D925C0FFBD00C024FE /* UIActivityIndicatorView+AFNetworking.m in Sources */,
B9BC9A0725C0FFBD00C024FE /* EZWifiConfigViewController.m in Sources */,
@@ -1455,6 +1579,7 @@
B9BC99D125C0FFBD00C024FE /* NSDate+DDKit.m in Sources */,
B9BC9A1625C0FFBD00C024FE /* EZOfflineCameraCell.m in Sources */,
B9BC99CC25C0FFBD00C024FE /* UIColor+DDKit.m in Sources */,
+ AEE84D3F29BAC5BF0078FDAD /* HDLEZBaseViewController.m in Sources */,
B9BC99DC25C0FFBD00C024FE /* AFURLConnectionOperation.m in Sources */,
B9BC99E525C0FFBD00C024FE /* MKAnnotationView+WebCache.m in Sources */,
B9BC9A0F25C0FFBD00C024FE /* EZDeviceResultViewController.m in Sources */,
@@ -1466,6 +1591,7 @@
B9BC99FD25C0FFBD00C024FE /* HIKLoadViewItem+configPath.m in Sources */,
B9BC99E325C0FFBD00C024FE /* MBProgressHUD.m in Sources */,
B9EA4E8F25C7E806000FFDA2 /* MJRefreshAutoNormalFooter.m in Sources */,
+ AE5068D829B9DB5E009EA09A /* HDLEZTemInfoModel.m in Sources */,
B9BC99BB25C0FFBD00C024FE /* MWTapDetectingView.m in Sources */,
B9BC99F725C0FFBD00C024FE /* EZQRView.m in Sources */,
B9BC9A1F25C0FFBD00C024FE /* EZSettingViewController.m in Sources */,
@@ -1544,7 +1670,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
- IPHONEOS_DEPLOYMENT_TARGET = 10.0;
+ IPHONEOS_DEPLOYMENT_TARGET = 12.0;
MACH_O_TYPE = staticlib;
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
MTL_FAST_MATH = YES;
@@ -1598,7 +1724,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
- IPHONEOS_DEPLOYMENT_TARGET = 10.0;
+ IPHONEOS_DEPLOYMENT_TARGET = 12.0;
MACH_O_TYPE = staticlib;
MTL_ENABLE_DEBUG_INFO = NO;
MTL_FAST_MATH = YES;
diff --git a/EZSDK/EZSDK.xcodeproj/xcshareddata/xcschemes/EZSDK.xcscheme b/EZSDK/EZSDK.xcodeproj/xcshareddata/xcschemes/EZSDK.xcscheme
index 8643394..0f9297c 100644
--- a/EZSDK/EZSDK.xcodeproj/xcshareddata/xcschemes/EZSDK.xcscheme
+++ b/EZSDK/EZSDK.xcodeproj/xcshareddata/xcschemes/EZSDK.xcscheme
@@ -31,7 +31,7 @@
</Testables>
</TestAction>
<LaunchAction
- buildConfiguration = "Release"
+ buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0"
diff --git a/EZSDK/EZSDK/EZ/Base/HDLEZBaseViewController.h b/EZSDK/EZSDK/EZ/Base/HDLEZBaseViewController.h
new file mode 100755
index 0000000..9ce8321
--- /dev/null
+++ b/EZSDK/EZSDK/EZ/Base/HDLEZBaseViewController.h
@@ -0,0 +1,45 @@
+//
+// HDLFVBaseViewController.h
+// Ezviz
+//
+// Created by 闄堝惎鎵� on 2022/2/21.
+// Copyright 漏 2022 hdl. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+#import "HDLEZTopBarView.h"
+NS_ASSUME_NONNULL_BEGIN
+
+@interface HDLEZBaseViewController : UIViewController
+
+@property (nonatomic, strong) HDLEZTopBarView *topBarView;
+
+@property (nonatomic, copy) NSString *rightBtnTitle;//鍙宠竟鎸夐挳鏍囬
+
+
+/*娣诲姞瀛恦iew
+ */
+-(void)addSubViews;
+
+/*璁剧疆鏍囬鍜岃繑鍥炴寜閽�
+ */
+- (void)setTopBarViewWithTitle:(NSString *)title;
+
+/*杩斿洖
+ */
+- (void)goBack;
+
+//鐐瑰嚮鍙宠竟鎸夐挳
+-(void)clickRightBtn;
+
+/*灞曠ず鏃犳暟鎹彁绀篤iew
+ */
+-(void)showNoDataViewWithMessage:(NSString *)message;
+
+/*闅愯棌鏃犳暟鎹彁绀篤iew
+ */
+-(void)hideNoDataView;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/EZSDK/EZSDK/EZ/Base/HDLEZBaseViewController.m b/EZSDK/EZSDK/EZ/Base/HDLEZBaseViewController.m
new file mode 100755
index 0000000..3364aff
--- /dev/null
+++ b/EZSDK/EZSDK/EZ/Base/HDLEZBaseViewController.m
@@ -0,0 +1,108 @@
+//
+// HDLFVBaseViewController.m
+// Ezviz
+//
+// Created by 闄堝惎鎵� on 2022/2/21.
+// Copyright 漏 2022 hdl. All rights reserved.
+//
+
+#import "HDLEZBaseViewController.h"
+#import "HDLEZNoDataView.h"
+@interface HDLEZBaseViewController ()
+@property (nonatomic, strong) HDLEZNoDataView *noDataV;
+
+@end
+
+@implementation HDLEZBaseViewController
+
+- (void)viewDidLoad {
+ [super viewDidLoad];
+ //娣诲姞鐐瑰嚮灞忓箷鎵嬪娍
+ UITapGestureRecognizer *tapGr = [[UITapGestureRecognizer alloc] initWithTarget: self action: @selector (viewTapped)];
+ tapGr.cancelsTouchesInView = NO ;
+ [ self.view addGestureRecognizer:tapGr];
+
+ self.view.backgroundColor=HDLEZ_COLOR_VIEW_BACKGROUND;
+
+ [self addSubViews];
+
+ // Do any additional setup after loading the view.
+}
+
+//璁剧疆鏍囬鍜岃繑鍥炴寜閽�
+- (void)setTopBarViewWithTitle:(NSString *)title{
+ [self.view addSubview:self.topBarView];
+ self.topBarView.titleLabel.text = title;
+}
+
+-(void)addSubViews{
+ //鏃犳暟鎹甐iew
+ _noDataV=[[HDLEZNoDataView alloc] init];
+ [self.view addSubview:_noDataV];
+ [_noDataV mas_makeConstraints:^(MASConstraintMaker *make) {
+ make.centerY.equalTo(self.view.mas_centerY);
+ make.left.equalTo(self.view).offset(20);
+ make.right.equalTo(self.view).offset(-20);
+ make.height.mas_equalTo(60);
+ }];
+ [_noDataV setHidden:YES];
+
+}
+
+
+/*灞曠ず鏃犳暟鎹彁绀篤iew
+ */
+-(void)showNoDataViewWithMessage:(NSString *)message {
+ [_noDataV setHidden:NO];
+ _noDataV.tipMsg=message;
+}
+
+
+/*闅愯棌鏃犳暟鎹彁绀篤iew
+ */
+-(void)hideNoDataView{
+ [_noDataV setHidden:YES];
+}
+
+//閫�鍑虹紪杈�
+-(void)viewTapped{
+ //閿洏閫�鍑�
+ [self.view endEditing:YES];
+}
+
+
+- (HDLEZTopBarView *)topBarView{
+ if (!_topBarView) {
+ _topBarView = [[HDLEZTopBarView alloc] initWithFrame: CGRectMake(0, 0, HDLEZ_APP_SCREEN_WIDTH, 40)];
+ [_topBarView.backButton addTarget:self action:@selector(goBack) forControlEvents:UIControlEventTouchUpInside];
+ }
+ return _topBarView;
+}
+
+
+/*杩斿洖
+ */
+- (void)goBack{
+// [self.navigationController popViewControllerAnimated:YES];
+ if ([self.navigationController.viewControllers indexOfObject:self] == 0) {
+ HDLEZLog(@"杩斿洖");
+ [self dismissViewControllerAnimated:YES completion:nil];
+ }
+ else {
+ [self.navigationController popViewControllerAnimated:YES];
+// [self.navigationController popToRootViewControllerAnimated:YES];
+ }
+}
+
+//璁剧疆鍙宠竟鎸夐挳鏍囬
+-(void)setRightBtnTitle:(NSString *)rightBtnTitle{
+ _rightBtnTitle=rightBtnTitle;
+ _topBarView.rightBtnTitle=rightBtnTitle;
+ [_topBarView.rightButton addTarget:self action:@selector(clickRightBtn) forControlEvents:UIControlEventTouchDown];
+}
+
+//鐐瑰嚮鍙宠竟鎸夐挳
+-(void)clickRightBtn{
+
+}
+@end
diff --git a/EZSDK/EZSDK/EZ/Base/HDLEZNoDataView.h b/EZSDK/EZSDK/EZ/Base/HDLEZNoDataView.h
new file mode 100755
index 0000000..d7470a7
--- /dev/null
+++ b/EZSDK/EZSDK/EZ/Base/HDLEZNoDataView.h
@@ -0,0 +1,18 @@
+//
+// HDLFVNoDataView.h
+// Ezviz
+//
+// Created by 闄堝惎鎵� on 2022/4/8.
+// Copyright 漏 2022 hdl. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface HDLEZNoDataView : UIView
+@property (nonatomic, copy)NSString *tipMsg;//鎻愮ず鍐呭
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/EZSDK/EZSDK/EZ/Base/HDLEZNoDataView.m b/EZSDK/EZSDK/EZ/Base/HDLEZNoDataView.m
new file mode 100755
index 0000000..9c1fa4f
--- /dev/null
+++ b/EZSDK/EZSDK/EZ/Base/HDLEZNoDataView.m
@@ -0,0 +1,43 @@
+//
+// HDLFVNoDataView.m
+// Ezviz
+//
+// Created by 闄堝惎鎵� on 2022/4/8.
+// Copyright 漏 2022 hdl. All rights reserved.
+//
+
+#import "HDLEZNoDataView.h"
+@interface HDLEZNoDataView()
+@property (nonatomic, strong)UILabel *tipL;//鎻愮ずlable
+
+@end
+@implementation HDLEZNoDataView
+
+-(instancetype)init{
+ self = [super init];
+ if (self) {
+ [self initUI];
+ }
+
+ return self;
+}
+
+
+-(void)initUI{
+ _tipL=[[UILabel alloc] init];
+ [self addSubview:_tipL];
+ [_tipL mas_makeConstraints:^(MASConstraintMaker *make) {
+ make.left.top.right.bottom.equalTo(self);
+ }];
+ _tipL.textColor=HDLEZ_COLOR_TEXT_INPUT_GRAY;
+ _tipL.font=HDLEZ_Get_FontRegularWithSize(HDLEZ_FontSize_15);
+ _tipL.textAlignment=NSTextAlignmentCenter;
+ _tipL.numberOfLines=2;
+ _tipL.adjustsFontSizeToFitWidth=YES;
+}
+
+-(void)setTipMsg:(NSString *)tipMsg{
+ _tipMsg=tipMsg;
+ _tipL.text=_tipMsg;
+}
+@end
diff --git a/EZSDK/EZSDK/EZ/Base/HDLEZTopBarView.h b/EZSDK/EZSDK/EZ/Base/HDLEZTopBarView.h
new file mode 100755
index 0000000..24b6d02
--- /dev/null
+++ b/EZSDK/EZSDK/EZ/Base/HDLEZTopBarView.h
@@ -0,0 +1,25 @@
+//
+// TopBarView.h
+// Ezviz
+//
+// Created by 闄堝惎鎵� on 2022/3/23.
+//
+
+#import <UIKit/UIKit.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface HDLEZTopBarView : UIView
+
+@property (nonatomic, strong) UIButton *backButton;//杩斿洖鎸夐挳
+@property (nonatomic, strong) UIButton *rightButton;//鍙宠竟鎸夐挳
+@property (nonatomic, strong) UILabel *titleLabel;//鏍囬
+@property (nonatomic, strong) UIView *bottomLine;//涓嬪垝绾�
+@property (nonatomic, copy) NSString *rightBtnTitle;//鍙宠竟鎸夐挳鏍囬
+
+
+-(void)setTitle:(NSString *)title;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/EZSDK/EZSDK/EZ/Base/HDLEZTopBarView.m b/EZSDK/EZSDK/EZ/Base/HDLEZTopBarView.m
new file mode 100755
index 0000000..4f16694
--- /dev/null
+++ b/EZSDK/EZSDK/EZ/Base/HDLEZTopBarView.m
@@ -0,0 +1,104 @@
+//
+// TopBarView.m
+//Ezviz
+//
+// Created by 闄堝惎鎵� on 2022/3/23.
+//
+
+#import "HDLEZTopBarView.h"
+
+@interface HDLEZTopBarView()
+
+
+@end
+
+@implementation HDLEZTopBarView
+
+- (id)initWithFrame:(CGRect)frame
+{
+ self = [super initWithFrame:frame];
+ if (self) {
+ self.frame = CGRectMake(0, 0, HDLEZ_APP_SCREEN_WIDTH, HDLEZ_APP_TOP_BAR_HEIGHT);
+ self.backgroundColor=HDLEZ_COLOR_NAV_BACKGROUND;
+ [self addSubview:self.backButton];
+ [self addSubview:self.titleLabel];
+ [self addSubview:self.bottomLine];
+ [self addSubview:self.rightButton];
+ [self.rightButton setHidden:YES];
+ }
+ return self;
+}
+
+- (UIButton*)backButton{
+ if(!_backButton){
+ //buttonWithType UIButtonTypeSystem 璁剧疆tintColor 灏卞彲浠ユ敼鍙樺浘鐗囩殑棰滆壊
+ _backButton = [UIButton buttonWithType:UIButtonTypeSystem];
+ _backButton.frame = CGRectMake(16, HDLEZ_APP_STATUS_BAR_HEIGHT+(40-20)/2, 12, 20);
+ [_backButton setImage:[UIImage imageNamed:@"hdl_ez_ic_nav_back"] forState:UIControlStateNormal];
+ //鎸夐挳鍥炬爣棰滆壊
+ _backButton.tintColor = HDLEZ_COLOR_TEXT;
+ }
+ return _backButton;
+}
+
+- (UILabel *)titleLabel{
+ if (!_titleLabel) {
+ _titleLabel = [self NewLabel:CGRectMake(40, HDLEZ_APP_STATUS_BAR_HEIGHT, HDLEZ_APP_SCREEN_WIDTH - 80, 44) font:HDLEZ_Get_FontRegularWithSize(HDLEZ_FontSize_18) textColor:HDLEZ_COLOR_TEXT text:@""];
+ _titleLabel.textAlignment = NSTextAlignmentCenter;
+ }
+ return _titleLabel;
+}
+
+- (UIView *)bottomLine{
+ if (!_bottomLine) {
+ _bottomLine = [[UIView alloc] initWithFrame:CGRectMake(0, HDLEZ_APP_TOP_BAR_HEIGHT, HDLEZ_APP_SCREEN_WIDTH, 0.5)];
+// _bottomLine.backgroundColor=HDLFVRGBCOLOR(191, 192, 194,1.0);
+ _bottomLine.backgroundColor=HDLEZ_COLOR_TEXT;
+
+ }
+ return _bottomLine;
+}
+
+- (UIButton*)rightButton{
+ if(!_rightButton){
+ //buttonWithType UIButtonTypeSystem 璁剧疆tintColor 灏卞彲浠ユ敼鍙樺浘鐗囩殑棰滆壊
+// _rightButton = [UIButton buttonWithType:UIButtonTypeSystem];
+ _rightButton=[[UIButton alloc] init];
+ _rightButton.frame = CGRectMake(HDLEZ_APP_SCREEN_WIDTH-16-60, HDLEZ_APP_STATUS_BAR_HEIGHT, 60, 44);
+ [_rightButton setTitleColor:HDLEZ_COLOR_TEXT_LIGHT_BLUE forState:UIControlStateNormal];
+ _rightButton.titleLabel.font=HDLEZ_Get_FontRegularWithSize(HDLEZ_FontSize_14);
+ //鎸夐挳鍥炬爣棰滆壊
+// _backButton.tintColor = HDLEZ_COLOR_TEXT;
+ }
+ return _rightButton;
+}
+//
+-(void)backButtonClick{
+
+}
+
+-(void)setTitle:(NSString *)title{
+ self.titleLabel.text = title;
+}
+
+-(UILabel *)NewLabel:(CGRect)frame font:(UIFont *)font textColor:(UIColor *)color text:(NSString *)text{
+ UILabel *label = [[UILabel alloc] initWithFrame:frame];
+ label.backgroundColor = [UIColor clearColor];
+ label.font = font;
+ if (color != nil) {
+ label.textColor = color;
+ }
+ label.text = text;
+
+ return label;
+}
+
+
+//璁剧疆鍙宠竟鎸夐挳鏍囬
+-(void)setRightBtnTitle:(NSString *)rightBtnTitle{
+ _rightBtnTitle=rightBtnTitle;
+ [_rightButton setHidden:NO];
+ [_rightButton setTitle:rightBtnTitle forState:UIControlStateNormal];
+}
+
+@end
diff --git a/EZSDK/EZSDK/EZ/Base/HDLFVTopBarView.h b/EZSDK/EZSDK/EZ/Base/HDLFVTopBarView.h
new file mode 100644
index 0000000..24b6d02
--- /dev/null
+++ b/EZSDK/EZSDK/EZ/Base/HDLFVTopBarView.h
@@ -0,0 +1,25 @@
+//
+// TopBarView.h
+// Ezviz
+//
+// Created by 闄堝惎鎵� on 2022/3/23.
+//
+
+#import <UIKit/UIKit.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface HDLEZTopBarView : UIView
+
+@property (nonatomic, strong) UIButton *backButton;//杩斿洖鎸夐挳
+@property (nonatomic, strong) UIButton *rightButton;//鍙宠竟鎸夐挳
+@property (nonatomic, strong) UILabel *titleLabel;//鏍囬
+@property (nonatomic, strong) UIView *bottomLine;//涓嬪垝绾�
+@property (nonatomic, copy) NSString *rightBtnTitle;//鍙宠竟鎸夐挳鏍囬
+
+
+-(void)setTitle:(NSString *)title;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/EZSDK/EZSDK/EZ/Global/EZHttpUtil.h b/EZSDK/EZSDK/EZ/Global/EZHttpUtil.h
index 7a659f3..7f4034f 100644
--- a/EZSDK/EZSDK/EZ/Global/EZHttpUtil.h
+++ b/EZSDK/EZSDK/EZ/Global/EZHttpUtil.h
@@ -8,7 +8,7 @@
#import <Foundation/Foundation.h>
#import "ResponseData.h"
-
+#import "HDLEZTemInfoModel.h"
NS_ASSUME_NONNULL_BEGIN
/// 娌充笢鎺ュ彛缃戠粶璇锋眰宸ュ叿绫�
@@ -24,6 +24,15 @@
* @param block 鍥炶皟block
*/
- (void)getChildToken:(void (^)(NSString *accessToken))block;
+
+/**
+ * @since 娌充笢娣诲姞璁惧涔嬪墠鏈湴楠岃瘉鐨勬帴鍙o紙鏅鸿兘闂ㄩ攣浣跨敤锛岃皟鐢ㄦ帴鍙e悗杈撳叆闂ㄩ攣瀵嗙爜锛屽啀杩涜缁戝畾锛�
+ * @param deviceSerial 璁惧搴忓垪鍙�
+ * @param completion 鍥炶皟block锛宔rror涓虹┖鏃惰〃绀鸿皟鐢ㄩ獙璇佹帴鍙f垚鍔�
+ *
+ */
+- (void)verifyLocalLockByHDL:(NSString *)deviceSerial
+ completion:(void (^)(ResponseData *responseData))completion;
/**
* @since 娌充笢娣诲姞璁惧鐨勬帴鍙�
@@ -67,6 +76,62 @@
- (void)readAlarmMessage:(NSArray *)alarmIds
completion:(void (^)(ResponseData *responseData))completion;
+/**
+ * @since 娌充笢闂ㄩ攣缁堢鎺堟潈鎺ュ彛
+ * @param password 闂ㄩ攣瀵嗙爜
+ * @param deviceId 璁惧id
+ * @param verifyCode sdk鑾峰彇鐨勬牎楠岀爜
+ * @param completion 鍥炶皟block锛宔rror涓虹┖鏃惰〃绀烘垚鍔�
+ *
+ */
+- (void)authLockByHDL:(NSString *)password
+ deviceId:(NSString *)deviceId
+ verifyCode:(NSString *)verifyCode
+ completion:(void (^)(ResponseData *responseData))completion;
+
+
+/**
+ * @since 娌充笢杩滅▼寮�閿佹帴鍙�
+ * @param streamToken 璁惧搴忓垪鍙�
+ * @param deviceId 璁惧id
+ * @param completion 鍥炶皟block锛宔rror涓虹┖鏃惰〃绀烘垚鍔�
+ *
+ */
+- (void)remoteOpenByHDL:(NSString *)streamToken
+ deviceId:(NSString *)deviceId
+ completion:(void (^)(ResponseData *responseData))completion;
+
+/**
+ * @since 娌充笢鑾峰彇涓存椂瀵嗙爜鍒楄〃鎺ュ彛
+ * @param deviceId 璁惧id
+ * @param completion 鍥炶皟block锛宔rror涓虹┖鏃惰〃绀烘垚鍔�
+ *
+ */
+- (void)getTempListByHDL:(NSString *)deviceId
+ completion:(void (^)(ResponseData *responseData))completion;
+
+/**
+ * @since 娌充笢娣诲姞涓存椂瀵嗙爜鎺ュ彛
+ * @param tempInfo 涓存椂瀵嗙爜淇℃伅
+ * @param deviceId 璁惧id
+ * @param completion 鍥炶皟block锛宔rror涓虹┖鏃惰〃绀烘垚鍔�
+ *
+ */
+- (void)addTempByHDL:(HDLEZTemInfoModel *)tempInfo
+ deviceId:(NSString *)deviceId
+ completion:(void (^)(ResponseData *responseData))completion;
+
+/**
+ * @since 娌充笢鍒犻櫎涓存椂瀵嗙爜鎺ュ彛
+ * @param extVisitorId 涓存椂瀵嗙爜绱㈠紩
+ * @param deviceId 璁惧id
+ * @param completion 鍥炶皟block锛宔rror涓虹┖鏃惰〃绀烘垚鍔�
+ *
+ */
+- (void)deleteTempByHDL:(NSString *)extVisitorId
+ deviceId:(NSString *)deviceId
+ completion:(void (^)(ResponseData *responseData))completion;
+
@end
NS_ASSUME_NONNULL_END
diff --git a/EZSDK/EZSDK/EZ/Global/EZHttpUtil.m b/EZSDK/EZSDK/EZ/Global/EZHttpUtil.m
index d87504f..c9f2102 100644
--- a/EZSDK/EZSDK/EZ/Global/EZHttpUtil.m
+++ b/EZSDK/EZSDK/EZ/Global/EZHttpUtil.m
@@ -14,10 +14,16 @@
#define TestRequestHttpsHost @"https://test-gz.hdlcontrol.com"
#pragma mark API
+#define API_POST_EZ_VerifyLocalLock @"/home-wisdom/platform/yingshi/lock/verifyLocalLock"//钀ょ煶闂ㄩ攣鏈湴楠岃瘉
#define API_POST_EZ_AddDevice @"/home-wisdom/platform/yingshi/child/addDevice"
#define API_POST_EZ_GetChildToken @"/home-wisdom/platform/yingshi/child/token"
#define API_POST_EZ_ChildDelDevice @"/home-wisdom/platform/yingshi/child/deleteDevice"
#define API_POST_EZ_RefreshToken @"/smart-footstone/member/oauth/login"
+#define API_POST_EZ_LockAuth @"/home-wisdom/platform/yingshi/lock/auth"//钀ょ煶闂ㄩ攣缁堢鎺堟潈
+#define API_POST_EZ_RemoteOpen @"/home-wisdom/platform/yingshi/lock/remote/open/door"//钀ょ煶闂ㄩ攣杩滅▼寮�閿�
+#define API_POST_EZ_TempList @"/home-wisdom/platform/yingshi/lock/temp/list"//钀ょ煶闂ㄤ复鏃跺瘑鐮佸垪琛�
+#define API_POST_EZ_AddTemp @"/home-wisdom/platform/yingshi/lock/temp/add"//钀ょ煶闂ㄦ坊鍔犱复鏃跺瘑鐮�
+#define API_POST_EZ_DeleteTemp @"/home-wisdom/platform/yingshi/lock/temp/delete"//钀ょ煶闂ㄥ垹闄や复鏃跺瘑鐮�
#define API_POST_EZ_GetAlarmList @"/home-wisdom/platform/yingshi/alarm/records"//鑾峰彇鎶ヨ娑堟伅
#define API_POST_EZ_DeleteAlarmMes @"/home-wisdom/platform/yingshi/alarm/delete"//鍒犻櫎鎶ヨ娑堟伅
@@ -72,6 +78,31 @@
// return task;
}
+
+/**
+ * @since 娌充笢娣诲姞璁惧涔嬪墠鏈湴楠岃瘉鐨勬帴鍙o紙鏅鸿兘闂ㄩ攣浣跨敤锛岃皟鐢ㄦ帴鍙e悗杈撳叆闂ㄩ攣瀵嗙爜锛屽啀杩涜缁戝畾锛�
+ * @param deviceSerial 璁惧搴忓垪鍙�
+ * @param completion 鍥炶皟block锛宔rror涓虹┖鏃惰〃绀鸿皟鐢ㄩ獙璇佹帴鍙f垚鍔�
+ *
+ */
+- (void)verifyLocalLockByHDL:(NSString *)deviceSerial
+ completion:(void (^)(ResponseData *responseData))completion{
+ //2.璁剧疆璇锋眰鍙傛暟
+ NSMutableDictionary *parameters = [NSMutableDictionary dictionary];
+ [parameters setValue:deviceSerial forKey:@"deviceSerial"];
+ [parameters setValue:[NSString stringWithFormat:@"%@",[GlobalKit shareKit].hdlAppKey] forKey:@"appKey"];
+ [parameters setValue: [NSString stringWithFormat:@"%d",[GlobalKit shareKit].hdlPlatform] forKey:@"platform"];
+ [parameters setValue:[GlobalKit shareKit].hdlHomeId forKey:@"homeId"];
+
+ parameters = [self GetSignRequestDictionary:parameters];
+
+ [self requestHttpsPost:API_POST_EZ_VerifyLocalLock parameters:parameters completion:^(ResponseData *responseData) {
+ if (completion) {
+ completion (responseData);
+ }
+ }];
+}
+
/**
* @since 娌充笢娣诲姞璁惧鐨勬帴鍙�
* 鏍规嵁璁惧搴忓垪鍙峰拰璁惧楠岃瘉鐮佹坊鍔犺澶囨帴鍙�
@@ -194,6 +225,147 @@
}];
}
+/**
+ * @since 娌充笢闂ㄩ攣缁堢鎺堟潈鎺ュ彛
+ * @param password 闂ㄩ攣瀵嗙爜
+ * @param deviceId 璁惧id
+ * @param verifyCode sdk鑾峰彇鐨勬牎楠岀爜
+ * @param completion 鍥炶皟block锛宔rror涓虹┖鏃惰〃绀烘坊鍔犳垚鍔�
+ *
+ */
+- (void)authLockByHDL:(NSString *)password
+ deviceId:(NSString *)deviceId
+ verifyCode:(NSString *)verifyCode
+ completion:(void (^)(ResponseData *responseData))completion{
+ //2.璁剧疆璇锋眰鍙傛暟
+ NSMutableDictionary *parameters = [NSMutableDictionary dictionary];
+ [parameters setValue:deviceId forKey:@"deviceId"];
+ [parameters setValue:[NSString stringWithFormat:@"%@",[GlobalKit shareKit].hdlAppKey] forKey:@"appKey"];
+ [parameters setValue:password forKey:@"password"];
+ [parameters setValue:verifyCode forKey:@"verifyCode"];
+ [parameters setValue:[GlobalKit shareKit].hdlHomeId forKey:@"homeId"];
+
+ parameters = [self GetSignRequestDictionary:parameters];
+
+ NSLog(@"缁堢鎺堟潈鍙傛暟锛�%@",parameters);
+
+ [self requestHttpsPost:API_POST_EZ_LockAuth parameters:parameters completion:^(ResponseData *responseData) {
+ if (completion) {
+ completion (responseData);
+ }
+ }];
+
+}
+
+/**
+ * @since 娌充笢杩滅▼寮�閿佹帴鍙�
+ * @param streamToken 璁惧搴忓垪鍙�
+ * @param deviceId 璁惧id
+ * @param completion 鍥炶皟block锛宔rror涓虹┖鏃惰〃绀烘坊鍔犳垚鍔�
+ *
+ */
+- (void)remoteOpenByHDL:(NSString *)streamToken
+ deviceId:(NSString *)deviceId
+ completion:(void (^)(ResponseData *responseData))completion{
+ //2.璁剧疆璇锋眰鍙傛暟
+ NSMutableDictionary *parameters = [NSMutableDictionary dictionary];
+ [parameters setValue:deviceId forKey:@"deviceId"];
+ [parameters setValue:[NSString stringWithFormat:@"%@",[GlobalKit shareKit].hdlAppKey] forKey:@"appKey"];
+ [parameters setValue:streamToken forKey:@"streamToken"];
+ [parameters setValue:[GlobalKit shareKit].hdlHomeId forKey:@"homeId"];
+
+ parameters = [self GetSignRequestDictionary:parameters];
+
+ NSLog(@"寮�闂ㄥ弬鏁帮細%@",parameters);
+
+ [self requestHttpsPost:API_POST_EZ_RemoteOpen parameters:parameters completion:^(ResponseData *responseData) {
+ if (completion) {
+ completion (responseData);
+ }
+ }];
+
+}
+
+/**
+ * @since 娌充笢鑾峰彇涓存椂瀵嗙爜鍒楄〃鎺ュ彛
+ * @param deviceId 璁惧id
+ * @param completion 鍥炶皟block锛宔rror涓虹┖鏃惰〃绀烘垚鍔�
+ *
+ */
+- (void)getTempListByHDL:(NSString *)deviceId
+ completion:(void (^)(ResponseData *responseData))completion{
+ //2.璁剧疆璇锋眰鍙傛暟
+ NSMutableDictionary *parameters = [NSMutableDictionary dictionary];
+ [parameters setValue:deviceId forKey:@"deviceId"];
+ [parameters setValue:[NSString stringWithFormat:@"%@",[GlobalKit shareKit].hdlAppKey] forKey:@"appKey"];
+ [parameters setValue:[GlobalKit shareKit].hdlHomeId forKey:@"homeId"];
+
+ parameters = [self GetSignRequestDictionary:parameters];
+
+ NSLog(@"鑾峰彇涓存椂瀵嗙爜鍒楄〃鍙傛暟锛�%@",parameters);
+
+ [self requestHttpsPost:API_POST_EZ_TempList parameters:parameters completion:^(ResponseData *responseData) {
+ if (completion) {
+ completion (responseData);
+ }
+ }];
+}
+
+/**
+ * @since 娌充笢娣诲姞涓存椂瀵嗙爜鎺ュ彛
+ * @param tempInfo 涓存椂瀵嗙爜淇℃伅
+ * @param deviceId 璁惧id
+ * @param completion 鍥炶皟block锛宔rror涓虹┖鏃惰〃绀烘垚鍔�
+ *
+ */
+- (void)addTempByHDL:(HDLEZTemInfoModel *)tempInfo
+ deviceId:(NSString *)deviceId
+ completion:(void (^)(ResponseData *responseData))completion{
+ //璁剧疆璇锋眰鍙傛暟
+ NSMutableDictionary *parameters = [NSMutableDictionary dictionaryWithDictionary:[tempInfo yy_modelToJSONObject]];
+ [parameters setValue:deviceId forKey:@"deviceId"];
+ [parameters setValue:[NSString stringWithFormat:@"%@",[GlobalKit shareKit].hdlAppKey] forKey:@"appKey"];
+ [parameters setValue:[GlobalKit shareKit].hdlHomeId forKey:@"homeId"];
+
+ parameters = [self GetSignRequestDictionary:parameters];
+
+ NSLog(@"娣诲姞涓存椂瀵嗙爜鍙傛暟锛�%@",parameters);
+
+ [self requestHttpsPost:API_POST_EZ_AddTemp parameters:parameters completion:^(ResponseData *responseData) {
+ if (completion) {
+ completion (responseData);
+ }
+ }];
+}
+
+/**
+ * @since 娌充笢鍒犻櫎涓存椂瀵嗙爜鎺ュ彛
+ * @param extVisitorId 涓存椂瀵嗙爜绱㈠紩
+ * @param deviceId 璁惧id
+ * @param completion 鍥炶皟block锛宔rror涓虹┖鏃惰〃绀烘垚鍔�
+ *
+ */
+- (void)deleteTempByHDL:(NSString *)extVisitorId
+ deviceId:(NSString *)deviceId
+ completion:(void (^)(ResponseData *responseData))completion{
+ //璁剧疆璇锋眰鍙傛暟
+ NSMutableDictionary *parameters = [NSMutableDictionary dictionary];
+ [parameters setValue:extVisitorId forKey:@"extVisitorId"];
+ [parameters setValue:deviceId forKey:@"deviceId"];
+ [parameters setValue:[NSString stringWithFormat:@"%@",[GlobalKit shareKit].hdlAppKey] forKey:@"appKey"];
+ [parameters setValue:[GlobalKit shareKit].hdlHomeId forKey:@"homeId"];
+
+ parameters = [self GetSignRequestDictionary:parameters];
+
+ NSLog(@"鍒犻櫎涓存椂瀵嗙爜鍙傛暟锛�%@",parameters);
+
+ [self requestHttpsPost:API_POST_EZ_DeleteTemp parameters:parameters completion:^(ResponseData *responseData) {
+ if (completion) {
+ completion (responseData);
+ }
+ }];
+
+}
/// 鍒锋柊token
/// @param block 缁撴灉
@@ -251,9 +423,10 @@
}];
}
}];
+ }else{
+ completion(responseData);
}
- completion(responseData);
}
}];
}
@@ -292,7 +465,7 @@
if(responseObject != NULL){
//4.瑙f瀽鎷垮埌鐨勫搷搴旀暟鎹�
- NSLog(@"%@",[[NSString alloc]initWithData:responseObject encoding:NSUTF8StringEncoding]);
+ NSLog(@"鏁版嵁杩斿洖%@",[[NSString alloc]initWithData:responseObject encoding:NSUTF8StringEncoding]);
NSDictionary * outDic = [NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingAllowFragments error:nil];
responseData = [[ResponseData alloc] initWithDictionary:outDic];
}
diff --git a/EZSDK/EZSDK/EZ/Global/GlobalKit.h b/EZSDK/EZSDK/EZ/Global/GlobalKit.h
index d8917f4..48842f4 100644
--- a/EZSDK/EZSDK/EZ/Global/GlobalKit.h
+++ b/EZSDK/EZSDK/EZ/Global/GlobalKit.h
@@ -7,7 +7,7 @@
//
#import <Foundation/Foundation.h>
-
+#import "EZSDK.h"
//#define CURR_LANG ([[NSLocale preferredLanguages] objectAtIndex:0])
//#define LanguageIsChinese ([CURR_LANG rangeOfString:@"zh-Hans"].location != NSNotFound)
////涓枃璧板浗鍐咃紝 涓嶆槸涓枃璧版捣澶�
@@ -23,6 +23,7 @@
@property (nonatomic, copy) NSString *hdlAccessToken;
@property (nonatomic, copy) NSString *hdlRefreshToken;
@property (nonatomic, copy) NSString *hdlHomeId;
+@property (nonatomic, copy) NSString *hdlAppKey;
@property (nonatomic, copy) NSString *accessToken;
@property (nonatomic, copy) NSString *deviceSerialNo; //璁惧搴忓垪鍙�
@@ -30,6 +31,7 @@
@property (nonatomic, copy) NSString *deviceVerifyCode; //璁惧楠岃瘉鐮�
@property (nonatomic, copy) NSMutableDictionary *deviceVerifyCodeBySerial; //鍐呭瓨瀛樺偍锛氳澶囬獙璇佺爜锛圴alue锛夊簭鍒楀彿锛圞ey锛夊瓧鍏�
@property (nonatomic, copy) NSString *configDevSerial; //鎸囧畾璁惧搴忓垪鍙凤紙鍙�夛級
+@property (nonatomic, assign) HDLEZDeviceType deviceType;//璁惧绫诲瀷
+ (instancetype)shareKit;
diff --git a/EZSDK/EZSDK/EZ/Global/HDLEZConstants.h b/EZSDK/EZSDK/EZ/Global/HDLEZConstants.h
new file mode 100755
index 0000000..e590f45
--- /dev/null
+++ b/EZSDK/EZSDK/EZ/Global/HDLEZConstants.h
@@ -0,0 +1,181 @@
+//
+// Constants.h
+// SDKDemo
+//
+// Created by Tim Lei on 10/13/15.
+// Copyright 漏 2015 FreeView. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+//#import "NSBundle+HDLEZ.h"
+
+// 鏃ュ織杈撳嚭
+#ifdef DEBUG
+#define HDLEZLog(fmt, ...) NSLog((@"- HDLEZSDK: " fmt), ##__VA_ARGS__)
+#else
+#define HDLEZLog(...)
+#endif
+
+//鍥介檯鍖栬瑷�
+#define HDLEZLocallizedString(x, ...) NSLocalizedString(x, nil)
+
+/* Default Font Name */
+#define HDLEZ_App_Default_Font_Name @"Helvetica Neue"
+
+/* NavigationBar Style */
+#define HDLEZ_NavigationBar_Bar_Tint_Color [UIColor colorWithHex:0x3C6DD2 alpha:1.0]
+#define HDLEZ_NavigationBar_Tint_Color [UIColor colorWithHex:0xFFFFFF alpha:1.0]
+#define HDLEZ_NavigationBar_Foreground_Color [UIColor colorWithHex:0xFFFFFF alpha:1.0]
+#define HDLEZ_NavigationBar_Title_Shadow_Color [UIColor colorWithHex:0x0 alpha:1.0]
+#define HDLEZ_NavigationBar_Title_Font_Size 18.0
+
+#define HDLEZ_APP_SCREEN_BOUNDS [[UIScreen mainScreen] bounds]
+#define HDLEZ_IPhoneX ([UIApplication sharedApplication].statusBarFrame.size.height >= 44)
+#define HDLEZ_APP_SCREEN_HEIGHT (HDLEZ_APP_SCREEN_BOUNDS.size.height)
+#define HDLEZ_APP_SCREEN_WIDTH (HDLEZ_APP_SCREEN_BOUNDS.size.width)
+#define HDLEZ_APP_TOP_BAR_HEIGHT (HDLEZ_IPhoneX ? 88 : 64)
+#define HDLEZ_APP_STATUS_BAR_HEIGHT (HDLEZ_IPhoneX ? 44 : 20)
+#define HDLEZ_APP_TAB_BOTTOM_HEIGHT (HDLEZ_IPhoneX ? 34 : 0)
+
+#define HDLEZHEXCOLOR(rgbValue, a) [UIColor colorWithRed:((float)((rgbValue & 0xFF0000) >> 16)) / 255.0 green:((float)((rgbValue & 0xFF00) >> 8)) / 255.0 blue:((float)(rgbValue & 0xFF)) / 255.0 alpha:a]
+
+#define HDLEZRGBCOLOR(r,g,b,a) [UIColor colorWithRed:(r)/255 green:(g)/255 blue:(b)/255 alpha:a]
+
+// Design Width&Height
+#define HDLEZDesignWidth 375
+#define HDLEZDesignHeight 667
+#define HDLEZGetRealWidth(W) W / (HDLEZDesignWidth * 1.0f / APP_SCREEN_WIDTH)
+#define HDLEZGetRealHeight(H) H / (HDLEZDesignHeight * 1.0f / APP_SCREEN_HEIGHT)
+
+
+// 瀛椾綋棰滆壊*
+
+#define HDLEZ_COLOR_TITLE_BLACK HDLEZHEXCOLOR(0x1B2D4D,1.0)
+
+
+#define HDLEZ_COLOR_TEXT HDLEZHEXCOLOR(0x333333,1.0)
+#define HDLEZ_COLOR_TEXT_HIGLIGHT HDLEZHEXCOLOR(0xFB744A,1.0)
+#define HDLEZ_COLOR_TEXT_WHITE HDLEZHEXCOLOR(0xFFFFFF,1.0)
+#define HDLEZ_COLOR_TEXT_ORANGE HDLEZHEXCOLOR(0xFC744B,1.0)
+#define HDLEZ_COLOR_TEXT_GRAY HDLEZHEXCOLOR(0x666666,1.0)
+#define HDLEZ_COLOR_TEXT_LIGHT_GRAY HDLEZHEXCOLOR(0xC0C7D4,1.0)
+#define HDLEZ_COLOR_TEXT_DETAIL_GRAY HDLEZHEXCOLOR(0x999999,1.0)
+#define HDLEZ_COLOR_TEXT_LIGHT_BLUE HDLEZHEXCOLOR(0x4484F4,1.0)
+#define HDLEZ_COLOR_TEXT_TITLE_GRAY HDLEZHEXCOLOR(0x1B2D4D,1.0)
+#define HDLEZ_COLOR_TEXT_INPUT_GRAY HDLEZHEXCOLOR(0xA5AEBC,1.0)
+#define HDLEZ_COLOR_TEXT_INPUT_PLACEHOLD_GRAY HDLEZHEXCOLOR(0xC0C7D4,1.0)
+#define HDLEZ_COLOR_TEXT_BUTTON_GRAY HDLEZHEXCOLOR(0x798394,1.0)
+
+
+
+//鑳屾櫙棰滆壊
+#define HDLEZ_COLOR_NAV_BACKGROUND HDLEZHEXCOLOR(0xF7F7F7,1.0) //瀵艰埅鏍忚儗鏅鑹�
+#define HDLEZ_COLOR_VIEW_BACKGROUND HDLEZHEXCOLOR(0xF2F3F7,1.0) //鍚庤鍥捐儗鏅鑹�
+#define HDLEZ_COLOR_VIEW_FOREGROUND HDLEZHEXCOLOR(0xFFFFFF,1.0) //鍓嶈鍥捐儗鏅鑹�
+#define HDLEZ_COLOR_BACKGROUND_GRAY HDLEZHEXCOLOR(0x000000,0.4) //鐏拌壊鑳屾櫙棰滆壊
+#define HDLEZ_COLOR_BACKGROUND_BLACK HDLEZHEXCOLOR(0x232323,1.0) //榛戣壊鑳屾櫙棰滆壊
+#define HDLEZ_COLOR_BACKGROUND_ORANGE HDLEZHEXCOLOR(0xFC744B,1.0) //姗欒壊鑳屾櫙棰滆壊
+#define HDLEZ_COLOR_BACKGROUND_IMAGE HDLEZHEXCOLOR(0xE9E9E9,1.0) //鍥剧墖鑳屾櫙棰滆壊
+#define HDLEZ_COLOR_BACKGROUND_BUTTON HDLEZHEXCOLOR(0x4484F4,1.0) //鎸夐挳鑳屾櫙棰滆壊
+#define HDLEZ_COLOR_BACKGROUND_BUTTON_GRAY HDLEZHEXCOLOR(0xC0C7D4,1.0) //鎸夐挳鐏拌儗鏅鑹�
+#define HDLEZ_COLOR_BACKGROUND_LINE HDLEZHEXCOLOR(0xECEDEE,1.0) //涓嬪垝绾胯儗鏅鑹�
+
+
+//瀛椾綋澶у皬
+
+#define HDLEZ_FontSize_15 15 // 灏忔爣棰樺瓧鍙� 15
+#define HDLEZ_FontSize_16 16 // 灏忔爣棰樺瓧鍙� 16
+#define HDLEZ_FontSize_12 12 // 灏忔爣棰樺瓧鍙� 12
+#define HDLEZ_FontSize_10 10 // 灏忔爣棰樺瓧鍙� 10
+#define HDLEZ_FontSize_14 14 // 灏忔爣棰樺瓧鍙� 14
+#define HDLEZ_FontSize_24 24 // 灏忔爣棰樺瓧鍙� 24
+#define HDLEZ_FontSize_18 18 // 灏忔爣棰樺瓧鍙� 18
+
+#define HDLEZ_APP_UIFont @"PingFangSC-Regular"//鑻规柟-绠� 甯歌浣�
+#define HDLEZ_APP_UIFont_BOLD @"PingFangSC-Semibold"//鑻规柟-绠� 涓矖浣�
+#define HDLEZ_APP_UIFont_Medium @"PingFangSC-Medium"//鑻规柟-绠� 涓粦浣�
+
+#define HDLEZ_Get_FontMediumWithSize(s) [UIFont fontWithName:HDLEZ_APP_UIFont_Medium size:s]
+#define HDLEZ_Get_FontRegularWithSize(s) [UIFont fontWithName:HDLEZ_APP_UIFont size:s]
+#define HDLEZ_Get_FontBoldWithSize(s) [UIFont fontWithName:HDLEZ_APP_UIFont_BOLD size:s]
+
+
+
+// 鍒涘缓涓存椂瀵嗙爜閫氱煡
+#define HDLEZNotificationChangeTemP @"hdlEZNotificationChangeTemP"
+
+//// 浜鸿劯淇℃伅鍙樺寲閫氱煡浜嬩欢d
+//#define HDLEZNotificationChangeFace @"hdlNotificationChangeFace"
+//
+//// 閫氳瘽缁撴潫閫氱煡
+//#define HDLF_FV_NF_END_CALL @"hdlNotificationEndCall"
+//
+//// 閫氳瘽寮�濮嬮�氱煡
+//#define HDLF_FV_NF_BEGIN_CALL @"hdlNotificationBeginCall"
+//
+//
+//// 閫氳瘽绫诲瀷
+//#define HDLF_FV_CALL_TYPE_KEY @"HDLEZCallTypeKey"
+
+@interface HDLEZConstants : NSObject
+/*鑾峰彇褰撳墠controller
+ */
++(UIViewController *)currentVC;
+
+/*鑾峰彇褰撳墠window
+ */
++(UIWindow*)appWindow;
+
+/*鎴浘
+ */
++(UIImage *)captureImageFromView:(UIView *)view;
+
+/*淇濆瓨鍥剧墖鍒扮浉鍐�
+ */
++(void)saveImageToPhotosAlbum:(UIImage *)savedImage;
+
+/**
+ * 鐢熸垚浜岀淮鐮�
+ */
++ (UIImage *)creatCIQRCodeImage:(NSString *)dataStr;
+
+/*鑾峰彇鐗瑰畾鏃堕棿鏍煎紡鐨勬椂闂村瓧绗︿覆
+ */
++(NSString *)timeStrWithFormate:(NSString *)formate data:(NSDate *)date;
+
+/**
+ 璁$畻鏂囧瓧楂樺害锛屽厑璁告崲琛岃绠�
+
+ @param fontSize 鏂囧瓧澶у皬
+ @param widht 鏂囧瓧瀹藉害
+ @param text 鏂囧瓧鍐呭
+ @return 杩斿洖鏂囧瓧鐨勯珮搴�
+ */
++(CGFloat)sizeLineFeedWithFont:(CGFloat)fontSize textSizeWidht:(CGFloat)widht text:(NSString*)text;
+
+
+
+/**
+ * 淇濆瓨鏁版嵁
+ */
++ (void)saveObject:(id )obj key:(NSString*)key;
+
+/**
+ * 鑾峰彇鏁版嵁
+ */
++ (id)getObjectBykey:(NSString*)key;
+
+/*灏忎簬涓や綅鏁板墠闈㈣嚜鍔ㄥ~琛�0
+ */
++(NSString *)autoFillZero:(NSInteger)value;
+
+
+/*鏃堕棿瀵规瘮
+ */
++ (int)compareOneDay:(NSDate *)oneDay withAnotherDay:(NSDate *)anotherDay;
+
+/*鏃堕棿鏍煎紡杞崲
+ */
++(NSString *)turnDateString:(NSString*)dateString toFormater:(NSString*)formater;
+
+@end
diff --git a/EZSDK/EZSDK/EZ/Global/HDLEZConstants.m b/EZSDK/EZSDK/EZ/Global/HDLEZConstants.m
new file mode 100755
index 0000000..c10fa7d
--- /dev/null
+++ b/EZSDK/EZSDK/EZ/Global/HDLEZConstants.m
@@ -0,0 +1,290 @@
+//
+// Constants.m
+// SDKDemo
+//
+// Created by Tim Lei on 10/13/15.
+// Copyright 漏 2015 FreeView. All rights reserved.
+//
+
+#import "HDLEZConstants.h"
+#import <Photos/Photos.h>
+@implementation HDLEZConstants
+/*鑾峰彇褰撳墠controller
+ */
++(UIViewController *)currentVC{
+ UIViewController *currentVC;
+ UIViewController *rootVC=[self appWindow].rootViewController;
+ if ([rootVC presentedViewController]) {
+ rootVC=[rootVC presentedViewController];
+ }
+ if ([rootVC isKindOfClass:[UITabBarController class]]) {
+ currentVC=[(UITabBarController*)rootVC selectedViewController];
+ }else if([rootVC isKindOfClass:[UINavigationController class]]){
+ currentVC=[(UINavigationController*)rootVC visibleViewController];
+ }else{
+ currentVC=rootVC;
+ }
+ return currentVC;
+}
+
+/*鑾峰彇褰撳墠window
+ */
++(UIWindow*)appWindow{
+ UIWindow *window;
+ if (@available(iOS 13.0, *)) {
+ HDLEZLog(@"windows:%@",[UIApplication sharedApplication].windows);
+ window = [UIApplication sharedApplication].windows[0];
+ if (!window) {
+ window=[UIApplication sharedApplication].delegate.window;
+ }
+ } else {
+ window = [UIApplication sharedApplication].delegate.window;
+ }
+ return window;
+}
+
+
++(UIImage *)captureImageFromView:(UIView *)view{
+
+// // currentView 褰撳墠鐨剉iew 鍒涘缓涓�涓熀浜庝綅鍥剧殑鍥惧舰涓婁笅鏂囧苟鎸囧畾澶у皬涓�
+// UIGraphicsBeginImageContextWithOptions(CGSizeMake(view.frame.size.width, view.frame.size.height), NO, 0.0);
+// // renderInContext鍛堢幇鎺ュ彈鑰呭強鍏跺瓙鑼冨洿鍒版寚瀹氱殑涓婁笅鏂�
+// [view.layer renderInContext:UIGraphicsGetCurrentContext()];
+// // 杩斿洖涓�涓熀浜庡綋鍓嶅浘褰笂涓嬫枃鐨勫浘鐗�
+// UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
+// // 绉婚櫎鏍堥《鐨勫熀浜庡綋鍓嶄綅鍥剧殑鍥惧舰涓婁笅鏂�
+// UIGraphicsEndImageContext();
+// // 淇濆瓨鍥剧墖
+// //UIImageWriteToSavedPhotosAlbum(viewImage, nil, nil, nil);
+// return viewImage;
+
+ UIGraphicsBeginImageContextWithOptions(view.bounds.size, NO, 0.0);
+
+ // Render our snapshot into the image context
+
+ [view drawViewHierarchyInRect:view.bounds afterScreenUpdates:NO];
+
+ // Grab the image from the context
+
+ UIImage *complexViewImage = UIGraphicsGetImageFromCurrentImageContext();
+
+ // Finish using the context
+
+ UIGraphicsEndImageContext();
+
+ return complexViewImage;
+
+
+}
+
+#pragma 淇濆瓨鍥剧墖鍒扮浉鍐�
++(void)saveImageToPhotosAlbum:(UIImage *)savedImage
+{
+ PHAuthorizationStatus status = [PHPhotoLibrary authorizationStatus];
+ if (status == PHAuthorizationStatusNotDetermined)
+ {
+ [PHPhotoLibrary requestAuthorization:^(PHAuthorizationStatus status) {
+ if(status == PHAuthorizationStatusAuthorized)
+ {
+ UIImageWriteToSavedPhotosAlbum(savedImage, self, @selector(imageSavedToPhotosAlbum:didFinishSavingWithError:contextInfo:), NULL);
+ }
+ }];
+ }
+ else
+ {
+ if (status == PHAuthorizationStatusAuthorized)
+ {
+ UIImageWriteToSavedPhotosAlbum(savedImage, self, @selector(imageSavedToPhotosAlbum:didFinishSavingWithError:contextInfo:), NULL);
+ }
+ }
+}
+
+// 淇濆瓨鍒扮浉鍐屾寚瀹氬洖璋冩柟娉�
++(void)imageSavedToPhotosAlbum:(UIImage *)image didFinishSavingWithError:(NSError *)error contextInfo:(void *)contextInfo
+{
+ NSString *message = nil;
+ NSString *languageName = [[[NSUserDefaults standardUserDefaults] objectForKey:@"AppleLanguages"] objectAtIndex:0];
+ NSString *saveToTheAlbumsStr,*operationFailedStr,*tipStr,*okStr;
+ // 绠�浣撲腑鏂�
+ if ([languageName rangeOfString:@"zh-Hans"].location != NSNotFound) {
+ tipStr = @"鎻愮ず";
+ saveToTheAlbumsStr = @"宸蹭繚瀛樿嚦鎵嬫満鐩稿唽.";
+ operationFailedStr = @"鎿嶄綔澶辫触";
+ okStr = @"纭";
+
+ }else{
+ tipStr = @"Prompt";
+ okStr = @"OK";
+ saveToTheAlbumsStr = @"Saved to the albums.";
+ operationFailedStr = @"Operation failed.";
+
+ }
+ if (!error) {
+ message = saveToTheAlbumsStr;
+ }
+ else
+ {
+ message = operationFailedStr;
+ }
+
+ [self showUIAlertView:message title:tipStr cancelTitle:okStr];
+}
+
++(void)showUIAlertView:(NSString *)mes title:(NSString *)title cancelTitle:(NSString *)cancleTitle
+{
+ UIAlertController *alertController = [UIAlertController alertControllerWithTitle:title message:mes preferredStyle:UIAlertControllerStyleAlert];
+ [alertController addAction:[UIAlertAction actionWithTitle:cancleTitle style:UIAlertActionStyleCancel handler:nil]];
+ [[self topMostController] presentViewController:alertController animated:YES completion:nil];
+
+}
+
++(UIViewController *) topMostController {
+ UIViewController*topController ;
+ if ([UIApplication sharedApplication].delegate.window) {
+ topController= [UIApplication sharedApplication].delegate.window.rootViewController;
+ }else{
+ topController=[self appWindow].rootViewController;
+ }
+ while(topController.presentedViewController){
+ topController=topController.presentedViewController;
+ }
+ return topController;
+}
+
+/**
+ * 鐢熸垚浜岀淮鐮�
+ */
++ (UIImage *)creatCIQRCodeImage:(NSString *)dataStr{
+ //鍒涘缓杩囨护鍣紝杩欓噷鐨凘"CIQRCodeGenerator"鏄浐瀹氱殑
+ CIFilter *filter = [CIFilter filterWithName:@"CIQRCodeGenerator"];
+ //鎭㈠榛樿璁剧疆
+ [filter setDefaults];
+ //缁欒繃婊ゅ櫒娣诲姞鏁版嵁
+ NSData *data = [dataStr dataUsingEncoding:NSUTF8StringEncoding];
+ //value蹇呴』鏄疦SData绫诲瀷
+ [filter setValue:data forKeyPath:@"inputMessage"];
+ //鐢熸垚浜岀淮鐮�
+ CIImage *outputImage = [filter outputImage];
+ //鏄剧ず浜岀淮鐮�
+ return [self creatNonInterpolatedUIImageFormCIImage:outputImage withSize:100.0];
+}
+
++ (UIImage *)creatNonInterpolatedUIImageFormCIImage:(CIImage *)image withSize:(CGFloat)size {
+ CGRect extent = CGRectIntegral(image.extent);
+ CGFloat scale = MIN(size/CGRectGetWidth(extent), size/CGRectGetHeight(extent));
+ //鍒涘缓bitmap
+ size_t width = CGRectGetWidth(extent) * scale;
+ size_t height = CGRectGetHeight(extent) * scale;
+ CGColorSpaceRef cs = CGColorSpaceCreateDeviceGray();
+ CGContextRef bitmapRef = CGBitmapContextCreate(nil, width, height, 8, 0, cs, (CGBitmapInfo)kCGImageAlphaNone);
+ CIContext *context = [CIContext contextWithOptions:nil];
+ CGImageRef bitmapImage = [context createCGImage:image fromRect:extent];
+ CGContextSetInterpolationQuality(bitmapRef, kCGInterpolationNone);
+ CGContextScaleCTM(bitmapRef, scale, scale);
+ CGContextDrawImage(bitmapRef, extent, bitmapImage);
+ //淇濆瓨bitmap鍥剧墖
+ CGImageRef scaledImage = CGBitmapContextCreateImage(bitmapRef);
+ CGContextRelease(bitmapRef);
+ CGImageRelease(bitmapImage);
+ return [UIImage imageWithCGImage:scaledImage];
+}
+
+/*鑾峰彇鐗瑰畾鏃堕棿鏍煎紡鐨勬椂闂村瓧绗︿覆
+ */
++(NSString *)timeStrWithFormate:(NSString *)formate data:(NSDate *)date{
+ NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
+ [dateFormatter setDateFormat:formate];
+ NSString *dateString = [dateFormatter stringFromDate:date];
+ return dateString;
+}
+
+/**
+ 璁$畻鏂囧瓧楂樺害锛屽厑璁告崲琛岃绠�
+
+ @param fontSize 鏂囧瓧澶у皬
+ @param widht 鏂囧瓧瀹藉害
+ @param text 鏂囧瓧鍐呭
+ @return 杩斿洖鏂囧瓧鐨勯珮搴�
+ */
++(CGFloat)sizeLineFeedWithFont:(CGFloat)fontSize textSizeWidht:(CGFloat)widht text:(NSString*)text{
+ UITextView *textView = [[UITextView alloc] initWithFrame:CGRectMake(0, 0, widht, 0)];
+ textView.text = text;
+ textView.font = [UIFont systemFontOfSize:fontSize];
+ CGSize size = CGSizeMake(widht, MAXFLOAT);
+ CGSize constraint = [textView sizeThatFits:size];
+ return constraint.height;
+}
+
+/**
+ * 淇濆瓨鏁版嵁
+ */
++ (void)saveObject:(id )obj key:(NSString*)key{
+ NSUserDefaults *UD=[NSUserDefaults standardUserDefaults];
+ [UD setObject:obj forKey:key];
+ [UD synchronize];
+}
+
+/**
+ * 鑾峰彇鏁版嵁
+ */
++ (id)getObjectBykey:(NSString*)key{
+ NSUserDefaults *UD=[NSUserDefaults standardUserDefaults];
+ return [UD objectForKey:key];
+}
+
+/*灏忎簬涓や綅鏁板墠闈㈣嚜鍔ㄥ~琛�0
+ */
++(NSString *)autoFillZero:(NSInteger)value;{
+ NSString *result=@"";
+ if (value<10) {
+ result=[NSString stringWithFormat:@"0%ld",(long)value];
+ }else{
+ result=[NSString stringWithFormat:@"%ld",(long)value];
+ }
+ return result;
+}
+
+/*鏃堕棿瀵规瘮
+ */
++ (int)compareOneDay:(NSDate *)oneDay withAnotherDay:(NSDate *)anotherDay
+{
+ NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
+ [dateFormatter setDateFormat:@"yyyy-MM-dd hh:mm:ss"];
+ NSString *oneDayStr = [dateFormatter stringFromDate:oneDay];
+ NSString *anotherDayStr = [dateFormatter stringFromDate:anotherDay];
+ NSDate *dateA = [dateFormatter dateFromString:oneDayStr];
+ NSDate *dateB = [dateFormatter dateFromString:anotherDayStr];
+ NSComparisonResult result = [dateA compare:dateB];
+ NSLog(@"oneDay : %@, anotherDay : %@", oneDay, anotherDay);
+ if (result == NSOrderedDescending) {
+ //鍦ㄦ寚瀹氭椂闂村墠闈� 杩囦簡鎸囧畾鏃堕棿 杩囨湡
+ return 1;
+ }
+ else if (result == NSOrderedAscending){
+ //娌¤繃鎸囧畾鏃堕棿 娌¤繃鏈�
+ //NSLog(@"Date1 is in the past");
+ return -1;
+ }
+ //鍒氬ソ鏃堕棿涓�鏍�.
+ //NSLog(@"Both dates are the same");
+ return 0;
+
+}
+
+/*鏃堕棿鏍煎紡杞崲
+ */
++(NSString *)turnDateString:(NSString*)dateString toFormater:(NSString*)formater{
+ //鍘熷鏃堕棿
+ NSDateFormatter *originDateFormatter = [[NSDateFormatter alloc] init];
+ [originDateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
+ NSDate *oringinDate = [originDateFormatter dateFromString:dateString];
+
+ //杞崲鐩爣鏃堕棿
+ NSDateFormatter *targetDateFormatter = [[NSDateFormatter alloc] init];
+ [targetDateFormatter setDateFormat:formater];
+ NSString *targetDateStr = [targetDateFormatter stringFromDate:oringinDate];
+
+
+ return targetDateStr;
+}
+@end
diff --git a/EZSDK/EZSDK/EZ/PrefixHeader.pch b/EZSDK/EZSDK/EZ/PrefixHeader.pch
index 96194c9..056c09a 100644
--- a/EZSDK/EZSDK/EZ/PrefixHeader.pch
+++ b/EZSDK/EZSDK/EZ/PrefixHeader.pch
@@ -19,6 +19,7 @@
//#import "NSDate+DateTools.h"
#import "Masonry.h"
#import "DDKit.h"
+#import "YYModel.h"
#import "EZOpenSDK.h"
#import "EZGlobalSDK.h"
@@ -26,5 +27,6 @@
#import "EZHttpUtil.h"
#import "EZSDK.h"
+#import "HDLEZConstants.h"
#endif /* PrefixHeader_pch */
diff --git a/EZSDK/EZSDK/EZ/TempPassword/Controllers/HDLEZVisitorRecordViewController.h b/EZSDK/EZSDK/EZ/TempPassword/Controllers/HDLEZVisitorRecordViewController.h
new file mode 100755
index 0000000..eaeb1eb
--- /dev/null
+++ b/EZSDK/EZSDK/EZ/TempPassword/Controllers/HDLEZVisitorRecordViewController.h
@@ -0,0 +1,18 @@
+//
+// HDLFVVisitorRecordViewController.h
+// Ezviz
+//
+// Created by 闄堝惎鎵� on 2022/4/29.
+// Copyright 漏 2022 hdl. All rights reserved.
+//
+
+#import "HDLEZBaseViewController.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface HDLEZVisitorRecordViewController : HDLEZBaseViewController
+@property (nonatomic, copy)NSString *deviceId;//璁惧id
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/EZSDK/EZSDK/EZ/TempPassword/Controllers/HDLEZVisitorRecordViewController.m b/EZSDK/EZSDK/EZ/TempPassword/Controllers/HDLEZVisitorRecordViewController.m
new file mode 100755
index 0000000..5b0c31d
--- /dev/null
+++ b/EZSDK/EZSDK/EZ/TempPassword/Controllers/HDLEZVisitorRecordViewController.m
@@ -0,0 +1,88 @@
+//
+// HDLFVVisitorRecordViewController.m
+// Ezviz
+//
+// Created by 闄堝惎鎵� on 2022/4/29.
+// Copyright 漏 2022 hdl. All rights reserved.
+//
+
+#import "HDLEZVisitorRecordViewController.h"
+#import "HDLEZVisitorRecordView.h"
+//#import "HDLFVTempPassViewController.h"
+//#import "HDLFVHttpRequestManager.h"
+@interface HDLEZVisitorRecordViewController ()<HDLEZVisitorRecordViewDelegate>
+@property (nonatomic, strong) HDLEZVisitorRecordView *visitorRecordV;
+
+@end
+
+@implementation HDLEZVisitorRecordViewController
+
+- (void)viewDidLoad {
+ [super viewDidLoad];
+ [self setTopBarViewWithTitle:HDLEZLocallizedString(@"device_temp_pass")];
+ [self.topBarView.bottomLine setHidden:YES];
+
+ //娉ㄥ唽涓存椂瀵嗙爜鍒楄〃鍙樺寲閫氱煡
+ [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(notificationChangeTemP) name:HDLEZNotificationChangeTemP object:nil];
+ // Do any additional setup after loading the view.
+}
+// dealloc
+- (void)dealloc{
+ HDLEZLog(@"delloc");
+ //绉婚櫎閫氱煡
+ [[NSNotificationCenter defaultCenter] removeObserver:self];
+}
+
+//涓存椂瀵嗙爜鍙樺寲閫氱煡
+-(void)notificationChangeTemP{
+ [self getTemPList];
+}
+
+-(void)addSubViews{
+
+ //
+ _visitorRecordV=[[HDLEZVisitorRecordView alloc] init];
+ [self.view addSubview:_visitorRecordV];
+ [_visitorRecordV mas_makeConstraints:^(MASConstraintMaker *make) {
+ make.top.equalTo(self.view).offset(HDLEZ_APP_TOP_BAR_HEIGHT);
+ make.left.bottom.right.equalTo(self.view);
+ }];
+ _visitorRecordV.choseDelegate=self;
+
+ [self getTemPList];
+}
+
+/*鑾峰彇涓存椂瀵嗙爜鍒楄〃
+ */
+-(void)getTemPList{
+ __weak __typeof(self)weakSelf = self;
+ [[EZHttpUtil sharedManager] getTempListByHDL:self.deviceId completion:^(ResponseData * _Nonnull responseData) {
+ HDLEZLog(@"涓存椂瀵嗙爜鍒楄〃锛�%@",responseData.data);
+ weakSelf.visitorRecordV.temPList=[NSArray yy_modelArrayWithClass:[HDLEZTemInfoModel class] json:responseData.data];
+ }];
+}
+
+/*鏃犱复鏃跺瘑鐮佹暟鎹�
+ */
+-(void)noData:(BOOL)isNodata{
+// if (isNodata) {
+// [_visitorRecordV setHidden:YES];
+// [self showNoDataViewWithMessage:HDLEZLocallizedString(@"No Data")];
+//// [_noDataV setHidden:NO];
+// }else{
+// [_visitorRecordV setHidden:NO];
+// [self hideNoDataView];
+//// [_noDataV setHidden:YES];
+// }
+}
+
+
+
+-(void)visitorRecordViewdidSelectRecord:(HDLEZTemInfoModel *)tempDetailModel{
+// HDLFVTempPassViewController *vc=[[HDLFVTempPassViewController alloc] init];
+// vc.temPassType=HDLFVTemPassType_Detail;
+// vc.temPdetailModel=tempDetailModel;
+// vc.isShowDetail=YES;
+// [self.navigationController pushViewController:vc animated:YES ];
+}
+@end
diff --git a/EZSDK/EZSDK/EZ/TempPassword/Controllers/HDLFVTempPassViewController.h b/EZSDK/EZSDK/EZ/TempPassword/Controllers/HDLFVTempPassViewController.h
new file mode 100755
index 0000000..7e90976
--- /dev/null
+++ b/EZSDK/EZSDK/EZ/TempPassword/Controllers/HDLFVTempPassViewController.h
@@ -0,0 +1,26 @@
+//
+// HDLFVTempPassViewController.h
+// Ezviz
+//
+// Created by 闄堝惎鎵� on 2022/4/22.
+// Copyright 漏 2022 hdl. All rights reserved.
+//
+
+#import "HDLFVBaseViewController.h"
+//#import "HDLFVCreateTemPassView.h"
+#import "HDLFVTemPDetailModel.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface HDLFVTempPassViewController : HDLFVBaseViewController
+@property(nonatomic,assign)HDLFVTemPassType temPassType;//涓存椂瀵嗙爜绫诲瀷
+
+@property(nonatomic,copy)NSString *deviceId;//璁惧id
+
+@property(nonatomic,strong)HDLFVTemPDetailModel *temPdetailModel;//涓存椂瀵嗙爜model
+
+@property(nonatomic,assign)BOOL isShowDetail;//鍒ゆ柇鏄惁浠庡垪琛ㄧ偣鍑昏繘鏉ョ湅璇︽儏鐨勶紙鐢ㄤ簬鍒ゆ柇鍙栨秷鍚庢槸鍚﹂渶瑕佽嚜鍔ㄨ繑鍥炲垪琛級
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/EZSDK/EZSDK/EZ/TempPassword/Controllers/HDLFVTempPassViewController.m b/EZSDK/EZSDK/EZ/TempPassword/Controllers/HDLFVTempPassViewController.m
new file mode 100755
index 0000000..94ecf5b
--- /dev/null
+++ b/EZSDK/EZSDK/EZ/TempPassword/Controllers/HDLFVTempPassViewController.m
@@ -0,0 +1,339 @@
+//
+// HDLFVTempPassViewController.m
+// Ezviz
+//
+// Created by 闄堝惎鎵� on 2022/4/22.
+// Copyright 漏 2022 hdl. All rights reserved.
+//
+
+#import "HDLFVTempPassViewController.h"
+#import "HDLFVCreateTemPassView.h"
+#import "HDLFVCommonButton.h"
+#import "PGDatePickManager.h"
+#import "HDLFVImageDetail.h"
+#import "HDLFVVisitorRecordViewController.h"
+#import "HDLFVAlert.h"
+#import "HDLFVAddTemPassModel.h"
+#import "HDLFVCancleTemPModel.h"
+#import "HDLFVHttpRequestManager.h"
+
+typedef enum {
+ HDLFVPickTimeType_Effective=0, //鐢熸晥
+ HDLFVPickTimeType_Expire=1,//澶辨晥
+}HDLFVPickTimeType;
+
+@interface HDLFVTempPassViewController ()<PGDatePickerDelegate>
+@property(nonatomic,strong)HDLFVCreateTemPassView *tempView; //涓存椂瀵嗙爜view
+@property (nonatomic, strong)HDLFVCommonButton *sureBtn;//纭鎸夐挳
+
+@property(nonatomic,strong)PGDatePicker *datePicker;//鏃堕棿閫夋嫨鍣�
+
+@property (nonatomic, copy)NSString *selectedEffectiveTime;//宸查�夋嫨鐨勭敓鏁堟椂闂�
+@property (nonatomic, copy)NSString *selectedExpireTime;//宸查�夋嫨鐨勫け鏁堟椂闂�
+
+@property(nonatomic,assign)HDLFVPickTimeType pickTimeType;//閫夋嫨鏃堕棿绫诲瀷
+
+@property(nonatomic,strong)HDLFVImageDetail * imgD;//
+
+@property(nonatomic,strong)HDLFVAddTemPassModel *addTemPModel;//娣诲姞涓存椂瀵嗙爜model
+@property(nonatomic,strong)HDLFVCancleTemPModel *cancleTemPModel;//鍙栨秷涓存椂瀵嗙爜model
+
+
+@end
+
+@implementation HDLFVTempPassViewController
+
+- (void)viewDidLoad {
+ [super viewDidLoad];
+
+ [self setTopBarViewWithTitle:HDLFVLocalizedString(@"Visitor Invitation")];
+
+ if (self.temPassType==HDLFVTemPassType_Generate) {
+ self.rightBtnTitle=HDLFVLocalizedString(@"Visitor Record");
+ }
+
+ // Do any additional setup after loading the view.
+}
+
+-(void)addSubViews{
+
+ //纭娣诲姞鎸夐挳
+ _sureBtn=[[HDLFVCommonButton alloc] init];
+ [self.view addSubview:_sureBtn];
+ [_sureBtn mas_makeConstraints:^(MASConstraintMaker *make) {
+ make.centerX.equalTo(self.view.mas_centerX);
+ make.bottom.equalTo(self.view).offset(-APP_TAB_BOTTOM_HEIGHT-20);
+ make.height.mas_equalTo(44);
+ make.width.mas_equalTo(HDLFVGetRealWidth(220));
+ }];
+ if (self.temPassType==HDLFVTemPassType_Detail) {
+ _sureBtn.titleName=HDLFVLocalizedString(@"Cancle Visitor Credentials");
+ }else{
+ _sureBtn.titleName=HDLFVLocalizedString(@"Generate Visitor Credentials");
+ }
+ [_sureBtn addTarget:self action:@selector(sure) forControlEvents:UIControlEventTouchDown];
+
+
+
+ //涓存椂瀵嗙爜view
+ _tempView=[[HDLFVCreateTemPassView alloc] init];
+ [self.view addSubview:_tempView];
+ [_tempView mas_makeConstraints:^(MASConstraintMaker *make) {
+ make.top.equalTo(self.view).offset(APP_TOP_BAR_HEIGHT);
+ make.left.right.equalTo(self.view);
+ make.bottom.equalTo(_sureBtn.mas_top).offset(-5);
+ }];
+ _tempView.temPassType=self.temPassType;
+ WeakSelf(weakSelf);
+ _tempView.validTimeV.clickBtn = ^{
+ [weakSelf selectEffectiveTime];
+ };
+
+ _tempView.expireTimeV.clickBtn = ^{
+ [weakSelf selectExpirationTime];
+ };
+
+ _tempView.temPassInputV.clickBtn = ^{
+ [weakSelf genarateTemPass];
+ };
+
+ _tempView.clickQRCodeBlock = ^(UIImage * _Nonnull image) {
+ [weakSelf tapQRCode:image];
+ };
+
+ _tempView.longTapQRCodeBlock = ^(UIImage * _Nonnull image) {
+ [weakSelf longTapQRCode:image];
+
+ };
+
+ //灞曠ず涓存椂鍑瘉璇︽儏
+ if (self.temPassType==HDLFVTemPassType_Detail) {
+
+ _tempView.phoneInputV.inputTextF.text=self.temPdetailModel.phone;
+ _tempView.temPassInputV.inputTextF.text=self.temPdetailModel.tempPwd;
+// _tempView.useTimesInputV.inputTextF.text=self.temPdetailModel.useCount;
+ _tempView.validTimeV.contentL.text=[Constants turnDateString:self.temPdetailModel.validBeginTime toFormater:[NSString stringWithFormat:@"yyyy%@MM%@dd%@ HH:mm",HDLFVLocalizedString(@"Y"),HDLFVLocalizedString(@"M"),HDLFVLocalizedString(@"D")]];
+ _tempView.expireTimeV.contentL.text=[Constants turnDateString:self.temPdetailModel.validEndTime toFormater:[NSString stringWithFormat:@"yyyy%@MM%@dd%@ HH:mm",HDLFVLocalizedString(@"Y"),HDLFVLocalizedString(@"M"),HDLFVLocalizedString(@"D")]];
+
+ _tempView.QRCodeImageV.image=[Constants creatCIQRCodeImage:_tempView.temPassInputV.inputTextF.text];
+ self.selectedEffectiveTime=self.temPdetailModel.validBeginTime;
+ self.selectedExpireTime=self.temPdetailModel.validEndTime;
+ [_tempView showQRCode:YES];
+ HDLFVLog(@"tempId鍚�:%@",self.temPdetailModel.ID);
+
+ //鍒ゆ柇鏄惁杩囨湡
+// NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
+// [dateFormatter setDateFormat:@"yyyy-MM-dd hh:mm:ss"];
+// NSDate *date = [dateFormatter dateFromString:self.temPdetailModel.validEndTime];
+// if ([Constants compareOneDay:[NSDate date] withAnotherDay:date]==1) {
+// _tempView.isInvalid=YES;
+// }
+
+ if (!self.temPdetailModel.status) {
+ HDLFVLog(@"瀵嗙爜鏃犳晥");
+ _tempView.isInvalid=YES;
+ [_sureBtn setHidden:YES];
+ }
+
+ }
+
+}
+
+//鐐瑰嚮瀵艰埅鏍忓彸杈规寜閽�
+-(void)clickRightBtn{
+ HDLFVLog(@"鐐瑰嚮浜嗗彸杈规寜閽�");
+ HDLFVVisitorRecordViewController *vc=[[HDLFVVisitorRecordViewController alloc] init];
+ [self.navigationController setNavigationBarHidden:YES];
+ [self.navigationController pushViewController:vc animated:YES];
+}
+
+
+/*鐐瑰嚮浜嗙敓鎴愪复鏃跺瘑鐮�
+ */
+-(void)genarateTemPass{
+ HDLFVLog(@"鐐瑰嚮鐢熸垚鍔ㄦ�佺爜");
+ _tempView.temPassInputV.inputTextF.text=[FVTool randomNumerWithCount:6];
+
+}
+
+/*鐐瑰嚮浜嗛�夋嫨鐢熸晥鏃堕棿
+ */
+-(void)selectEffectiveTime{
+ self.pickTimeType=HDLFVPickTimeType_Effective;
+ [self showDatePicker];
+}
+
+/*鐐瑰嚮浜嗛�夋嫨澶辨晥鏃堕棿
+ */
+-(void)selectExpirationTime{
+ self.pickTimeType=HDLFVPickTimeType_Expire;
+ [self showDatePicker];
+
+}
+
+/*鐐瑰嚮浜嗙‘璁ゆ寜閽�
+ */
+-(void)sure{
+ if (_tempView.phoneInputV.inputTextF.text.length==0||_tempView.phoneInputV.inputTextF.text.length!=11) {
+ [HDLToast showTostWithMessage:HDLFVLocalizedString(@"Please enter a correct phone number")];
+ return;
+ }
+ if (_tempView.temPassInputV.inputTextF.text.length!=6) {
+ [HDLToast showTostWithMessage:HDLFVLocalizedString(@"Input 6-digits temporary password")];
+ return;
+ }
+// if (_tempView.useTimesInputV.inputTextF.text.length==0) {
+// [HDLToast showTostWithMessage:HDLFVLocalizedString(@"Input usage times")];
+// return;
+// }
+ if (self.selectedEffectiveTime.length==0) {
+ [HDLToast showTostWithMessage:HDLFVLocalizedString(@"Please select a effective time")];
+ return;
+ }
+ if (self.selectedExpireTime.length==0) {
+ [HDLToast showTostWithMessage:HDLFVLocalizedString(@"Please select a expire time")];
+ return;
+ }
+
+ WeakSelf(weakSelf);
+ HDLFVAlert *alert=[[HDLFVAlert alloc] init];
+ if (self.temPassType==HDLFVTemPassType_Generate) {
+ self.addTemPModel=[[HDLFVAddTemPassModel alloc] init];
+ self.addTemPModel.homeId=[HDLFVHttpRequestManager sharedInstance].currentUserId;
+ self.addTemPModel.phone=_tempView.phoneInputV.inputTextF.text;
+ self.addTemPModel.tempPwd=_tempView.temPassInputV.inputTextF.text;
+ self.addTemPModel.useCount=@"10000";
+// _addTemPModel.deviceId=_deviceId;
+ self.addTemPModel.validBeginTime=self.selectedEffectiveTime;
+ self.addTemPModel.validEndTime=self.selectedExpireTime;
+
+ HDLFVLog(@"鐢熸垚锛�%@",self.addTemPModel);
+
+ [alert showAlertWithTitle:HDLFVLocalizedString(@"Tips") message:HDLFVLocalizedString(@"After confirmation, the visitor QR code will be generated, and the 6-digit dynamic digital password SMS will also be sent to the visitor's mobile phone.") height:158 cancle:^{
+ } sure:^{
+ HDLFVLog(@"鐐瑰嚮浜嗙‘璁�");
+ [weakSelf generateCredentials];
+ }];
+ }else{
+ [alert showAlertWithTitle:HDLFVLocalizedString(@"Tips") message:HDLFVLocalizedString(@"You are canceling visitor credentials") height:158 cancle:^{
+ } sure:^{
+ HDLFVLog(@"鐐瑰嚮浜嗙‘璁�");
+ [weakSelf cancleCredentials];
+ }];
+ }
+
+}
+
+/*鐐瑰嚮浜嗕簩缁寸爜
+ */
+-(void)tapQRCode:(UIImage *)QRImage{
+ HDLFVLog(@"鐐瑰嚮浜嗕簩缁寸爜");
+ _imgD=[[HDLFVImageDetail alloc] init];
+ [_imgD showImage:QRImage describe:HDLFVLocalizedString(@"Long press the QR code to save the QR code to the album")];
+
+}
+
+/*闀挎寜浜岀淮鐮�
+ */
+-(void)longTapQRCode:(UIImage*)QRCImage{
+
+ [Constants saveImageToPhotosAlbum:QRCImage];
+}
+
+/*灞曠ず鏃堕棿閫夋嫨鍣�
+ */
+-(void)showDatePicker{
+ PGDatePickManager *datePickManager = [[PGDatePickManager alloc]init];
+ datePickManager.isShadeBackgroud = true;
+ self.datePicker = datePickManager.datePicker;
+ self.datePicker.delegate = self;
+
+ datePickManager.confirmButtonTextColor=HDLFV_COLOR_TEXT_LIGHT_BLUE;
+ datePickManager.confirmButtonFont=HDLFV_Get_FontRegularWithSize(HDLFV_FontSize_16);
+ datePickManager.headerViewBackgroundColor=HDLFV_COLOR_NAV_BACKGROUND;
+ datePickManager.cancelButtonTextColor=HDLFV_COLOR_TEXT_TITLE_GRAY;
+ datePickManager.cancelButtonFont=HDLFV_Get_FontRegularWithSize(HDLFV_FontSize_16);
+
+ self.datePicker.datePickerMode = PGDatePickerModeDateHourMinute;
+ [self presentViewController:datePickManager animated:false completion:nil];
+
+}
+
+/*鐢熸垚涓存椂鍑瘉
+ */
+-(void)generateCredentials{
+ WeakSelf(weakSelf);
+ [HDLFVHUD showHudInView:self.view];
+ [[HDLFVHttpRequestManager sharedInstance] addTemPassWithAddTemPassModel:self.addTemPModel success:^(NSString *_Nullable tempId) {
+ [HDLFVHUD hideHUDForView:weakSelf.view];
+ [weakSelf generateTempSuccess:tempId];
+ } fail:^(NSError * _Nullable error) {
+ [HDLFVHUD hideHUDForView:weakSelf.view];
+ [HDLToast showTostWithMessage:error.localizedDescription];
+ }];
+}
+
+/*鍙栨秷涓存椂鍑瘉
+ */
+-(void)cancleCredentials{
+ WeakSelf(weakSelf);
+ [HDLFVHUD showHudInView:self.view];
+ _cancleTemPModel=[[HDLFVCancleTemPModel alloc] init];
+ _cancleTemPModel.homeId=[HDLFVHttpRequestManager sharedInstance].currentUserId;
+ HDLFVLog(@"tempId:%@",self.temPdetailModel.ID);
+ _cancleTemPModel.ID=self.temPdetailModel.ID;
+ [[HDLFVHttpRequestManager sharedInstance] deleteTemPassWithAddTemPassModel:_cancleTemPModel success:^{
+ [HDLFVHUD hideHUDForView:weakSelf.view];
+ [weakSelf cancleTempSuccess];
+ } fail:^(NSError * _Nullable error) {
+ [HDLFVHUD hideHUDForView:weakSelf.view];
+ [HDLToast showTostWithMessage:error.localizedDescription];
+ }];
+}
+
+/*鐢熸垚涓存椂鍑瘉鎴愬姛
+ */
+-(void)generateTempSuccess:(NSString*)tempId{
+ [_tempView showQRCode:YES];
+ _tempView.QRCodeImageV.image=[Constants creatCIQRCodeImage:_tempView.temPassInputV.inputTextF.text];
+ _tempView.temPassType=HDLFVTemPassType_Detail;
+ HDLFVLog(@"tempId:%@",tempId);
+ self.temPdetailModel=[[HDLFVTemPDetailModel alloc] init];
+ self.temPdetailModel.ID=tempId;
+ _sureBtn.titleName=HDLFVLocalizedString(@"Cancle Visitor Credentials");
+ self.temPassType=HDLFVTemPassType_Detail;
+}
+
+/*鍙栨秷涓存椂鍑瘉鎴愬姛
+ */
+-(void)cancleTempSuccess{
+ if (_isShowDetail) {
+ [[NSNotificationCenter defaultCenter] postNotificationName:HDLFVNotificationChangeTemP object:nil];
+ [self.navigationController popViewControllerAnimated:YES];
+ }else{
+ [self.navigationController popViewControllerAnimated:YES];
+//
+// _tempView.temPassType=HDLFVTemPassType_Generate;
+// _sureBtn.titleName=HDLFVLocalizedString(@"Generate Visitor Credentials");
+// self.temPassType=HDLFVTemPassType_Generate;
+ }
+}
+
+
+#pragma PGDatePickerDelegate
+- (void)datePicker:(PGDatePicker *)datePicker didSelectDate:(NSDateComponents *)dateComponents {
+
+ NSString *sendTimeStr=[NSString stringWithFormat:@"%ld-%@-%@ %@:%@:00",dateComponents.year,[Constants autoFillZero:dateComponents.month],[Constants autoFillZero:dateComponents.day],[Constants autoFillZero:dateComponents.hour],[Constants autoFillZero:dateComponents.minute]];//璇锋眰鎺ュ彛鏍煎紡鐨勬椂闂�
+ NSString *showTimeStr=[NSString stringWithFormat:@"%ld%@%@%@%@%@ %@:%@",dateComponents.year,HDLFVLocalizedString(@"Y"),[Constants autoFillZero:dateComponents.month],HDLFVLocalizedString(@"M"),[Constants autoFillZero:dateComponents.day],HDLFVLocalizedString(@"D"),[Constants autoFillZero:dateComponents.hour],[Constants autoFillZero:dateComponents.minute]];//灞曠ず鏍煎紡鐨勬椂闂�
+
+ if (self.pickTimeType==HDLFVPickTimeType_Effective) {
+ self.selectedEffectiveTime=sendTimeStr;
+ _tempView.validTimeV.contentL.text=showTimeStr;
+ }else{
+ self.selectedExpireTime=sendTimeStr;
+ _tempView.expireTimeV.contentL.text=showTimeStr;
+
+ }
+
+}
+@end
diff --git a/EZSDK/EZSDK/EZ/TempPassword/Models/HDLEZTemInfoModel.h b/EZSDK/EZSDK/EZ/TempPassword/Models/HDLEZTemInfoModel.h
new file mode 100644
index 0000000..8636d38
--- /dev/null
+++ b/EZSDK/EZSDK/EZ/TempPassword/Models/HDLEZTemInfoModel.h
@@ -0,0 +1,22 @@
+//
+// HDLEZTemListModel.h
+// EZSDK
+//
+// Created by 闄堝惎鎵� on 2023/3/9.
+//
+
+#import <Foundation/Foundation.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface HDLEZTemInfoModel : NSObject
+@property (nonatomic, copy)NSString *extVisitorId;//涓存椂瀵嗙爜绱㈠紩
+@property (nonatomic, copy)NSString *password;//瀵嗙爜
+@property (nonatomic, copy)NSString *userName;//閿佺敤鎴峰悕
+@property (nonatomic, copy)NSString *beginTime;//寮�濮嬫椂闂存埑
+@property (nonatomic, copy)NSString *endTime;//缁撴潫鏃堕棿鎴�
+@property (nonatomic, copy)NSString *limitCount;//闄愬埗娆℃暟
+@property (nonatomic, copy)NSString *useCount;//鍓╀綑浣跨敤娆℃暟
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/EZSDK/EZSDK/EZ/TempPassword/Models/HDLEZTemInfoModel.m b/EZSDK/EZSDK/EZ/TempPassword/Models/HDLEZTemInfoModel.m
new file mode 100644
index 0000000..2c433cd
--- /dev/null
+++ b/EZSDK/EZSDK/EZ/TempPassword/Models/HDLEZTemInfoModel.m
@@ -0,0 +1,12 @@
+//
+// HDLEZTemListModel.m
+// EZSDK
+//
+// Created by 闄堝惎鎵� on 2023/3/9.
+//
+
+#import "HDLEZTemInfoModel.h"
+
+@implementation HDLEZTemInfoModel
+
+@end
diff --git a/EZSDK/EZSDK/EZ/TempPassword/Views/HDLEZVisitorRecordCell.h b/EZSDK/EZSDK/EZ/TempPassword/Views/HDLEZVisitorRecordCell.h
new file mode 100755
index 0000000..4e58565
--- /dev/null
+++ b/EZSDK/EZSDK/EZ/TempPassword/Views/HDLEZVisitorRecordCell.h
@@ -0,0 +1,21 @@
+//
+// HDLFVVisitorRecordCell.h
+// Ezviz
+//
+// Created by 闄堝惎鎵� on 2022/4/29.
+// Copyright 漏 2022 hdl. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface HDLEZVisitorRecordCell : UITableViewCell
+@property (nonatomic, copy)NSString *title;//鏍囬
+@property (nonatomic, copy)NSString *describe;//鎻忚堪
+
+@property (nonatomic, strong)HDLEZTemInfoModel* tempInfo;//涓存椂瀵嗙爜淇℃伅
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/EZSDK/EZSDK/EZ/TempPassword/Views/HDLEZVisitorRecordCell.m b/EZSDK/EZSDK/EZ/TempPassword/Views/HDLEZVisitorRecordCell.m
new file mode 100755
index 0000000..fb37b13
--- /dev/null
+++ b/EZSDK/EZSDK/EZ/TempPassword/Views/HDLEZVisitorRecordCell.m
@@ -0,0 +1,138 @@
+//
+// HDLFVVisitorRecordCell.m
+// Ezviz
+//
+// Created by 闄堝惎鎵� on 2022/4/29.
+// Copyright 漏 2022 hdl. All rights reserved.
+//
+
+#import "HDLEZVisitorRecordCell.h"
+@interface HDLEZVisitorRecordCell(){
+ UIFont *titleFont,*describeFont;
+}
+
+@property (nonatomic, strong)UILabel *titleL;//鏍囬lable
+@property (nonatomic, strong)UILabel *timeL;//鏃堕棿lable
+@property (nonatomic, strong)UILabel *describeL;//鎻忚堪lable
+@property (nonatomic, strong)UIView *lineV;//涓嬪垝绾�
+@property (nonatomic, strong)UIImageView *nextImgV;//鍙崇澶�
+
+@end
+@implementation HDLEZVisitorRecordCell
+
+
+- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
+ [super setSelected:selected animated:animated];
+
+ // Configure the view for the selected state
+}
+
+
+-(instancetype)initWithFrame:(CGRect)frame{
+ if(self = [super initWithFrame:frame]){
+ self.frame=frame;
+ self.selectionStyle=UITableViewCellSelectionStyleNone;
+ titleFont=HDLEZ_Get_FontRegularWithSize(HDLEZ_FontSize_16);
+ describeFont=HDLEZ_Get_FontRegularWithSize(HDLEZ_FontSize_12);
+
+ [self initUI];
+ }
+ return self;
+}
+
+-(void)initUI{
+ //鍙崇澶�
+ _nextImgV =[[UIImageView alloc] init];
+ [self.contentView addSubview:_nextImgV];
+ [_nextImgV mas_makeConstraints:^(MASConstraintMaker *make) {
+ make.right.equalTo(self.contentView).offset(-16);
+ make.centerY.equalTo(self.contentView.mas_centerY);
+ make.height.width.mas_equalTo(16);
+ }];
+ _nextImgV.image=[UIImage imageNamed:@"hdl_ez_list_next"];
+
+ //鏍囬L
+ _titleL=[[UILabel alloc] init];
+ _titleL.font=titleFont;
+ _titleL.textColor=HDLEZ_COLOR_TITLE_BLACK;
+ _titleL.adjustsFontSizeToFitWidth=YES;
+ [self.contentView addSubview:_titleL];
+ [_titleL mas_makeConstraints:^(MASConstraintMaker *make) {
+ make.top.equalTo(self.contentView).offset(12);
+ make.left.equalTo(self.contentView).offset(16);
+ make.height.mas_equalTo(22);
+ make.right.equalTo(_nextImgV.mas_left).offset(-5);
+ }];
+
+ //鏃堕棿L
+ _timeL=[[UILabel alloc] init];
+ _timeL.font=describeFont;
+ _timeL.textColor=HDLEZ_COLOR_TEXT_LIGHT_GRAY;
+ _timeL.adjustsFontSizeToFitWidth=YES;
+ [self.contentView addSubview:_timeL];
+ [_timeL mas_makeConstraints:^(MASConstraintMaker *make) {
+ make.centerY.equalTo(self.contentView.mas_centerY);
+ make.left.right.equalTo(_titleL);
+ make.height.mas_equalTo(17);
+ }];
+
+ //鎻忚堪L
+ _describeL=[[UILabel alloc] init];
+ _describeL.font=describeFont;
+ _describeL.textColor=HDLEZ_COLOR_TEXT_LIGHT_GRAY;
+ _describeL.adjustsFontSizeToFitWidth=YES;
+ [self.contentView addSubview:_describeL];
+ [_describeL mas_makeConstraints:^(MASConstraintMaker *make) {
+ make.bottom.equalTo(self.contentView).offset(-15);
+ make.height.mas_equalTo(17);
+ make.left.right.equalTo(_titleL);
+ }];
+
+// //涓嬪垝绾�
+// _lineV=[[UIView alloc] init];
+// [self.contentView addSubview:_lineV];
+// [_lineV mas_makeConstraints:^(MASConstraintMaker *make) {
+// make.left.equalTo(_titleL.mas_left);
+// make.bottom.equalTo(self.contentView);
+// make.right.equalTo(_nextImgV.mas_right);
+// make.height.mas_equalTo(1);
+// }];
+// _lineV.backgroundColor=HDLEZ_COLOR_BACKGROUND_LINE;
+
+}
+
+/*鏃堕棿鎴宠浆鏃堕棿
+ */
+-(NSString *)turnDate:(NSString*)dateStr{
+// return [HDLEZConstants turnDateString:dateStr toFormater:[NSString stringWithFormat:@"yyyy%@MM%@dd%@ HH:mm",HDLEZLocallizedString(@"Y"),HDLEZLocallizedString(@"M"),HDLEZLocallizedString(@"D")]];
+ return [HDLEZConstants timeStrWithFormate:[NSString stringWithFormat:@"yyyy%@MM%@dd%@ HH:mm",HDLEZLocallizedString(@"device_temp_year"),HDLEZLocallizedString(@"device_temp_month"),HDLEZLocallizedString(@"device_temp_date")] data:[NSDate dateWithTimeIntervalSince1970:[dateStr integerValue]]];;
+}
+
+-(void)setTitle:(NSString *)title{
+ _title=title;
+ _titleL.text=title;
+}
+
+-(void)setDescribe:(NSString *)describe{
+ _describe=describe;
+ _describeL.text=describe;
+}
+
+-(void)setTempInfo:(HDLEZTemInfoModel *)tempInfo{
+ _tempInfo=tempInfo;
+
+ //鍚嶇О
+ _titleL.text=[NSString stringWithFormat:@"%@",_tempInfo.userName];
+
+ //鏃堕棿
+ _timeL.text=[NSString stringWithFormat:@"%@ - %@",[self turnDate:tempInfo.beginTime],[self turnDate:tempInfo.endTime]];
+
+ //鍓╀綑娆℃暟
+ NSString *contentStr=[NSString stringWithFormat:@"%@%@%@",HDLEZLocallizedString(@"device_temp_left"),tempInfo.useCount,HDLEZLocallizedString(@"device_temp_times")];
+ NSMutableAttributedString *attributedStringM = [[NSMutableAttributedString alloc] initWithString:contentStr];
+ [attributedStringM addAttribute:NSForegroundColorAttributeName value:HDLEZ_COLOR_TITLE_BLACK range:NSMakeRange(contentStr.length-HDLEZLocallizedString(@"device_temp_times").length-tempInfo.useCount.length, tempInfo.useCount.length)];
+ _describeL.attributedText=attributedStringM;
+
+
+}
+@end
diff --git a/EZSDK/EZSDK/EZ/TempPassword/Views/HDLEZVisitorRecordView.h b/EZSDK/EZSDK/EZ/TempPassword/Views/HDLEZVisitorRecordView.h
new file mode 100755
index 0000000..b76116c
--- /dev/null
+++ b/EZSDK/EZSDK/EZ/TempPassword/Views/HDLEZVisitorRecordView.h
@@ -0,0 +1,23 @@
+//
+// HDLFVVisitorRecordView.h
+// Ezviz
+//
+// Created by 闄堝惎鎵� on 2022/4/29.
+// Copyright 漏 2022 hdl. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+#import "HDLEZTemInfoModel.h"
+NS_ASSUME_NONNULL_BEGIN
+@protocol HDLEZVisitorRecordViewDelegate <NSObject>
+-(void)visitorRecordViewdidSelectRecord:(HDLEZTemInfoModel *)tempDetailModel;
+@end
+@interface HDLEZVisitorRecordView : UITableView<UITableViewDelegate,UITableViewDataSource>
+
+@property (nonatomic, weak) id<HDLEZVisitorRecordViewDelegate> choseDelegate;
+
+@property (nonatomic, strong) NSArray<HDLEZTemInfoModel*> *temPList;//涓存椂瀵嗙爜鍒楄〃
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/EZSDK/EZSDK/EZ/TempPassword/Views/HDLEZVisitorRecordView.m b/EZSDK/EZSDK/EZ/TempPassword/Views/HDLEZVisitorRecordView.m
new file mode 100755
index 0000000..8aebb30
--- /dev/null
+++ b/EZSDK/EZSDK/EZ/TempPassword/Views/HDLEZVisitorRecordView.m
@@ -0,0 +1,79 @@
+//
+// HDLFVVisitorRecordView.m
+// Ezviz
+//
+// Created by 闄堝惎鎵� on 2022/4/29.
+// Copyright 漏 2022 hdl. All rights reserved.
+//
+
+#import "HDLEZVisitorRecordView.h"
+#import "HDLEZVisitorRecordCell.h"
+@implementation HDLEZVisitorRecordView{
+ CGFloat cellHeight;
+}
+
+-(instancetype)init{
+ self = [super init];
+ if (self) {
+ self.backgroundColor = HDLEZ_COLOR_VIEW_BACKGROUND;
+
+ self.separatorStyle = NO;
+ self.showsVerticalScrollIndicator=NO;
+ self.delegate = self;
+ self.dataSource = self;
+ cellHeight=92;//鏍规嵁闀垮害璋冩暣
+ [self setSeparatorInset:UIEdgeInsetsZero];
+// [self setLayoutMargins:UIEdgeInsetsZero];
+ }
+
+ return self;
+}
+
+-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{
+ return 1;
+}
+
+-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
+ return self.temPList.count;
+}
+
+-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
+ return cellHeight;
+}
+
+-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
+ HDLEZLog(@"鍒濆鍖朿ell");
+ HDLEZVisitorRecordCell *cell = [tableView dequeueReusableCellWithIdentifier:@"HDLFVVisitorRecordCell"];
+ if(cell == nil){
+ cell=[[HDLEZVisitorRecordCell alloc]initWithFrame:CGRectMake(0, 0, self.frame.size.width, cellHeight)];
+ }
+// cell.title=HDLEZLocallizedString(@"Visitor Invitation Record");
+ HDLEZTemInfoModel *model=self.temPList[indexPath.row];
+ cell.tempInfo=model;
+ HDLEZLog(@"鍒濆鍖朿ell ID:%@",model.extVisitorId);
+
+// cell.describe=@"鏃堕棿锛�2022骞�4鏈�29鏃� 16:00 ~ 2022骞�5鏈�20鏃� 16:00";
+// cell.describe=[NSString stringWithFormat:@"%@: %@ ~ %@",HDLEZLocallizedString(@"Time"),[self turnDate:model.beginTime],[self turnDate:model.endTime]];
+ return cell;
+
+}
+
+//-(NSString *)turnDate:(NSString*)dateStr{
+// return [HDLEZConstants turnDateString:dateStr toFormater:[NSString stringWithFormat:@"yyyy%@MM%@dd%@ HH:mm",HDLEZLocallizedString(@"Y"),HDLEZLocallizedString(@"M"),HDLEZLocallizedString(@"D")]];
+//}
+
+
+
+-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
+ [tableView deselectRowAtIndexPath:indexPath animated:YES];
+ if (self.choseDelegate&&[self.choseDelegate respondsToSelector:@selector(visitorRecordViewdidSelectRecord:)]) {//浠g悊
+ [self.choseDelegate visitorRecordViewdidSelectRecord:self.temPList[indexPath.row]];
+ }
+}
+
+
+-(void)setTemPList:(NSArray<HDLEZTemInfoModel *> *)temPList{
+ _temPList=temPList;
+ [self reloadData];
+}
+@end
diff --git a/EZSDK/EZSDK/EZ/TempPassword/Views/HDLFVCreateTemPassView.h b/EZSDK/EZSDK/EZ/TempPassword/Views/HDLFVCreateTemPassView.h
new file mode 100755
index 0000000..44ebdea
--- /dev/null
+++ b/EZSDK/EZSDK/EZ/TempPassword/Views/HDLFVCreateTemPassView.h
@@ -0,0 +1,43 @@
+//
+// HDLFVCreateTemPassView.h
+// Ezviz
+//
+// Created by 闄堝惎鎵� on 2022/4/22.
+// Copyright 漏 2022 hdl. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+#import "HDLTopTitleInputView.h"
+#import "HDLFVNormalCellView.h"
+NS_ASSUME_NONNULL_BEGIN
+
+typedef void (^HDLFVImageVBlock)(UIImage * image);
+
+typedef enum {
+ HDLFVTemPassType_Generate=0, //鐢熸垚
+ HDLFVTemPassType_Detail=1,//璇︽儏
+}HDLFVTemPassType;
+@interface HDLFVCreateTemPassView : UIView
+@property(nonatomic,assign)HDLFVTemPassType temPassType;//涓存椂瀵嗙爜绫诲瀷
+
+@property (nonatomic, strong)HDLTopTitleInputView *phoneInputV;//璁垮鎵嬫満杈撳叆view
+@property (nonatomic, strong)HDLTopTitleInputView *temPassInputV;//鍔ㄦ�佸瘑鐮佽緭鍏iew
+//@property (nonatomic, strong)HDLTopTitleInputView *useTimesInputV;//浣跨敤娆℃暟杈撳叆view
+
+@property (nonatomic, strong)HDLFVNormalCellView *validTimeV;//鐢熸晥鏃堕棿view
+@property (nonatomic, strong)HDLFVNormalCellView *expireTimeV;//澶辨晥鏃堕棿view
+
+@property (nonatomic, strong)UIImageView *QRCodeImageV;//浜岀淮鐮乮mageView
+
+@property(nonatomic,strong)HDLFVImageVBlock clickQRCodeBlock; //鐐瑰嚮浜岀淮鐮�
+@property(nonatomic,strong)HDLFVImageVBlock longTapQRCodeBlock; //闀挎寜浜岀淮鐮�
+
+@property(nonatomic,assign)BOOL isInvalid;//鏄惁鏃犳晥
+
+/*灞曠ず浜岀淮鐮�
+
+ */
+-(void)showQRCode:(BOOL)show;
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/EZSDK/EZSDK/EZ/TempPassword/Views/HDLFVCreateTemPassView.m b/EZSDK/EZSDK/EZ/TempPassword/Views/HDLFVCreateTemPassView.m
new file mode 100755
index 0000000..ebe5654
--- /dev/null
+++ b/EZSDK/EZSDK/EZ/TempPassword/Views/HDLFVCreateTemPassView.m
@@ -0,0 +1,240 @@
+//
+// HDLFVCreateTemPassView.m
+// Ezviz
+//
+// Created by 闄堝惎鎵� on 2022/4/22.
+// Copyright 漏 2022 hdl. All rights reserved.
+//
+
+#import "HDLFVCreateTemPassView.h"
+@interface HDLFVCreateTemPassView ()
+@property (nonatomic, strong)UILabel *tipL;//鎻愮ずLable
+@property (nonatomic, strong)UILabel *QRCodetipL;//浜岀淮鐮佹彁绀篖able
+@property (nonatomic, strong)UIView *expireV;//鏃犳晥View
+@property (nonatomic, strong)UILabel *expireL;//鏃犳晥Lable
+
+@property (nonatomic, strong)UIScrollView *scrollV;//婊氬姩view
+
+@end
+@implementation HDLFVCreateTemPassView
+
+-(instancetype)init{
+ self = [super init];
+ if (self) {
+// _isShow=YES;
+// _tempPassword=@"";
+ [self initUI];
+ }
+
+ return self;
+}
+
+-(void)initUI{
+ //婊氬姩view
+ _scrollV=[[UIScrollView alloc] init];
+ if (@available(iOS 11.0, *)) {
+ _scrollV.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
+ }
+ [self addSubview:_scrollV];
+ [_scrollV mas_makeConstraints:^(MASConstraintMaker *make) {
+ make.top.equalTo(self);
+ make.right.left.bottom.equalTo(self);
+ }];
+ _scrollV.contentSize=CGSizeMake(APP_SCREEN_WIDTH, 665);
+
+
+
+ //鎻愮ずlable
+ _tipL=[[UILabel alloc] init];
+ [_scrollV addSubview:_tipL];
+ [_tipL mas_makeConstraints:^(MASConstraintMaker *make) {
+ make.top.equalTo(_scrollV).offset(20);
+ make.left.equalTo(self).offset(20);
+ make.right.equalTo(self).offset(-20);
+ make.height.mas_equalTo(40);
+ }];
+ _tipL.adjustsFontSizeToFitWidth=YES;
+ _tipL.numberOfLines=2;
+ _tipL.textColor=HDLFV_COLOR_TEXT_LIGHT_GRAY;
+ _tipL.font=HDLFV_Get_FontRegularWithSize(HDLFV_FontSize_12);
+ _tipL.text=HDLFVLocalizedString(@"*After you initiate the visitor certificate, you can unlock the door by password or swipe the code freely within the validity period you set. Please share the certificate carefully.");
+
+ //璁垮鎵嬫満
+ _phoneInputV=[[HDLTopTitleInputView alloc] init];
+ [_scrollV addSubview:_phoneInputV];
+ [_phoneInputV mas_makeConstraints:^(MASConstraintMaker *make) {
+ make.top.equalTo(_tipL.mas_bottom).offset(30);
+ make.left.right.equalTo(self);
+ make.height.mas_equalTo(80);
+ }];
+ _phoneInputV.inputTextF.keyboardType=UIKeyboardTypeNumberPad;
+ _phoneInputV.placeHolder=HDLFVLocalizedString(@"Input phone number of the visitor");
+ _phoneInputV.title=HDLFVLocalizedString(@"Visitor Phone Number");
+
+
+ //鍔ㄦ�佸瘑鐮�
+ _temPassInputV=[[HDLTopTitleInputView alloc] init];
+ [_scrollV addSubview:_temPassInputV];
+ [_temPassInputV mas_makeConstraints:^(MASConstraintMaker *make) {
+ make.top.equalTo(_phoneInputV.mas_bottom);
+ make.left.right.equalTo(self);
+ make.height.mas_equalTo(80);
+ }];
+ _temPassInputV.inputTextF.keyboardType=UIKeyboardTypeNumberPad;
+ _temPassInputV.placeHolder=HDLFVLocalizedString(@"Input 6-digits temporary password");
+ _temPassInputV.title=HDLFVLocalizedString(@"Temporary password");
+ _temPassInputV.btnTitle=HDLFVLocalizedString(@"Random Generation");
+
+
+// //浣跨敤娆℃暟
+// _useTimesInputV=[[HDLTopTitleInputView alloc] init];
+// [_scrollV addSubview:_useTimesInputV];
+// [_useTimesInputV mas_makeConstraints:^(MASConstraintMaker *make) {
+// make.top.equalTo(_temPassInputV.mas_bottom);
+// make.left.right.equalTo(self);
+// make.height.mas_equalTo(80);
+// }];
+// _useTimesInputV.inputTextF.keyboardType=UIKeyboardTypeNumberPad;
+// _useTimesInputV.inputTextF.text=@"1";
+// _useTimesInputV.placeHolder=HDLFVLocalizedString(@"Input usage times");
+// _useTimesInputV.title=HDLFVLocalizedString(@"Usage Times");
+
+ //鐢熸晥鏃堕棿
+ _validTimeV=[[HDLFVNormalCellView alloc] init];
+ [_scrollV addSubview:_validTimeV];
+ [_validTimeV mas_makeConstraints:^(MASConstraintMaker *make) {
+ make.top.equalTo(_temPassInputV.mas_bottom).offset(8);
+ make.left.right.equalTo(self);
+ make.height.mas_equalTo(50);
+ }];
+ _validTimeV.title=HDLFVLocalizedString(@"Effective Time");
+
+ //澶辨晥鏃堕棿
+ _expireTimeV=[[HDLFVNormalCellView alloc] init];
+ [_scrollV addSubview:_expireTimeV];
+ [_expireTimeV mas_makeConstraints:^(MASConstraintMaker *make) {
+ make.top.equalTo(_validTimeV.mas_bottom);
+ make.left.right.equalTo(self);
+ make.height.mas_equalTo(50);
+ }];
+ _expireTimeV.title=HDLFVLocalizedString(@"Expiration Time");
+
+ //浜岀淮鐮�
+ _QRCodeImageV=[[UIImageView alloc] init];
+ [_scrollV addSubview:_QRCodeImageV];
+ [_QRCodeImageV mas_makeConstraints:^(MASConstraintMaker *make) {
+ make.top.equalTo(_expireTimeV.mas_bottom).offset(33);
+ make.centerX.equalTo(self.mas_centerX);
+ make.height.width.mas_equalTo(142);
+ }];
+ _QRCodeImageV.userInteractionEnabled = YES;
+
+ //娣诲姞鐐瑰嚮浜嬩欢
+ UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(clickQRCode)];
+ UILongPressGestureRecognizer *longTap=[[UILongPressGestureRecognizer alloc]initWithTarget:self action:@selector(longTapQRCode:)];
+ [_QRCodeImageV addGestureRecognizer:tap];
+ [_QRCodeImageV addGestureRecognizer:longTap];
+ [_QRCodeImageV setHidden:YES];
+
+ //鏃犳晥view
+ _expireV=[[UIView alloc] init];
+ [_scrollV addSubview:_expireV];
+ [_expireV mas_makeConstraints:^(MASConstraintMaker *make) {
+ make.top.equalTo(_expireTimeV.mas_bottom).offset(33);
+ make.centerX.equalTo(self.mas_centerX);
+ make.height.width.mas_equalTo(142);
+ }];
+ _expireV.backgroundColor=[UIColor blackColor];
+ _expireV.alpha=0.6;
+ [_expireV setHidden:YES];
+
+ //鏃犳晥Lable
+ _expireL=[[UILabel alloc] init];
+ [_scrollV addSubview:_expireL];
+ _expireL.textAlignment=NSTextAlignmentCenter;
+ _expireL.textColor=[UIColor whiteColor];
+ [_expireL mas_makeConstraints:^(MASConstraintMaker *make) {
+ make.top.equalTo(_expireTimeV.mas_bottom).offset(33);
+ make.centerX.equalTo(self.mas_centerX);
+ make.height.width.mas_equalTo(142);
+
+ }];
+ _expireL.font=HDLFV_Get_FontRegularWithSize(HDLFV_FontSize_12);
+ _expireL.text=HDLFVLocalizedString(@"QR code is invalid");
+ [_expireL setHidden:YES];
+
+ //鎻愮ずlable
+ _QRCodetipL=[[UILabel alloc] init];
+ [_scrollV addSubview:_QRCodetipL];
+ [_QRCodetipL mas_makeConstraints:^(MASConstraintMaker *make) {
+ make.top.equalTo(_QRCodeImageV.mas_bottom).offset(20);
+ make.left.equalTo(self).offset(10);
+ make.right.equalTo(self).offset(-10);
+ make.height.mas_equalTo(20);
+ }];
+ _QRCodetipL.adjustsFontSizeToFitWidth=YES;
+ _QRCodetipL.textAlignment=NSTextAlignmentCenter;
+ _QRCodetipL.textColor=HDLFV_COLOR_TEXT_TITLE_GRAY;
+ _QRCodetipL.font=HDLFV_Get_FontRegularWithSize(HDLFV_FontSize_12);
+ _QRCodetipL.text=HDLFVLocalizedString(@"Long press the QR code to save the QR code to the album");
+ [_QRCodetipL setHidden:YES];
+
+
+}
+
+//鐐瑰嚮浜嗕簩缁寸爜
+-(void)clickQRCode{
+
+ self.clickQRCodeBlock(_QRCodeImageV.image);
+}
+
+//闀挎寜浜岀淮鐮�
+-(void)longTapQRCode:(UIGestureRecognizer*)recognizer{
+ if (recognizer.state==UIGestureRecognizerStateBegan) {
+ HDLFVLog(@"闀挎寜浜嗕簩缁寸爜");
+ self.longTapQRCodeBlock(_QRCodeImageV.image);
+ }
+
+}
+
+/*灞曠ず浜岀淮鐮�
+
+ */
+-(void)showQRCode:(BOOL)show{
+ [_QRCodetipL setHidden:!show];
+ [_QRCodeImageV setHidden:!show];
+
+}
+
+-(void)setIsInvalid:(BOOL)isInvalid{
+ _isInvalid=isInvalid;
+ if (isInvalid) {//濡傛灉涓烘棤鏁�
+ [_expireL setHidden:NO];
+ [_expireV setHidden:NO];
+ [_QRCodetipL setHidden:YES];
+ _temPassInputV.inputTextF.text=HDLFVLocalizedString(@"Temporary password is invalid");
+ }
+}
+
+-(void)setTemPassType:(HDLFVTemPassType)temPassType{
+ _temPassType=temPassType;
+ if (temPassType==HDLFVTemPassType_Generate) {
+ [_phoneInputV.inputTextF setEnabled:YES];
+ [_temPassInputV.inputTextF setEnabled:YES];
+ _temPassInputV.btnTitle=HDLFVLocalizedString(@"Random Generation");
+// [_useTimesInputV.inputTextF setEnabled:YES];
+ [_expireTimeV.button setEnabled:YES];
+ [_validTimeV.button setEnabled:YES];
+ [self showQRCode:NO];
+ }else{
+ [_phoneInputV.inputTextF setEnabled:NO];
+ [_temPassInputV.inputTextF setEnabled:NO];
+ _temPassInputV.btnTitle=@"";
+// [_useTimesInputV.inputTextF setEnabled:NO];
+ [_expireTimeV.button setEnabled:NO];
+ [_validTimeV.button setEnabled:NO];
+ [self showQRCode:YES];
+
+ }
+}
+@end
diff --git a/EZSDK/EZSDK/EZ/UIViewControllers/EZAPConfigResultViewController.m b/EZSDK/EZSDK/EZ/UIViewControllers/EZAPConfigResultViewController.m
index 748bfd4..1645fb3 100644
--- a/EZSDK/EZSDK/EZ/UIViewControllers/EZAPConfigResultViewController.m
+++ b/EZSDK/EZSDK/EZ/UIViewControllers/EZAPConfigResultViewController.m
@@ -13,6 +13,7 @@
#import "Toast+UIView.h"
#import "EZDeviceTableViewController.h"
+#import "EZAddByQRCodeViewController.h"
#define MAX_COUNT (20)
@@ -24,6 +25,8 @@
@property (weak, nonatomic) IBOutlet UILabel *msgLabel;
@property (nonatomic,strong) NSTimer *timer;
@property (nonatomic,assign) NSInteger addCount;
+@property (nonatomic,strong) UIButton *verifiedBtn;//宸叉牎楠屾寜閽�
+
@end
@implementation EZAPConfigResultViewController
@@ -33,6 +36,9 @@
[super viewDidLoad];
self.title = NSLocalizedString(@"wifi_ap_add_device_title", @"娣诲姞璁惧");
+
+ self.msgLabel.numberOfLines=2;
+ self.msgLabel.adjustsFontSizeToFitWidth=YES;
[self initSubviews];
@@ -52,6 +58,18 @@
- (void) initSubviews
{
[self.loadingIndicator startAnimating];
+
+ //娣诲姞宸查獙璇佹寜閽�
+ CGFloat screenHeight = self.view.frame.size.height;
+ CGFloat screenWidth = self.view.frame.size.width;
+ self.verifiedBtn=[[UIButton alloc] initWithFrame:CGRectMake((screenWidth-120)/2, screenHeight-150, 120, 30)];
+ self.verifiedBtn.titleLabel.textColor=[UIColor whiteColor];
+ [self.verifiedBtn setBackgroundColor:[UIColor orangeColor]];
+ [self.verifiedBtn setTitle:NSLocalizedString(@"ad_verified", @"宸叉牎楠�") forState:UIControlStateNormal];
+ [self.verifiedBtn addTarget:self action:@selector(verified) forControlEvents:UIControlEventTouchUpInside];
+ [self.view addSubview:self.verifiedBtn];
+ [self.verifiedBtn setHidden:YES];
+
}
#pragma mark - actions
@@ -67,6 +85,14 @@
[self.navigationController popToViewController:vc animated:YES];
break;
}
+
+ if ([vc isKindOfClass:[EZAddByQRCodeViewController class]])
+ {//璺宠浆鍒版壂鐮侀〉
+ ((EZAddByQRCodeViewController *)vc).shouldPop = YES;
+ [self.navigationController popToViewController:vc animated:YES];
+ break;
+ }
+
}
}
@@ -78,6 +104,27 @@
self.retryBtn.hidden = YES;
[self startTimer];
+}
+
+/*宸叉牎楠�
+ */
+-(void)verified{
+ self.loadingIndicator.hidden = NO;
+ [self.loadingIndicator startAnimating];
+ [EZHttpUtil.sharedManager addDeviceByHDL:[GlobalKit shareKit].deviceSerialNo
+ verifyCode:[GlobalKit shareKit].deviceVerifyCode
+ completion:^(ResponseData *responseData) {
+
+ if (!responseData.success){
+ [self.view makeToast:NSLocalizedString(@"wifi_add_fail", @"娣诲姞澶辫触") duration:2.0 position:@"center"];
+ }
+ else
+ {
+ [self.verifiedBtn setHidden:YES];
+ [self successProcess];
+ }
+
+ }];
}
#pragma mark - callback
@@ -148,20 +195,35 @@
// [self successProcess];
// }
// }];
- [EZHttpUtil.sharedManager addDeviceByHDL:[GlobalKit shareKit].deviceSerialNo
- verifyCode:[GlobalKit shareKit].deviceVerifyCode
- completion:^(ResponseData *responseData) {
-
- if (!responseData.success)
- {
- [self addErrorProcessWithError:responseData];
- }
- else
- {
- [self successProcess];
- }
-
- }];
+ if ([GlobalKit shareKit].deviceType==HDLEZDeviceType_Door) {//涓洪棬閿�
+ [EZHttpUtil.sharedManager verifyLocalLockByHDL:[GlobalKit shareKit].deviceSerialNo completion:^(ResponseData * _Nonnull responseData) {
+ if (responseData.success) {
+ self.loadingIndicator.hidden = YES;
+ [self.loadingIndicator stopAnimating];
+ self.msgLabel.text = NSLocalizedString(@"ad_result_verify_local_lock",@"璇峰湪2鍒嗛挓涔嬪唴鏍¢獙宸叉坊鍔犵殑涓荤敤鎴锋寚绾广�佸瘑閽ユ垨鎰熷簲鍗★紝鏍¢獙瀹屾垚璇风偣鍑诲凡鏍¢獙鎸夐挳");
+ [self.verifiedBtn setHidden:NO];
+
+ }else{
+ [self addErrorProcessWithError:responseData];
+ }
+ }];
+ }else{
+ [EZHttpUtil.sharedManager addDeviceByHDL:[GlobalKit shareKit].deviceSerialNo
+ verifyCode:[GlobalKit shareKit].deviceVerifyCode
+ completion:^(ResponseData *responseData) {
+
+ if (!responseData.success)
+ {
+ [self addErrorProcessWithError:responseData];
+ }
+ else
+ {
+ [self successProcess];
+ }
+
+ }];
+ }
+
}
}];
diff --git a/EZSDK/EZSDK/EZ/UIViewControllers/EZAPWiFiConfigViewController.m b/EZSDK/EZSDK/EZ/UIViewControllers/EZAPWiFiConfigViewController.m
index 0b9d955..0e3dc8c 100644
--- a/EZSDK/EZSDK/EZ/UIViewControllers/EZAPWiFiConfigViewController.m
+++ b/EZSDK/EZSDK/EZ/UIViewControllers/EZAPWiFiConfigViewController.m
@@ -139,17 +139,55 @@
password:self.password
deviceSerial:[GlobalKit shareKit].deviceSerialNo
verifyCode:[GlobalKit shareKit].deviceVerifyCode
- result:^(BOOL ret) {
- if (ret)
- {
- [self configSuccess];
- }
- else
- {
- [self configFailed];
- NSLog(@"config failed");
- }
- }];
+ deviceStatus:^(EZWifiConfigStatus status, NSString * _Nonnull deviceSerial) {
+// EZStrong(self);
+ switch (status) {
+ case DEVICE_WIFI_SENT_SUCCESS:// 鍚戣澶囧彂閫乄iFi淇℃伅鎴愬姛
+ // 绛夊緟璁惧閰嶇綉锛屽鏋渨ifi瀵嗙爜閿欒锛屾渶鍚庝細鍥炶皟DEVICE_PLATFORM_REGIST_FAILED
+ NSLog(@"鍚戣澶囧彂閫乄iFi淇℃伅鎴愬姛");
+ [self configSuccess];
+
+// [EZToast show:@"鍚戣澶囧彂閫乄iFi淇℃伅鎴愬姛"];
+ break;
+ case DEVICE_WIFI_SENT_FAILED:// 鍚戣澶囧彂閫乄iFi淇℃伅澶辫触
+ // 閰嶇綉澶辫触锛屽彲浠ラ噸璇�
+ NSLog(@"閰嶇綉澶辫触锛岃绋嶅悗閲嶈瘯");
+// [EZToast show:@"閰嶇綉澶辫触锛岃绋嶅悗閲嶈瘯"];
+ break;
+ case DEVICE_PLATFORM_REGISTED:// 璁惧娉ㄥ唽骞冲彴鎴愬姛
+ // TODO 灏嗚澶囨坊鍔犲埌鑷繁璐﹀彿涓�
+ NSLog(@"璁惧娉ㄥ唽骞冲彴鎴愬姛");
+// [EZToast show:@"璁惧娉ㄥ唽骞冲彴鎴愬姛"];
+
+// [self stopAction];
+// self.addBtn.hidden = NO;
+ break;
+ case DEVICE_PLATFORM_REGIST_FAILED:// 璁惧娉ㄥ唽骞冲彴澶辫触
+ // TODO 鍙互鑷寮�鍚柊涓�杞疆璇�
+ NSLog(@"璁惧娉ㄥ唽骞冲彴澶辫触");
+// [EZToast show:@"璁惧娉ㄥ唽骞冲彴澶辫触"];
+ [self stopAction];
+
+ break;
+ default:
+ break;
+ }
+ }];
+// [EZOPENSDK startAPConfigWifiWithSsid:self.ssid
+// password:self.password
+// deviceSerial:[GlobalKit shareKit].deviceSerialNo
+// verifyCode:[GlobalKit shareKit].deviceVerifyCode
+// result:^(BOOL ret) {
+// if (ret)
+// {
+// [self configSuccess];
+// }
+// else
+// {
+// [self configFailed];
+// NSLog(@"config failed");
+// }
+// }];
}
- (void) stopConfigWifi
diff --git a/EZSDK/EZSDK/EZ/UIViewControllers/EZAddByQRCodeViewController.h b/EZSDK/EZSDK/EZ/UIViewControllers/EZAddByQRCodeViewController.h
index 1910006..6942a93 100644
--- a/EZSDK/EZSDK/EZ/UIViewControllers/EZAddByQRCodeViewController.h
+++ b/EZSDK/EZSDK/EZ/UIViewControllers/EZAddByQRCodeViewController.h
@@ -7,7 +7,12 @@
//
#import <UIKit/UIKit.h>
-
+#import "EZSDK.h"
@interface EZAddByQRCodeViewController : UIViewController
+@property (nonatomic, assign) HDLEZDeviceType deviceType;//璁惧绫诲瀷
+
+@property (nonatomic, assign) bool shouldPop;//闇�瑕佽繑鍥�
+
+
@end
diff --git a/EZSDK/EZSDK/EZ/UIViewControllers/EZAddByQRCodeViewController.m b/EZSDK/EZSDK/EZ/UIViewControllers/EZAddByQRCodeViewController.m
index 4abf5f3..27f7e85 100644
--- a/EZSDK/EZSDK/EZ/UIViewControllers/EZAddByQRCodeViewController.m
+++ b/EZSDK/EZSDK/EZ/UIViewControllers/EZAddByQRCodeViewController.m
@@ -71,6 +71,10 @@
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
+ if(self.shouldPop){//閫�鍑虹晫闈�
+ [self.navigationController popViewControllerAnimated:YES];
+ }
+
[[GlobalKit shareKit] clearDeviceInfo];
if (authStatus == AVAuthorizationStatusDenied ||
authStatus == AVAuthorizationStatusRestricted)
@@ -237,7 +241,7 @@
strQRcode = [strQRcode stringByReplacingOccurrencesOfString:@"\r\n" withString:@"\r"];//2021-10-19 瑙e喅閮ㄥ垎鐚溂璁惧灞忓箷鏄剧ず鐨勪簩缁寸爜锛屽弬鏁颁箣闂村嚭鐜扮┖琛屽鑷村垎鍓插彇閿欏瓧娈甸棶棰�
NSArray *arrString = [strQRcode componentsSeparatedByCharactersInSet:[NSCharacterSet newlineCharacterSet]];
-
+ [GlobalKit shareKit].deviceType = self.deviceType;
if(arrString.count >=3)
{
[GlobalKit shareKit].deviceSerialNo = arrString[1];
diff --git a/EZSDK/EZSDK/EZ/UIViewControllers/EZDeviceResultViewController.m b/EZSDK/EZSDK/EZ/UIViewControllers/EZDeviceResultViewController.m
index afe9d1e..500c658 100644
--- a/EZSDK/EZSDK/EZ/UIViewControllers/EZDeviceResultViewController.m
+++ b/EZSDK/EZSDK/EZ/UIViewControllers/EZDeviceResultViewController.m
@@ -127,13 +127,29 @@
// [hud hide:YES];
// [self handleTheError:error];
// }];
- [EZHttpUtil.sharedManager addDeviceByHDL:[GlobalKit shareKit].deviceSerialNo
- verifyCode:[GlobalKit shareKit].deviceVerifyCode
- completion:^(ResponseData *responseData) {
- [hud hide:YES];
- [self handleTheError:responseData];
- }];
-
+ if ([GlobalKit shareKit].deviceType==HDLEZDeviceType_Door) {//涓洪棬绂佽澶囷紙闇�瑕侀獙璇侀棬閿侊級
+ [EZHttpUtil.sharedManager verifyLocalLockByHDL:[GlobalKit shareKit].deviceSerialNo completion:^(ResponseData * _Nonnull responseData) {
+ [hud hide:YES];
+ if (responseData.success) {
+ self.resultLabel.numberOfLines=2;
+ self.resultLabel.adjustsFontSizeToFitWidth=YES;
+ self.resultLabel.text = NSLocalizedString(@"ad_result_verify_local_lock",@"璇峰湪2鍒嗛挓涔嬪唴鏍¢獙宸叉坊鍔犵殑涓荤敤鎴锋寚绾广�佸瘑閽ユ垨鎰熷簲鍗★紝鏍¢獙瀹屾垚璇风偣鍑诲凡鏍¢獙鎸夐挳");
+
+ [self.actionButton setTitle:NSLocalizedString(@"ad_verified", @"宸叉牎楠�") forState:UIControlStateNormal];
+ }else{
+ [self handleTheError:responseData];
+ }
+
+ NSLog(@"璋冪敤楠岃瘉鎺ュ彛杩斿洖锛�%@",responseData.data);
+ }];
+ }else{
+ [EZHttpUtil.sharedManager addDeviceByHDL:[GlobalKit shareKit].deviceSerialNo
+ verifyCode:[GlobalKit shareKit].deviceVerifyCode
+ completion:^(ResponseData *responseData) {
+ [hud hide:YES];
+ [self handleTheError:responseData];
+ }];
+ }
}
else
@@ -144,6 +160,22 @@
[alertView show];
}
}
+ else if([self.actionButton.titleLabel.text isEqualToString:NSLocalizedString(@"ad_verified",@"宸叉牎楠�")])
+ {
+ __weak MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:self.view animated:YES];
+ hud.labelText = NSLocalizedString(@"ad_adding_msg", @"姝e湪娣诲姞锛岃绋嶅��...");
+ [EZHttpUtil.sharedManager addDeviceByHDL:[GlobalKit shareKit].deviceSerialNo
+ verifyCode:[GlobalKit shareKit].deviceVerifyCode
+ completion:^(ResponseData *responseData) {
+ [hud hide:YES];
+ if (!responseData.success){
+ [self.view makeToast:NSLocalizedString(@"wifi_add_fail", @"娣诲姞澶辫触") duration:2.0 position:@"center"];
+ }else{
+ [self handleTheError:responseData];
+ }
+
+ }];
+ }
else
{
[self doSearchDevice];
diff --git a/EZSDK/EZSDK/EZ/UIViewControllers/EZLivePlayViewController.m b/EZSDK/EZSDK/EZ/UIViewControllers/EZLivePlayViewController.m
index 464f29e..a830842 100644
--- a/EZSDK/EZSDK/EZ/UIViewControllers/EZLivePlayViewController.m
+++ b/EZSDK/EZSDK/EZ/UIViewControllers/EZLivePlayViewController.m
@@ -22,7 +22,7 @@
#import "Toast+UIView.h"
#import "EZStreamPlayer.h"
#import "MBProgressHUD.h"
-
+#import "EZPMPlayPrivateTokenInfo.h"
#define MinimumZoomScale 1.0
#define MaximumZoomScale 4.0
@@ -89,6 +89,8 @@
@property (weak, nonatomic) IBOutlet UILabel *streamTypeLabel;
@property (weak, nonatomic) IBOutlet UIScrollView *scrollView;
@property (weak, nonatomic) IBOutlet UILabel *zoomSizeLabel;
+
+@property (nonatomic, copy) NSString *streamToken;
@end
@@ -219,6 +221,13 @@
self.scrollView.userInteractionEnabled = YES;
self.scrollView.multipleTouchEnabled = YES;
self.scrollView.pagingEnabled = NO;
+
+ if ([GlobalKit shareKit].deviceType==HDLEZDeviceType_Door) {//涓洪棬閿佹椂锛屽彧鏄剧ず楹﹀厠椋庡拰寮�闂ㄦ寜閽�
+ self.captureButton.hidden=YES;
+ self.localRecordButton.hidden=YES;
+
+ [self.controlButton setTitle:NSLocalizedString(@"device_open", @"寮�闂�") forState:UIControlStateNormal];
+ }
}
- (void)viewDidAppear:(BOOL)animated {
@@ -493,6 +502,11 @@
}
}
+/** 鏅鸿兘闂ㄩ攣寮�闂╰oken */
+- (void)player:(EZPlayer *)player playPrivateTokenInfo:(EZPMPlayPrivateTokenInfo *)tokenInfo {
+ NSLog(@"寮�闂╰oken--->%@", tokenInfo.token);
+ self.streamToken=tokenInfo.token;
+}
#pragma mark - ValidateCode Methods
- (void)showSetPassword
@@ -798,6 +812,18 @@
- (IBAction)ptzViewShow:(id)sender
{
+ if ([GlobalKit shareKit].deviceType==HDLEZDeviceType_Door) {//涓洪棬閿佽澶囨椂锛屾墽琛屽紑闂�
+ NSString *verifyCode = [[GlobalKit shareKit].deviceVerifyCodeBySerial objectForKey:self.deviceInfo.deviceSerial];
+
+ [[EZHttpUtil sharedManager] authLockByHDL:@"123456" deviceId:self.deviceInfo.deviceSerial verifyCode:verifyCode completion:^(ResponseData * _Nonnull responseData) {
+ NSLog(@"缁堢鎺堟潈缁撴灉锛�%@",responseData.data);
+ [[EZHttpUtil sharedManager] remoteOpenByHDL:self.streamToken deviceId:self.deviceInfo.deviceSerial completion:^(ResponseData * _Nonnull responseData) {
+ NSLog(@"寮�闂ㄧ粨鏋滐細%@",responseData.data);
+ }];
+ }];
+ return;
+ }
+
self.ptzView.hidden = NO;
[self.bottomView bringSubviewToFront:self.ptzView];
self.ptzControlButton.alpha = 0;
diff --git a/EZSDK/EZSDK/EZ/UIViewControllers/EZWifiConfigViewController.m b/EZSDK/EZSDK/EZ/UIViewControllers/EZWifiConfigViewController.m
index 6a410db..336c9ec 100644
--- a/EZSDK/EZSDK/EZ/UIViewControllers/EZWifiConfigViewController.m
+++ b/EZSDK/EZSDK/EZ/UIViewControllers/EZWifiConfigViewController.m
@@ -11,6 +11,7 @@
#import "DDKit.h"
#import "EZDeviceTableViewController.h"
#import "EZDdnsDeviceTableViewController.h"
+#import "EZAddByQRCodeViewController.h"
// 璁惧bonjour鎼滅储鍒扮殑鐘舵�佹爣绀�
typedef enum _DEVICE_STATE
@@ -788,7 +789,6 @@
}
}
#pragma mark - Action Methods
-
- (void)completionButtonClicked:(id)sender
{
NSArray *viewControllers = self.navigationController.viewControllers;
@@ -807,6 +807,13 @@
[self.navigationController popToViewController:vc animated:YES];
break;
}
+
+ if ([vc isKindOfClass:[EZAddByQRCodeViewController class]])
+ {//璺宠浆鍒版壂鐮侀〉
+ ((EZAddByQRCodeViewController *)vc).shouldPop = YES;
+ [self.navigationController popToViewController:vc animated:YES];
+ break;
+ }
}
}
diff --git a/EZSDK/EZSDK/EZ/Venders/openssl/lib/libcrypto.a b/EZSDK/EZSDK/EZ/Venders/openssl/lib/libcrypto.a
index 757096f..ad3d482 100644
--- a/EZSDK/EZSDK/EZ/Venders/openssl/lib/libcrypto.a
+++ b/EZSDK/EZSDK/EZ/Venders/openssl/lib/libcrypto.a
Binary files differ
diff --git a/EZSDK/EZSDK/EZ/Venders/openssl/lib/libssl.a b/EZSDK/EZSDK/EZ/Venders/openssl/lib/libssl.a
index c526e71..342610d 100644
--- a/EZSDK/EZSDK/EZ/Venders/openssl/lib/libssl.a
+++ b/EZSDK/EZSDK/EZ/Venders/openssl/lib/libssl.a
Binary files differ
diff --git a/EZSDK/EZSDK/EZSDK.h b/EZSDK/EZSDK/EZSDK.h
index 9a39d58..2ae3791 100644
--- a/EZSDK/EZSDK/EZSDK.h
+++ b/EZSDK/EZSDK/EZSDK.h
@@ -8,6 +8,12 @@
#import <Foundation/Foundation.h>
#import "EZDeviceInfo.h"
+//璁惧绫诲瀷
+typedef enum {
+ HDLEZDeviceType_Default=0, //榛樿绫诲瀷
+ HDLEZDeviceType_Door=1,//闂ㄩ攣
+}HDLEZDeviceType;
+
@interface EZSDK : NSObject
///sharedInstance
+ (instancetype)sharedInstance;
@@ -38,6 +44,13 @@
璺宠浆娣诲姞娣诲姞璁惧
*/
- (void)addEzvizMonitor;
+
+/**
+ 璺宠浆娣诲姞娣诲姞璁惧
+ @param deviceType 璁惧绫诲瀷
+ */
+- (void)addEzvizMonitorWithDeviceType:(HDLEZDeviceType)deviceType;
+
/**
鏌ョ湅瑙嗛鐩戞帶鐩存挱
*/
@@ -57,5 +70,10 @@
////鏌ョ湅鍛婅淇℃伅
//- (void)goToEZMessagePhotoVC:(EZAlarmInfo*)alarmInfo;
+/**涓存椂瀵嗙爜椤�
+ @param deviceId 璁惧id
+ */
+- (void)toTemPassView:(NSString*)deviceId;
+
@end
diff --git a/EZSDK/EZSDK/EZSDK.m b/EZSDK/EZSDK/EZSDK.m
index f8d0607..81b7859 100644
--- a/EZSDK/EZSDK/EZSDK.m
+++ b/EZSDK/EZSDK/EZSDK.m
@@ -19,7 +19,7 @@
#import "EZDeviceTableViewController.h"
#import "EZHCNetDeviceSDK.h"
#import "EZMessagePhotoViewController.h"
-
+#import "HDLEZVisitorRecordViewController.h"
@@ -45,8 +45,8 @@
*/
- (BOOL)initLibWithAppKey:(NSString *)appKey globalAppKey:(NSString *)globalAppKey
{
-
if (!isHavelibInit) {
+ [EZOPENSDK setDebugLogEnable:YES];
// isHavelibInit=YES;
// NSLog(@"绗竴娆″垵濮嬪寲钀ょ煶搴�");
if (!LanguageIsChinese) {
@@ -55,13 +55,15 @@
NSLog(@"娴峰鐗坘ey--%@",globalAppKey);
}else{
isHavelibInit = [EZOpenSDK initLibWithAppKey:appKey];
+ [[GlobalKit shareKit] setHdlAppKey:appKey];
NSLog(@"鍥藉唴鐗坘ey--%@", appKey);
}
-
[EZHCNetDeviceSDK initSDK];
[EZOPENSDK enableP2P:YES];
- [EZOPENSDK setDebugLogEnable:YES];
+// [EZOPENSDK setDebugLogEnable:YES];
NSLog(@"EZOpenSDK Version = %@", [EZOPENSDK getVersion]);
+// NSLog(@"EZOpenSDK treamToken= %@", );
+
}
return isHavelibInit;
}
@@ -135,17 +137,35 @@
*/
-(void)addEzvizMonitor
{
+// // NSLog(@"娣诲姞鎽勫儚澶�");
+// if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7.0) {
+// UIStoryboard *addDeviceStoryBoard = [UIStoryboard storyboardWithName:@"AddDevice" bundle:nil];
+// EZAddByQRCodeViewController *rootViewController = [addDeviceStoryBoard instantiateViewControllerWithIdentifier:@"AddByQRCode"];
+// [[self getCurrentVC] setNavigationBarHidden:NO];
+// [[self getCurrentVC] pushViewController:rootViewController animated:YES];
+// } else {
+// // [UIView dd_showMessage:@"iOS 7.0浠ヤ笅鎵爜鍔熻兘璇疯嚜琛屽疄鐜�"];
+// NSLog(@"iOS 7.0浠ヤ笅鎵爜鍔熻兘璇疯嚜琛屽疄鐜�");
+// }
+ [self addEzvizMonitorWithDeviceType:HDLEZDeviceType_Default];
+}
+
+/**
+ 璺宠浆娣诲姞娣诲姞璁惧
+ @param deviceType 璁惧绫诲瀷
+ */
+- (void)addEzvizMonitorWithDeviceType:(HDLEZDeviceType)deviceType{
// NSLog(@"娣诲姞鎽勫儚澶�");
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7.0) {
UIStoryboard *addDeviceStoryBoard = [UIStoryboard storyboardWithName:@"AddDevice" bundle:nil];
EZAddByQRCodeViewController *rootViewController = [addDeviceStoryBoard instantiateViewControllerWithIdentifier:@"AddByQRCode"];
+ rootViewController.deviceType=deviceType;
[[self getCurrentVC] setNavigationBarHidden:NO];
[[self getCurrentVC] pushViewController:rootViewController animated:YES];
} else {
// [UIView dd_showMessage:@"iOS 7.0浠ヤ笅鎵爜鍔熻兘璇疯嚜琛屽疄鐜�"];
NSLog(@"iOS 7.0浠ヤ笅鎵爜鍔熻兘璇疯嚜琛屽疄鐜�");
}
-
}
/**
@@ -205,6 +225,16 @@
[[self getCurrentVC] pushViewController:playBackVC animated:YES];
}
+/**涓存椂瀵嗙爜椤�
+ @param deviceId 璁惧id
+ */
+- (void)toTemPassView:(NSString*)deviceId{
+ HDLEZVisitorRecordViewController *vc=[[HDLEZVisitorRecordViewController alloc] init];
+ vc.deviceId=deviceId;
+ [[self getCurrentVC] setNavigationBarHidden:YES];
+ [[self getCurrentVC] pushViewController:vc animated:YES];
+}
+
////
//-(void)goToEZMessagePhotoVC:(EZAlarmInfo*)alarmInfo{
// UIStoryboard *addDeviceStoryBoard = [UIStoryboard storyboardWithName:@"EZMain" bundle:nil];
diff --git a/EZSDK/EZSDK/SDK/include/EZConstants.h b/EZSDK/EZSDK/SDK/include/EZConstants.h
index 1d6ea09..edc3b24 100644
--- a/EZSDK/EZSDK/SDK/include/EZConstants.h
+++ b/EZSDK/EZSDK/SDK/include/EZConstants.h
@@ -18,7 +18,7 @@
@param result 鏄惁鎴愬姛
*/
-- (void) ezvizLoginResult:(BOOL) result;
+- (void)ezvizLoginResult:(BOOL)result;
@end
@@ -33,7 +33,7 @@
EZ_DEVICE_TTS_INTER_ERROR = 360004, //TTS鍐呴儴鍙戠敓閿欒
EZ_DEVICE_TTS_SEND_ERROR = 360005, //瀹㈡埛绔彂閫佺殑娑堟伅閿欒
EZ_DEVICE_TTS_RECEIVE_ERROR = 360006, //瀹㈡埛绔帴鏀跺彂鐢熼敊璇�
- EZ_DEVICE_TTS_CLOSE_CONNECT = 360007, // TTS鍏抽棴浜嗕笌瀹㈡埛绔殑杩炴帴
+ EZ_DEVICE_TTS_CLOSE_CONNECT = 360007, //TTS鍏抽棴浜嗕笌瀹㈡埛绔殑杩炴帴
EZ_DEVICE_TTS_TALKING = 360010, //璁惧姝e湪瀵硅涓�
EZ_DEVICE_TTS_PRIVACY_PROTECT = 360013, //璁惧寮�鍚簡闅愮淇濇姢
EZ_DEVICE_TTS_INIT_ERROR = 360102, //TTS鍒濆鍖栧け璐�
@@ -102,6 +102,7 @@
EZ_HTTPS_OPERATE_LEAVE_MSG_FAIL = 120202, //鎿嶄綔鐣欒█娑堟伅澶辫触
EZ_HTTPS_SERVER_DATA_ERROR = 149999, //鏁版嵁寮傚父
EZ_HTTPS_SERVER_ERROR = 150000, //鏈嶅姟鍣ㄥ紓甯�
+ EZ_HTTPS_CLOUD_DELETE_ALL_EXCEPT_LAST = 150002, //浜戝瓨鍌ㄨ棰戝垹闄ゅ畬鎴愶紝闄や簡鏈�鍚庝竴涓湪褰曞埗鐨勮棰戞棤娉曞垹闄�
EZ_HTTPS_DEVICE_PTZ_NOT_SUPPORT = 160000, //璁惧涓嶆敮鎸佷簯鍙版帶鍒�
EZ_HTTPS_DEVICE_PTZ_NO_PERMISSION = 160001, //鐢ㄦ埛娌℃湁鏉冮檺鎿嶄綔浜戝彴鎺у埗
EZ_HTTPS_DEVICE_PTZ_UPPER_LIMIT = 160002, //浜戝彴杈惧埌涓婇檺浣嶏紙椤堕儴锛�
@@ -132,7 +133,7 @@
EZ_NPC_CLIENT_MEMORY_ERROR = 500003, //鍒嗛厤鍐呭瓨澶辫触
EZ_NPC_CLIENT_BUFFER_OVERFLOW_ERROR = 500004, //缂撳啿鍖烘孩鍑�
EZ_NPC_CLIENT_SYSTEM_NO_SUPPORT_ERROR = 500005, //绯荤粺涓嶆敮鎸�
- EZ_NPC_CLIENT_INVALID_PORT_ERROR = 500006, //鏃犳晥绔彛
+ EZ_NPC_CLIENT_INVALID_PORT_ERROR = 500006, //鏃犳晥绔彛
EZ_NPC_CLIENT_STREAM_CLOSE_ERROR = 500101, //娴佸叧闂�
EZ_NPC_CLIENT_TRACK_CLOSE_ERROR = 500102, //TRACK_CLOSE
EZ_NPC_CLIENT_NPCCREATE_ERROR = 500103, //鍒涘缓澶辫触
@@ -140,15 +141,7 @@
EZ_NPC_CLIENT_FAIL_UNKNOWN_ERROR = 509999, //FAIL_UNKNOWN
};
-/* WiFi閰嶇疆璁惧鐘舵�� */
-typedef NS_ENUM(NSInteger, EZWifiConfigStatus) {
- DEVICE_WIFI_CONNECTING = 1, //璁惧姝e湪杩炴帴WiFi
- DEVICE_WIFI_CONNECTED = 2, //璁惧杩炴帴WiFi鎴愬姛 (宸插簾寮� v4.16.0)
- DEVICE_PLATFORM_REGISTED = 3, //璁惧娉ㄥ唽骞冲彴鎴愬姛
- DEVICE_ACCOUNT_BINDED = 4 //璁惧宸茬粡缁戝畾璐︽埛 (宸插簾寮� v4.16.0)
-};
-
-/* 璁惧ptz鍛戒护 */
+/* 璁惧ptz鍛戒护锛屽畾涔夌殑鍊间笌Android瀹氫箟鐨勪笉涓�鏍凤紝SDK浼氬湪鍐呴儴浼氬仛涓�灞傝浆鎹� */
typedef NS_OPTIONS(NSUInteger, EZPTZCommand) {
EZPTZCommandLeft = 1 << 0, //鍚戝乏鏃嬭浆
EZPTZCommandRight = 1 << 1, //鍚戝彸鏃嬭浆
@@ -202,44 +195,26 @@
};
/* 閫氶亾娓呮櫚搴︼紝璇锋敞鎰忎笉鏄墍鏈夎澶囬兘鏈夎繖浜涙竻鏅板害鐨勶紝璇锋牴鎹疄闄呭満鏅娇鐢� */
-typedef NS_ENUM(NSInteger, EZVideoLevelType)
-{
+typedef NS_ENUM(NSInteger, EZVideoLevelType) {
EZVideoLevelLow = 0, //娴佺晠
EZVideoLevelMiddle = 1, //鍧囪
EZVideoLevelHigh = 2, //楂樻竻
EZVideoLevelSuperHigh = 3 //瓒呮竻
};
-/* 钀ょ煶鐮斿彂鐨凙PP */
-typedef NS_ENUM(NSInteger, EZAppType)
-{
- EZEzviz = 0, //钀ょ煶浜戣棰戝浗鍐呯増
- EZEzvizInternational = 1, //钀ょ煶浜戣棰戞捣澶栫増
- EZHIKConnect = 2, //HIK-Connect
+/* 褰曞儚绫诲瀷 */
+typedef NS_ENUM(NSUInteger, EZVideoRecordType) {
+ EZVideoRecordTypeAll, // 鎵�鏈夌被鍨�
+ EZVideoRecordTypeCMR, // 瀹氭椂褰曞儚
+ EZVideoRecordTypeEvent // 浜嬩欢绫诲瀷
};
-/* 钀ょ煶璐熻矗鐮斿彂鐨凙PP */
-typedef NS_ENUM(NSInteger, EZAppPageType)
-{
- EZPageDeviceList = 0, //璁惧鍒楄〃椤甸潰
- EZPageAlarmList = 1, //鍛婅娑堟伅鍒楄〃椤甸潰
+/* 浜戝瓨鍌ㄥ綍鍍忕被鍨� */
+typedef NS_ENUM(NSInteger, EZCloudVideoType) {
+ EZCloudVideoTypeAll = -1, // 鍏ㄩ儴褰曞儚
+ EZCloudVideoTypeSeries = 1, // 杩炵画褰曞儚
+ EZCloudVideoTypeAct = 2 // 娲诲姩褰曞儚
};
-
-/* 閰嶇綉鏂瑰紡 */
-typedef NS_ENUM(NSInteger, EZWiFiConfigMode)
-{
- EZWiFiConfigSmart = 1 << 0, //smart config
- EZWiFiConfigWave = 1 << 1, //澹版尝閰嶇綉
-};
-
-///闇�瑕佽繘琛岄噸鏂扮櫥褰曠殑閫氱煡锛岃閫氱煡瑙﹀彂棰戠巼涓�5骞翠竴娆★紝闇�鍦⊿DK鍒濆鍖栫洃鍚�
-extern const NSNotificationName EZNeedReloginNotification;
-
-///閿欒瑙e喅鏂规KEY
-extern const NSString *EZErrorSolutionKey;
-
-///閿欒妯″潡閿欒鐮並EY
-extern const NSString *EZErrorModuleCodeKey;
/// 寮�鏀惧钩鍙板父閲忕被
@interface EZConstants : NSObject
diff --git a/EZSDK/EZSDK/SDK/include/EZConstants_Auth.h b/EZSDK/EZSDK/SDK/include/EZConstants_Auth.h
new file mode 100644
index 0000000..1d70767
--- /dev/null
+++ b/EZSDK/EZSDK/SDK/include/EZConstants_Auth.h
@@ -0,0 +1,52 @@
+//
+// EZConstants_Auth.h
+// Auth
+//
+// Created by JuneCheng on 2022/5/18.
+//
+
+#import <Foundation/Foundation.h>
+
+// 钀ょ煶寮�鏀惧钩鍙板鎵樻柟娉�
+@protocol EZAuthSDKDelegate <NSObject>
+
+@optional
+
+/**
+ 钀ょ煶鐧诲綍鏄惁鎴愬姛
+
+ @param result 鏄惁鎴愬姛
+ */
+- (void)ezvizLoginResult:(BOOL)result;
+
+@end
+
+/* 钀ょ煶鐮斿彂鐨凙PP */
+typedef NS_ENUM(NSInteger, EZAppType) {
+ EZEzviz = 0, // 钀ょ煶浜戣棰戝浗鍐呯増
+ EZEzvizInternational = 1, // 钀ょ煶浜戣棰戞捣澶栫増
+ EZHIKConnect = 2, // HIK-Connect
+};
+
+/* 钀ょ煶璐熻矗鐮斿彂鐨凙PP */
+typedef NS_ENUM(NSInteger, EZAppPageType) {
+ EZPageDeviceList = 0, // 璁惧鍒楄〃椤甸潰
+ EZPageAlarmList = 1, // 鍛婅娑堟伅鍒楄〃椤甸潰
+};
+
+///闇�瑕佽繘琛岄噸鏂扮櫥褰曠殑閫氱煡锛岃閫氱煡瑙﹀彂棰戠巼涓�5骞翠竴娆★紝闇�鍦⊿DK鍒濆鍖栫洃鍚�
+extern const NSNotificationName EZNeedReloginNotification;
+
+///閿欒瑙e喅鏂规KEY
+extern NSErrorUserInfoKey const EZErrorSolutionKey;
+
+///閿欒妯″潡閿欒鐮並EY
+extern NSErrorUserInfoKey const EZErrorModuleCodeKey;
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface EZConstants_Auth : NSObject
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/EZSDK/EZSDK/SDK/include/EZConstants_WifiConfig.h b/EZSDK/EZSDK/SDK/include/EZConstants_WifiConfig.h
new file mode 100644
index 0000000..97dd69d
--- /dev/null
+++ b/EZSDK/EZSDK/SDK/include/EZConstants_WifiConfig.h
@@ -0,0 +1,36 @@
+//
+// EZConstants_WifiConfig.h
+// WifiConfig
+//
+// Created by JuneCheng on 2022/5/6.
+//
+
+#ifndef EZConstants_WifiConfig_h
+#define EZConstants_WifiConfig_h
+
+/* 閰嶇綉鏂瑰紡 */
+typedef NS_ENUM(NSInteger, EZWiFiConfigMode) {
+ EZWiFiConfigSmart = 1 << 0, // smart config
+ EZWiFiConfigWave = 1 << 1, // 澹版尝閰嶇綉
+};
+
+/* WiFi閰嶇疆璁惧鐘舵�� */
+typedef NS_ENUM(NSInteger, EZWifiConfigStatus) {
+ DEVICE_WIFI_CONNECTING = 1, //璁惧姝e湪杩炴帴WiFi
+ DEVICE_WIFI_CONNECTED = 2, //璁惧杩炴帴WiFi鎴愬姛 (宸插簾寮� v4.16.0)
+ DEVICE_PLATFORM_REGISTED = 3, //璁惧娉ㄥ唽骞冲彴鎴愬姛
+ DEVICE_ACCOUNT_BINDED = 4, //璁惧宸茬粡缁戝畾璐︽埛 (宸插簾寮� v4.16.0)
+ DEVICE_WIFI_SENT_SUCCESS = 5, //鍚戣澶囧彂閫乄iFi淇℃伅鎴愬姛
+ DEVICE_WIFI_SENT_FAILED = 6, //鍚戣澶囧彂閫乄iFi淇℃伅澶辫触
+ DEVICE_PLATFORM_REGIST_FAILED = 7, //璁惧娉ㄥ唽骞冲彴澶辫触锛岃疆璇�20娆★紝20娆℃湭鏌ヨ鍒拌澶囦笂绾胯涓烘敞鍐屽钩鍙板け璐�
+};
+
+/* New AP閰嶇綉璁惧鐘舵�� */
+typedef NS_ENUM(NSInteger, EZNewAPConfigStatus) {
+ EZNewAPConfigStatusConnectSuccess = 104, // 杩炴帴鎴愬姛
+ EZNewAPConfigStatusUnknow = 105, // 鏈煡閿欒
+ EZNewAPConfigStatusPasswordError = 106, // 瀵嗙爜閿欒
+ EZNewAPConfigStatusNoAPFound = 201, // 鏈壘鍒皐ifi鐑偣
+};
+
+#endif /* EZConstants_WifiConfig_h */
diff --git a/EZSDK/EZSDK/SDK/include/EZGlobalSDK.h b/EZSDK/EZSDK/SDK/include/EZGlobalSDK.h
index e4c919a..90f7cc9 100644
--- a/EZSDK/EZSDK/SDK/include/EZGlobalSDK.h
+++ b/EZSDK/EZSDK/SDK/include/EZGlobalSDK.h
@@ -1,31 +1,34 @@
//
// EZGlobalSDK.h
-// EZGlobalSDK
+// EZOpenSDK
//
-// Created by DeJohn Dong on 16/7/14.
-// Copyright 漏 2016骞� Ezviz. All rights reserved.
+// Created by JuneCheng on 2022/7/18.
//
#import <Foundation/Foundation.h>
#import "EZConstants.h"
+#import "EZConstants_Auth.h"
+#import "EZConstants_WifiConfig.h"
-@class EZPlayer;
@class EZAccessToken;
-@class EZDeviceInfo;
-@class EZCameraInfo;
-@class EZDeviceVersion;
-@class EZProbeDeviceInfo;
+@class EZPlayer;
@class EZUserInfo;
+@class EZDeviceVersion;
+@class EZDeviceInfo;
+@class EZProbeDeviceInfo;
@class EZDeviceUpgradeStatus;
@class EZLeaveMessage;
@class EZHiddnsDeviceInfo;
+@class EZDeviceCloudServiceInfo;
+@class EZWiFiItemInfo, EZAPDevInfo, EZConfigTokenInfo;
-/// 姝ょ被涓篍ZGlobalSDK鎺ュ彛绫� 鐗瑰埆璇存槑锛�110001锛堝弬鏁伴敊璇級銆�110002锛圓ccessToken杩囨湡锛夈��149999銆�150000锛堟湇鍔$寮傚父锛夋槸鎵�鏈塰ttp鎺ュ彛锛堣繑鍥炲�兼槸NSOperation瀵硅薄鐨勫ぇ閮ㄥ垎鏄痟ttp鎺ュ彛锛夐兘浼氳繑鍥炵殑閫氱敤閿欒鐮侊紝400002涓烘帴鍙e弬鏁伴敊璇殑閫氱敤閿欒鐮�
+NS_ASSUME_NONNULL_BEGIN
+
@interface EZGlobalSDK : NSObject
+#pragma mark - Auth璁よ瘉鐩稿叧Api
/**
- * @since 4.4.0
* 瀹炰緥EZOpenSDK鎺ュ彛
*
* @param appKey 浼犲叆鐢宠鐨刟ppKey
@@ -35,18 +38,51 @@
+ (BOOL)initLibWithAppKey:(NSString *)appKey;
/**
- * 瀹炰緥EZGlobalSDK鎺ュ彛锛屽尯鍩熸湇鍔″櫒鍒囨崲鎺ュ彛
+ * 鍒濆鍖栨帴鍙o紝鍙缃湇鍔″櫒锛屾捣澶栫敤鎴蜂娇鐢ㄨ鍒濆鍖栨柟娉�
*
* @param appKey 浼犲叆鐢宠鐨刟ppKey
- * @param url apiUrl鍦板潃
+ * @param apiUrl apiUrl鍦板潃
* @param authUrl auth鍦板潃
*
* @return YES/NO
*/
-+ (BOOL)initLibWithAppKey:(NSString *)appKey url:(NSString *)url authUrl:(NSString *)authUrl;
++ (BOOL)initLibWithAppKey:(NSString *)appKey
+ url:(NSString *)apiUrl
+ authUrl:(NSString *)authUrl;
/**
- * @since 1.0.0
+ * 閿�姣丒ZOpenSDK鎺ュ彛
+ *
+ * @return YES/NO
+ */
++ (BOOL)destoryLib;
+
+/**
+ * 璁剧疆鏄惁鎵撳嵃debug鏃ュ織,闇�鍦ㄥ垵濮嬪寲sdk涔嬪墠璋冪敤
+ *
+ * @param enable 鏄惁鎵撳嵃鏃ュ織锛岄粯璁ゅ叧闂�
+ *
+ * @return YES/NO
+ */
++ (BOOL)setDebugLogEnable:(BOOL)enable;
+
+/**
+ * 璁剧疆debug鏃ュ織鍥炶皟,闇�鍦ㄥ垵濮嬪寲sdk涔嬪墠璋冪敤
+ *
+ * @param logCallback 鏃ュ織鍥炶皟
+ */
++ (void)setDebugLogCallBack:(void(^)(NSString *logStr))logCallback;
+
+/**
+ * 鎵撳紑鎺堟潈鐧诲綍涓棿椤甸潰鎺ュ彛
+ *
+ * @param areaId areaId
+ * @param block 鍥炶皟block
+*/
++ (void)openLoginPage:(NSString *)areaId
+ completion:(void (^)(EZAccessToken *accessToken))block;
+
+/**
* 鎺堟潈鐧诲綍浠ュ悗缁橢ZOpenSDK璁剧疆accessToken鎺ュ彛
*
* @param accessToken 鎺堟潈鐧诲綍鑾峰彇鐨刟ccessToken
@@ -54,85 +90,275 @@
+ (void)setAccessToken:(NSString *)accessToken;
/**
- * @since 1.0.0
- * 閿�姣丒ZOpenSDK鏂规硶
- *
- * @return YES/NO
- */
-+ (BOOL)destoryLib;
-
-/**
- * @since 1.0.0
- * 鑾峰彇SDK鐗堟湰鍙�
- *
- * @return 鐗堟湰鍙�
- */
-+ (NSString *)getVersion;
-
-/**
- * @since 1.0.0
- * 璁剧疆p2p鍔熻兘鏄惁寮�鍚紝榛樿涓嶅紑鍚痯2p锛岀敤鎴疯嚜宸遍�夋嫨鏄惁寮�鍚�
- *
- * @param enable p2p鏄惁寮�鍚�
- */
-+ (void)enableP2P:(BOOL)enable;
-
-/**
- * @since 1.0.0
- * 鑾峰彇鍖哄煙鍒楄〃鎺ュ彛
- *
- * @param completion 鍥炶皟block锛宎reaList涓殑鍏冪礌涓篍ZAreaInfo瀵硅薄
- *
- * @return operation
- */
-+ (NSURLSessionDataTask *)getAreaList:(void (^)(NSArray *areaList, NSError *error))completion;
-
-/**
- * @since 1.0.0
- * 鎵撳紑鎺堟潈鐧诲綍涓棿椤甸潰
- *
- * @param block 鍥炶皟block
- */
-+ (void)openLoginPage:(NSString *)areaId
- completion:(void (^)(EZAccessToken *accessToken))block;
-
-/**
- * @since 1.0.0
* 璐︽埛娉ㄩ攢鎺ュ彛
*
* @param completion 鍥炶皟block锛宔rror涓虹┖琛ㄧず鐧诲嚭鎴愬姛
*/
+ (void)logout:(void (^)(NSError *error))completion;
+
/**
- * @since 1.0.0
- * 鏍规嵁alarmId鍒犻櫎鍛婅淇℃伅鎺ュ彛
+ 澶栭儴璺宠浆澶勭悊鏂规硶锛岄�傜敤浜巌OS9浠ヤ笂锛屽寘鎷琲OS9
+
+ @param url 璺宠浆杩囨潵鐨剈rl
+ @param options 鍙傛暟锛岄粯璁や负绌猴紝鐩墠鏈繘琛屽鐞嗭紝棰勭暀
+ @param delegate 濮旀墭
+ @return 缁撴灉
+ */
++ (BOOL)handleOpenUrl:(NSURL *)url options:(NSDictionary *)options delegate:(id<EZAuthSDKDelegate>)delegate;
+
+/**
+ * 鑾峰彇SDK鐗堟湰鍙锋帴鍙�
*
- * @param alarmIds 鍛婅淇℃伅Id鏁扮粍(鍙互鍙湁涓�涓狪d)锛屾渶澶氫负10涓狪d锛屽惁鍒欎細鎶ラ敊
- * @param completion 鍥炶皟block锛宔rror涓虹┖鏃惰〃绀哄垹闄ゆ垚鍔�
+ * @return 鐗堟湰鍙�
+ */
++ (NSString *)getVersion;
+
+/**
+ * 鎵撳紑浜戝瓨鍌ㄤ腑闂撮〉
+ *
+ * @param deviceSerial 璁惧搴忓垪鍙�
+ * @param channelNo 璁惧閫氶亾鍙�
+ */
++ (void)openCloudPage:(NSString *)deviceSerial channelNo:(NSInteger)channelNo;
+
+/**
+ * 鎵撳紑淇敼瀵嗙爜涓棿椤�
+ *
+ * @param completion 鍥炶皟block resultCode涓�0鏃惰〃绀轰慨鏀瑰瘑鐮佹垚鍔�
+ */
++ (void)openChangePasswordPage:(void (^)(NSInteger resultCode))completion;
+
+/**
+ 鏄惁宸茬粡鐧诲綍
+
+ @return YES锛氬凡缁忕櫥褰曪紱NO锛氭湭鐧诲綍
+ */
++ (BOOL)isLogin;
+
+/**
+ 鑾峰彇褰撳墠accessToken
+
+ @return accessToken
+ */
++ (NSString *)getAccesstoken;
+
+#pragma mark - 鎾斁鍣ㄥ垱寤篈pi
+
+/**
+ * 鏍规嵁cameraId鏋勯�燛ZPlayer瀵硅薄
+ *
+ * @param deviceSerial 璁惧搴忓垪鍙�
+ * @param cameraNo 閫氶亾鍙�
+ *
+ * @return EZPlayer瀵硅薄
+ */
++ (EZPlayer *)createPlayerWithDeviceSerial:(NSString *)deviceSerial
+ cameraNo:(NSInteger)cameraNo;
+
+/**
+ * 涓�涓〉闈㈠瓨鍦ㄥ涓棰戜娇鐢ㄦ渶灏忕殑鐮佹祦锛屾病鏈夊瓙鐮佹祦鐨勮瘽杩樻槸浣跨敤涓荤爜娴�
+ *
+ * @param deviceSerial 璁惧搴忓垪鍙�
+ * @param cameraNo 铏氭嫙閫氶亾
+ * @param useSubStream 鏄惁浣跨敤瀛愮爜娴�
+ *
+ * @return EZPlayer瀵硅薄
+ */
++ (EZPlayer *)createPlayerWithDeviceSerial:(NSString *)deviceSerial
+ cameraNo:(NSInteger)cameraNo
+ useSubStream:(BOOL)useSubStream;
+
+/**
+ * 鏍规嵁url鏋勯�燛ZPlayer瀵硅薄 锛堜富瑕佺敤鏉ュ鐞嗚棰戝箍鍦虹殑鎾斁锛�
+ *
+ * @param url 鎾斁url锛岀洰鍓嶅彧鏀寔璇ュ崗璁細ysproto://vtm.ys7.com:8554/live?dev=531993276&chn=1&stream=1&cln=1&isp=0&biz=3
+ *
+ * @return EZPlayer瀵硅薄
+ */
++ (EZPlayer *)createPlayerWithUrl:(NSString *)url;
+
+
+/**
+ * 閲婃斁EZPlayer瀵硅薄
+ *
+ * @param player EZPlayer瀵硅薄
+ *
+ * @return YES/NO
+ */
++ (BOOL)releasePlayer:(EZPlayer *)player;
+
+#pragma mark - 鍙栨祦鐩稿叧Api
+
+/**
+ * 璁剧疆p2p鍔熻兘鏄惁寮�鍚帴鍙o紝榛樿涓嶅紑鍚痯2p锛岀敤鎴疯嚜宸遍�夋嫨鏄惁寮�鍚�
+ *
+ * @param enable p2p鏄惁寮�鍚�
+ */
++ (void)enableP2P:(BOOL)enable;
+
+/**
+ * 娓呴櫎鍙栨祦鏃剁殑缂撳瓨鏁版嵁
+ */
++ (void)clearStreamInfoCache;
+
+/**
+ * 鏄惁鏀寔鍥芥爣
+ * @param enable YES or NO
+ */
++ (void)enableNationalStandard:(BOOL)enable;
+
+#pragma mark - 褰曞儚鏌ヨApi
+
+/**
+ * 鏌ヨ浜戝瓨鍌ㄥ綍鍍忎俊鎭垪琛ㄦ帴鍙�
+ *
+ * @param deviceSerial 璁惧搴忓垪鍙�
+ * @param cameraNo 閫氶亾鍙�
+ * @param beginTime 鏌ヨ鏃堕棿鑼冨洿寮�濮嬫椂闂�
+ * @param endTime 鏌ヨ鏃堕棿鑼冨洿缁撴潫鏃堕棿
+ * @param completion 鍥炶皟block锛屾甯告椂杩斿洖EZCloudRecordFile鐨勫璞℃暟缁勶紝閿欒鏃惰繑鍥為敊璇爜
*
* @return operation
*/
-+ (NSURLSessionDataTask *)deleteAlarm:(NSArray *)alarmIds
- completion:(void (^)(NSError *error))completion;
++ (NSURLSessionDataTask *)searchRecordFileFromCloud:(NSString *)deviceSerial
+ cameraNo:(NSInteger)cameraNo
+ beginTime:(NSDate *)beginTime
+ endTime:(NSDate *)endTime
+ completion:(void (^)(NSArray *couldRecords, NSError *error))completion;
/**
- * @since 1.0.0
- * 璁剧疆鍛婅淇℃伅涓哄凡璇绘帴鍙�
+ * 鏌ヨ杩滅▼SD鍗″瓨鍌ㄥ綍鍍忎俊鎭垪琛ㄦ帴鍙�
*
- * @param alarmIds 鍛婅淇℃伅Id鏁扮粍(鍙互鍙湁涓�涓狪d)锛屾渶澶氫负10涓猧d,鍚﹀垯浼氭姤閿�
- * @param status 鍛婅娑堟伅鐘舵��
- * @param completion 鍥炶皟block锛宔rror涓虹┖鏃惰〃绀鸿缃垚鍔�
+ * @param deviceSerial 璁惧搴忓垪鍙�
+ * @param cameraNo 閫氶亾鍙�
+ * @param beginTime 鏌ヨ鏃堕棿鑼冨洿寮�濮嬫椂闂�
+ * @param endTime 鏌ヨ鏃堕棿鑼冨洿缁撴潫鏃堕棿
+ * @param completion 鍥炶皟block锛屾甯告椂杩斿洖EZDeviceRecordFile鐨勫璞℃暟缁勶紝閿欒鏃惰繑鍥為敊璇爜
*
- * @return opeartion
+ * @return operation
*/
-+ (NSURLSessionDataTask *)setAlarmStatus:(NSArray *)alarmIds
- alarmStatus:(EZMessageStatus)status
- completion:(void (^)(NSError *error))completion;
-
++ (NSURLSessionDataTask *)searchRecordFileFromDevice:(NSString *)deviceSerial
+ cameraNo:(NSInteger)cameraNo
+ beginTime:(NSDate *)beginTime
+ endTime:(NSDate *)endTime
+ completion:(void (^)(NSArray *deviceRecords, NSError *error))completion;
/**
- * @since 1.0.0
+ * 鑾峰彇鎸囧畾鏃堕棿鍐呯殑鎵�鏈夊綍鍍忔枃浠�
+ *
+ * @param deviceSerial 璁惧搴忓垪鍙�
+ * @param cameraNo 閫氶亾鍙凤紝浼犲叆<=0鐨勫�煎垯涓洪粯璁ゅ��
+ * @param beginTime 寮�濮嬫椂闂达紝浼犲叆nil鍒欎负褰撳ぉ00:00:00
+ * @param endTime 缁撴潫鏃堕棿锛屼紶鍏il鍒欎负褰撳ぉ23:59:59
+ * @param rectype 鍥炴斁婧愶紝0-绯荤粺鑷姩閫夋嫨锛�1-浜戝瓨鍌紝2-鏈湴褰曞儚銆傞潪蹇呴�夛紝榛樿涓�0锛屼紶鍏ヨ礋鍊煎垯涓洪粯璁ゅ��
+ * @param bizType 璁惧褰掑睘涓氬姟鏉ユ簮
+ * @param platFormId 骞冲彴ID
+ * @param completion 鍥炶皟block records:EzvizRecordFileInfo鐨勬暟缁�
+ *
+ * @return operation
+ */
++ (NSURLSessionDataTask *)searchRecordFile:(NSString *)deviceSerial
+ cameraNo:(NSString *)cameraNo
+ beginTime:(NSDate *)beginTime
+ endTime:(NSDate *)endTime
+ recType:(NSInteger)rectype
+ bizType:(NSString *)bizType
+ platFormId:(NSString *)platFormId
+ completion:(void (^)(id records, NSError *error))completion;
+
+#pragma mark - 璁惧鐩稿叧Api
+
+/**
+ * 鏍规嵁璁惧搴忓垪鍙峰拰璁惧楠岃瘉鐮佹坊鍔犺澶囨帴鍙�
+ *
+ * @param deviceSerial 璁惧搴忓垪鍙�
+ * @param verifyCode 璁惧楠岃瘉鐮�
+ * @param completion 鍥炶皟block锛宔rror涓虹┖鏃惰〃绀烘坊鍔犳垚鍔�
+ *
+ * @return operation
+ */
++ (NSURLSessionDataTask *)addDevice:(NSString *)deviceSerial
+ verifyCode:(NSString *)verifyCode
+ completion:(void (^)(NSError *error))completion;
+
+/**
+ * 鑾峰彇鐢ㄦ埛鎵�鏈夌殑璁惧鍒楄〃
+ *
+ * @param pageIndex 鍒嗛〉褰撳墠椤电爜锛堜粠0寮�濮嬶級
+ * @param pageSize 鍒嗛〉姣忛〉鏁伴噺锛堝缓璁�20浠ュ唴锛�
+ * @param completion 鍥炶皟block锛屾甯告椂杩斿洖EZDeviceInfo鐨勫璞℃暟缁勫拰璁惧鎬绘暟锛岄敊璇椂杩斿洖閿欒鐮�
+ *
+ * @return operation
+ */
++ (NSURLSessionDataTask *)getDeviceList:(NSInteger)pageIndex
+ pageSize:(NSInteger)pageSize
+ completion:(void (^)(NSArray *deviceList, NSInteger totalCount, NSError *error))completion;
+
+/**
+ * 鑾峰彇鍒嗕韩缁欑敤鎴风殑璁惧鍒楄〃鎺ュ彛
+ *
+ * @param pageIndex 鍒嗛〉褰撳墠椤电爜锛堜粠0寮�濮嬶級
+ * @param pageSize 鍒嗛〉姣忛〉鏁伴噺锛堝缓璁�20浠ュ唴锛�
+ * @param completion 鍥炶皟block锛屾甯告椂杩斿洖EZDeviceInfo鐨勫璞℃暟缁勫拰璁惧鎬绘暟锛岄敊璇椂杩斿洖閿欒鐮�
+ *
+ * @return operation
+ */
++ (NSURLSessionDataTask *)getSharedDeviceList:(NSInteger)pageIndex
+ pageSize:(NSInteger)pageSize
+ completion:(void (^)(NSArray *deviceList, NSInteger totalCount, NSError *error))completion;
+
+/**
+ * 鏍规嵁搴忓垪鍙疯幏鍙栬澶囦俊鎭�
+ *
+ * @param deviceSerial 璁惧搴忓垪鍙�
+ * @param completion 鍥炶皟block锛屾甯告椂杩斿洖EZDeviceInfo鐨勫璞★紝閿欒鏃惰繑鍥為敊璇爜
+ *
+ * @return operation
+ */
++ (NSURLSessionDataTask *)getDeviceInfo:(NSString *)deviceSerial
+ completion:(void (^)(EZDeviceInfo *deviceInfo, NSError *error))completion;
+
+/**
+ * 鑾峰彇璁惧鐨勭増鏈俊鎭帴鍙�
+ *
+ * @param deviceSerial 璁惧搴忓垪鍙�
+ * @param completion 鍥炶皟block锛屾甯告椂杩斿洖EZDeviceVersion鐨勫璞′俊鎭紝閿欒鏃惰繑鍥為敊璇爜
+ *
+ * @return operation
+ */
++ (NSURLSessionDataTask *)getDeviceVersion:(NSString *)deviceSerial
+ completion:(void (^)(EZDeviceVersion *version, NSError *error))completion;
+
+/**
+ * 閫氳繃璁惧楠岃瘉鐮佸紑鍏宠棰戝浘鐗囧姞瀵嗘帴鍙�
+ *
+ * @param isEncrypt 鏄惁鍔犲瘑锛屽彧鏈塏O(鍏抽棴)鐨勬椂鍊欓渶瑕佽澶囬獙璇佺爜鐨勭浉鍏冲弬鏁�(vaildateCode)
+ * @param deviceSerial 璁惧搴忓垪鍙�
+ * @param verifyCode 璁惧楠岃瘉鐮�
+ * @param completion 鍥炶皟block锛宔rror涓虹┖鏃惰〃绀烘搷浣滄垚鍔�
+ *
+ * @return operation
+ */
++ (NSURLSessionDataTask *)setDeviceEncryptStatus:(NSString *)deviceSerial
+ verifyCode:(NSString *)verifyCode
+ encrypt:(BOOL)isEncrypt
+ completion:(void (^)(NSError *error))completion;
+
+/**
+ * 鏍规嵁璁惧搴忓垪鍙蜂慨鏀硅澶囧悕绉版帴鍙�
+ *
+ * @param deviceSerial 璁惧搴忓垪鍙�
+ * @param deviceName 璁惧鍚嶇О
+ * @param completion 鍥炶皟block锛宔rror涓虹┖鏃惰〃绀轰慨鏀规垚鍔�
+ *
+ * @return operation
+ */
++ (NSURLSessionDataTask *)setDeviceName:(NSString *)deviceName
+ deviceSerial:(NSString *)deviceSerial
+ completion:(void (^)(NSError *error))completion;
+
+/**
* 鏍规嵁璁惧搴忓垪鍙峰垹闄ゅ綋鍓嶈处鍙风殑璁惧鎺ュ彛
*
* @param deviceSerial 璁惧搴忓垪鍙�
@@ -142,10 +368,408 @@
* @return operation
*/
+ (NSURLSessionDataTask *)deleteDevice:(NSString *)deviceSerial
- completion:(void (^)(NSError *error))completion;
+ completion:(void (^)(NSError *error))completion;
/**
- * @since 1.0.0
+ * 鏍规嵁璁惧搴忓垪鍙疯幏鍙栧瓨鍌ㄤ粙璐ㄧ姸鎬�(濡傛槸鍚﹀垵濮嬪寲锛屾牸寮忓寲杩涘害绛�)
+ *
+ * @param deviceSerial 璁惧搴忓垪鍙�
+ * @param completion 鍥炶皟block锛屾甯告椂杩斿洖EZStorageInfo鐨勫璞℃暟缁勶紝閿欒鏃惰繑鍥為敊璇爜
+ *
+ * @return operation
+ */
++ (NSURLSessionDataTask *)getStorageStatus:(NSString *)deviceSerial
+ completion:(void (^)(NSArray *storageStatus, NSError *error))completion;
+
+/**
+ * 鏍规嵁璁惧搴忓垪鍙峰拰鍒嗗尯缂栧彿鏍煎紡鍖栧垎鍖猴紙SD鍗★級
+ *
+ * @param deviceSerial 璁惧搴忓垪鍙�
+ * @param storageIndex 鏌ヨ杩斿洖鐨勫垎鍖哄彿锛�0琛ㄧず鍏ㄩ儴鏍煎紡鍖栵紝鍙兘浼氭湁鍑犲潡纭洏鐨勬儏鍐�
+ * @param completion 鍥炶皟block锛宔rror涓虹┖琛ㄧず璁剧疆鎴愬姛
+ *
+ * @return operation
+ */
++ (NSURLSessionDataTask *)formatStorage:(NSString *)deviceSerial
+ storageIndex:(NSInteger)storageIndex
+ completion:(void (^)(NSError *error))completion;
+
+/**
+ * 鏍规嵁璁惧搴忓垪鍙疯幏鍙栬澶囧崌绾ф椂鐨勮繘搴︾姸鎬�
+ *
+ * @param deviceSerial 璁惧搴忓垪鍙�
+ * @param completion 鍥炶皟block锛屾甯告椂杩斿洖EZDeviceUpgradeStatus瀵硅薄锛岄敊璇椂杩斿洖閿欒鐮�
+ *
+ * @return operation
+ */
++ (NSURLSessionDataTask *)getDeviceUpgradeStatus:(NSString *)deviceSerial
+ completion:(void (^)(EZDeviceUpgradeStatus *status, NSError *error))completion;
+
+/**
+ * 閫氳繃璁惧搴忓垪鍙峰璁惧杩涜鍗囩骇鎿嶄綔锛屽墠鎻愭槸璇ヨ澶囨湁鏇存柊杞欢鐨勬彁绀�
+ *
+ * @param deviceSerial 璁惧搴忓垪鍙�
+ * @param completion 鍥炶皟block锛宔rror涓虹┖琛ㄧず鎿嶄綔鎴愬姛
+ *
+ * @return operation
+ */
++ (NSURLSessionDataTask *)upgradeDevice:(NSString *)deviceSerial
+ completion:(void (^)(NSError *error))completion;
+
+/**
+ * 鑾峰彇鎶撳彇鎽勫儚澶村浘鐗囩殑url鎺ュ彛
+ *
+ * @param deviceSerial 璁惧搴忓垪鍙�
+ * @param cameraNo 閫氶亾鍙�
+ * @param completion 鍥炶皟block锛屾甯告椂杩斿洖url鍦板潃淇℃伅锛岄敊璇椂杩斿洖閿欒鐮�
+ * @see 璇ユ帴鍙f瘮杈冭�楁椂锛屼笉寤鸿杩涜鎵归噺璁惧鎶撳浘锛孲DK鍐呴儴鍙敮鎸�6涓猦ttp璇锋眰骞跺彂锛岃鎺ュ彛浼氭寔缁崰鐢╤ttp璇锋眰璧勬簮锛屽鏋滈亣鍒癶ttp璇锋眰寤舵椂宸ㄥぇ闂锛屼紭鍏堣�冭檻鎶撳浘鎺ュ彛骞跺彂閫犳垚鐨勯棶棰�,
+ * 鎶撳浘灏嗗湪鏈嶅姟鍣ㄧ淇濈暀2涓皬鏃�
+ *
+ * @return operation
+ */
++ (NSURLSessionDataTask *)captureCamera:(NSString *)deviceSerial
+ cameraNo:(NSInteger)cameraNo
+ completion:(void (^)(NSString *url, NSError *error))completion;
+
+/**
+ * 璁剧疆璁惧閫氶亾鐨勬竻鏅板害
+ *
+ * @param deviceSerial 璁惧搴忓垪鍙�
+ * @param cameraNo 閫氶亾鍙�
+ * @param videoLevel 閫氶亾娓呮櫚搴︼紝0-娴佺晠锛�1-鍧囪 锛�2-楂樻竻锛�3-瓒呮竻
+ * @param completion 鍥炶皟block锛屾棤error琛ㄧず璁剧疆鎴愬姛
+ * @see 濡傛灉鏄鍦ㄦ挱鏀炬椂璋冪敤璇ユ帴鍙o紝璁剧疆娓呮櫚搴︽垚鍔熶互鍚庡繀椤昏EZPlayer璋冪敤stopRealPlay鍐嶈皟鐢╯tartRealPlay閲嶆柊鍙栨祦鎵嶆垚瀹屾垚鐢婚潰娓呮櫚搴︾殑鍒囨崲銆�
+ *
+ * @return operation
+ */
++ (NSURLSessionDataTask *)setVideoLevel:(NSString *)deviceSerial
+ cameraNo:(NSInteger)cameraNo
+ videoLevel:(EZVideoLevelType)videoLevel
+ completion:(void (^)(NSError *error))completion;
+
+/**
+ * 璁惧璁剧疆甯冮槻鐘舵�侊紝鍏煎A1鍜孖PC璁惧鐨勫竷闃�
+ *
+ * @param defence 甯冮槻鐘舵��, IPC甯冮槻鐘舵�佸彧鏈�0鍜�1锛孉1鏈�0:鐫$湢 8:鍦ㄥ 16:澶栧嚭
+ * @param deviceSerial 璁惧搴忓垪鍙�
+ * @param completion 鍥炶皟block锛宔rror涓虹┖琛ㄧず璁剧疆鎴愬姛
+ *
+ * @return operation
+ */
++ (NSURLSessionDataTask *)setDefence:(EZDefenceStatus)defence
+ deviceSerial:(NSString *)deviceSerial
+ completion:(void (^)(NSError *error))completion;
+
+#pragma mark - 浜戝彴鎺у埗Api
+
+/**
+ * PTZ 鎺у埗鎺ュ彛
+ *
+ * @param deviceSerial 璁惧搴忓垪鍙�
+ * @param cameraNo 閫氶亾鍙�
+ * @param command ptz鎺у埗鍛戒护
+ * @param action 鎺у埗鍚姩/鍋滄
+ * @param speed 浜戝彴閫熷害锛�0-鎱紝1-閫備腑锛�2-蹇�
+ * @param resultBlock 鍥炶皟block锛屽綋error涓虹┖鏃惰〃绀烘搷浣滄垚鍔�
+ *
+ * @return operation
+ */
++ (NSURLSessionDataTask *)controlPTZ:(NSString *)deviceSerial
+ cameraNo:(NSInteger)cameraNo
+ command:(EZPTZCommand)command
+ action:(EZPTZAction)action
+ speed:(NSInteger)speed
+ result:(void (^)(NSError *error))resultBlock;
+
+/**
+ * 鎽勫儚澶存樉绀烘帶鍒舵帴鍙�
+ *
+ * @param deviceSerial 璁惧搴忓垪鍙�
+ * @param cameraNo 閫氶亾鍙�
+ * @param command 鏄剧ず鎺у埗鍛戒护
+ * @param resultBlock 鍥炶皟block锛屽綋error涓虹┖鏃惰〃绀烘搷浣滄垚鍔�
+ */
++ (void)controlVideoFlip:(NSString *)deviceSerial
+ cameraNo:(NSInteger)cameraNo
+ command:(EZDisplayCommand)command
+ result:(void (^)(NSError *error))resultBlock;
+
+#pragma mark - 浜戝瓨鍌ㄧ浉鍏矨pi
+
+/**
+ * 妫�鏌ュ浗瀹舵槸鍚︽敮鎸佷簯瀛樺偍鏈嶅姟
+ *
+ * @param completion 鍥炶皟
+ * @return operation
+ */
++ (NSURLSessionDataTask *)isSupportCloundService:(void (^)(BOOL isSupport, NSError *error))completion;
+
+/**
+ * 鏌ヨ浜戝瓨鍌ㄨ澶囬�氶亾濂楅淇℃伅
+ *
+ * @param deviceSerial 璁惧搴忓垪鍙�
+ * @param channelNo 閫氶亾鍙�
+ * @param completion 鍥炶皟block
+ *
+ * @return operation
+ */
++ (NSURLSessionDataTask *)getCloundDevicePackageInfo:(NSString *)deviceSerial
+ channelNo:(NSInteger)channelNo
+ completion:(void (^)(EZDeviceCloudServiceInfo *serviceInfo, NSError *error))completion;
+
+/**
+ * 浜戝瓨鍌ㄥ姛鑳芥殏鍋滄仮澶�
+ *
+ * @param deviceSerial 璁惧搴忓垪鍙�
+ * @param channelNo 閫氶亾鍙�
+ * @param enable NO-绂佺敤锛孻ES-鍚敤
+ * @param completion 鍥炶皟block
+ *
+ * @return operation
+ */
++ (NSURLSessionDataTask *)setCloundServiceActive:(NSString *)deviceSerial
+ channelNo:(NSInteger)channelNo
+ enable:(BOOL)enable
+ completion:(void (^)(NSError *error))completion;
+
+/**
+ * 鏌ヨ鏌愭湀涓湁瑙嗛鏂囦欢鐨勫ぉ(鏃ユ湡)
+ *
+ * @param deviceSerial 璁惧搴忓垪鍙�
+ * @param channelNo 閫氶亾鍙�
+ * @param month 鏌ヨ鏌愭湀鍏锋湁浜戝瓨鍌ㄧ殑鏃ユ湡锛屾牸寮忎负yyyyMM
+ * @param completion 鍥炶皟block
+ *
+ * @return operation
+ */
++ (NSURLSessionDataTask *)getCloudVideoDays:(NSString *)deviceSerial
+ channelNo:(NSInteger)channelNo
+ month:(NSString *)month
+ completion:(void (^)(NSArray<NSString *> *dayArray, NSError *error))completion;
+
+/**
+ * 鎸夎澶囬�氶亾鍒犻櫎鎵�鏈変簯瀛樺偍褰曞儚鐗囨
+ *
+ * @param deviceSerial 璁惧搴忓垪鍙�
+ * @param channelNo 閫氶亾鍙�
+ * @param completion 鍥炶皟block
+ *
+ * @return operation
+ */
++ (NSURLSessionDataTask *)deleteAllCloudVideo:(NSString *)deviceSerial
+ channelNo:(NSInteger)channelNo
+ completion:(void (^)(NSError *error))completion;
+
+/**
+ * 鍒犻櫎浜戝瓨鍌ㄥ綍鍍忕墖娈�
+ *
+ * @param deviceSerial 璁惧搴忓垪鍙�
+ * @param channelNo 閫氶亾鍙�
+ * @param videos 瑙嗛鏁扮粍锛堥檺鍒�30涓互鍐咃級
+ * @param completion 鍥炶皟block
+ *
+ * @return operation
+ */
++ (NSURLSessionDataTask *)deleteCloudVideoFragment:(NSString *)deviceSerial
+ channelNo:(NSInteger)channelNo
+ videos:(NSArray *)videos
+ completion:(void (^)(NSError *error))completion;
+
+/**
+ * 鎸夊ぉ澧為噺鏌ヨ浜戝瓨鍌ㄥ綍鍍忓垪琛ㄦ帴鍙�(姒傝淇℃伅)
+ *
+ * @param deviceSerial 璁惧搴忓垪鍙�
+ * @param channelNo 閫氶亾鍙�
+ * @param videoType 褰曞儚绫诲瀷videoType
+ * @param searchDate 鏌ユ壘鏂囦欢鏃ユ湡yyyy-MM-dd
+ * @param maxCreateTime 鏌ユ壘鏂囦欢鐨勮捣濮嬫椂闂磞yyy-MM-dd HH:mm:ss锛岃淇濊瘉鍜宻earchDate鏄悓涓�澶╋紝鍚﹀垯鎶ラ敊銆傞粯璁や粠 yyyy-MM-dd 00:00:00寮�濮嬶紝闈炲繀濉紝鍙紶nil
+ * @param completion 鍥炶皟block
+ *
+ * @return operation
+ */
++ (NSURLSessionDataTask *)getIncrCloudVideos:(NSString *)deviceSerial
+ channelNo:(NSInteger)channelNo
+ videoType:(EZCloudVideoType)videoType
+ searchDate:(NSString *)searchDate
+ maxCreateTime:(NSString *)maxCreateTime
+ completion:(void (^)(NSArray *abstractvideos, NSError *error))completion;
+
+/**
+ * 鏍规嵁鏂囦欢id鎵归噺鏌ヨ璇︽儏淇℃伅鎺ュ彛
+ *
+ * @param deviceSerial 璁惧搴忓垪鍙�
+ * @param channelNo 閫氶亾鍙�
+ * @param videos 褰曞儚姒傝淇℃伅鏁扮粍
+ * @param completion 鍥炶皟block
+ *
+ * @return operation
+ */
++ (NSURLSessionDataTask *)getCloudVideoDetails:(NSString *)deviceSerial
+ channelNo:(NSInteger)channelNo
+ videos:(NSArray *)videos
+ completion:(void (^)(NSArray *couldRecords, NSError *error))completion;
+
+#pragma mark - 鍛婅鐩稿叧Api
+
+/**
+ * 鏍规嵁璁惧搴忓垪鍙疯幏鍙栧憡璀︿俊鎭垪琛紝璁惧搴忓垪鍙蜂负nil鏃舵煡璇㈡暣涓处鎴蜂笅鐨勫憡璀︿俊鎭垪琛�
+ *
+ * @param deviceSerial 璁惧搴忓垪鍙�
+ * @param pageIndex 鍒嗛〉褰撳墠椤电爜锛堜粠0寮�濮嬶級
+ * @param pageSize 鍒嗛〉姣忛〉鏁伴噺锛堝缓璁�20浠ュ唴锛�
+ * @param beginTime 鎼滅储鏃堕棿鑼冨洿寮�濮嬫椂闂�
+ * @param endTime 鎼滅储鏃堕棿鑼冨洿缁撴潫鏃堕棿
+ * @param completion 鍥炶皟block锛屾甯告椂杩斿洖EZAlarmInfo鐨勫璞℃暟鎹拰鏌ヨ鏃堕棿鑼冨洿鍐呯殑鍛婅涓暟鐨勬�绘暟锛岄敊璇椂杩斿洖閿欒鐮�
+ *
+ * @return operation
+ */
++ (NSURLSessionDataTask *)getAlarmList:(NSString *)deviceSerial
+ pageIndex:(NSInteger)pageIndex
+ pageSize:(NSInteger)pageSize
+ beginTime:(NSDate *)beginTime
+ endTime:(NSDate *)endTime
+ completion:(void (^)(NSArray *alarmList, NSInteger totalCount, NSError *error))completion;
+
+/**
+ * 鍛婅鍥剧墖瑙e瘑鏂规硶锛岃澶囧姞瀵�
+ *
+ * @param data 闇�瑕佽В瀵嗙殑鏁版嵁
+ * @param verifyCode 璁惧楠岃瘉鐮�
+ *
+ * @return 瑙e瘑鐨凬SData瀵硅薄锛屽鏋滆繑鍥炵殑鏁版嵁鏄┖鐨勶紝璇锋鏌ュ瘑鐮佹槸鍚︽纭垨鑰呬紶鍏ョ殑鏁版嵁鏄惁姝g‘銆�
+ */
++ (NSData *)decryptData:(NSData *)data verifyCode:(NSString *)verifyCode;
+
+/**
+ * 鍛婅鍥剧墖瑙e瘑鏂规硶锛岃澶囧姞瀵�
+ *
+ * @param data 闇�瑕佽В瀵嗙殑鏁版嵁
+ * @param verifyCode 璁惧楠岃瘉鐮�
+ * @param type 1:璁惧鍔犲瘑锛�2锛氬钩鍙板姞瀵�
+ *
+ * @return 瑙e瘑鐨凬SData瀵硅薄锛屽鏋滆繑鍥炵殑鏁版嵁鏄┖鐨勶紝璇锋鏌ュ瘑鐮佹槸鍚︽纭垨鑰呬紶鍏ョ殑鏁版嵁鏄惁姝g‘銆�
+ */
++ (NSData *)decryptData:(NSData *)data verifyCode:(NSString *)verifyCode encryptType:(NSInteger)type;
+
+/**
+ * 璁剧疆鍛婅淇℃伅涓哄凡璇绘帴鍙�
+ *
+ * @param alarmIds 鍛婅淇℃伅Id鏁扮粍(鍙互鍙湁涓�涓狪d)锛屾渶澶氫负10涓猧d,鍚﹀垯浼氭姤閿�
+ * @param status 鍛婅娑堟伅鐘舵��
+ * @param completion 鍥炶皟block锛宔rror涓虹┖鏃惰〃绀鸿缃垚鍔�
+ *
+ * @return operation
+ */
++ (NSURLSessionDataTask *)setAlarmStatus:(NSArray *)alarmIds
+ alarmStatus:(EZMessageStatus)status
+ completion:(void (^)(NSError *error))completion;
+
+/**
+ * 鏍规嵁alarmId鍒犻櫎鍛婅淇℃伅鎺ュ彛
+ *
+ * @param alarmIds 鍛婅淇℃伅Id鏁扮粍(鍙互鍙湁涓�涓狪d)锛屾渶澶氫负10涓狪d锛屽惁鍒欎細鎶ラ敊
+ * @param completion 鍥炶皟block锛宔rror涓虹┖鏃惰〃绀哄垹闄ゆ垚鍔�
+ *
+ * @return operation
+ */
++ (NSURLSessionDataTask *)deleteAlarm:(NSArray *)alarmIds
+ completion:(void (^)(NSError *error))completion;
+
+/**
+ * 鏍规嵁璁惧搴忓垪鍙疯幏鍙栨湭璇绘秷鎭暟锛岃澶囧簭鍒楀彿涓虹┖鏃惰幏鍙栨墍鏈夎澶囩殑鏈娑堟伅鏁�
+ *
+ * @param deviceSerial 闇�瑕佽幏鍙栫殑璁惧搴忓垪鍙凤紝涓虹┖鏃惰繑鍥炶处鎴蜂笅鎵�鏈夎澶囩殑鏈娑堟伅鏁�
+ * @param type 娑堟伅绫诲瀷锛欵ZMessageTypeAlarm 鍛婅娑堟伅锛�1锛夛紝EZMessageTypeLeave 鐣欒█娑堟伅锛�2锛�
+ * @param completion 鍥炶皟block锛屾甯告椂杩斿洖鏈鏁伴噺锛岄敊璇椂杩斿洖閿欒鐮�
+ *
+ * @return operation
+ */
++ (NSURLSessionDataTask *)getUnreadMessageCount:(NSString *)deviceSerial
+ messageType:(EZMessageType)type
+ completion:(void (^)(NSInteger count, NSError *error))completion;
+
+#pragma mark - 璇煶鐣欒█娑堟伅鏁版嵁Api
+
+/**
+ * 鏍规嵁璁惧搴忓垪鍙疯幏鍙栬澶囩殑鐣欒█娑堟伅鍒楄〃
+ *
+ * @param deviceSerial 闇�瑕佽幏鍙栫殑璁惧搴忓垪鍙�
+ * @param beginTime 寮�濮嬫椂闂�
+ * @param endTime 缁撴潫鏃堕棿
+ * @param pageIndex 鍒嗛〉椤电爜
+ * @param pageSize 鍒嗛〉鍗曢〉鏁伴噺
+ * @param completion 鍥炶皟block锛屾甯告椂杩斿洖EZLeaveMessage鐨勫璞℃暟缁勶紝閿欒鏃惰繑鍥為敊璇爜
+ *
+ * @return operation
+ */
++ (NSURLSessionDataTask *)getLeaveMessageList:(NSString *)deviceSerial
+ pageIndex:(NSInteger)pageIndex
+ pageSize:(NSInteger)pageSize
+ beginTime:(NSDate *)beginTime
+ endTime:(NSDate *)endTime
+ completion:(void (^)(NSArray *leaveMessageList, NSInteger totalCount, NSError *error))completion;
+
+/**
+ * 鏍规嵁leaveId璁剧疆鐣欒█娑堟伅鐘舵��
+ *
+ * @param leaveIds 鐣欒█娑堟伅Id鏁扮粍(鏈�澶ф暟閲忎负10锛屽厑璁稿彧鏈�1涓�)
+ * @param status 闇�瑕佽缃殑鐣欒█鐘舵�侊紝鐩墠鍙敮鎸� EZMessageStatusRead(宸茶)
+ * @param completion 鍥炶皟block锛宔rror涓虹┖琛ㄧず璁剧疆鎴愬姛
+ *
+ * @return operation
+ */
++ (NSURLSessionDataTask *)setLeaveMessageStatus:(NSArray *)leaveIds
+ messageStatus:(EZMessageStatus)status
+ completion:(void (^)(NSError *error))completion;
+
+/**
+ * 鏍规嵁leaveId鍒犻櫎鐣欒█娑堟伅
+ *
+ * @param leaveIds 鐣欒█娑堟伅Id鏁扮粍(鏈�澶ф暟閲忎负10锛屽厑璁稿彧鏈�1涓�)
+ * @param completion 鍥炶皟block锛宔rror涓虹┖琛ㄧず鍒犻櫎鎴愬姛
+ *
+ * @return operation
+ */
++ (NSURLSessionDataTask *)deleteLeaveMessage:(NSArray *)leaveIds
+ completion:(void (^)(NSError *error))completion;
+
+/**
+ * 鏍规嵁EZLeaveMessage瀵硅薄淇℃伅鑾峰彇璇煶鐣欒█娑堟伅鏁版嵁鎺ュ彛
+ * @param message 鐣欒█娑堟伅瀵硅薄
+ * @param completion 鍥炶皟block 锛坮esultCode = 1 琛ㄧず璇煶涓嬭浇鎴愬姛锛�-1琛ㄧず涓嬭浇澶辫触锛�
+ *
+ * @return operation
+ */
++ (NSOperation *)getLeaveMessageData:(EZLeaveMessage *)message
+ completion:(void (^)(NSData *data, NSInteger resultCode))completion;
+
+#pragma mark - VideoTalk瑙嗛閫氳瘽鐩稿叧Api
+
+/**
+ * 鑾峰彇鎵嬭〃鏈嶅姟鐩稿叧淇℃伅
+ * @param deviceId 璁惧搴忓垪鍙�
+ * @param completion operation
+ */
++ (void)requestGetWatchServerInfo:(NSString *)deviceId
+ completion:(void (^)(id watchServerInfo, NSError *error))completion;
+
+#pragma mark - WiFi閰嶇綉鐩稿叧Api
+
+/**
+ * 灏濊瘯鏌ヨ璁惧淇℃伅锛岃澶嘩ifi閰嶇疆鍓嶆煡璇竴娆¤澶囩殑淇℃伅
+ *
+ * @param deviceSerial 璁惧搴忓垪鍙�
+ * @param deviceType 璁惧鍨嬪彿锛屾棤娉曡幏鍙栧埌璁惧鍨嬪彿鍒欏彲浼爊il
+ * @param completion 鍥炶皟block锛屾甯告椂杩斿洖EZProbeDeviceInfo瀵硅薄锛岄敊璇爜杩斿洖閿欒鐮�
+ * @see 鍏ㄦ柊鐨勮澶囨槸娌℃湁娉ㄥ唽鍒板钩鍙扮殑锛屾墍浠ヤ細鍑虹幇璁惧涓嶅瓨鍦ㄧ殑鎯呭喌锛岃澶噖ifi閰嶇疆鎴愬姛浠ュ悗浼氫笂鎶ユ暟鎹埌钀ょ煶浜戝钩鍙帮紝浠ュ悗姣忔鏌ヨ灏变笉浼氬嚭鐜拌澶囦笉瀛樺湪鐨勬儏鍐典簡銆�
+ *
+ * @return operation
+ */
++ (NSURLSessionDataTask *)probeDeviceInfo:(NSString *)deviceSerial
+ deviceType:(NSString *)deviceType
+ completion:(void (^)(EZProbeDeviceInfo *deviceInfo, NSError *error))completion;
+
+/**
* WiFi閰嶇疆寮�濮嬫帴鍙�
*
* @param ssid 杩炴帴WiFi SSID
@@ -161,140 +785,130 @@
deviceStatus:(void (^)(EZWifiConfigStatus status))statusBlock;
/**
- * @since 1.0.0
+ * WiFi閰嶇疆寮�濮嬫帴鍙�
+ *
+ * @param ssid 杩炴帴WiFi SSID
+ * @param password 杩炴帴WiFi 瀵嗙爜
+ * @param deviceSerial 杩炴帴WiFi鐨勮澶囩殑璁惧搴忓垪鍙�,鎵归噺閰嶇疆鏃跺~nil
+ * @param mode 閰嶇綉鐨勬柟寮忥紝EZWiFiConfigMode涓垪涓剧殑妯″紡杩涜浠绘剰缁勫悎,渚嬪:EZWiFiConfigSmart|EZWiFiConfigWave
+ * @param statusBlock 杩斿洖璁惧搴忓垪鍙蜂互鍙婂綋鍓嶈繛鎺ョ姸鎬�
+ *
+ * @return YES/NO
+ */
++ (BOOL)startConfigWifi:(NSString *)ssid
+ password:(NSString *)password
+ deviceSerial:(NSString *)deviceSerial
+ mode:(NSInteger)mode
+ deviceStatus:(void (^)(EZWifiConfigStatus status, NSString *deviceSerial))statusBlock;
+
+/**
+ * @since 3.0.0
* Wifi閰嶇疆鍋滄鎺ュ彛
*
* @return YES/NO
*/
+ (BOOL)stopConfigWifi;
+#pragma mark - AP閰嶇綉鐩稿叧Api
+
/**
- * @since 1.0.0
- * PTZ 鎺у埗鎺ュ彛
+ * AP閰嶇綉鎺ュ彛
*
- * @param deviceSerial 璁惧搴忓垪鍙�
- * @param cameraNo 閫氶亾鍙�
- * @param command ptz鎺у埗鍛戒护
- * @param action 鎺у埗鍚姩/鍋滄
- * @param speed 閫熷害 (鍙栧�艰寖鍥达細0-7鏁存暟鍊�)
- * @param resultBlock 鍥炶皟block锛屽綋error涓虹┖鏃惰〃绀烘搷浣滄垚鍔�
+ * @param ssid WiFi鐨剆sid
+ * @param password WiFi鐨勫瘑鐮�
+ * @param deviceSerial 璁惧搴忓垪鍙�
+ * @param verifyCode 璁惧楠岃瘉鐮�
+ * @param callback 缁撴灉鍥炶皟锛屾敞鎰忥細杩斿洖YES浠呬粎浠h〃鎴愬姛灏哤iFi淇℃伅鍙戦�佺粰璁惧锛屼笉浠h〃璁惧閰嶇綉鎴愬姛
+ * @return 鎴愬姛鎴栧け璐�
*/
-+ (NSURLSessionDataTask *)controlPTZ:(NSString *)deviceSerial
- cameraNo:(NSInteger)cameraNo
- command:(EZPTZCommand)command
- action:(EZPTZAction)action
- speed:(NSInteger)speed
- result:(void (^)(NSError *error))resultBlock;
++ (BOOL)startAPConfigWifiWithSsid:(NSString *)ssid
+ password:(NSString *)password
+ deviceSerial:(NSString *)deviceSerial
+ verifyCode:(NSString *)verifyCode
+ result:(void (^)(BOOL ret))callback;
/**
- * @since 1.0.0
- * 鎽勫儚澶存樉绀烘帶鍒舵帴鍙�
+ * AP閰嶇綉鎺ュ彛锛堟帹鑽愶紝v5.0鏂板锛屽皝瑁呬簡璁惧鐘舵�佽疆璇㈡楠わ級
*
- * @param deviceSerial 璁惧搴忓垪鍙�
- * @param cameraNo 閫氶亾鍙�
- * @param command 鏄剧ず鎺у埗鍛戒护
- * @param resultBlock 鍥炶皟block锛屽綋error涓虹┖鏃惰〃绀烘搷浣滄垚鍔�
+ * @param ssid WiFi鐨剆sid
+ * @param password WiFi鐨勫瘑鐮�
+ * @param deviceSerial 璁惧搴忓垪鍙�
+ * @param verifyCode 璁惧楠岃瘉鐮�
+ * @param statusBlock 缁撴灉鍥炶皟锛岃繑鍥為厤缃戣繃绋嬩腑鐨勫悇绉嶇姸鎬�
+ *
+ * @return 鎴愬姛鎴栧け璐�
*/
-+ (void)controlVideoFlip:(NSString *)deviceSerial
- cameraNo:(NSInteger)cameraNo
- command:(EZDisplayCommand)command
- result:(void (^)(NSError *error))resultBlock;
++ (BOOL)startAPConfigWifiWithSsid:(NSString *)ssid
+ password:(NSString *)password
+ deviceSerial:(NSString *)deviceSerial
+ verifyCode:(NSString *)verifyCode
+ deviceStatus:(void (^)(EZWifiConfigStatus status, NSString *deviceSerial))statusBlock;
/**
- * @since 1.0.0
- * 鏍规嵁cameraId鏋勯�燛ZPlayer瀵硅薄
- *
- * @param deviceSerial 璁惧搴忓垪鍙�
- * @param cameraNo 閫氶亾鍙�
- *
- * @return EZPlayer瀵硅薄
+ * 鍋滄AP閰嶇綉
*/
-+ (EZPlayer *)createPlayerWithDeviceSerial:(NSString *)deviceSerial
- cameraNo:(NSInteger)cameraNo;
++ (void)stopAPConfigWifi;
+#pragma mark - 鎺ヨЕ寮忛厤缃� New AP Config
/**
- * @since 1.0.0
- * 鏍规嵁url鏋勯�燛ZPlayer瀵硅薄 锛堜富瑕佺敤鏉ュ鐞嗚棰戝箍鍦虹殑鎾斁锛�
+ * 鑾峰彇鎺ヨЕ寮廇P閰嶇綉token
*
- * @param url 鎾斁url
+ * @param completion 鍥炶皟
*
- * @return EZPlayer瀵硅薄
+ * @return operation
*/
-+ (EZPlayer *)createPlayerWithUrl:(NSString *)url;
-
++ (NSURLSessionDataTask *)getNewApConfigToken:(void(^)(EZConfigTokenInfo *tokenInfo, NSError *error))completion;
/**
- * @since 1.0.0
- * 閲婃斁EZPlayer瀵硅薄
+ * 寮�濮婲ewAP閰嶇綉锛堥渶杩炴帴璁惧鐑偣锛�
+ * @param token 閰嶇綉token
+ * @param ssid WiFi ssid
+ * @param password WiFi 瀵嗙爜
+ * @param lbsDomain lbs 鍩熷悕
+ * @param handler 鍥炶皟
*
- * @param player EZPlayer瀵硅薄
- *
- * @return YES/NO
+ * @return 鎴愬姛鎴栧け璐�
*/
-+ (BOOL)releasePlayer:(EZPlayer *)player;
-
-#pragma mark - V3.1 鏂板鍔犳帴鍙�
++ (BOOL)startNewApConfigWithToken:(NSString *)token
+ ssid:(NSString *)ssid
+ password:(NSString *)password
+ lbsDomain:(NSString *)lbsDomain
+ completionHandler:(void(^)(EZNewAPConfigStatus status, NSError *error))handler;
/**
- * @since 3.1.0
- * 鏁版嵁瑙e瘑
+ * 鑾峰彇璁惧鐘舵�侊紙闇�杩炴帴璁惧鐑偣锛�
*
- * @param data 闇�瑕佽В瀵嗙殑鏁版嵁
- * @param verifyCode 璁惧楠岃瘉鐮�
- *
- * @return 瑙e瘑鐨凬SData瀵硅薄
+ * @param handler 鍥炶皟
*/
-+ (NSData *)decryptData:(NSData *)data verifyCode:(NSString *)verifyCode;
-
-
-#pragma mark - V3.2 鏂板鍔犳帴鍙�
++ (void)getAccessDeviceInfo:(void(^)(EZAPDevInfo *devInfo, NSError *error))handler;
/**
- * @since 1.0.0
- * 鑾峰彇璁惧鐨勭増鏈俊鎭帴鍙�
+ * 鑾峰彇璁惧褰撳墠鍛ㄨ竟WiFi鍒楄〃锛屼笂闄�20涓紙闇�杩炴帴璁惧鐑偣锛�
*
- * @param deviceSerial 璁惧搴忓垪鍙�
- * @param completion 鍥炶皟block锛屾甯告椂杩斿洖EZDeviceVersion鐨勫璞′俊鎭紝閿欒鏃惰繑鍥為敊璇爜
- *
- * @return operation
+ * @param handler 鍥炶皟
*/
-+ (NSURLSessionDataTask *)getDeviceVersion:(NSString *)deviceSerial
- completion:(void (^)(EZDeviceVersion *version, NSError *error))completion;
-
++ (void)getAccessDeviceWifiList:(void(^)(NSArray<EZWiFiItemInfo*> *wifiList, NSError *error))handler;
/**
- * @since 1.0.0
- * 閫氳繃璁惧楠岃瘉鐮佸紑鍏宠棰戝浘鐗囧姞瀵嗘帴鍙�
+ * 鏌ヨ璁惧缁戝畾鐘舵��
+ * @param deviceSerial 璁惧搴忓垪鍙�
+ * @param completion 鍥炶皟block锛屾甯告椂杩斿洖EZProbeDeviceInfo瀵硅薄锛岄敊璇爜杩斿洖閿欒鐮�
*
- * @param isEncrypt 鏄惁鍔犲瘑锛屽彧鏈塏O(鍏抽棴)鐨勬椂鍊欓渶瑕佽澶囬獙璇佺爜鐨勭浉鍏冲弬鏁�(vaildateCode)
- * @param deviceSerial 璁惧搴忓垪鍙�
- * @param verifyCode 璁惧楠岃瘉鐮�
- * @param completion 鍥炶皟block锛宔rror涓虹┖鏃惰〃绀烘搷浣滄垚鍔�
- *
- * @return operation
+ * @return 鎴愬姛鎴栧け璐�
*/
-+ (NSURLSessionDataTask *)setDeviceEncryptStatus:(NSString *)deviceSerial
- verifyCode:(NSString *)verifyCode
- encrypt:(BOOL)isEncrypt
- completion:(void (^)(NSError *error))completion;
++ (NSURLSessionDataTask *)queryPlatformBindStatus:(NSString *)deviceSerial
+ completion:(void(^)(EZProbeDeviceInfo *deviceInfo, NSError *error))completion;
/**
- * @since 1.0.0
- * 鏍规嵁璁惧搴忓垪鍙蜂慨鏀硅澶囧悕绉版帴鍙�
- *
- * @param deviceSerial 璁惧搴忓垪鍙�
- * @param deviceName 璁惧鍚嶇О
- * @param completion 鍥炶皟block锛宔rror涓虹┖鏃惰〃绀轰慨鏀规垚鍔�
- *
- * @return operation
+ * 璁剧疆閰嶇綉璁惧缃戝叧鍦板潃 鍙��
+ * @param devRouteDomain 璁惧缃戝叧鍦板潃
*/
-+ (NSURLSessionDataTask *)setDeviceName:(NSString *)deviceName
- deviceSerial:(NSString *)deviceSerial
- completion:(void (^)(NSError *error))completion;
++ (void)setDevRouteDomain:(NSString *)devRouteDomain;
+
+#pragma mark - 鐢ㄦ埛鐩稿叧Api
/**
- * @since 1.0.0
* 鑾峰彇鐢ㄦ埛鍩烘湰淇℃伅鐨勬帴鍙�
*
* @param completion 鍥炶皟block锛� 姝e父鏃惰繑鍥濫ZUserInfo鐨勫璞★紝閿欒鏃惰繑鍥為敊璇爜
@@ -303,353 +917,51 @@
*/
+ (NSURLSessionDataTask *)getUserInfo:(void (^)(EZUserInfo *userInfo, NSError *error))completion;
+#pragma mark - 鍏朵粬Api
+
/**
- * @since 1.0.0
- * 鏍规嵁璁惧搴忓垪鍙疯幏鍙栨湭璇绘秷鎭暟锛岃澶囧簭鍒楀彿涓虹┖鏃惰幏鍙栨墍鏈夎澶囩殑鏈娑堟伅鏁�
+ * 鑾峰彇鍖哄煙鍒楄〃鎺ュ彛
*
- * @param deviceSerial 闇�瑕佽幏鍙栫殑璁惧搴忓垪鍙凤紝涓虹┖鏃惰繑鍥炶处鎴蜂笅鎵�鏈夎澶囩殑鏈娑堟伅鏁�
- * @param type 娑堟伅绫诲瀷锛欵ZMessageTypeAlarm 鍛婅娑堟伅锛�1锛夛紝EZMessageTypeLeave 鐣欒█娑堟伅锛�2锛�
- * @param completion 鍥炶皟block锛屾甯告椂杩斿洖鏈鏁伴噺锛岄敊璇椂杩斿洖閿欒鐮�
+ * @param completion 鍥炶皟block锛宎reaList涓殑鍏冪礌涓篍ZAreaInfo瀵硅薄
*
* @return operation
*/
-+ (NSURLSessionDataTask *)getUnreadMessageCount:(NSString *)deviceSerial
- messageType:(EZMessageType)type
- completion:(void (^)(NSInteger count, NSError *error))completion;
++ (NSURLSessionDataTask *)getAreaList:(void (^)(NSArray *areaList, NSError *error))completion;
/**
- * @since 1.0.0
- * 鏍规嵁璁惧搴忓垪鍙疯幏鍙栬澶囩殑鐣欒█娑堟伅鍒楄〃
- *
- * @param deviceSerial 闇�瑕佽幏鍙栫殑璁惧搴忓垪鍙�
- * @param beginTime 寮�濮嬫椂闂�
- * @param endTime 缁撴潫鏃堕棿
- * @param pageIndex 鍒嗛〉椤电爜
- * @param pageSize 鍒嗛〉鍗曢〉鏁伴噺
- * @param completion 鍥炶皟block锛屾甯告椂杩斿洖EZLeaveMessage鐨勫璞℃暟缁勶紝閿欒鏃惰繑鍥為敊璇爜
- *
- * @return operation
- */
-+ (NSURLSessionDataTask *)getLeaveMessageList:(NSString *)deviceSerial
- pageIndex:(NSInteger)pageIndex
- pageSize:(NSInteger)pageSize
- beginTime:(NSDate *)beginTime
- endTime:(NSDate *)endTime
- completion:(void (^)(NSArray *leaveMessageList, NSInteger totalCount, NSError *error))completion;
-
-/**
- * @since 1.0.0
- * 鏍规嵁leaveId璁剧疆鐣欒█娑堟伅鐘舵��
- *
- * @param leaveIds 鐣欒█娑堟伅Id鏁扮粍(鏈�澶ф暟閲忎负10锛屽厑璁稿彧鏈�1涓�)
- * @param status 闇�瑕佽缃殑鐣欒█鐘舵�侊紝鐩墠鍙敮鎸� EZMessageStatusRead(宸茶)
- * @param completion 鍥炶皟block锛宔rror涓虹┖琛ㄧず璁剧疆鎴愬姛
- *
- * @return operation
- */
-+ (NSURLSessionDataTask *)setLeaveMessageStatus:(NSArray *)leaveIds
- messageStatus:(EZMessageStatus)status
- completion:(void (^)(NSError *error))completion;
-
-/**
- * @since 1.0.0
- * 鏍规嵁leaveId鍒犻櫎鐣欒█娑堟伅
- *
- * @param leaveIds 鐣欒█娑堟伅Id鏁扮粍(鏈�澶ф暟閲忎负10锛屽厑璁稿彧鏈�1涓�)
- * @param completion 鍥炶皟block锛宔rror涓虹┖琛ㄧず鍒犻櫎鎴愬姛
- *
- * @return operation
- */
-+ (NSURLSessionDataTask *)deleteLeaveMessage:(NSArray *)leaveIds
- completion:(void (^)(NSError *error))completion;
-
-/**
- * @since 1.0.0
- * 鏍规嵁璁惧搴忓垪鍙疯幏鍙栧瓨鍌ㄤ粙璐ㄧ姸鎬�(濡傛槸鍚﹀垵濮嬪寲锛屾牸寮忓寲杩涘害绛�)
- *
- * @param deviceSerial 璁惧搴忓垪鍙�
- * @param completion 鍥炶皟block锛屾甯告椂杩斿洖EZStorageInfo鐨勫璞℃暟缁勶紝閿欒鏃惰繑鍥為敊璇爜
- *
- * @return operation
- */
-+ (NSURLSessionDataTask *)getStorageStatus:(NSString *)deviceSerial
- completion:(void (^)(NSArray *storageStatus, NSError *error))completion;
-
-/**
- * @since 1.0.0
- * 鏍规嵁璁惧搴忓垪鍙峰拰鍒嗗尯缂栧彿鏍煎紡鍖栧垎鍖猴紙SD鍗★級
- *
- * @param deviceSerial 璁惧搴忓垪鍙�
- * @param storageIndex 鏌ヨ杩斿洖鐨勫垎鍖哄彿锛�0琛ㄧず鍏ㄩ儴鏍煎紡鍖栵紝鍙兘浼氭湁鍑犲潡纭洏鐨勬儏鍐�
- * @param completion 鍥炶皟block锛宔rror涓虹┖琛ㄧず璁剧疆鎴愬姛
- *
- * @return operation
- */
-+ (NSURLSessionDataTask *)formatStorage:(NSString *)deviceSerial
- storageIndex:(NSInteger)storageIndex
- completion:(void (^)(NSError *error))completion;
-/**
- * @since 1.0.0
- * 灏濊瘯鏌ヨ璁惧淇℃伅锛岃澶嘩ifi閰嶇疆鍓嶆煡璇竴娆¤澶囩殑淇℃伅
- *
- * @param deviceSerial 璁惧搴忓垪鍙�
- * @param deviceType 璁惧鍨嬪彿锛屾棤娉曡幏鍙栧埌璁惧鍨嬪彿鍒欏彲浼爊il
- * @param completion 鍥炶皟block锛屾甯告椂杩斿洖EZProbeDeviceInfo瀵硅薄锛岄敊璇爜杩斿洖閿欒鐮�
- * @see 鍏ㄦ柊鐨勮澶囨槸娌℃湁娉ㄥ唽鍒板钩鍙扮殑锛屾墍浠ヤ細鍑虹幇璁惧涓嶅瓨鍦ㄧ殑鎯呭喌锛岃澶噖ifi閰嶇疆鎴愬姛浠ュ悗浼氫笂鎶ユ暟鎹埌钀ょ煶浜戝钩鍙帮紝浠ュ悗姣忔鏌ヨ灏变笉浼氬嚭鐜拌澶囦笉瀛樺湪鐨勬儏鍐典簡銆�
- *
- * @return operation
- */
-+ (NSURLSessionDataTask *)probeDeviceInfo:(NSString *) deviceSerial
- deviceType:(NSString *) deviceType
- completion:(void (^)(EZProbeDeviceInfo *deviceInfo, NSError *error))completion;
-
-/**
- * @since 1.0.0
- * 鏍规嵁璁惧搴忓垪鍙疯幏鍙栬澶囧崌绾ф椂鐨勮繘搴︾姸鎬�
- *
- * @param deviceSerial 璁惧搴忓垪鍙�
- * @param completion 鍥炶皟block锛屾甯告椂杩斿洖EZDeviceUpgradeStatus瀵硅薄锛岄敊璇椂杩斿洖閿欒鐮�
- *
- * @return operation
- */
-+ (NSURLSessionDataTask *)getDeviceUpgradeStatus:(NSString *)deviceSerial
- completion:(void (^)(EZDeviceUpgradeStatus *status, NSError *error))completion;
-
-/**
- * @since 1.0.0
- * 閫氳繃璁惧搴忓垪鍙峰璁惧杩涜鍗囩骇鎿嶄綔锛屽墠鎻愭槸璇ヨ澶囨湁鏇存柊杞欢鐨勬彁绀�
- *
- * @param deviceSerial 璁惧搴忓垪鍙�
- * @param completion 鍥炶皟block锛宔rror涓虹┖琛ㄧず鎿嶄綔鎴愬姛
- *
- * @return operation
- */
-+ (NSURLSessionDataTask *)upgradeDevice:(NSString *)deviceSerial
- completion:(void (^)(NSError *error))completion;
-
-
-/**
- * @since 1.0.0
- * 鏍规嵁EZLeaveMessage瀵硅薄淇℃伅鑾峰彇璇煶鐣欒█娑堟伅鏁版嵁鎺ュ彛
- * @param message 鐣欒█娑堟伅瀵硅薄
- * @param completion 鍥炶皟block 锛坮esultCode = 1 琛ㄧず璇煶涓嬭浇鎴愬姛锛�-1琛ㄧず涓嬭浇澶辫触锛�
- *
- * @return operation
- */
-+ (NSOperation *)getLeaveMessageData:(EZLeaveMessage *)message
- completion:(void (^)(NSData *data, NSInteger resultCode))completion;
-
-/**
- * @since 1.0.0
- * 鎵撳紑浜戝瓨鍌ㄤ腑闂撮〉
- *
- * @param deviceSerial 璁惧搴忓垪鍙�
- * @param channelNo 璁惧閫氶亾鍙�
- */
-+ (void)openCloudPage:(NSString *)deviceSerial channelNo:(NSInteger)channelNo;
-
-/**
- * @since 1.0.0
- * 鎵撳紑淇敼瀵嗙爜涓棿椤�
- *
- * @param completion 鍥炶皟block resultCode涓�0鏃惰〃绀轰慨鏀瑰瘑鐮佹垚鍔�
- */
-+ (void)openChangePasswordPage:(void (^)(NSInteger resultCode))completion;
-
-/**
- * @since 1.0.0
- * 璁剧疆鏄惁鎵撳嵃debug鏃ュ織锛岄渶鍦ㄥ垵濮嬪寲sdk涔嬪墠璋冪敤
- *
- * @param enable 鏄惁鎵撳嵃鏃ュ織锛岄粯璁ゅ叧闂�
- *
- * @return YES/NO
- */
-+ (BOOL)setDebugLogEnable:(BOOL)enable;
-
-/**
- * @since 1.0.0
- * 鑾峰彇鐢ㄦ埛鎵�鏈夌殑璁惧鍒楄〃
- *
- * @param pageIndex 鍒嗛〉褰撳墠椤电爜锛堜粠0寮�濮嬶級
- * @param pageSize 鍒嗛〉姣忛〉鏁伴噺锛堝缓璁�20浠ュ唴锛�
- * @param completion 鍥炶皟block锛屾甯告椂杩斿洖EZDeviceInfo鐨勫璞℃暟缁勫拰璁惧鎬绘暟锛岄敊璇椂杩斿洖閿欒鐮�
- *
- * @return operation
- */
-+ (NSURLSessionDataTask *)getDeviceList:(NSInteger)pageIndex
- pageSize:(NSInteger)pageSize
- completion:(void (^)(NSArray *deviceList, NSInteger totalCount, NSError *error))completion;
-
-/**
- * @since 1.0.0
- * 鑾峰彇鍒嗕韩缁欑敤鎴风殑璁惧鍒楄〃鎺ュ彛
- *
- * @param pageIndex 鍒嗛〉褰撳墠椤电爜锛堜粠0寮�濮嬶級
- * @param pageSize 鍒嗛〉姣忛〉鏁伴噺锛堝缓璁�20浠ュ唴锛�
- * @param completion 鍥炶皟block锛屾甯告椂杩斿洖EZDeviceInfo鐨勫璞℃暟缁勫拰璁惧鎬绘暟锛岄敊璇椂杩斿洖閿欒鐮�
- *
- * @return operation
- */
-+ (NSURLSessionDataTask *)getSharedDeviceList:(NSInteger)pageIndex
- pageSize:(NSInteger)pageSize
- completion:(void (^)(NSArray *deviceList, NSInteger totalCount, NSError *error))completion;
-
-/**
- * @since 1.0.0
- * 鏌ヨ浜戝瓨鍌ㄥ綍鍍忎俊鎭垪琛ㄦ帴鍙�
- *
- * @param deviceSerial 璁惧搴忓垪鍙�
- * @param cameraNo 閫氶亾鍙�
- * @param beginTime 鏌ヨ鏃堕棿鑼冨洿寮�濮嬫椂闂�
- * @param endTime 鏌ヨ鏃堕棿鑼冨洿缁撴潫鏃堕棿
- * @param completion 鍥炶皟block锛屾甯告椂杩斿洖EZCloudRecordFile鐨勫璞℃暟缁勶紝閿欒鏃惰繑鍥為敊璇爜
- *
- * @return operation
- */
-+ (NSURLSessionDataTask *)searchRecordFileFromCloud:(NSString *)deviceSerial
- cameraNo:(NSInteger)cameraNo
- beginTime:(NSDate *)beginTime
- endTime:(NSDate *)endTime
- completion:(void (^)(NSArray *couldRecords, NSError *error))completion;
-
-/**
- * @since 1.0.0
- * 鏌ヨ杩滅▼SD鍗″瓨鍌ㄥ綍鍍忎俊鎭垪琛ㄦ帴鍙�
- *
- * @param deviceSerial 璁惧搴忓垪鍙�
- * @param cameraNo 閫氶亾鍙�
- * @param beginTime 鏌ヨ鏃堕棿鑼冨洿寮�濮嬫椂闂�
- * @param endTime 鏌ヨ鏃堕棿鑼冨洿缁撴潫鏃堕棿
- * @param completion 鍥炶皟block锛屾甯告椂杩斿洖EZDeviceRecordFile鐨勫璞℃暟缁勶紝閿欒鏃惰繑鍥為敊璇爜
- *
- * @return operation
- */
-+ (NSURLSessionDataTask *)searchRecordFileFromDevice:(NSString *)deviceSerial
- cameraNo:(NSInteger)cameraNo
- beginTime:(NSDate *)beginTime
- endTime:(NSDate *)endTime
- completion:(void (^)(NSArray *deviceRecords, NSError *error))completion;
-
-/**
- * @since 1.0.0
- * 鏍规嵁璁惧搴忓垪鍙疯幏鍙栧憡璀︿俊鎭垪琛紝璁惧搴忓垪鍙蜂负nil鏃舵煡璇㈡暣涓处鎴蜂笅鐨勫憡璀︿俊鎭垪琛�
- *
- * @param deviceSerial 璁惧搴忓垪鍙�
- * @param pageIndex 鍒嗛〉褰撳墠椤电爜锛堜粠0寮�濮嬶級
- * @param pageSize 鍒嗛〉姣忛〉鏁伴噺锛堝缓璁�20浠ュ唴锛�
- * @param beginTime 鎼滅储鏃堕棿鑼冨洿寮�濮嬫椂闂达紙鍙互涓虹┖锛宯il浠h〃涓虹┖锛�
- * @param endTime 鎼滅储鏃堕棿鑼冨洿缁撴潫鏃堕棿锛堝彲浠ヤ负绌猴紝nil浠h〃涓虹┖锛�
- * @param completion 鍥炶皟block锛屾甯告椂杩斿洖EZAlarmInfo鐨勫璞℃暟鎹拰鏌ヨ鏃堕棿鑼冨洿鍐呯殑鍛婅涓暟鐨勬�绘暟锛岄敊璇椂杩斿洖閿欒鐮�
- *
- * @return operation
- */
-+ (NSURLSessionDataTask *)getAlarmList:(NSString *)deviceSerial
- pageIndex:(NSInteger)pageIndex
- pageSize:(NSInteger)pageSize
- beginTime:(NSDate *)beginTime
- endTime:(NSDate *)endTime
- completion:(void (^)(NSArray *alarmList, NSInteger totalCount, NSError *error))completion;
-
-/**
- * @since 1.0.0
- * 鏍规嵁璁惧搴忓垪鍙峰拰璁惧楠岃瘉鐮佹坊鍔犺澶囨帴鍙�
- *
- * @param deviceSerial 璁惧搴忓垪鍙�
- * @param verifyCode 璁惧楠岃瘉鐮�
- * @param completion 鍥炶皟block锛宔rror涓虹┖鏃惰〃绀烘坊鍔犳垚鍔�
- *
- * @return operation
- */
-+ (NSURLSessionDataTask *)addDevice:(NSString *)deviceSerial
- verifyCode:(NSString *)verifyCode
- completion:(void (^)(NSError *error))completion;
-
-/**
- * @since 1.0.0
- * 鑾峰彇鎶撳彇鎽勫儚澶村浘鐗囩殑url鎺ュ彛
- *
- * @param deviceSerial 璁惧搴忓垪鍙�
- * @param cameraNo 閫氶亾鍙�
- * @param completion 鍥炶皟block锛屾甯告椂杩斿洖url鍦板潃淇℃伅锛岄敊璇椂杩斿洖閿欒鐮�
- * @see 璇ユ帴鍙f瘮杈冭�楁椂锛屼笉寤鸿杩涜鎵归噺璁惧鎶撳浘锛孲DK鍐呴儴鍙敮鎸�6涓猦ttp璇锋眰骞跺彂锛岃鎺ュ彛浼氭寔缁崰鐢╤ttp璇锋眰璧勬簮锛屽鏋滈亣鍒癶ttp璇锋眰寤舵椂宸ㄥぇ闂锛屼紭鍏堣�冭檻鎶撳浘鎺ュ彛骞跺彂閫犳垚鐨勯棶棰�,
- * 鎶撳浘灏嗗湪鏈嶅姟鍣ㄧ淇濈暀2涓皬鏃�
- *
- * @return operation
- */
-+ (NSURLSessionDataTask *)captureCamera:(NSString *)deviceSerial
- cameraNo:(NSInteger)cameraNo
- completion:(void (^)(NSString *url, NSError *error))completion;
-
-/**
- * @since 1.0.0
- * 璁剧疆璁惧閫氶亾鐨勬竻鏅板害
- *
- * @param deviceSerial 璁惧搴忓垪鍙�
- * @param cameraNo 閫氶亾鍙�
- * @param videoLevel 娓呮櫚搴�
- * @param completion 鍥炶皟block锛屾棤error琛ㄧず璁剧疆鎴愬姛
- * @see 濡傛灉鏄鍦ㄦ挱鏀炬椂璋冪敤璇ユ帴鍙o紝璁剧疆娓呮櫚搴︽垚鍔熶互鍚庡繀椤昏EZPlayer璋冪敤stopRealPlay鍐嶈皟鐢╯tartRealPlay閲嶆柊鍙栨祦鎵嶆垚瀹屾垚鐢婚潰娓呮櫚搴︾殑鍒囨崲銆�
- *
- * @return operation
- */
-+ (NSURLSessionDataTask *)setVideoLevel:(NSString *)deviceSerial
- cameraNo:(NSInteger)cameraNo
- videoLevel:(NSInteger)videoLevel
- completion:(void (^)(NSError *error))completion;
-
-/**
- * @since 1.0.0
- * 璁惧璁剧疆甯冮槻鐘舵�侊紝鍏煎A1鍜孖PC璁惧鐨勫竷闃�
- *
- * @param defence 甯冮槻鐘舵��, IPC甯冮槻鐘舵�佸彧鏈�0鍜�1锛孉1鏈�0:鐫$湢 8:鍦ㄥ 16:澶栧嚭
- * @param deviceSerial 璁惧搴忓垪鍙�
- * @param completion 鍥炶皟block锛宔rror涓虹┖琛ㄧず璁剧疆鎴愬姛
- *
- * @return operation
- */
-+ (NSURLSessionDataTask *)setDefence:(EZDefenceStatus)defence
- deviceSerial:(NSString *)deviceSerial
- completion:(void (^)(NSError *error))completion;
-
-#pragma mark - V4.3 鏂板鍔犳帴鍙�
-
-/**
- * @since 4.3.0
- * 鏍规嵁搴忓垪鍙疯幏鍙栬澶囦俊鎭�
- *
- * @param deviceSerial 璁惧搴忓垪鍙�
- * @param completion 鍥炶皟block锛屾甯告椂杩斿洖EZDeviceInfo鐨勫璞★紝閿欒鏃惰繑鍥為敊璇爜
- *
- * @return operation
- */
-+ (NSURLSessionDataTask *)getDeviceInfo:(NSString *)deviceSerial
- completion:(void (^)(EZDeviceInfo *deviceInfo, NSError *error))completion;
-
-/**
- * @since 4.3.0
* 鑾峰彇缁堢锛堟墜鏈虹瓑锛夊敮涓�璇嗗埆鐮�
*
* @return 缁堢鍞竴璇嗗埆鐮�
*/
-+ (NSString *) getTerminalId;
-
-#pragma mark - V4.4 鏂板鍔犳帴鍙�
++ (NSString *)getTerminalId;
/**
- * @since 4.4.0
- * push鍒濆鍖栨帴鍙o紝涓嶉渶瑕乸ush鏈嶅姟鍒欐棤闇�璋冪敤
+ 鏍规嵁搴旂敤绫诲瀷鍒ゆ柇鏄惁瀹夎浜嗗搴旂殑搴旂敤
+
+ @param appType 搴旂敤绫诲瀷
+ @return YES:宸插畨瑁咃紝NO:娌℃湁瀹夎鎴栧畨瑁呯殑钀ょ煶APP鐗堟湰杩囦綆
*/
-+ (void) initPushService;
+//+ (BOOL)isEzvizAppInstalledWithType:(EZAppType)appType;
-#pragma mark - V4.5 鏂板鍔犳帴鍙�
/**
- 娓呴櫎鍙栨祦鏃剁殑缂撳瓨鏁版嵁
+ 璺宠浆鍒版寚瀹氳悿鐭矨PP杩涜鎺堟潈鐧诲綍
+
+ @param appType 钀ょ煶APP绫诲瀷
+ @return 璺宠浆缁撴灉
*/
-+ (void) clearStreamInfoCache;
+//+ (BOOL)ezvizLoginWithAppType:(EZAppType)appType;
+/**
+ 璺宠浆鍒版寚瀹欰PP鐨勬寚瀹氱晫闈�
+
+ @param pageType 鐣岄潰绫诲瀷
+ @param appType APP绫诲瀷
+ @return 璺宠浆缁撴灉
+ */
+//+ (BOOL)gotoEzvizAppPage:(EZAppPageType)pageType appType:(EZAppType)appType;
-#pragma mark - V4.7 鏂板鎺ュ彛
+#pragma mark - DDNS鐩稿叧
/**
* 閫氳繃璁惧搴忓垪鍙峰拰璁惧鍩熷悕鑾峰彇璁惧ddns淇℃伅
@@ -661,8 +973,8 @@
* @return operation
*/
+ (NSURLSessionDataTask *)getHiddnsDeviceInfo:(NSString *)deviceSerial
- domain:(NSString *) domain
- completion:(void (^)(EZHiddnsDeviceInfo *ddnsDeviceInfo, NSError *error))completion;
+ domain:(NSString *)domain
+ completion:(void (^)(EZHiddnsDeviceInfo *ddnsDeviceInfo, NSError *error))completion;
/**
* 璇ユ帴鍙g敤浜庤缃澶嘾dns鍩熷悕锛屽寘鎷缃垎浜幏寰楃殑璁惧鐨刣dns鍩熷悕
@@ -674,8 +986,8 @@
* @return operation
*/
+ (NSURLSessionDataTask *)setHiddnsDomain:(NSString *)deviceSerial
- domain:(NSString *) domain
- completion:(void (^)(NSError *error))completion;
+ domain:(NSString *)domain
+ completion:(void (^)(NSError *error))completion;
/**
* 璁剧疆璁惧鐨凞DNS鏄犲皠鏂瑰紡涓鸿嚜鍔ㄦ槧灏�
@@ -686,7 +998,7 @@
* @return operation
*/
+ (NSURLSessionDataTask *)setHiddnsModeAuto:(NSString *)deviceSerial
- completion:(void (^)(NSError *error))completion;
+ completion:(void (^)(NSError *error))completion;
/**
* 璁剧疆璁惧鐨凞DNS鏄犲皠鏂瑰紡涓烘墜鍔ㄦ槧灏�
@@ -699,9 +1011,9 @@
* @return operation
*/
+ (NSURLSessionDataTask *)setHiddnsModeManual:(NSString *)deviceSerial
- httpPort:(NSInteger) httpPort
- cmdPort:(NSInteger) cmdPort
- completion:(void (^)(NSError *error))completion;
+ httpPort:(NSInteger)httpPort
+ cmdPort:(NSInteger)cmdPort
+ completion:(void (^)(NSError *error))completion;
/**
* 鑾峰彇褰撳墠璐﹀彿涓嬬殑鎵�鏈夎澶囩殑DDNS淇℃伅
@@ -712,9 +1024,9 @@
*
* @return operation
*/
-+ (NSURLSessionDataTask *)getHiddnsDeviceList:(NSInteger) pageIndex
- pageSize:(NSInteger) pageSize
- completion:(void (^)(NSArray *ddnsDeviceList, NSInteger totalCount, NSError *error))completion;
++ (NSURLSessionDataTask *)getHiddnsDeviceList:(NSInteger)pageIndex
+ pageSize:(NSInteger)pageSize
+ completion:(void (^)(NSArray *ddnsDeviceList, NSInteger totalCount, NSError *error))completion;
/**
* 鎶婂崟涓澶囩殑DDNS淇℃伅鍒嗕韩缁欏叾浠栬处鎴�
@@ -725,9 +1037,9 @@
*
* @return operation
*/
-+ (NSURLSessionDataTask *)shareHiddnsDevice:(NSString *) deviceSerial
- account:(NSString *) account
- completion:(void (^)(NSError *error))completion;
++ (NSURLSessionDataTask *)shareHiddnsDevice:(NSString *)deviceSerial
+ account:(NSString *)account
+ completion:(void (^)(NSError *error))completion;
/**
* 鑾峰彇褰撳墠璐﹀彿涓嬬殑鎵�鏈夌殑鍏跺畠璐︽埛鍒嗕韩缁欒嚜宸辩殑璁惧DDNS淇℃伅
@@ -738,173 +1050,10 @@
*
* @return operation
*/
-+ (NSURLSessionDataTask *)getShareHiddnsDeviceList:(NSInteger) pageIndex
- pageSize:(NSInteger) pageSize
- completion:(void (^)(NSArray *ddnsDeviceList, NSInteger totalCount, NSError *error))completion;
-
-
-#pragma mark - V4.8.2 鏂板鍔犳帴鍙�
-
-/**
- 鏄惁宸茬粡鐧诲綍
-
- @return YES锛氬凡缁忕櫥褰曪紱NO锛氭湭鐧诲綍
- */
-+ (BOOL) isLogin;
-
-/**
- 鑾峰彇褰撳墠accessToken
-
- @return accessToken
- */
-+ (NSString *) getAccesstoken;
-
-/**
- 鏍规嵁搴旂敤绫诲瀷鍒ゆ柇鏄惁瀹夎浜嗗搴旂殑搴旂敤
-
- @param appType 搴旂敤绫诲瀷
- @return YES:宸插畨瑁咃紝NO:娌℃湁瀹夎鎴栧畨瑁呯殑钀ょ煶APP鐗堟湰杩囦綆
- */
-+ (BOOL) isEzvizAppInstalledWithType:(EZAppType) appType;
-
-/**
- 璺宠浆鍒版寚瀹氳悿鐭矨PP杩涜鎺堟潈鐧诲綍
-
- @param appType 钀ょ煶APP绫诲瀷
- @return 璺宠浆缁撴灉
- */
-+ (BOOL) ezvizLoginWithAppType:(EZAppType) appType;
-
-/**
- 璺宠浆鍒版寚瀹欰PP鐨勬寚瀹氱晫闈�
-
- @param pageType 鐣岄潰绫诲瀷
- @param appType APP绫诲瀷
- @return 璺宠浆缁撴灉
- */
-+ (BOOL) gotoEzvizAppPage:(EZAppPageType) pageType appType:(EZAppType) appType;
-
-/**
- 澶栭儴璺宠浆澶勭悊鏂规硶锛岄�傜敤浜巌OS9浠ヤ笂锛屽寘鎷琲OS9
-
- @param url 璺宠浆杩囨潵鐨剈rl
- @param opetions 鍙傛暟锛岄粯璁や负绌猴紝鐩墠鏈繘琛屽鐞嗭紝棰勭暀
- @param delegate 濮旀墭
- @return 缁撴灉
- */
-+ (BOOL) handleOpenUrl:(NSURL *) url options:(NSDictionary *) opetions delegate:(id<EZOpenSDKDelegate>) delegate;
-
-/**
- 澶栭儴璺宠浆澶勭悊鏂规硶锛岄�傜敤浜巌OS8浠ヤ笅,鍖呮嫭iOS8
-
- @param url 璺宠浆杩囨潵鐨剈rl
- @param delegate 濮旀墭
- @return 缁撴灉
- */
-+ (BOOL) handleOpenUrl:(NSURL *) url delegate:(id<EZOpenSDKDelegate>) delegate;
-
-/**
- 澶栭儴璺宠浆澶勭悊鏂规硶锛岄�傜敤浜巌OS8浠ヤ笅,鍖呮嫭iOS8
-
- @param url 璺宠浆杩囨潵鐨剈rl
- @param sourceApplication 婧怉PP
- @param annotation 娉ㄩ噴
- @param delegate 濮旀墭
- @return 缁撴灉
- */
-+ (BOOL) handleOpenUrl:(NSURL *) url
- sourceApplication:(NSString *)
-sourceApplication annotation:(id) annotation
- delegate:(id<EZOpenSDKDelegate>) delegate;
-
-#pragma mark - V4.8.3 鏂板鍔犳帴鍙�
-
-/**
- * @since 4.8.3
- * WiFi閰嶇疆寮�濮嬫帴鍙�
- *
- * @param ssid 杩炴帴WiFi SSID
- * @param password 杩炴帴WiFi 瀵嗙爜
- * @param deviceSerial 杩炴帴WiFi鐨勮澶囩殑璁惧搴忓垪鍙�,鎵归噺閰嶇疆鏃跺~nil
- * @param mode 閰嶇綉鐨勬柟寮忥紝EZWiFiConfigMode涓垪涓剧殑妯″紡杩涜浠绘剰缁勫悎,渚嬪:EZWiFiConfigSmart|EZWiFiConfigWave
- * @param statusBlock 杩斿洖璁惧搴忓垪鍙蜂互鍙婂綋鍓嶈繛鎺ョ姸鎬�
- *
- * @return YES/NO
- */
-+ (BOOL)startConfigWifi:(NSString *) ssid
- password:(NSString *) password
- deviceSerial:(NSString *) deviceSerial
- mode:(NSInteger) mode
- deviceStatus:(void (^)(EZWifiConfigStatus status,NSString *deviceSerial))statusBlock;
-
-#pragma mark - V4.8.4
-/**
- AP閰嶇綉鎺ュ彛
-
- @param ssid WiFi鐨剆sid
- @param password WiFi鐨勫瘑鐮�
- @param deviceSerial 璁惧搴忓垪鍙�
- @param verifyCode 璁惧楠岃瘉鐮�
- @param callback 缁撴灉鍥炶皟
- @return 鎴愬姛鎴栧け璐�
- */
-+ (BOOL)startAPConfigWifiWithSsid:(NSString *) ssid
- password:(NSString *) password
- deviceSerial:(NSString *) deviceSerial
- verifyCode:(NSString *) verifyCode
- result:(void (^)(BOOL ret)) callback;
-
-/**
- 鍋滄AP閰嶇綉
- */
-+ (void)stopAPConfigWifi;
-
-#pragma mark - v4.10
-
-/// 鑾峰彇鎵嬭〃鏈嶅姟鐩稿叧淇℃伅
-/// @param deviceId 璁惧搴忓垪鍙�
-/// @param completion operation
-+ (void)requestGetWatchServerInfo:(NSString *)deviceId
- completion:(void (^)(id watchServerInfo, NSError *error))completion;
-
-/// 鏄惁鏀寔鍥芥爣
-/// @param enable YES or NO
-+ (void)enableNationalStandard:(BOOL)enable;
-
-
-#pragma mark - v4.11
-
-/**
-* @since 4.11.0
-* 璁剧疆debug鏃ュ織鍥炶皟,闇�鍦ㄥ垵濮嬪寲sdk涔嬪墠璋冪敤
-*
-* @param logCallback 鏃ュ織鍥炶皟
-*/
-+ (void)setDebugLogCallBack:(void(^)(NSString *logStr))logCallback;
-
-
-#pragma mark - v4.13
-/**
- * 鑾峰彇鎸囧畾鏃堕棿鍐呯殑鎵�鏈夊綍鍍忔枃浠�
- *
- * @param deviceSerial 璁惧搴忓垪鍙�
- * @param cameraNo 閫氶亾鍙凤紝浼犲叆<=0鐨勫�煎垯涓洪粯璁ゅ��
- * @param beginTime 寮�濮嬫椂闂达紝浼犲叆nil鍒欎负褰撳ぉ00:00:00
- * @param endTime 缁撴潫鏃堕棿锛屼紶鍏il鍒欎负褰撳ぉ23:59:59
- * @param rectype 鍥炴斁婧愶紝0-绯荤粺鑷姩閫夋嫨锛�1-浜戝瓨鍌紝2-鏈湴褰曞儚銆傞潪蹇呴�夛紝榛樿涓�0锛屼紶鍏ヨ礋鍊煎垯涓洪粯璁ゅ��
- * @param bizType 璁惧褰掑睘涓氬姟鏉ユ簮
- * @param platFormId 骞冲彴ID
- * @param completion 鍥炶皟block records:EzvizRecordFileInfo鐨勬暟缁�
- *
- * @return operation
- */
-+ (NSURLSessionDataTask *)searchRecordFile:(NSString *) deviceSerial
- cameraNo:(NSString *) cameraNo
- beginTime:(NSDate *) beginTime
- endTime:(NSDate *) endTime
- recType:(NSInteger) rectype
- bizType:(NSString *)bizType
- platFormId:(NSString *)platFormId
- completion:(void (^)(id records, NSError *error))completion;
++ (NSURLSessionDataTask *)getShareHiddnsDeviceList:(NSInteger)pageIndex
+ pageSize:(NSInteger)pageSize
+ completion:(void (^)(NSArray *ddnsDeviceList, NSInteger totalCount, NSError *error))completion;
@end
+
+NS_ASSUME_NONNULL_END
diff --git a/EZSDK/EZSDK/SDK/include/EZHCNetDeviceSDK.h b/EZSDK/EZSDK/SDK/include/EZHCNetDeviceSDK.h
index 4573dad..fa3a71f 100644
--- a/EZSDK/EZSDK/SDK/include/EZHCNetDeviceSDK.h
+++ b/EZSDK/EZSDK/SDK/include/EZHCNetDeviceSDK.h
@@ -8,7 +8,7 @@
#import <Foundation/Foundation.h>
-@class EZHCNetDeviceInfo,EZSADPDeviceInfo;
+@class EZHCNetDeviceInfo, EZSADPDeviceInfo;
typedef NS_ENUM(int, EZPTZCommandType) {
EZPTZCommandType_ZOOM_IN = 11, /* 鐒﹁窛鍙樺ぇ(鍊嶇巼鍙樺ぇ) */
@@ -39,11 +39,10 @@
@interface EZHCNetDeviceSDK : NSObject
-
/**
鍒濆鍖朣DK
*/
-+ (void) initSDK;
++ (void)initSDK;
/**
寮�濮嬫悳绱㈠眬鍩熺綉璁惧
@@ -51,19 +50,24 @@
@param searchCallback 鎼滅储缁撴灉鍥炶皟锛屾瘡鎼滃埌涓�涓澶囬兘浼氬洖璋冧竴娆★紝璁惧淇℃伅EZSADPDeviceInfo
@return 鎴愬姛鎴栧け璐�
*/
-+ (BOOL) startLocalSearch:(void(^)(EZSADPDeviceInfo *device,NSError *error)) searchCallback;
++ (BOOL)startLocalSearch:(void(^)(EZSADPDeviceInfo *device,NSError *error))searchCallback;
/**
鍋滄鎼滅储
@return 鎴愬姛鎴栧け璐�
*/
-+ (BOOL) stopLocalSearch;
++ (BOOL)stopLocalSearch;
/**
- 娓呮缁撴灉锛岄噸鏂版悳绱紝鍓嶆彁鏄箣鍓嶅紑鍚繃鎼滅储
+ 娓呴櫎缁撴灉锛岄噸鏂版悳绱紝鍓嶆彁鏄箣鍓嶅紑鍚繃鎼滅储
*/
-+ (void) research;
++ (void)research;
+
+/**
+ 鑾峰彇SADP鐗堟湰鍙�
+ */
++ (int)getSadpVersion;
/**
婵�娲昏澶囷紝璋冪敤stopLocalSearch鍚庡皢鏃犳硶婵�娲昏澶�
@@ -72,7 +76,7 @@
@param pwd 婵�娲诲瘑鐮�
@return 鎴愬姛鎴栧け璐�
*/
-+ (BOOL) activeDeviceWithSerial:(NSString *) serial pwd:(NSString *) pwd;
++ (BOOL)activeDeviceWithSerial:(NSString *)serial pwd:(NSString *)pwd;
/**
鐧诲綍灞�鍩熺綉璁惧
@@ -83,10 +87,10 @@
@param port 璁惧绔彛鍙�
@return 鐧诲綍閿欒鏃惰繑鍥瀗il
*/
-+ (EZHCNetDeviceInfo*) loginDeviceWithUerName:(NSString *) userName
- pwd:(NSString *) pwd
- ipAddr:(NSString *) ipAddr
- port:(NSInteger) port;
++ (EZHCNetDeviceInfo *)loginDeviceWithUerName:(NSString *)userName
+ pwd:(NSString *)pwd
+ ipAddr:(NSString *)ipAddr
+ port:(NSInteger)port;
/**
鐧诲嚭灞�鍩熺綉璁惧
@@ -94,7 +98,7 @@
@param userId 鐢ㄦ埛id
@return 鎴愬姛鎴栧け璐�
*/
-+ (BOOL)logoutDeviceWithUserId:(NSInteger) userId;
++ (BOOL)logoutDeviceWithUserId:(NSInteger)userId;
/**
灞�鍩熺綉璁惧浜戝彴鎺у埗鎺ュ彛
@@ -105,11 +109,10 @@
@param action 鍔ㄤ綔绫诲瀷 EZPTZActionType
@return 鎴愬姛鎴栧け璐�
*/
-+ (BOOL) ptzControlWithUserId:(NSInteger) userId
- channelNo:(NSInteger) channelNo
- command:(EZPTZCommandType) command
- action:(EZPTZActionType) action;
-
++ (BOOL)ptzControlWithUserId:(NSInteger)userId
+ channelNo:(NSInteger)channelNo
+ command:(EZPTZCommandType)command
+ action:(EZPTZActionType)action;
/**
璁剧疆鍔犲瘑鏂瑰紡
@@ -117,7 +120,7 @@
@param encryptType 鍔犲瘑鏂瑰紡
@return 鎴愬姛鎴栧け璐�
*/
-+ (BOOL) setEncryptType:(EZEncryptType) encryptType;
++ (BOOL)setEncryptType:(EZEncryptType)encryptType;
/**
AP閰嶇綉鎺ュ彛
@@ -129,11 +132,11 @@
@param callback 缁撴灉鍥炶皟
@return 鎴愬姛鎴栧け璐�
*/
-+ (BOOL)startAPConfigWifiWithSsid:(NSString *) ssid
- password:(NSString *) password
- deviceSerial:(NSString *) deviceSerial
- verifyCode:(NSString *) verifyCode
- result:(void (^)(BOOL ret)) callback;
++ (BOOL)startAPConfigWifiWithSsid:(NSString *)ssid
+ password:(NSString *)password
+ deviceSerial:(NSString *)deviceSerial
+ verifyCode:(NSString *)verifyCode
+ result:(void (^)(BOOL ret))callback;
/**
鍋滄AP閰嶇綉
diff --git a/EZSDK/EZSDK/SDK/include/EZOpenSDK.h b/EZSDK/EZSDK/SDK/include/EZOpenSDK.h
index 323d797..47fc8e3 100644
--- a/EZSDK/EZSDK/SDK/include/EZOpenSDK.h
+++ b/EZSDK/EZSDK/SDK/include/EZOpenSDK.h
@@ -1,13 +1,14 @@
//
// EZOpenSDK.h
-// EzvizOpenSDK
+// EZOpenSDK
//
-// Created by DeJohn Dong on 15/9/10.
-// Copyright (c) 2015骞� Ezviz. All rights reserved.
+// Created by JuneCheng on 2022/7/18.
//
-#import <UIKit/UIKit.h>
+#import <Foundation/Foundation.h>
#import "EZConstants.h"
+#import "EZConstants_Auth.h"
+#import "EZConstants_WifiConfig.h"
@class EZPlayer;
@class EZDeviceInfo;
@@ -18,12 +19,15 @@
@class EZProbeDeviceInfo;
@class EZDeviceUpgradeStatus;
@class EZLeaveMessage;
+@class EZWiFiItemInfo, EZAPDevInfo, EZConfigTokenInfo;
-/// 姝ょ被涓篍ZOpenSDK鎺ュ彛绫� 鐗瑰埆璇存槑锛�110001锛堝弬鏁伴敊璇級銆�110002锛圓ccessToken杩囨湡锛夈��149999銆�150000锛堟湇鍔$寮傚父锛夋槸鎵�鏈塰ttp鎺ュ彛锛堣繑鍥炲�兼槸NSOperation瀵硅薄鐨勫ぇ閮ㄥ垎鏄痟ttp鎺ュ彛锛夐兘浼氳繑鍥炵殑閫氱敤閿欒鐮侊紝400002涓烘帴鍙e弬鏁伴敊璇殑閫氱敤閿欒鐮�
+NS_ASSUME_NONNULL_BEGIN
+
@interface EZOpenSDK : NSObject
+#pragma mark - Auth璁よ瘉鐩稿叧Api
+
/**
- * @since 3.0.0
* 瀹炰緥EZOpenSDK鎺ュ彛
*
* @param appKey 浼犲叆鐢宠鐨刟ppKey
@@ -46,7 +50,6 @@
authUrl:(NSString *)authUrl;
/**
- * @since 3.0.0
* 閿�姣丒ZOpenSDK鎺ュ彛
*
* @return YES/NO
@@ -54,23 +57,29 @@
+ (BOOL)destoryLib;
/**
- * @since 3.0.0
- * 鑾峰彇SDK鐗堟湰鍙锋帴鍙�
+ * 璁剧疆鏄惁鎵撳嵃debug鏃ュ織,闇�鍦ㄥ垵濮嬪寲sdk涔嬪墠璋冪敤
*
- * @return 鐗堟湰鍙�
+ * @param enable 鏄惁鎵撳嵃鏃ュ織锛岄粯璁ゅ叧闂�
+ *
+ * @return YES/NO
*/
-+ (NSString *)getVersion;
++ (BOOL)setDebugLogEnable:(BOOL)enable;
/**
- * @since 3.0.0
+ * 璁剧疆debug鏃ュ織鍥炶皟,闇�鍦ㄥ垵濮嬪寲sdk涔嬪墠璋冪敤
+ *
+ * @param logCallback 鏃ュ織鍥炶皟
+ */
++ (void)setDebugLogCallBack:(void(^)(NSString *logStr))logCallback;
+
+/**
* 鎵撳紑鎺堟潈鐧诲綍涓棿椤甸潰鎺ュ彛
*
* @param block 鍥炶皟block
- */
+*/
+ (void)openLoginPage:(void (^)(EZAccessToken *accessToken))block;
/**
- * @since 3.0.0
* 鎺堟潈鐧诲綍浠ュ悗缁橢ZOpenSDK璁剧疆accessToken鎺ュ彛
*
* @param accessToken 鎺堟潈鐧诲綍鑾峰彇鐨刟ccessToken
@@ -78,113 +87,62 @@
+ (void)setAccessToken:(NSString *)accessToken;
/**
- * @since 3.0.0
* 璐︽埛娉ㄩ攢鎺ュ彛
*
* @param completion 鍥炶皟block锛宔rror涓虹┖琛ㄧず鐧诲嚭鎴愬姛
*/
+ (void)logout:(void (^)(NSError *error))completion;
+
/**
- * @since 3.0.0
- * 鏍规嵁alarmId鍒犻櫎鍛婅淇℃伅鎺ュ彛
- *
- * @param alarmIds 鍛婅淇℃伅Id鏁扮粍(鍙互鍙湁涓�涓狪d)锛屾渶澶氫负10涓狪d锛屽惁鍒欎細鎶ラ敊
- * @param completion 鍥炶皟block锛宔rror涓虹┖鏃惰〃绀哄垹闄ゆ垚鍔�
- *
- * @return operation
+ 澶栭儴璺宠浆澶勭悊鏂规硶锛岄�傜敤浜巌OS9浠ヤ笂锛屽寘鎷琲OS9
+
+ @param url 璺宠浆杩囨潵鐨剈rl
+ @param options 鍙傛暟锛岄粯璁や负绌猴紝鐩墠鏈繘琛屽鐞嗭紝棰勭暀
+ @param delegate 濮旀墭
+ @return 缁撴灉
*/
-+ (NSURLSessionDataTask *)deleteAlarm:(NSArray *)alarmIds
- completion:(void (^)(NSError *error))completion;
++ (BOOL)handleOpenUrl:(NSURL *)url options:(NSDictionary *)options delegate:(id<EZOpenSDKDelegate>)delegate;
/**
- * @since 3.0.0
- * 璁剧疆鍛婅淇℃伅涓哄凡璇绘帴鍙�
+ * 鑾峰彇SDK鐗堟湰鍙锋帴鍙�
*
- * @param alarmIds 鍛婅淇℃伅Id鏁扮粍(鍙互鍙湁涓�涓狪d)锛屾渶澶氫负10涓猧d,鍚﹀垯浼氭姤閿�
- * @param status 鍛婅娑堟伅鐘舵��
- * @param completion 鍥炶皟block锛宔rror涓虹┖鏃惰〃绀鸿缃垚鍔�
- *
- * @return operation
+ * @return 鐗堟湰鍙�
*/
-+ (NSURLSessionDataTask *)setAlarmStatus:(NSArray *)alarmIds
- alarmStatus:(EZMessageStatus)status
- completion:(void (^)(NSError *error))completion;
-
++ (NSString *)getVersion;
/**
- * @since 3.0.0
- * 鏍规嵁璁惧搴忓垪鍙峰垹闄ゅ綋鍓嶈处鍙风殑璁惧鎺ュ彛
+ * 鎵撳紑浜戝瓨鍌ㄤ腑闂撮〉
*
* @param deviceSerial 璁惧搴忓垪鍙�
- * @param completion 鍥炶皟block锛宔rror涓虹┖鏃惰〃绀哄垹闄ゆ垚鍔�
- * @see 璇ユ帴鍙d笌缁堢缁戝畾鍔熻兘鐩稿叧锛屼細閬囧埌鍒犻櫎鏃舵姤106002鐨勯敊璇紝璇峰叧闂粓绔粦瀹氫互鍚庡啀璇�
- *
- * @return operation
+ * @param channelNo 璁惧閫氶亾鍙�
*/
-+ (NSURLSessionDataTask *)deleteDevice:(NSString *)deviceSerial
- completion:(void (^)(NSError *error))completion;
++ (void)openCloudPage:(NSString *)deviceSerial channelNo:(NSInteger)channelNo;
/**
- * @since 3.0.0
- * WiFi閰嶇疆寮�濮嬫帴鍙�
+ * 鎵撳紑淇敼瀵嗙爜涓棿椤�
*
- * @param ssid 杩炴帴WiFi SSID
- * @param password 杩炴帴WiFi 瀵嗙爜
- * @param deviceSerial 杩炴帴WiFi鐨勮澶囩殑璁惧搴忓垪鍙�
- * @param statusBlock 杩斿洖杩炴帴璁惧鐨刉iFi閰嶇疆鐘舵��
- *
- * @return YES/NO
+ * @param completion 鍥炶皟block resultCode涓�0鏃惰〃绀轰慨鏀瑰瘑鐮佹垚鍔�
*/
-+ (BOOL)startConfigWifi:(NSString *)ssid
- password:(NSString *)password
- deviceSerial:(NSString *)deviceSerial
- deviceStatus:(void (^)(EZWifiConfigStatus status))statusBlock;
++ (void)openChangePasswordPage:(void (^)(NSInteger resultCode))completion;
/**
- * @since 3.0.0
- * Wifi閰嶇疆鍋滄鎺ュ彛
- *
- * @return YES/NO
+ 鏄惁宸茬粡鐧诲綍
+
+ @return YES锛氬凡缁忕櫥褰曪紱NO锛氭湭鐧诲綍
*/
-+ (BOOL)stopConfigWifi;
++ (BOOL)isLogin;
/**
- * @since 3.0.0
- * PTZ 鎺у埗鎺ュ彛
- *
- * @param deviceSerial 璁惧搴忓垪鍙�
- * @param cameraNo 閫氶亾鍙�
- * @param command ptz鎺у埗鍛戒护
- * @param action 鎺у埗鍚姩/鍋滄
- * @param speed 浜戝彴閫熷害锛�0-鎱紝1-閫備腑锛�2-蹇�
- * @param resultBlock 鍥炶皟block锛屽綋error涓虹┖鏃惰〃绀烘搷浣滄垚鍔�
- *
- * @return operation
+ 鑾峰彇褰撳墠accessToken
+
+ @return accessToken
*/
-+ (NSURLSessionDataTask *)controlPTZ:(NSString *)deviceSerial
- cameraNo:(NSInteger)cameraNo
- command:(EZPTZCommand)command
- action:(EZPTZAction)action
- speed:(NSInteger)speed
- result:(void (^)(NSError *error))resultBlock;
++ (NSString *)getAccesstoken;
+
+#pragma mark - 鎾斁鍣ㄥ垱寤篈pi
/**
- * @since 3.0.0
- * 鎽勫儚澶存樉绀烘帶鍒舵帴鍙�
- *
- * @param deviceSerial 璁惧搴忓垪鍙�
- * @param cameraNo 閫氶亾鍙�
- * @param command 鏄剧ず鎺у埗鍛戒护
- * @param resultBlock 鍥炶皟block锛屽綋error涓虹┖鏃惰〃绀烘搷浣滄垚鍔�
- */
-+ (void)controlVideoFlip:(NSString *)deviceSerial
- cameraNo:(NSInteger)cameraNo
- command:(EZDisplayCommand)command
- result:(void (^)(NSError *error))resultBlock;
-
-/**
- * @since 3.0.0
* 鏍规嵁cameraId鏋勯�燛ZPlayer瀵硅薄
*
* @param deviceSerial 璁惧搴忓垪鍙�
@@ -195,10 +153,31 @@
+ (EZPlayer *)createPlayerWithDeviceSerial:(NSString *)deviceSerial
cameraNo:(NSInteger)cameraNo;
-+ (EZPlayer *)createPlayerWithDeviceSerial:(NSString *)deviceSerial strCameraNo:(NSString *)strCameraNo;
+/**
+ * 鏍规嵁cameraId鏋勯�燛ZPlayer瀵硅薄锛坒or 鍥芥爣锛�
+ *
+ * @param deviceSerial 璁惧搴忓垪鍙�
+ * @param strCameraNo 閫氶亾鍙�
+ *
+ * @return EZPlayer瀵硅薄
+ */
++ (EZPlayer *)createPlayerWithDeviceSerial:(NSString *)deviceSerial
+ strCameraNo:(NSString *)strCameraNo DEPRECATED_MSG_ATTRIBUTE("use createPlayerWithDeviceSerial:cameraNo: instead");
/**
- * @since 3.0.0
+ * 涓�涓〉闈㈠瓨鍦ㄥ涓棰戜娇鐢ㄦ渶灏忕殑鐮佹祦锛屾病鏈夊瓙鐮佹祦鐨勮瘽杩樻槸浣跨敤涓荤爜娴�
+ *
+ * @param deviceSerial 璁惧搴忓垪鍙�
+ * @param cameraNo 铏氭嫙閫氶亾
+ * @param useSubStream 鏄惁浣跨敤瀛愮爜娴�
+ *
+ * @return EZPlayer瀵硅薄
+ */
++ (EZPlayer *)createPlayerWithDeviceSerial:(NSString *)deviceSerial
+ cameraNo:(NSInteger)cameraNo
+ useSubStream:(BOOL)useSubStream;
+
+/**
* 鏍规嵁url鏋勯�燛ZPlayer瀵硅薄 锛堜富瑕佺敤鏉ュ鐞嗚棰戝箍鍦虹殑鎾斁锛�
*
* @param url 鎾斁url锛岀洰鍓嶅彧鏀寔璇ュ崗璁細ysproto://vtm.ys7.com:8554/live?dev=531993276&chn=1&stream=1&cln=1&isp=0&biz=3
@@ -209,7 +188,6 @@
/**
- * @since 3.0.0
* 閲婃斁EZPlayer瀵硅薄
*
* @param player EZPlayer瀵硅薄
@@ -218,234 +196,9 @@
*/
+ (BOOL)releasePlayer:(EZPlayer *)player;
-#pragma mark - V3.1 鏂板鍔犳帴鍙�
+#pragma mark - 鍙栨祦鐩稿叧Api
/**
- * @since 3.1.0
- * 鏁版嵁瑙e瘑
- *
- * @param data 闇�瑕佽В瀵嗙殑鏁版嵁
- * @param verifyCode 璁惧楠岃瘉鐮�
- *
- * @return 瑙e瘑鐨凬SData瀵硅薄锛屽鏋滆繑鍥炵殑鏁版嵁鏄┖鐨勶紝璇锋鏌ュ瘑鐮佹槸鍚︽纭垨鑰呬紶鍏ョ殑鏁版嵁鏄惁姝g‘銆�
- */
-+ (NSData *)decryptData:(NSData *)data verifyCode:(NSString *)verifyCode;
-
-
-#pragma mark - V3.2 鏂板鍔犳帴鍙�
-
-/**
- * @since 3.2.0
- * 鑾峰彇璁惧鐨勭増鏈俊鎭帴鍙�
- *
- * @param deviceSerial 璁惧搴忓垪鍙�
- * @param completion 鍥炶皟block锛屾甯告椂杩斿洖EZDeviceVersion鐨勫璞′俊鎭紝閿欒鏃惰繑鍥為敊璇爜
- *
- * @return operation
- */
-+ (NSURLSessionDataTask *)getDeviceVersion:(NSString *)deviceSerial
- completion:(void (^)(EZDeviceVersion *version, NSError *error))completion;
-
-
-/**
- * @since 4.2.0
- * 閫氳繃璁惧楠岃瘉鐮佸紑鍏宠棰戝浘鐗囧姞瀵嗘帴鍙�
- *
- * @param isEncrypt 鏄惁鍔犲瘑锛屽彧鏈塏O(鍏抽棴)鐨勬椂鍊欓渶瑕佽澶囬獙璇佺爜鐨勭浉鍏冲弬鏁�(vaildateCode)
- * @param deviceSerial 璁惧搴忓垪鍙�
- * @param verifyCode 璁惧楠岃瘉鐮�
- * @param completion 鍥炶皟block锛宔rror涓虹┖鏃惰〃绀烘搷浣滄垚鍔�
- *
- * @return operation
- */
-+ (NSURLSessionDataTask *)setDeviceEncryptStatus:(NSString *)deviceSerial
- verifyCode:(NSString *)verifyCode
- encrypt:(BOOL)isEncrypt
- completion:(void (^)(NSError *error))completion;
-
-/**
- * @since 3.2.0
- * 鏍规嵁璁惧搴忓垪鍙蜂慨鏀硅澶囧悕绉版帴鍙�
- *
- * @param deviceSerial 璁惧搴忓垪鍙�
- * @param deviceName 璁惧鍚嶇О
- * @param completion 鍥炶皟block锛宔rror涓虹┖鏃惰〃绀轰慨鏀规垚鍔�
- *
- * @return operation
- */
-+ (NSURLSessionDataTask *)setDeviceName:(NSString *)deviceName
- deviceSerial:(NSString *)deviceSerial
- completion:(void (^)(NSError *error))completion;
-
-/**
- * @since 3.2.0
- * 鑾峰彇鐢ㄦ埛鍩烘湰淇℃伅鐨勬帴鍙�
- *
- * @param completion 鍥炶皟block锛� 姝e父鏃惰繑鍥濫ZUserInfo鐨勫璞★紝閿欒鏃惰繑鍥為敊璇爜
- *
- * @return operation
- */
-+ (NSURLSessionDataTask *)getUserInfo:(void (^)(EZUserInfo *userInfo, NSError *error))completion;
-
-/**
- * @since 3.2.0
- * 鏍规嵁璁惧搴忓垪鍙疯幏鍙栨湭璇绘秷鎭暟锛岃澶囧簭鍒楀彿涓虹┖鏃惰幏鍙栨墍鏈夎澶囩殑鏈娑堟伅鏁�
- *
- * @param deviceSerial 闇�瑕佽幏鍙栫殑璁惧搴忓垪鍙凤紝涓虹┖鏃惰繑鍥炶处鎴蜂笅鎵�鏈夎澶囩殑鏈娑堟伅鏁�
- * @param type 娑堟伅绫诲瀷锛欵ZMessageTypeAlarm 鍛婅娑堟伅锛�1锛夛紝EZMessageTypeLeave 鐣欒█娑堟伅锛�2锛�
- * @param completion 鍥炶皟block锛屾甯告椂杩斿洖鏈鏁伴噺锛岄敊璇椂杩斿洖閿欒鐮�
- *
- * @return operation
- */
-+ (NSURLSessionDataTask *)getUnreadMessageCount:(NSString *)deviceSerial
- messageType:(EZMessageType)type
- completion:(void (^)(NSInteger count, NSError *error))completion;
-
-/**
- * @since 3.2.0
- * 鏍规嵁璁惧搴忓垪鍙疯幏鍙栬澶囩殑鐣欒█娑堟伅鍒楄〃
- *
- * @param deviceSerial 闇�瑕佽幏鍙栫殑璁惧搴忓垪鍙�
- * @param beginTime 寮�濮嬫椂闂�
- * @param endTime 缁撴潫鏃堕棿
- * @param pageIndex 鍒嗛〉椤电爜
- * @param pageSize 鍒嗛〉鍗曢〉鏁伴噺
- * @param completion 鍥炶皟block锛屾甯告椂杩斿洖EZLeaveMessage鐨勫璞℃暟缁勶紝閿欒鏃惰繑鍥為敊璇爜
- *
- * @return operation
- */
-+ (NSURLSessionDataTask *)getLeaveMessageList:(NSString *)deviceSerial
- pageIndex:(NSInteger)pageIndex
- pageSize:(NSInteger)pageSize
- beginTime:(NSDate *)beginTime
- endTime:(NSDate *)endTime
- completion:(void (^)(NSArray *leaveMessageList, NSInteger totalCount, NSError *error))completion;
-
-/**
- * @since 3.2.0
- * 鏍规嵁leaveId璁剧疆鐣欒█娑堟伅鐘舵��
- *
- * @param leaveIds 鐣欒█娑堟伅Id鏁扮粍(鏈�澶ф暟閲忎负10锛屽厑璁稿彧鏈�1涓�)
- * @param status 闇�瑕佽缃殑鐣欒█鐘舵�侊紝鐩墠鍙敮鎸� EZMessageStatusRead(宸茶)
- * @param completion 鍥炶皟block锛宔rror涓虹┖琛ㄧず璁剧疆鎴愬姛
- *
- * @return operation
- */
-+ (NSURLSessionDataTask *)setLeaveMessageStatus:(NSArray *)leaveIds
- messageStatus:(EZMessageStatus)status
- completion:(void (^)(NSError *error))completion;
-
-/**
- * @since 3.2.0
- * 鏍规嵁leaveId鍒犻櫎鐣欒█娑堟伅
- *
- * @param leaveIds 鐣欒█娑堟伅Id鏁扮粍(鏈�澶ф暟閲忎负10锛屽厑璁稿彧鏈�1涓�)
- * @param completion 鍥炶皟block锛宔rror涓虹┖琛ㄧず鍒犻櫎鎴愬姛
- *
- * @return operation
- */
-+ (NSURLSessionDataTask *)deleteLeaveMessage:(NSArray *)leaveIds
- completion:(void (^)(NSError *error))completion;
-
-/**
- * @since 3.2.0
- * 鏍规嵁璁惧搴忓垪鍙疯幏鍙栧瓨鍌ㄤ粙璐ㄧ姸鎬�(濡傛槸鍚﹀垵濮嬪寲锛屾牸寮忓寲杩涘害绛�)
- *
- * @param deviceSerial 璁惧搴忓垪鍙�
- * @param completion 鍥炶皟block锛屾甯告椂杩斿洖EZStorageInfo鐨勫璞℃暟缁勶紝閿欒鏃惰繑鍥為敊璇爜
- *
- * @return operation
- */
-+ (NSURLSessionDataTask *)getStorageStatus:(NSString *)deviceSerial
- completion:(void (^)(NSArray *storageStatus, NSError *error))completion;
-
-/**
- * @since 3.2.0
- * 鏍规嵁璁惧搴忓垪鍙峰拰鍒嗗尯缂栧彿鏍煎紡鍖栧垎鍖猴紙SD鍗★級
- *
- * @param deviceSerial 璁惧搴忓垪鍙�
- * @param storageIndex 鏌ヨ杩斿洖鐨勫垎鍖哄彿锛�0琛ㄧず鍏ㄩ儴鏍煎紡鍖栵紝鍙兘浼氭湁鍑犲潡纭洏鐨勬儏鍐�
- * @param completion 鍥炶皟block锛宔rror涓虹┖琛ㄧず璁剧疆鎴愬姛
- *
- * @return operation
- */
-+ (NSURLSessionDataTask *)formatStorage:(NSString *)deviceSerial
- storageIndex:(NSInteger)storageIndex
- completion:(void (^)(NSError *error))completion;
-/**
- * @since 3.2.0
- * 灏濊瘯鏌ヨ璁惧淇℃伅锛岃澶嘩ifi閰嶇疆鍓嶆煡璇竴娆¤澶囩殑淇℃伅
- *
- * @param deviceSerial 璁惧搴忓垪鍙�
- * @param deviceType 璁惧鍨嬪彿锛屾棤娉曡幏鍙栧埌璁惧鍨嬪彿鍒欏彲浼爊il
- * @param completion 鍥炶皟block锛屾甯告椂杩斿洖EZProbeDeviceInfo瀵硅薄锛岄敊璇爜杩斿洖閿欒鐮�
- * @see 鍏ㄦ柊鐨勮澶囨槸娌℃湁娉ㄥ唽鍒板钩鍙扮殑锛屾墍浠ヤ細鍑虹幇璁惧涓嶅瓨鍦ㄧ殑鎯呭喌锛岃澶噖ifi閰嶇疆鎴愬姛浠ュ悗浼氫笂鎶ユ暟鎹埌钀ょ煶浜戝钩鍙帮紝浠ュ悗姣忔鏌ヨ灏变笉浼氬嚭鐜拌澶囦笉瀛樺湪鐨勬儏鍐典簡銆�
- *
- * @return operation
- */
-+ (NSURLSessionDataTask *)probeDeviceInfo:(NSString *) deviceSerial
- deviceType:(NSString *) deviceType
- completion:(void (^)(EZProbeDeviceInfo *deviceInfo, NSError *error))completion;
-
-/**
- * @since 3.2.0
- * 鏍规嵁璁惧搴忓垪鍙疯幏鍙栬澶囧崌绾ф椂鐨勮繘搴︾姸鎬�
- *
- * @param deviceSerial 璁惧搴忓垪鍙�
- * @param completion 鍥炶皟block锛屾甯告椂杩斿洖EZDeviceUpgradeStatus瀵硅薄锛岄敊璇椂杩斿洖閿欒鐮�
- *
- * @return operation
- */
-+ (NSURLSessionDataTask *)getDeviceUpgradeStatus:(NSString *)deviceSerial
- completion:(void (^)(EZDeviceUpgradeStatus *status, NSError *error))completion;
-
-/**
- * @since 3.2.0
- * 閫氳繃璁惧搴忓垪鍙峰璁惧杩涜鍗囩骇鎿嶄綔锛屽墠鎻愭槸璇ヨ澶囨湁鏇存柊杞欢鐨勬彁绀�
- *
- * @param deviceSerial 璁惧搴忓垪鍙�
- * @param completion 鍥炶皟block锛宔rror涓虹┖琛ㄧず鎿嶄綔鎴愬姛
- *
- * @return operation
- */
-+ (NSURLSessionDataTask *)upgradeDevice:(NSString *)deviceSerial
- completion:(void (^)(NSError *error))completion;
-
-
-/**
- * @since 3.2.0
- * 鏍规嵁EZLeaveMessage瀵硅薄淇℃伅鑾峰彇璇煶鐣欒█娑堟伅鏁版嵁鎺ュ彛
- * @param message 鐣欒█娑堟伅瀵硅薄
- * @param completion 鍥炶皟block 锛坮esultCode = 1 琛ㄧず璇煶涓嬭浇鎴愬姛锛�-1琛ㄧず涓嬭浇澶辫触锛�
- *
- * @return operation
- */
-+ (NSOperation *)getLeaveMessageData:(EZLeaveMessage *)message
- completion:(void (^)(NSData *data, NSInteger resultCode))completion;
-
-/**
- * @since 1.0.0
- * 鎵撳紑浜戝瓨鍌ㄤ腑闂撮〉
- *
- * @param deviceSerial 璁惧搴忓垪鍙�
- * @param channelNo 璁惧閫氶亾鍙�
- */
-+ (void)openCloudPage:(NSString *)deviceSerial channelNo:(NSInteger)channelNo;
-
-#pragma mark - V3.3 鏂板鍔犳帴鍙�
-
-/**
- * @since 3.3.0
- * 鎵撳紑淇敼瀵嗙爜涓棿椤�
- *
- * @param completion 鍥炶皟block resultCode涓�0鏃惰〃绀轰慨鏀瑰瘑鐮佹垚鍔�
- */
-+ (void)openChangePasswordPage:(void (^)(NSInteger resultCode))completion;
-
-#pragma mark - V4.0 鏂板鍔犳帴鍙�
-
-/**
- * @since 4.0.0
* 璁剧疆p2p鍔熻兘鏄惁寮�鍚帴鍙o紝榛樿涓嶅紑鍚痯2p锛岀敤鎴疯嚜宸遍�夋嫨鏄惁寮�鍚�
*
* @param enable p2p鏄惁寮�鍚�
@@ -453,47 +206,47 @@
+ (void)enableP2P:(BOOL)enable;
/**
- * @since 4.0.0
- * 璁剧疆鏄惁鎵撳嵃debug鏃ュ織,闇�鍦ㄥ垵濮嬪寲sdk涔嬪墠璋冪敤
- *
- * @param enable 鏄惁鎵撳嵃鏃ュ織锛岄粯璁ゅ叧闂�
- *
- * @return YES/NO
+ * 娓呴櫎鍙栨祦鏃剁殑缂撳瓨鏁版嵁
*/
-+ (BOOL)setDebugLogEnable:(BOOL)enable;
-
-#pragma mark - V4.2 鏂板鍔犳帴鍙�
++ (void)clearStreamInfoCache;
/**
- * @since 4.2.0
- * 鑾峰彇鐢ㄦ埛鎵�鏈夌殑璁惧鍒楄〃
- *
- * @param pageIndex 鍒嗛〉褰撳墠椤电爜锛堜粠0寮�濮嬶級
- * @param pageSize 鍒嗛〉姣忛〉鏁伴噺锛堝缓璁�20浠ュ唴锛�
- * @param completion 鍥炶皟block锛屾甯告椂杩斿洖EZDeviceInfo鐨勫璞℃暟缁勫拰璁惧鎬绘暟锛岄敊璇椂杩斿洖閿欒鐮�
- *
- * @return operation
+ * 鏄惁鏀寔鍥芥爣
+ * @param enable YES or NO
*/
-+ (NSURLSessionDataTask *)getDeviceList:(NSInteger)pageIndex
- pageSize:(NSInteger)pageSize
- completion:(void (^)(NSArray *deviceList, NSInteger totalCount, NSError *error))completion;
++ (void)enableNationalStandard:(BOOL)enable;
/**
- * @since 4.2.0
- * 鑾峰彇鍒嗕韩缁欑敤鎴风殑璁惧鍒楄〃鎺ュ彛
+ * 鑾峰彇鎵�鏈夌殑p2p棰勮繛鎺ヨ澶囧簭鍒楀彿锛堝寘鎷鍦ㄨ繘琛岄鎿嶄綔鐨勪互鍙婇鎿嶄綔瀹屾垚鐨勶級
*
- * @param pageIndex 鍒嗛〉褰撳墠椤电爜锛堜粠0寮�濮嬶級
- * @param pageSize 鍒嗛〉姣忛〉鏁伴噺锛堝缓璁�20浠ュ唴锛�
- * @param completion 鍥炶皟block锛屾甯告椂杩斿洖EZDeviceInfo鐨勫璞℃暟缁勫拰璁惧鎬绘暟锛岄敊璇椂杩斿洖閿欒鐮�
- *
- * @return operation
+ * @return 璁惧搴忓垪鍙锋暟缁�
*/
-+ (NSURLSessionDataTask *)getSharedDeviceList:(NSInteger)pageIndex
- pageSize:(NSInteger)pageSize
- completion:(void (^)(NSArray *deviceList, NSInteger totalCount, NSError *error))completion;
++ (NSArray<NSString *> *)getAllProcessedPreconnectSerials;
/**
- * @since 4.2.0
+ * 鑾峰彇鎵�鏈夋鍦ㄦ帓闃熺殑p2p棰勮繛鎺ヨ澶囧簭鍒楀彿锛堟寚杩樻病鏈夎繘琛岄鎿嶄綔鐨勶級
+ *
+ * @return 璁惧搴忓垪鍙锋暟缁�
+ */
++ (NSArray<NSString *> *)getAllToDoPreconnectSerials;
+
+/**
+ * 瀵规煇涓�璁惧杩涜p2p棰勮繛鎺ユ搷浣�
+ *
+ * @param deviceSerial 璁惧搴忓垪鍙�
+ */
++ (void)startP2PPreconnect:(NSString *)deviceSerial;
+
+/**
+ * 瀵规煇涓�璁惧杩涜p2p棰勮繛鎺ユ竻闄ゆ搷浣�
+ *
+ * @param deviceSerial 璁惧搴忓垪鍙�
+ */
++ (void)clearP2PPreconnect:(NSString *)deviceSerial;
+
+#pragma mark - 褰曞儚鏌ヨApi
+
+/**
* 鏌ヨ浜戝瓨鍌ㄥ綍鍍忎俊鎭垪琛ㄦ帴鍙�
*
* @param deviceSerial 璁惧搴忓垪鍙�
@@ -511,7 +264,6 @@
completion:(void (^)(NSArray *couldRecords, NSError *error))completion;
/**
- * @since 4.2.0
* 鏌ヨ杩滅▼SD鍗″瓨鍌ㄥ綍鍍忎俊鎭垪琛ㄦ帴鍙�
*
* @param deviceSerial 璁惧搴忓垪鍙�
@@ -529,7 +281,277 @@
completion:(void (^)(NSArray *deviceRecords, NSError *error))completion;
/**
- * @since 4.2.0
+ * 鏌ヨ杩滅▼SD鍗″瓨鍌ㄥ綍鍍忎俊鎭垪琛ㄦ帴鍙o紝鍚屼竴涓綍鍍忓彲浠ュ悓鏃舵槸瀹氭椂褰曞儚鍜屼簨浠跺綍鍍�
+ *
+ * @param deviceSerial 璁惧搴忓垪鍙�
+ * @param cameraNo 閫氶亾鍙�
+ * @param beginTime 鏌ヨ鏃堕棿鑼冨洿寮�濮嬫椂闂�
+ * @param endTime 鏌ヨ鏃堕棿鑼冨洿缁撴潫鏃堕棿
+ * @param videoRecordType 褰曞儚绫诲瀷
+ * @param completion 鍥炶皟block锛屾甯告椂杩斿洖EZDeviceRecordFile鐨勫璞℃暟缁勶紝閿欒鏃惰繑鍥為敊璇爜
+ *
+ * @return operation
+ */
++ (NSURLSessionDataTask *)searchRecordFileFromDevice:(NSString *)deviceSerial
+ cameraNo:(NSInteger)cameraNo
+ beginTime:(NSDate *)beginTime
+ endTime:(NSDate *)endTime
+ videoRecordType:(EZVideoRecordType)videoRecordType
+ completion:(void (^)(NSArray *deviceRecords, NSError *error))completion;
+
+/**
+ * 鑾峰彇鎸囧畾鏃堕棿鍐呯殑鎵�鏈夊綍鍍忔枃浠�
+ *
+ * @param deviceSerial 璁惧搴忓垪鍙�
+ * @param cameraNo 閫氶亾鍙凤紝浼犲叆<=0鐨勫�煎垯涓洪粯璁ゅ��
+ * @param beginTime 寮�濮嬫椂闂达紝浼犲叆nil鍒欎负褰撳ぉ00:00:00
+ * @param endTime 缁撴潫鏃堕棿锛屼紶鍏il鍒欎负褰撳ぉ23:59:59
+ * @param rectype 鍥炴斁婧愶紝0-绯荤粺鑷姩閫夋嫨锛�1-浜戝瓨鍌紝2-鏈湴褰曞儚銆傞潪蹇呴�夛紝榛樿涓�0锛屼紶鍏ヨ礋鍊煎垯涓洪粯璁ゅ��
+ * @param bizType 璁惧褰掑睘涓氬姟鏉ユ簮
+ * @param platFormId 骞冲彴ID
+ * @param completion 鍥炶皟block records:EzvizRecordFileInfo鐨勬暟缁�
+ *
+ * @return operation
+ */
++ (NSURLSessionDataTask *)searchRecordFile:(NSString *)deviceSerial
+ cameraNo:(NSString *)cameraNo
+ beginTime:(NSDate *)beginTime
+ endTime:(NSDate *)endTime
+ recType:(NSInteger)rectype
+ bizType:(NSString *)bizType
+ platFormId:(NSString *)platFormId
+ completion:(void (^)(id records, NSError *error))completion;
+
+#pragma mark - 璁惧鐩稿叧Api
+
+/**
+ * 鏍规嵁璁惧搴忓垪鍙峰拰璁惧楠岃瘉鐮佹坊鍔犺澶囨帴鍙�
+ *
+ * @param deviceSerial 璁惧搴忓垪鍙�
+ * @param verifyCode 璁惧楠岃瘉鐮�
+ * @param completion 鍥炶皟block锛宔rror涓虹┖鏃惰〃绀烘坊鍔犳垚鍔�
+ *
+ * @return operation
+ */
++ (NSURLSessionDataTask *)addDevice:(NSString *)deviceSerial
+ verifyCode:(NSString *)verifyCode
+ completion:(void (^)(NSError *error))completion;
+
+/**
+ * 鑾峰彇鐢ㄦ埛鎵�鏈夌殑璁惧鍒楄〃
+ *
+ * @param pageIndex 鍒嗛〉褰撳墠椤电爜锛堜粠0寮�濮嬶級
+ * @param pageSize 鍒嗛〉姣忛〉鏁伴噺锛堝缓璁�20浠ュ唴锛�
+ * @param completion 鍥炶皟block锛屾甯告椂杩斿洖EZDeviceInfo鐨勫璞℃暟缁勫拰璁惧鎬绘暟锛岄敊璇椂杩斿洖閿欒鐮�
+ *
+ * @return operation
+ */
++ (NSURLSessionDataTask *)getDeviceList:(NSInteger)pageIndex
+ pageSize:(NSInteger)pageSize
+ completion:(void (^)(NSArray *deviceList, NSInteger totalCount, NSError *error))completion;
+
+/**
+ * 鑾峰彇鍒嗕韩缁欑敤鎴风殑璁惧鍒楄〃鎺ュ彛
+ *
+ * @param pageIndex 鍒嗛〉褰撳墠椤电爜锛堜粠0寮�濮嬶級
+ * @param pageSize 鍒嗛〉姣忛〉鏁伴噺锛堝缓璁�20浠ュ唴锛�
+ * @param completion 鍥炶皟block锛屾甯告椂杩斿洖EZDeviceInfo鐨勫璞℃暟缁勫拰璁惧鎬绘暟锛岄敊璇椂杩斿洖閿欒鐮�
+ *
+ * @return operation
+ */
++ (NSURLSessionDataTask *)getSharedDeviceList:(NSInteger)pageIndex
+ pageSize:(NSInteger)pageSize
+ completion:(void (^)(NSArray *deviceList, NSInteger totalCount, NSError *error))completion;
+
+/**
+ * 鏍规嵁搴忓垪鍙疯幏鍙栬澶囦俊鎭�
+ *
+ * @param deviceSerial 璁惧搴忓垪鍙�
+ * @param completion 鍥炶皟block锛屾甯告椂杩斿洖EZDeviceInfo鐨勫璞★紝閿欒鏃惰繑鍥為敊璇爜
+ *
+ * @return operation
+ */
++ (NSURLSessionDataTask *)getDeviceInfo:(NSString *)deviceSerial
+ completion:(void (^)(EZDeviceInfo *deviceInfo, NSError *error))completion;
+
+/**
+ * 鑾峰彇璁惧鐨勭増鏈俊鎭帴鍙�
+ *
+ * @param deviceSerial 璁惧搴忓垪鍙�
+ * @param completion 鍥炶皟block锛屾甯告椂杩斿洖EZDeviceVersion鐨勫璞′俊鎭紝閿欒鏃惰繑鍥為敊璇爜
+ *
+ * @return operation
+ */
++ (NSURLSessionDataTask *)getDeviceVersion:(NSString *)deviceSerial
+ completion:(void (^)(EZDeviceVersion *version, NSError *error))completion;
+
+/**
+ * 閫氳繃璁惧楠岃瘉鐮佸紑鍏宠棰戝浘鐗囧姞瀵嗘帴鍙�
+ *
+ * @param isEncrypt 鏄惁鍔犲瘑锛屽彧鏈塏O(鍏抽棴)鐨勬椂鍊欓渶瑕佽澶囬獙璇佺爜鐨勭浉鍏冲弬鏁�(vaildateCode)
+ * @param deviceSerial 璁惧搴忓垪鍙�
+ * @param verifyCode 璁惧楠岃瘉鐮�
+ * @param completion 鍥炶皟block锛宔rror涓虹┖鏃惰〃绀烘搷浣滄垚鍔�
+ *
+ * @return operation
+ */
++ (NSURLSessionDataTask *)setDeviceEncryptStatus:(NSString *)deviceSerial
+ verifyCode:(NSString *)verifyCode
+ encrypt:(BOOL)isEncrypt
+ completion:(void (^)(NSError *error))completion;
+
+/**
+ * 鏍规嵁璁惧搴忓垪鍙蜂慨鏀硅澶囧悕绉版帴鍙�
+ *
+ * @param deviceSerial 璁惧搴忓垪鍙�
+ * @param deviceName 璁惧鍚嶇О
+ * @param completion 鍥炶皟block锛宔rror涓虹┖鏃惰〃绀轰慨鏀规垚鍔�
+ *
+ * @return operation
+ */
++ (NSURLSessionDataTask *)setDeviceName:(NSString *)deviceName
+ deviceSerial:(NSString *)deviceSerial
+ completion:(void (^)(NSError *error))completion;
+
+/**
+ * 鏍规嵁璁惧搴忓垪鍙峰垹闄ゅ綋鍓嶈处鍙风殑璁惧鎺ュ彛
+ *
+ * @param deviceSerial 璁惧搴忓垪鍙�
+ * @param completion 鍥炶皟block锛宔rror涓虹┖鏃惰〃绀哄垹闄ゆ垚鍔�
+ * @see 璇ユ帴鍙d笌缁堢缁戝畾鍔熻兘鐩稿叧锛屼細閬囧埌鍒犻櫎鏃舵姤106002鐨勯敊璇紝璇峰叧闂粓绔粦瀹氫互鍚庡啀璇�
+ *
+ * @return operation
+ */
++ (NSURLSessionDataTask *)deleteDevice:(NSString *)deviceSerial
+ completion:(void (^)(NSError *error))completion;
+
+/**
+ * 鏍规嵁璁惧搴忓垪鍙疯幏鍙栧瓨鍌ㄤ粙璐ㄧ姸鎬�(濡傛槸鍚﹀垵濮嬪寲锛屾牸寮忓寲杩涘害绛�)
+ *
+ * @param deviceSerial 璁惧搴忓垪鍙�
+ * @param completion 鍥炶皟block锛屾甯告椂杩斿洖EZStorageInfo鐨勫璞℃暟缁勶紝閿欒鏃惰繑鍥為敊璇爜
+ *
+ * @return operation
+ */
++ (NSURLSessionDataTask *)getStorageStatus:(NSString *)deviceSerial
+ completion:(void (^)(NSArray *storageStatus, NSError *error))completion;
+
+/**
+ * 鏍规嵁璁惧搴忓垪鍙峰拰鍒嗗尯缂栧彿鏍煎紡鍖栧垎鍖猴紙SD鍗★級
+ *
+ * @param deviceSerial 璁惧搴忓垪鍙�
+ * @param storageIndex 鏌ヨ杩斿洖鐨勫垎鍖哄彿锛�0琛ㄧず鍏ㄩ儴鏍煎紡鍖栵紝鍙兘浼氭湁鍑犲潡纭洏鐨勬儏鍐�
+ * @param completion 鍥炶皟block锛宔rror涓虹┖琛ㄧず璁剧疆鎴愬姛
+ *
+ * @return operation
+ */
++ (NSURLSessionDataTask *)formatStorage:(NSString *)deviceSerial
+ storageIndex:(NSInteger)storageIndex
+ completion:(void (^)(NSError *error))completion;
+
+/**
+ * 鏍规嵁璁惧搴忓垪鍙疯幏鍙栬澶囧崌绾ф椂鐨勮繘搴︾姸鎬�
+ *
+ * @param deviceSerial 璁惧搴忓垪鍙�
+ * @param completion 鍥炶皟block锛屾甯告椂杩斿洖EZDeviceUpgradeStatus瀵硅薄锛岄敊璇椂杩斿洖閿欒鐮�
+ *
+ * @return operation
+ */
++ (NSURLSessionDataTask *)getDeviceUpgradeStatus:(NSString *)deviceSerial
+ completion:(void (^)(EZDeviceUpgradeStatus *status, NSError *error))completion;
+
+/**
+ * 閫氳繃璁惧搴忓垪鍙峰璁惧杩涜鍗囩骇鎿嶄綔锛屽墠鎻愭槸璇ヨ澶囨湁鏇存柊杞欢鐨勬彁绀�
+ *
+ * @param deviceSerial 璁惧搴忓垪鍙�
+ * @param completion 鍥炶皟block锛宔rror涓虹┖琛ㄧず鎿嶄綔鎴愬姛
+ *
+ * @return operation
+ */
++ (NSURLSessionDataTask *)upgradeDevice:(NSString *)deviceSerial
+ completion:(void (^)(NSError *error))completion;
+
+/**
+ * 鑾峰彇鎶撳彇鎽勫儚澶村浘鐗囩殑url鎺ュ彛
+ *
+ * @param deviceSerial 璁惧搴忓垪鍙�
+ * @param cameraNo 閫氶亾鍙�
+ * @param completion 鍥炶皟block锛屾甯告椂杩斿洖url鍦板潃淇℃伅锛岄敊璇椂杩斿洖閿欒鐮�
+ * @see 璇ユ帴鍙f瘮杈冭�楁椂锛屼笉寤鸿杩涜鎵归噺璁惧鎶撳浘锛孲DK鍐呴儴鍙敮鎸�6涓猦ttp璇锋眰骞跺彂锛岃鎺ュ彛浼氭寔缁崰鐢╤ttp璇锋眰璧勬簮锛屽鏋滈亣鍒癶ttp璇锋眰寤舵椂宸ㄥぇ闂锛屼紭鍏堣�冭檻鎶撳浘鎺ュ彛骞跺彂閫犳垚鐨勯棶棰�,
+ * 鎶撳浘灏嗗湪鏈嶅姟鍣ㄧ淇濈暀2涓皬鏃�
+ *
+ * @return operation
+ */
++ (NSURLSessionDataTask *)captureCamera:(NSString *)deviceSerial
+ cameraNo:(NSInteger)cameraNo
+ completion:(void (^)(NSString *url, NSError *error))completion;
+
+/**
+ * 璁剧疆璁惧閫氶亾鐨勬竻鏅板害
+ *
+ * @param deviceSerial 璁惧搴忓垪鍙�
+ * @param cameraNo 閫氶亾鍙�
+ * @param videoLevel 閫氶亾娓呮櫚搴︼紝0-娴佺晠锛�1-鍧囪 锛�2-楂樻竻锛�3-瓒呮竻
+ * @param completion 鍥炶皟block锛屾棤error琛ㄧず璁剧疆鎴愬姛
+ * @see 濡傛灉鏄鍦ㄦ挱鏀炬椂璋冪敤璇ユ帴鍙o紝璁剧疆娓呮櫚搴︽垚鍔熶互鍚庡繀椤昏EZPlayer璋冪敤stopRealPlay鍐嶈皟鐢╯tartRealPlay閲嶆柊鍙栨祦鎵嶆垚瀹屾垚鐢婚潰娓呮櫚搴︾殑鍒囨崲銆�
+ *
+ * @return operation
+ */
++ (NSURLSessionDataTask *)setVideoLevel:(NSString *)deviceSerial
+ cameraNo:(NSInteger)cameraNo
+ videoLevel:(EZVideoLevelType)videoLevel
+ completion:(void (^)(NSError *error))completion;
+
+/**
+ * 璁惧璁剧疆甯冮槻鐘舵�侊紝鍏煎A1鍜孖PC璁惧鐨勫竷闃�
+ *
+ * @param defence 甯冮槻鐘舵��, IPC甯冮槻鐘舵�佸彧鏈�0鍜�1锛孉1鏈�0:鐫$湢 8:鍦ㄥ 16:澶栧嚭
+ * @param deviceSerial 璁惧搴忓垪鍙�
+ * @param completion 鍥炶皟block锛宔rror涓虹┖琛ㄧず璁剧疆鎴愬姛
+ *
+ * @return operation
+ */
++ (NSURLSessionDataTask *)setDefence:(EZDefenceStatus)defence
+ deviceSerial:(NSString *)deviceSerial
+ completion:(void (^)(NSError *error))completion;
+
+#pragma mark - 浜戝彴鎺у埗Api
+
+/**
+ * PTZ 鎺у埗鎺ュ彛
+ *
+ * @param deviceSerial 璁惧搴忓垪鍙�
+ * @param cameraNo 閫氶亾鍙�
+ * @param command ptz鎺у埗鍛戒护
+ * @param action 鎺у埗鍚姩/鍋滄
+ * @param speed 浜戝彴閫熷害锛�0-鎱紝1-閫備腑锛�2-蹇�
+ * @param resultBlock 鍥炶皟block锛屽綋error涓虹┖鏃惰〃绀烘搷浣滄垚鍔�
+ *
+ * @return operation
+ */
++ (NSURLSessionDataTask *)controlPTZ:(NSString *)deviceSerial
+ cameraNo:(NSInteger)cameraNo
+ command:(EZPTZCommand)command
+ action:(EZPTZAction)action
+ speed:(NSInteger)speed
+ result:(void (^)(NSError *error))resultBlock;
+
+/**
+ * 鎽勫儚澶存樉绀烘帶鍒舵帴鍙�
+ *
+ * @param deviceSerial 璁惧搴忓垪鍙�
+ * @param cameraNo 閫氶亾鍙�
+ * @param command 鏄剧ず鎺у埗鍛戒护
+ * @param resultBlock 鍥炶皟block锛屽綋error涓虹┖鏃惰〃绀烘搷浣滄垚鍔�
+ */
++ (void)controlVideoFlip:(NSString *)deviceSerial
+ cameraNo:(NSInteger)cameraNo
+ command:(EZDisplayCommand)command
+ result:(void (^)(NSError *error))resultBlock;
+
+#pragma mark - 鍛婅鐩稿叧Api
+
+/**
* 鏍规嵁璁惧搴忓垪鍙疯幏鍙栧憡璀︿俊鎭垪琛紝璁惧搴忓垪鍙蜂负nil鏃舵煡璇㈡暣涓处鎴蜂笅鐨勫憡璀︿俊鎭垪琛�
*
* @param deviceSerial 璁惧搴忓垪鍙�
@@ -549,183 +571,216 @@
completion:(void (^)(NSArray *alarmList, NSInteger totalCount, NSError *error))completion;
/**
- * @since 4.2.0
- * 鏍规嵁璁惧搴忓垪鍙峰拰璁惧楠岃瘉鐮佹坊鍔犺澶囨帴鍙�
+ * 鍛婅鍥剧墖瑙e瘑鏂规硶锛岃澶囧姞瀵�
*
- * @param deviceSerial 璁惧搴忓垪鍙�
- * @param verifyCode 璁惧楠岃瘉鐮�
- * @param completion 鍥炶皟block锛宔rror涓虹┖鏃惰〃绀烘坊鍔犳垚鍔�
+ * @param data 闇�瑕佽В瀵嗙殑鏁版嵁
+ * @param verifyCode 璁惧楠岃瘉鐮�
+ *
+ * @return 瑙e瘑鐨凬SData瀵硅薄锛屽鏋滆繑鍥炵殑鏁版嵁鏄┖鐨勶紝璇锋鏌ュ瘑鐮佹槸鍚︽纭垨鑰呬紶鍏ョ殑鏁版嵁鏄惁姝g‘銆�
+ */
++ (NSData *)decryptData:(NSData *)data verifyCode:(NSString *)verifyCode;
+
+/**
+ * 鍛婅鍥剧墖瑙e瘑鏂规硶锛岃澶囧姞瀵�
+ *
+ * @param data 闇�瑕佽В瀵嗙殑鏁版嵁
+ * @param verifyCode 璁惧楠岃瘉鐮�
+ * @param type 1:璁惧鍔犲瘑锛�2锛氬钩鍙板姞瀵�
+ *
+ * @return 瑙e瘑鐨凬SData瀵硅薄锛屽鏋滆繑鍥炵殑鏁版嵁鏄┖鐨勶紝璇锋鏌ュ瘑鐮佹槸鍚︽纭垨鑰呬紶鍏ョ殑鏁版嵁鏄惁姝g‘銆�
+ */
++ (NSData *)decryptData:(NSData *)data verifyCode:(NSString *)verifyCode encryptType:(NSInteger)type;
+
+/**
+ * 璁剧疆鍛婅淇℃伅涓哄凡璇绘帴鍙�
+ *
+ * @param alarmIds 鍛婅淇℃伅Id鏁扮粍(鍙互鍙湁涓�涓狪d)锛屾渶澶氫负10涓猧d,鍚﹀垯浼氭姤閿�
+ * @param status 鍛婅娑堟伅鐘舵��
+ * @param completion 鍥炶皟block锛宔rror涓虹┖鏃惰〃绀鸿缃垚鍔�
*
* @return operation
*/
-+ (NSURLSessionDataTask *)addDevice:(NSString *)deviceSerial
- verifyCode:(NSString *)verifyCode
- completion:(void (^)(NSError *error))completion;
++ (NSURLSessionDataTask *)setAlarmStatus:(NSArray *)alarmIds
+ alarmStatus:(EZMessageStatus)status
+ completion:(void (^)(NSError *error))completion;
/**
- * @since 4.2.0
- * 鑾峰彇鎶撳彇鎽勫儚澶村浘鐗囩殑url鎺ュ彛
+ * 鏍规嵁alarmId鍒犻櫎鍛婅淇℃伅鎺ュ彛
*
- * @param deviceSerial 璁惧搴忓垪鍙�
- * @param cameraNo 閫氶亾鍙�
- * @param completion 鍥炶皟block锛屾甯告椂杩斿洖url鍦板潃淇℃伅锛岄敊璇椂杩斿洖閿欒鐮�
- * @see 璇ユ帴鍙f瘮杈冭�楁椂锛屼笉寤鸿杩涜鎵归噺璁惧鎶撳浘锛孲DK鍐呴儴鍙敮鎸�6涓猦ttp璇锋眰骞跺彂锛岃鎺ュ彛浼氭寔缁崰鐢╤ttp璇锋眰璧勬簮锛屽鏋滈亣鍒癶ttp璇锋眰寤舵椂宸ㄥぇ闂锛屼紭鍏堣�冭檻鎶撳浘鎺ュ彛骞跺彂閫犳垚鐨勯棶棰�,
- * 鎶撳浘灏嗗湪鏈嶅姟鍣ㄧ淇濈暀2涓皬鏃�
+ * @param alarmIds 鍛婅淇℃伅Id鏁扮粍(鍙互鍙湁涓�涓狪d)锛屾渶澶氫负10涓狪d锛屽惁鍒欎細鎶ラ敊
+ * @param completion 鍥炶皟block锛宔rror涓虹┖鏃惰〃绀哄垹闄ゆ垚鍔�
*
* @return operation
*/
-+ (NSURLSessionDataTask *)captureCamera:(NSString *)deviceSerial
- cameraNo:(NSInteger)cameraNo
- completion:(void (^)(NSString *url, NSError *error))completion;
++ (NSURLSessionDataTask *)deleteAlarm:(NSArray *)alarmIds
+ completion:(void (^)(NSError *error))completion;
/**
- * @since 4.2.0
- * 璁剧疆璁惧閫氶亾鐨勬竻鏅板害
+ * 鏍规嵁璁惧搴忓垪鍙疯幏鍙栨湭璇绘秷鎭暟锛岃澶囧簭鍒楀彿涓虹┖鏃惰幏鍙栨墍鏈夎澶囩殑鏈娑堟伅鏁�
*
- * @param deviceSerial 璁惧搴忓垪鍙�
- * @param cameraNo 閫氶亾鍙�
- * @param videoLevel 閫氶亾娓呮櫚搴︼紝0-娴佺晠锛�1-鍧囪 锛�2-楂樻竻锛�3-瓒呮竻
- * @param completion 鍥炶皟block锛屾棤error琛ㄧず璁剧疆鎴愬姛
- * @see 濡傛灉鏄鍦ㄦ挱鏀炬椂璋冪敤璇ユ帴鍙o紝璁剧疆娓呮櫚搴︽垚鍔熶互鍚庡繀椤昏EZPlayer璋冪敤stopRealPlay鍐嶈皟鐢╯tartRealPlay閲嶆柊鍙栨祦鎵嶆垚瀹屾垚鐢婚潰娓呮櫚搴︾殑鍒囨崲銆�
+ * @param deviceSerial 闇�瑕佽幏鍙栫殑璁惧搴忓垪鍙凤紝涓虹┖鏃惰繑鍥炶处鎴蜂笅鎵�鏈夎澶囩殑鏈娑堟伅鏁�
+ * @param type 娑堟伅绫诲瀷锛欵ZMessageTypeAlarm 鍛婅娑堟伅锛�1锛夛紝EZMessageTypeLeave 鐣欒█娑堟伅锛�2锛�
+ * @param completion 鍥炶皟block锛屾甯告椂杩斿洖鏈鏁伴噺锛岄敊璇椂杩斿洖閿欒鐮�
*
* @return operation
*/
-+ (NSURLSessionDataTask *)setVideoLevel:(NSString *)deviceSerial
- cameraNo:(NSInteger)cameraNo
- videoLevel:(EZVideoLevelType)videoLevel
- completion:(void (^)(NSError *error))completion;
++ (NSURLSessionDataTask *)getUnreadMessageCount:(NSString *)deviceSerial
+ messageType:(EZMessageType)type
+ completion:(void (^)(NSInteger count, NSError *error))completion;
+#pragma mark - 璇煶鐣欒█娑堟伅鏁版嵁Api
/**
- * @since 4.2.0
- * 璁惧璁剧疆甯冮槻鐘舵�侊紝鍏煎A1鍜孖PC璁惧鐨勫竷闃�
+ * 鏍规嵁璁惧搴忓垪鍙疯幏鍙栬澶囩殑鐣欒█娑堟伅鍒楄〃
*
- * @param defence 甯冮槻鐘舵��, IPC甯冮槻鐘舵�佸彧鏈�0鍜�1锛孉1鏈�0:鐫$湢 8:鍦ㄥ 16:澶栧嚭
- * @param deviceSerial 璁惧搴忓垪鍙�
- * @param completion 鍥炶皟block锛宔rror涓虹┖琛ㄧず璁剧疆鎴愬姛
+ * @param deviceSerial 闇�瑕佽幏鍙栫殑璁惧搴忓垪鍙�
+ * @param beginTime 寮�濮嬫椂闂�
+ * @param endTime 缁撴潫鏃堕棿
+ * @param pageIndex 鍒嗛〉椤电爜
+ * @param pageSize 鍒嗛〉鍗曢〉鏁伴噺
+ * @param completion 鍥炶皟block锛屾甯告椂杩斿洖EZLeaveMessage鐨勫璞℃暟缁勶紝閿欒鏃惰繑鍥為敊璇爜
*
* @return operation
*/
-+ (NSURLSessionDataTask *)setDefence:(EZDefenceStatus)defence
- deviceSerial:(NSString *)deviceSerial
- completion:(void (^)(NSError *error))completion;
-
-#pragma mark - V4.3 鏂板鍔犳帴鍙�
++ (NSURLSessionDataTask *)getLeaveMessageList:(NSString *)deviceSerial
+ pageIndex:(NSInteger)pageIndex
+ pageSize:(NSInteger)pageSize
+ beginTime:(NSDate *)beginTime
+ endTime:(NSDate *)endTime
+ completion:(void (^)(NSArray *leaveMessageList, NSInteger totalCount, NSError *error))completion;
/**
- * @since 4.3.0
- * 鏍规嵁搴忓垪鍙疯幏鍙栬澶囦俊鎭�
+ * 鏍规嵁leaveId璁剧疆鐣欒█娑堟伅鐘舵��
*
- * @param deviceSerial 璁惧搴忓垪鍙�
- * @param completion 鍥炶皟block锛屾甯告椂杩斿洖EZDeviceInfo鐨勫璞★紝閿欒鏃惰繑鍥為敊璇爜
+ * @param leaveIds 鐣欒█娑堟伅Id鏁扮粍(鏈�澶ф暟閲忎负10锛屽厑璁稿彧鏈�1涓�)
+ * @param status 闇�瑕佽缃殑鐣欒█鐘舵�侊紝鐩墠鍙敮鎸� EZMessageStatusRead(宸茶)
+ * @param completion 鍥炶皟block锛宔rror涓虹┖琛ㄧず璁剧疆鎴愬姛
*
* @return operation
*/
-+ (NSURLSessionDataTask *)getDeviceInfo:(NSString *)deviceSerial
- completion:(void (^)(EZDeviceInfo *deviceInfo, NSError *error))completion;
++ (NSURLSessionDataTask *)setLeaveMessageStatus:(NSArray *)leaveIds
+ messageStatus:(EZMessageStatus)status
+ completion:(void (^)(NSError *error))completion;
/**
- * @since 4.3.0
- * 鑾峰彇缁堢锛堟墜鏈虹瓑锛夊敮涓�璇嗗埆鐮�
+ * 鏍规嵁leaveId鍒犻櫎鐣欒█娑堟伅
*
- * @return 缁堢鍞竴璇嗗埆鐮�
+ * @param leaveIds 鐣欒█娑堟伅Id鏁扮粍(鏈�澶ф暟閲忎负10锛屽厑璁稿彧鏈�1涓�)
+ * @param completion 鍥炶皟block锛宔rror涓虹┖琛ㄧず鍒犻櫎鎴愬姛
+ *
+ * @return operation
*/
-+ (NSString *) getTerminalId;
-
-#pragma mark - V4.4 鏂板鍔犳帴鍙�
++ (NSURLSessionDataTask *)deleteLeaveMessage:(NSArray *)leaveIds
+ completion:(void (^)(NSError *error))completion;
/**
- * @since 4.4.0
- * push鍒濆鍖栨帴鍙o紝涓嶉渶瑕乸ush鏈嶅姟鍒欐棤闇�璋冪敤
+ * 鏍规嵁EZLeaveMessage瀵硅薄淇℃伅鑾峰彇璇煶鐣欒█娑堟伅鏁版嵁鎺ュ彛
+ * @param message 鐣欒█娑堟伅瀵硅薄
+ * @param completion 鍥炶皟block 锛坮esultCode = 1 琛ㄧず璇煶涓嬭浇鎴愬姛锛�-1琛ㄧず涓嬭浇澶辫触锛�
+ *
+ * @return operation
*/
-+ (void) initPushService;
++ (NSOperation *)getLeaveMessageData:(EZLeaveMessage *)message
+ completion:(void (^)(NSData *data, NSInteger resultCode))completion;
-#pragma mark - V4.5 鏂板鍔犳帴鍙�
+#pragma mark - VideoTalk瑙嗛閫氳瘽鐩稿叧Api
/**
- 娓呴櫎鍙栨祦鏃剁殑缂撳瓨鏁版嵁
+ * 鑾峰彇鎵嬭〃鏈嶅姟鐩稿叧淇℃伅
+ * @param deviceId 璁惧搴忓垪鍙�
+ * @param completion operation
*/
-+ (void) clearStreamInfoCache;
-
-#pragma mark - V4.8.2 鏂板鍔犳帴鍙�
++ (void)requestGetWatchServerInfo:(NSString *)deviceId
+ completion:(void (^)(id watchServerInfo, NSError *error))completion;
/**
- 鏄惁宸茬粡鐧诲綍
-
- @return YES锛氬凡缁忕櫥褰曪紱NO锛氭湭鐧诲綍
+ * 鍒涘缓浼氳淇℃伅
+ * @param password 鑷畾涔夊瘑鐮�
+ * @param customId 寮�鍙戣�呰嚜瀹氫箟鐢ㄦ埛ID
+ * @param limit 闄愬埗鏈�澶т汉鏁� 鏈�澶�100
+ * @param completion operation
*/
-+ (BOOL) isLogin;
++ (void)requestCallingMeetingInfo:(NSString *)password
+ customId:(NSInteger)customId
+ limit:(NSInteger)limit
+ completion:(void (^)(int32_t roomId, NSString *vtmAddress, NSString *clientid, NSInteger customId, NSString *controlServerAddress, NSError *error))completion;
/**
- 鑾峰彇褰撳墠accessToken
-
- @return accessToken
+ * 鍔犲叆鏂硅幏鍙栦細璁俊鎭�
+ * @param roomId 鎴块棿鍙�
+ * @param customId 寮�鍙戣�呰嚜瀹氫箟鐢ㄦ埛ID
+ * @param completion operation
*/
-+ (NSString *) getAccesstoken;
++ (void)requestCalledMeetingInfo:(NSString *)roomId
+ customId:(NSInteger)customId
+ completion:(void (^)(int32_t roomId, NSString *vtmAddress,NSString *clientid, NSInteger customId, NSString *controlServerAddress, NSError *error))completion;
/**
- 鏍规嵁搴旂敤绫诲瀷鍒ゆ柇鏄惁瀹夎浜嗗搴旂殑搴旂敤
-
- @param appType 搴旂敤绫诲瀷
- @return YES:宸插畨瑁咃紝NO:娌℃湁瀹夎鎴栧畨瑁呯殑钀ょ煶APP鐗堟湰杩囦綆
+ * 閭�璇疯澶囪繘鍏ユ埧闂�
+ * @param roomId 鎴块棿鍙�
+ * @param deviceSerial 璁惧搴忓垪鍙�
+ * @param channelNo 閫氶亾鍙�
+ * @param streamType 涓诲瓙鐮佹祦 1-涓荤爜娴侊紝2-瀛愮爜娴侊紝mode涓�2鏃跺彲涓嶄紶
+ * @param mode 鍔犲叆妯″紡 1-鍙屽悜闊宠棰戞ā寮忥紙榛樿锛夛紝2-瀵硅妯″紡
+ * @param maxActiveSeconds 鍏ヤ細鏈�闀挎椂闂达紙绉掞級
+ * @param completion 鍥炶皟block
+ *
+ * @return operation
*/
-+ (BOOL) isEzvizAppInstalledWithType:(EZAppType) appType;
-
++ (NSURLSessionDataTask *)inviteDeviceEnterMeeting:(NSString *)roomId
+ deviceSerial:(NSString *)deviceSerial
+ channelNo:(NSInteger)channelNo
+ streamType:(NSInteger)streamType
+ mode:(NSInteger)mode
+ maxActiveSeconds:(NSInteger)maxActiveSeconds
+ completion:(void (^)(NSError *error))completion;
/**
- 璺宠浆鍒版寚瀹氳悿鐭矨PP杩涜鎺堟潈鐧诲綍
-
- @param appType 钀ょ煶APP绫诲瀷
- @return 璺宠浆缁撴灉
+ * 寮哄埗璁惧閫�鍑烘埧闂�
+ * @param roomId 鎴块棿鍙�
+ * @param deviceSerial 璁惧搴忓垪鍙�
+ * @param channelNo 閫氶亾鍙�
+ * @param completion 鍥炶皟block
+ *
+ * @return operation
*/
-+ (BOOL) ezvizLoginWithAppType:(EZAppType) appType;
++ (NSURLSessionDataTask *)kickoutDeviceMoveOutRoom:(NSString *)roomId
+ deviceSerial:(NSString *)deviceSerial
+ channelNo:(NSInteger)channelNo
+ completion:(void (^)(NSError *error))completion;
+
+#pragma mark - WiFi閰嶇綉鐩稿叧Api
/**
- 璺宠浆鍒版寚瀹欰PP鐨勬寚瀹氱晫闈�
-
- @param pageType 鐣岄潰绫诲瀷
- @param appType APP绫诲瀷
- @return 璺宠浆缁撴灉
+ * 灏濊瘯鏌ヨ璁惧淇℃伅锛岃澶嘩ifi閰嶇疆鍓嶆煡璇竴娆¤澶囩殑淇℃伅
+ *
+ * @param deviceSerial 璁惧搴忓垪鍙�
+ * @param deviceType 璁惧鍨嬪彿锛屾棤娉曡幏鍙栧埌璁惧鍨嬪彿鍒欏彲浼爊il
+ * @param completion 鍥炶皟block锛屾甯告椂杩斿洖EZProbeDeviceInfo瀵硅薄锛岄敊璇爜杩斿洖閿欒鐮�
+ * @see 鍏ㄦ柊鐨勮澶囨槸娌℃湁娉ㄥ唽鍒板钩鍙扮殑锛屾墍浠ヤ細鍑虹幇璁惧涓嶅瓨鍦ㄧ殑鎯呭喌锛岃澶噖ifi閰嶇疆鎴愬姛浠ュ悗浼氫笂鎶ユ暟鎹埌钀ょ煶浜戝钩鍙帮紝浠ュ悗姣忔鏌ヨ灏变笉浼氬嚭鐜拌澶囦笉瀛樺湪鐨勬儏鍐典簡銆�
+ *
+ * @return operation
*/
-+ (BOOL) gotoEzvizAppPage:(EZAppPageType) pageType appType:(EZAppType) appType;
++ (NSURLSessionDataTask *)probeDeviceInfo:(NSString *)deviceSerial
+ deviceType:(NSString *)deviceType
+ completion:(void (^)(EZProbeDeviceInfo *deviceInfo, NSError *error))completion;
/**
- 澶栭儴璺宠浆澶勭悊鏂规硶锛岄�傜敤浜巌OS9浠ヤ笂锛屽寘鎷琲OS9
-
- @param url 璺宠浆杩囨潵鐨剈rl
- @param opetions 鍙傛暟锛岄粯璁や负绌猴紝鐩墠鏈繘琛屽鐞嗭紝棰勭暀
- @param delegate 濮旀墭
- @return 缁撴灉
+ * WiFi閰嶇疆寮�濮嬫帴鍙�
+ *
+ * @param ssid 杩炴帴WiFi SSID
+ * @param password 杩炴帴WiFi 瀵嗙爜
+ * @param deviceSerial 杩炴帴WiFi鐨勮澶囩殑璁惧搴忓垪鍙�
+ * @param statusBlock 杩斿洖杩炴帴璁惧鐨刉iFi閰嶇疆鐘舵��
+ *
+ * @return YES/NO
*/
-+ (BOOL) handleOpenUrl:(NSURL *) url options:(NSDictionary *) opetions delegate:(id<EZOpenSDKDelegate>) delegate;
++ (BOOL)startConfigWifi:(NSString *)ssid
+ password:(NSString *)password
+ deviceSerial:(NSString *)deviceSerial
+ deviceStatus:(void (^)(EZWifiConfigStatus status))statusBlock;
/**
- 澶栭儴璺宠浆澶勭悊鏂规硶锛岄�傜敤浜巌OS8浠ヤ笅,鍖呮嫭iOS8
-
- @param url 璺宠浆杩囨潵鐨剈rl
- @param delegate 濮旀墭
- @return 缁撴灉
- */
-+ (BOOL) handleOpenUrl:(NSURL *) url delegate:(id<EZOpenSDKDelegate>) delegate;
-
-/**
- 澶栭儴璺宠浆澶勭悊鏂规硶锛岄�傜敤浜巌OS8浠ヤ笅,鍖呮嫭iOS8
-
- @param url 璺宠浆杩囨潵鐨剈rl
- @param sourceApplication 婧怉PP
- @param annotation 娉ㄩ噴
- @param delegate 濮旀墭
- @return 缁撴灉
- */
-+ (BOOL) handleOpenUrl:(NSURL *) url
- sourceApplication:(NSString *) sourceApplication
- annotation:(id) annotation
- delegate:(id<EZOpenSDKDelegate>) delegate;
-
-#pragma mark - V4.8.3 鏂板鍔犳帴鍙�
-
-/**
- * @since 4.8.3
* WiFi閰嶇疆寮�濮嬫帴鍙�
*
* @param ssid 杩炴帴WiFi SSID
@@ -736,94 +791,156 @@
*
* @return YES/NO
*/
-+ (BOOL)startConfigWifi:(NSString *) ssid
- password:(NSString *) password
- deviceSerial:(NSString *) deviceSerial
- mode:(NSInteger) mode
- deviceStatus:(void (^)(EZWifiConfigStatus status,NSString *deviceSerial))statusBlock;
-
-#pragma mark - V4.8.4
++ (BOOL)startConfigWifi:(NSString *)ssid
+ password:(NSString *)password
+ deviceSerial:(NSString *)deviceSerial
+ mode:(NSInteger)mode
+ deviceStatus:(void (^)(EZWifiConfigStatus status, NSString *deviceSerial))statusBlock;
+
/**
- AP閰嶇綉鎺ュ彛
-
- @param ssid WiFi鐨剆sid
- @param password WiFi鐨勫瘑鐮�
- @param deviceSerial 璁惧搴忓垪鍙�
- @param verifyCode 璁惧楠岃瘉鐮�
- @param callback 缁撴灉鍥炶皟
- @return 鎴愬姛鎴栧け璐�
+ * WiFi閰嶇疆寮�濮嬫帴鍙�
+ *
+ * @param ssid 杩炴帴WiFi SSID
+ * @param password 杩炴帴WiFi 瀵嗙爜
+ * @param deviceSerial 杩炴帴WiFi鐨勮澶囩殑璁惧搴忓垪鍙�,鎵归噺閰嶇疆鏃跺~nil
+ * @param mode 閰嶇綉鐨勬柟寮忥紝EZWiFiConfigMode涓垪涓剧殑妯″紡杩涜浠绘剰缁勫悎,渚嬪:EZWiFiConfigSmart|EZWiFiConfigWave
+ * @param apiUrl 鎸囧畾鍘诲摢涓钩鍙版煡璇�
+ * @param statusBlock 杩斿洖璁惧搴忓垪鍙蜂互鍙婂綋鍓嶈繛鎺ョ姸鎬�
+ *
+ * @return YES/NO
*/
-+ (BOOL)startAPConfigWifiWithSsid:(NSString *) ssid
- password:(NSString *) password
- deviceSerial:(NSString *) deviceSerial
- verifyCode:(NSString *) verifyCode
- result:(void (^)(BOOL ret)) callback;
-
++ (BOOL)startConfigWifi:(NSString *)ssid
+ password:(NSString *)password
+ deviceSerial:(NSString *)deviceSerial
+ mode:(NSInteger)mode
+ apiUrl:(NSString *)apiUrl
+ deviceStatus:(void (^)(EZWifiConfigStatus status,NSString *deviceSerial))statusBlock;
+
/**
- 鍋滄AP閰嶇綉
+ * @since 3.0.0
+ * Wifi閰嶇疆鍋滄鎺ュ彛
+ *
+ * @return YES/NO
+ */
++ (BOOL)stopConfigWifi;
+
+#pragma mark - AP閰嶇綉鐩稿叧Api
+
+/**
+ * AP閰嶇綉鎺ュ彛
+ *
+ * @param ssid WiFi鐨剆sid
+ * @param password WiFi鐨勫瘑鐮�
+ * @param deviceSerial 璁惧搴忓垪鍙�
+ * @param verifyCode 璁惧楠岃瘉鐮�
+ * @param callback 缁撴灉鍥炶皟锛屾敞鎰忥細杩斿洖YES浠呬粎浠h〃鎴愬姛灏哤iFi淇℃伅鍙戦�佺粰璁惧锛屼笉浠h〃璁惧閰嶇綉鎴愬姛
+ * @return 鎴愬姛鎴栧け璐�
+ */
++ (BOOL)startAPConfigWifiWithSsid:(NSString *)ssid
+ password:(NSString *)password
+ deviceSerial:(NSString *)deviceSerial
+ verifyCode:(NSString *)verifyCode
+ result:(void (^)(BOOL ret))callback;
+
+/**
+ * AP閰嶇綉鎺ュ彛锛堟帹鑽愶紝v5.0鏂板锛屽皝瑁呬簡璁惧鐘舵�佽疆璇㈡楠わ級
+ *
+ * @param ssid WiFi鐨剆sid
+ * @param password WiFi鐨勫瘑鐮�
+ * @param deviceSerial 璁惧搴忓垪鍙�
+ * @param verifyCode 璁惧楠岃瘉鐮�
+ * @param statusBlock 缁撴灉鍥炶皟锛岃繑鍥為厤缃戣繃绋嬩腑鐨勫悇绉嶇姸鎬�
+ *
+ * @return 鎴愬姛鎴栧け璐�
+ */
++ (BOOL)startAPConfigWifiWithSsid:(NSString *)ssid
+ password:(NSString *)password
+ deviceSerial:(NSString *)deviceSerial
+ verifyCode:(NSString *)verifyCode
+ deviceStatus:(void (^)(EZWifiConfigStatus status, NSString *deviceSerial))statusBlock;
+
+/**
+ * 鍋滄AP閰嶇綉
*/
+ (void)stopAPConfigWifi;
-
-#pragma mark - v4.10
-
-/// 鑾峰彇鎵嬭〃鏈嶅姟鐩稿叧淇℃伅
-/// @param deviceId 璁惧搴忓垪鍙�
-/// @param completion operation
-+ (void)requestGetWatchServerInfo:(NSString *)deviceId
- completion:(void (^)(id watchServerInfo, NSError *error))completion;
-
-
-/// 鏄惁鏀寔鍥芥爣
-/// @param enable YES or NO
-+ (void)enableNationalStandard:(BOOL)enable;
-
-
-#pragma mark - v4.11
+#pragma mark - 鎺ヨЕ寮忛厤缃� New AP Config
/**
-* @since 4.11.0
-* 璁剧疆debug鏃ュ織鍥炶皟,闇�鍦ㄥ垵濮嬪寲sdk涔嬪墠璋冪敤
-*
-* @param logCallback 鏃ュ織鍥炶皟
-*/
-+ (void)setDebugLogCallBack:(void(^)(NSString *logStr))logCallback;
-
-
-#pragma mark - v4.13
-/**
- * 鑾峰彇鎸囧畾鏃堕棿鍐呯殑鎵�鏈夊綍鍍忔枃浠�
+ * 鑾峰彇鎺ヨЕ寮廇P閰嶇綉token
*
- * @param deviceSerial 璁惧搴忓垪鍙�
- * @param cameraNo 閫氶亾鍙凤紝浼犲叆<=0鐨勫�煎垯涓洪粯璁ゅ��
- * @param beginTime 寮�濮嬫椂闂达紝浼犲叆nil鍒欎负褰撳ぉ00:00:00
- * @param endTime 缁撴潫鏃堕棿锛屼紶鍏il鍒欎负褰撳ぉ23:59:59
- * @param rectype 鍥炴斁婧愶紝0-绯荤粺鑷姩閫夋嫨锛�1-浜戝瓨鍌紝2-鏈湴褰曞儚銆傞潪蹇呴�夛紝榛樿涓�0锛屼紶鍏ヨ礋鍊煎垯涓洪粯璁ゅ��
- * @param bizType 璁惧褰掑睘涓氬姟鏉ユ簮
- * @param platFormId 骞冲彴ID
- * @param completion 鍥炶皟block records:EzvizRecordFileInfo鐨勬暟缁�
+ * @param completion 鍥炶皟
+ *
+ * @return operation
+ */
++ (NSURLSessionDataTask *)getNewApConfigToken:(void(^)(EZConfigTokenInfo *tokenInfo, NSError *error))completion;
+
+/**
+ * 寮�濮婲ewAP閰嶇綉锛堥渶杩炴帴璁惧鐑偣锛�
+ * @param token 閰嶇綉token
+ * @param ssid WiFi ssid
+ * @param password WiFi 瀵嗙爜
+ * @param lbsDomain lbs 鍩熷悕
+ * @param handler 鍥炶皟
+ *
+ * @return 鎴愬姛鎴栧け璐�
+ */
++ (BOOL)startNewApConfigWithToken:(NSString *)token
+ ssid:(NSString *)ssid
+ password:(NSString *)password
+ lbsDomain:(NSString *)lbsDomain
+ completionHandler:(void(^)(EZNewAPConfigStatus status, NSError *error))handler;
+
+/**
+ * 鑾峰彇璁惧鐘舵�侊紙闇�杩炴帴璁惧鐑偣锛�
+ *
+ * @param handler 鍥炶皟
+ */
++ (void)getAccessDeviceInfo:(void(^)(EZAPDevInfo *devInfo, NSError *error))handler;
+
+/**
+ * 鑾峰彇璁惧褰撳墠鍛ㄨ竟WiFi鍒楄〃锛屼笂闄�20涓紙闇�杩炴帴璁惧鐑偣锛�
+ *
+ * @param handler 鍥炶皟
+ */
++ (void)getAccessDeviceWifiList:(void(^)(NSArray<EZWiFiItemInfo*> *wifiList, NSError *error))handler;
+
+/**
+ * 鏌ヨ璁惧缁戝畾鐘舵��
+ * @param deviceSerial 璁惧搴忓垪鍙�
+ * @param completion 鍥炶皟block锛屾甯告椂杩斿洖EZProbeDeviceInfo瀵硅薄锛岄敊璇爜杩斿洖閿欒鐮�
+ *
+ * @return 鎴愬姛鎴栧け璐�
+ */
++ (NSURLSessionDataTask *)queryPlatformBindStatus:(NSString *)deviceSerial
+ completion:(void(^)(EZProbeDeviceInfo *deviceInfo, NSError *error))completion;
+
+/**
+ * 璁剧疆閰嶇綉璁惧缃戝叧鍦板潃 鍙��
+ * @param devRouteDomain 璁惧缃戝叧鍦板潃
+ */
++ (void)setDevRouteDomain:(NSString *)devRouteDomain;
+
+#pragma mark - 鐢ㄦ埛鐩稿叧Api
+
+/**
+ * 鑾峰彇鐢ㄦ埛鍩烘湰淇℃伅鐨勬帴鍙�
+ *
+ * @param completion 鍥炶皟block锛� 姝e父鏃惰繑鍥濫ZUserInfo鐨勫璞★紝閿欒鏃惰繑鍥為敊璇爜
*
* @return operation
*/
-+ (NSURLSessionDataTask *)searchRecordFile:(NSString *) deviceSerial
- cameraNo:(NSString *) cameraNo
- beginTime:(NSDate *) beginTime
- endTime:(NSDate *) endTime
- recType:(NSInteger) rectype
- bizType:(NSString *)bizType
- platFormId:(NSString *)platFormId
- completion:(void (^)(id records, NSError *error))completion;
++ (NSURLSessionDataTask *)getUserInfo:(void (^)(EZUserInfo *userInfo, NSError *error))completion;
-#pragma mark - v4.16 澶氭柟闊宠棰�
-/// 鍒涘缓浼氳淇℃伅
-/// @param password 鑷畾涔夊瘑鐮�
-/// @param completion operation
-+ (void)requestCallingMeetingInfo:(NSString *)password
- completion:(void (^)(int32_t roomId, NSString *vtmAddress, NSError *error))completion;
+#pragma mark - 鍏朵粬Api
-/// 鍔犲叆鏂硅幏鍙栦細璁俊鎭�
-/// @param roomId 鎴块棿鍙�
-/// @param completion operation
-+ (void)requestCalledMeetingInfo:(NSString *)roomId
- completion:(void (^)(int32_t roomId, NSString *vtmAddress, NSError *error))completion;
+/**
+ * 鑾峰彇缁堢锛堟墜鏈虹瓑锛夊敮涓�璇嗗埆鐮�
+ *
+ * @return 缁堢鍞竴璇嗗埆鐮�
+ */
++ (NSString *)getTerminalId;
+
@end
+
+NS_ASSUME_NONNULL_END
diff --git a/EZSDK/EZSDK/SDK/include/EZPlayer.h b/EZSDK/EZSDK/SDK/include/EZPlayer.h
index a1dd6b7..baea2e2 100644
--- a/EZSDK/EZSDK/SDK/include/EZPlayer.h
+++ b/EZSDK/EZSDK/SDK/include/EZPlayer.h
@@ -12,6 +12,8 @@
@class EZCloudRecordFile;
@class EZPlayer;
@class EZPlayerExParamInfo;
+@class EZDevicePtzAngleInfo;
+@class EZPMPlayPrivateTokenInfo;
/**
* 棰勮娓呮櫚搴�
@@ -95,6 +97,34 @@
*/
- (void)player:(EZPlayer *)player didReceivedDisplayHeight:(NSInteger)height displayWidth:(NSInteger)width;
+/**
+ * 璁惧浜戝彴瑙掑害鏁版嵁鍥炶皟
+ *
+ * @param player 鎾斁鍣ㄥ璞�
+ * @param info 绉佹湁鏁版嵁
+ */
+- (void)player:(EZPlayer *)player didReceivedDevicePtzAngleInfo:(EZDevicePtzAngleInfo *)info;
+
+/**
+ * 鎾斁杩囩▼涓� 鍥炶皟瑙g爜鏁版嵁
+ * 閲嶈锛氳鍥炶皟浼氭瘮杈冮绻�(涓�绉掕嫢骞叉)锛屽悓鏃剁洿鎺ョ敱鎾斁搴撶嚎绋嬪洖璋冧笂鏉ワ紝璇峰嬁鍦ㄦ柟娉曚腑鍋氳�楁椂鎿嶄綔
+ * 閲嶈锛氬洖璋冪殑鏁版嵁鐨勫唴瀛樻槸鐢辨挱鏀惧簱鍐呴儴鍒嗛厤骞剁鐞嗙殑锛屽湪浣跨敤鏃讹紝璇峰悓姝ュ鐞嗗洖璋冪殑data锛涘闇�寮傛澶勭悊锛岃鎷疯礉璇ユ暟鎹�
+ *
+ * @param player 鎾斁鍣ㄥ璞�
+ * @param data 鎾斁搴撹В鐮佸嚭鐨勬暟鎹�
+ * @param width 瑙嗛瀹藉害
+ * @param height 瑙嗛楂樺害
+ */
+- (void)player:(EZPlayer *)player didDecodedData:(NSData *)data width:(NSInteger)width height:(NSInteger)height;
+
+/**
+ * 鍙栨祦鏁版嵁涓幏鍙栧紑闂╰oken鍥炶皟
+ *
+ * @param player 鎾斁鍣ㄥ璞�
+ * @param tokenInfo token瀵硅薄
+ */
+- (void)player:(EZPlayer *)player playPrivateTokenInfo:(EZPMPlayPrivateTokenInfo *)tokenInfo;
+
@end
/// 姝ょ被涓鸿悿鐭虫挱鏀惧櫒绫�
@@ -104,7 +134,7 @@
@property (nonatomic, weak) id<EZPlayerDelegate> delegate;
/// 鏄惁璁╂挱鏀惧櫒澶勭悊杩涘叆鍚庡彴,YES:鑷姩澶勭悊;NO:涓嶅鐞�,榛樿涓篩ES
-@property (nonatomic) BOOL backgroundModeByPlayer;
+@property (nonatomic, assign) BOOL backgroundModeByPlayer;
/**
* 鏍规嵁璁惧搴忓垪鍙峰拰閫氶亾鍙峰垱寤篍ZPlayer瀵硅薄
@@ -135,7 +165,19 @@
@param streamType 鐮佹祦绫诲瀷 1:涓荤爜娴� 2:瀛愮爜娴�
@return EZPlayer瀵硅薄
*/
-+ (instancetype)createPlayerWithUserId:(NSInteger) userId cameraNo:(NSInteger) cameraNo streamType:(NSInteger) streamType;
++ (instancetype)createPlayerWithUserId:(NSInteger)userId cameraNo:(NSInteger)cameraNo streamType:(NSInteger)streamType;
+
+/**
+ * @since 4.19.2
+ * 涓�涓〉闈㈠瓨鍦ㄥ涓棰戜娇鐢ㄦ渶灏忕殑鐮佹祦锛屾病鏈夊瓙鐮佹祦鐨勮瘽杩樻槸浣跨敤涓荤爜娴�
+ *
+ * @param deviceSerial 璁惧搴忓垪鍙�
+ * @param cameraNo 铏氭嫙閫氶亾
+ * @param useSubStream 鏄惁浣跨敤瀛愮爜娴�
+ *
+ * @return EZPlayer瀵硅薄
+ */
++ (instancetype)createPlayerWithDeviceSerial:(NSString *)deviceSerial cameraNo:(NSInteger)cameraNo useSubStream:(BOOL)useSubStream;
/**
* 閿�姣丒ZPlayer
@@ -149,21 +191,21 @@
*
* @param HDPriority 鏄惁纭В浼樺厛
*/
--(void)setHDPriority:(BOOL)HDPriority;
+- (void)setHDPriority:(BOOL)HDPriority;
/**
鑾峰彇褰撳墠鐨勮蒋纭В鎯呭喌锛屽湪鐮佹祦姝e父鎾斁鍚庤皟鐢�
@return 1锛氳蒋瑙� 2锛氱‖瑙� 0锛氬嚭閿�
*/
-- (int) getHDPriorityStatus;
+- (int)getHDPriorityStatus;
/**
* 璁剧疆璁惧褰掑睘涓氬姟鏉ユ簮锛岄渶瑕佸湪棰勮鍥炴斁鍓嶈皟鐢� 鍥芥爣璁惧浣跨敤
*
* @param bizType 绫诲瀷 鍥芥爣涓� bizType='GB28181'
*/
--(void)setBizType:(NSString *)bizType;
+- (void)setBizType:(NSString *)bizType;
/**
* 骞冲彴id 鍥芥爣璁惧浣跨敤
@@ -178,6 +220,13 @@
* @param playerView 鎾斁鍣╲iew
*/
- (void)setPlayerView:(UIView *)playerView;
+
+/**
+ * 鏄惁闈欓煶鎾斁锛宻tartRealPlay涔嬪墠璋冪敤
+ *
+ * @param isSilencePlay 鏄惁闈欓煶鎾斁
+ */
+- (void)setSilencePlay:(BOOL)isSilencePlay;
/**
* 寮�濮嬫挱鏀撅紝寮傛鎺ュ彛锛岃繑鍥炲�煎彧鏄〃绀烘搷浣滄垚鍔燂紝涓嶄唬琛ㄦ挱鏀炬垚鍔�
@@ -219,7 +268,7 @@
@return 鎾斁搴撶殑port,鍙兘涓�-1锛堟棤鏁堝�硷級
*/
-- (int) getInnerPlayerPort;
+- (int)getInnerPlayerPort;
/**
鑾峰彇褰撳墠宸叉挱鏀剧殑鎬绘祦閲忥紝鍗曚綅瀛楄妭
@@ -231,7 +280,7 @@
@return 娴侀噺鍊�
*/
-- (NSInteger) getStreamFlow;
+- (NSInteger)getStreamFlow;
/**
* 寮�濮婽TS瀵硅锛屽紓姝ユ帴鍙o紝杩斿洖鍊煎彧鏄〃绀烘搷浣滄垚鍔燂紝涓嶄唬琛ㄦ挱鏀炬垚鍔�
@@ -347,14 +396,14 @@
@return 灏忎簬0涓烘棤鏁堝�硷紝澶т簬绛変簬0涓烘湁鏁堝��
*/
-- (int) getPlayPort;
+- (int)getPlayPort;
/**
鑾峰彇褰撳墠鍙栨祦鏂瑰紡锛�
- @return
+ @return 褰撳墠鍙栨祦绫诲瀷
*/
-- (int) getStreamFetchType;
+- (int)getStreamFetchType;
/**
sd鍗″強浜戝瓨鍌ㄥ�嶉�熷洖鏀炬帴鍙�
@@ -371,18 +420,27 @@
@param mode 鍥炴斁鏃剁殑鎶藉抚鎺у埗锛屽綋鍓嶄粎浜戝瓨鍌ㄦ敮鎸併��0锛� 4鍊嶉�熷叏甯э紝8鍊嶉�熶互涓婃娊甯� 1锛氭娊甯� 2锛氬叏甯� 锛堝璁惧鍥炴斁褰撳墠涓嶆敮鎸侊紝浼犲叆0鍗冲彲锛�
@return YES/NO
*/
-- (BOOL) setPlaybackRate:(EZPlaybackRate) rate mode:(NSUInteger)mode;
+- (BOOL)setPlaybackRate:(EZPlaybackRate) rate mode:(NSUInteger)mode;
/**
璁剧疆鍏ㄥ弻宸ュ璁叉椂鐨勬ā寮�,瀵硅鎴愬姛鍚庤皟鐢�
@param routeToSpeaker YES:浣跨敤鎵0鍣� NO:浣跨敤鍚瓛
*/
-- (void) changeTalkingRouteMode:(BOOL) routeToSpeaker;
+- (void)changeTalkingRouteMode:(BOOL)routeToSpeaker;
/// //鎵╁睍鍙傛暟 UIKit涓撶敤
/// @param exParamInfo EZPlayerExParamInfo
-- (void) setExParamInfo:(EZPlayerExParamInfo *) exParamInfo;
+- (void)setExParamInfo:(EZPlayerExParamInfo *)exParamInfo;
+
+/**
+ * 璁剧疆鎵撳紑鎾斁搴撶殑鏅鸿兘鍒嗘瀽锛屽綋鍓嶆俯鎰熺浉鏈虹殑妗嗘浣跨敤浜嗚鏅鸿兘鍒嗘瀽鏁版嵁锛岄瑙堟垚鍔熷悗璋冪敤锛屽湪鎾斁杩囩▼涓殢鏃跺紑鍏�
+ *
+ * @param enable YES锛氬紑 NO锛氬叧
+ *
+ * @return 杩斿洖鐘舵��
+ */
+- (BOOL)setIntelAnalysis:(BOOL)enable;
@end
diff --git a/EZSDK/EZSDK/SDK/include/EZStreamPlayer.h b/EZSDK/EZSDK/SDK/include/EZStreamPlayer.h
index d07d6ba..408ba05 100644
--- a/EZSDK/EZSDK/SDK/include/EZStreamPlayer.h
+++ b/EZSDK/EZSDK/SDK/include/EZStreamPlayer.h
@@ -43,7 +43,7 @@
* 鎾斁鍣ㄦ秷鎭洖璋�
*
* @param player 鎾斁鍣ㄥ璞�
- * @param messageCode 鎾斁鍣ㄦ秷鎭爜
+ * @param msgType 鎾斁鍣ㄦ秷鎭爜
*/
- (void)streamPlayer:(EZStreamPlayer *)player didReceivedMessage:(EZStreamPlayerMsgType)msgType;
@@ -51,7 +51,9 @@
* 鐮佹祦鍥炶皟
*
* @param player 鎾斁鍣ㄥ璞�
- * @param dataq 鐮佹祦鏁版嵁
+ * @param dataType 鏁版嵁绫诲瀷
+ * @param data 鐮佹祦鏁版嵁
+ * @param dataLength 闀垮害
*/
- (void)streamPlayer:(EZStreamPlayer *)player didReceivedData:(EZStreamDataType)dataType data:(int8_t *)data length:(int)dataLength;
@@ -109,7 +111,7 @@
/// 璁剧疆璁惧楠岃瘉鐮侊紝鎾斁鍓嶈缃�
/// @param verifyCode 璁惧楠岃瘉鐮�
-- (void) setVerifyCode:(NSString *)verifyCode;
+- (void)setVerifyCode:(NSString *)verifyCode;
@end
diff --git a/EZSDK/EZSDK/SDK/include/modules/EZAPDevInfo.h b/EZSDK/EZSDK/SDK/include/modules/EZAPDevInfo.h
new file mode 100644
index 0000000..d1b5e38
--- /dev/null
+++ b/EZSDK/EZSDK/SDK/include/modules/EZAPDevInfo.h
@@ -0,0 +1,23 @@
+//
+// EZAPDevInfo.h
+// EZWiFiConfigSDK
+//
+// Created by yuqian on 2020/7/28.
+// Copyright 漏 2020 com.ezviz. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface EZAPDevInfo : NSObject
+
+@property (nonatomic, copy) NSString *apVersion;//鐗堟湰锛屽綋鍓峚p鐗堟湰1.0
+@property (nonatomic, copy) NSString *devSubserial;//璁惧搴忓垪鍙凤紝鏈�澶�64
+@property (nonatomic, copy) NSString *devType;//璁惧鍨嬪彿锛屾渶澶�64
+@property (nonatomic, copy) NSString *devFirmwareversion;//璁惧鍥轰欢鐗堟湰鍙凤紝鏈�澶�64
+@property (nonatomic, copy) NSString *macAddr;//璁惧mac鍦板潃
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/EZSDK/EZSDK/SDK/include/modules/EZAlarmInfo.h b/EZSDK/EZSDK/SDK/include/modules/EZAlarmInfo.h
index a8d783a..9e763ef 100644
--- a/EZSDK/EZSDK/SDK/include/modules/EZAlarmInfo.h
+++ b/EZSDK/EZSDK/SDK/include/modules/EZAlarmInfo.h
@@ -26,7 +26,19 @@
/// 鍛婅绫诲瀷
@property (nonatomic) NSInteger alarmType;
/// 鏄惁鍔犲瘑
-@property (nonatomic) BOOL isEncrypt;
+//@property (nonatomic) BOOL isEncrypt;
+
+
+/// 鍛婅鍥剧墖鍔犲瘑淇℃伅 crypt 0-涓嶇‘瀹� 1-璁惧鍔犲瘑 2-骞冲彴鍔犲瘑
+/// 濡傛灉鏄�2锛岃〃鏄庢槸骞冲彴鍔犲瘑鐨勫浘鐗囷紝璇蜂娇鐢ㄤ笅闈㈢殑checksum浣滀负瑙e瘑绉橀挜瑙e瘑鍥剧墖
+/// 濡傛灉鏄�1锛岃〃鏄庢槸璁惧鍔犲瘑鐨勫浘鐗囷紝璇蜂娇鐢ㄨ澶囩殑楠岃瘉鐮佷綔涓鸿В瀵嗙閽ヨВ瀵嗗浘鐗�
+/// 濡傛灉鏄�0锛岃〃鏄庢湭鐭ョ殑鍔犲瘑淇℃伅锛岃閫氳繃涓婇潰鎶ヨ鍥剧墖URL锛坅larmPicUrl锛変腑鐨� isEncrypted 瀛楁锛屽垽鏂浘鐗囨槸 0锛氭湭鍔犲瘑 1锛氳澶囧姞瀵�
+/// 鎶ヨ鍥剧墖鐨刄RL绀轰緥锛�
+/// https://whpic.ys7.com:8009/HIK_1447836214_458BEBDAE4AB6a6f_525400286893421023815?isEncrypted=1&isCloudStored=0
+/// https://www.ys7.com:9090/api/cloud?method=download&fid=5ed92258-8e0f-11e5-8000-c19249a52dcf&deviceSerialNo=504242549&isEncrypted=0&isCloudStored=1
+@property (nonatomic) NSInteger crypt;
+/// 鍛婅鍥剧墖骞冲彴鍔犲瘑鏃剁殑瀵嗛挜
+@property (nonatomic, copy) NSString *checksum;
/// 鏄惁宸茶
@property (nonatomic) BOOL isRead;
/// 瀛樺偍绫诲瀷锛�0-鏃犲瓨鍌紝1-钀ょ煶锛�2-鐧惧害锛�4-sd鍗″瓨鍌紝5-钀ょ煶鍜宻d鍗★紝6-鐧惧害鍜宻d鍗�
diff --git a/EZSDK/EZSDK/SDK/include/modules/EZCameraInfo.h b/EZSDK/EZSDK/SDK/include/modules/EZCameraInfo.h
index c1e9264..9054b1e 100644
--- a/EZSDK/EZSDK/SDK/include/modules/EZCameraInfo.h
+++ b/EZSDK/EZSDK/SDK/include/modules/EZCameraInfo.h
@@ -25,7 +25,7 @@
@property (nonatomic) NSInteger videoLevel;
//鏉冮檺
@property (nonatomic) NSInteger permission;
-/// 閫氶亾鏀寔鐨勬竻鏅板害淇℃伅鍒楄〃锛孍ZVideoQualityInfo瀵硅薄鍒楄〃
+/// 閫氶亾鏀寔鐨勬竻鏅板害淇℃伅鍒楄〃锛孍ZVideoQualityInfo瀵硅薄鍒楄〃銆�(/api/device/list 杩斿洖鐨�"videoQualityInfos" 鏈夎锛屼互/api/device/detail 鎺ュ彛杩斿洖涓哄噯)
@property (nonatomic, strong) NSArray *videoQualityInfos;
/// 璁惧鏄惁寮�鍚姞瀵�
diff --git a/EZSDK/EZSDK/SDK/include/modules/EZCloudRecordFile.h b/EZSDK/EZSDK/SDK/include/modules/EZCloudRecordFile.h
index 66fcf30..f8c693f 100644
--- a/EZSDK/EZSDK/SDK/include/modules/EZCloudRecordFile.h
+++ b/EZSDK/EZSDK/SDK/include/modules/EZCloudRecordFile.h
@@ -27,6 +27,8 @@
@property (nonatomic, copy) NSString *downloadPath;
/// 浜戝瓨鍌ㄥ浘鐗囧姞瀵嗗瘑鐮侊紝濡傛灉鏄痆NSNull null]鎴栬�卬il鎸囬拡鍒欏浘鐗囦笉鍔犲瘑
@property (nonatomic, copy) NSString *encryption;
+/// 鏂囦欢澶у皬
+@property (nonatomic, assign) NSUInteger fileSize;
@property (nonatomic, assign) int32_t istorageVersion; //浜戝瓨鍌ㄧ被鍒�:1 鍗曟枃浠跺瓨鍌ㄦā寮忥紱2 杩炵画瀛樺偍妯″紡锛�3 寰呭畾
@property (nonatomic, assign) int32_t videoType;//浜戝瓨鍌ㄥ綍鍍忕被鍨嬶紝榛樿涓�0锛岃〃绀轰笉灞炰簬浜戝瓨鍌ㄥ綍鍍�
diff --git a/EZSDK/EZSDK/SDK/include/modules/EZConfigTokenInfo.h b/EZSDK/EZSDK/SDK/include/modules/EZConfigTokenInfo.h
new file mode 100644
index 0000000..9b9a949
--- /dev/null
+++ b/EZSDK/EZSDK/SDK/include/modules/EZConfigTokenInfo.h
@@ -0,0 +1,21 @@
+//
+// EZConfigTokenInfo.h
+// EZWiFiConfigSDK
+//
+// Created by yuqian on 2020/7/30.
+// Copyright 漏 2020 com.ezviz. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface EZConfigTokenInfo : NSObject
+
+@property (nonatomic, copy) NSString *userId;
+@property (nonatomic, copy) NSString *token;
+@property (nonatomic, copy) NSString *lbsDomain;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/EZSDK/EZSDK/SDK/include/modules/EZDeviceCloudServiceInfo.h b/EZSDK/EZSDK/SDK/include/modules/EZDeviceCloudServiceInfo.h
new file mode 100644
index 0000000..fffd93e
--- /dev/null
+++ b/EZSDK/EZSDK/SDK/include/modules/EZDeviceCloudServiceInfo.h
@@ -0,0 +1,65 @@
+//
+// EZDeviceCloudServiceInfo.h
+// EzvizOpenSDK
+//
+// Created by JuneCheng on 2022/1/4.
+// Copyright 漏 2022 Hikvision. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+@class EZCloudServicePackageInfo;
+
+NS_ASSUME_NONNULL_BEGIN
+
+/// 浜戝瓨鍌ㄨ澶囬�氶亾濂楅淇℃伅
+@interface EZDeviceCloudServiceInfo : NSObject
+
+@property (nonatomic, copy) NSString *ownerId;///< 璁惧鎵�灞炵敤鎴风敤鎴峰悕
+@property (nonatomic, copy) NSString *serial;///< 璁惧搴忓垪鍙�
+@property (nonatomic, assign) NSInteger channelNo;///< 閫氶亾鍙�
+@property (nonatomic, copy) NSString *devicePicUrl;///< 璁惧鍥剧墖url
+@property (nonatomic, assign) NSInteger storageTime;///< 瀛樺偍鏃堕暱
+@property (nonatomic, assign) NSInteger storageTimeUnit;///< 瀛樺偍鏃堕暱鍗曚綅锛�1-澶╋紝2-鍛紝3-鏈堬紝4-骞�
+@property (nonatomic, copy) NSString *expireTime;///< 浜戝瓨鍌ㄦ湇鍔¤繃鏈熸椂闂�
+@property (nonatomic, copy) NSString *expireDate;///< 鍒版湡鏃堕棿锛� yyyy骞碝M鏈坉d鏃� 鏍煎紡
+@property (nonatomic, copy) NSString *devModel;///< 璁惧鍨嬪彿
+@property (nonatomic, copy) NSString *devName;///< 璁惧鍚嶇О
+@property (nonatomic, assign) NSInteger onlineStatus;///< 璁惧鍦ㄧ嚎鐘舵��
+@property (nonatomic, assign) NSInteger status;///< 浜戝瓨鍌ㄧ姸鎬� -2涓嶆敮鎸� -1鏈紑鍚� 0鏆傚仠 1寮�鍚� 2杩囨湡 4鎸囧畾鐢熸晥浜戝瓨鍌ㄥ緟鐢熸晥鐘舵��
+@property (nonatomic, assign) NSInteger expireDay;///< 褰撳墠璺濈杩囨湡鐨勬湁鏁堝ぉ鏁�
+@property (nonatomic, assign) NSInteger validDay;///< 鏈嶅姟鍙娇鐢ㄧ殑澶╂暟
+@property (nonatomic, copy) NSString *createTime;///< 鍒涘缓鏃堕棿
+@property (nonatomic, assign) BOOL designateDevice;///< 鏄惁鏄寚瀹氳澶�
+@property (nonatomic, assign) BOOL subscribe;///< 鏄惁鐢卞綋鍓嶈闃呭紑閫�
+@property (nonatomic, assign) BOOL supportSubscribe;///< 鏄惁鏀寔璁㈤槄浜戝瓨鍌�
+@property (nonatomic, assign) BOOL supportCard;///< 鏄惁鏀寔鐐瑰崱
+@property (nonatomic, assign) NSInteger openTryCloudShield;///< 鏄惁灞忚斀浜戝瓨鍌ㄨ瘯鐢� 1涓哄睆钄斤紝鍏朵粬涓烘湭灞忚斀
+@property (nonatomic, strong) NSArray<EZCloudServicePackageInfo *> *serviceList;///<
+
+@end
+
+
+@interface EZCloudServicePackageInfo : NSObject
+
+@property (nonatomic, assign) long serviceId;///<
+@property (nonatomic, assign) NSInteger productPayType;///< 浜у搧浠樿垂绫诲瀷锛�1浠樿垂 2 璇曠敤 3鍏嶈垂
+@property (nonatomic, assign) NSInteger storageTimeUnit;///< 瀛樺偍鏃堕暱鍗曚綅锛�1-澶� 2-鍛� 3-鏈� 4-骞� 5-灏忔椂
+@property (nonatomic, copy) NSString *expireTime;///< 杩囨湡鏃堕棿
+@property (nonatomic, assign) NSInteger forceBinding;///< 寮哄埗缁戝畾鐘舵�� 1-寮哄埗缁戝畾 2-鍙浆绉�
+@property (nonatomic, assign) NSInteger effectImmediately;///< 鏈嶅姟鏄惁绔嬪嵆鐢熸晥 1-绔嬪嵆鐢熸晥 2-寤惰繜鐢熸晥 3-鎸囧畾鏃ユ湡鐢熸晥
+@property (nonatomic, assign) NSInteger canFamilyDeviceNum;///< 鍙姞鍏ュ椁愯澶囨暟
+@property (nonatomic, assign) long familyServiceId;///< 瀹跺涵濂楅鏈嶅姟ID
+@property (nonatomic, assign) NSInteger serviceTime;///< 浜戝瓨鍌ㄤ娇鐢ㄦ椂闀�
+@property (nonatomic, assign) NSInteger addFamilyDeviceNum;///< 宸插姞鍏ュ椁愯澶囨暟
+@property (nonatomic, assign) NSInteger productCode;///< 浜у搧缂栧彿
+@property (nonatomic, assign) NSInteger buyNum;///< 璐拱鏁伴噺
+@property (nonatomic, copy) NSString *businessOrderNo;///< 璁㈠崟鍙凤細褰撳墠寮�閫氭湇鍔′笌璁㈠崟鍏宠仈
+@property (nonatomic, assign) NSInteger serviceTimeUnit;///< 浜戝瓨鍌ㄤ娇鐢ㄦ椂闀垮崟浣嶏細1-澶� 2-鍛� 3-鏈� 4-骞�
+@property (nonatomic, assign) NSInteger storageTime;///< 瀛樺偍鏃堕暱
+@property (nonatomic, assign) NSInteger serviceType;///< 濂楅绫诲瀷锛�2銆佸搴椁愶紝 1 or null涓烘櫘閫氬椁�
+@property (nonatomic, copy) NSString *effectTime;///< 鐢熸晥鏃堕棿
+@property (nonatomic, assign) NSInteger status;///< 鐘舵�侊細1 寰呬娇鐢� 2浣跨敤涓� 3宸蹭娇鐢�
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/EZSDK/EZSDK/SDK/include/modules/EZDeviceInfo.h b/EZSDK/EZSDK/SDK/include/modules/EZDeviceInfo.h
index 60a8460..da60bb4 100644
--- a/EZSDK/EZSDK/SDK/include/modules/EZDeviceInfo.h
+++ b/EZSDK/EZSDK/SDK/include/modules/EZDeviceInfo.h
@@ -31,11 +31,13 @@
@property (nonatomic, copy) NSString *deviceType;
/// 璁惧鐗堟湰鍙�
@property (nonatomic, copy) NSString *deviceVersion;
+/// 璁惧鍗忚鐗堟湰鍙风被鍨� 0:闈炲浗鏍� 6:鍥芥爣
+@property (nonatomic) NSInteger devProtoEnum;
/// 璁惧鏄惁寮�鍚姞瀵�
@property (nonatomic) BOOL isEncrypt;
/// 璁惧鐘舵�侊紝1-鍦ㄧ嚎锛�2-涓嶅湪绾�
@property (nonatomic) NSInteger status;
-/// 鏄惁鏀寔瀵硅 0-涓嶆敮鎸佸璁诧紝1-鏀寔鍏ㄥ弻宸ュ璁诧紝3-鏀寔鍗婂弻宸ュ璁�
+/// 鏄惁鏀寔瀵硅 0-涓嶆敮鎸佸璁诧紝1-鏀寔鍏ㄥ弻宸ュ璁诧紝3-鏀寔鍗婂弻宸ュ璁诧紝4-鍚屾椂鏀寔鍏ㄥ弻宸ュ拰鍗婂弻宸�
@property (nonatomic) NSInteger isSupportTalk;
/// 鏄惁鏀寔浜戝彴鎺у埗
@property (nonatomic) BOOL isSupportPTZ;
@@ -47,6 +49,8 @@
@property (nonatomic) BOOL isSupportMirrorCenter;
/// 鏄惁鏀寔澹版尝閰嶇綉
@property (nonatomic) BOOL isSupportSoundWave;
+/// 鏄惁鏀寔鍊嶆暟鍥炴斁
+@property (nonatomic) BOOL isSupportPlaybackRate;
/// 璁惧澶х被
@property (nonatomic,copy) NSString *category;
/// 娣诲姞鏃堕棿
diff --git a/EZSDK/EZSDK/SDK/include/modules/EZDevicePtzAngleInfo.h b/EZSDK/EZSDK/SDK/include/modules/EZDevicePtzAngleInfo.h
new file mode 100644
index 0000000..4437921
--- /dev/null
+++ b/EZSDK/EZSDK/SDK/include/modules/EZDevicePtzAngleInfo.h
@@ -0,0 +1,47 @@
+//
+// EZDevicePtzAngleInfo.h
+// EzvizOpenSDK
+//
+// Created by JuneCheng on 2022/4/27.
+// Copyright 漏 2022 Hikvision. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface EZDevicePtzAngleInfo : NSObject
+
+/** 姘村钩鏂瑰悜璧风偣瑙掑害 */
+@property (readonly) NSInteger horizontalStartAngle;
+
+/** 姘村钩鏂瑰悜缁堢偣瑙掑害 */
+@property (readonly) NSInteger horizontalEndAngle;
+
+/** 姘村钩鏂瑰悜褰撳墠瑙掑害 */
+@property (readonly) NSInteger horizontalCurrentAngle;
+
+/** 鍨傜洿鏂瑰悜璧风偣瑙掑害 */
+@property (readonly) NSInteger verticalStartAngle;
+
+/** 鍨傜洿鏂瑰悜缁堢偣瑙掑害 */
+@property (readonly) NSInteger verticalEndAngle;
+
+/** 鍨傜洿鏂瑰悜褰撳墠瑙掑害 */
+@property (readonly) NSInteger verticalCurrentAngle;
+
+/** 鏂瑰悜 */
+@property (readonly) NSInteger orientation;
+
+/** 鐗堟湰鍙� */
+@property (readonly) NSInteger ptzCfgVersion;
+
+/** 鍒濆鍖� */
+- (instancetype)initWithType:(NSInteger)type data:(NSData *)data;
+
+- (float)horCurAngPercent;
+- (float)verCurAngPercent;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/EZSDK/EZSDK/SDK/include/modules/EZDeviceRecordFile.h b/EZSDK/EZSDK/SDK/include/modules/EZDeviceRecordFile.h
index 5e0eca5..b7a2867 100644
--- a/EZSDK/EZSDK/SDK/include/modules/EZDeviceRecordFile.h
+++ b/EZSDK/EZSDK/SDK/include/modules/EZDeviceRecordFile.h
@@ -15,9 +15,12 @@
@property (nonatomic, strong) NSDate *startTime;
/// 璁惧褰曞儚鏂囦欢鐨勭粨鏉熸椂闂�
@property (nonatomic, strong) NSDate *stopTime;
-
+/// 鏂囦欢绫诲瀷 -2:UNKNOW -1:ALLEVENT 0:ALARM 1:TIMING 2:IO 3:CMR 4:event 5:all
@property (nonatomic, assign) int type;
@property (nonatomic, copy) NSString *channelType;
+@property (nonatomic, assign) int seq;
+@property (nonatomic, strong) NSData *imageData;///<
+
@end
diff --git a/EZSDK/EZSDK/SDK/include/modules/EZMediaSessionVideoParam.h b/EZSDK/EZSDK/SDK/include/modules/EZMediaSessionVideoParam.h
deleted file mode 100644
index 317a8a0..0000000
--- a/EZSDK/EZSDK/SDK/include/modules/EZMediaSessionVideoParam.h
+++ /dev/null
@@ -1,18 +0,0 @@
-//
-// EZMediaSessionVideoParam.h
-// EZBAVClient
-//
-// Created by kanhaiping on 2018/7/13.
-// Copyright 漏 2018骞� hikvision. All rights reserved.
-//
-
-#import <Foundation/Foundation.h>
-
-@interface EZMediaSessionVideoParam : NSObject
-@property (nonatomic, strong, readonly) NSString *resolutionPreset;
-@property (nonatomic, assign) NSInteger pixelWidth;
-@property (nonatomic, assign) NSInteger pixelHeigth;
-@property (nonatomic, assign) NSInteger videoOrientation;//浼犲叆 AVCaptureVideoOrientation锛岄粯璁ょ珫灞�
-@property (nonatomic, assign) NSInteger encodeKeyFrameInterval;//I甯ч棿闅旓紝鍗曚綅绉�
-//@property (nonatomic, assign) BOOL isCrop;
-@end
diff --git a/EZSDK/EZSDK/SDK/include/modules/EZPMPlayPrivateTokenInfo.h b/EZSDK/EZSDK/SDK/include/modules/EZPMPlayPrivateTokenInfo.h
new file mode 100644
index 0000000..7d69b75
--- /dev/null
+++ b/EZSDK/EZSDK/SDK/include/modules/EZPMPlayPrivateTokenInfo.h
@@ -0,0 +1,22 @@
+//
+// EZPMPlayPrivateTokenInfo.h
+// EZPlay
+//
+// Created by JuneCheng on 2022/11/24.
+//
+
+#import <Foundation/Foundation.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface EZPMPlayPrivateTokenInfo : NSObject
+
+@property (nonatomic, assign) BOOL enable;///<
+@property (nonatomic, copy) NSString *token;///<
+
+
+- (instancetype)initWithType:(NSInteger)type data:(NSData *)data;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/EZSDK/EZSDK/SDK/include/modules/EZProbeDeviceInfo.h b/EZSDK/EZSDK/SDK/include/modules/EZProbeDeviceInfo.h
index 7ebe5c3..18e7369 100644
--- a/EZSDK/EZSDK/SDK/include/modules/EZProbeDeviceInfo.h
+++ b/EZSDK/EZSDK/SDK/include/modules/EZProbeDeviceInfo.h
@@ -1,6 +1,6 @@
//
// EZProbeDeviceInfo.h
-// EzvizOpenSDK
+// EZWiFiConfigSDK
//
// Created by DeJohn Dong on 15/12/11.
// Copyright 漏 2015骞� Ezviz. All rights reserved.
diff --git a/EZSDK/EZSDK/SDK/include/modules/EZRecordCoverFetcherManager.h b/EZSDK/EZSDK/SDK/include/modules/EZRecordCoverFetcherManager.h
new file mode 100644
index 0000000..8c9e365
--- /dev/null
+++ b/EZSDK/EZSDK/SDK/include/modules/EZRecordCoverFetcherManager.h
@@ -0,0 +1,69 @@
+//
+// EZRecordCoverFetcherManager.h
+// EZPlay
+//
+// Created by JuneCheng on 2022/12/19.
+//
+
+#import <Foundation/Foundation.h>
+@class EZDeviceRecordFile;
+
+// Fetcher鍒濆鍖栦唬鐞�
+@protocol RecordCoverFetcherDelegate<NSObject>
+
+@optional
+/**
+ * SD鍗″綍鍍忓皝闈㈡彁鍙栧櫒鍒濆鍖栨垚鍔熷洖璋�
+ */
+- (void)onFetcherInitSuccess;
+
+/**
+ * SD鍗″綍鍍忓皝闈㈡彁鍙栧櫒鍒濆鍖栧け璐ュ洖璋�
+ */
+- (void)onFetcherInitFailed;
+
+/**
+ * SD鍗″綍鍍忓皝闈㈡彁鍙栧皝闈㈡垚鍔熷洖璋�
+ */
+- (void)onGetCoverSuccess:(int)seq data:(NSData *_Nonnull)data;
+
+/**
+ * SD鍗″綍鍍忓皝闈㈡彁鍙栧皝闈㈠け璐ュ洖璋�
+ */
+- (void)onGetCoverFailed:(int)errorCode;
+
+@end
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface EZRecordCoverFetcherManager : NSObject
+
+
+@property (nonatomic, weak) id <RecordCoverFetcherDelegate> fetcherDelegate;
+
++ (instancetype)sharedInstance;
+
+/**
+ * 涓庤澶囧缓绔嬮摼鎺�
+ *
+ * @param deviceSerial 璁惧搴忓垪鍙�
+ * @param cameraNo 璁惧閫氶亾鍙�
+ */
+- (void)initFetcherWithDeviceSerial:(NSString *)deviceSerial cameraNo:(NSInteger)cameraNo;
+
+
+/**
+ * 鏂紑涓庤澶囩殑閾炬帴
+ */
+- (void)stopFetcher;
+
+
+/**
+ * 璺熻澶囪姹係D鍗″綍鍍忓皝闈�
+ */
+- (void)requestRecordCover:(NSArray<EZDeviceRecordFile *> *)recordFiles;
+
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/EZSDK/EZSDK/SDK/include/modules/EZRecordDownloadTask.h b/EZSDK/EZSDK/SDK/include/modules/EZRecordDownloadTask.h
index b38f72d..ba50a2a 100644
--- a/EZSDK/EZSDK/SDK/include/modules/EZRecordDownloadTask.h
+++ b/EZSDK/EZSDK/SDK/include/modules/EZRecordDownloadTask.h
@@ -36,7 +36,7 @@
/**
鏈湴瀛樻斁璺緞
*/
-@property (nonatomic,strong) NSString *saveFilePath;
+@property (nonatomic, strong) NSString *saveFilePath;
/**
缁撴潫鍥炶皟
@@ -47,6 +47,11 @@
澶辫触鍥炶皟
*/
@property (nonatomic, copy) void(^failed)(NSError *error);
+
+/**
+ 宸蹭笅杞芥枃浠跺ぇ灏忓洖璋�
+ */
+@property (nonatomic, copy) void(^downloading)(NSUInteger downloadSize);
/**
寮�濮嬩笅杞�
@@ -66,8 +71,16 @@
@param finshed 缁撴潫鍥炶皟
@param failed 澶辫触鍥炶皟
*/
-- (void) setDownloadCallBackWithFinshed:(void(^)(EZRecordDownloaderStatus statusCode))finshed
- failed:(void(^)(NSError *error))failed;
+- (void)setDownloadCallBackWithFinshed:(void(^)(EZRecordDownloaderStatus statusCode))finshed
+ failed:(void(^)(NSError *error))failed;
+
+/**
+ 璁剧疆涓嬭浇杩涘害鍥炶皟
+
+ @param downloading 涓嬭浇鏂囦欢澶у皬鍥炶皟
+ */
+- (void)setDownloadCallBackWithDownloadSize:(void(^)(NSUInteger downloadSize))downloading;
+
@end
NS_ASSUME_NONNULL_END
diff --git a/EZSDK/EZSDK/SDK/include/modules/EZSADPDeviceInfo.h b/EZSDK/EZSDK/SDK/include/modules/EZSADPDeviceInfo.h
index 1c64f81..7abbece 100644
--- a/EZSDK/EZSDK/SDK/include/modules/EZSADPDeviceInfo.h
+++ b/EZSDK/EZSDK/SDK/include/modules/EZSADPDeviceInfo.h
@@ -37,6 +37,4 @@
///鏄惁鏄悿鐭宠澶�
@property (nonatomic,assign) BOOL isEzvizDevice;
-
-
@end
diff --git a/EZSDK/EZSDK/SDK/include/modules/EZVideoTalk/EZBAVParam.h b/EZSDK/EZSDK/SDK/include/modules/EZVideoTalk/EZBAVParam.h
new file mode 100644
index 0000000..b3d1e94
--- /dev/null
+++ b/EZSDK/EZSDK/SDK/include/modules/EZVideoTalk/EZBAVParam.h
@@ -0,0 +1,196 @@
+//
+// EZBAVParam.h
+// EZBAVClient
+//
+// Created by kanhaiping on 2018/6/27.
+// Copyright 漏 2018骞� hikvision. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+
+/*
+ typedef struct SBavDevInfo
+ {
+ YS_INT8 m_szDevSerial[STREAM_DEV_SERIAL_LEN + 1]; //蹇呭~ 璁惧搴忓垪鍙�
+ YS_UINT32 m_sChannel; //蹇呭~ 閫氶亾鍙�
+ YS_INT16 m_sDevStreamType; //蹇呭~ 璁惧涓诲瓙鐮佺被鍨�
+ YS_INT8 m_szAuthToken[STREAM_TOKEN_LEN + 1]; //蹇呭~ 璁よ瘉token
+ }SBavDevInfo;
+ */
+
+@interface EZBAVDevInfo : NSObject
+@property (nonatomic, strong) NSString *serial; /**< 蹇呭~ 璁惧搴忓垪鍙� */
+@property (nonatomic, assign) int32_t m_iChannel;//蹇呭~ 閫氶亾鍙�
+@property (nonatomic, assign) int32_t m_iDevStreamType;//蹇呭~ 璁惧涓诲瓙鐮佺被鍨�
+@property (nonatomic, strong) NSString *m_szAuthToken; /**< 蹇呭~ 璁よ瘉token */
+@end
+/*
+ typedef struct
+ {
+ YS_UINT32 m_iRoomId; //蹇呭~ 闇�瑕佸姞鍏ユ埧闂村彿
+ YS_UINT32 m_uClientId; //蹇呭~ 鍔犲叆鏂筩lientId
+ YS_INT8 m_szCustomId[CUSTOMID_LEN + 1]; //閫夋嫨 鍔犲叆鏂硅嚜瀹氫箟Id
+ YS_INT8 m_szPassword[STREAM_TOKEN_LEN + 1]; //蹇呭~ 鎴块棿瀵嗙爜
+ YS_UINT8 m_iCltType; //蹇呭~ 瀹㈡埛绔被鍨�
+ YS_UINT16 m_iStsPort; //蹇呭~ 杞彂鏈嶅姟绔彛
+ YS_INT8 m_szStsAddr[CLIENT_STREAM_SVR_ADDR_LEN + 1]; //蹇呭~ 杞彂鏈嶅姟鍦板潃
+ YS_UINT16 m_iVcPort; //蹇呭~ 浼氭帶鏈嶅姟绔彛
+ YS_INT8 m_szVcAddr[CLIENT_STREAM_SVR_ADDR_LEN + 1]; //蹇呭~ 浼氭帶鏈嶅姟鍦板潃
+ YS_INT8 m_szFilePath[FLIEPATH + 1]; //閫夋嫨 鍐欐枃浠剁殑璺緞
+ YS_INT8 m_szExtensionParas[CLIENT_STREAM_EXTENSION_LEN + 1]; //閫夋嫨 鎵╁睍瀛楁淇℃伅
+ }EZConferenceParam;
+ */
+@interface EZRTCJoinParam : NSObject
+@property (nonatomic, assign) int32_t m_iRoomId; /**<蹇呭~ 闇�瑕佸姞鍏ユ埧闂村彿 */
+@property (nonatomic, assign) int32_t m_uClientId; /**< 蹇呭~ 鍔犲叆鏂筩lientId */
+@property (nonatomic, strong) NSString *m_szCustomId; /**< 閫夋嫨 鍔犲叆鏂硅嚜瀹氫箟Id */
+@property (nonatomic, strong) NSString *m_szPassword; /**< 閫夋嫨 鎴块棿瀵嗙爜 */
+@property (nonatomic, assign) int32_t m_iCltType; /**< 蹇呭~ 瀹㈡埛绔被鍨� */
+@property (nonatomic, strong) NSString *m_szVcAddr;//蹇呭~ 瑙嗛浼氳蹇呭~ 浼氭帶鏈嶅姟鍦板潃
+@property (nonatomic, assign) int32_t m_iVcPort;//蹇呭~ 瑙嗛浼氳蹇呭~ 浼氭帶鏈嶅姟绔痥鍙�
+@property (nonatomic, strong) NSString *m_szStsAddr; /**< 蹇呭~ 杞彂鏈嶅姟鍦板潃 */
+@property (nonatomic, assign) int32_t m_iStsPort; /**< 蹇呭~ 杞彂鏈嶅姟绔彛 */
+@property (nonatomic, strong) NSString *m_szExtensionParas; /**< 閫夋嫨 鎵╁睍瀛楁淇℃伅 */
+
+@end
+
+
+@interface EZBAVParam : NSObject
+
+@property (nonatomic, assign) int32_t m_iCltRole; /**< 蹇呭~ 0 鍙戣捣 1 鎺ュ彈 鍙戣捣绔~鍐�0 鎺ュ彈绔~鍐�1 鎷掔粷涓�2 */
+@property (nonatomic, assign) int32_t m_iStreamType;/**< 蹇呴�� 0 闊宠棰� 1 瀵硅 2 浼氳*/
+//@property (nonatomic, assign) int32_t m_szIsNpq;/**< 閫夋嫨 0 涓嶈蛋NPQ锛岃蛋TCP 1 鏄疦PQ锛岃蛋UDP */
+@property (nonatomic, assign) int32_t m_iCltType; /**< 蹇呭~ 瀹㈡埛绔被鍨� */
+
+@property (nonatomic, strong) NSString *m_szVcAddr;//蹇呭~ 瑙嗛浼氳蹇呭~ 浼氭帶鏈嶅姟鍦板潃
+@property (nonatomic, assign) int32_t m_iVcPort;//蹇呭~ 瑙嗛浼氳蹇呭~ 浼氭帶鏈嶅姟绔痥鍙�
+@property (nonatomic, strong) NSString *m_szStsAddr; /**< 蹇呭~ 杞彂鏈嶅姟鍦板潃 */
+@property (nonatomic, assign) int32_t m_iStsPort; /**< 蹇呭~ 杞彂鏈嶅姟绔彛 */
+
+@property (nonatomic, assign) int32_t m_iRoomId; /**< 閫夋嫨 闇�瑕佸姞鍏ユ埧闂村彿锛屽彧鏈夋帴鍙楃闇�瑕佸~鍐� */
+@property (nonatomic, assign) int32_t m_iClientId; //閫夊~ 鍙戣捣or鍔犲叆鑰呯殑id
+@property (nonatomic, strong) NSString *m_szSelfId; /**< 蹇呭~ 鏍囪瘑Id */
+@property (nonatomic, assign) int32_t m_iReason; /**< 閫夋嫨 鍘熷洜 鎷掓帴鎺ュ惉101 鏃犱汉鎺ュ惉102 */
+
+//@property (nonatomic, assign) int32_t m_iMaxBitrate;/**< 蹇呭~ 鐮佺巼鍙樺寲鑼冨洿鐨勬渶澶у�� */
+//
+//@property (nonatomic, assign) int32_t m_iMinBitrate;/**< 蹇呭~ 鐮佺巼鍙樺寲鑼冨洿鐨勬渶灏忓�� */
+
+//@property (nonatomic, assign) int32_t m_iType;/**< 閫夋嫨 鍙傝�傿AV_QOS_TYPE */
+//
+//@property (nonatomic, assign) int32_t m_iVideo;/**< 閫夋嫨 鏄惁寮�鍚棰慟os 1 寮�鍚� 0 涓嶅紑鍚� */
+//
+//@property (nonatomic, assign) int32_t m_iAudio;/**< 閫夋嫨 鏄惁寮�鍚煶棰慟os 1 寮�鍚� 0 涓嶅紑鍚� */
+
+@property (nonatomic, assign) int32_t m_iAuthType; /**< 蹇呭~ 璁よ瘉鏂瑰紡 */
+@property (nonatomic, strong) NSString *m_szAuthToken; /**< 蹇呭~ 璁よ瘉token */
+
+
+
+@property (nonatomic, assign) int32_t m_iOtherCltType; /**< 閫夋嫨 鍙湁瀵圭鏄墜琛ㄧ闇�濉啓 */
+@property (nonatomic, strong) NSString *m_szOterId; /**< 閫夋嫨 鍙湁瀵圭鏄墜琛ㄧ闇�濉啓 */
+@property (nonatomic, assign) int32_t m_iChannel;//閫夊~ 涓夋柟闊宠棰戞椂锛孖PC璁惧闇�瑕佸~鍐�
+@property (nonatomic, assign) int32_t m_iDevStreamType;//閫夊~ 璁惧涓诲瓙鐮佹祦
+
+@property (nonatomic, strong) NSString *m_szExtensionParas; /**< 閫夋嫨 鎵╁睍瀛楁淇℃伅 */
+
+
+@end
+
+
+
+/// 涓庝細鑰呬俊鎭�
+@interface EZRTCParticipantsInfo : NSObject
+@property (nonatomic, assign) uint32_t m_uRoomId;
+@property (nonatomic, assign) uint32_t m_uClientId;
+@property (nonatomic, strong) NSString *m_sCustomId;
+@property (nonatomic, strong) NSString *m_szUserName;
+@property (nonatomic, assign) uint8_t m_iCltType; //鐢ㄤ互鍖哄垎鏄惁鏄澶� 111:璁惧
+@property (nonatomic, assign) int8_t audioState;// 澹伴煶鍚敤鐘舵�� 0-鍏抽棴 1-鍚敤
+@property (nonatomic, assign) int8_t videoState;// 瑙嗛鍚敤鐘舵�� 0-鍏抽棴 1-涓绘祦 5-涓诲瓙娴�
+@property (nonatomic, assign) int8_t shareState;// 灞忓箷鍏变韩鍚敤鐘舵�� 0-鍏抽棴 1-鍚敤
+@property (nonatomic, assign) int8_t upNetState;//缃戠粶鐘舵��
+@property (nonatomic, assign) int8_t downNetState;//缃戠粶鐘舵��
+
+@end
+
+
+@interface EZRTCParticipantVolume : NSObject
+@property (nonatomic, assign) uint32_t m_uClientId;
+@property (nonatomic, strong) NSString *m_sCustomId;
+@property (nonatomic, assign) uint8_t m_sVolume; //闊抽噺寮哄害0-10 10涓烘渶寮� 0涓烘渶寮�
+@end
+
+
+@interface EZRTCStatistic : NSObject
+@property (nonatomic, assign) int32_t type;//0锛氬瓙琛� 1锛氫富琛�
+@property (nonatomic, strong) NSDictionary *statisticInfo;
+@end
+
+///鏈湴鐨勯煶瑙嗛缁熻
+@interface EZRTCLocalStatistics : NSObject
+///瑙嗛鎸囨爣鍙傛暟
+@property (nonatomic, assign) uint32_t videoSentBitrate; //瑙嗛浼犺緭鐮佺巼(涓婅)
+@property (nonatomic, assign) uint32_t videoSentFrameRate; //甯х巼澶у皬
+@property (nonatomic, assign) uint16_t videoPacketLossRate; //瑙嗛涓㈠寘鐜�
+@property (nonatomic, assign) uint16_t videoStreamType; //娴佺被鍨�
+///闊抽鎸囨爣鍙傛暟
+@property (nonatomic, assign) uint32_t audioSentBitrate;//闊抽浼犺緭鐮佺巼
+@property (nonatomic, assign) uint16_t audioPacketLossRate;//闊抽涓㈠寘鐜�
+@end
+
+///杩滅鐨勯煶瑙嗛缁熻
+@interface EZRTCRemoteStatistics : NSObject
+///瑙嗛鎸囨爣鍙傛暟
+@property (nonatomic, assign) uint32_t videoClientId; //杩滅瑙嗛clientId
+@property (nonatomic, assign) uint32_t videoReceivedBitrate;//杩滅瑙嗛浼犺緭鐮佺巼锛堜笅琛岋級
+@property (nonatomic, assign) uint32_t videoReceivedFrameRate;//杩滅甯х巼澶у皬
+@property (nonatomic, assign) uint16_t videoPacketLossRate;//杩滅瑙嗛涓㈠寘鐜�(涓嬭)
+@property (nonatomic, assign) uint16_t videoTotalFrozenTime;//杩滅瑙嗛鎬荤殑鍗¢】鏃堕暱
+@property (nonatomic, assign) uint16_t videoFrozenRate; //杩滅瑙嗛鍗¢】姣�
+@property (nonatomic, assign) uint16_t streamType; //杩滅娴佺被鍨�
+///闊抽鎸囨爣鍙傛暟
+@property (nonatomic, assign) uint32_t audioClientId; //杩滅闊抽clientId
+@property (nonatomic, assign) uint32_t audioReceivedBitrate;//杩滅闊抽浼犺緭鐮佺巼锛堜笅琛岋級
+@property (nonatomic, assign) uint16_t audioPacketLossRate;//杩滅闊抽涓㈠寘鐜�(涓嬭)
+@property (nonatomic, assign) uint16_t audioTotalFrozenTime;//杩滅闊抽鎬荤殑鍗¢】鏃堕暱
+@property (nonatomic, assign) uint16_t audioFrozenRate; //杩滅闊抽鍗¢】姣�
+
+@end
+
+@interface EZRTCVideoSize : NSObject
+
+@property (nonatomic, assign) int width;//瀹�
+@property (nonatomic, assign) int height;//楂�
+
+@end
+
+extern int32_t const EZBAVMessageRoomCreated;
+extern int32_t const EZBAVMessagePeerEnteredRoom;
+extern int32_t const EZBAVMessagePeerLeaveRoom;
+extern int32_t const EZBAVMessageStartInputData;
+//extern int32_t const EZBAVMessageOtherDisconnect;
+extern int32_t const EZBAVMessageTransferData;
+//extern int32_t const EZBAVMessageClientInfo;//鍏朵粬涓庝細瀹㈡埛绔俊鎭�
+extern int32_t const EZBAVMessageClientVolume;//鍏朵粬涓庝細瀹㈡埛绔煶閲�
+extern int32_t const EZBAVMessageClientAudioAvailable;
+extern int32_t const EZBAVMessageClientVideoAvailable;
+extern int32_t const EZBAVMessageNetworkQuality;
+extern int32_t const EZBAVMessageClientShareAvailable;
+extern int32_t const EZBAVMessageJoinRoomOK;
+extern int32_t const EZBAVMessageForcedQuit;
+extern int32_t const EZBAVMessageStatistic;
+
+extern int32_t const EZBAVForcedQuitReasonRepeatJoin;//宸插湪鍏朵粬鍦版柟鍔犲叆鎴块棿
+extern int32_t const EZBAVForcedQuitReasonMovedOut;//琚鐞嗗憳绉诲嚭鎴块棿
+extern int32_t const EZBAVForcedQuitReasonRoomDissolved;//鎴块棿瑙f暎
+
+extern int32_t const EZBAVMessageLocalVideoStats;//缁熻鏈湴瑙嗛瀹炴椂鏁版嵁
+extern int32_t const EZBAVMessageLocalAudioStats;//缁熻鏈湴闊抽瀹炴椂鏁版嵁
+extern int32_t const EZBAVMessageRemoteVideoStats;//缁熻杩滅瑙嗛瀹炴椂鏁版嵁
+extern int32_t const EZBAVMessageRemoteAudioStats;//缁熻杩滅闊抽瀹炴椂鏁版嵁
+
+
+
+typedef void(^EZAudioOpenResultBlock)(NSInteger ret);
diff --git a/EZSDK/EZSDK/SDK/include/modules/EZVideoTalk/EZConferenceClient.h b/EZSDK/EZSDK/SDK/include/modules/EZVideoTalk/EZConferenceClient.h
new file mode 100644
index 0000000..43d478e
--- /dev/null
+++ b/EZSDK/EZSDK/SDK/include/modules/EZVideoTalk/EZConferenceClient.h
@@ -0,0 +1,238 @@
+//
+// EZBAVClient.h
+// EZBAVClient
+//
+// Created by kanhaiping on 2018/6/26.
+// Copyright 漏 2018骞� hikvision. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+#import <UIKit/UIKit.h>
+#import "EZBAVParam.h"
+#import "EZRTCMediaSessionDefines.h"
+#import "EZVideoTalkView.h"
+
+
+
+@class EZConferenceClient;
+@class EZRTCCameraParam;
+@class EZRTCVideoEncodeParam;
+
+@protocol EZConferenceClientDelegate<NSObject>
+
+
+/// 閿欒鍥炶皟
+/// @param client client
+/// @param errorCode 鍑洪敊鐨勯敊璇爜
+- (void)bavClient:(EZConferenceClient *)client didReceivedError:(int32_t)errorCode;
+
+/**
+ 鍥炶皟娑堟伅
+
+ @param client client
+ @param messageCode 娑堟伅鐮� 鍙傝EZBAVMessage
+ @param msg 闄勫姞淇℃伅锛�
+ 濡傛灉鏄疎ZBAVMessagePeerEnteredRoom锛宮sg鏄疎ZRTCParticipantsInfo瀵硅薄锛屼絾鏄彧鏈塵_uClientId銆乵_szUserName瀛楁鏈夋晥
+ 濡傛灉鏄疎ZBAVMessagePeerLeaveRoom娑堟伅锛宮sg鏄疎ZRTCParticipantsInfo瀵硅薄锛屼絾鏄彧鏈塵_uClientId瀛楁鏈夋晥
+ 濡傛灉鏄疎ZBAVMessageClientVolume娑堟伅锛宮sg鏄疎ZBAVParticipantVolume瀵硅薄
+ 濡傛灉娑堟伅鏄� EZBAVMessageTransferData msg鏄� msg鏄瓧绗︿覆 @"瀹為檯鐨勯�忎紶娑堟伅"
+ 濡傛灉娑堟伅鏄疎ZBAVMessageClientAudioAvailable锛宮sg鏄疎ZRTCParticipantsInfo瀵硅薄锛屼絾鏄彧鏈塵_uClientId鍜宎udioState瀛楁鏈夋晥
+ 濡傛灉娑堟伅鏄疎ZBAVMessageClientVideoAvailable 锛宮sg鏄疎ZRTCParticipantsInfo瀵硅薄锛屼絾鏄彧鏈塵_uClientId鍜寁ideoState瀛楁鏈夋晥
+ 濡傛灉娑堟伅鏄疎ZBAVMessageNetworkQuality 锛宮sg鏄疎ZRTCParticipantsInfo瀵硅薄锛屼絾鏄彧鏈塵_uClientId鍜宯etState瀛楁鏈夋晥
+ 濡傛灉娑堟伅鏄疎ZBAVMessageJoinRoomOK 锛宮sg鏄痭il
+ 濡傛灉娑堟伅鏄疎ZBAVMessageForcedQuit 锛宮sg鏄疦SNumber锛屾瘮濡侤(EZBAVForcedQuitReasonMovedOut)
+ 濡傛灉娑堟伅鏄疎ZBAVMessageStatistic锛宮sg鏄疎ZRTCStatistic
+
+ */
+- (void)bavClient:(EZConferenceClient *)client didReceivedMessage:(int32_t)messageCode msg:(id)msg;
+
+@optional
+
+///**
+// 鍥炶皟娑堟伅 bavclient log鍥炶皟
+//
+// @param client client
+// @param msg 閫忎紶娑堟伅
+// */
+//- (void)bavClient:(EZVideoTalk *)client didReceivedBavClientLogMsg:(NSString*)msg;
+
+/**
+ 鏄剧ず鍥炶皟锛岄娆$敾闈㈠嚭鏉ヤ互鍙婂悗缁敾闈㈠昂瀵稿彂鐢熷彉鍖栨椂鍥炶皟
+
+ @param client client
+ @param width 鐢婚潰瀹藉害
+ @param height 鐢婚潰楂樺害
+ */
+- (void)bavClient:(EZConferenceClient *)client didDisplayWidth:(int32_t)width height:(int32_t)height ofRemoteClient:(int)clientID;
+
+/**
+ 鎾斁鍗¢】
+
+ @param client client
+ @param delayTime 鍗¢】鏃堕棿
+ */
+- (void)bavClient:(EZConferenceClient *)client playDelayTime:(int32_t)delayTime ofRemoteClient:(int)clientID;
+
+/**
+ 鎾斁鍗¢】缁熻
+
+ @param client client
+ @param delayTimeStat 鍗¢】鏃堕棿
+ */
+- (void)bavClient:(EZConferenceClient *)client playDelayTimeStatistics:(double)delayTimeStat ofRemoteClient:(int)clientID;
+
+/**
+ 鏈湴瑙嗛鏁版嵁鍥炶皟
+
+ @param localVideoStatistics 瑙嗛鐩稿叧鍙傛暟
+ @param width 瀹藉害
+ @param height 楂樺害
+ */
+- (void)onLocalVideoStats:(EZRTCLocalStatistics *)localVideoStatistics width:(int)width height:(int)height;
+
+/**
+ 鏈湴闊抽鏁版嵁鍥炶皟
+
+ @param localAudioStatistics 闊抽鐩稿叧鍙傛暟
+ */
+- (void)onLocalAudioStats:(EZRTCLocalStatistics *)localAudioStatistics;
+
+/**
+ 杩滅瑙嗛鏁版嵁鍥炶皟
+
+ @param remoteVideoStatistics 瑙嗛鐩稿叧鍙傛暟
+ @param width 瀹藉害
+ @param height 楂樺害
+ */
+- (void)onRemoteVideoStats:(EZRTCRemoteStatistics *)remoteVideoStatistics width:(int)width height:(int)height;
+
+/**
+ 杩滅闊抽鏁版嵁鍥炶皟
+
+ @param remoteAudioStatistics 闊抽鐩稿叧鍙傛暟
+ */
+- (void)onRemoteAudioStats:(EZRTCRemoteStatistics *)remoteAudioStatistics;
+
+
+@end
+
+@interface EZConferenceClient : NSObject
+
+@property (nonatomic, weak) id<EZConferenceClientDelegate> delegate;
+@property (nonatomic, assign, readonly) int32_t roomID;
+@property (nonatomic, assign, readonly) int32_t clientID;
+
+
+/**
+ 瀵硅鏃讹紝寮哄埗閲囩敤鎵0鍣ㄦ挱鏀惧0闊筹紝榛樿涓篩ES
+ */
+@property (nonatomic, assign) BOOL forceToSpeaker;
+
+
+/// 鍒濆鍖栬棰戦�氳瘽SDK瀵硅薄
+- (instancetype)init;
+
+/// 鍔犲叆浼氳锛堟柊鎺ュ彛锛�
+/// @param param 鍙傛暟
+- (NSInteger)enterRoom:(EZRTCJoinParam *)param;
+
+
+/// 閫�鍑轰細璁�
+- (NSInteger)exitRoom;
+
+
+/// 瑙f暎浼氳锛岃В鏁e悗锛屽叾浠栦笌浼氳�呬細鏀跺埌浼氳琚В鏁f秷鎭�
+- (void)dissolveRoom;
+
+/// 鏈湴鎽勫儚澶村紑鍚�/鍏抽棴鎺ュ彛
+/// @param enable 鏄惁寮�鍚憚鍍忓ご
+- (NSInteger)enableLocalVideo:(BOOL)enable;
+
+/// 璁剧疆鏈湴鐨勯瑙堢獥鍙�
+/// @param localWin 绐楀彛window
+- (void)setLocalView:(nullable EZVideoTalkView *)localWin;
+
+/// 鏈湴楹﹀厠椋庡紑鍚�/鍏抽棴鎺ュ彛
+/// @param enable 鏄惁寮�鍚害鍏嬮
+/// @param block 涓荤嚎绋嬪洖璋冪粨鏋�
+- (void)enableLocalAudio:(BOOL)enable withResultBlock:(EZAudioOpenResultBlock)block;
+
+/// 鏄惁寮�鍚緟娴侊紝杈呮祦鍒嗚鲸鐜囨洿浣庛�佺爜鐜囨洿灏�
+/// @param enable 鏄惁寮�鍚�
+/// @param encodeParam 缂栫爜鍙傛暟锛屽彲浠ヤ紶鍏il
+- (NSInteger)enableLocalSmallVideo:(BOOL)enable;
+
+
+/// 寮�鍚睆骞曞叡浜�
+/// @param name 鍏变韩鍚嶇О
+/// @param resultBlock 灞忓箷鍏变韩缁撴灉鍥炶皟
+/// @param didFinishBlock 灞忓箷鍏变韩缁撴潫鍥炶皟锛屽湪姝e父鐨勫睆骞曞叡浜粨鏉熺粨鏉熷悗鍥炶皟
+- (void)startScreenShareWithName:(NSString *)name
+ withResultBlock:(EZScreenShareResultBlock)resultBlock
+ andEndedBlock:(dispatch_block_t)didFinishBlock;
+
+
+/// 缁撴潫灞忓箷鍏变韩
+- (void)stopScreenShare;
+
+
+/// 璁剧疆杩滅▼绐楀彛锛�1.蹇呴』鍦ㄦ嬁鍒拌繙绔鎴风鍔犲叆鐨勬秷鎭悗璁剧疆锛�2.蹇呴』鍦ㄤ富绾跨▼璋冪敤
+/// @param window 鎾斁绐楀彛
+/// @param clientID 鍔犲叆鐨勫鎴风鐨処D
+/// @param streamType 1瑙嗛 4灏忔祦
+- (int32_t)setRemoteView:(nullable UIView *)window ofClient:(int32_t)clientID withStream:(NSInteger)streamType;
+
+/// 璁剧疆瑙傜湅灞忓箷鍏变韩鐨勭獥鍙�,蹇呴』鍦ㄤ富绾跨▼璋冪敤
+/// @param view 绐楀彛
+- (int32_t)setScreenShareView:(UIView *_Nullable)view;
+
+
+/// 閭�璇疯澶囧姞鍏ヤ細璁�
+/// @param dev 璁惧淇℃伅
+- (int32_t)inviteDev:(EZBAVDevInfo *_Nonnull)dev;
+
+
+/// 鍒囨崲瀵硅鏃朵娇鐢ㄧ殑鎽勫儚澶达紝榛樿閲囩敤鍓嶇疆 鍚屾鎺ュ彛
+/// @param backCameraSelected YES:閫夋嫨鍚庣疆锛孨O:閫夋嫨鍓嶇疆
+- (int32_t)switchCamera:(BOOL)backCameraSelected;
+
+
+- (EZRTCStatistic *_Nullable)getStatistic;
+
+#pragma 闄勫姞鎺ュ彛
+
+/// 寮�鍏充細璁腑鏌愪釜涓庝細鑰呯殑澹伴煶锛岄粯璁ゅ紑
+/// @param open YES:寮�锛孨O:鍏�
+- (int32_t)soundCtrl:(BOOL)open forClient:(int32_t)clientID;
+
+
+
+/// 寮傛鑾峰彇鏈湴鎶撳浘
+/// @param block 鎶撳浘鎴愬姛鍥炶皟锛屽け璐mage涓簄il
+//- (void)localScreenShotWithBlock:(void (^)(UIImage *image))block;
+
+/// 鑾峰彇杩滅鎶撳浘
+/// @param quality 鍘嬬缉璐ㄩ噺 0 ~ 100
+//- (UIImage *)remoteScreenShotWithQuality:(int)quality;
+
+/// 鏈湴褰曞埗
+/// @param path 鍐欏叆鐨勬矙鐩掕矾寰�
+- (BOOL)startLocalVideoRecordWithPath:(NSString *)path;
+
+/// 鍋滄鏈湴褰曞埗
+- (BOOL)stopLocalVideoRecord;
+
+/// 寮�濮嬭繙绔綍鍒� mp4
+/// @param path 鍐欏叆鐨勬矙鐩掕矾寰�
+- (BOOL)startRemoteVideoRecordWithPath:(NSString *)path forClient:(int32_t)clientID;
+
+
+/// 鍋滄杩滅褰曞埗
+- (BOOL)stopRemoteVideoRecordForClient:(int32_t)clientID;
+
+
+/// 鍙戦�侀�忎紶娑堟伅鎺ュ彛锛屽悓姝ユ帴鍙o紝鍙兘鑰楁椂
+/// @param msg 娑堟伅鍐呭锛屾瘮濡俲son鏁版嵁
+- (int)sendTransferMsg:(NSString *)msg;
+
+@end
diff --git a/EZSDK/EZSDK/SDK/include/modules/EZVideoTalk/EZRTCCameraParam.h b/EZSDK/EZSDK/SDK/include/modules/EZVideoTalk/EZRTCCameraParam.h
new file mode 100644
index 0000000..503a5b8
--- /dev/null
+++ b/EZSDK/EZSDK/SDK/include/modules/EZVideoTalk/EZRTCCameraParam.h
@@ -0,0 +1,38 @@
+//
+// EZMediaSessionVideoParam.h
+// EZBAVClient
+//
+// Created by kanhaiping on 2018/7/13.
+// Copyright 漏 2018骞� hikvision. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+#import <AVFoundation/AVFoundation.h>
+
+@interface EZRTCCameraParam : NSObject
+
+
+/// 鎽勫儚澶撮噰闆嗛噰闆嗙敾闈㈢殑榛樿璁剧疆锛屾瘮濡侫VCaptureSessionPreset1280x720锛岃浼犲叆AVCaptureSessionPreset640x480 浠ヤ笂鐨勫垎杈ㄧ巼
+//@property (nonatomic, strong) AVCaptureSessionPreset resolutionPreset;
+
+/// 鏈�缁堣緭鍑虹殑鐢婚潰鐨勫
+//@property (nonatomic, assign) NSInteger pixelWidth;
+//
+///// 鏈�缁堣緭鍑虹殑鐢婚潰鐨勯珮
+//@property (nonatomic, assign) NSInteger pixelHeigth;
+
+/// 浼犲叆 AVCaptureVideoOrientation锛岄粯璁ょ珫灞�
+@property (nonatomic, assign) AVCaptureVideoOrientation videoOrientation;
+
+
+/// 鏄惁鏄悗缃憚鍍忓ご锛岄粯璁O
+@property (nonatomic, assign) BOOL isBackCameraSeleced;
+
+///// I甯ч棿闅� 榛樿4绉�
+//@property (nonatomic, assign) NSInteger encodeKeyFrameInterval;
+//
+///// 甯х巼
+//@property (nonatomic, assign) NSInteger fps;
+
++ (AVCaptureSessionPreset)resolutionPresetForWidth:(NSInteger)width andHeigth:(NSInteger)heigth andOri:(AVCaptureVideoOrientation)ori;
+@end
diff --git a/EZSDK/EZSDK/SDK/include/modules/EZVideoTalk/EZRTCMediaSessionDefines.h b/EZSDK/EZSDK/SDK/include/modules/EZVideoTalk/EZRTCMediaSessionDefines.h
new file mode 100644
index 0000000..7c1a1bb
--- /dev/null
+++ b/EZSDK/EZSDK/SDK/include/modules/EZVideoTalk/EZRTCMediaSessionDefines.h
@@ -0,0 +1,107 @@
+//
+// EZMediaSessionDefines.h
+// H264 Encode and Decode
+//
+// Created by kanhaiping on 2018/6/22.
+// Copyright 漏 2018骞� AJB. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+#define EZMediaSessionEncodeResolutionRatioHigh 1 //鍒嗚鲸鐜� 1锛�480*480 0锛�320*320
+#define EZMediaSessionDstVideoFPS (15)
+#define EZMediaSessionDstVideoMaxKeyFrameInterval (300)//鍗曚綅绉�
+
+#define EZMediaSessionSmallStreamWidth (320)
+#define EZMediaSessionSmallStreamHeight (320)
+
+#define EZMediaSessionDefaultStreamWidth (480)
+#define EZMediaSessionDefaultStreamHeight (480)
+
+#define EZMediaSessionDstVideoAverageBitRate480x480 (4 * 128 * 1024)//鍗曚綅 bps //averageBPS
+#define EZMediaSessionDstVideoDataRateLimits480x480 (6 * 128 * 1024)//鍗曚綅 bps //maxBPS
+#define EZMediaSessionDstVideoAverageBitRate320x320 (4 * 128 * 1024 * 5 / 8)//鍗曚綅 bps //averageBPS
+#define EZMediaSessionDstVideoDataRateLimits320x320 (6 * 128 * 1024 * 5 / 8)//鍗曚綅 bps //maxBPS
+
+
+typedef NS_OPTIONS(NSUInteger, EZMediaCaptureSessionType) {
+ EZMediaSessionCaptureNone = 1 << 0,
+ EZMediaSessionCaptureVideoType = 1 << 1,
+ EZMediaSessionCaptureAudioType = 1 << 2,
+ EZMediaSessionCaptureThumbnailType = 1 << 3,
+ EZMediaSessionCaptureShareScreenType = 1 << 4,
+
+};
+
+typedef NS_ENUM(NSUInteger, EZMediaSessionErrorBase) {
+ EZMediaSessionErrorUnknowError = 9000,
+ EZMediaSessionErrorNotReadyToSendData,
+ EZMediaSessionErrorCallSeqError,
+ EZMediaSessionErrorDuplicated,
+ EZMediaSessionErrorBaseAudioCapture = 10000,
+ EZMediaSessionErrorBaseVideoCapture = 20000,
+ EZMediaSessionErrorBaseAudioEncode = 30000,
+ EZMediaSessionErrorBaseVideoEncode = 40000,
+ EZMediaSessionErrorBaseStreamClient = 50000,
+ EZMediaSessionErrorBasePlayer = 60000,
+};
+
+typedef NS_ENUM(NSUInteger, EZAudioRecorderError) {
+ EZAudioRecorderErrorUnknown = EZMediaSessionErrorBaseAudioCapture,
+ EZAudioRecorderErrorInitError = 10100,
+ EZAudioRecorderErrorUnableToCreateSample,
+ EZAudioRecorderErrorStateError,
+ EZAudioRecorderErrorAuthorizeFailed = 10152,
+ EZAudioRecorderErrorStopError = 10200,
+};
+
+typedef NS_ENUM(NSUInteger, EZMediaCaptureError) {
+ EZMediaCaptureErrorUnknown = EZMediaSessionErrorBaseVideoCapture,
+ EZMediaCaptureErrorInitError = 20100,
+ EZMediaCaptureErrorAuthorizeFailed = 20153,
+ EZMediaCaptureErrorSwitchCameraError = 20200,
+ EZMediaCaptureErrorCroppedError = 20300,
+ EZMediaCaptureErrorRenderError = 20400,
+ EZMediaCaptureErrorScreenStartError = 20500,
+ EZMediaCaptureErrorScreenStopError,
+ EZMediaCaptureErrorScreenRecordError,
+ EZMediaCaptureErrorUnsupport,
+};
+
+typedef NS_ENUM(NSUInteger, EZAudioEncoderError) {
+ EZAudioEncoderErrorUnknown = EZMediaSessionErrorBaseAudioEncode,
+ EZAudioEncoderErrorFailToInitConverter = 30100,
+ EZAudioEncoderErrorFailToGetDataBuffer,
+ EZAudioEncoderErrorFailToEncodeBuffer,
+};
+
+typedef NS_ENUM(NSUInteger, EZVideoH264EncoderError) {
+ EZVideoH264EncoderErrorUnknown = EZMediaSessionErrorBaseVideoEncode,
+ EZVideoH264EncoderErrorInitFailed = 40100,
+ EZVideoH264EncoderErrorInvalidSample,
+ EZVideoH264EncoderErrorSampleNotReady,
+ EZVideoH264EncoderErrorNotRunning,
+ EZVideoH264EncoderErrorSetMaxBPSFailed,
+ EZVideoH264EncoderErrorSetAverageBPSFailed,
+ EZVideoH264EncoderErrorParamError,
+ EZVideoH264EncoderErrorEncodeFailed = 40200,
+};
+
+typedef NS_ENUM(NSUInteger, EZBAVStreamClientError) {
+ EZBAVStreamClientErrorUnknow = EZMediaSessionErrorBaseStreamClient,
+ EZBAVStreamClientErrorAudioEnableNotAllowed = EZMediaSessionErrorBaseStreamClient + 9000,
+ EZBAVStreamClientErrorShareEnableNotAllowed,
+
+};
+
+
+typedef NS_ENUM(NSUInteger, EZRTCAudioEncodeType) {
+ EZRTCAudioEncodeType_AAC,
+ EZRTCAudioEncodeType_Opus,
+};
+
+
+@interface EZRTCMediaSessionDefines : NSObject
+@end
+
+typedef void(^EZScreenShareResultBlock)(NSInteger ret);
diff --git a/EZSDK/EZSDK/SDK/include/modules/EZVideoTalk/EZRTCSampleHandleManager.h b/EZSDK/EZSDK/SDK/include/modules/EZVideoTalk/EZRTCSampleHandleManager.h
new file mode 100644
index 0000000..f1d9a21
--- /dev/null
+++ b/EZSDK/EZSDK/SDK/include/modules/EZVideoTalk/EZRTCSampleHandleManager.h
@@ -0,0 +1,31 @@
+//
+// FIAgoraSocketManager.h
+// FIAgoraVideo
+//
+// Created by flagadmin on 2020/5/7.
+// Copyright 漏 2020 flagadmin. All rights reserved.
+//
+
+#import <ReplayKit/ReplayKit.h>
+#import <Foundation/Foundation.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+typedef enum : NSUInteger {
+ EZSampleHandleManagerStateUnconnected,
+ EZSampleHandleManagerStateConnecting,
+ EZSampleHandleManagerStateConnected,
+ EZSampleHandleManagerStateStopped,
+} EZSampleHandleManagerState;
+
+
+@interface EZRTCSampleHandleManager : NSObject
++ (EZRTCSampleHandleManager *)sharedManager;
+@property (nonatomic, assign, readonly) EZSampleHandleManagerState state;
+- (void)setup;
+- (void)finish;
+- (void)sendVideoBuffer:(CMSampleBufferRef)sampleBuffer;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/EZSDK/EZSDK/SDK/include/modules/EZVideoTalk/EZRTCVideoEncodeParam.h b/EZSDK/EZSDK/SDK/include/modules/EZVideoTalk/EZRTCVideoEncodeParam.h
new file mode 100644
index 0000000..b420fba
--- /dev/null
+++ b/EZSDK/EZSDK/SDK/include/modules/EZVideoTalk/EZRTCVideoEncodeParam.h
@@ -0,0 +1,30 @@
+//
+// EZMediaSessionEncodeParam.h
+// EZMediaSession
+//
+// Created by kanhaiping on 2018/8/24.
+// Copyright 漏 2018骞� hikvision. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+@class EZRTCCameraParam;
+
+@interface EZRTCVideoEncodeParam : NSObject
+
+//濡傛灉缂栫爜鐨勭洰鏍囧楂樹负0锛屽垯缂栫爜杈撳嚭涓鸿緭鍏ョ殑鍘熷瀹介珮
+@property (nonatomic, assign) NSInteger pixelWidth;
+@property (nonatomic, assign) NSInteger pixelHeigth;
+@property (nonatomic, assign) NSInteger fps;
+@property (nonatomic, assign) NSInteger averageBPS;
+@property (nonatomic, assign, readonly) NSInteger maxBPS;
+@property (nonatomic, assign) NSInteger encodeKeyFrameInterval;//I甯ч棿闅旓紝鍗曚綅绉�
+
+//+ (EZRTCVideoEncodeParam *)encodeParamFromVideoParam:(EZRTCCameraParam *)videoParam;
++ (EZRTCVideoEncodeParam *)defaultEncodeParam;
++ (EZRTCVideoEncodeParam *)deviceWatchParam;
++ (EZRTCVideoEncodeParam *)deviceBabyRobotParam;
++ (EZRTCVideoEncodeParam *)encodeParamForScreenShare;
++ (EZRTCVideoEncodeParam *)encodeParamForGlobalScreenShare;
+
+@end
diff --git a/EZSDK/EZSDK/SDK/include/modules/EZVideoTalk/EZVideoTalk.h b/EZSDK/EZSDK/SDK/include/modules/EZVideoTalk/EZVideoTalk.h
new file mode 100644
index 0000000..98fda05
--- /dev/null
+++ b/EZSDK/EZSDK/SDK/include/modules/EZVideoTalk/EZVideoTalk.h
@@ -0,0 +1,179 @@
+//
+// EZBAVClient.h
+// EZBAVClient
+//
+// Created by kanhaiping on 2018/6/26.
+// Copyright 漏 2018骞� hikvision. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+#import <UIKit/UIKit.h>
+#import "EZBAVParam.h"
+#import "EZRTCMediaSessionDefines.h"
+#import "EZVideoTalkView.h"
+
+@class EZVideoTalk;
+@class EZRTCCameraParam;
+@class EZRTCVideoEncodeParam;
+
+@protocol EZVideoTalkDelegate<NSObject>
+
+@required
+/// 閿欒鍥炶皟
+/// @param client client
+/// @param errorCode 鍑洪敊鐨勯敊璇爜
+- (void)bavClient:(EZVideoTalk *)client didReceivedError:(int32_t)errorCode;
+
+/**
+ 鍥炶皟娑堟伅
+
+ @param client client
+ @param messageCode 娑堟伅鐮� 鍙傝EZBAVMessage
+ @param msg 闄勫姞淇℃伅锛�
+ 濡傛灉鏄疎ZBAVMessagePeerEnteredRoom銆丒ZBAVMessagePeerLeaveRoom娑堟伅锛宮sg鏄疎ZRTCParticipantsInfo瀵硅薄
+ 濡傛灉娑堟伅鏄� EZBAVMessageTransferData msg鏄� msg鏄瓧绗︿覆 @"瀹為檯鐨勯�忎紶娑堟伅"
+ */
+- (void)bavClient:(EZVideoTalk *)client didReceivedMessage:(int32_t)messageCode msg:(id)msg;
+
+
+@optional
+///**
+// 鍥炶皟娑堟伅 bavclient log鍥炶皟
+//
+// @param client client
+// @param msg 閫忎紶娑堟伅
+// */
+//- (void)bavClient:(EZVideoTalk *)client didReceivedBavClientLogMsg:(NSString*)msg;
+
+/**
+ 鏄剧ず鍥炶皟锛岄娆$敾闈㈠嚭鏉ヤ互鍙婂悗缁敾闈㈠昂瀵稿彂鐢熷彉鍖栨椂鍥炶皟
+
+ @param client client
+ @param width 鐢婚潰瀹藉害
+ @param height 鐢婚潰楂樺害
+ */
+- (void)bavClient:(EZVideoTalk *)client didDisplayWidth:(int32_t)width height:(int32_t)height;
+
+/**
+ 鎾斁鍗¢】
+
+ @param client client
+ @param delayTime 鍗¢】鏃堕棿
+ */
+- (void)bavClient:(EZVideoTalk *)client playDelayTime:(int32_t)delayTime;
+
+///**
+// 鎾斁鍗¢】缁熻
+//
+// @param client client
+// @param delayTimeStat 鍗¢】鏃堕棿
+// */
+//- (void)bavClient:(EZVideoTalk *)client playDelayTimeStatistics:(double)delayTimeStat;
+
+@end
+
+
+
+/// 鍙屽悜闊宠棰戦�氳瘽绫�
+/// 1.涓诲姩鍛煎彨
+/// A.鍙戣捣
+/// - init
+/// - enableCapture
+/// - start:param role=0 reason=0 roomid=0
+/// B.閫氳瘽缁撴潫 璋冪敤 stop
+/// C.绛夊緟瀵规柟杩囩▼涓寕鏂� 璋冪敤stop
+/// 2.琚姩鏀跺埌鍛煎彨
+/// - init
+/// - enableCapture
+/// 灞曠ず鎺ュ惉鐣岄潰
+/// A.濡傛灉鎺ュ惉 璋冪敤 start锛歱aram role=1 reason=0 roomid=鏀跺埌鐨剅oomid 鎺ュ惉瀹岄�氳瘽涓寕鏂皟鐢╯top
+/// B.濡傛灉涓诲姩鎷掓帴 璋冪敤 start锛歱aram role=2 reason=101 roomid=鏀跺埌鐨剅oomid 鎷掓帴瀹屾垚鍚庣珛椹皟鐢╯top
+/// C.濡傛灉鏃犱汉鎺ュ惉 璋冪敤 start锛歱aram role=2 reason=102 roomid=鏀跺埌鐨剅oomid 瀹屾垚鍚庣珛椹皟鐢╯top
+@interface EZVideoTalk : NSObject
+
+@property (nonatomic, weak) id<EZVideoTalkDelegate> delegate;
+@property (nonatomic, assign, readonly) int32_t roomID;
+
+
+/**
+ 瀵硅鏃讹紝寮哄埗閲囩敤鎵0鍣ㄦ挱鏀惧0闊筹紝榛樿涓篩ES
+ */
+@property (nonatomic, assign) BOOL forceToSpeaker;
+
+
+/// 鍒濆鍖栬棰戦�氳瘽SDK瀵硅薄
+- (instancetype)init;
+
+
+
+/// 璁剧疆鏈湴鐨勯瑙堢獥鍙�
+/// @param localWin 绐楀彛window
+- (void)setLocalWindow:(EZVideoTalkView *)localWin;
+
+
+/// 鏈湴鎽勫儚澶村紑鍚�/鍏抽棴鎺ュ彛
+/// @param enable 鏄惁寮�鍚憚鍍忓ご
+- (NSInteger)enableVideoCapture:(BOOL)enable;
+
+
+/// 鏈湴楹﹀厠椋庡紑鍚�/鍏抽棴鎺ュ彛
+/// @param enable 鏄惁寮�鍚害鍏嬮
+- (NSInteger)enableAudioCatpure:(BOOL)enable;
+
+
+// 鏄惁寮�鍚睆骞曞叡浜�
+/// @param enable 鏄惁寮�鍚�
+/// @param block 涓荤嚎绋嬪洖璋冪粨鏋�
+- (void)enableScreenShare:(BOOL)enable andName:(NSString *)name withResultBlock:(EZScreenShareResultBlock)block;
+
+
+/// 鍙戣捣鍙屽悜闊宠棰戝璁诧紝鑰楁椂鎺ュ彛锛屾垚鍔熻繑鍥� noErr锛屽け璐ヨ繑鍥為敊璇爜
+/// @param param EZBAVParam
+- (int32_t)startWithParam:(EZBAVParam *)param;
+
+/// 璁剧疆杩滅▼绐楀彛锛�.濡傛灉璁剧疆闈炵┖瀵硅薄view锛屽繀椤诲湪涓荤嚎绋嬭皟鐢紙濡傛灉鏄缃垚nil锛屽彲浠ヤ笉鍦ㄤ富绾跨▼璋冪敤锛�
+/// @param window 鎾斁绐楀彛
+- (int32_t)setRemoteWindow:(UIView *)window;
+
+/// 鍋滄鍙屽悜闊宠棰戝璁诧紝鎴愬姛杩斿洖 noErr锛屽け璐ヨ繑鍥為敊璇爜
+- (int32_t)stop;
+
+#pragma 闄勫姞鎺ュ彛
+
+/// 鍒囨崲瀵硅鏃朵娇鐢ㄧ殑鎽勫儚澶达紝榛樿閲囩敤鍓嶇疆 鍚屾鎺ュ彛
+/// @param backCameraSelected YES:閫夋嫨鍚庣疆锛孨O:閫夋嫨鍓嶇疆
+- (int32_t)switchCamera:(BOOL)backCameraSelected;
+
+
+/// 寮�鍏宠繙绋嬪0闊筹紝榛樿寮�
+/// @param open 寮�鍚�
+- (int32_t)enableRemoteSound:(BOOL)open;
+/// 寮傛鑾峰彇鏈湴鎶撳浘
+/// @param block 鎶撳浘鎴愬姛鍥炶皟锛屽け璐mage涓簄il
+//- (void)localScreenShotWithBlock:(void (^)(UIImage *image))block;
+
+/// 鑾峰彇杩滅鎶撳浘
+/// @param quality 鍘嬬缉璐ㄩ噺 0 ~ 100
+//- (UIImage *)remoteScreenShotWithQuality:(int)quality;
+
+/// 鏈湴褰曞埗
+/// @param path 鍐欏叆鐨勬矙鐩掕矾寰�
+//- (BOOL)startLocalVideoRecordWithPath:(NSString *)path;
+
+/// 鍋滄鏈湴褰曞埗
+//- (BOOL)stopLocalVideoRecord;
+
+/// 寮�濮嬭繙绔綍鍒� mp4
+/// @param path 鍐欏叆鐨勬矙鐩掕矾寰�
+//- (BOOL)startRemoteVideoRecordWithPath:(NSString *)path forClient:(int32_t)clientID;
+
+
+/// 鍋滄杩滅褰曞埗
+//- (BOOL)stopRemoteVideoRecordForClient:(int32_t)clientID;
+
+
+/// 鍙戦�侀�忎紶娑堟伅鎺ュ彛锛屽悓姝ユ帴鍙o紝鍙兘鑰楁椂
+/// @param msg 娑堟伅鍐呭锛屾瘮濡俲son鏁版嵁
+- (int)sendTransferMsg:(NSString *)msg;
+
+@end
diff --git a/EZSDK/EZSDK/SDK/include/modules/EZVideoTalk/EZVideoTalkGlobal.h b/EZSDK/EZSDK/SDK/include/modules/EZVideoTalk/EZVideoTalkGlobal.h
new file mode 100644
index 0000000..5517624
--- /dev/null
+++ b/EZSDK/EZSDK/SDK/include/modules/EZVideoTalk/EZVideoTalkGlobal.h
@@ -0,0 +1,63 @@
+//
+// EZVideoTalkGlobal.h
+// EZVideoTalk
+//
+// Created by yuqian on 2018/9/12.
+// Copyright 漏 2018骞� hikvision. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+#import "EZRTCMediaSessionDefines.h"
+
+@class EZRTCVideoEncodeParam;
+@class EZRTCCameraParam;
+
+@interface EZVideoTalkGlobal : NSObject
+
+/**
+ 鏃ュ織璁剧疆
+
+ @param enable 鏄惁鎵撳嵃鏃ュ織
+ @param logCallback 鏃ュ織鍥炶皟锛屼笂灞傝嚜瀹氫箟澶勭悊
+ */
++ (void)setDebugLogEnable:(BOOL)enable withLogCallback:(void(^)(NSString *logStr))logCallback;
+
+
+/**
+ 鎵撳紑瀵圭鐮佹祦鎶撳彇
+
+ @param enble 鏄惁鎵撳紑
+ */
++(void)setDebugVideoLog:(BOOL)enble;
+
+
+/**
+ 鑾峰彇sdk鐗堟湰淇℃伅
+
+ @return 鐗堟湰鍙�
+ */
++ (NSString*)getVersion;
+
+
+
+/// 璁剧疆閲囬泦鐨勬憚鍍忓ご鍙傛暟锛屾瘮濡傞噰鐢ㄥ墠缃繕鏄悗缃紝鍦ㄥ彂璧蜂换浣曡棰戞搷浣滃墠璋冪敤鐢熸晥
+/// @param cameraParam 鎽勫儚澶村弬鏁�
++ (void)setCameraParam:(EZRTCCameraParam *)cameraParam;
+
+
+/// 璁剧疆閲囬泦鐨勮棰戠殑缂栫爜鍙傛暟锛屾瘮濡傞噰闆嗘渶缁堣緭鍑虹殑鍒嗚鲸鐜囥�佺爜鐜囩瓑
+/// @param encodeParam 缂栫爜鍙傛暟
++ (void)setVideoEncodeParam:(EZRTCVideoEncodeParam *)encodeParam;
+
+
+/// 璁剧疆閲囬泦鐨勮緟娴佺殑缂栫爜鍙傛暟锛屾瘮濡傞噰闆嗘渶缁堣緭鍑虹殑鍒嗚鲸鐜囥�佺爜鐜囩瓑
+/// @param encodeParam 缂栫爜鍙傛暟
++ (void)setSmallVideoEncodeParam:(EZRTCVideoEncodeParam *)encodeParam;
+
+
++ (EZRTCAudioEncodeType)audioEncodeType;
+
+/// 璁剧疆缂栫爜绫诲瀷锛屽湪瑙嗛閫氳瘽鍙戣捣鍓嶈缃湁鏁�
++ (void)setAudioEncodeType:(EZRTCAudioEncodeType)type;
+
+@end
diff --git a/EZSDK/EZSDK/SDK/include/modules/EZVideoTalk/EZVideoTalkSDK.h b/EZSDK/EZSDK/SDK/include/modules/EZVideoTalk/EZVideoTalkSDK.h
new file mode 100644
index 0000000..353e0c0
--- /dev/null
+++ b/EZSDK/EZSDK/SDK/include/modules/EZVideoTalk/EZVideoTalkSDK.h
@@ -0,0 +1,268 @@
+//
+// EZVideoTalkSDK.h
+// EZOpenSDK
+//
+// Created by yuqian on 2020/3/14.
+// Copyright 漏 2020 Hikvision. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+
+#import "EZRTCMediaSessionDefines.h"
+#import "EZBAVParam.h"
+
+
+NS_ASSUME_NONNULL_BEGIN
+
+
+@class EZVideoTalkSDK, EZMediaSessionVideoParam, EZVideoTalkView, EZBAVParam, EZConferenceParam;
+
+@protocol EZVideoTalkSDKDelegate<NSObject>
+
+- (void)videoTalk:(id)client didReceivedError:(int32_t)errorCode;
+
+/**
+ 鍥炶皟娑堟伅
+
+ @param client client
+ @param messageCode 娑堟伅鐮� 鍙傝EZBAVMessage
+ @param msg 閫忎紶娑堟伅锛�
+ 濡傛灉鏄疎ZVideoTalkMessagePeerEnteredRoom鍜孍ZVideoTalkMessagePeerLeaveRoom娑堟伅锛宮sg鏄瘂@"clientID":@(9527),@"clientName":@"寮犱笁"}
+ 濡傛灉娑堟伅鏄� EZVideoTalkMessageTransferData msg鏄� msg鏄瘂@"content":@"瀹為檯鐨勯�忎紶娑堟伅"}
+ */
+- (void)videoTalk:(id)client didReceivedMessage:(int32_t)messageCode msg:(id)msg;
+
+/// 鐢婚潰鏄剧ず鍥炶皟
+/// @param client client
+/// @param width 鐢婚潰鐨勫 鍍忕礌鍗曚綅
+/// @param height 鐢婚潰鐨勯珮 鍍忕礌鍗曚綅
+/// @param userID 鐢ㄦ埛id
+- (void)videoTalk:(id)client didDisplayWidth:(int32_t)width height:(int32_t)height ofRemoteClient:(NSString *)userID;
+
+@end
+
+@interface EZVideoTalkSDK : NSObject
+
+@property (nonatomic, weak) id<EZVideoTalkSDKDelegate> delegate;
+
+/// 鍔犲叆鐨勬埧闂村彿
+@property (nonatomic, assign, readonly) int32_t roomID;
+
+/**
+ 瀵硅鏃讹紝寮哄埗閲囩敤鎵0鍣ㄦ挱鏀惧0闊筹紝榛樿涓篩ES
+ */
+@property (nonatomic, assign) BOOL forceToSpeaker;
+
+- (instancetype)init;
+
+
+/// 璁剧疆鏈湴鐨勯瑙堢獥鍙�
+/// @param localWin 绐楀彛window
+- (void)setLocalWindow:(EZVideoTalkView *)localWin;
+
+
+/// 鏈湴鎽勫儚澶村紑鍚�/鍏抽棴鎺ュ彛
+/// @param enable 鏄惁寮�鍚憚鍍忓ご
+- (NSInteger)enableVideoCapture:(BOOL)enable;
+
+
+/// 鏈湴楹﹀厠椋庡紑鍚�/鍏抽棴鎺ュ彛
+/// @param enable 鏄惁寮�鍚害鍏嬮
+- (NSInteger)enableAudioCatpure:(BOOL)enable;
+
+
+/// 鏄惁寮�鍚睆骞曞叡浜�
+/// @param enable 鏄惁寮�鍚�
+- (NSInteger)enableScreenShare:(BOOL)enable withName:(NSString *)name;
+
+
+/// 鍙戣捣鍙屽悜闊宠棰戝璁诧紝鑰楁椂鎺ュ彛锛屾垚鍔熻繑鍥� noErr锛屽け璐ヨ繑鍥為敊璇爜
+/// @param param EZBAVParam
+- (int32_t)startWithParam:(EZBAVParam *)param;
+
+/// 璁剧疆杩滅▼绐楀彛锛�.濡傛灉璁剧疆闈炵┖瀵硅薄view锛屽繀椤诲湪涓荤嚎绋嬭皟鐢紙濡傛灉鏄缃垚nil锛屽彲浠ヤ笉鍦ㄤ富绾跨▼璋冪敤锛�
+/// @param window 鎾斁绐楀彛
+- (int32_t)setRemoteWindow:(UIView *)window;
+
+/// 鍋滄鍙屽悜闊宠棰戝璁诧紝鎴愬姛杩斿洖 noErr锛屽け璐ヨ繑鍥為敊璇爜
+- (int32_t)stop;
+
+/// 鍒囨崲瀵硅鏃朵娇鐢ㄧ殑鎽勫儚澶达紝榛樿閲囩敤鍓嶇疆 鍚屾鎺ュ彛
+/// @param backCameraSelected YES:閫夋嫨鍚庣疆锛孨O:閫夋嫨鍓嶇疆
+- (int32_t)switchCamera:(BOOL)backCameraSelected;
+
+
+/// 寮�鍏宠繙绋嬪0闊筹紝榛樿寮�
+/// @param open 寮�鍚�
+- (int32_t)enableRemoteSound:(BOOL)open;
+
+#pragma mark - 鏃ュ織璋冭瘯
+/**
+ 鏃ュ織璁剧疆
+
+ @param enable 鏄惁鎵撳嵃鏃ュ織
+ @param logCallback 鏃ュ織鍥炶皟锛屼笂灞傝嚜瀹氫箟澶勭悊
+ */
++ (void)setDebugLogEnable:(BOOL)enable withLogCallback:(void(^)(NSString *logStr))logCallback;
+
+/**
+ 鎵撳紑瀵圭鐮佹祦鎶撳彇
+
+ @param enble 鏄惁鎵撳紑
+ */
++(void)setDebugVideoLog:(BOOL)enble;
+
+/**
+ 鑾峰彇sdk鐗堟湰淇℃伅
+
+ @return 鐗堟湰鍙�
+ */
++ (NSString*)getVersion;
+
+@end
+
+
+@interface EZRTCClient : NSObject
+
+@property (nonatomic, weak) id<EZVideoTalkSDKDelegate> delegate;
+
+/// 鍔犲叆鐨勬埧闂村彿
+@property (nonatomic, assign, readonly) int32_t roomID;
+
+/**
+ 瀵硅鏃讹紝寮哄埗閲囩敤鎵0鍣ㄦ挱鏀惧0闊筹紝榛樿涓篩ES
+ */
+@property (nonatomic, assign) BOOL forceToSpeaker;
+
+
+/// 鍒濆鍖栬棰戦�氳瘽SDK瀵硅薄
+- (instancetype)init;
+
+
+/// 鍔犲叆浼氳锛堟柊鎺ュ彛锛�
+/// @param roomId 鎴块棿鍙�
+/// @param password 瀵嗙爜
+/// @param userID 鐢ㄦ埛鑷畾涔塈D
+- (void)enterRoom:(int32_t)roomId
+ withPassword:(NSString *)password
+ withUserID:(NSString *)userID
+ withAppId:(NSString *)appId;
+
+
+/// 閫�鍑轰細璁�
+- (NSInteger)exitRoom;
+
+
+/// 瑙f暎浼氳锛岃В鏁e悗锛屽叾浠栦笌浼氳�呬細鏀跺埌浼氳琚В鏁f秷鎭�
+- (void)dissolveRoom;
+
+/// 鏈湴鎽勫儚澶村紑鍚�/鍏抽棴鎺ュ彛.
+/// @param enable 鏄惁寮�鍚憚鍍忓ご
+- (NSInteger)enableLocalVideo:(BOOL)enable;
+
+/// 璁剧疆鏈湴鐨勯瑙堢獥鍙�
+/// @param localWin 绐楀彛window
+- (void)setLocalView:(EZVideoTalkView *)localWin;
+
+/// 鏄惁寮�鍚緟娴侊紝杈呮祦鍒嗚鲸鐜囨洿浣庛�佺爜鐜囨洿灏�
+/// @param enable 鏄惁寮�鍚�
+- (NSInteger)enableLocalSmallVideo:(BOOL)enable;
+
+/// 鏈湴楹﹀厠椋庡紑鍚�/鍏抽棴鎺ュ彛
+/// @param enable 鏄惁寮�鍚害鍏嬮
+/// @param block 涓荤嚎绋嬪洖璋冪粨鏋�
+- (void)enableLocalAudio:(BOOL)enable withResultBlock:(EZAudioOpenResultBlock)block;
+
+/// 寮�鍚睆骞曞叡浜�
+/// @param name 鍏变韩鍚嶇О
+/// @param resultBlock 灞忓箷鍏变韩缁撴灉鍥炶皟
+/// @param didFinishBlock 灞忓箷鍏变韩缁撴潫鍥炶皟锛屽湪姝e父鐨勫睆骞曞叡浜粨鏉熺粨鏉熷悗鍥炶皟
+- (void)startScreenShareWithName:(NSString *)name
+ withResultBlock:(EZScreenShareResultBlock)resultBlock
+ andEndedBlock:(dispatch_block_t)didFinishBlock;
+
+
+/// 缁撴潫灞忓箷鍏变韩
+- (void)stopScreenShare;
+
+
+/// 璁剧疆杩滅▼绐楀彛锛�1.蹇呴』鍦ㄦ嬁鍒拌繙绔鎴风鍔犲叆鐨勬秷鎭悗璁剧疆锛�2.蹇呴』鍦ㄤ富绾跨▼璋冪敤
+/// @param window 鎾斁绐楀彛
+/// @param clientID 鍔犲叆鐨勫鎴风鐨処D
+/// @param streamType 1瑙嗛 2闊抽 4灏忔祦
+- (int32_t)setRemoteView:(nullable UIView *)window ofUser:(NSString *)userID withStream:(NSInteger)streamType;
+
+/// 璁剧疆瑙傜湅灞忓箷鍏变韩鐨勭獥鍙�,蹇呴』鍦ㄤ富绾跨▼璋冪敤
+/// @param view 绐楀彛
+- (int32_t)setScreenShareView:(UIView *_Nullable)view;
+
+/// 鍒囨崲瀵硅鏃朵娇鐢ㄧ殑鎽勫儚澶达紝榛樿閲囩敤鍓嶇疆 鍚屾鎺ュ彛
+/// @param backCameraSelected YES:閫夋嫨鍚庣疆锛孨O:閫夋嫨鍓嶇疆
+- (int32_t)switchCamera:(BOOL)backCameraSelected;
+
+#pragma mark - 褰曞埗鐩稿叧鎺ュ彛
+/// 寮�濮嬫埧闂磋棰戜細璁綍鍒�
+/// @param roomId 鎴块棿鍙�
+/// @param customId 寮�鍙戣�呰嚜瀹氫箟鐢ㄦ埛ID
+/// @param recUsers 闇�瑕佸綍鍒剁殑鎴块棿鍙備笌鑰卛d
+/// @param projectId 浜戝瓨鍌ㄩ」鐩甀D
+/// @param fileId 浜戝瓨鍌ㄦ枃浠跺悕
+/// @param completion operation
++ (void)requestStartRecordRoomId:(NSString *)roomId
+ customId:(NSInteger)customId
+ recUsers:(NSArray *)recUsers
+ projectId:(NSString *)projectId
+ fileId:(NSString *)fileId
+ completion:(void (^)(bool success, NSError *error))completion;
+
+/// 鍋滄鎴块棿瑙嗛浼氳褰曞埗
+/// @param roomId 鎴块棿鍙�
+/// @param customId 寮�鍙戣�呰嚜瀹氫箟鐢ㄦ埛ID
+/// @param completion operation
++ (void)requestStopRecordRoomId:(NSString *)roomId
+ customId:(NSInteger)customId
+ completion:(void (^)(bool success, NSError *error))completion;
+
+/// 鑾峰彇鏂囦欢涓嬭浇鍦板潃
+/// @param projectId 椤圭洰ID
+/// @param fileId 鏂囦欢ID
+/// @param completion operation
++ (void)requestGetRecordFileProjectId:(NSString *)projectId
+ fileId:(NSString *)fileId
+ completion:(void (^)(id responseObject, NSError *error))completion;
+
+
+/// 鏂板缓椤圭洰鎺ュ彛
+/// @param projectId 椤圭洰ID
+/// @param projectName 椤圭洰鍚嶇О
+/// @param expireDays 椤圭洰瀛樺偍瀵硅薄杩囨湡澶╂暟 榛樿姘镐笉杩囨湡
+/// @param completion operation
++ (void)requestCreateProjectId:(NSString *)projectId
+ projectName:(NSString *)projectName
+ expireDays:(NSInteger )expireDays
+ completion:(void (^)(bool success, NSError *error))completion;
+
+
+
+#pragma mark - 4.16.3 鏂扮殑浼氭帶鎺ュ彛
+/// 棰勮浼氳鎺ュ彛
+/// @param customId 涓绘寔浜虹敤鎴穒d锛堝紑鍙戣�呰嚜瀹氫箟鐨勭敤鎴穒d锛�
+/// @param password 鎴块棿瀵嗙爜锛堣嫢涓嶄紶鎴栦负绌哄垯璁や负鎴块棿鍏紑銆佹棤瀵嗙爜锛�
+/// @param limit 鎴块棿浜烘暟闄愬埗锛�<100锛屼笉浼犲垯榛樿100锛�
+/// @param beginTime 姣鏃堕棿鎴筹紝浼氳棰勮寮�濮嬫椂闂达紙>=褰撳墠鏃堕棿锛�
+/// @param endTime 姣鏃堕棿鎴筹紝浼氳棰勮缁撴潫鏃堕棿锛�>beginTime涓�<涓冨ぉ鍚庣殑鏃堕棿鎴筹級
+/// @param completion completion
++ (NSURLSessionDataTask *)orderMeetingWithCustomId:(NSString *)customId
+ password:(NSString *)password
+ limit:(NSInteger)limit
+ beginTime:(long)beginTime
+ endTime:(long)endTime
+ completion:(void (^)(int32_t roomId, NSInteger limit, NSError *error))completion;
+
+
+
+@end
+
+
+
+NS_ASSUME_NONNULL_END
diff --git a/EZSDK/EZSDK/SDK/include/modules/EZVideoTalk/EZVideoTalkSDKDefines.h b/EZSDK/EZSDK/SDK/include/modules/EZVideoTalk/EZVideoTalkSDKDefines.h
new file mode 100644
index 0000000..c3347aa
--- /dev/null
+++ b/EZSDK/EZSDK/SDK/include/modules/EZVideoTalk/EZVideoTalkSDKDefines.h
@@ -0,0 +1,17 @@
+//
+// EZVideoTalkSDKDefines.h
+// EzvizOpenSDK
+//
+// Created by Harper Kan on 2021/7/5.
+// Copyright 漏 2021 Hikvision. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface EZVideoTalkSDKDefines : NSObject
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/EZSDK/EZSDK/SDK/include/modules/EZVideoTalkView.h b/EZSDK/EZSDK/SDK/include/modules/EZVideoTalk/EZVideoTalkView.h
similarity index 100%
rename from EZSDK/EZSDK/SDK/include/modules/EZVideoTalkView.h
rename to EZSDK/EZSDK/SDK/include/modules/EZVideoTalk/EZVideoTalkView.h
diff --git a/EZSDK/EZSDK/SDK/include/modules/EZVideoTalkParam.h b/EZSDK/EZSDK/SDK/include/modules/EZVideoTalkParam.h
deleted file mode 100644
index 27ce0db..0000000
--- a/EZSDK/EZSDK/SDK/include/modules/EZVideoTalkParam.h
+++ /dev/null
@@ -1,38 +0,0 @@
-//
-// EZVideoTalkParam.h
-// EZOpenSDK
-//
-// Created by yuqian on 2020/3/14.
-// Copyright 漏 2020 Hikvision. All rights reserved.
-//
-
-#import <Foundation/Foundation.h>
-
-NS_ASSUME_NONNULL_BEGIN
-
-@interface EZVideoTalkParam : NSObject
-
-@property (nonatomic, assign) int32_t iCltRole; /**< 蹇呭~ 0 鍙戣捣 1 鎺ュ彈 鍙戣捣绔~鍐�0 鎺ュ彈绔~鍐�1 鎷掔粷涓�2 */
-@property (nonatomic, assign) int32_t iStreamType;/**< 蹇呴�� 0 闊宠棰� 1 瀵硅 2 浼氳*/
-@property (nonatomic, assign) int32_t iOtherCltType; /**< 閫夋嫨 */
-@property (nonatomic, assign) int32_t iCltType; /**< 蹇呭~ 瀹㈡埛绔被鍨� */
-@property (nonatomic, strong) NSString *szStsAddr; /**< 蹇呭~ 鏈嶅姟鍦板潃 */
-@property (nonatomic, assign) int32_t iStsPort; /**< 蹇呭~ 鏈嶅姟绔彛 */
-@property (nonatomic, assign) int32_t iRoomId; /**< 閫夋嫨 闇�瑕佸姞鍏ユ埧闂村彿锛屽彧鏈夋帴鍙楃闇�瑕佸~鍐� */
-@property (nonatomic, assign) int32_t iReason; /**< 閫夋嫨 鍘熷洜 鎷掓帴鎺ュ惉101 鏃犱汉鎺ュ惉102 */
-
-@property (nonatomic, strong) NSString *szSelfId; /**< 蹇呭~ 鏍囪瘑Id */
-@property (nonatomic, strong) NSString *szOterId; /**< 閫夋嫨 鎵嬭〃搴忓垪鍙� */
-@property (nonatomic, assign) int32_t iAuthType; /**< 閫夋嫨 璁よ瘉绫诲瀷 */
-@property (nonatomic, strong) NSString *szAuthToken; /**< 蹇呭~ 璁よ瘉token */
-
-@property (nonatomic, strong) NSString *szExtensionParas; /**< 閫夋嫨 鎵╁睍瀛楁淇℃伅 */
-@property (nonatomic, assign) int32_t iChannel;//閫夊~ 涓夋柟闊宠棰戞椂锛孖PC璁惧闇�瑕佸~鍐�
-@property (nonatomic, assign) int32_t iDevStreamType;//閫夊~ 璁惧涓诲瓙鐮佹祦
-
-@property (nonatomic, assign) BOOL isMultiPartyCall; //鏄惁鏄鏂归�氳瘽
-@property (nonatomic, assign) BOOL isCallingWithDevice; //鏄惁鏄甫鏈夎澶囩殑涓诲彨鏂癸紙澶氭柟閫氳瘽锛�
-
-@end
-
-NS_ASSUME_NONNULL_END
diff --git a/EZSDK/EZSDK/SDK/include/modules/EZVideoTalkSDK.h b/EZSDK/EZSDK/SDK/include/modules/EZVideoTalkSDK.h
deleted file mode 100644
index 170a928..0000000
--- a/EZSDK/EZSDK/SDK/include/modules/EZVideoTalkSDK.h
+++ /dev/null
@@ -1,151 +0,0 @@
-//
-// EZVideoTalkSDK.h
-// EZOpenSDK
-//
-// Created by yuqian on 2020/3/14.
-// Copyright 漏 2020 Hikvision. All rights reserved.
-//
-
-#import <UIKit/UIKit.h>
-
-NS_ASSUME_NONNULL_BEGIN
-
-typedef enum : NSUInteger {
- EZVideoTalkMessageUnkown,
- EZVideoTalkMessageRoomCreated, //鍒涘缓鎴块棿鎴愬姛
- EZVideoTalkMessagePeerEnteredRoom, //鐩墠鏈娇鐢紝鐢ㄤ簬澶氭柟
- EZVideoTalkMessagePeerLeaveRoom, //鐩墠鏈娇鐢紝鐢ㄤ簬澶氭柟
- EZVideoTalkMessageStartInputData, //閾炬帴寤虹珛鎴愬姛锛屽紑濮嬫帹娴�
- EZVideoTalkMessageTransferData, //閫忎紶娑堟伅
-} EZVideoTalkMessageType;
-
-
-typedef NS_OPTIONS(NSUInteger, EZVideoTalkCaptureType) {
- EZVideoTalkCaptureNone = 1 << 0,
- EZVideoTalkCaptureVideo = 1 << 1,
- EZVideoTalkCaptureAudio = 1 << 2,
-};
-
-
-@class EZVideoTalkSDK, EZVideoTalkParam, EZMediaSessionVideoParam, EZVideoTalkView;
-
-@protocol EZVideoTalkSDKDelegate<NSObject>
-
-- (void)videoTalk:(EZVideoTalkSDK *)client didReceivedError:(int32_t)errorCode;
-
-/**
- 鍥炶皟娑堟伅
-
- @param client client
- @param messageCode 娑堟伅鐮� 鍙傝EZBAVMessage
- @param msg 閫忎紶娑堟伅锛�
- 濡傛灉鏄疎ZVideoTalkMessagePeerEnteredRoom鍜孍ZVideoTalkMessagePeerLeaveRoom娑堟伅锛宮sg鏄瘂@"clientID":@(9527),@"clientName":@"寮犱笁"}
- 濡傛灉娑堟伅鏄� EZVideoTalkMessageTransferData msg鏄� msg鏄瘂@"content":@"瀹為檯鐨勯�忎紶娑堟伅"}
- */
-- (void)videoTalk:(EZVideoTalkSDK *)client didReceivedMessage:(EZVideoTalkMessageType)messageCode msg:(NSDictionary *)msg;
-
-
-// 鍥炶皟娑堟伅 bavclient log鍥炶皟
-//
-// @param client client
-// @param msg 閫忎紶娑堟伅
-// */
-//- (void)bavClient:(EZVideoTalk *)client didReceivedBavClientLogMsg:(NSString*)msg;
-
-/**
- 鏄剧ず鍥炶皟锛岄娆$敾闈㈠嚭鏉ヤ互鍙婂悗缁敾闈㈠昂瀵稿彂鐢熷彉鍖栨椂鍥炶皟
-
- @param client client
- @param width 鐢婚潰瀹藉害
- @param height 鐢婚潰楂樺害
- */
-- (void)videoTalk:(EZVideoTalkSDK *)client didDisplayWidth:(int32_t)width height:(int32_t)height ofRemoteClient:(int)clientID;
-
-
-@end
-
-@interface EZVideoTalkSDK : NSObject
-
-@property (nonatomic, assign, readonly) int32_t roomID;
-@property (nonatomic, weak) id<EZVideoTalkSDKDelegate> delegate;
-
-#pragma mark - SDK
-/**
-SDK鍒濆鍖�
-
- @param param 蹇呭~ 閰嶇疆鍙傛暟
- @param localWin 鏈湴绐楀彛
-
- @return 杩斿洖鍊�
- */
-- (instancetype)initWithParam:(EZMediaSessionVideoParam *)param
- localWindow:(EZVideoTalkView *)localWin;
-
-/// 璁剧疆杩滅▼绐楀彛
-/// 1.蹇呴』鍦ㄦ嬁鍒拌繙绔鎴风鍔犲叆鐨勬秷鎭悗璁剧疆锛�
-/// 2.蹇呴』鍦ㄤ富绾跨▼璋冪敤锛�
-/// 3.缁撴潫鍚庨渶瑕佸皢window鍙负nil锛�
-/// @param remoteWin 杩滅绐楀彛
-/// @param clientID 鍔犲叆鐨勫鎴风鐨処D
-- (int32_t)setRemoteWindow:(UIView * _Nullable)remoteWin ofClient:(int32_t)clientID;
-
-/**
- 寮�濮嬪弻鍚戦煶瑙嗛瀵硅锛岃�楁椂鎺ュ彛锛岄粯璁� EZVideoTalkCaptureVideo | EZVideoTalkCaptureAudio 鍚屾椂寮�鍚�
- */
-- (void)startWithBAVParam:(EZVideoTalkParam *)param;
-
-/**
- 寮�濮嬪弻鍚戦煶瑙嗛瀵硅锛岃�楁椂鎺ュ彛
- @param param 蹇呭~ 閰嶇疆鍙傛暟
- @param type 閲囬泦绫诲瀷
- */
-- (void)startWithBAVParam:(EZVideoTalkParam *)param type:(EZVideoTalkCaptureType)type;
-
-/**
- 鍋滄鍙屽悜闊宠棰戝璁�
- */
-- (void)stop;
-
-/// 鏈湴閲囬泦鐨勯煶棰戞垨鑰呮槸瑙嗛閰嶇疆锛屽彲浠ュ湪闊宠棰戦�氳瘽杩囩▼涓垏鎹�
-/// @param type EZMediaCaptureSessionType
-- (int32_t)configCaptureType:(EZVideoTalkCaptureType)type;
-
-/// 寮�鍚0闊筹紝鎺ユ敹鍒癊ZVideoTalkMessageStartInputData娑堟伅鍚庤皟鐢�
-/// @param open 寮�鍏崇姸鎬�
-/// @param clientId clientId
-- (int32_t) openSound:(BOOL)open forClient:(int32_t)clientId;
-
-/**
- 鍒囨崲瀵硅鏃朵娇鐢ㄧ殑鎽勫儚澶达紝榛樿閲囩敤鍓嶇疆 鍚屾鎺ュ彛
-
- @param backCameraSelected YES:閫夋嫨鍚庣疆锛孨O:閫夋嫨鍓嶇疆
- @return 鎴愬姛杩斿洖 noErr锛屽け璐ヨ繑鍥為敊璇爜
- */
-- (int32_t)switchCamera:(BOOL)backCameraSelected;
-
-#pragma mark - 鏃ュ織璋冭瘯
-/**
- 鏃ュ織璁剧疆
-
- @param enable 鏄惁鎵撳嵃鏃ュ織
- @param logCallback 鏃ュ織鍥炶皟锛屼笂灞傝嚜瀹氫箟澶勭悊
- */
-+ (void)setDebugLogEnable:(BOOL)enable withLogCallback:(void(^)(NSString *logStr))logCallback;
-
-/**
- 鎵撳紑瀵圭鐮佹祦鎶撳彇
-
- @param enble 鏄惁鎵撳紑
- */
-+(void)setDebugVideoLog:(BOOL)enble;
-
-/**
- 鑾峰彇sdk鐗堟湰淇℃伅
-
- @return 鐗堟湰鍙�
- */
-+ (NSString*)getVersion;
-
-@end
-
-NS_ASSUME_NONNULL_END
diff --git a/EZSDK/EZSDK/SDK/include/modules/EZWiFiItemInfo.h b/EZSDK/EZSDK/SDK/include/modules/EZWiFiItemInfo.h
new file mode 100644
index 0000000..3ea2418
--- /dev/null
+++ b/EZSDK/EZSDK/SDK/include/modules/EZWiFiItemInfo.h
@@ -0,0 +1,21 @@
+//
+// EZWiFiItemInfo.h
+// EZWiFiConfigSDK
+//
+// Created by yuqian on 2020/7/28.
+// Copyright 漏 2020 com.ezviz. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface EZWiFiItemInfo : NSObject
+
+@property (nonatomic, copy) NSString *ssid; /*蹇呭~,SSID,string*/
+@property (nonatomic, assign) NSInteger signalStrength; /*蹇呭~,淇″彿寮哄害,"-100-0",int锛屾暟鍊艰秺澶т俊鍙疯秺寮�*/
+@property (nonatomic, copy) NSString *securityMode; /*鍙��,瀹夊叏妯″紡: "open,WEP,WPA-personal,WPA2-personal,WPA-WPA2-personal,WPA2-enterprise",string*/
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/EZSDK/EZSDK/SDK/include/modules/Sadp.h b/EZSDK/EZSDK/SDK/include/modules/Sadp.h
new file mode 100644
index 0000000..a6ec76d
--- /dev/null
+++ b/EZSDK/EZSDK/SDK/include/modules/Sadp.h
@@ -0,0 +1,557 @@
+#ifndef _SADP_H_
+#define _SADP_H_
+
+
+#if defined _WIN32 || defined _WIN64
+#define CSADP_API extern "C" __declspec(dllimport)
+#elif defined __linux__ || defined __APPLE__
+#define CSADP_API extern "C"
+#endif
+
+#if defined _WIN32 || defined _WIN64
+#define CALLBACK __stdcall
+#elif defined __linux__ || defined __APPLE__
+#define CALLBACK
+#endif
+
+#define BOOL int
+
+//消息操作的类型
+#define SADP_ADD 1 //增加一设备
+#define SADP_UPDATE 2 //更新设备
+#define SADP_DEC 3 //设备下线
+#define SADP_RESTART 4 //设备重新启动
+#define SADP_UPDATEFAIL 5 //设备更新失败
+
+//外部命令码
+#define SADP_GET_DEVICE_CODE 1 //获取设备码,对应结构体SADP_SAFE_CODE
+#define SADP_GET_ENCRYPT_STRING 2 //获取加密串,对应结构体SADP_ENCRYPT_STRING
+#define SADP_GET_DEVICE_TYPE_UNLOCK_CODE 3 //获取设备类型解禁码,对应的结构体SADP_TYPE_UNLOCK_CODE
+#define SADP_SET_DEVICE_CUSTOM_TYPE 4 //设置设备自定义型号,对应的结构体SADP_CUSTOM_DEVICE_TYPE
+#define SADP_GET_GUID 5 //获取GUID
+#define SADP_GET_SECURITY_QUESTION 6 //获取安全问题
+#define SADP_SET_SECURITY_QUESTION 7 //设置安全问题
+#define SADP_SET_HCPLATFORM_STATUS 8 //设置HCPLATFORM状态
+#define SADP_SET_VERIFICATION_CODE 9 //设置验证码(验证码用于萤石接入、预览、控制的唯一密码)
+#define SADP_GET_BIND_LIST 12 //获取绑定设备列表
+#define SADP_SET_BIND_LIST 13 //设置绑定设备列表
+#define SADP_RESTORE_INACTIVE 14 //恢复未激活
+#define SADP_SET_WIFI_REGION 15 //设置wifi区域
+#define SADP_SET_CHANNEL_DEFAULT_PASSWORD 16 //设置通道默认密码
+#define SADP_GET_SELF_CHECK 17 //获取设备自检状态
+#define SADP_DISK_LOCATE 18 //坏盘定位
+#define SADP_EHOME_ENABLE 19 //EHome使能
+#define SADP_SET_USER_MAILBOX 20 //设置用户邮箱
+#define SADP_GET_QR_CODES 21 //获取二维码数据
+#define SADP_GET_PASSWORD_RESET_TYPE 27 //获取重置密码方式参数
+
+
+
+#define SADP_MAX_VERIFICATION_CODE_LEN 12 //最大验证码长度
+#define MAX_PASS_LEN 16 //设备最大密码长度
+#define MAX_QUESTION_LIST_LEN 32 //最多问题列表个数
+#define SADP_MAX_BIND_NUM 32 //最大绑定设备个数
+#define MAX_CPU_LEN 32 //CPU长度
+#define MAX_MEMORY_LEN 32 //内存长度
+#define MAX_USERNAME_LEN 32 //用户名最大长度
+#define SADP_MAX_SERIALNO_LEN 64 //最大设备序列号长度
+#define MAX_DEVICE_CODE 128 //设备返回码长度,暂定最大128
+#define MAX_MAILBOX_LEN 128 //邮箱长度,暂定最大128
+#define MAX_GUID_LEN 128 //GUID长度
+#define MAX_EXCHANGE_CODE 256 //交换码长度
+#define MAX_ENCRYPT_CODE 256 //设备返回码加密后长度
+#define MAX_UNLOCK_CODE_KEY 256 //解禁密钥
+#define MAX_QR_CODES 256 //二维码数据长度,暂定最大256
+#define MAX_ANSWER_LEN 256 //最大答案长度
+#define MAX_UNLOCK_CODE_RANDOM_LEN 256 //解禁码随机串
+#define MAX_FILE_PATH_LEN 260 //文件最大路径长度
+
+
+
+
+// 错误码
+#define SADP_ERROR_BASE 2000
+#define SADP_NOERROR 0 // 没有错误
+#define SADP_ALLOC_RESOURCE_ERROR (SADP_ERROR_BASE+1) // 资源分配错误
+#define SADP_NOT_START_ERROR (SADP_ERROR_BASE+2) // SADP未启动
+#define SADP_NO_ADAPTER_ERROR (SADP_ERROR_BASE+3) // 无网卡
+#define SADP_GET_ADAPTER_FAIL_ERROR (SADP_ERROR_BASE+4) // 获取网卡信息失败
+#define SADP_PARAMETER_ERROR (SADP_ERROR_BASE+5) // 参数错误
+#define SADP_OPEN_ADAPTER_FAIL_ERROR (SADP_ERROR_BASE+6) // 打开网卡失败
+#define SADP_SEND_PACKET_FAIL_ERROR (SADP_ERROR_BASE+7) // 发送数据失败
+#define SADP_SYSTEM_CALL_ERROR (SADP_ERROR_BASE+8) // 系统接口调用失败
+#define SADP_DEVICE_DENY (SADP_ERROR_BASE+9) // 设备拒绝处理
+#define SADP_NPF_INSTALL_ERROR (SADP_ERROR_BASE+10) // 安装NPF服务失败
+#define SADP_TIMEOUT (SADP_ERROR_BASE+11) // 设备超时
+#define SADP_CREATE_SOCKET_ERROR (SADP_ERROR_BASE+12) // 创建socket失败
+#define SADP_BIND_SOCKET_ERROR (SADP_ERROR_BASE+13) // 绑定socket失败
+#define SADP_JOIN_MULTI_CAST_ERROR (SADP_ERROR_BASE+14) // 加入多播组失败
+#define SADP_NETWORK_SEND_ERROR (SADP_ERROR_BASE+15) // 发送出错
+#define SADP_NETWORK_RECV_ERROR (SADP_ERROR_BASE+16) // 接收出错
+#define SADP_XML_PARSE_ERROR (SADP_ERROR_BASE+17) // 多播XML解析出错
+#define SADP_LOCKED (SADP_ERROR_BASE+18) // 设备锁定
+#define SADP_NOT_ACTIVATED (SADP_ERROR_BASE+19) // 设备未激活
+#define SADP_RISK_PASSWORD (SADP_ERROR_BASE+20) // 风险高的密码
+#define SADP_HAS_ACTIVATED (SADP_ERROR_BASE+21) // 设备已激活
+#define SADP_EMPTY_ENCRYPT_STRING (SADP_ERROR_BASE+22) // 加密串为空
+#define SADP_EXPORT_FILE_OVERDUE (SADP_ERROR_BASE+23) // 导出文件超期
+#define SADP_PASSWORD_ERROR (SADP_ERROR_BASE+24) // 密码错误
+#define SADP_LONG_SECURITY_ANSWER (SADP_ERROR_BASE+25) // 安全问题答案太长
+#define SADP_INVALID_GUID (SADP_ERROR_BASE+26) // 无效的GUID
+#define SADP_ANSWER_ERROR (SADP_ERROR_BASE+27) // 答案错误
+#define SADP_QUESTION_NUM_ERR (SADP_ERROR_BASE+28) // 安全问题个数配置错误
+#define SADP_LOAD_WPCAP_FAIL (SADP_ERROR_BASE+30) // 加载Wpcap失败
+#define SADP_ILLEGAL_VERIFICATION_CODE (SADP_ERROR_BASE+33) // 非法验证码
+#define SADP_BIND_ERROR_DEV (SADP_ERROR_BASE+34) // 绑定错误的设备
+#define SADP_EXTED_MAX_BIND_NUM (SADP_ERROR_BASE+35) // 超过最大绑定个数
+#define SADP_MAILBOX_NOT_EXIST (SADP_ERROR_BASE+36) // 邮箱不存在
+#define SADP_MAILBOX_NOT_SET (SADP_ERROR_BASE+38) // [add] <2019/01/08> by yangzheng 邮箱重置密码未设置邮箱
+#define SADP_INVALID_RESET_CODE (SADP_ERROR_BASE+39) // 重置密码 重置口令错误
+
+
+//SADP设备过滤规则类型
+//按位表示,为1表示过滤,0表示不过滤;
+//bit 1:是否过滤萤石;bit 2:是否过滤OEM;
+#define SADP_DISPLAY_ALL 0 //显示所有设备
+#define SADP_FILTER_EZVIZ 0x01 //过滤萤石设备
+#define SADP_FILTER_OEM 0x02 //过滤OEM设备
+#define SADP_FILTER_EZVIZ_OEM 0x03 //同时过滤萤石和OEM设备
+#define SADP_ONLY_DISPLAY_OEM 0xfffffffd //仅显示OEM设备,对应结构体SADP_DISPLAY_OEM_CFG
+#define SADP_ONLY_DISPLAY_EZVIZ 0xfffffffe //仅显示萤石设备
+// 结构体
+
+typedef struct tagSADP_DEVICE_INFO
+{
+ char szSeries[12]; //设备系列(保留)
+ char szSerialNO[48]; //设备序列号
+ char szMAC[20]; //设备物理地址
+ char szIPv4Address[16]; //设备IPv4地址
+ char szIPv4SubnetMask[16]; //设备IPv4子网掩码
+ unsigned int dwDeviceType; //设备类型,具体数值代表的设备型号
+ unsigned int dwPort; //设备网络SDK服务端口号(默认8000)
+ unsigned int dwNumberOfEncoders; //设备编码器个数,即设备编码通道个数。对于解码器,其值设为0
+ unsigned int dwNumberOfHardDisk; //设备硬盘数目
+ char szDeviceSoftwareVersion[48]; //设备软件版本号
+ char szDSPVersion[48]; //设备DSP版本号
+ char szBootTime[48]; //开机时间
+ int iResult;
+ //信息类型: 1.设备上线 2.设备更新 3.设备下线 4.设备重启 5.设备更新失败
+ //SADP_ADD 1 新设备上线,之前在SADP库列表中未出现的设备
+ //SADP_UPDATE 2 在线的设备的网络参数或者某些状态改变
+ //SADP_DEC 3 设备下线,设备自动发送下线消息或120秒内检测不到设备
+ //SADP_RESTART 4 之前SADP库列表中出现过之后下线的设备再次上线
+ //SADP_UPDATEFAIL 5 设备更新失败
+ char szDevDesc[24]; //设备类型描述 与dwDeviceType对应
+ char szOEMinfo[24]; //OEM产商信息
+ char szIPv4Gateway[16]; //IPv4网关
+ char szIPv6Address[46]; //IPv6地址
+ char szIPv6Gateway[46]; //IPv6网关
+ unsigned char byIPv6MaskLen; //IPv6子网前缀长度
+ unsigned char bySupport;
+ //按位表示,对应为为1表示支持
+ //0x01:是否支持Ipv6
+ //0x02:是否支持修改Ipv6参数
+ //0x04:是否支持Dhcp
+ //0x08:是否支持udp多播
+ //0x10:是否含加密节点
+ //0x20:是否支持恢复密码
+ //0x40:是否支持重置密码
+ //0x80:是否支持同步IPC密码
+ unsigned char byDhcpEnabled; //Dhcp状态, 0 不启用 1 启用
+ unsigned char byDeviceAbility; //设备能力
+ //0:设备不支持“‘设备类型描述’ 'OEM厂商' 'IPv4网关' ‘IPv6地址’ 'IPv6网关' ‘IPv6子网前缀’‘DHCP’”
+ //1:支持上诉功能
+ unsigned short wHttpPort; //Http 端口
+ unsigned short wDigitalChannelNum; //数字通道数
+ char szCmsIPv4[16]; //CMS注册服务器IPv4地址
+ unsigned short wCmsPort; //CMS注册服务器监听端口
+ unsigned char byOEMCode; //0-基线设备 1-OEM设备
+ unsigned char byActivated; //设备是否激活;0-激活,1-未激活(老的设备都是已激活状态)
+ char szBaseDesc[24]; //基线短型号,不随定制而修改的型号,用于萤石平台进行型号对比
+ unsigned char bySupport1;
+ //按位表示, 1表示支持,0表示不支持
+ //0x01:是否支持重置密码方式2
+ //0x02;是否支持设备锁定功能
+ //0x04:是否支持导入GUID重置密码
+ //0x08:是否支持安全问题重置密码
+ //0x10:是否支持OEM更换Logo
+ //0x20:是否支持绑定操作
+ //0x40:是否支持恢复未激活
+ //0x80:是否支持wifi信号增强模式
+ unsigned char byHCPlatform; //是否支持HCPlatform 0-保留, 1-支持, 2-不支持
+ unsigned char byEnableHCPlatform; //是否启用HCPlatform 0-保留, 1-启用, 2-不启用
+ unsigned char byEZVIZCode; //0-基线设备, 1-萤石设备
+ unsigned int dwDetailOEMCode; //详细OEMCode信息:oemcode由客户序号(可变位,从1开始,1~429496)+菜单风格(2位)+区域号(2位)三部分构成。
+ //规则说明:oemcode最大值为4294967295,最多是十位数。
+ //0: 老设备
+ //1: 新基线设备
+ //10101: 有具体OEM code的为OEM设备
+ unsigned char byModifyVerificationCode; //是否修改验证码 0-保留, 1-修改验证码, 2-不修改验证码
+ unsigned char byMaxBindNum; //支持绑定的最大个数(目前只有NVR支持该字段)
+ unsigned short wOEMCommandPort; //OEM命令端口
+ unsigned char bySupportWifiRegion;
+ //设备支持的wifi区域列表,按位表示,1表示支持,0表示不支持
+ //0x01:是否支持default(默认功率和北美一致)
+ //0x02:是否支持china
+ //0x04:是否支持nothAmerica
+ //0x08:是否支持japan
+ //0x10:是否支持europe
+ //0x20:是否支持world
+ unsigned char byEnableWifiEnhancement;//是否启用wifi增强模式,0-不启用,1-启用
+ unsigned char byWifiRegion; //设备当前区域,0-default,1-china,2-nothAmerica,3-japan,4-europe,5-world
+ unsigned char bySupport2;
+ //按位表示, 1表示支持,0表示不支持
+ //0x01:是否支持通道默认密码配置(该密码用于nvr添加IPC, 默认使用的是nvr admin密码,会单独保存在本地)
+ //0x02:是否支持邮箱重置密码
+ //0x04:是否支持未激活配置SSID和Password
+}SADP_DEVICE_INFO, *LPSADP_DEVICE_INFO;
+
+typedef struct tagSADP_DEVICE_INFO_V40
+{
+ SADP_DEVICE_INFO struSadpDeviceInfo;
+ unsigned char byLicensed; //设备是否授权:0-保留,1-设备未授权,2-设备已授权
+ unsigned char bySystemMode; //系统模式 0-保留,1-单控,2-双控,3-单机集群,4-双控集群
+ unsigned char byControllerType; //控制器类型 0-保留,1-A控,2-B控
+ char szEhmoeVersion[16]; //Ehmoe版本号
+ unsigned char bySpecificDeviceType;//设备类型,1-中性设备 2-海康设备
+ unsigned int dwSDKOverTLSPort; //私有协议中 SDK Over TLS 命令端口
+ unsigned char bySecurityMode; //设备安全模式:0-standard,1-high-A,2-high-B,3-custom
+ unsigned char bySDKServerStatus; //设备SDK服务状态, 0-开启,1-关闭
+ unsigned char bySDKOverTLSServerStatus; //设备SDKOverTLS服务状态, 0-关闭,1-开启
+ char szUserName[MAX_USERNAME_LEN + 1]; //管理员用户的用户名(设备安全模式在非标准模式下是允许用户设置管理员用户的用户名,标准模式默认为admin)
+ char szWifiMAC[20]; //设备所连wifi的Mac地址
+ unsigned char byDataFromMulticast; //0-链路 1-多播
+ unsigned char bySupportEzvizUnbind; //是否支持萤石解绑 0-不支持 1-支持
+ unsigned char bySupportCodeEncrypt; //是否支持重置口令AES128_ECB解密 0-不支持 1-支持
+ unsigned char bySupportPasswordResetType; //是否支持获取密码重置方式参数 0-不支持 1-支持
+ unsigned char byEZVIZBindStatus; //设备萤石云绑定状态,0-未知,1-已绑定,2-未绑定
+ char szPhysicalAccessVerification[16]; //设备支持的物理接触式添加方式,1#AP配网传递,2#用户令牌(用户token)绑定,3#物理按键接触,4#扫码绑定(设备token)
+ unsigned char byRes[411];
+}SADP_DEVICE_INFO_V40, *LPSADP_DEVICE_INFO_V40;
+
+//待修改的设备网络参数
+typedef struct tagSADP_DEV_NET_PARAM
+{
+ char szIPv4Address[16]; // IPv4地址
+ char szIPv4SubNetMask[16]; // IPv4子网掩码
+ char szIPv4Gateway[16]; // IPv4网关
+ char szIPv6Address[128]; // IPv6地址
+ char szIPv6Gateway[128]; // IPv6网关
+ unsigned short wPort; // 设备网络SDK服务端口号(默认8000)
+ unsigned char byIPv6MaskLen; // IPv6掩码长度
+ unsigned char byDhcpEnable; // DHCP使能
+ unsigned short wHttpPort; // HTTP端口
+ unsigned int dwSDKOverTLSPort; // 私有协议中 SDK Over TLS 命令端口
+ unsigned char byRes[122];
+}SADP_DEV_NET_PARAM, *LPSADP_DEV_NET_PARAM;
+
+
+//设备返回网络参数信息
+typedef struct tagSADP_DEV_RET_NET_PARAM
+{
+ unsigned char byRetryModifyTime; //剩余可尝试修改网络参数次数
+ unsigned char bySurplusLockTime; //剩余时间,单位:分钟,用户锁定时此参数有效
+ unsigned char byRes[126];
+}SADP_DEV_RET_NET_PARAM, *LPSADP_DEV_RET_NET_PARAM;
+
+// CMS参数
+typedef struct tagSADP_CMS_PARAM
+{
+ char szPUID[32]; // 预分配的PUID
+ char szPassword[16]; // 设置的登录密码
+ char szCmsIPv4[16]; // CMS服务器IPv4地址
+ char szCmsIPv6[128]; // CMS服务器IPv6地址
+ unsigned short wCmsPort; // CMS服务器监听端口
+ unsigned char byRes[30];
+}SADP_CMS_PARAM, *LPSADP_CMS_PARAM;
+
+//设备安全码,对应配置命令SADP_GET_DEVICE_CODE,接口SADP_GetDeviceConfig
+typedef struct tagSADP_SAFE_CODE
+{
+ unsigned int dwCodeSize;
+ char szDeviceCode[MAX_DEVICE_CODE];
+ unsigned char byRes[128];
+}SADP_SAFE_CODE, *LPSADP_SAFE_CODE;
+
+//设备二维码
+typedef struct tagSADP_QR_CODES
+{
+ unsigned int dwCodeSize;
+ unsigned int dwMailBoxSize;
+ unsigned int dwServiceMailBoxSize;
+ char szQrCodes[MAX_QR_CODES];
+ char szMailBoxAddr[MAX_MAILBOX_LEN]; //要设置的邮箱地址
+ char szServiceMailBoxAddr[MAX_MAILBOX_LEN]; //服务的邮箱地址
+ unsigned char byRes[128];
+}SADP_QR_CODES, *LPSADP_QR_CODES;
+
+//加密串结构体,对应配置命令SADP_GET_ENCRYPT_STRING,接口SADP_GetDeviceConfig
+typedef struct tagSADP_ENCRYPT_STRING
+{
+ unsigned int dwEncryptStringSize; //加密串长度
+ char szEncryptString[MAX_ENCRYPT_CODE]; //加密串内容
+ unsigned char byRes[128];
+}SADP_ENCRYPT_STRING, *LPSADP_ENCRYPT_STRING;
+//恢复/重置密码结构体
+typedef struct tagSADP_RESET_PARAM
+{
+ char szCode[MAX_ENCRYPT_CODE]; //日期转换过的特殊字符串或加密工具加密后的字符串 - 为兼容老接口
+ char szAuthFile[MAX_FILE_PATH_LEN];//重置授权文件
+ char szPassword[MAX_PASS_LEN]; //用户密码
+ unsigned char byEnableSyncIPCPW; //是否启用同步IPC密码。0 - 不启用, 1- 启用
+ unsigned char byRes[511];
+}SADP_RESET_PARAM, *LSADP_RESET_PARAM;
+
+//显示OEM配置结构体
+typedef struct tagSADP_DISPLAY_OEM_CFG
+{
+ unsigned int dwDisplayOEM; //0-显示所有OEM,其它值为要显示的某一种类型的OEMCode,具体详见dwDetailOEMCode
+ unsigned char byRes[32]; //保留
+}SADP_DISPLAY_OEM_CFG, *LPSADP_DISPLAY_OEM_CFG;
+
+typedef struct tagSADP_TYPE_UNLOCK_CODE
+{
+ unsigned int dwCodeSize;
+ char szDeviceTypeUnlockCode[MAX_UNLOCK_CODE_RANDOM_LEN/*256*/];//设备型号解禁码
+ unsigned char byRes[128];
+}SADP_TYPE_UNLOCK_CODE, *LPSADP_TYPE_UNLOCK_CODE;
+
+typedef struct tagSADP_CUSTOM_DEVICE_TYPE
+{
+ unsigned int dwCodeSize;
+ char szDeviceTypeSecretKey[MAX_UNLOCK_CODE_KEY/*256*/];//类型解禁秘钥
+ unsigned char byRes[128];
+}SADP_CUSTOM_DEVICE_TYPE, *LPSADP_CUSTOM_DEVICE_TYPE;
+
+//获取GUID参数结构体
+typedef struct tagSADP_GUID_FILE_COND
+{
+ char szPassword[MAX_PASS_LEN]; //用户密码
+ unsigned char byRes[128];
+}SADP_GUID_FILE_COND, *LPSADP_GUID_FILE_COND;
+
+//GUID结构体
+typedef struct tagSADP_GUID_FILE
+{
+ unsigned int dwGUIDSize;
+ char szGUID[MAX_GUID_LEN];
+ unsigned char byRetryGUIDTime; //剩余可导入/导出GUID次数
+ unsigned char bySurplusLockTime; //剩余时间,单位:分钟,用户锁定时此参数有效
+ unsigned char byRes[254];
+}SADP_GUID_FILE, *LPSADP_GUID_FILE;
+
+typedef struct tagSADP_SINGLE_SECURITY_QUESTION_CFG
+{
+ unsigned int dwSize;
+ unsigned int dwId;//序号
+ char szAnswer[MAX_ANSWER_LEN/*256*/];//答案,只在设置时有效,获取时无效
+ unsigned char byMark;//标记该序号的问题是否被设置 0-未设置 1-已设置
+ unsigned char byRes[127];
+}SADP_SINGLE_SECURITY_QUESTION_CFG, *LPSADP_SINGLE_SECURITY_QUESTION_CFG;
+
+typedef struct tagSADP_SECURITY_QUESTION_CFG
+{
+ unsigned int dwSize;
+ SADP_SINGLE_SECURITY_QUESTION_CFG struSecurityQuestion[MAX_QUESTION_LIST_LEN/*32*/];//安全问题列表
+ char szPassword[MAX_PASS_LEN]; //用户密码
+ unsigned char byRes[512];
+}SADP_SECURITY_QUESTION_CFG, *LPSADP_SECURITY_QUESTION_CFG;
+
+typedef struct tagSADP_SECURITY_QUESTION
+{
+ unsigned char byRetryAnswerTime; //剩余可设置安全问题次数
+ unsigned char bySurplusLockTime; //剩余时间,单位:分钟,用户锁定时此参数有效
+ unsigned char byRes[254];
+}SADP_SECURITY_QUESTION, *LPSADP_SECURITY_QUESTION;
+
+typedef struct tagSADP_RESET_PARAM_V40
+{
+ unsigned int dwSize;
+ unsigned char byResetType; //密码重置类型 0-保留,1- 通过设备序列号恢复默认密码,2-导入/导出文件重置密码,3-二维码重置, 4-GUID重置,5-安全问题重置 6-邮箱重置密码
+ unsigned char byEnableSyncIPCPW; //是否同时将密码启用为NVR同步IPC密码。0 - 不启用, 1- 启用
+ unsigned char byRes2[2]; //保留
+ char szPassword[MAX_PASS_LEN]; //用户密码
+ char szCode[MAX_ENCRYPT_CODE]; //日期转换过的特殊字符串或加密工具加密后的字符串 - byResetType 为1、3时有效
+ char szAuthFile[MAX_FILE_PATH_LEN];//重置授权文件, byResetType 为2时有效
+ char szGUID[MAX_GUID_LEN]; //GUID, byResetType 为4时有效
+ SADP_SECURITY_QUESTION_CFG struSecurityQuestionCfg;//安全问题结构体, byResetType 为5时有效
+ unsigned char byRes[512];
+}SADP_RESET_PARAM_V40, *LPSADP_RESET_PARAM_V40;
+
+typedef struct tagSADP_RET_RESET_PARAM_V40
+{
+ unsigned char byRetryGUIDTime; //剩余可设置次数
+ unsigned char bySurplusLockTime; //剩余时间,单位:分钟,用户锁定时此参数有效
+ unsigned char bRetryTimeValid; //byRetryGUIDTime字段是否有效 0-无效,1-有效
+ unsigned char bLockTimeValid; //bySurplusLockTime字段是否有效 0-无效,1-有效
+ unsigned char byRes[252];
+}SADP_RET_RESET_PARAM_V40, *LPSADP_RET_RESET_PARAM_V40;
+
+//HCPlatform状态
+typedef struct tagSADP_HCPLATFORM_STATUS_INFO
+{
+ unsigned int dwSize;
+ unsigned char byEnableHCPlatform; //是否启用HCPlatform。0 - 保留, 1- 启用, 2-不启用
+ unsigned char byRes[3]; //保留
+ char szPassword[MAX_PASS_LEN]; //用户密码
+ unsigned char byRes2[128];
+}SADP_HCPLATFORM_STATUS_INFO, *LPSADP_HCPLATFORM_STATUS_INFO;
+
+typedef struct tagSADP_USER_MAILBOX
+{
+ unsigned int dwSize;
+ char szPassword[MAX_PASS_LEN]; //设备admin用户密码
+ char szMailBoxAddr[MAX_MAILBOX_LEN]; //预留邮箱地址,用于接收密码服务器返回的安全码
+ unsigned char byRes[128];
+}SADP_USER_MAILBOX, *LPSADP_USER_MAILBOX;
+//设备验证码
+typedef struct tagSADP_VERIFICATION_CODE_INFO
+{
+ unsigned int dwSize;
+ char szVerificationCode[SADP_MAX_VERIFICATION_CODE_LEN]; //验证码(验证码用于萤石接入、预览、控制的唯一密码)
+ char szPassword[MAX_PASS_LEN]; //用户密码
+ unsigned char byRes[128];
+}SADP_VERIFICATION_CODE_INFO, *LPSADP_VERIFICATION_CODE_INFO;
+
+//设备锁定信息
+typedef struct tagSADP_DEV_LOCK_INFO
+{
+ unsigned char byRetryTime; //剩余可尝试次数
+ unsigned char bySurplusLockTime; //剩余时间,单位:分钟,用户锁定时此参数有效
+ unsigned char byRes[126];
+}SADP_DEV_LOCK_INFO, *LPSADP_DEV_LOCK_INFO;
+
+//被绑定设备信息结构体
+typedef struct tagSADP_BIND_INFO
+{
+ char szSerialNO[SADP_MAX_SERIALNO_LEN]; //被绑定设备的序列号
+ unsigned char byiBind; //设备是否绑定 0-未绑定;1-已绑定
+ unsigned char byRes[127];
+}SADP_BIND_INFO, *LPSADP_BIND_INFO;
+
+typedef struct tagSADP_BIND_LIST
+{
+ SADP_BIND_INFO struBindInfo[SADP_MAX_BIND_NUM]; //绑定设备信息列表
+ char szPassword[MAX_PASS_LEN]; //用户密码
+ unsigned char byUnbindAll; //是否解绑所有设备 0-不解绑所有设备;1-解绑所有设备
+ unsigned char byRes[127];
+}SADP_BIND_LIST, *LPSADP_BIND_LIST;
+
+typedef struct tagSADP_INACTIVE_INFO
+{
+ char szPassword[MAX_PASS_LEN]; //用户密码
+ unsigned char byRes[128];
+}SADP_INACTIVE_INFO, *LPSADP_INACTIVE_INFO;
+
+//wifi Region
+typedef struct tagSADP_WIFI_REGION_INFO
+{
+ unsigned char byMode; //模式,0-保留,1-wifi区域配置模式,2-wifi增强模式
+ unsigned char byWifiRegion; //wifi区域,当byMode为1时,该字段有效。0 -default, 1- china, 2-nothAmerica,3-japan,4-europe,5-world
+ unsigned char byWifiEnhancementEnabled;//是否启用wifi增强模式,当byMode为2时,该字段有效 0 -不启用, 1- 启用
+ unsigned char byRes; //保留
+ char szPassword[MAX_PASS_LEN];//用户密码
+ unsigned char byRes2[128];
+}SADP_WIFI_REGION_INFO, *LPSADP_WIFI_REGION_INFO;
+
+//通道默认密码信息
+typedef struct tagSADP_CHANNEL_DEFAULT_PASSWORD
+{
+ char szPassword[MAX_PASS_LEN]; //设备admin用户密码
+ char szChannelDefaultPassword[MAX_PASS_LEN]; //通道默认密码(用户NVR激活,添加IPC)
+ unsigned char byRes[128];
+}SADP_CHANNEL_DEFAULT_PASSWORD, *LPSADP_CHANNEL_DEFAULT_PASSWORD;
+
+
+//设备自检状态结构体
+typedef struct tagSADP_SELF_CHECK_STATE
+{
+ unsigned int dwSize;
+ int dwTotalDisk; //磁盘总数(默认值为-1)
+ int dwGoodDisk; //好盘数(默认值为-1)
+ char szCPU[MAX_CPU_LEN]; //CPU
+ char szMemory[MAX_MEMORY_LEN]; //内存
+ unsigned char byProgress; //自检进度,0-100
+ unsigned char byTemperatureState; //温度状态,0-无效;1-正常;2-异常
+ unsigned char byFanState; //风扇状态,0-无效;1-正常;2-异常
+ unsigned char byPowerState; //电源状态,0-无效;1-正常;2-异常
+ unsigned char bySASConnectState; //SAS连接状态,0-无效;1-连接;2-未连接
+ char byTotalNetworkPort; //网口总数(默认值为-1)
+ char byConnectNetworkPort; //网口连接数(默认值为-1)
+ unsigned char byRes[129];
+}SADP_SELF_CHECK_STATE, *LPSADP_SELF_CHECK_STATE;
+
+//EHome使能参数
+typedef struct tagSADP_EHOME_ENABLE_PARAM
+{
+ unsigned int dwSize;
+ char szDevID[MAX_PASS_LEN]; //设备ID
+ char szEhomeKey[MAX_PASS_LEN]; //Ehome Key
+ char szPassword[MAX_PASS_LEN]; //设备密码
+ unsigned char byRes[64];
+}SADP_EHOME_ENABLE_PARAM, *LPSADP_EHOME_ENABLE_PARAM;
+
+//WIFI参数配置结构体
+typedef struct tagSADP_WIFI_CONFIG_PARAM
+{
+ unsigned int dwSize;
+ char szSSID[SADP_MAX_SERIALNO_LEN]; //SSID
+ char szPassword[SADP_MAX_SERIALNO_LEN]; //Password
+ unsigned char byWifiMode; //wifi模式,0-默认,1-Station, 2-AP
+ unsigned char byRes[64];
+}SADP_WIFI_CONFIG_PARAM, *LPSADP_WIFI_CONFIG_PARAM;
+
+//已配置重置密码类型参数配置结构体
+typedef struct tagSADP_PASSWORD_RESET_TYPE_PARAM
+{
+ unsigned int dwSize;
+ unsigned char byEnable; //0-未配置 1-(GUID,安全问题,安全邮箱,HC)配置过一种或多种
+ unsigned char byGuidEnabled; //0-未导出过GUID 1-导出过GUID
+ unsigned char bySecurityQuestionEnabled; //0-未配置过安全问题 1-配置过安全问题
+ unsigned char bySecurityMailBoxEnabled; //0-未配置过安全邮箱 1-配置过安全邮箱
+ unsigned char byHikConnectEnabled; //0-未绑定HikConnect账号 1-绑定过HikConnect账号
+ unsigned char byRes1[3];
+ unsigned char byRes[64];
+}SADP_PASSWORD_RESET_TYPE_PARAM, *LPSADP_PASSWORD_RESET_TYPE_PARAM;
+
+
+// 接口
+typedef void (CALLBACK *PDEVICE_FIND_CALLBACK)(const SADP_DEVICE_INFO *lpDeviceInfo, void *pUserData);
+CSADP_API BOOL CALLBACK SADP_Start_V30(PDEVICE_FIND_CALLBACK pDeviceFindCallBack, int bInstallNPF = 0, void* pUserData = NULL);
+typedef void (CALLBACK *PDEVICE_FIND_CALLBACK_V40)(const SADP_DEVICE_INFO_V40 *lpDeviceInfo, void *pUserData);
+CSADP_API BOOL CALLBACK SADP_Start_V40(PDEVICE_FIND_CALLBACK_V40 pDeviceFindCallBack, int bInstallNPF = 0, void* pUserData = NULL);
+CSADP_API BOOL CALLBACK SADP_SendInquiry(void);
+CSADP_API BOOL CALLBACK SADP_Stop(void);
+CSADP_API BOOL CALLBACK SADP_ModifyDeviceNetParam(const char* sMAC, const char* sPassword, const SADP_DEV_NET_PARAM *lpNetParam);
+CSADP_API unsigned int CALLBACK SADP_GetSadpVersion(void);
+CSADP_API BOOL CALLBACK SADP_SetLogToFile(int nLogLevel=0, char const *strLogDir = NULL, int bAutoDel = 1);
+CSADP_API unsigned int CALLBACK SADP_GetLastError(void);
+CSADP_API BOOL CALLBACK SADP_ResetDefaultPasswd(const char* sDevSerialNO, const char* sCommand);
+CSADP_API BOOL CALLBACK SADP_SetCMSInfo(const char* sMac, const SADP_CMS_PARAM *lpCmsParam);
+CSADP_API BOOL CALLBACK SADP_Clearup(void);
+CSADP_API void CALLBACK SADP_SetAutoRequestInterval(unsigned int dwInterval); //设置自动搜索时间间隔(单位秒,为0则不自动请求,默认60s)
+
+CSADP_API BOOL CALLBACK SADP_GetDeviceConfig(const char* sDevSerialNO, unsigned int dwCommand, void* lpInBuffer, unsigned int dwinBuffSize, void *lpOutBuffer, unsigned int dwOutBuffSize);
+CSADP_API BOOL CALLBACK SADP_SetDeviceConfig(const char* sDevSerialNO, unsigned int dwCommand, void* lpInBuffer, unsigned int dwInBuffSize, void* lpOutBuffer, unsigned int dwOutBuffSize);
+CSADP_API BOOL CALLBACK SADP_GetDeviceConfigByMAC(const char* sDevMAC, unsigned int dwCommand, void* lpInBuffer, unsigned int dwinBuffSize, void *lpOutBuffer, unsigned int dwOutBuffSize);
+//激活设备
+CSADP_API BOOL CALLBACK SADP_ActivateDevice(const char* sDevSerialNO, const char* sCommand);
+
+//重置密码接口,兼容之前的恢复默认密码接口
+CSADP_API BOOL CALLBACK SADP_ResetPasswd(const char* sDevSerialNO, const SADP_RESET_PARAM *pResetParam);
+//重置密码接口V40,兼容之前的SADP_ResetPasswd
+CSADP_API BOOL CALLBACK SADP_ResetPasswd_V40(const char* sDevSerialNO, const SADP_RESET_PARAM_V40 *pResetParam, SADP_RET_RESET_PARAM_V40 *pRetResetParam);
+
+
+//设置设备过滤规则
+//dwFilterRule,按位表示,为1表示过滤,全0表示不过滤;0x01:过滤萤石设备;0x02:过滤OEM设备;0x03:过滤萤和OEM设备;0xfffffffe:仅显示萤石设备;0xfffffffd:仅显示OEM设备
+CSADP_API BOOL CALLBACK SADP_SetDeviceFilterRule( unsigned int dwFilterRule, const void *lpInBuff, unsigned int dwInBuffLen);
+//修改网络参数V40
+CSADP_API BOOL CALLBACK SADP_ModifyDeviceNetParam_V40(const char* sMAC, const char* sPassword, const SADP_DEV_NET_PARAM *lpNetParam, SADP_DEV_RET_NET_PARAM *lpRetNetParam, unsigned int dwOutBuffSize);
+//点灯
+CSADP_API BOOL CALLBACK SADP_SendLamp(const char* sMAC, unsigned int dwCommand);
+#endif
+
+
+
+
diff --git a/EZSDK/EZSDK/SDK/libEZOpenSDK.a b/EZSDK/EZSDK/SDK/libEZOpenSDK.a
index 3f9b2e0..6495b73 100644
--- a/EZSDK/EZSDK/SDK/libEZOpenSDK.a
+++ b/EZSDK/EZSDK/SDK/libEZOpenSDK.a
Binary files differ
--
Gitblit v1.8.0