From 13faa230078dcf13bee96a101849e256c186de6e Mon Sep 17 00:00:00 2001
From: wjc <1243177876@qq.com>
Date: 星期五, 08 四月 2022 10:19:18 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/Dev-Branch' into wjc

---
 DLL/LC/Android/Shared.Droid.LCVideoSDK.dll                                        |    0 
 HDL-ON_Android/Assets/Phone/Public/MsgIcon/HangUpIcon.png                         |    0 
 HDL_ON/DAL/ThirdPartySdk/HDLLinphone.cs                                           |   81 +
 HDL_ON/UI/UI0-Public/PublicAssmeblyBLL.cs                                         |    4 
 HDL_ON/UI/UI2/1-HomePage/HomePage.cs                                              |   19 
 HDL-ON_Android/Assets/Language.ini                                                |   18 
 HDL_ON/UI/UI2/FuntionControlView/1ContorlPage/CacControlPage.cs                   |  657 ++++++++++++++
 HDL-ON_iOS/HDL-ON_iOS.csproj                                                      |    7 
 HDL_ON/UI/UI2/3-Intelligence/Automation/ConditionDeviceFunList.cs                 |    1 
 HDL_ON/UI/UI2/FuntionControlView/EnvironmentalScience/EchartsOption_BrokenLine.cs |    2 
 HDL-ON_Android/Assets/Phone/FunctionIcon/CAC/DataIcon.png                         |    0 
 HDL-ON_iOS/Resources/Phone/Public/MsgIcon/CallIcon.png                            |    0 
 HDL_ON/UI/UI0-Public/AppUnlockPage.cs                                             |   21 
 HDL-ON_iOS/Resources/Phone/Public/MsgIcon/HangUpIcon.png                          |    0 
 HDL_ON/HDL_ON.projitems                                                           |    4 
 HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/hvaccac.png                         |    0 
 HDL-ON_Android/HDL-ON_Android.csproj                                              |   13 
 HDL-ON_Android/LeChengVideoActivity.cs                                            |   12 
 HDL_ON/UI/UI2/FuntionControlView/FunctionBaseInfoSetPage.cs                       |   51 +
 HDL-ON_iOS/Resources/Phone/FunctionIcon/CAC/DataIcon.png                          |    0 
 HDL_ON/DAL/Server/NewApiRes.cs                                                    |    9 
 HDL_ON/Common/HDLCommon.cs                                                        |   37 
 HDL_ON/UI/UI2/3-Intelligence/Automation/LogicMethod.cs                            |    7 
 HDL-ON_Android/Resources/Resource.designer.cs                                     |  917 ++++++++++----------
 HDL_ON/UI/UI0-Public/PublicAssmebly.cs                                            |   93 ++
 HDL_ON/UI/UI2/FuntionControlView/1ContorlPage/CacDayHistoryPage.cs                |  165 +++
 HDL-ON_Android/Assets/Phone/FunctionIcon/CAC/JinMaoIcon.png                       |    0 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/CAC/JinMaoIcon.png                        |    0 
 HDL_ON/DAL/DriverLayer/Control.cs                                                 |    4 
 DLL/Linphone/Android/Shared.Droid.HDLLinphone.dll                                 |    0 
 DLL/Scan/HDL.Shared.IOS.ScanQRCode.dll                                            |    0 
 HDL-ON_Android/Application.cs                                                     |   13 
 SiriIntents/Server/HttpUtil.cs                                                    |    4 
 HDL-ON_iOS/Resources/Phone/Public/MsgIcon/AnswerIcon.png                          |    0 
 HDL_ON/UI/UI2/FuntionControlView/1ContorlPage/CacHistoryChoosePage.cs             |  108 ++
 HDL-ON_Android/Assets/Phone/Public/MsgIcon/AnswerIcon.png                         |    0 
 DLL/Linphone/Android/Shared.Droid.HDLLinphone2022-03-31.dll                       |    0 
 HDL_ON/UI/UI2/FuntionControlView/1ContorlPage/CacWeekHistoryPage.cs               |  342 +++++++
 HDL_ON/Entity/Function/Function.cs                                                |    5 
 HDL-ON_Android/Assets/Phone/Public/MsgIcon/CallIcon.png                           |    0 
 HDL_ON/Common/UserInfo.cs                                                         |   29 
 HDL-ON_Android/LeChengVideo/Form/ReverseCallFragment.cs                           |    2 
 HDL_ON/Common/R.cs                                                                |   21 
 HDL_ON/DAL/Server/HttpServerRequest.cs                                            |    8 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/hvaccac.png                          |    0 
 HDL_ON/DAL/ThirdPartySdk/ESOnVideo.cs                                             |    2 
 HDL-ON_Android/Other/JPush/JPushReceiver.cs                                       |   20 
 47 files changed, 2,159 insertions(+), 517 deletions(-)

diff --git a/DLL/LC/Android/Shared.Droid.LCVideoSDK.dll b/DLL/LC/Android/Shared.Droid.LCVideoSDK.dll
index b67911f..abd06cf 100644
--- a/DLL/LC/Android/Shared.Droid.LCVideoSDK.dll
+++ b/DLL/LC/Android/Shared.Droid.LCVideoSDK.dll
Binary files differ
diff --git a/DLL/Linphone/Android/Shared.Droid.HDLLinphone.dll b/DLL/Linphone/Android/Shared.Droid.HDLLinphone.dll
index 38d92a5..07ff54e 100644
--- a/DLL/Linphone/Android/Shared.Droid.HDLLinphone.dll
+++ b/DLL/Linphone/Android/Shared.Droid.HDLLinphone.dll
Binary files differ
diff --git a/DLL/Linphone/Android/Shared.Droid.HDLLinphone2022-03-31.dll b/DLL/Linphone/Android/Shared.Droid.HDLLinphone2022-03-31.dll
new file mode 100644
index 0000000..38d92a5
--- /dev/null
+++ b/DLL/Linphone/Android/Shared.Droid.HDLLinphone2022-03-31.dll
Binary files differ
diff --git a/DLL/Scan/HDL.Shared.IOS.ScanQRCode.dll b/DLL/Scan/HDL.Shared.IOS.ScanQRCode.dll
new file mode 100644
index 0000000..8d81fa4
--- /dev/null
+++ b/DLL/Scan/HDL.Shared.IOS.ScanQRCode.dll
Binary files differ
diff --git a/HDL-ON_Android/Application.cs b/HDL-ON_Android/Application.cs
index dbb5630..cf341fe 100644
--- a/HDL-ON_Android/Application.cs
+++ b/HDL-ON_Android/Application.cs
@@ -84,6 +84,7 @@
                 BusSocketStart();
                 //鍚庡彴鍥炲埌鍓嶅彴
                 new HDL_ON.UI.AppUnlockPage().LoadPage();
+
             }
         }
 
@@ -93,6 +94,10 @@
             mCount--;
             if (mCount == 0)
             {
+                //if(activity.GetType().Name.Contains("LeChengVideoActivity"))
+                //{
+                //    //UserInfo.Current.PushMesLogTime = DateTime.MinValue;
+                //}
                 Console.WriteLine("HHH OnActivityStopped锛� background");
                 BusSocketStop();
                 //杩涘叆鍚庡彴
@@ -110,11 +115,6 @@
 
         public int mCount;
 
-        ///// <summary>
-        ///// 鏄惁杩涘叆鍚庡彴
-        ///// </summary>
-        //public bool IsEnterBackground = false;
-
         /// <summary>
         /// 杩涘叆鍚庡彴鐨勬椂闂�
         /// </summary>
@@ -125,7 +125,6 @@
         /// </summary>
         void BusSocketStop()
         {
-            //IsEnterBackground = true;
             CloseTime = DateTime.Now;
             MainPage.IsEnterBackground = true;
             //杩涘叆鍚庡彴mqtt姝e湪杩炴帴閲嶇疆鐘舵��
@@ -139,8 +138,6 @@
         /// </summary>
         void BusSocketStart()
         {
-            //IsEnterBackground = false;
-
             if (CloseTime.AddSeconds(10) < DateTime.Now)
             {
                 //鍚庡彴瓒呰繃10s灏辨柇寮�MQTT閲嶈繛
diff --git a/HDL-ON_Android/Assets/Language.ini b/HDL-ON_Android/Assets/Language.ini
index ddab725..a27d7f0 100644
--- a/HDL-ON_Android/Assets/Language.ini
+++ b/HDL-ON_Android/Assets/Language.ini
@@ -518,6 +518,11 @@
 530=In order to prevent the wrong touch and click of opening and closing the door and ensure family safety, please enter your door lock password.
 531=Password free unlocking within five minutes
 532=The device is offline and cannot be operated temporarily
+533=Statistical Chart
+534=Data
+535=Dew point temperature
+536=Temperature statistics
+537=Humidity statistics
 
 
 1000=Room Humidity
@@ -1659,6 +1664,11 @@
 530=涓洪槻姝㈠紑鍏抽棬鐨勮瑙︾偣鍑伙紝淇濊瘉瀹跺涵瀹夊叏锛岃杈撳叆鎮ㄧ殑闂ㄩ攣寮�闂ㄥ瘑鐮併��
 531=浜斿垎閽熷唴鍏嶅瘑鐮佸紑閿�
 532=璁惧绂荤嚎涓紝鏆傛椂鏃犳硶鎿嶄綔
+533=24灏忔椂缁熻鍥�
+534=鏁版嵁
+535=闇茬偣娓╁害
+536=娓╁害缁熻鍥�
+537=婀垮害缁熻鍥�
  
 1000=瀹ゅ唴婀垮害
 1001=绔ラ攣
@@ -2781,6 +2791,11 @@
 530=In order to prevent the wrong touch and click of opening and closing the door and ensure family safety, please enter your door lock password.
 531=Password free unlocking within five minutes
 532=The device is offline and cannot be operated temporarily
+533=Statistical Chart
+534=Data
+535=Dew point temperature
+536=Temperature statistics
+537=Humidity statistics
 
 
 
@@ -3403,3 +3418,6 @@
 10031=校褋褌褉芯泄褋褌胁芯 薪械 写芯谢卸薪芯 斜褘褌褜 锌褍褋褌褘屑.
 10032=校 锌芯谢褜蟹芯胁邪褌械谢褟 薪械褌 褉邪蟹褉械褕械薪懈褟.
 10033=校褋褌褉芯泄褋褌胁芯 薪械 褋褍褖械褋褌胁褍械褌.
+
+
+
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/CAC/DataIcon.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/CAC/DataIcon.png
new file mode 100644
index 0000000..9832d06
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/CAC/DataIcon.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/CAC/JinMaoIcon.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/CAC/JinMaoIcon.png
new file mode 100644
index 0000000..b5e26bf
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/CAC/JinMaoIcon.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/hvaccac.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/hvaccac.png
new file mode 100644
index 0000000..5b8b9fa
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/hvaccac.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/Public/MsgIcon/AnswerIcon.png b/HDL-ON_Android/Assets/Phone/Public/MsgIcon/AnswerIcon.png
new file mode 100644
index 0000000..89096a9
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/Public/MsgIcon/AnswerIcon.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/Public/MsgIcon/CallIcon.png b/HDL-ON_Android/Assets/Phone/Public/MsgIcon/CallIcon.png
new file mode 100644
index 0000000..843101e
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/Public/MsgIcon/CallIcon.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/Public/MsgIcon/HangUpIcon.png b/HDL-ON_Android/Assets/Phone/Public/MsgIcon/HangUpIcon.png
new file mode 100644
index 0000000..e516074
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/Public/MsgIcon/HangUpIcon.png
Binary files differ
diff --git a/HDL-ON_Android/HDL-ON_Android.csproj b/HDL-ON_Android/HDL-ON_Android.csproj
index cbc8b17..8bf78f3 100644
--- a/HDL-ON_Android/HDL-ON_Android.csproj
+++ b/HDL-ON_Android/HDL-ON_Android.csproj
@@ -169,9 +169,6 @@
     <Reference Include="Square.OkIO">
       <HintPath>..\DLL\EZvizMonitor\Square.OkIO.dll</HintPath>
     </Reference>
-    <Reference Include="Shared.Droid.HDLLinphone">
-      <HintPath>..\DLL\Linphone\Android\Shared.Droid.HDLLinphone.dll</HintPath>
-    </Reference>
     <Reference Include="Shared.Droid.LCVideoSDK">
       <HintPath>..\DLL\LC\Android\Shared.Droid.LCVideoSDK.dll</HintPath>
     </Reference>
@@ -183,6 +180,9 @@
     </Reference>
     <Reference Include="ScanSdk">
       <HintPath>..\DLL\Scan\ScanSdk.dll</HintPath>
+    </Reference>
+    <Reference Include="Shared.Droid.HDLLinphone">
+      <HintPath>..\DLL\Linphone\Android\Shared.Droid.HDLLinphone.dll</HintPath>
     </Reference>
   </ItemGroup>
   <ItemGroup>
@@ -227,6 +227,12 @@
     <AndroidAsset Include="Assets\Phone\FunctionIcon\EnvironmentalScience\HistoryOpionBg3.png" />
     <AndroidAsset Include="Assets\Phone\FunctionIcon\EnvironmentalScience\HistoryOpionBg4.png" />
     <AndroidAsset Include="Assets\Phone\Collection\FunctionOfflineBg.png" />
+    <AndroidAsset Include="Assets\Phone\Public\MsgIcon\CallIcon.png" />
+    <AndroidAsset Include="Assets\Phone\Public\MsgIcon\AnswerIcon.png" />
+    <AndroidAsset Include="Assets\Phone\Public\MsgIcon\HangUpIcon.png" />
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\CAC\DataIcon.png" />
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\CAC\JinMaoIcon.png" />
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\hvaccac.png" />
   </ItemGroup>
   <ItemGroup>
     <AndroidResource Include="Resources\values\colors.xml" />
@@ -1433,6 +1439,7 @@
   <ItemGroup>
     <Folder Include="libs\arm64-v8a\" />
     <Folder Include="Zxing\" />
+    <Folder Include="Assets\Phone\FunctionIcon\CAC\" />
   </ItemGroup>
   <Import Project="..\HDL_ON\HDL_ON.projitems" Label="Shared" Condition="Exists('..\HDL_ON\HDL_ON.projitems')" />
   <Import Project="$(MSBuildExtensionsPath)\Xamarin\Android\Xamarin.Android.CSharp.targets" />
diff --git a/HDL-ON_Android/LeChengVideo/Form/ReverseCallFragment.cs b/HDL-ON_Android/LeChengVideo/Form/ReverseCallFragment.cs
index 68073cc..cbf292c 100644
--- a/HDL-ON_Android/LeChengVideo/Form/ReverseCallFragment.cs
+++ b/HDL-ON_Android/LeChengVideo/Form/ReverseCallFragment.cs
@@ -256,7 +256,7 @@
                     d.Add("callStatus", "RECEIVED");//鍙敤鍊�:MISSED,RECEIVED,REJECT
                     // d.Add("callDuration", Time);//閫氳瘽鏃堕暱锛堢锛�
                     d.Add("interphoneTypeEnum", "IMOUVISIAL");//鍙敤鍊�:FLVI,IMOUVISIAL
-                    string jsonString = HttpUtil.GetSignRequestJson(d);
+                    string jsonString = HttpUtil.GetSignRequestJson(d); 
 
                     string url = "/home-wisdom/platform/imou/updateCallStatus";
                     ResponsePackNew response = HttpUtil.RequestHttpsPost(url, jsonString);
diff --git a/HDL-ON_Android/LeChengVideoActivity.cs b/HDL-ON_Android/LeChengVideoActivity.cs
index 1d26881..4c04acd 100644
--- a/HDL-ON_Android/LeChengVideoActivity.cs
+++ b/HDL-ON_Android/LeChengVideoActivity.cs
@@ -19,6 +19,8 @@
 using Com.Lechange.Opensdk.Device;
 using Com.Lechange.Opensdk.Listener;
 using Com.Lechange.Opensdk.Media;
+using HDL_ON;
+using Com.Lechange.Opensdk.Utils;
 using HDL_ON.DAL.Server;
 using HDL_ON_Android.LeChengView.Form;
 using Java.IO;
@@ -129,9 +131,9 @@
             }else {
                 URL = URL_LC_CHINA;
             }
-
-            InitParams initParams = new InitParams(this, URL, AccessToken);
+             InitParams initParams = new InitParams(this, URL, AccessToken);
             LCOpenSDK_Api.InitOpenApi(initParams);
+            LogUtils.OpenLog();
         }
 
         /// <summary>
@@ -166,11 +168,12 @@
         /// </summary>
         public void StartTalk()
         {
+            UserInfo.Current.inVideo = true;
             CloseAudio();// 鍏抽棴Audio
             LCOpenSDK_Talk.Listener = new AudioTalkerListener();//璁剧疆瀵硅鐩戝惉
             //2021-10-29 瀵硅璇锋眰绫诲瀷锛宑all鍛煎彨锛屽鏋滀笉浼狅紝榛樿涓簍alk
             string talkType = "talk";
-            if (Type == 1)//0鐩戞帶锛�1瀵硅
+            //if (Type == 1)//0鐩戞帶锛�1瀵硅
             {
                 talkType = "call";
             }
@@ -184,6 +187,8 @@
         /// </summary>
         public void StopTalk()
         {
+            UserInfo.Current.inCall = DateTime.MinValue;
+            UserInfo.Current.inVideo = false;
             LCOpenSDK_Talk.StopTalk();
             LCOpenSDK_Talk.Listener = null;
         }
@@ -338,6 +343,7 @@
         {
             if (v.Equals(ivBack))
             {
+                StopTalk();
                 this.Finish();
             }
         }
diff --git a/HDL-ON_Android/Other/JPush/JPushReceiver.cs b/HDL-ON_Android/Other/JPush/JPushReceiver.cs
index 9438176..4566b62 100644
--- a/HDL-ON_Android/Other/JPush/JPushReceiver.cs
+++ b/HDL-ON_Android/Other/JPush/JPushReceiver.cs
@@ -37,6 +37,9 @@
             //2020-12-23 瑙e喅鐐瑰嚮閫氱煡鏍忔墦寮�涓嶄簡APP闂
             //base.OnNotifyMessageOpened(context, notificationMessage);
 
+            //NotificationManager NotifyManager = (NotificationManager)GetSystemService(Context.NotificationService);
+            //NotificationManager notificationManager = NotifyManager;
+
             OpenNotification(context, notificationMessage);
         }
 
@@ -60,7 +63,7 @@
             if (jpushExpandData != null && jpushExpandData.messageType != null)
             {
                 pushMes.messageType = jpushExpandData.messageType;
-                pushMes.expantContent = jpushExpandData.expantContent;
+                pushMes.expantContent = jpushExpandData.expantContent;//spk
                 pushMes.HomeId = jpushExpandData.homeId;
                 Utlis.WriteLine("PushMes messageType : " + pushMes.messageType);
             }
@@ -70,11 +73,24 @@
             Utlis.WriteLine("PushMes extras : " + pushMes.Extras);
             Utlis.WriteLine("PushMes HomeId : " + pushMes.HomeId);
 
+            //UserInfo.Current.PushMesTitle = pushMes.Title;
+            //UserInfo.Current.PushMesMessage = pushMes.Content;
+            //UserInfo.Current.PushMesExtras = pushMes.Extras;
+            //UserInfo.Current.pushMesMessageType = pushMes.messageType;
+            //UserInfo.Current.pushMesExpantContent = pushMes.expantContent;
+            //UserInfo.Current.PushMesHomeId = pushMes.HomeId;
+            UserInfo.Current.pushMessageInfo = pushMes;
+            UserInfo.Current.inCall = DateTime.Now;
+
             Shared.Application.RunOnMainThread(() =>
             {
                 HDLCommon.Current.AdjustPushMessage(pushMes);
             });
-
+            if (!MainPage.IsEnterBackground)
+            {
+                NotificationManager nMgr = (NotificationManager)Shared.Application.Activity.GetSystemService(Context.NotificationService);
+                nMgr.CancelAll();
+            }
         }
 
         /// <summary>
diff --git a/HDL-ON_Android/Resources/Resource.designer.cs b/HDL-ON_Android/Resources/Resource.designer.cs
index f4be883..475294e 100644
--- a/HDL-ON_Android/Resources/Resource.designer.cs
+++ b/HDL-ON_Android/Resources/Resource.designer.cs
@@ -12200,1105 +12200,1108 @@
 			public const int lp_screenshotStr = 2131689860;
 			
 			// aapt resource value: 0x7F0F0185
-			public const int lp_tipStr = 2131689861;
-			
-			// aapt resource value: 0x7F0F0188
-			public const int lp_unlockfailureStr = 2131689864;
+			public const int lp_sipAccount_null = 2131689861;
 			
 			// aapt resource value: 0x7F0F0186
-			public const int lp_unlockStr = 2131689862;
-			
-			// aapt resource value: 0x7F0F0187
-			public const int lp_unlockSuccessfullyStr = 2131689863;
+			public const int lp_tipStr = 2131689862;
 			
 			// aapt resource value: 0x7F0F0189
-			public const int main_tab_second_tab = 2131689865;
+			public const int lp_unlockfailureStr = 2131689865;
+			
+			// aapt resource value: 0x7F0F0187
+			public const int lp_unlockStr = 2131689863;
+			
+			// aapt resource value: 0x7F0F0188
+			public const int lp_unlockSuccessfullyStr = 2131689864;
 			
 			// aapt resource value: 0x7F0F018A
-			public const int message_come_from_tip = 2131689866;
+			public const int main_tab_second_tab = 2131689866;
 			
 			// aapt resource value: 0x7F0F018B
-			public const int message_encrypt_inputpsw_tip_title = 2131689867;
+			public const int message_come_from_tip = 2131689867;
 			
 			// aapt resource value: 0x7F0F018C
-			public const int message_live = 2131689868;
+			public const int message_encrypt_inputpsw_tip_title = 2131689868;
 			
 			// aapt resource value: 0x7F0F018D
-			public const int message_no_data_text = 2131689869;
+			public const int message_live = 2131689869;
 			
 			// aapt resource value: 0x7F0F018E
-			public const int message_refresh_fail_network_exception = 2131689870;
+			public const int message_no_data_text = 2131689870;
 			
 			// aapt resource value: 0x7F0F018F
-			public const int message_refresh_fail_server_exception = 2131689871;
+			public const int message_refresh_fail_network_exception = 2131689871;
 			
 			// aapt resource value: 0x7F0F0190
-			public const int message_video = 2131689872;
+			public const int message_refresh_fail_server_exception = 2131689872;
 			
 			// aapt resource value: 0x7F0F0191
-			public const int modify_online_schedule = 2131689873;
+			public const int message_video = 2131689873;
 			
 			// aapt resource value: 0x7F0F0192
-			public const int month = 2131689874;
+			public const int modify_online_schedule = 2131689874;
 			
 			// aapt resource value: 0x7F0F0193
-			public const int more = 2131689875;
+			public const int month = 2131689875;
 			
 			// aapt resource value: 0x7F0F0194
-			public const int more_local_image = 2131689876;
+			public const int more = 2131689876;
 			
 			// aapt resource value: 0x7F0F0195
-			public const int more_setting = 2131689877;
+			public const int more_local_image = 2131689877;
 			
 			// aapt resource value: 0x7F0F0196
-			public const int my_collect = 2131689878;
+			public const int more_setting = 2131689878;
 			
 			// aapt resource value: 0x7F0F0197
-			public const int my_devices = 2131689879;
+			public const int my_collect = 2131689879;
 			
 			// aapt resource value: 0x7F0F0198
-			public const int network_error_retry_prompt = 2131689880;
+			public const int my_devices = 2131689880;
 			
 			// aapt resource value: 0x7F0F0199
-			public const int network_exception = 2131689881;
+			public const int network_error_retry_prompt = 2131689881;
 			
 			// aapt resource value: 0x7F0F019A
-			public const int network_video_recorder = 2131689882;
+			public const int network_exception = 2131689882;
 			
 			// aapt resource value: 0x7F0F019B
-			public const int newest_version = 2131689883;
+			public const int network_video_recorder = 2131689883;
 			
 			// aapt resource value: 0x7F0F019C
-			public const int next_button_txt = 2131689884;
-			
-			// aapt resource value: 0x7F0F01A3
-			public const int not_find_any_devices = 2131689891;
-			
-			// aapt resource value: 0x7F0F01A4
-			public const int not_now = 2131689892;
-			
-			// aapt resource value: 0x7F0F01A5
-			public const int not_recognized_fingerprint_hint = 2131689893;
+			public const int newest_version = 2131689884;
 			
 			// aapt resource value: 0x7F0F019D
-			public const int no_event_device_prompt = 2131689885;
+			public const int next_button_txt = 2131689885;
 			
-			// aapt resource value: 0x7F0F019E
-			public const int no_leave_device_prompt = 2131689886;
+			// aapt resource value: 0x7F0F01A4
+			public const int not_find_any_devices = 2131689892;
 			
-			// aapt resource value: 0x7F0F019F
-			public const int no_more_alarm_tip = 2131689887;
-			
-			// aapt resource value: 0x7F0F01A0
-			public const int no_more_leave_tip = 2131689888;
-			
-			// aapt resource value: 0x7F0F01A1
-			public const int no_remote_data = 2131689889;
-			
-			// aapt resource value: 0x7F0F01A2
-			public const int no_result_text = 2131689890;
+			// aapt resource value: 0x7F0F01A5
+			public const int not_now = 2131689893;
 			
 			// aapt resource value: 0x7F0F01A6
-			public const int offline_warn_text = 2131689894;
+			public const int not_recognized_fingerprint_hint = 2131689894;
 			
-			// aapt resource value: 0x7F0F01A8
-			public const int online_time = 2131689896;
+			// aapt resource value: 0x7F0F019E
+			public const int no_event_device_prompt = 2131689886;
+			
+			// aapt resource value: 0x7F0F019F
+			public const int no_leave_device_prompt = 2131689887;
+			
+			// aapt resource value: 0x7F0F01A0
+			public const int no_more_alarm_tip = 2131689888;
+			
+			// aapt resource value: 0x7F0F01A1
+			public const int no_more_leave_tip = 2131689889;
+			
+			// aapt resource value: 0x7F0F01A2
+			public const int no_remote_data = 2131689890;
+			
+			// aapt resource value: 0x7F0F01A3
+			public const int no_result_text = 2131689891;
 			
 			// aapt resource value: 0x7F0F01A7
-			public const int on_the_phone = 2131689895;
+			public const int offline_warn_text = 2131689895;
 			
 			// aapt resource value: 0x7F0F01A9
-			public const int open_camera_fail = 2131689897;
+			public const int online_time = 2131689897;
+			
+			// aapt resource value: 0x7F0F01A8
+			public const int on_the_phone = 2131689896;
 			
 			// aapt resource value: 0x7F0F01AA
-			public const int open_camera_lens = 2131689898;
+			public const int open_camera_fail = 2131689898;
 			
 			// aapt resource value: 0x7F0F01AB
-			public const int open_source_localization = 2131689899;
+			public const int open_camera_lens = 2131689899;
 			
 			// aapt resource value: 0x7F0F01AC
-			public const int open_ys_service = 2131689900;
+			public const int open_source_localization = 2131689900;
 			
 			// aapt resource value: 0x7F0F01AD
-			public const int open_ys_service_fail = 2131689901;
+			public const int open_ys_service = 2131689901;
 			
 			// aapt resource value: 0x7F0F01AE
-			public const int open_ys_service_success = 2131689902;
+			public const int open_ys_service_fail = 2131689902;
 			
 			// aapt resource value: 0x7F0F01AF
-			public const int operational_fail = 2131689903;
+			public const int open_ys_service_success = 2131689903;
 			
 			// aapt resource value: 0x7F0F01B0
-			public const int option_support_web = 2131689904;
+			public const int operational_fail = 2131689904;
 			
 			// aapt resource value: 0x7F0F01B1
-			public const int password_et_hint = 2131689905;
+			public const int option_support_web = 2131689905;
 			
 			// aapt resource value: 0x7F0F01B2
-			public const int password_security_txt = 2131689906;
+			public const int password_et_hint = 2131689906;
 			
 			// aapt resource value: 0x7F0F01B3
-			public const int password_toggle_content_description = 2131689907;
+			public const int password_security_txt = 2131689907;
 			
 			// aapt resource value: 0x7F0F01B4
-			public const int path_password_eye = 2131689908;
+			public const int password_toggle_content_description = 2131689908;
 			
 			// aapt resource value: 0x7F0F01B5
-			public const int path_password_eye_mask_strike_through = 2131689909;
+			public const int path_password_eye = 2131689909;
 			
 			// aapt resource value: 0x7F0F01B6
-			public const int path_password_eye_mask_visible = 2131689910;
+			public const int path_password_eye_mask_strike_through = 2131689910;
 			
 			// aapt resource value: 0x7F0F01B7
-			public const int path_password_strike_through = 2131689911;
+			public const int path_password_eye_mask_visible = 2131689911;
 			
 			// aapt resource value: 0x7F0F01B8
-			public const int pickerview_cancel = 2131689912;
+			public const int path_password_strike_through = 2131689912;
 			
 			// aapt resource value: 0x7F0F01B9
-			public const int pickerview_day = 2131689913;
+			public const int pickerview_cancel = 2131689913;
 			
 			// aapt resource value: 0x7F0F01BA
-			public const int pickerview_hours = 2131689914;
+			public const int pickerview_day = 2131689914;
 			
 			// aapt resource value: 0x7F0F01BB
-			public const int pickerview_minutes = 2131689915;
+			public const int pickerview_hours = 2131689915;
 			
 			// aapt resource value: 0x7F0F01BC
-			public const int pickerview_month = 2131689916;
+			public const int pickerview_minutes = 2131689916;
 			
 			// aapt resource value: 0x7F0F01BD
-			public const int pickerview_seconds = 2131689917;
+			public const int pickerview_month = 2131689917;
 			
 			// aapt resource value: 0x7F0F01BE
-			public const int pickerview_submit = 2131689918;
+			public const int pickerview_seconds = 2131689918;
 			
 			// aapt resource value: 0x7F0F01BF
-			public const int pickerview_year = 2131689919;
-			
-			// aapt resource value: 0x7F0F01C1
-			public const int platform_login_button_txt = 2131689921;
+			public const int pickerview_submit = 2131689919;
 			
 			// aapt resource value: 0x7F0F01C0
-			public const int plat_connected = 2131689920;
+			public const int pickerview_year = 2131689920;
 			
 			// aapt resource value: 0x7F0F01C2
-			public const int play_hour = 2131689922;
+			public const int platform_login_button_txt = 2131689922;
+			
+			// aapt resource value: 0x7F0F01C1
+			public const int plat_connected = 2131689921;
 			
 			// aapt resource value: 0x7F0F01C3
-			public const int please_connect_the_power = 2131689923;
-			
-			// aapt resource value: 0x7F0F01C5
-			public const int please_input_phonenumber_txt = 2131689925;
+			public const int play_hour = 2131689923;
 			
 			// aapt resource value: 0x7F0F01C4
-			public const int please_input_phone_txt = 2131689924;
+			public const int please_connect_the_power = 2131689924;
 			
 			// aapt resource value: 0x7F0F01C6
-			public const int please_input_platform_accesstoken_txt = 2131689926;
+			public const int please_input_phonenumber_txt = 2131689926;
+			
+			// aapt resource value: 0x7F0F01C5
+			public const int please_input_phone_txt = 2131689925;
 			
 			// aapt resource value: 0x7F0F01C7
-			public const int please_input_sign_get_sms_txt = 2131689927;
+			public const int please_input_platform_accesstoken_txt = 2131689927;
 			
 			// aapt resource value: 0x7F0F01C8
-			public const int please_input_sign_txt = 2131689928;
+			public const int please_input_sign_get_sms_txt = 2131689928;
 			
 			// aapt resource value: 0x7F0F01C9
-			public const int please_input_userid_txt = 2131689929;
+			public const int please_input_sign_txt = 2131689929;
 			
 			// aapt resource value: 0x7F0F01CA
-			public const int please_open_wifi_network = 2131689930;
+			public const int please_input_userid_txt = 2131689930;
 			
 			// aapt resource value: 0x7F0F01CB
-			public const int please_open_wifi_network_sadp = 2131689931;
+			public const int please_open_wifi_network = 2131689931;
 			
 			// aapt resource value: 0x7F0F01CC
-			public const int please_operate_after_select_any_record = 2131689932;
+			public const int please_open_wifi_network_sadp = 2131689932;
 			
 			// aapt resource value: 0x7F0F01CD
-			public const int please_try_connect_device_hotspot_manually = 2131689933;
+			public const int please_operate_after_select_any_record = 2131689933;
 			
 			// aapt resource value: 0x7F0F01CE
-			public const int plug = 2131689934;
+			public const int please_try_connect_device_hotspot_manually = 2131689934;
 			
 			// aapt resource value: 0x7F0F01CF
-			public const int pm = 2131689935;
+			public const int plug = 2131689935;
 			
 			// aapt resource value: 0x7F0F01D0
-			public const int press_again_to_exit = 2131689936;
+			public const int pm = 2131689936;
 			
 			// aapt resource value: 0x7F0F01D1
-			public const int press_to_talk_release_to_listen = 2131689937;
+			public const int press_again_to_exit = 2131689937;
 			
 			// aapt resource value: 0x7F0F01D2
-			public const int privacy_policy_and_service_agreement = 2131689938;
+			public const int press_to_talk_release_to_listen = 2131689938;
 			
 			// aapt resource value: 0x7F0F01D3
-			public const int probe_not_support_tip = 2131689939;
+			public const int privacy_policy_and_service_agreement = 2131689939;
 			
 			// aapt resource value: 0x7F0F01D4
-			public const int promptUserToActivate = 2131689940;
+			public const int probe_not_support_tip = 2131689940;
 			
 			// aapt resource value: 0x7F0F01D5
-			public const int ptz = 2131689941;
+			public const int promptUserToActivate = 2131689941;
 			
 			// aapt resource value: 0x7F0F01D6
-			public const int ptz_control_timeout_cruise_track_failed = 2131689942;
+			public const int ptz = 2131689942;
 			
 			// aapt resource value: 0x7F0F01D7
-			public const int ptz_control_timeout_sound_lacalization_failed = 2131689943;
+			public const int ptz_control_timeout_cruise_track_failed = 2131689943;
 			
 			// aapt resource value: 0x7F0F01D8
-			public const int ptz_is_preseting = 2131689944;
+			public const int ptz_control_timeout_sound_lacalization_failed = 2131689944;
 			
 			// aapt resource value: 0x7F0F01D9
-			public const int ptz_mirroring_failed = 2131689945;
+			public const int ptz_is_preseting = 2131689945;
 			
 			// aapt resource value: 0x7F0F01DA
-			public const int ptz_operation_failed = 2131689946;
+			public const int ptz_mirroring_failed = 2131689946;
 			
 			// aapt resource value: 0x7F0F01DB
-			public const int ptz_operation_too_frequently = 2131689947;
+			public const int ptz_operation_failed = 2131689947;
 			
 			// aapt resource value: 0x7F0F01DC
-			public const int ptz_preset_current_position_failed = 2131689948;
+			public const int ptz_operation_too_frequently = 2131689948;
 			
 			// aapt resource value: 0x7F0F01DD
-			public const int ptz_preset_exceed_maxnum_failed = 2131689949;
+			public const int ptz_preset_current_position_failed = 2131689949;
 			
 			// aapt resource value: 0x7F0F01DE
-			public const int ptz_preset_invalid_position_failed = 2131689950;
+			public const int ptz_preset_exceed_maxnum_failed = 2131689950;
 			
 			// aapt resource value: 0x7F0F01DF
-			public const int ptz_preset_sound_localization_failed = 2131689951;
+			public const int ptz_preset_invalid_position_failed = 2131689951;
 			
 			// aapt resource value: 0x7F0F01E0
-			public const int ptz_privacying_failed = 2131689952;
+			public const int ptz_preset_sound_localization_failed = 2131689952;
 			
 			// aapt resource value: 0x7F0F01E1
-			public const int push_cat_body = 2131689953;
+			public const int ptz_privacying_failed = 2131689953;
 			
 			// aapt resource value: 0x7F0F01E2
-			public const int push_cat_head = 2131689954;
+			public const int push_cat_body = 2131689954;
 			
 			// aapt resource value: 0x7F0F01E3
-			public const int push_event_alarm_title = 2131689955;
+			public const int push_cat_head = 2131689955;
 			
 			// aapt resource value: 0x7F0F01E4
-			public const int push_event_from = 2131689956;
+			public const int push_event_alarm_title = 2131689956;
 			
 			// aapt resource value: 0x7F0F01E5
-			public const int push_event_get = 2131689957;
+			public const int push_event_from = 2131689957;
 			
 			// aapt resource value: 0x7F0F01E6
-			public const int push_event_get_count = 2131689958;
+			public const int push_event_get = 2131689958;
 			
 			// aapt resource value: 0x7F0F01E7
-			public const int push_out_event_alarm_title = 2131689959;
+			public const int push_event_get_count = 2131689959;
 			
 			// aapt resource value: 0x7F0F01E8
-			public const int pwd_not_contain_chinese = 2131689960;
+			public const int push_out_event_alarm_title = 2131689960;
 			
 			// aapt resource value: 0x7F0F01E9
-			public const int qrcode_card = 2131689961;
+			public const int pwd_not_contain_chinese = 2131689961;
 			
 			// aapt resource value: 0x7F0F01EA
-			public const int quality_balanced = 2131689962;
+			public const int qrcode_card = 2131689962;
 			
 			// aapt resource value: 0x7F0F01EB
-			public const int quality_flunet = 2131689963;
+			public const int quality_balanced = 2131689963;
 			
 			// aapt resource value: 0x7F0F01EC
-			public const int quality_hd = 2131689964;
+			public const int quality_flunet = 2131689964;
 			
 			// aapt resource value: 0x7F0F01ED
-			public const int quality_super_hd = 2131689965;
-			
-			// aapt resource value: 0x7F0F01F4
-			public const int querying_camera_text = 2131689972;
+			public const int quality_hd = 2131689965;
 			
 			// aapt resource value: 0x7F0F01EE
-			public const int query_camera_fail = 2131689966;
-			
-			// aapt resource value: 0x7F0F01EF
-			public const int query_camera_fail_network_exception = 2131689967;
-			
-			// aapt resource value: 0x7F0F01F0
-			public const int query_camera_fail_network_exception_or_server_exception = 2131689968;
-			
-			// aapt resource value: 0x7F0F01F1
-			public const int query_camera_fail_not_exit = 2131689969;
-			
-			// aapt resource value: 0x7F0F01F2
-			public const int query_camera_fail_repeat_error = 2131689970;
-			
-			// aapt resource value: 0x7F0F01F3
-			public const int query_camera_fail_server_exception = 2131689971;
-			
-			// aapt resource value: 0x7F0F01F6
-			public const int readed = 2131689974;
+			public const int quality_super_hd = 2131689966;
 			
 			// aapt resource value: 0x7F0F01F5
-			public const int read_privacy_policy_and_service_agreement_tip = 2131689973;
+			public const int querying_camera_text = 2131689973;
+			
+			// aapt resource value: 0x7F0F01EF
+			public const int query_camera_fail = 2131689967;
+			
+			// aapt resource value: 0x7F0F01F0
+			public const int query_camera_fail_network_exception = 2131689968;
+			
+			// aapt resource value: 0x7F0F01F1
+			public const int query_camera_fail_network_exception_or_server_exception = 2131689969;
+			
+			// aapt resource value: 0x7F0F01F2
+			public const int query_camera_fail_not_exit = 2131689970;
+			
+			// aapt resource value: 0x7F0F01F3
+			public const int query_camera_fail_repeat_error = 2131689971;
+			
+			// aapt resource value: 0x7F0F01F4
+			public const int query_camera_fail_server_exception = 2131689972;
 			
 			// aapt resource value: 0x7F0F01F7
-			public const int realplay = 2131689975;
+			public const int readed = 2131689975;
+			
+			// aapt resource value: 0x7F0F01F6
+			public const int read_privacy_policy_and_service_agreement_tip = 2131689974;
 			
 			// aapt resource value: 0x7F0F01F8
-			public const int realplay_close_sound_localization_fail = 2131689976;
+			public const int realplay = 2131689976;
 			
 			// aapt resource value: 0x7F0F01F9
-			public const int realplay_encrypt_password_error_message = 2131689977;
+			public const int realplay_close_sound_localization_fail = 2131689977;
 			
 			// aapt resource value: 0x7F0F01FA
-			public const int realplay_encrypt_password_error_title = 2131689978;
+			public const int realplay_encrypt_password_error_message = 2131689978;
 			
 			// aapt resource value: 0x7F0F01FB
-			public const int realplay_fail_connect_device = 2131689979;
+			public const int realplay_encrypt_password_error_title = 2131689979;
 			
 			// aapt resource value: 0x7F0F01FC
-			public const int realplay_fail_device_not_exist = 2131689980;
+			public const int realplay_fail_connect_device = 2131689980;
 			
 			// aapt resource value: 0x7F0F01FD
-			public const int realplay_full_talk_start_tip = 2131689981;
+			public const int realplay_fail_device_not_exist = 2131689981;
 			
 			// aapt resource value: 0x7F0F01FE
-			public const int realplay_loading = 2131689982;
+			public const int realplay_full_talk_start_tip = 2131689982;
 			
 			// aapt resource value: 0x7F0F01FF
-			public const int realplay_login_password_error = 2131689983;
+			public const int realplay_loading = 2131689983;
 			
 			// aapt resource value: 0x7F0F0200
-			public const int realplay_login_password_msg = 2131689984;
+			public const int realplay_login_password_error = 2131689984;
 			
 			// aapt resource value: 0x7F0F0201
-			public const int realplay_no_encrypt_password_error = 2131689985;
+			public const int realplay_login_password_msg = 2131689985;
 			
 			// aapt resource value: 0x7F0F0202
-			public const int realplay_no_permission = 2131689986;
+			public const int realplay_no_encrypt_password_error = 2131689986;
 			
 			// aapt resource value: 0x7F0F0203
-			public const int realplay_open_sound_localization_fail = 2131689987;
+			public const int realplay_no_permission = 2131689987;
 			
 			// aapt resource value: 0x7F0F0204
-			public const int realplay_password_error_message1 = 2131689988;
+			public const int realplay_open_sound_localization_fail = 2131689988;
 			
 			// aapt resource value: 0x7F0F0205
-			public const int realplay_password_error_message3 = 2131689989;
+			public const int realplay_password_error_message1 = 2131689989;
 			
 			// aapt resource value: 0x7F0F0206
-			public const int realplay_password_error_message4 = 2131689990;
+			public const int realplay_password_error_message3 = 2131689990;
 			
 			// aapt resource value: 0x7F0F0207
-			public const int realplay_password_error_title = 2131689991;
+			public const int realplay_password_error_message4 = 2131689991;
 			
 			// aapt resource value: 0x7F0F0208
-			public const int realplay_play_fail = 2131689992;
+			public const int realplay_password_error_title = 2131689992;
 			
 			// aapt resource value: 0x7F0F0209
-			public const int realplay_play_fail_becauseof_network = 2131689993;
+			public const int realplay_play_fail = 2131689993;
 			
 			// aapt resource value: 0x7F0F020A
-			public const int realplay_play_no_video_source = 2131689994;
+			public const int realplay_play_fail_becauseof_network = 2131689994;
 			
 			// aapt resource value: 0x7F0F020B
-			public const int realplay_play_talkback_fail = 2131689995;
+			public const int realplay_play_no_video_source = 2131689995;
 			
 			// aapt resource value: 0x7F0F020C
-			public const int realplay_play_talkback_fail_ison = 2131689996;
+			public const int realplay_play_talkback_fail = 2131689996;
 			
 			// aapt resource value: 0x7F0F020D
-			public const int realplay_play_talkback_fail_privacy = 2131689997;
+			public const int realplay_play_talkback_fail_ison = 2131689997;
 			
 			// aapt resource value: 0x7F0F020E
-			public const int realplay_play_talkback_network_exception = 2131689998;
+			public const int realplay_play_talkback_fail_privacy = 2131689998;
 			
 			// aapt resource value: 0x7F0F020F
-			public const int realplay_play_talkback_request_timeout = 2131689999;
+			public const int realplay_play_talkback_network_exception = 2131689999;
 			
 			// aapt resource value: 0x7F0F0210
-			public const int realplay_set_fail_network = 2131690000;
+			public const int realplay_play_talkback_request_timeout = 2131690000;
 			
 			// aapt resource value: 0x7F0F0211
-			public const int realplay_set_fail_status = 2131690001;
+			public const int realplay_set_fail_network = 2131690001;
 			
 			// aapt resource value: 0x7F0F0212
-			public const int realplay_set_vediomode_fail = 2131690002;
+			public const int realplay_set_fail_status = 2131690002;
 			
 			// aapt resource value: 0x7F0F0213
-			public const int realplay_share_no_permission = 2131690003;
+			public const int realplay_set_vediomode_fail = 2131690003;
 			
 			// aapt resource value: 0x7F0F0214
-			public const int realplay_share_time_over = 2131690004;
+			public const int realplay_share_no_permission = 2131690004;
 			
 			// aapt resource value: 0x7F0F0215
-			public const int realplay_verifycode_error_message0 = 2131690005;
+			public const int realplay_share_time_over = 2131690005;
 			
 			// aapt resource value: 0x7F0F0216
-			public const int realplay_verifycode_error_placehold = 2131690006;
+			public const int realplay_verifycode_error_message0 = 2131690006;
 			
 			// aapt resource value: 0x7F0F0217
-			public const int receice_leave_msg_audio = 2131690007;
+			public const int realplay_verifycode_error_placehold = 2131690007;
 			
 			// aapt resource value: 0x7F0F0218
-			public const int receice_leave_msg_video = 2131690008;
+			public const int receice_leave_msg_audio = 2131690008;
 			
 			// aapt resource value: 0x7F0F0219
-			public const int record = 2131690009;
+			public const int receice_leave_msg_video = 2131690009;
 			
 			// aapt resource value: 0x7F0F021A
-			public const int refresh = 2131690010;
+			public const int record = 2131690010;
 			
 			// aapt resource value: 0x7F0F021B
-			public const int refresh_empty_hint = 2131690011;
+			public const int refresh = 2131690011;
 			
 			// aapt resource value: 0x7F0F021C
-			public const int refresh_fail_hint = 2131690012;
-			
-			// aapt resource value: 0x7F0F021E
-			public const int remoteplayback_capture_fail = 2131690014;
-			
-			// aapt resource value: 0x7F0F021F
-			public const int remoteplayback_capture_fail_for_memory = 2131690015;
-			
-			// aapt resource value: 0x7F0F0220
-			public const int remoteplayback_connect_device_error = 2131690016;
-			
-			// aapt resource value: 0x7F0F0221
-			public const int remoteplayback_connect_server_error = 2131690017;
-			
-			// aapt resource value: 0x7F0F0222
-			public const int remoteplayback_fail = 2131690018;
-			
-			// aapt resource value: 0x7F0F0223
-			public const int remoteplayback_norecordfile = 2131690019;
-			
-			// aapt resource value: 0x7F0F0224
-			public const int remoteplayback_norecordfile_alarm = 2131690020;
-			
-			// aapt resource value: 0x7F0F0225
-			public const int remoteplayback_over_link = 2131690021;
-			
-			// aapt resource value: 0x7F0F0226
-			public const int remoteplayback_record_fail = 2131690022;
-			
-			// aapt resource value: 0x7F0F0227
-			public const int remoteplayback_record_fail_for_memory = 2131690023;
+			public const int refresh_empty_hint = 2131690012;
 			
 			// aapt resource value: 0x7F0F021D
-			public const int remoteplayback_SDCard_disable_use = 2131690013;
+			public const int refresh_fail_hint = 2131690013;
+			
+			// aapt resource value: 0x7F0F021F
+			public const int remoteplayback_capture_fail = 2131690015;
+			
+			// aapt resource value: 0x7F0F0220
+			public const int remoteplayback_capture_fail_for_memory = 2131690016;
+			
+			// aapt resource value: 0x7F0F0221
+			public const int remoteplayback_connect_device_error = 2131690017;
+			
+			// aapt resource value: 0x7F0F0222
+			public const int remoteplayback_connect_server_error = 2131690018;
+			
+			// aapt resource value: 0x7F0F0223
+			public const int remoteplayback_fail = 2131690019;
+			
+			// aapt resource value: 0x7F0F0224
+			public const int remoteplayback_norecordfile = 2131690020;
+			
+			// aapt resource value: 0x7F0F0225
+			public const int remoteplayback_norecordfile_alarm = 2131690021;
+			
+			// aapt resource value: 0x7F0F0226
+			public const int remoteplayback_over_link = 2131690022;
+			
+			// aapt resource value: 0x7F0F0227
+			public const int remoteplayback_record_fail = 2131690023;
 			
 			// aapt resource value: 0x7F0F0228
-			public const int remoteplayback_searchfile_fail_for_device = 2131690024;
+			public const int remoteplayback_record_fail_for_memory = 2131690024;
+			
+			// aapt resource value: 0x7F0F021E
+			public const int remoteplayback_SDCard_disable_use = 2131690014;
 			
 			// aapt resource value: 0x7F0F0229
-			public const int remoteplayback_searchfile_fail_for_network = 2131690025;
+			public const int remoteplayback_searchfile_fail_for_device = 2131690025;
 			
 			// aapt resource value: 0x7F0F022A
-			public const int reset_10_sec_to_release = 2131690026;
+			public const int remoteplayback_searchfile_fail_for_network = 2131690026;
 			
 			// aapt resource value: 0x7F0F022B
-			public const int reset_device = 2131690027;
+			public const int reset_10_sec_to_release = 2131690027;
 			
 			// aapt resource value: 0x7F0F022C
-			public const int result_txt = 2131690028;
+			public const int reset_device = 2131690028;
 			
 			// aapt resource value: 0x7F0F022D
-			public const int retry = 2131690029;
-			
-			// aapt resource value: 0x7F0F022F
-			public const int router = 2131690031;
+			public const int result_txt = 2131690029;
 			
 			// aapt resource value: 0x7F0F022E
-			public const int route_status_light = 2131690030;
+			public const int retry = 2131690030;
 			
 			// aapt resource value: 0x7F0F0230
-			public const int sadp_activate_state1 = 2131690032;
+			public const int router = 2131690032;
+			
+			// aapt resource value: 0x7F0F022F
+			public const int route_status_light = 2131690031;
 			
 			// aapt resource value: 0x7F0F0231
-			public const int sadp_activate_state2 = 2131690033;
+			public const int sadp_activate_state1 = 2131690033;
 			
 			// aapt resource value: 0x7F0F0232
-			public const int sadp_password_input_hint = 2131690034;
+			public const int sadp_activate_state2 = 2131690034;
 			
 			// aapt resource value: 0x7F0F0233
-			public const int sadp_password_toast = 2131690035;
+			public const int sadp_password_input_hint = 2131690035;
 			
 			// aapt resource value: 0x7F0F0234
-			public const int sadp_password_too_weak = 2131690036;
+			public const int sadp_password_toast = 2131690036;
 			
 			// aapt resource value: 0x7F0F0235
-			public const int sadp_quit_activate = 2131690037;
+			public const int sadp_password_too_weak = 2131690037;
 			
 			// aapt resource value: 0x7F0F0236
-			public const int save_encrypt_password_fail_network_exception = 2131690038;
+			public const int sadp_quit_activate = 2131690038;
 			
 			// aapt resource value: 0x7F0F0237
-			public const int scan_add = 2131690039;
+			public const int save_encrypt_password_fail_network_exception = 2131690039;
 			
 			// aapt resource value: 0x7F0F0238
-			public const int scan_connet_network = 2131690040;
+			public const int scan_add = 2131690040;
 			
 			// aapt resource value: 0x7F0F0239
-			public const int scan_cue_txt = 2131690041;
+			public const int scan_connet_network = 2131690041;
 			
 			// aapt resource value: 0x7F0F023A
-			public const int scan_device_add_by_others = 2131690042;
+			public const int scan_cue_txt = 2131690042;
 			
 			// aapt resource value: 0x7F0F023B
-			public const int scan_device_search = 2131690043;
+			public const int scan_device_add_by_others = 2131690043;
 			
 			// aapt resource value: 0x7F0F023C
-			public const int scan_device_serial_no = 2131690044;
+			public const int scan_device_search = 2131690044;
 			
 			// aapt resource value: 0x7F0F023D
-			public const int scan_network_unavailible = 2131690045;
+			public const int scan_device_serial_no = 2131690045;
 			
 			// aapt resource value: 0x7F0F023E
-			public const int scan_probe_qrcode_error = 2131690046;
+			public const int scan_network_unavailible = 2131690046;
 			
 			// aapt resource value: 0x7F0F023F
-			public const int scan_search_probe_qrcode = 2131690047;
+			public const int scan_probe_qrcode_error = 2131690047;
 			
 			// aapt resource value: 0x7F0F0240
-			public const int scan_title_txt = 2131690048;
+			public const int scan_search_probe_qrcode = 2131690048;
 			
 			// aapt resource value: 0x7F0F0241
-			public const int screenshot_fail = 2131690049;
+			public const int scan_title_txt = 2131690049;
 			
 			// aapt resource value: 0x7F0F0242
-			public const int screenshot_success = 2131690050;
+			public const int screenshot_fail = 2131690050;
 			
 			// aapt resource value: 0x7F0F0243
-			public const int sdk_is_init = 2131690051;
+			public const int screenshot_success = 2131690051;
 			
 			// aapt resource value: 0x7F0F0244
-			public const int search = 2131690052;
+			public const int sdk_is_init = 2131690052;
 			
 			// aapt resource value: 0x7F0F0245
-			public const int search_menu_title = 2131690053;
+			public const int search = 2131690053;
 			
 			// aapt resource value: 0x7F0F0246
-			public const int secure_validate = 2131690054;
-			
-			// aapt resource value: 0x7F0F0248
-			public const int secure_validatee_fail = 2131690056;
+			public const int search_menu_title = 2131690054;
 			
 			// aapt resource value: 0x7F0F0247
-			public const int secure_validate_success = 2131690055;
+			public const int secure_validate = 2131690055;
 			
 			// aapt resource value: 0x7F0F0249
-			public const int seek_camera_fail_device_not_support_shipin7 = 2131690057;
+			public const int secure_validatee_fail = 2131690057;
+			
+			// aapt resource value: 0x7F0F0248
+			public const int secure_validate_success = 2131690056;
 			
 			// aapt resource value: 0x7F0F024A
-			public const int select_all = 2131690058;
+			public const int seek_camera_fail_device_not_support_shipin7 = 2131690058;
 			
 			// aapt resource value: 0x7F0F024B
-			public const int select_date = 2131690059;
+			public const int select_all = 2131690059;
 			
 			// aapt resource value: 0x7F0F024C
-			public const int serial_add_hint = 2131690060;
+			public const int select_date = 2131690060;
 			
 			// aapt resource value: 0x7F0F024D
-			public const int serial_add_password_error_title = 2131690061;
+			public const int serial_add_hint = 2131690061;
 			
 			// aapt resource value: 0x7F0F024E
-			public const int serial_input_text = 2131690062;
+			public const int serial_add_password_error_title = 2131690062;
 			
 			// aapt resource value: 0x7F0F024F
-			public const int serial_number_error = 2131690063;
+			public const int serial_input_text = 2131690063;
 			
 			// aapt resource value: 0x7F0F0250
-			public const int serial_number_is_null = 2131690064;
+			public const int serial_number_error = 2131690064;
 			
 			// aapt resource value: 0x7F0F0251
-			public const int serial_number_put_the_right_no = 2131690065;
+			public const int serial_number_is_null = 2131690065;
 			
 			// aapt resource value: 0x7F0F0252
-			public const int server_area = 2131690066;
-			
-			// aapt resource value: 0x7F0F0257
-			public const int setting = 2131690071;
-			
-			// aapt resource value: 0x7F0F0258
-			public const int setting_video_level = 2131690072;
+			public const int serial_number_put_the_right_no = 2131690066;
 			
 			// aapt resource value: 0x7F0F0253
-			public const int set_defence_plan = 2131690067;
+			public const int server_area = 2131690067;
 			
-			// aapt resource value: 0x7F0F0254
-			public const int set_device_wifi_network_need_reset_the_device = 2131690068;
-			
-			// aapt resource value: 0x7F0F0255
-			public const int set_ptz_flip_fail = 2131690069;
-			
-			// aapt resource value: 0x7F0F0256
-			public const int set_ptz_flip_success = 2131690070;
+			// aapt resource value: 0x7F0F0258
+			public const int setting = 2131690072;
 			
 			// aapt resource value: 0x7F0F0259
-			public const int share_devices = 2131690073;
+			public const int setting_video_level = 2131690073;
+			
+			// aapt resource value: 0x7F0F0254
+			public const int set_defence_plan = 2131690068;
+			
+			// aapt resource value: 0x7F0F0255
+			public const int set_device_wifi_network_need_reset_the_device = 2131690069;
+			
+			// aapt resource value: 0x7F0F0256
+			public const int set_ptz_flip_fail = 2131690070;
+			
+			// aapt resource value: 0x7F0F0257
+			public const int set_ptz_flip_success = 2131690071;
 			
 			// aapt resource value: 0x7F0F025A
-			public const int sms_verify_bind_error = 2131690074;
+			public const int share_devices = 2131690074;
 			
 			// aapt resource value: 0x7F0F025B
-			public const int sms_verify_code_received = 2131690075;
+			public const int sms_verify_bind_error = 2131690075;
 			
 			// aapt resource value: 0x7F0F025C
-			public const int source_detection_off = 2131690076;
+			public const int sms_verify_code_received = 2131690076;
 			
 			// aapt resource value: 0x7F0F025D
-			public const int source_detection_on = 2131690077;
+			public const int source_detection_off = 2131690077;
 			
 			// aapt resource value: 0x7F0F025E
-			public const int specified_device = 2131690078;
+			public const int source_detection_on = 2131690078;
 			
 			// aapt resource value: 0x7F0F025F
-			public const int srl_component_falsify = 2131690079;
+			public const int specified_device = 2131690079;
 			
 			// aapt resource value: 0x7F0F0260
-			public const int srl_content_empty = 2131690080;
+			public const int srl_component_falsify = 2131690080;
 			
 			// aapt resource value: 0x7F0F0261
-			public const int srl_footer_failed = 2131690081;
+			public const int srl_content_empty = 2131690081;
 			
 			// aapt resource value: 0x7F0F0262
-			public const int srl_footer_finish = 2131690082;
+			public const int srl_footer_failed = 2131690082;
 			
 			// aapt resource value: 0x7F0F0263
-			public const int srl_footer_loading = 2131690083;
+			public const int srl_footer_finish = 2131690083;
 			
 			// aapt resource value: 0x7F0F0264
-			public const int srl_footer_nothing = 2131690084;
+			public const int srl_footer_loading = 2131690084;
 			
 			// aapt resource value: 0x7F0F0265
-			public const int srl_footer_pulling = 2131690085;
+			public const int srl_footer_nothing = 2131690085;
 			
 			// aapt resource value: 0x7F0F0266
-			public const int srl_footer_refreshing = 2131690086;
+			public const int srl_footer_pulling = 2131690086;
 			
 			// aapt resource value: 0x7F0F0267
-			public const int srl_footer_release = 2131690087;
+			public const int srl_footer_refreshing = 2131690087;
 			
 			// aapt resource value: 0x7F0F0268
-			public const int srl_header_failed = 2131690088;
+			public const int srl_footer_release = 2131690088;
 			
 			// aapt resource value: 0x7F0F0269
-			public const int srl_header_finish = 2131690089;
+			public const int srl_header_failed = 2131690089;
 			
 			// aapt resource value: 0x7F0F026A
-			public const int srl_header_loading = 2131690090;
+			public const int srl_header_finish = 2131690090;
 			
 			// aapt resource value: 0x7F0F026B
-			public const int srl_header_pulling = 2131690091;
+			public const int srl_header_loading = 2131690091;
 			
 			// aapt resource value: 0x7F0F026C
-			public const int srl_header_refreshing = 2131690092;
+			public const int srl_header_pulling = 2131690092;
 			
 			// aapt resource value: 0x7F0F026D
-			public const int srl_header_release = 2131690093;
+			public const int srl_header_refreshing = 2131690093;
 			
 			// aapt resource value: 0x7F0F026E
-			public const int srl_header_secondary = 2131690094;
+			public const int srl_header_release = 2131690094;
 			
 			// aapt resource value: 0x7F0F026F
-			public const int srl_header_update = 2131690095;
+			public const int srl_header_secondary = 2131690095;
 			
 			// aapt resource value: 0x7F0F0270
-			public const int start_cloud = 2131690096;
+			public const int srl_header_update = 2131690096;
 			
 			// aapt resource value: 0x7F0F0271
-			public const int start_to_experience = 2131690097;
+			public const int start_cloud = 2131690097;
 			
 			// aapt resource value: 0x7F0F0272
-			public const int start_voice_talk = 2131690098;
+			public const int start_to_experience = 2131690098;
 			
 			// aapt resource value: 0x7F0F0273
-			public const int status_bar_notification_info_overflow = 2131690099;
+			public const int start_voice_talk = 2131690099;
 			
 			// aapt resource value: 0x7F0F0274
-			public const int step3_adding_device_to_account = 2131690100;
+			public const int status_bar_notification_info_overflow = 2131690100;
 			
 			// aapt resource value: 0x7F0F0275
-			public const int storage_status = 2131690101;
+			public const int step3_adding_device_to_account = 2131690101;
 			
 			// aapt resource value: 0x7F0F0276
-			public const int stream_type = 2131690102;
-			
-			// aapt resource value: 0x7F0F0279
-			public const int string_apiurl = 2131690105;
+			public const int storage_status = 2131690102;
 			
 			// aapt resource value: 0x7F0F0277
-			public const int string_ap_connection = 2131690103;
-			
-			// aapt resource value: 0x7F0F0278
-			public const int string_ap_connection_normal = 2131690104;
+			public const int stream_type = 2131690103;
 			
 			// aapt resource value: 0x7F0F027A
-			public const int string_authurl = 2131690106;
+			public const int string_apiurl = 2131690106;
 			
-			// aapt resource value: 0x7F0F027C
-			public const int string_deviceserial = 2131690108;
+			// aapt resource value: 0x7F0F0278
+			public const int string_ap_connection = 2131690104;
+			
+			// aapt resource value: 0x7F0F0279
+			public const int string_ap_connection_normal = 2131690105;
 			
 			// aapt resource value: 0x7F0F027B
-			public const int string_device_network_mode = 2131690107;
+			public const int string_authurl = 2131690107;
 			
 			// aapt resource value: 0x7F0F027D
-			public const int string_ezopenurl = 2131690109;
+			public const int string_deviceserial = 2131690109;
+			
+			// aapt resource value: 0x7F0F027C
+			public const int string_device_network_mode = 2131690108;
 			
 			// aapt resource value: 0x7F0F027E
-			public const int string_get_device_version_fail = 2131690110;
+			public const int string_ezopenurl = 2131690110;
 			
 			// aapt resource value: 0x7F0F027F
-			public const int string_smart_and_sound_wave_connection = 2131690111;
+			public const int string_get_device_version_fail = 2131690111;
 			
 			// aapt resource value: 0x7F0F0280
-			public const int string_smart_connection = 2131690112;
+			public const int string_smart_and_sound_wave_connection = 2131690112;
 			
 			// aapt resource value: 0x7F0F0281
-			public const int string_smart_connection_normal = 2131690113;
+			public const int string_smart_connection = 2131690113;
 			
 			// aapt resource value: 0x7F0F0282
-			public const int string_sound_wave_connection = 2131690114;
+			public const int string_smart_connection_normal = 2131690114;
 			
 			// aapt resource value: 0x7F0F0283
-			public const int string_wired_connection = 2131690115;
+			public const int string_sound_wave_connection = 2131690115;
 			
 			// aapt resource value: 0x7F0F0284
-			public const int submit_secure_validate = 2131690116;
+			public const int string_wired_connection = 2131690116;
 			
 			// aapt resource value: 0x7F0F0285
-			public const int submit_sms_code = 2131690117;
+			public const int submit_secure_validate = 2131690117;
 			
 			// aapt resource value: 0x7F0F0286
-			public const int switch_to_handset = 2131690118;
+			public const int submit_sms_code = 2131690118;
 			
 			// aapt resource value: 0x7F0F0287
-			public const int switch_to_speaker = 2131690119;
+			public const int switch_to_handset = 2131690119;
 			
 			// aapt resource value: 0x7F0F0288
-			public const int system_default_channel = 2131690120;
+			public const int switch_to_speaker = 2131690120;
 			
 			// aapt resource value: 0x7F0F0289
-			public const int tab_more = 2131690121;
+			public const int system_default_channel = 2131690121;
 			
 			// aapt resource value: 0x7F0F028A
-			public const int talk = 2131690122;
-			
-			// aapt resource value: 0x7F0F028D
-			public const int talking = 2131690125;
+			public const int tab_more = 2131690122;
 			
 			// aapt resource value: 0x7F0F028B
-			public const int talk_open_failed = 2131690123;
-			
-			// aapt resource value: 0x7F0F028C
-			public const int talk_open_success = 2131690124;
+			public const int talk = 2131690123;
 			
 			// aapt resource value: 0x7F0F028E
-			public const int tip_heard_voice = 2131690126;
+			public const int talking = 2131690126;
+			
+			// aapt resource value: 0x7F0F028C
+			public const int talk_open_failed = 2131690124;
+			
+			// aapt resource value: 0x7F0F028D
+			public const int talk_open_success = 2131690125;
 			
 			// aapt resource value: 0x7F0F028F
-			public const int tip_login_out = 2131690127;
+			public const int tip_heard_voice = 2131690127;
 			
 			// aapt resource value: 0x7F0F0290
-			public const int tip_of_added_by_yourself_and_online = 2131690128;
+			public const int tip_login_out = 2131690128;
 			
 			// aapt resource value: 0x7F0F0291
-			public const int tip_of_bad_net = 2131690129;
+			public const int tip_of_added_by_yourself_and_online = 2131690129;
 			
 			// aapt resource value: 0x7F0F0292
-			public const int tip_playback_again = 2131690130;
+			public const int tip_of_bad_net = 2131690130;
 			
 			// aapt resource value: 0x7F0F0293
-			public const int tip_specified_device = 2131690131;
+			public const int tip_playback_again = 2131690131;
 			
 			// aapt resource value: 0x7F0F0294
-			public const int title_activate_device = 2131690132;
+			public const int tip_specified_device = 2131690132;
 			
 			// aapt resource value: 0x7F0F0295
-			public const int title_activate_device_fail = 2131690133;
+			public const int title_activate_device = 2131690133;
 			
 			// aapt resource value: 0x7F0F0296
-			public const int title_activity_connect_device_wifi = 2131690134;
+			public const int title_activate_device_fail = 2131690134;
 			
 			// aapt resource value: 0x7F0F0297
-			public const int title_activity_ezupgrade_device = 2131690135;
+			public const int title_activity_connect_device_wifi = 2131690135;
 			
 			// aapt resource value: 0x7F0F0298
-			public const int today = 2131690136;
+			public const int title_activity_ezupgrade_device = 2131690136;
 			
 			// aapt resource value: 0x7F0F0299
-			public const int touch_fingerprint_sensor_hint = 2131690137;
+			public const int today = 2131690137;
 			
 			// aapt resource value: 0x7F0F029A
-			public const int touch_to_load = 2131690138;
+			public const int touch_fingerprint_sensor_hint = 2131690138;
 			
 			// aapt resource value: 0x7F0F029B
-			public const int try_again = 2131690139;
+			public const int touch_to_load = 2131690139;
 			
 			// aapt resource value: 0x7F0F029C
-			public const int ui_call_demo_txt = 2131690140;
+			public const int try_again = 2131690140;
 			
 			// aapt resource value: 0x7F0F029D
-			public const int unable_identify_two_dimensional_code_tip = 2131690141;
+			public const int ui_call_demo_txt = 2131690141;
 			
 			// aapt resource value: 0x7F0F029E
-			public const int unbind_to_bind = 2131690142;
+			public const int unable_identify_two_dimensional_code_tip = 2131690142;
 			
 			// aapt resource value: 0x7F0F029F
-			public const int unknow_ssid = 2131690143;
+			public const int unbind_to_bind = 2131690143;
 			
 			// aapt resource value: 0x7F0F02A0
-			public const int unlock_fail = 2131690144;
+			public const int unknow_ssid = 2131690144;
 			
 			// aapt resource value: 0x7F0F02A1
-			public const int unlock_success = 2131690145;
+			public const int unlock_fail = 2131690145;
 			
 			// aapt resource value: 0x7F0F02A2
-			public const int unnamed = 2131690146;
+			public const int unlock_success = 2131690146;
 			
 			// aapt resource value: 0x7F0F02A3
-			public const int update_exit = 2131690147;
+			public const int unnamed = 2131690147;
 			
 			// aapt resource value: 0x7F0F02A4
-			public const int upgrade = 2131690148;
+			public const int update_exit = 2131690148;
 			
 			// aapt resource value: 0x7F0F02A5
-			public const int upgrade_fail = 2131690149;
+			public const int upgrade = 2131690149;
 			
 			// aapt resource value: 0x7F0F02A6
-			public const int upgrade_progress = 2131690150;
+			public const int upgrade_fail = 2131690150;
 			
 			// aapt resource value: 0x7F0F02A7
-			public const int upgrade_success = 2131690151;
+			public const int upgrade_progress = 2131690151;
 			
 			// aapt resource value: 0x7F0F02A8
-			public const int upgrade_success_progress = 2131690152;
-			
-			// aapt resource value: 0x7F0F02AD
-			public const int upsdk_appstore_install = 2131690157;
-			
-			// aapt resource value: 0x7F0F02AE
-			public const int upsdk_apptouch_store_url = 2131690158;
+			public const int upgrade_success = 2131690152;
 			
 			// aapt resource value: 0x7F0F02A9
-			public const int upsdk_app_download_info_new = 2131690153;
+			public const int upgrade_success_progress = 2131690153;
 			
-			// aapt resource value: 0x7F0F02AA
-			public const int upsdk_app_download_installing = 2131690154;
-			
-			// aapt resource value: 0x7F0F02AB
-			public const int upsdk_app_size = 2131690155;
-			
-			// aapt resource value: 0x7F0F02AC
-			public const int upsdk_app_version = 2131690156;
+			// aapt resource value: 0x7F0F02AE
+			public const int upsdk_appstore_install = 2131690158;
 			
 			// aapt resource value: 0x7F0F02AF
-			public const int upsdk_cancel = 2131690159;
+			public const int upsdk_apptouch_store_url = 2131690159;
+			
+			// aapt resource value: 0x7F0F02AA
+			public const int upsdk_app_download_info_new = 2131690154;
+			
+			// aapt resource value: 0x7F0F02AB
+			public const int upsdk_app_download_installing = 2131690155;
+			
+			// aapt resource value: 0x7F0F02AC
+			public const int upsdk_app_size = 2131690156;
+			
+			// aapt resource value: 0x7F0F02AD
+			public const int upsdk_app_version = 2131690157;
 			
 			// aapt resource value: 0x7F0F02B0
-			public const int upsdk_checking_update_prompt = 2131690160;
+			public const int upsdk_cancel = 2131690160;
 			
 			// aapt resource value: 0x7F0F02B1
-			public const int upsdk_choice_update = 2131690161;
+			public const int upsdk_checking_update_prompt = 2131690161;
 			
 			// aapt resource value: 0x7F0F02B2
-			public const int upsdk_detail = 2131690162;
+			public const int upsdk_choice_update = 2131690162;
 			
 			// aapt resource value: 0x7F0F02B3
-			public const int upsdk_getting_message_fail_prompt_toast = 2131690163;
+			public const int upsdk_detail = 2131690163;
 			
 			// aapt resource value: 0x7F0F02B4
-			public const int upsdk_mobile_dld_warn = 2131690164;
+			public const int upsdk_getting_message_fail_prompt_toast = 2131690164;
 			
 			// aapt resource value: 0x7F0F02B5
-			public const int upsdk_no_available_network_prompt_toast = 2131690165;
+			public const int upsdk_mobile_dld_warn = 2131690165;
 			
 			// aapt resource value: 0x7F0F02B6
-			public const int upsdk_ota_app_name = 2131690166;
+			public const int upsdk_no_available_network_prompt_toast = 2131690166;
 			
 			// aapt resource value: 0x7F0F02B7
-			public const int upsdk_ota_cancel = 2131690167;
+			public const int upsdk_ota_app_name = 2131690167;
 			
 			// aapt resource value: 0x7F0F02B8
-			public const int upsdk_ota_force_cancel_new = 2131690168;
+			public const int upsdk_ota_cancel = 2131690168;
 			
 			// aapt resource value: 0x7F0F02B9
-			public const int upsdk_ota_notify_updatebtn = 2131690169;
+			public const int upsdk_ota_force_cancel_new = 2131690169;
 			
 			// aapt resource value: 0x7F0F02BA
-			public const int upsdk_ota_title = 2131690170;
+			public const int upsdk_ota_notify_updatebtn = 2131690170;
 			
 			// aapt resource value: 0x7F0F02BB
-			public const int upsdk_storage_utils = 2131690171;
+			public const int upsdk_ota_title = 2131690171;
 			
 			// aapt resource value: 0x7F0F02BC
-			public const int upsdk_store_url = 2131690172;
+			public const int upsdk_storage_utils = 2131690172;
 			
 			// aapt resource value: 0x7F0F02BD
-			public const int upsdk_third_app_dl_cancel_download_prompt_ex = 2131690173;
+			public const int upsdk_store_url = 2131690173;
 			
 			// aapt resource value: 0x7F0F02BE
-			public const int upsdk_third_app_dl_install_failed = 2131690174;
+			public const int upsdk_third_app_dl_cancel_download_prompt_ex = 2131690174;
 			
 			// aapt resource value: 0x7F0F02BF
-			public const int upsdk_third_app_dl_sure_cancel_download = 2131690175;
+			public const int upsdk_third_app_dl_install_failed = 2131690175;
 			
 			// aapt resource value: 0x7F0F02C0
-			public const int upsdk_update_check_no_new_version = 2131690176;
+			public const int upsdk_third_app_dl_sure_cancel_download = 2131690176;
 			
 			// aapt resource value: 0x7F0F02C1
-			public const int user_name_txt = 2131690177;
+			public const int upsdk_update_check_no_new_version = 2131690177;
 			
 			// aapt resource value: 0x7F0F02C2
-			public const int verify_code_error = 2131690178;
+			public const int user_name_txt = 2131690178;
 			
 			// aapt resource value: 0x7F0F02C3
-			public const int verify_sms_code_fail = 2131690179;
+			public const int verify_code_error = 2131690179;
 			
 			// aapt resource value: 0x7F0F02C4
-			public const int verify_sms_code_success = 2131690180;
+			public const int verify_sms_code_fail = 2131690180;
 			
 			// aapt resource value: 0x7F0F02C5
-			public const int version_newest = 2131690181;
+			public const int verify_sms_code_success = 2131690181;
 			
 			// aapt resource value: 0x7F0F02C6
-			public const int video_answer = 2131690182;
+			public const int version_newest = 2131690182;
 			
 			// aapt resource value: 0x7F0F02C7
-			public const int video_box = 2131690183;
+			public const int video_answer = 2131690183;
 			
 			// aapt resource value: 0x7F0F02C8
-			public const int video_confirm = 2131690184;
+			public const int video_box = 2131690184;
 			
 			// aapt resource value: 0x7F0F02C9
-			public const int video_device = 2131690185;
+			public const int video_confirm = 2131690185;
 			
 			// aapt resource value: 0x7F0F02CA
-			public const int video_fail = 2131690186;
+			public const int video_device = 2131690186;
 			
 			// aapt resource value: 0x7F0F02CB
-			public const int video_hang_up = 2131690187;
+			public const int video_fail = 2131690187;
 			
 			// aapt resource value: 0x7F0F02CC
-			public const int video_icon = 2131690188;
+			public const int video_hang_up = 2131690188;
 			
 			// aapt resource value: 0x7F0F02CD
-			public const int video_not_answer = 2131690189;
+			public const int video_icon = 2131690189;
 			
 			// aapt resource value: 0x7F0F02CE
-			public const int video_screenshot = 2131690190;
+			public const int video_not_answer = 2131690190;
 			
 			// aapt resource value: 0x7F0F02CF
-			public const int video_square = 2131690191;
+			public const int video_screenshot = 2131690191;
 			
 			// aapt resource value: 0x7F0F02D0
-			public const int video_success = 2131690192;
+			public const int video_square = 2131690192;
 			
 			// aapt resource value: 0x7F0F02D1
-			public const int video_talk_call_cancel = 2131690193;
+			public const int video_success = 2131690193;
 			
 			// aapt resource value: 0x7F0F02D2
-			public const int video_talk_call_is_accepted = 2131690194;
+			public const int video_talk_call_cancel = 2131690194;
 			
 			// aapt resource value: 0x7F0F02D3
-			public const int video_talk_is_playing = 2131690195;
+			public const int video_talk_call_is_accepted = 2131690195;
 			
 			// aapt resource value: 0x7F0F02D4
-			public const int video_talk_sdk_toast_hang_up = 2131690196;
+			public const int video_talk_is_playing = 2131690196;
 			
 			// aapt resource value: 0x7F0F02D5
-			public const int video_talk_sdk_toast_nobody = 2131690197;
+			public const int video_talk_sdk_toast_hang_up = 2131690197;
 			
 			// aapt resource value: 0x7F0F02D6
-			public const int video_talk_signal_weak = 2131690198;
+			public const int video_talk_sdk_toast_nobody = 2131690198;
 			
 			// aapt resource value: 0x7F0F02D7
-			public const int video_talk_watch_is_busy = 2131690199;
+			public const int video_talk_signal_weak = 2131690199;
 			
 			// aapt resource value: 0x7F0F02D8
-			public const int video_talk_watch_temperature_high_hang = 2131690200;
+			public const int video_talk_watch_is_busy = 2131690200;
 			
 			// aapt resource value: 0x7F0F02D9
-			public const int video_talk_watch_temperature_high_hint = 2131690201;
+			public const int video_talk_watch_temperature_high_hang = 2131690201;
 			
 			// aapt resource value: 0x7F0F02DA
-			public const int video_talk_watch_temperature_high_reject = 2131690202;
+			public const int video_talk_watch_temperature_high_hint = 2131690202;
 			
 			// aapt resource value: 0x7F0F02DB
-			public const int video_talk_watch_temperature_high_warn = 2131690203;
+			public const int video_talk_watch_temperature_high_reject = 2131690203;
 			
 			// aapt resource value: 0x7F0F02DC
-			public const int video_tip = 2131690204;
+			public const int video_talk_watch_temperature_high_warn = 2131690204;
 			
 			// aapt resource value: 0x7F0F02DD
-			public const int video_unlock = 2131690205;
+			public const int video_tip = 2131690205;
 			
 			// aapt resource value: 0x7F0F02DE
-			public const int wait = 2131690206;
+			public const int video_unlock = 2131690206;
 			
 			// aapt resource value: 0x7F0F02DF
-			public const int web_login_button_txt = 2131690207;
+			public const int wait = 2131690207;
 			
 			// aapt resource value: 0x7F0F02E0
-			public const int wechat_interconnect = 2131690208;
+			public const int web_login_button_txt = 2131690208;
 			
 			// aapt resource value: 0x7F0F02E1
-			public const int wifi_connected = 2131690209;
+			public const int wechat_interconnect = 2131690209;
 			
 			// aapt resource value: 0x7F0F02E2
-			public const int wifi_connection_finish_need_refresh = 2131690210;
+			public const int wifi_connected = 2131690210;
 			
 			// aapt resource value: 0x7F0F02E3
-			public const int wifi_set = 2131690211;
+			public const int wifi_connection_finish_need_refresh = 2131690211;
 			
 			// aapt resource value: 0x7F0F02E4
-			public const int wifi_setting = 2131690212;
+			public const int wifi_set = 2131690212;
 			
 			// aapt resource value: 0x7F0F02E5
-			public const int wired_connection = 2131690213;
-			
-			// aapt resource value: 0x7F0F02E7
-			public const int xlistview_footer_hint_normal = 2131690215;
+			public const int wifi_setting = 2131690213;
 			
 			// aapt resource value: 0x7F0F02E6
-			public const int xlistview_footer_hint_no_more_device = 2131690214;
+			public const int wired_connection = 2131690214;
 			
 			// aapt resource value: 0x7F0F02E8
-			public const int xlistview_footer_hint_ready = 2131690216;
+			public const int xlistview_footer_hint_normal = 2131690216;
+			
+			// aapt resource value: 0x7F0F02E7
+			public const int xlistview_footer_hint_no_more_device = 2131690215;
 			
 			// aapt resource value: 0x7F0F02E9
-			public const int xlistview_footer_no_more = 2131690217;
+			public const int xlistview_footer_hint_ready = 2131690217;
 			
 			// aapt resource value: 0x7F0F02EA
-			public const int xlistview_footer_no_more_msg = 2131690218;
+			public const int xlistview_footer_no_more = 2131690218;
 			
 			// aapt resource value: 0x7F0F02EB
-			public const int xlistview_header_hint_loading = 2131690219;
+			public const int xlistview_footer_no_more_msg = 2131690219;
 			
 			// aapt resource value: 0x7F0F02EC
-			public const int xlistview_header_hint_more = 2131690220;
+			public const int xlistview_header_hint_loading = 2131690220;
 			
 			// aapt resource value: 0x7F0F02ED
-			public const int xlistview_header_hint_normal = 2131690221;
+			public const int xlistview_header_hint_more = 2131690221;
 			
 			// aapt resource value: 0x7F0F02EE
-			public const int xlistview_header_hint_ready = 2131690222;
+			public const int xlistview_header_hint_normal = 2131690222;
 			
 			// aapt resource value: 0x7F0F02EF
-			public const int xlistview_header_last_time = 2131690223;
+			public const int xlistview_header_hint_ready = 2131690223;
 			
 			// aapt resource value: 0x7F0F02F0
-			public const int zxing_app_name = 2131690224;
+			public const int xlistview_header_last_time = 2131690224;
 			
 			// aapt resource value: 0x7F0F02F1
-			public const int zxing_button_ok = 2131690225;
+			public const int zxing_app_name = 2131690225;
 			
 			// aapt resource value: 0x7F0F02F2
-			public const int zxing_msg_camera_framework_bug = 2131690226;
+			public const int zxing_button_ok = 2131690226;
 			
 			// aapt resource value: 0x7F0F02F3
-			public const int zxing_msg_default_status = 2131690227;
+			public const int zxing_msg_camera_framework_bug = 2131690227;
+			
+			// aapt resource value: 0x7F0F02F4
+			public const int zxing_msg_default_status = 2131690228;
 			
 			static String()
 			{
diff --git a/HDL-ON_iOS/HDL-ON_iOS.csproj b/HDL-ON_iOS/HDL-ON_iOS.csproj
index d36ffaa..0231b0f 100644
--- a/HDL-ON_iOS/HDL-ON_iOS.csproj
+++ b/HDL-ON_iOS/HDL-ON_iOS.csproj
@@ -485,6 +485,7 @@
         <Folder Include="Resources\Phone\PersonalCenter\FacePassage\" />
         <Folder Include="Resources\Phone\FunctionIcon\Electrical\AirSwitch\" />
         <Folder Include="Base.lproj\" />
+        <Folder Include="Resources\Phone\FunctionIcon\CAC\" />
     </ItemGroup>
     <ItemGroup>
         <InterfaceDefinition Include="LaunchScreen.storyboard" />
@@ -1386,6 +1387,12 @@
       <BundleResource Include="Resources\Phone\FunctionIcon\EnvironmentalScience\HistoryOpionBg3.png" />
       <BundleResource Include="Resources\Phone\FunctionIcon\EnvironmentalScience\HistoryOpionBg4.png" />
       <BundleResource Include="Resources\Phone\Collection\FunctionOfflineBg.png" />
+      <BundleResource Include="Resources\Phone\Public\MsgIcon\CallIcon.png" />
+      <BundleResource Include="Resources\Phone\Public\MsgIcon\AnswerIcon.png" />
+      <BundleResource Include="Resources\Phone\Public\MsgIcon\HangUpIcon.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\CAC\DataIcon.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\CAC\JinMaoIcon.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\hvaccac.png" />
     </ItemGroup>
     <ItemGroup>
       <ITunesArtwork Include="iTunesArtwork" />
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/CAC/DataIcon.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/CAC/DataIcon.png
new file mode 100644
index 0000000..9832d06
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/CAC/DataIcon.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/CAC/JinMaoIcon.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/CAC/JinMaoIcon.png
new file mode 100644
index 0000000..b5e26bf
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/CAC/JinMaoIcon.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/hvaccac.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/hvaccac.png
new file mode 100644
index 0000000..5b8b9fa
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/hvaccac.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/Public/MsgIcon/AnswerIcon.png b/HDL-ON_iOS/Resources/Phone/Public/MsgIcon/AnswerIcon.png
new file mode 100644
index 0000000..89096a9
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/Public/MsgIcon/AnswerIcon.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/Public/MsgIcon/CallIcon.png b/HDL-ON_iOS/Resources/Phone/Public/MsgIcon/CallIcon.png
new file mode 100644
index 0000000..843101e
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/Public/MsgIcon/CallIcon.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/Public/MsgIcon/HangUpIcon.png b/HDL-ON_iOS/Resources/Phone/Public/MsgIcon/HangUpIcon.png
new file mode 100644
index 0000000..e516074
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/Public/MsgIcon/HangUpIcon.png
Binary files differ
diff --git a/HDL_ON/Common/HDLCommon.cs b/HDL_ON/Common/HDLCommon.cs
index 6a2a061..e77da10 100644
--- a/HDL_ON/Common/HDLCommon.cs
+++ b/HDL_ON/Common/HDLCommon.cs
@@ -330,16 +330,31 @@
                         }
                         else if (interphoneTypeEnum == InterphoneType.HDL.ToString())
                         {
-                            //HDL Linphone 鐙勮�愬厠
                             eSVideoInfo.HomeId = jpushMessageInfo.HomeId;
                             eSVideoInfo.callId = json["callId"].ToString();
                             eSVideoInfo.Lc_DeviceId = json["deviceId"].ToString();
                             eSVideoInfo.DeviceName = json["deviceName"].ToString();
                             eSVideoInfo.deviceSipAccount = json["deviceSipAccount"].ToString();
-                            //ShowAlert("鐙勮�愬厠闂ㄥ彛鏈哄懠鍙�");
-                            //鎵撳紑鍛煎彨椤甸潰
-                            HDLLinphone.Current.ShowESVideoIntercom(eSVideoInfo);
-                            return;
+
+
+                            if (json.ContainsKey("spk"))
+                            {
+                                if (json["spk"].ToString() == "door.gate")
+                                {
+                                    new PublicAssmebly().TipLinphoneCall("\""+ eSVideoInfo.DeviceName + "\"鍛煎彨", eSVideoInfo);
+
+                                    //HDLLinphone.Current.ShowESVideoIntercom(eSVideoInfo,true);
+                                    return;
+                                }
+                                else
+                                {
+                                    //HDL Linphone 鐙勮�愬厠
+                                    //ShowAlert("鐙勮�愬厠闂ㄥ彛鏈哄懠鍙�");
+                                    //鎵撳紑鍛煎彨椤甸潰
+                                    HDLLinphone.Current.ShowESVideoIntercom(eSVideoInfo,false);
+                                    return;
+                                }
+                            }
                         }
 
                         //3.鎵撳紑鍛煎彨椤甸潰
@@ -402,13 +417,14 @@
             //璐﹀彿鍦ㄥ埆澶勭櫥闄嗭紝琚涪涓嬬嚎 璺宠浆鍒扮櫥褰曢〉闈�
             new Alert(Language.StringByID(StringId.Tip), Language.StringByID(StringId.LoggedOnOtherDevices), Language.StringByID(StringId.Close)).Show();
 
-            Logout();
+            Logout(false);
         }
 
         /// <summary>
         /// 閫�鍑虹櫥褰曟搷浣�
+        /// signOutPush 鏄惁鍒犻櫎鎺ㄩ�乼oken
         /// </summary>
-        public void Logout()
+        public void Logout(bool signOutPush = true)
         {
             //鍔犺浇Loading鏁堟灉
             var waitPage = new Loading();
@@ -419,8 +435,11 @@
             {
                 try
                 {
-                    //2.娉ㄩ攢鎺ㄩ��
-                    new HttpServerRequest().SignOutPush();
+                    if (signOutPush)
+                    {
+                        //2.娉ㄩ攢鎺ㄩ��
+                        new HttpServerRequest().SignOutPush();
+                    }
                     //3.璺宠浆鐧诲綍椤甸潰
                     UserInfo.Current.LastTime = DateTime.MinValue;
                     UserInfo.Current.SaveUserInfo();
diff --git a/HDL_ON/Common/R.cs b/HDL_ON/Common/R.cs
index 68b7cc3..3156a9c 100644
--- a/HDL_ON/Common/R.cs
+++ b/HDL_ON/Common/R.cs
@@ -6,6 +6,27 @@
     {
 
         /// <summary>
+        /// 婀垮害缁熻鍥�
+        /// </summary>
+        public const int HumidityStatistics = 537;
+
+        /// <summary>
+        /// 娓╁害缁熻鍥�
+        /// </summary>
+        public const int TemperatureStatistics = 536;
+        /// <summary>
+        /// 闇茬偣娓╁害
+        /// </summary>
+        public const int DewPointTemp = 535;
+        /// <summary>
+        /// 鏁版嵁
+        /// </summary>
+        public const int Data = 534;
+        /// <summary>
+        /// 24灏忔椂缁熻鍥�
+        /// </summary>
+        public const int StatisticalChart24Hour = 533;
+        /// <summary>
         /// 璁惧绂荤嚎涓紝鏆傛椂鏃犳硶鎿嶄綔
         /// </summary>
         public const int DeviceOfflineCannotOption = 532;
diff --git a/HDL_ON/Common/UserInfo.cs b/HDL_ON/Common/UserInfo.cs
index 5ba0686..30e8267 100644
--- a/HDL_ON/Common/UserInfo.cs
+++ b/HDL_ON/Common/UserInfo.cs
@@ -322,5 +322,34 @@
             return path + "/";
         }
 
+
+        /// <summary>
+        /// 鎺ㄩ�佹秷鎭褰� 
+        /// </summary>
+        public JPushMessageInfo pushMessageInfo = new JPushMessageInfo();
+        /// <summary>
+        /// 鏄惁宸茬粡鍔犺浇鍛煎彨寮圭獥
+        /// </summary>
+        public bool alreadyShowCallInDialog = false;
+
+        //[Newtonsoft.Json.JsonIgnore]
+        //public string PushMesTitle;
+        //[Newtonsoft.Json.JsonIgnore]
+        //public string PushMesMessage;
+        //[Newtonsoft.Json.JsonIgnore]
+        //public string PushMesExtras;
+        //[Newtonsoft.Json.JsonIgnore]
+        //public string PushMesHomeId;
+        //[Newtonsoft.Json.JsonIgnore]
+        //public string pushMesMessageType;
+        //[Newtonsoft.Json.JsonIgnore]
+        //public string pushMesExpantContent;
+
+        [Newtonsoft.Json.JsonIgnore]
+        public bool inVideo = false;
+        [Newtonsoft.Json.JsonIgnore]
+        public DateTime inCall = DateTime.MinValue;
+
+
     }
 }
\ No newline at end of file
diff --git a/HDL_ON/DAL/DriverLayer/Control.cs b/HDL_ON/DAL/DriverLayer/Control.cs
index f14125b..5f9b849 100644
--- a/HDL_ON/DAL/DriverLayer/Control.cs
+++ b/HDL_ON/DAL/DriverLayer/Control.cs
@@ -1066,6 +1066,10 @@
                                 break;
                             case SPK.CurtainShades:
                                 break;
+                            case SPK.HvacCac:
+                                Stan.HdlDeviceStatuPushLogic.Current.UpdateDeviceStatu(updateTemp.sid, updateTemp.status);
+                               
+                                break;
                             case SPK.AcStandard:
                             case SPK.HvacAC:
                             case SPK.AcIr:
diff --git a/HDL_ON/DAL/Server/HttpServerRequest.cs b/HDL_ON/DAL/Server/HttpServerRequest.cs
index 738cd33..4741b1c 100644
--- a/HDL_ON/DAL/Server/HttpServerRequest.cs
+++ b/HDL_ON/DAL/Server/HttpServerRequest.cs
@@ -1029,10 +1029,10 @@
 #endif
                 //鏄惁鐢熶骇妯″紡
                 bool isProduce = true;
-#if DEBUG
-                isProduce = false;
-#endif
-
+                if (HttpUtil.GlobalRequestHttpsHost == "https://test-gz.hdlcontrol.com")
+                {
+                    isProduce = false;
+                }
                 if (string.IsNullOrEmpty(OnAppConfig.Instance.PushDeviceToken))
                 {
                     Utlis.WriteLine("PushDeviceToken 涓虹┖");
diff --git a/HDL_ON/DAL/Server/NewApiRes.cs b/HDL_ON/DAL/Server/NewApiRes.cs
index 055a093..c92e4d1 100644
--- a/HDL_ON/DAL/Server/NewApiRes.cs
+++ b/HDL_ON/DAL/Server/NewApiRes.cs
@@ -1474,7 +1474,12 @@
         /// 鎵╁睍鏁版嵁鍐呭
         /// </summary>
         public string expantContent = "";
-        
+
+        /// <summary>
+        /// 璁惧绫诲瀷
+        /// HDL: door.gate
+        /// </summary>
+        public string spk = "";
 
     }
 
@@ -1509,6 +1514,8 @@
         ///  淇℃伅绫诲瀷
         /// </summary>
         public string messageType;
+
+        public string spk;
     }
 
     /// <summary>
diff --git a/HDL_ON/DAL/ThirdPartySdk/ESOnVideo.cs b/HDL_ON/DAL/ThirdPartySdk/ESOnVideo.cs
index 0965c39..3461c4b 100644
--- a/HDL_ON/DAL/ThirdPartySdk/ESOnVideo.cs
+++ b/HDL_ON/DAL/ThirdPartySdk/ESOnVideo.cs
@@ -154,7 +154,7 @@
             else if (interphoneType == InterphoneType.HDL.ToString())
             {
                 //HDLLinphone 鐙勮�愬厠
-                HDLLinphone.Current.ShowESVideoMonitor(mESVideoInfo);
+                HDLLinphone.Current.ShowESVideoMonitor(mESVideoInfo,false);
             }
             else
             {
diff --git a/HDL_ON/DAL/ThirdPartySdk/HDLLinphone.cs b/HDL_ON/DAL/ThirdPartySdk/HDLLinphone.cs
index 49857bf..854604f 100644
--- a/HDL_ON/DAL/ThirdPartySdk/HDLLinphone.cs
+++ b/HDL_ON/DAL/ThirdPartySdk/HDLLinphone.cs
@@ -98,6 +98,7 @@
             HDLLinphoneKit.Instance.InitLinphone(Application.Activity);
             //璁剧疆鏀跺埌鏉ョ數鍚庛�佹槸鍚﹂渶鑷姩璺宠浆鍛煎彨椤甸潰鏂规
             HDLLinphoneKit.Instance.AutoJumpCallView = IsAutoJumpCallView;
+            //HDLLinphoneKit.Instance.HangUp();//鎸傛柇
             //璁剧疆Listener鐩戝惉
             setOnHDLLinphoneCallListener();
 #endif
@@ -196,8 +197,6 @@
         {
             try
             {
-
-
                 //鍏堟竻绌哄懠鍙拰鐩戣璁惧淇℃伅
                 if (clearCallInfo)
                 {
@@ -371,13 +370,14 @@
         }
         #endregion
 
-     
+
         #region 鈻�  --  璺宠浆鐩戞帶椤甸潰_______________________________
         /// <summary>
         /// 璺宠浆鐩戞帶椤甸潰
         /// </summary>
         /// <param name="mESVideoInfo"></param>
-        public void ShowESVideoMonitor(ESVideoInfo mESVideoInfo)
+        /// <param name="enableMic">鏄惁鎵撳紑楹﹀厠椋�</param>
+        public void ShowESVideoMonitor(ESVideoInfo mESVideoInfo,bool enableMic,bool isCallIn = false)
         {
             InitLinphone();
             //sip璐﹀彿涓虹┖
@@ -395,6 +395,22 @@
             mHDLCallVideoInfo.DeviceSipAccount = mESVideoInfo.deviceSipAccount;//鐩戣涓诲姩鍛煎彨闂ㄥ彛鏈烘椂鐢ㄥ埌
             InitCallInfo(mHDLCallVideoInfo);
 
+            if (isCallIn)
+            {
+                HDLLinphoneKit.Instance.HangUp();
+            }
+            else
+            {
+                openMonitorPage(enableMic);
+            }
+        }
+
+        /// <summary>
+        /// 鎵撳紑鐩戣鐣岄潰
+        /// </summary>
+        void openMonitorPage(bool enableMic)
+        {
+
 #if __IOS__
 
             HDLLinPhoneSDK.Instance().CallWithUserName(mHDLCallVideoInfo.DeviceSipAccount, mHDLCallVideoInfo.DeviceName);
@@ -405,10 +421,16 @@
             //2.璺宠浆鎵撳紑鐩戞帶椤甸潰
             var intent = new Intent(Shared.Application.Activity, typeof(Com.Hdl.Hdllinphonesdk.Activity.HDLLinphoneMonitorActivity)); ;
             intent.PutExtra(HDLLinphoneKit.KeyTitleName, mHDLCallVideoInfo.DeviceName);//浼犲叆璁惧鍚嶇О涓烘樉绀烘爣棰�
+            intent.PutExtra(HDLLinphoneKit.Enablemic, enableMic);//鏄惁鎵撳紑楹﹀厠椋�
             Shared.Application.Activity.StartActivity(intent);
+
+
+
 #endif
 
         }
+
+
         #endregion
 
 
@@ -417,7 +439,8 @@
         /// 鏀跺埌鎺ㄩ�侊紝鍚庡垽鏂懠鍙綇瀹呮槸鍚︿负褰撳墠浣忓畢锛屼笉鏄殑璇濋噸鏂拌幏鍙朣IP璐﹀彿骞剁櫥褰�
         /// </summary>
         /// <param name="mESVideoInfo"></param>
-        public void ShowESVideoIntercom(ESVideoInfo mESVideoInfo)
+        /// <param name="isHdlLinphone">鏄惁鏄嚜鐮斿彲瑙嗗璁�</param>
+        public void ShowESVideoIntercom(ESVideoInfo mESVideoInfo,bool isHdlLinphone)
         {
             InitLinphone();
 
@@ -430,26 +453,36 @@
             mHDLCallVideoInfo.DeviceSipAccount = mESVideoInfo.deviceSipAccount;
             InitCallInfo(mHDLCallVideoInfo);
 
-            //褰撳墠鍛煎彨鏉ョ數鐨勪綇瀹呭拰涔嬪墠娉ㄥ唽鐧诲綍鐨勪綇瀹呬竴鑷寸殑鎯呭喌涓�
-            if (currentHDLSipInfo != null && currentHDLSipInfo.homeId == mESVideoInfo.HomeId)
+            if (isHdlLinphone)
             {
-                Utlis.WriteLine("CALL 鏀跺埌鎺ㄩ�� 鎺ㄩ�佷綇瀹呭拰涔嬪墠娉ㄥ唽鐧诲綍鐨勪綇瀹呬竴鑷�");
-                CheckCallStateAndGotoPage();
-            }
-            else
-            {
-                //娉ㄦ剰锛氫箣鍓嶆病鐧诲綍SIP璐﹀彿鎴栬�呬綇瀹呬笉涓�鑷寸殑鎯呭喌涓嬮渶瑕侀噸鏂拌幏鍙朣IP璐﹀彿
-                //鑾峰彇鍛煎彨浣忓畢鐨凷IP璐﹀彿骞剁櫥褰�
-                Utlis.WriteLine("CALL 鏀跺埌鎺ㄩ�� 鍏朵粬浣忓畢锛岄噸鏂拌幏鍙栧懠鍙綇瀹呯殑SIP璐﹀彿骞剁櫥褰�");
-                new Thread(() =>
+                //褰撳墠鍛煎彨鏉ョ數鐨勪綇瀹呭拰涔嬪墠娉ㄥ唽鐧诲綍鐨勪綇瀹呬竴鑷寸殑鎯呭喌涓�
+                if (currentHDLSipInfo != null && currentHDLSipInfo.homeId == mESVideoInfo.HomeId)
                 {
-                    GetHDLSipInfoAndInitSDK(mESVideoInfo.HomeId, false);
-                })
-                { IsBackground = false }.Start();
+                    Utlis.WriteLine("CALL 鏀跺埌鎺ㄩ�� 鎺ㄩ�佷綇瀹呭拰涔嬪墠娉ㄥ唽鐧诲綍鐨勪綇瀹呬竴鑷�");
+                    CheckCallStateAndGotoPage(true);
+                }
+            }
+            else {
+                //褰撳墠鍛煎彨鏉ョ數鐨勪綇瀹呭拰涔嬪墠娉ㄥ唽鐧诲綍鐨勪綇瀹呬竴鑷寸殑鎯呭喌涓�
+                if (currentHDLSipInfo != null && currentHDLSipInfo.homeId == mESVideoInfo.HomeId)
+                {
+                    Utlis.WriteLine("CALL 鏀跺埌鎺ㄩ�� 鎺ㄩ�佷綇瀹呭拰涔嬪墠娉ㄥ唽鐧诲綍鐨勪綇瀹呬竴鑷�");
+                    CheckCallStateAndGotoPage();
+                }
+                else
+                {
+                    //娉ㄦ剰锛氫箣鍓嶆病鐧诲綍SIP璐﹀彿鎴栬�呬綇瀹呬笉涓�鑷寸殑鎯呭喌涓嬮渶瑕侀噸鏂拌幏鍙朣IP璐﹀彿
+                    //鑾峰彇鍛煎彨浣忓畢鐨凷IP璐﹀彿骞剁櫥褰�
+                    Utlis.WriteLine("CALL 鏀跺埌鎺ㄩ�� 鍏朵粬浣忓畢锛岄噸鏂拌幏鍙栧懠鍙綇瀹呯殑SIP璐﹀彿骞剁櫥褰�");
+                    new Thread(() =>
+                    {
+                        GetHDLSipInfoAndInitSDK(mESVideoInfo.HomeId, false);
+                    })
+                    { IsBackground = false }.Start();
 
-                //
-                CheckCallStateAndGotoPage();
-
+                    //
+                    CheckCallStateAndGotoPage();
+                }
             }
 
         }
@@ -458,14 +491,14 @@
         /// 妫�娴嬫潵鐢电姸鎬侊紝鍒ゆ柇鏄惁椹笂鎵撳紑鍛煎彨椤甸潰锛屽鏋滆繕娌℃潵鐢靛垯寮�鍚嚎绋嬫娴嬬瓑寰�
         /// </summary>
         /// <param name="mESVideoInfo"></param>
-        public void CheckCallStateAndGotoPage()
+        public void CheckCallStateAndGotoPage(bool isHdlLinphone = false)
         {
             //濡傛灉寮�鍚簡鑷姩璺宠浆鏂规锛屽垯鏃犻渶缁х画涓嬮潰澶勭悊銆佹棤闇�鎵嬪姩璺宠浆
             if (IsAutoJumpCallView) return;
             //鍏堢粨鏉熸帀涔嬪墠鐨勭嚎绋�
             EndCheckIncomingCallThread();
             //妫�娴嬫槸鍚︽潵鐢典簡濡傛灉鏄洿鎺ヨ皟鏁村懠鍙〉闈㈠鏋滀笉鏄垯寮�鍚嚎绋嬬瓑寰呭垽鏂�
-            if (IsIncomingReceivedCallState()) {
+            if (IsIncomingReceivedCallState()|| isHdlLinphone) {
                 Utlis.WriteLine("CALL 宸茬粡鏉ョ數浜嗐�傘�傘�傛墦寮�鍛煎彨椤甸潰");
                 GoToHDLLinphoneIntercomActivity();
             }
diff --git a/HDL_ON/Entity/Function/Function.cs b/HDL_ON/Entity/Function/Function.cs
index d87b67f..5f8beba 100644
--- a/HDL_ON/Entity/Function/Function.cs
+++ b/HDL_ON/Entity/Function/Function.cs
@@ -1271,6 +1271,10 @@
         /// 绌鸿皟
         /// </summary>
         public const string HvacAC = "hvac.ac";
+        /// <summary>
+        /// 姣涚粏绠$┖璋�
+        /// </summary>
+        public const string HvacCac = "hvac.cac";
 
         /// <summary>
         /// 绌鸿皟spk鍒楄〃
@@ -1282,6 +1286,7 @@
             spkList.Add(AcStandard);
             spkList.Add(HvacAC);
             spkList.Add(AcIr);
+            spkList.Add(HvacCac);
             return spkList;
         }
         #endregion
diff --git a/HDL_ON/HDL_ON.projitems b/HDL_ON/HDL_ON.projitems
index f17e8e8..748a5ce 100644
--- a/HDL_ON/HDL_ON.projitems
+++ b/HDL_ON/HDL_ON.projitems
@@ -489,6 +489,10 @@
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\AboutOn\SupportHomeKitNotesPage.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\AboutOn\FirmwareUpdateView.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\DoorLock\DoorLockUnlockPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\1ContorlPage\CacControlPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\1ContorlPage\CacWeekHistoryPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\1ContorlPage\CacDayHistoryPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\1ContorlPage\CacHistoryChoosePage.cs" />
   </ItemGroup>
   <ItemGroup>
     <Folder Include="$(MSBuildThisFileDirectory)Entity\Device\" />
diff --git a/HDL_ON/UI/UI0-Public/AppUnlockPage.cs b/HDL_ON/UI/UI0-Public/AppUnlockPage.cs
index 637798b..1129e4a 100644
--- a/HDL_ON/UI/UI0-Public/AppUnlockPage.cs
+++ b/HDL_ON/UI/UI0-Public/AppUnlockPage.cs
@@ -1,4 +1,5 @@
 锘縰sing System;
+using HDL_ON.DAL.Server;
 using Shared;
 namespace HDL_ON.UI
 {
@@ -75,6 +76,26 @@
                 {
                     if (UserInfo.Current.unlockTime.AddMinutes(5) > DateTime.Now || UserInfo.Current.appUnlockPasswrod == "" || UserInfo.Current.appUnlockPage.Count == 0)
                     {
+                        if(UserInfo.Current.inCall.AddMinutes(30) > DateTime.Now ||
+                            UserInfo.Current.inVideo)
+                        {
+                            //UserInfo.Current.PushMesLogTime = DateTime.MinValue;
+
+                            //var pushMes = new JPushMessageInfo()
+                            //{
+                            //    Title = UserInfo.Current.PushMesTitle,
+                            //    Content = UserInfo.Current.PushMesMessage,
+                            //    Extras = UserInfo.Current.PushMesExtras,
+                            //    messageType = UserInfo.Current.pushMesMessageType,
+                            //    expantContent = UserInfo.Current.pushMesExpantContent,
+                            //    HomeId = UserInfo.Current.PushMesHomeId,
+                            //};
+                            Shared.Application.RunOnMainThread(() =>
+                            {
+                                HDLCommon.Current.AdjustPushMessage(UserInfo.Current.pushMessageInfo);
+                            });
+                        }
+
                         return;
                     }
                 }
diff --git a/HDL_ON/UI/UI0-Public/PublicAssmebly.cs b/HDL_ON/UI/UI0-Public/PublicAssmebly.cs
index b070e69..40d3b05 100644
--- a/HDL_ON/UI/UI0-Public/PublicAssmebly.cs
+++ b/HDL_ON/UI/UI0-Public/PublicAssmebly.cs
@@ -422,6 +422,99 @@
             })
             { IsBackground = true }.Start();
         }
+
+        /// <summary>
+        /// 鍙瀵硅鍛煎彨寮圭獥
+        /// </summary>
+        public void TipLinphoneCall(String msg, ESVideoInfo mESVideoInfo)
+        {
+            if (UserInfo.Current.alreadyShowCallInDialog)
+            {
+                return;
+            }
+            UserInfo.Current.alreadyShowCallInDialog = true;
+            Dialog dialog = new Dialog();
+
+            FrameLayout dialogBody = new FrameLayout();
+            dialog.AddChidren(dialogBody);
+          
+
+            FrameLayout frame = new FrameLayout()
+            {
+                Gravity = Gravity.Center,
+                Width = Application.GetRealWidth(263),
+                Height = Application.GetRealHeight(145),
+                BackgroundColor = 0xE6FFFFFF ,
+                Radius = (uint)Application.GetRealWidth(12),
+            };
+            dialog.AddChidren(frame);
+
+            Button btnTipIcon = new Button()
+            {
+                X = Application.GetRealWidth(26),
+                Y = Application.GetRealHeight(20),
+                Width = Application.GetRealWidth(32),
+                Height = Application.GetRealWidth(32),
+                UnSelectedImagePath = "Public/MsgIcon/CallIcon.png" ,
+            };
+            frame.AddChidren(btnTipIcon);
+
+            Button btnTipMsg = new Button()
+            {
+                Y = Application.GetRealHeight(5),
+                X = Application.GetRealWidth(60),
+                Height = Application.GetRealHeight(52),
+                Width = Application.GetRealWidth(160),
+                TextAlignment = TextAlignment.CenterLeft,
+                TextSize = CSS_FontSize.TextFontSize,
+                TextColor =  CSS_Color.FirstLevelTitleColor ,
+                IsMoreLines = true,
+                Text = msg
+            };
+            frame.AddChidren(btnTipMsg);
+
+
+            Button btnHangUpIcon = new Button()
+            {
+                X = Application.GetRealWidth(45),
+                Y = Application.GetRealHeight(78),
+                Width = Application.GetRealWidth(52),
+                Height = Application.GetRealWidth(52),
+                UnSelectedImagePath = "Public/MsgIcon/HangUpIcon.png",
+            };
+            frame.AddChidren(btnHangUpIcon);
+            btnHangUpIcon.MouseUpEventHandler = (sender, e) => {
+                HDLLinphone.Current.ShowESVideoMonitor(mESVideoInfo, true,true);
+                //Com.Hdl.Hdllinphonesdk.HDLLinphoneKit.Instance.HangUp();
+                UserInfo.Current.alreadyShowCallInDialog = false;
+
+
+                dialog.Close();
+            };
+
+
+            Button btnAnswerIcon = new Button()
+            {
+                X = Application.GetRealWidth(167),
+                Y = Application.GetRealHeight(78),
+                Width = Application.GetRealWidth(52),
+                Height = Application.GetRealWidth(52),
+                UnSelectedImagePath = "Public/MsgIcon/AnswerIcon.png",
+            };
+            frame.AddChidren(btnAnswerIcon);
+            btnAnswerIcon.MouseUpEventHandler = (sender, e) => {
+                HDLLinphone.Current.ShowESVideoMonitor(mESVideoInfo,true);
+                UserInfo.Current.alreadyShowCallInDialog = false;
+
+                dialog.Close();
+            };
+
+
+
+            dialog.Show();
+        }
+
+
         /// <summary>
         /// 鍔犺浇鎻愮ず寮圭獥
         /// </summary>
diff --git a/HDL_ON/UI/UI0-Public/PublicAssmeblyBLL.cs b/HDL_ON/UI/UI0-Public/PublicAssmeblyBLL.cs
index 3cbd914..b4a926d 100644
--- a/HDL_ON/UI/UI0-Public/PublicAssmeblyBLL.cs
+++ b/HDL_ON/UI/UI0-Public/PublicAssmeblyBLL.cs
@@ -182,6 +182,10 @@
                         var acPage = new AcControlPage();
                         acPage.AddForm(function, btnCollectionIcon, btnName, btnFromFloor);
                         break;
+                    case SPK.HvacCac:
+                        var cacPage = new CacControlPage();
+                        cacPage.AddForm(function, btnCollectionIcon, btnName, btnFromFloor);
+                        break;
                     case SPK.IrLearn:
                         var irLearinPage = new IrLearnPage();
                         irLearinPage.AddForm(function, btnCollectionIcon, btnName, btnFromFloor);
diff --git a/HDL_ON/UI/UI2/1-HomePage/HomePage.cs b/HDL_ON/UI/UI2/1-HomePage/HomePage.cs
index ecea303..90bf91a 100644
--- a/HDL_ON/UI/UI2/1-HomePage/HomePage.cs
+++ b/HDL_ON/UI/UI2/1-HomePage/HomePage.cs
@@ -649,6 +649,25 @@
             //});
 
 
+            FunctionList.List.Functions.Add(new Function()
+            {
+                spk = SPK.HvacCac,
+                name = "娴嬭瘯閲戣寕娓╂帶鏋告潪",
+                attributes = new List<FunctionAttributes>()
+                {
+                    new FunctionAttributes(){ key = "on_off",curValue= "on",state = "on" },
+                    new FunctionAttributes(){ key = "mode",curValue= "cool",state = "cool" ,value = new List<string>(){ "cool", "heat" } },
+                    new FunctionAttributes(){ key = "set_temp",curValue= "22",state = "22" ,value = new List<string>(){},min = 0,max = 30 },
+                    //new FunctionAttributes(){ key = "set_temp_step",curValue= "low",state = "low" ,value = new List<string>(){ "high", "medium", "low", "auto", "stop" } },
+                    new FunctionAttributes(){ key = "humidity",curValue= "0",state = "0" ,value = new List<string>(){  },min = 0,max = 100 },
+                    new FunctionAttributes(){ key = "room_temp",curValue= "26",state = "26" ,value = new List<string>(){  },min = 0,max = 100 },
+                    new FunctionAttributes(){ key = "dew_point_temp",curValue= "20",state = "20" ,value = new List<string>(){  },min = 0,max = 100 },
+                    new FunctionAttributes(){ key = "room_humidity",curValue= "20",state = "20" ,value = new List<string>(){  },min = 0,max = 1000 },
+                    //new FunctionAttributes(){ key = "tvoc",curValue= "20",state = "20" ,value = new List<string>(){  },min = 0,max = 100 },
+                },
+            });
+
+
             //FunctionList.List.Functions.Add(new Function()
             //{
             //    spk = SPK.HvacAirFreshJinmao,
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/ConditionDeviceFunList.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/ConditionDeviceFunList.cs
index f8370df..1c9b2bc 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Automation/ConditionDeviceFunList.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/ConditionDeviceFunList.cs
@@ -61,6 +61,7 @@
                 //绌鸿皟
                 case SPK.AcStandard:
                 case SPK.HvacAC:
+                case SPK.HvacCac://姣涚粏绌鸿皟
                 //鍦扮儹
                 case SPK.FloorHeatStandard:
                 case SPK.HvacFloorHeat:
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicMethod.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicMethod.cs
index bd6a462..942d93a 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicMethod.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicMethod.cs
@@ -356,6 +356,9 @@
             strPath = "LogicIcon/airconditionerlogic.png";
           }
           break;
+        case SPK.HvacCac:
+            strPath = "FunctionIcon/Icon/hvaccac.png";
+            break;
         case SPK.FloorHeatStandard:
         case SPK.HvacFloorHeat:
           {
@@ -518,6 +521,7 @@
             {
                 functionTypeList.Add(SPK.AcStandard);
                 functionTypeList.Add(SPK.HvacAC);
+                functionTypeList.Add(SPK.HvacCac);
             }
             ///鍦版殩绫�
             else if (deviceType == Language.StringByID(StringId.FloorHeating))
@@ -604,7 +608,7 @@
                 functionTypeList.Add(SPK.AirSwitch);
                 functionTypeList.Add(SPK.PanelSocket);
                 functionTypeList.Add(SPK.ElectricSocket);
-
+                functionTypeList.Add(SPK.HvacCac);
 
             }
 
@@ -657,6 +661,7 @@
             deviceTypeList.Add(SPK.AirSwitch);
             deviceTypeList.Add(SPK.PanelSocket);
             deviceTypeList.Add(SPK.ElectricSocket);
+                        deviceTypeList.Add(SPK.HvacCac);
 
           }
           break;
diff --git a/HDL_ON/UI/UI2/FuntionControlView/1ContorlPage/CacControlPage.cs b/HDL_ON/UI/UI2/FuntionControlView/1ContorlPage/CacControlPage.cs
new file mode 100644
index 0000000..7683c79
--- /dev/null
+++ b/HDL_ON/UI/UI2/FuntionControlView/1ContorlPage/CacControlPage.cs
@@ -0,0 +1,657 @@
+锘縰sing System;
+using System.Collections.Generic;
+using HDL_ON.DriverLayer;
+using HDL_ON.Entity;
+using HDL_ON.Stan;
+using HDL_ON.UI.CSS;
+using Shared;
+
+namespace HDL_ON.UI
+{
+    public class CacControlPage : DeviceFunctionCardCommonForm
+    {
+        #region 鈻� 鍙橀噺澹版槑___________________________
+        /// <summary>
+        /// 绌鸿皟娓╁害鎺у埗鎺т欢
+        /// </summary>
+        DiyArcSeekBar arcBar;
+        /// <summary>
+        /// 鍑忓彿鎸夐挳
+        /// </summary>
+        Button btnMinus;
+        /// <summary>
+        /// 鍔犲彿鎸夐挳
+        /// </summary>
+        Button btnPlus;
+        /// <summary>
+        /// 娓╁害鎸夐挳
+        /// </summary>
+        Button btnTemp;
+        Button btnTempUint;
+        /// <summary>
+        /// 瀹ゅ唴娓╁害鎸夐挳
+        /// </summary>
+        Button btnIndoorTemp;
+        /// <summary>
+        /// 妯″紡鎸夐挳
+        /// </summary>
+        Button btnMode;
+        /// <summary>
+        /// 椋庨�熸寜閽�
+        /// </summary>
+        Button btnWindSpeed;
+        /// <summary>
+        /// 寮�鍏虫寜閽�
+        /// </summary>
+        Button btnSwitch;
+
+        AC acFunction = new AC();
+
+        /// <summary>
+        /// 鎺у埗鏃堕棿
+        /// </summary>
+        DateTime controlTime = DateTime.MinValue.AddDays(10);
+        /// <summary>
+        /// 鎺у埗娓╁害
+        /// </summary>
+        int temp = 16;
+
+        #endregion
+
+        #region 鈻� 鍒濆鍖朹____________________________
+
+        /// <summary>
+        /// 鍒濆鍖栫櫧鑹插尯鍩熺殑鍐呭
+        /// </summary>
+        public override void InitFrameWhiteContent()
+        {
+
+            var sk = device.GetAttribute(FunctionAttributeKey.SetTemp);
+            if (sk != null)
+            {
+                if (sk.min == 0)
+                {
+                    sk.min = 16;
+                }
+                if (sk.max == 0)
+                {
+                    sk.max = 32;
+                }
+            }
+
+            base.ShowColltionButton = false;
+            base.SetTitleText(Language.StringByID(StringId.Electric));
+
+            //鍒濆鍖栫涓�涓储寮曢〉鐨勫唴瀹�
+            this.InitFrameWhiteContent1();
+
+            //鍒锋柊褰撳墠璁惧鐨勭姸鎬佺紦瀛�
+            this.RefreshNowDeviceStatuMemory(this.device);
+            //鍒锋柊鐣岄潰鐘舵��
+            this.RefreshFormStatu();
+            //璇诲彇鐘舵��
+            new System.Threading.Thread(() =>
+            {
+                while (true)
+                {
+                    if (controlTime == DateTime.MinValue)
+                    {
+
+                    }
+                    else if (controlTime.AddSeconds(2) < DateTime.Now)
+                    {
+                        Control.Ins.SendReadCommand(device);
+                        controlTime = DateTime.MinValue;
+                    }
+                    System.Threading.Thread.Sleep(1000);
+                }
+            })
+            { IsBackground = true }.Start();
+        }
+
+        /// <summary>
+        /// 鍒濆鍖栫涓�涓储寮曢〉鐨勫唴瀹�
+        /// </summary>
+        private void InitFrameWhiteContent1()
+        {
+            Button btnJinmaoIcon = new Button()
+            {
+                Gravity = Gravity.CenterHorizontal,
+                Y = Application.GetRealHeight(94),
+                Width = Application.GetRealWidth(164),
+                Height = Application.GetRealHeight(43),
+                UnSelectedImagePath = "FunctionIcon/CAC/JinMaoIcon.png"
+            };
+            FrameWhiteCentet1.AddChidren(btnJinmaoIcon);
+
+
+            temp = (int)Convert.ToDouble(device.GetAttrState(FunctionAttributeKey.SetTemp).Replace(",", "."));
+            arcBar = new DiyArcSeekBar()
+            {
+                Gravity = Gravity.CenterHorizontal,
+                OpenAngle = 160,
+                ThumbImageHeight = Application.GetRealWidth(50),
+                ProgressBarColor = CSS_Color.MainColor,
+                OfflineProgressBarColor = CSS_Color.PromptingColor2,
+                ArcColor = CSS_Color.BackgroundColor,
+#if __IOS__
+                Y = Application.GetRealHeight(120 + 25),
+                Width = Application.GetRealWidth(260 - 40),
+                Height = Application.GetRealWidth(260 - 40),
+                SeekBarPadding = Application.GetRealWidth(8),
+#else
+                Y = Application.GetRealHeight(120 + 40),
+                Width = Application.GetRealWidth(260 - 40),
+                Height = Application.GetRealWidth(260 - 40),
+                SeekBarPadding = Application.GetRealWidth(7),
+#endif
+
+            };
+            FrameWhiteCentet1.AddChidren(arcBar);
+
+
+            arcBar.ThumbImagePath = device.GetAttrState(FunctionAttributeKey.OnOff) == "on" ? "FunctionIcon/AC/DiyThumbIconOn.png" : "FunctionIcon/AC/DiyThumbIcon.png";
+            arcBar.IsOffline = device.GetAttrState(FunctionAttributeKey.OnOff) == "off";
+            arcBar.MinValue = device.GetAttribute(FunctionAttributeKey.SetTemp).min;
+            arcBar.MaxValue = device.GetAttribute(FunctionAttributeKey.SetTemp).max;
+            arcBar.Progress = (int)Convert.ToDouble(device.GetAttrState(FunctionAttributeKey.SetTemp).Replace(",", "."));
+
+            btnTemp = new Button()
+            {
+                Gravity = Gravity.CenterHorizontal,
+                Y = Application.GetRealHeight(206),
+                Width = Application.GetRealWidth(71),
+                Height = Application.GetRealWidth(60),
+                TextColor = CSS_Color.FirstLevelTitleColor,
+                TextSize = 50,
+                IsBold = true,
+                Text = Convert.ToDouble(device.GetAttrState(FunctionAttributeKey.SetTemp).Replace(",", ".")).ToString(),
+                TextAlignment = TextAlignment.Center,
+            };
+            FrameWhiteCentet1.AddChidren(btnTemp);
+
+            btnTempUint = new Button()
+            {
+                X = btnTemp.Right,
+                Y = btnTemp.Y,
+                Width = Application.GetRealWidth(30),
+                Height = Application.GetRealHeight(30),
+                TextColor = CSS_Color.FirstLevelTitleColor,
+                TextSize = CSS_FontSize.EmphasisFontSize_Secondary,
+                IsBold = true,
+                TextAlignment = TextAlignment.CenterLeft,
+                Text = "掳C",
+            };
+            FrameWhiteCentet1.AddChidren(btnTempUint);
+
+            btnIndoorTemp = new Button()
+            {
+                Gravity = Gravity.CenterHorizontal,
+                Y = btnTemp.Bottom,
+                Width = Application.GetRealWidth(120),
+                Height = Application.GetRealHeight(20),
+                Text = Language.StringByID(StringId.IndoorTemp) + "20掳C/" + Language.StringByID(StringId.Humidity) +"45%",
+                TextColor = CSS_Color.PromptingColor1,
+                TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
+            };
+            FrameWhiteCentet1.AddChidren(btnIndoorTemp);
+
+            btnMinus = new Button()
+            {
+                X = Application.GetRealWidth(21),
+                Y = Application.GetRealHeight(263),
+                Width = Application.GetRealWidth(32),
+                Height = Application.GetRealWidth(32),
+                UnSelectedImagePath = "Public/MinusSignIcon.png",
+            };
+            FrameWhiteCentet1.AddChidren(btnMinus);
+
+            btnPlus = new Button()
+            {
+                X = Application.GetRealWidth(275),
+                Y = Application.GetRealHeight(263),
+                Width = Application.GetRealWidth(32),
+                Height = Application.GetRealWidth(32),
+                UnSelectedImagePath = "Public/PlusSignIcon.png",
+            };
+            FrameWhiteCentet1.AddChidren(btnPlus);
+
+            btnMode = new Button()
+            {
+                X = Application.GetRealWidth(60),
+                Y = Application.GetRealHeight(334),
+                Width = Application.GetRealWidth(30),
+                Height = Application.GetRealWidth(30),
+                UnSelectedImagePath = acFunction.GetModeIconPath(device.GetAttrState(FunctionAttributeKey.Mode),true),
+            };
+            FrameWhiteCentet1.AddChidren(btnMode);
+
+            Button btnModeText = new Button()
+            {
+                X = Application.GetRealWidth(30),
+                Y = btnMode.Bottom,
+                Width = Application.GetRealWidth(90),
+                Height = Application.GetRealHeight(20),
+                TextAlignment = TextAlignment.Center,
+                TextSize = 12,
+                TextColor = CSS_Color.TextualColor,
+                TextID = StringId.Mode
+            };
+            FrameWhiteCentet1.AddChidren(btnModeText);
+
+            btnWindSpeed = new Button()
+            {
+                X = Application.GetRealWidth(238),
+                Y = Application.GetRealHeight(333),
+                Width = Application.GetRealWidth(38),
+                Height = Application.GetRealWidth(38),
+                UnSelectedImagePath = "FunctionIcon/CAC/DataIcon.png",
+            };
+            FrameWhiteCentet1.AddChidren(btnWindSpeed);
+
+            Button btnDataText = new Button()
+            {
+                X = Application.GetRealWidth(215),
+                Y = btnWindSpeed.Bottom,
+                Width = Application.GetRealWidth(90),
+                Height = Application.GetRealHeight(20),
+                TextAlignment = TextAlignment.Center,
+                TextSize = 12,
+                TextColor = CSS_Color.TextualColor,
+                TextID = StringId.Data
+            };
+            FrameWhiteCentet1.AddChidren(btnDataText);
+
+            btnSwitch = new Button()
+            {
+                Gravity = Gravity.CenterHorizontal,
+                Y = Application.GetRealHeight(466),
+                Width = Application.GetRealWidth(32),
+                Height = Application.GetRealWidth(32),
+                UnSelectedImagePath = "Public/PowerClose.png",
+                SelectedImagePath = "Public/PowerOpen.png",
+                IsSelected = device.GetAttrState(FunctionAttributeKey.OnOff) == "on"
+            };
+            FrameWhiteCentet1.AddChidren(btnSwitch);
+
+            LoadEvent_TempChange();
+            LoadEvent_AcStatesChange();
+
+        }
+
+        /// <summary>
+        /// 鍔犺浇淇敼妯″紡鍖哄煙
+        /// </summary>
+        void LoadDiv_ChangeModeView()
+        {
+            Dialog dialog = new Dialog();
+
+            FrameLayout dialogView = new FrameLayout()
+            {
+                BackgroundColor = CSS_Color.DialogTransparentColor1,
+            };
+            dialog.AddChidren(dialogView);
+
+            FrameLayout modeChangeView;
+            modeChangeView = new FrameLayout()
+            {
+                X = Application.GetRealWidth(30),
+                Y = Application.GetRealHeight(128),
+                Width = Application.GetRealWidth(160),
+                Height = Application.GetRealHeight(287),
+                BackgroundImagePath = "FunctionIcon/AC/DivBg1.png",
+            };
+            dialogView.AddChidren(modeChangeView);
+
+            Button btnTitle;
+            btnTitle = new Button()
+            {
+                X = Application.GetRealWidth(8 + 16),
+                Y = Application.GetRealHeight(8),
+                Width = Application.GetRealWidth(112),
+                Height = Application.GetRealHeight(44),
+                TextID = StringId.ChooseMode,
+                TextAlignment = TextAlignment.CenterLeft,
+                TextColor = CSS_Color.FirstLevelTitleColor,
+                TextSize = CSS_FontSize.EmphasisFontSize_Secondary,
+            };
+            modeChangeView.AddChidren(btnTitle);
+
+            Button btnLine = new Button()
+            {
+                X = btnTitle.X,
+                Y = btnTitle.Bottom,
+                Width = Application.GetRealWidth(112),
+                Height = Application.GetRealHeight(1),
+                BackgroundColor = CSS_Color.BackgroundColor,
+            };
+            modeChangeView.AddChidren(btnLine);
+
+            var modeList = device.GetAttribute(FunctionAttributeKey.Mode).value;
+            foreach (var m in modeList)
+            {
+                Button btnModeIcon = new Button()
+                {
+                    X = btnTitle.X,
+                    Y = Application.GetRealHeight(44 * (modeList.IndexOf(m) + 1) + 10 + 8),
+                    Width = Application.GetRealWidth(24),
+                    Height = Application.GetRealWidth(24),
+                    IsSelected = device.GetAttrState(FunctionAttributeKey.Mode) == m,
+                };
+                modeChangeView.AddChidren(btnModeIcon);
+
+                Button btnModeText = new Button()
+                {
+                    X = Application.GetRealWidth(12) + btnModeIcon.Right,
+                    Y = Application.GetRealHeight(44 * (modeList.IndexOf(m) + 1) + 8),
+                    Height = Application.GetRealHeight(44),
+                    Width = Application.GetRealWidth(90),
+                    TextAlignment = TextAlignment.CenterLeft,
+                    TextColor = CSS_Color.FirstLevelTitleColor,
+                    SelectedTextColor = CSS_Color.MainColor,
+                    IsSelected = device.GetAttrState(FunctionAttributeKey.Mode) == m,
+                    TextSize = CSS_FontSize.TextFontSize,
+                };
+                modeChangeView.AddChidren(btnModeText);
+
+                btnModeIcon.UnSelectedImagePath = acFunction.GetModeIconPath(m, false);
+                btnModeIcon.SelectedImagePath = acFunction.GetModeIconPath(m);
+                btnModeText.Text = acFunction.GetModeAttrText(m);
+
+                if (modeList.IndexOf(m) < modeList.Count - 1)
+                {
+                    modeChangeView.AddChidren(new Button()
+                    {
+                        X = btnTitle.X,
+                        Y = btnModeText.Bottom,
+                        Width = Application.GetRealWidth(112),
+                        Height = Application.GetRealHeight(1),
+                        BackgroundColor = CSS_Color.BackgroundColor,
+                    });
+                }
+                EventHandler<MouseEventArgs> eventHandler = (sender, e) =>
+                {
+                    dialog.Close();
+                };
+                EventHandler<MouseEventArgs> eventHandler1 = (sender, e) =>
+                {
+                    //if (!device.online)
+                    //{
+                    //    new Tip()
+                    //    {
+                    //        CloseTime = 1,
+                    //        Text = Language.StringByID(StringId.DeviceOfflineCannotOption),
+                    //        Direction = AMPopTipDirection.None,
+                    //    }.Show(MainPage.BaseView);
+                    //}
+                    btnModeIcon.IsSelected = btnModeText.IsSelected = true;
+                    device.SetAttrState(FunctionAttributeKey.Mode, m);
+                    btnMode.UnSelectedImagePath = acFunction.GetModeIconPath(m);
+                    Dictionary<string, string> d = new Dictionary<string, string>();
+                    d.Add(FunctionAttributeKey.Mode, m);
+                    Control.Ins.SendWriteCommand(device, d);
+                    dialog.Close();
+                    if (device.GetAttrState(FunctionAttributeKey.Mode) == "fan")
+                    {
+                        arcBar.IsClickable = false;
+                        arcBar.IsOffline = true;
+                    }
+                    else
+                    {
+                        arcBar.IsOffline = false;
+                        arcBar.IsClickable = true;
+                    }
+                };
+                btnModeIcon.MouseUpEventHandler = eventHandler1;
+                btnModeText.MouseUpEventHandler = eventHandler1;
+                dialogView.MouseUpEventHandler = eventHandler;
+
+            }
+
+            dialogView.MouseUpEventHandler = (sender, e) => {
+                dialog.Close();
+            };
+            dialog.Show();
+        }
+
+
+        #endregion
+
+        #region 鈻� 璁惧鐘舵�佸弽棣坃______________________
+
+        /// <summary>
+        /// 璁惧鐘舵�佸弽棣�
+        /// </summary>
+        /// <param name="i_LocalDevice"></param>
+        public override void DeviceStatuPush(Function i_LocalDevice)
+        {
+            //涓嶆槸鍚屼竴涓笢瑗�
+            if (this.device.sid != i_LocalDevice.sid) { return; }
+
+            //鍒锋柊褰撳墠璁惧鐨勭姸鎬佺紦瀛�
+            this.RefreshNowDeviceStatuMemory(i_LocalDevice);
+            //鍒锋柊鐣岄潰鐘舵��
+            this.RefreshFormStatu();
+        }
+
+        #endregion
+
+        #region 鈻� 鍙戦�佸悇绉嶅懡浠______________________
+
+        /// <summary>
+        /// 娓╁害鏀瑰彉妯″紡
+        /// </summary>
+        void LoadEvent_TempChange()
+        {
+            btnMinus.MouseUpEventHandler = (sender, e) =>
+            {
+                //if (!device.online)
+                //{
+                //    new Tip()
+                //    {
+                //        CloseTime = 1,
+                //        Text = Language.StringByID(StringId.DeviceOfflineCannotOption),
+                //        Direction = AMPopTipDirection.None,
+                //    }.Show(MainPage.BaseView);
+                //}
+                if (device.trait_on_off.curValue.ToString() == "off" || device.GetAttrState(FunctionAttributeKey.Mode) == "fan")
+                {
+                    return;
+                }
+
+                if (temp <= device.GetAttribute(FunctionAttributeKey.SetTemp).min)
+                {
+                    return;
+                }
+                --temp;
+                Console.WriteLine($"temp == {temp}");
+                controlTime = DateTime.Now;
+                arcBar.Progress = temp;
+                btnTemp.Text = temp.ToString();
+                device.SetAttrState(FunctionAttributeKey.SetTemp, temp.ToString());
+                System.Collections.Generic.Dictionary<string, string> d = new System.Collections.Generic.Dictionary<string, string>();
+                d.Add(FunctionAttributeKey.SetTemp, temp.ToString());
+                Control.Ins.SendWriteCommand(device, d);
+            };
+            btnPlus.MouseUpEventHandler = (sender, e) =>
+            {
+                //if (!device.online)
+                //{
+                //    new Tip()
+                //    {
+                //        CloseTime = 1,
+                //        Text = Language.StringByID(StringId.DeviceOfflineCannotOption),
+                //        Direction = AMPopTipDirection.None,
+                //    }.Show(MainPage.BaseView);
+                //}
+                if (device.trait_on_off.curValue.ToString() == "off" || device.GetAttrState(FunctionAttributeKey.Mode) == "fan")
+                {
+                    return;
+                }
+                if (temp >= device.GetAttribute(FunctionAttributeKey.SetTemp).max)
+                {
+                    return;
+                }
+                ++temp;
+                controlTime = DateTime.Now;
+                arcBar.Progress = temp;
+                btnTemp.Text = temp.ToString();
+                device.SetAttrState(FunctionAttributeKey.SetTemp, temp.ToString());
+                System.Collections.Generic.Dictionary<string, string> d = new System.Collections.Generic.Dictionary<string, string>();
+                d.Add(FunctionAttributeKey.SetTemp, temp.ToString());
+                Control.Ins.SendWriteCommand(device, d);
+            };
+            //if (device.online)
+            {
+                arcBar.OnStopTrackingTouchEvent = (sender, e) =>
+                {
+                    temp = arcBar.Progress;
+                    device.SetAttrState(FunctionAttributeKey.SetTemp, arcBar.Progress.ToString());
+                    btnTemp.Text = arcBar.Progress.ToString();
+                    controlTime = DateTime.Now;
+                    Dictionary<string, string> d = new Dictionary<string, string>();
+                    d.Add(FunctionAttributeKey.SetTemp, arcBar.Progress.ToString());
+                    Control.Ins.SendWriteCommand(device, d);
+                };
+                arcBar.OnProgressChangedEvent = (sender, e) =>
+                {
+                    device.SetAttrState(FunctionAttributeKey.SetTemp, e.ToString());
+                    btnTemp.Text = e.ToString();
+                };
+                //arcBar.MouseDownEventHandler = (sender, e) => {
+                //    Console.WriteLine("ddd");
+                //    MainPage.BasePageView.ScrollEnabled =false;
+                //};
+                //arcBar.MouseUpEventHandler = (sender, e) => {
+                //    Console.WriteLine("ddd2");
+                //    MainPage.BasePageView.ScrollEnabled = true;
+                //};
+            }
+        }
+
+        /// <summary>
+        /// 鎺у埗妯″紡浜嬩欢
+        /// </summary>
+        void LoadEvent_AcStatesChange()
+        {
+            btnMode.MouseUpEventHandler = (sender, e) =>
+            {
+                if (device.trait_on_off.curValue.ToString() == "off")
+                {
+                    return;
+                }
+                LoadDiv_ChangeModeView();
+            };
+            btnWindSpeed.MouseUpEventHandler = (sender, e) =>
+            {
+                var page = new CacHistoryChoosePage(device);
+                MainPage.BasePageView.AddChidren(page);
+                page.InitView();
+                MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
+            };
+
+            btnSwitch.MouseUpEventHandler = (sender, e) =>
+            {
+                //if (!device.online)
+                //{
+                //    new Tip()
+                //    {
+                //        CloseTime = 1,
+                //        Text = Language.StringByID(StringId.DeviceOfflineCannotOption),
+                //        Direction = AMPopTipDirection.None,
+                //    }.Show(MainPage.BaseView);
+                //}
+                btnSwitch.IsSelected = !btnSwitch.IsSelected;
+                device.trait_on_off.curValue = btnSwitch.IsSelected ? "on" : "off";
+                if (device.trait_on_off.curValue.ToString() == "on")
+                {
+                    arcBar.ThumbImagePath = "FunctionIcon/AC/DiyThumbIconOn.png";
+                    btnSwitch.IsSelected = true;
+                    arcBar.IsOffline = false;
+                }
+                else
+                {
+                    arcBar.ThumbImagePath = "FunctionIcon/AC/DiyThumbIcon.png";
+                    btnSwitch.IsBold = false;
+                    arcBar.IsOffline = true;
+                }
+                System.Collections.Generic.Dictionary<string, string> d = new System.Collections.Generic.Dictionary<string, string>();
+                d.Add(FunctionAttributeKey.OnOff, device.trait_on_off.curValue.ToString());
+                Control.Ins.SendWriteCommand(device, d);
+            };
+        }
+
+        #endregion
+
+        #region 鈻� 鍒锋柊鐣岄潰鐘舵�乢______________________
+
+        /// <summary>
+        /// 鍒锋柊鐣岄潰鐘舵��
+        /// </summary>
+        private void RefreshFormStatu()
+        {
+            Application.RunOnMainThread(() =>
+            {
+                //app鑷繁鎺у埗鐨勪笉鐢ㄦ洿鏂帮紝浼氶�犳垚璺冲姩
+                if (controlTime.AddSeconds(2) > DateTime.Now)
+                {
+                    return;
+                }
+                else
+                {
+                    btnIndoorTemp.Text = Language.StringByID(StringId.IndoorTemp) + Convert.ToInt32(Convert.ToDouble(device.GetAttrState(FunctionAttributeKey.RoomTemp).Replace(",", "."))) + "掳C"
+                                        + Language.StringByID(StringId.Humidity) + Convert.ToInt32(Convert.ToDouble(device.GetAttrState("room_humidity").Replace(", ", "."))) + "%";
+                    btnMode.UnSelectedImagePath = acFunction.GetModeIconPath(device.GetAttrState(FunctionAttributeKey.Mode));
+                    temp = Convert.ToInt32(Convert.ToDouble(device.GetAttrState(FunctionAttributeKey.SetTemp).Replace(",", ".")));
+
+
+                    arcBar.Progress = temp;
+                    btnTemp.Text = temp.ToString();
+
+                    if (device.trait_on_off.curValue.ToString() == "on")
+                    {
+                        arcBar.IsOffline = false;
+                        btnSwitch.IsSelected = true;
+                        arcBar.ThumbImagePath = "FunctionIcon/AC/DiyThumbIconOn.png";
+                        if (device.GetAttrState(FunctionAttributeKey.Mode) == "fan")
+                        {
+                            arcBar.IsClickable = false;
+                        }
+                        else
+                        {
+                            arcBar.IsClickable = true;
+                        }
+                    }
+                    else
+                    {
+                        arcBar.IsOffline = true;
+                        btnSwitch.IsSelected = false;
+                        arcBar.IsClickable = false;
+                        arcBar.ThumbImagePath = "FunctionIcon/AC/DiyThumbIcon.png";
+                    }
+
+                    if (device.GetAttrState(FunctionAttributeKey.Mode) == "dry")
+                    {
+                        arcBar.IsOffline = true;
+                        arcBar.IsClickable = false;
+
+                    }
+                }
+
+            });
+        }
+
+        #endregion
+
+        #region 鈻� 涓�鑸柟娉昣__________________________
+
+        /// <summary>
+        /// 鍒锋柊褰撳墠璁惧鐨勭姸鎬佺紦瀛�
+        /// </summary>
+        private void RefreshNowDeviceStatuMemory(Function i_LocalDevice)
+        {
+        }
+
+        #endregion
+    }
+}
diff --git a/HDL_ON/UI/UI2/FuntionControlView/1ContorlPage/CacDayHistoryPage.cs b/HDL_ON/UI/UI2/FuntionControlView/1ContorlPage/CacDayHistoryPage.cs
new file mode 100644
index 0000000..6a8adb8
--- /dev/null
+++ b/HDL_ON/UI/UI2/FuntionControlView/1ContorlPage/CacDayHistoryPage.cs
@@ -0,0 +1,165 @@
+锘縰sing System;
+using System.Collections.Generic;
+using HDL_ON.DAL.Server;
+using HDL_ON.Entity;
+using HDL_ON.UI.CSS;
+using Shared;
+
+namespace HDL_ON.UI
+{
+    public class CacDayHistoryPage : FrameLayout
+    {
+        CacDayHistoryPage bodyView;
+        EchartsOption_BrokenLine brokenLine;
+        MyEchartsViewOn myEchartsView_Line;
+        string curQueryType = "hour";
+        public CacDayHistoryPage()
+        {
+            bodyView = this;
+        }
+
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public void InitView()
+        {
+            new TopViewDiv(bodyView, Language.StringByID(StringId.StatisticalChart24Hour)).LoadTopView();
+            bodyView.BackgroundColor = CSS_Color.BackgroundColor;
+
+            var contentView = new FrameLayout()
+            {
+                Y = Application.GetRealHeight(64),
+                Height = Application.GetRealHeight(603),
+            };
+            bodyView.AddChidren(contentView);
+
+
+            var historyDataView = new FrameLayout()
+            {
+                Gravity = Gravity.CenterHorizontal,
+                Y = Application.GetRealWidth(52),
+                Height = Application.GetRealWidth(350),
+            };
+            contentView.AddChidren(historyDataView);
+
+
+            brokenLine = new EchartsOption_BrokenLine();
+
+            myEchartsView_Line = new MyEchartsViewOn()
+            {
+                Y = Application.GetRealWidth(10),
+                Height = Application.GetRealWidth(338),
+            };
+            historyDataView.AddChidren(myEchartsView_Line);
+
+
+#if DEBUG
+
+            List<string> vs = new List<string>() {
+                        "1","2","3","4","5","6","7","8","9","10","11","12","13","14"
+                    };
+            brokenLine.InitXdataText(vs);
+            brokenLine.InitYdataText("yData", new List<EnvironmentalSensorHistor>() {
+                new EnvironmentalSensorHistor{ fieldName = "1", fieldValue= "23"  },
+                new EnvironmentalSensorHistor{ fieldName = "2", fieldValue= "22"  },
+                new EnvironmentalSensorHistor{ fieldName = "3", fieldValue= "-11"  },
+                new EnvironmentalSensorHistor{ fieldName = "4", fieldValue= "21"  },
+                new EnvironmentalSensorHistor{ fieldName = "5", fieldValue= "-41"  },
+                new EnvironmentalSensorHistor{ fieldName = "6", fieldValue= "23"  },
+                new EnvironmentalSensorHistor{ fieldName = "7", fieldValue= "-31"  },
+                new EnvironmentalSensorHistor{ fieldName = "8", fieldValue= "-23"  },
+                new EnvironmentalSensorHistor{ fieldName = "9", fieldValue= "-11"  },
+                new EnvironmentalSensorHistor{ fieldName = "10", fieldValue= "-21"  },
+                new EnvironmentalSensorHistor{ fieldName = "11", fieldValue= "24"  },
+                new EnvironmentalSensorHistor{ fieldName = "12", fieldValue= "41"  },
+                new EnvironmentalSensorHistor{ fieldName = "13", fieldValue= "32"  },
+                new EnvironmentalSensorHistor{ fieldName = "14", fieldValue= "23"  }
+            }, "#FF9D54");
+            brokenLine.yTitle = "(鈩�)";
+            brokenLine.xTitle = "";
+            if (curQueryType != "hour")
+            {
+                brokenLine.xTitle = Language.StringByID(StringId.Date);
+            }
+            var opString = brokenLine.InitOption();
+
+                myEchartsView_Line.ShowWithOption(opString);
+#endif
+        }
+
+        /// <summary>
+        /// 璇诲彇鍘嗗彶鏁版嵁
+        /// </summary>
+        void LoadMothed_GetHistoryData(Function sr, bool isDel)
+        {
+
+            var loadPage = new Loading()
+            {
+                LodingBackgroundColor = 0x88888888,
+            };
+            bodyView.AddChidren(loadPage);
+
+            new System.Threading.Thread(() =>
+            {
+                try
+                {
+                    Application.RunOnMainThread(() =>
+                    {
+                        loadPage.Start(Language.StringByID(StringId.PleaseWait));
+                    });
+
+                    var sensorType = sr.spk.Split(".")[1];
+                    var revertObj = new HttpServerRequest().GetSensorHistory(curQueryType, sr.deviceId, "total_electricity");
+                    if (revertObj != null)
+                    {
+                        if (revertObj.Code == StateCode.SUCCESS)
+                        {
+                            var revertData = Newtonsoft.Json.JsonConvert.DeserializeObject<List<EnvironmentalSensorHistor>>(revertObj.Data.ToString());
+
+                            List<string> vs = new List<string>();
+                            if (brokenLine.YvalueText == "")
+                            {
+                                foreach (var data in revertData)
+                                {
+                                    vs.Add(data.fieldName);
+                                }
+                                brokenLine.InitXdataText(vs);
+                            }
+                            if (sr.GetAttribute("ydata") == null)
+                            {
+                                sr.attributes.Add(new FunctionAttributes() { key = "ydata" });
+                            }
+                            sr.SetAttrState("ydata", brokenLine.InitYdataText(sr.name, revertData, sr.GetAttrState("color")) + ",");
+                        }
+                    }
+                    brokenLine.yTitle = Language.StringByID(StringId.EnergyConsumption) + "(kW)";
+                    brokenLine.xTitle = Language.StringByID(StringId.timeMode);
+                    if (curQueryType != "hour")
+                    {
+                        brokenLine.xTitle = Language.StringByID(StringId.Date);
+                    }
+                    var opString = brokenLine.InitOption();
+
+                    Application.RunOnMainThread(() =>
+                    {
+                        myEchartsView_Line.ShowWithOption(opString);
+                    });
+                }
+                catch (Exception ex)
+                {
+                    MainPage.Log($"sensor history error : {ex.Message}");
+                }
+                finally
+                {
+                    Application.RunOnMainThread(() =>
+                    {
+                        loadPage.Hide();
+                    });
+                }
+            })
+            { IsBackground = true }.Start();
+        }
+
+    }
+}
diff --git a/HDL_ON/UI/UI2/FuntionControlView/1ContorlPage/CacHistoryChoosePage.cs b/HDL_ON/UI/UI2/FuntionControlView/1ContorlPage/CacHistoryChoosePage.cs
new file mode 100644
index 0000000..24d02f0
--- /dev/null
+++ b/HDL_ON/UI/UI2/FuntionControlView/1ContorlPage/CacHistoryChoosePage.cs
@@ -0,0 +1,108 @@
+锘縰sing System;
+using HDL_ON.Entity;
+using HDL_ON.UI.CSS;
+using Shared;
+namespace HDL_ON.UI
+{
+    /// <summary>
+    /// 娓╂帶鍣ㄥ巻鍙叉暟鎹樉绀洪�夋嫨鐣岄潰
+    /// </summary>
+    public class CacHistoryChoosePage : FrameLayout
+    {
+        FrameLayout bodyView;
+        Function device;
+        public CacHistoryChoosePage(Function function)
+        {
+            device = function;
+            bodyView = this;
+        }
+
+        public void InitView()
+        {
+            new TopViewDiv(bodyView, Language.StringByID(StringId.Data)).LoadTopView();
+            bodyView.BackgroundColor = CSS_Color.BackgroundColor;
+
+            FrameLayout tempView = new FrameLayout()
+            {
+                Y = Application.GetRealHeight(64),
+                Height = Application.GetRealHeight(50),
+                BackgroundColor = CSS_Color.MainBackgroundColor,
+            };
+            bodyView.AddChidren(tempView);
+
+            Button btnTempRight = new Button()
+            {
+                X = Application.GetRealWidth(339),
+                Gravity = Gravity.CenterVertical,
+                Width = Application.GetMinRealAverage(16),
+                Height = Application.GetMinRealAverage(16),
+                UnSelectedImagePath = "Public/Right.png",
+            };
+            tempView.AddChidren(btnTempRight);
+
+            Button btnTempLine = new Button()
+            {
+                Y = Application.GetRealHeight(49),
+                Gravity = Gravity.CenterHorizontal,
+                Width = Application.GetRealWidth(343),
+                Height = Application.GetRealHeight(1),
+                BackgroundColor = CSS_Color.DividingLineColor
+            };
+            tempView.AddChidren(btnTempLine);
+
+            Button btnTempName = new Button()
+            {
+                X = Application.GetRealWidth(16),
+                TextAlignment = TextAlignment.CenterLeft,
+                TextColor = CSS_Color.FirstLevelTitleColor,
+                TextSize = CSS_FontSize.SubheadingFontSize,
+                TextID = StringId.TemperatureStatistics
+            };
+            tempView.AddChidren(btnTempName);
+            btnTempName.MouseUpEventHandler = (sender, e) => {
+                var page = new CacWeekHistoryPage(device,"temp");
+                MainPage.BasePageView.AddChidren(page);
+                page.InitView();
+                MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
+            };
+
+
+
+            FrameLayout humidityView = new FrameLayout()
+            {
+                Y = Application.GetRealHeight(64 + 50),
+                Height = Application.GetRealHeight(50),
+                BackgroundColor = CSS_Color.MainBackgroundColor,
+            };
+            bodyView.AddChidren(humidityView);
+
+            Button btnHumidityRight = new Button()
+            {
+                X = Application.GetRealWidth(339),
+                Gravity = Gravity.CenterVertical,
+                Width = Application.GetMinRealAverage(16),
+                Height = Application.GetMinRealAverage(16),
+                UnSelectedImagePath = "Public/Right.png",
+            };
+            humidityView.AddChidren(btnHumidityRight);
+
+            Button btnHumidityName = new Button()
+            {
+                X = Application.GetRealWidth(16),
+                TextAlignment = TextAlignment.CenterLeft,
+                TextColor = CSS_Color.FirstLevelTitleColor,
+                TextSize = CSS_FontSize.SubheadingFontSize,
+                TextID = StringId.HumidityStatistics
+            };
+            humidityView.AddChidren(btnHumidityName);
+            btnHumidityName.MouseUpEventHandler = (sender, e) => {
+                var page = new CacWeekHistoryPage(device, "humidity");
+                MainPage.BasePageView.AddChidren(page);
+                page.InitView();
+                MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
+            };
+
+
+        }
+    }
+}
diff --git a/HDL_ON/UI/UI2/FuntionControlView/1ContorlPage/CacWeekHistoryPage.cs b/HDL_ON/UI/UI2/FuntionControlView/1ContorlPage/CacWeekHistoryPage.cs
new file mode 100644
index 0000000..071bc9d
--- /dev/null
+++ b/HDL_ON/UI/UI2/FuntionControlView/1ContorlPage/CacWeekHistoryPage.cs
@@ -0,0 +1,342 @@
+锘縰sing System;
+using System.Collections.Generic;
+using HDL_ON.DAL.Server;
+using HDL_ON.Entity;
+using HDL_ON.Stan;
+using HDL_ON.UI.CSS;
+using Shared;
+
+namespace HDL_ON.UI
+{
+    public class CacWeekHistoryPage : FrameLayout
+    {
+
+        CacWeekHistoryPage bodyView;
+        Function device;
+        /// <summary>
+        /// 鏁版嵁鏄剧ず绫诲瀷
+        /// temp 娓╁害
+        /// humidity 婀垮害
+        /// </summary>
+        string showType;
+        public CacWeekHistoryPage(Function device,string type)
+        {
+            bodyView = this;
+            this.device = device;
+            showType = type;
+            BackgroundColor = CSS_Color.BackgroundColor;
+        }
+
+        public void InitView()
+        {
+            new TopViewDiv(bodyView, "鏁版嵁").LoadTopView();
+
+
+            InitContentView();
+        }
+
+
+        private void InitContentView()
+        {
+            FrameLayout contentView = new FrameLayout()
+            {
+                Y = Application.GetRealHeight(80),
+                Gravity = Gravity.CenterHorizontal,
+                Width = Application.GetRealWidth(343),
+                Height = Application.GetRealHeight(482),
+                BackgroundColor = CSS_Color.MainBackgroundColor,
+                Radius = (uint)Application.GetRealWidth(5)
+            };
+            bodyView.AddChidren(contentView);
+
+            Button btnTitle = new Button()
+            {
+                Height = Application.GetRealHeight(60),
+                TextColor = CSS_Color.FirstLevelTitleColor,
+                TextSize = CSS_FontSize.TextFontSize,
+                TextAlignment = TextAlignment.Center,
+                Text = "鏈�杩�7澶╂瘡澶╁钩鍧囧鍐呮俯搴︾粺璁″浘"
+            };
+            contentView.AddChidren(btnTitle);
+
+            FrameLayout dataView = new FrameLayout()
+            {
+                Y = Application.GetRealHeight(69),
+                Gravity = Gravity.CenterHorizontal,
+                Width = Application.GetRealWidth(293),
+                Height = Application.GetRealHeight(336),
+            };
+            contentView.AddChidren(dataView);
+
+            Button btnUnit = new Button()
+            {
+                Height = Application.GetRealHeight(15),
+                TextAlignment = TextAlignment.CenterLeft,
+                TextColor = 0xFF43425D,
+                TextSize = 8,
+                Text = "鍗曚綅锛氣剝"
+            };
+            dataView.AddChidren(btnUnit);
+
+            Dictionary<string, int> dataDic = new Dictionary<string, int>();
+#if DEBUG
+            dataDic.Add("0201", 20);
+            dataDic.Add("0202", -20);
+            dataDic.Add("0203", 10);
+            dataDic.Add("0204", 40);
+            dataDic.Add("0205", 20);
+            dataDic.Add("0206", 20);
+            dataDic.Add("0207", 20);
+
+            //dataDic.Add("0201", -20);
+            //dataDic.Add("0202", -20);
+            //dataDic.Add("0203", -20);
+            //dataDic.Add("0204", -40);
+            //dataDic.Add("0205", -20);
+            //dataDic.Add("0206", -20);
+            //dataDic.Add("0207", -20);
+#endif
+
+            DataItemView dataShowView = new DataItemView("0");
+            dataShowView.Height = Application.GetRealHeight(157 * 2 + 1);
+            dataShowView.Y = Application.GetRealHeight(21);
+
+            List<string> items = new List<string>()
+            {
+                "50","40","30","20","10","0","-10","-20","-30","-40","-50"
+            };
+            int index = 0;
+            foreach(var item in items)
+            {
+                DataItemView dataItemView;
+                if(item == "0")
+                {
+                    dataItemView = dataShowView;
+                }
+                else
+                {
+                    dataItemView = new DataItemView(item);
+                    dataItemView.Y = index * Application.GetRealHeight(30) + Application.GetRealHeight(15);
+                }
+                dataItemView.InitView();
+                dataView.AddChidren(dataItemView);
+                index++;
+            }
+
+            RefrshDataView(dataDic, dataShowView);
+
+            {
+                var dateHorView = new HorizontalScrolViewLayout()
+                {
+                    X = Application.GetRealWidth(51),
+                    Y = dataView.Bottom + Application.GetRealHeight(11),
+                    Width = Application.GetRealWidth(267),
+                    Height = Application.GetRealHeight(26),
+                };
+                contentView.AddChidren(dateHorView);
+
+                foreach(var dic in dataDic)
+                {
+                    FrameLayout dateView = new FrameLayout()
+                    {
+                        Width = Application.GetRealWidth(39),
+                        Height = Application.GetRealHeight(26),
+                    };
+                    dateHorView.AddChidren(dateView);
+
+                    Button btnLineh = new Button()
+                    {
+                        Width = 1,
+                        Height = Application.GetRealHeight(4),
+                        Gravity = Gravity.CenterHorizontal,
+                        BackgroundColor = 0xFFDBDBDB
+                    };
+                    dateView.AddChidren(btnLineh);
+
+                    Button btnDate = new Button()
+                    {
+                        Y = Application.GetRealHeight(12),
+                        Height = Application.GetRealHeight(14),
+                        TextColor = 0xFF43425D,
+                        TextSize = 10,
+                        Text = dic.Key,
+                    };
+                    dateView.AddChidren(btnDate);
+                }
+
+            }
+
+            Button btnTip = new Button()
+            {
+                Y = contentView.Bottom + Application.GetRealHeight(28),
+                Height = Application.GetRealHeight(20),
+                TextColor = CSS_Color.FirstLevelTitleColor,
+                TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel,
+                TextAlignment = TextAlignment.Center,
+                Text = "*鍙�氳繃鐐瑰嚮鏌卞舰鍥炬煡鐪嬪綋澶�24灏忔椂娓╁害缁熻"
+            };
+            bodyView.AddChidren(btnTip);
+
+
+            new System.Threading.Thread(() => {
+                var revertObj = new HttpServerRequest().GetSensorHistory("week", device.deviceId, "room_temp");
+
+            }) { IsBackground = true }.Start();
+        }
+
+        void RefrshDataView(Dictionary<string,int> dataDic, DataItemView dataShowView)
+        {
+            int valueIndex = 0;
+            foreach (var data in dataDic)
+            {
+                ColumnarView cv = new ColumnarView(data.Value);
+                cv.X = Application.GetRealWidth(valueIndex * 38 + 25);
+                cv.InitView();
+                dataShowView.AddChidren(cv);
+                cv.Clicker();
+
+
+                valueIndex++;
+            }
+        }
+
+
+
+    }
+
+    class DataItemView : FrameLayout
+    {
+        string value;
+
+        public DataItemView(string value)
+        {
+            this.value = value;
+            Width = Application.GetRealWidth(293);
+            Height = Application.GetRealHeight(30);
+        }
+
+        public void InitView() {
+
+            Button btnValue = new Button()
+            {
+                Gravity = Gravity.CenterVertical,
+                Width = Application.GetRealWidth(18),
+                Height = Application.GetRealHeight(30),
+                TextAlignment = TextAlignment.CenterRight,
+                TextColor = 0xFF43425D,
+                TextSize = 8,
+                Text = value
+            };
+            AddChidren(btnValue);
+
+            Button btnLine = new Button()
+            {
+                Gravity = Gravity.CenterVertical,
+                X = Application.GetRealWidth(26),
+                Width = Application.GetRealWidth(267),
+                Height = 1,
+                BackgroundColor = CSS_Color.DividingLineColor,
+            };
+            AddChidren(btnLine);
+
+
+
+
+
+        }
+    }
+
+    class ColumnarView : VerticalScrolViewLayout
+    {
+        int value;
+        /// <summary>
+        /// 鏂瑰悜锛氬悜涓娿�佸悜涓�
+        /// </summary>
+        bool isUpward;
+        Button btnValue;
+        Button btnValueText;
+
+
+        public ColumnarView(int value)
+        {
+            this.isUpward = value >= 0;
+            if (isUpward)
+            {
+                this.value = value;
+            }
+            else
+            {
+                this.value = value * -1;
+            }
+            Width = Application.GetRealWidth(39);
+            Height = Application.GetRealHeight(value * 3 + 30);
+        }
+
+        public void InitView()
+        {
+            int yValue = 0;
+            btnValue = new Button()
+            {
+                Gravity = Gravity.CenterHorizontal,
+                Height = Application.GetRealHeight(value * 3),
+                Width = Application.GetRealWidth(16),
+                BackgroundColor = 0xFFFF9D54,
+            };
+
+            btnValueText = new Button()
+            {
+                Height = Application.GetRealHeight(30),
+                TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
+                TextColor = 0xFF43425D,
+                Text = value + "鈩�",
+            };
+            AddChidren(btnValueText);
+
+
+            if (isUpward)
+            {
+                //btnValue.Height += Application.GetRealHeight(1);
+                yValue = 158 - 30 - value * 3;
+                yValue = yValue > 0 ? yValue : 158;
+                Y = Application.GetRealHeight(yValue);
+                AddChidren(btnValueText);
+                AddChidren(btnValue);
+            }
+            else
+            {
+                btnValue.Height += Application.GetRealHeight(2);
+                Y = Application.GetRealHeight(157);
+                AddChidren(btnValue);
+                AddChidren(btnValueText);
+            }
+
+
+
+
+
+
+
+
+
+
+        }
+
+        public void Clicker()
+        {
+            btnValue.MouseUpEventHandler = (sender, e) =>
+            {
+                var page = new CacDayHistoryPage();
+                MainPage.BasePageView.AddChidren(page);
+                page.InitView();
+                MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
+            };
+            btnValueText.MouseUpEventHandler = (sender, e) =>
+            {
+                var page = new CacDayHistoryPage();
+                MainPage.BasePageView.AddChidren(page);
+                page.InitView();
+                MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
+            };
+        }
+    }
+}
diff --git a/HDL_ON/UI/UI2/FuntionControlView/EnvironmentalScience/EchartsOption_BrokenLine.cs b/HDL_ON/UI/UI2/FuntionControlView/EnvironmentalScience/EchartsOption_BrokenLine.cs
index c022001..b41bbcf 100644
--- a/HDL_ON/UI/UI2/FuntionControlView/EnvironmentalScience/EchartsOption_BrokenLine.cs
+++ b/HDL_ON/UI/UI2/FuntionControlView/EnvironmentalScience/EchartsOption_BrokenLine.cs
@@ -4,7 +4,7 @@
 namespace HDL_ON.UI
 {
     /// <summary>
-    /// 鏇茬嚎鍥�
+    /// 鏇茬嚎鍥炬暟鎹�
     /// </summary>
     public class EchartsOption_BrokenLine
     {
diff --git a/HDL_ON/UI/UI2/FuntionControlView/FunctionBaseInfoSetPage.cs b/HDL_ON/UI/UI2/FuntionControlView/FunctionBaseInfoSetPage.cs
index feb241d..bf7e271 100644
--- a/HDL_ON/UI/UI2/FuntionControlView/FunctionBaseInfoSetPage.cs
+++ b/HDL_ON/UI/UI2/FuntionControlView/FunctionBaseInfoSetPage.cs
@@ -365,6 +365,57 @@
                 #endregion
             }
 
+
+            if (function.spk == SPK.HvacCac)
+            {
+                #region 姣涚粏绌鸿皟
+                var energyView1 = new FrameLayout()
+                {
+                    Height = Application.GetRealHeight(55),
+                    BackgroundColor = CSS_Color.MainBackgroundColor,
+                };
+                contentView.AddChidren(energyView1);
+
+                var btnEnergyText1 = new Button()
+                {
+                    X = Application.GetRealWidth(16),
+                    Width = Application.GetRealWidth(160),
+                    TextAlignment = TextAlignment.CenterLeft,
+                    TextColor = CSS_Color.FirstLevelTitleColor,
+                    TextSize = CSS_FontSize.SubheadingFontSize,
+                    TextID = StringId.DewPointTemp,
+                };
+                energyView1.AddChidren(btnEnergyText1);
+
+
+                double realTimePower = 0;
+                double.TryParse(function.GetAttrState("dew_point_temp"), out realTimePower);
+
+                var energyValue1 = new Button()
+                {
+                    Width = Application.GetRealWidth(355),
+                    TextAlignment = TextAlignment.CenterRight,
+                    TextSize = CSS_FontSize.TextFontSize,
+                    TextColor = CSS_Color.PromptingColor1,
+                    Text = realTimePower + "掳C",
+                };
+                energyView1.AddChidren(energyValue1);
+
+                energyView1.AddChidren(
+                    new Button()
+                    {
+                        Gravity = Gravity.CenterHorizontal,
+                        Y = Application.GetRealHeight(54),
+                        BackgroundColor = CSS_Color.DividingLineColor,
+                        Width = Application.GetRealWidth(343),
+                        Height = Application.GetRealHeight(1)
+                    });
+                //-----------------
+
+                #endregion
+            }
+
+
             LoadEventList();
         }
 
diff --git a/SiriIntents/Server/HttpUtil.cs b/SiriIntents/Server/HttpUtil.cs
index 56a78a0..f61de04 100644
--- a/SiriIntents/Server/HttpUtil.cs
+++ b/SiriIntents/Server/HttpUtil.cs
@@ -16,8 +16,8 @@
         /// 鍥哄畾鍩熷悕,姝e紡鐜
         /// 鍏叡鍩熷悕灏辫繎瑙f瀽
         /// </summary>
-        //public const string GlobalRequestHttpsHost = "https://nearest.hdlcontrol.com";
-        public const string GlobalRequestHttpsHost = "https://test-gz.hdlcontrol.com";//mmmm
+        public const string GlobalRequestHttpsHost = "https://nearest.hdlcontrol.com";
+        //public const string GlobalRequestHttpsHost = "https://test-gz.hdlcontrol.com";//mmmm
         /// <summary>
         /// RegionMark
         /// </summary>

--
Gitblit v1.8.0