From 18b93d511dc764b469d7c4a7e755f7274f89cdb4 Mon Sep 17 00:00:00 2001
From: 陈嘉乐 <cjl@hdlchina.com.cn>
Date: 星期一, 27 四月 2020 17:55:14 +0800
Subject: [PATCH] 2020-4-27-1

---
 ZigbeeApp/Shared/Phone/ZigBee/Device/Panel.cs |   94 ++++++++++++++++++++++++++++++----------------
 1 files changed, 61 insertions(+), 33 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/ZigBee/Device/Panel.cs b/ZigbeeApp/Shared/Phone/ZigBee/Device/Panel.cs
index 2cb7298..fffe9ea 100755
--- a/ZigbeeApp/Shared/Phone/ZigBee/Device/Panel.cs
+++ b/ZigbeeApp/Shared/Phone/ZigBee/Device/Panel.cs
@@ -61,7 +61,7 @@
         public string RoomId = "";
 
         /// <summary>
-        /// 褰撳墠鎴块棿ID
+        /// 褰撳墠閫変腑鐨勫満鏅疘D
         /// </summary>
         public string curSelectSceneID = "";
 
@@ -746,10 +746,14 @@
                                     if (command == "0002")
                                     {
                                         var tempD = new ResponseData();
-                                        tempD.command = Convert.ToInt32(data[10].ToString() + data[11].ToString() + data[12].ToString() + data[13].ToString(), 16);
+                                        tempD.command = data[12].ToString() + data[13].ToString() + data[10].ToString() + data[11].ToString();
                                         tempD.status = Convert.ToInt32(data[14].ToString() + data[15].ToString(), 16);
-                                        result = new ResponseAllData { responseData = tempD };
-                                        System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_command:0400_{ topic}");
+                                        if (tempD.command == "0400")
+                                        {
+                                            result = new ResponseAllData { responseData = tempD };
+                                            System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_command:0400_{ topic}");
+                                        }
+
                                     }
                                 }
                             }
@@ -920,10 +924,13 @@
                                     if (command == "0002")
                                     {
                                         var tempD = new ResponseData();
-                                        tempD.command = Convert.ToInt32(data[10].ToString() + data[11].ToString() + data[12].ToString() + data[13].ToString(), 16);
+                                        tempD.command = data[12].ToString() + data[13].ToString() + data[10].ToString() + data[11].ToString();
                                         tempD.status = Convert.ToInt32(data[14].ToString() + data[15].ToString(), 16);
-                                        result = new ResponseAllData { responseData = tempD };
-                                        System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_command:0401_{ topic}");
+                                        if (tempD.command == "0401")
+                                        {
+                                            result = new ResponseAllData { responseData = tempD };
+                                            DebugPrintLog($"UI鏀跺埌閫氱煡鍚庣殑涓婚_command:0401_{ topic}");
+                                        }
                                     }
                                 }
                             }
@@ -1295,10 +1302,13 @@
                                     if (command == "0002")
                                     {
                                         var tempD = new ResponseData();
-                                        tempD.command = Convert.ToInt32(data[10].ToString() + data[11].ToString() + data[12].ToString() + data[13].ToString(), 16);
+                                        tempD.command = data[12].ToString() + data[13].ToString() + data[10].ToString() + data[11].ToString();
                                         tempD.status = Convert.ToInt32(data[14].ToString() + data[15].ToString(), 16);
-                                        result = new ResponseAllData { responseData = tempD };
-                                        System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_command:0402_{ topic}");
+                                        if (tempD.command == "0402")
+                                        {
+                                            result = new ResponseAllData { responseData = tempD };
+                                            DebugPrintLog($"UI鏀跺埌閫氱煡鍚庣殑涓婚_command:0402_{ topic}");
+                                        }
                                     }
                                 }
                             }
@@ -1392,7 +1402,7 @@
         ///<summary >
         /// 閰嶇疆鎸夐敭鎸囩ず鐏潰鏉胯妭鑳芥ā寮�
         /// <para>modeEnable:鑺傝兘妯″紡浣胯兘</para>
-        /// <para>modeTime:鏃犳搷浣滆繘鍏ヨ妭鑳芥ā寮忔椂闂� 0-ff</para>
+        /// <para>modeTime:鏃犳搷浣滆繘鍏ヨ妭鑳芥ā寮忔椂闂� 0-ffff</para>
         /// <para>鑺傝兘妯″紡浜害:0-100</para>
         /// </summary>
         public async System.Threading.Tasks.Task<ResponseAllData> SetKeyModeAsync(bool modeEnable, int modeTime, int level)
@@ -1446,10 +1456,13 @@
                                     if (command == "0002")
                                     {
                                         var tempD = new ResponseData();
-                                        tempD.command = Convert.ToInt32(data[10].ToString() + data[11].ToString() + data[12].ToString() + data[13].ToString(), 16);
+                                        tempD.command = data[12].ToString() + data[13].ToString() + data[10].ToString() + data[11].ToString();
                                         tempD.status = Convert.ToInt32(data[14].ToString() + data[15].ToString(), 16);
-                                        result = new ResponseAllData { responseData = tempD };
-                                        System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_command:0403_{ topic}");
+                                        if (tempD.command == "0403")
+                                        {
+                                            result = new ResponseAllData { responseData = tempD };
+                                            System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_command:0403_{ topic}");
+                                        }
                                     }
                                 }
                             }
@@ -1496,11 +1509,11 @@
         string SetPanelModeModeData(bool modeEnable, int modeTime, int modelevel)
         {
             string data = "";
-            string dataLength = "07";
+            string dataLength = "08";
             string dataComand1 = "03";
             string dataComand2 = "04";
             string dataSerialNum = "01";
-            string addDataLength = "03";
+            string addDataLength = "04";
             string mode = "";
             string time = "";
             string level = "";
@@ -1514,17 +1527,30 @@
                 {
                     mode = "00";
                 }
-                var sbString1 = new System.Text.StringBuilder();
-                string temp = Convert.ToString(modeTime, 16);
-                switch (temp.Length)
+
+                if (modeTime == -1)
                 {
-                    case 1:
-                        time = "0" + temp;
-                        break;
-                    case 2:
-                        time = temp;
-                        break;
+                    //褰撹妭鑳芥ā寮忔病鏈夌粰鏃堕棿锛岄粯璁ょ粰60绉�
+                    modeTime = 60;
                 }
+
+                var tempBytes = new byte[2];
+                for (int i = 0; i < 2; i++)
+                {
+                    tempBytes[i] = (byte)(modeTime >> (i * 8) & 0xff);
+                }
+                var time1 = Convert.ToString(tempBytes[0], 16);
+                var time2 = Convert.ToString(tempBytes[1], 16);
+                if (time1.Length == 1)
+                {
+                    time1 = "0" + time1;
+                }
+                if (time2.Length == 1)
+                {
+                    time2 = "0" + time2;
+                }
+
+                time = (time1 + time2).ToUpper();
 
                 var sbString2 = new System.Text.StringBuilder();
                 string temp2 = Convert.ToString(modelevel, 16);
@@ -1538,10 +1564,9 @@
                         break;
                 }
 
-                sbString1.Append(time.ToUpper());
                 sbString2.Append(level.ToUpper());
                 data = dataLength + dataComand1 + dataComand2 + dataSerialNum + addDataLength +
-                   mode + sbString1 + sbString2;
+                   mode + time + sbString2;
             }
             catch { };
 
@@ -1605,10 +1630,13 @@
                                     if (command == "0002")
                                     {
                                         var tempD = new ResponseData();
-                                        tempD.command = Convert.ToInt32(data[10].ToString() + data[11].ToString() + data[12].ToString() + data[13].ToString(), 16);
+                                        tempD.command = data[12].ToString() + data[13].ToString() + data[10].ToString() + data[11].ToString();
                                         tempD.status = Convert.ToInt32(data[14].ToString() + data[15].ToString(), 16);
-                                        result = new ResponseAllData { responseData = tempD };
-                                        System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_command:0500_{ topic}");
+                                        if (tempD.command == "0500")
+                                        {
+                                            result = new ResponseAllData { responseData = tempD };
+                                            DebugPrintLog($"UI鏀跺埌閫氱煡鍚庣殑涓婚_command:0500_{ topic}");
+                                        }
                                     }
                                 }
                             }
@@ -2137,7 +2165,7 @@
                             if (gatewayTemp.clientDataPassthroughResponseData?.PassData != null)
                             {
                                 var data = gatewayTemp.clientDataPassthroughResponseData.PassData;
-                                if (data.Length == 16)
+                                if (data.Length == 18)
                                 {
                                     var command = data[4].ToString() + data[5].ToString() + data[2].ToString() + data[3].ToString();
                                     if (command == "0409")
@@ -2151,8 +2179,8 @@
                                         {
                                             tempR.enable = false;
                                         }
-                                        tempR.time = Convert.ToInt32(data[12].ToString() + data[13].ToString(), 16);
-                                        tempR.level = Convert.ToInt32(data[14].ToString() + data[15].ToString(), 16);
+                                        tempR.time = Convert.ToInt32(data[14].ToString() + data[15].ToString() + data[12].ToString() + data[13].ToString(), 16);
+                                        tempR.level = Convert.ToInt32(data[16].ToString() + data[17].ToString(), 16);
                                         panelSaveEnergyModeInfo = tempR;
                                         result = new PanelSwitchLevelResponInfo { panelSaveEnergyModeInfo = tempR };
                                         System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_command:0408_{ topic}");

--
Gitblit v1.8.0