From c7df85937f73fb347ee0b19e9c052d2d00a6df6c Mon Sep 17 00:00:00 2001
From: 黄学彪 <hxb@hdlchina.com.cn>
Date: 星期五, 18 九月 2020 13:58:19 +0800
Subject: [PATCH] 新版本

---
 ZigbeeApp/Shared/Phone/TemplateData/TemplateDeviceDataLogic.cs |  228 +++++++++++++++++++++++++++-----------------------------
 1 files changed, 109 insertions(+), 119 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/TemplateData/TemplateDeviceDataLogic.cs b/ZigbeeApp/Shared/Phone/TemplateData/TemplateDeviceDataLogic.cs
index fbf9219..c88369a 100755
--- a/ZigbeeApp/Shared/Phone/TemplateData/TemplateDeviceDataLogic.cs
+++ b/ZigbeeApp/Shared/Phone/TemplateData/TemplateDeviceDataLogic.cs
@@ -45,14 +45,14 @@
         {
             //鑾峰彇瀵硅薄
             var classData = new ModelCurtainHandPullControl();
-            var memoryData = (ModelCurtainHandPullControl)this.GetDeviceModelDataClass(device, ModelDeviceSaveEnum.A绐楀笜鎵嬫媺鎺у埗, classData);
+            var memoryData = (ModelCurtainHandPullControl)this.GetDeviceModelDataClass(device.DeviceAddr, device.DeviceEpoint, ModelDeviceSaveEnum.A绐楀笜鎵嬫媺鎺у埗, classData);
 
             memoryData.Statu = bolStatu;
             memoryData.ListSendTopic[0] = "SetWritableValue";
             memoryData.ListReceiveTopic[0] = "SetWritableValue_Respon";
             memoryData.ListReceiveResult[0] = receiveResult;
             //淇濆瓨鏁版嵁
-            this.SaveDeviceMemmoryData(device);
+            this.SaveDeviceMemmoryData(device.DeviceAddr, device.DeviceEpoint);
         }
 
         /// <summary>
@@ -64,7 +64,7 @@
         {
             //鑾峰彇瀵硅薄
             var classData = new ModelCurtainHandPullControl();
-            var memoryData = (ModelCurtainHandPullControl)this.GetDeviceModelDataClass(device, ModelDeviceSaveEnum.A绐楀笜鎵嬫媺鎺у埗, classData);
+            var memoryData = (ModelCurtainHandPullControl)this.GetDeviceModelDataClass(device.DeviceAddr, device.DeviceEpoint, ModelDeviceSaveEnum.A绐楀笜鎵嬫媺鎺у埗, classData);
 
             return memoryData.Statu;
         }
@@ -84,14 +84,14 @@
         {
             //鑾峰彇瀵硅薄
             var classData = new ModelCurtainDirectionAndLimite();
-            var memoryData = (ModelCurtainDirectionAndLimite)this.GetDeviceModelDataClass(device, ModelDeviceSaveEnum.A绐楀笜鏂瑰悜鍙婇檺浣�, classData);
+            var memoryData = (ModelCurtainDirectionAndLimite)this.GetDeviceModelDataClass(device.DeviceAddr, device.DeviceEpoint, ModelDeviceSaveEnum.A绐楀笜鏂瑰悜鍙婇檺浣�, classData);
 
             memoryData.Direction = isDirectionReversed;
             memoryData.ListSendTopic[0] = "SetWritableValue";
             memoryData.ListReceiveTopic[0] = "SetWritableValue_Respon";
             memoryData.ListReceiveResult[0] = receiveResult;
             //淇濆瓨鏁版嵁
-            this.SaveDeviceMemmoryData(device);
+            this.SaveDeviceMemmoryData(device.DeviceAddr, device.DeviceEpoint);
 
             return new CommonDevice.SetWritableValueResponAllData { setWritableValueResponData = new CommonDevice.SetWritableValueResponData { Status = 0 } };
         }
@@ -109,11 +109,11 @@
         /// <param name="curtainLength"></param>
         /// <param name="receiveResult">璁惧杩斿洖鐨勭粨鏋�</param>
         /// <returns></returns>
-        public bool SetCurtainLimitPoint(CommonDevice rollershade,int upLimit, int downLimit, int curtainLength, string receiveResult)
+        public bool SetCurtainLimitPoint(CommonDevice rollershade, int upLimit, int downLimit, int curtainLength, string receiveResult)
         {
             //鑾峰彇瀵硅薄
             var classData = new ModelCurtainDirectionAndLimite();
-            var memoryData = (ModelCurtainDirectionAndLimite)this.GetDeviceModelDataClass(rollershade, ModelDeviceSaveEnum.A绐楀笜鏂瑰悜鍙婇檺浣�, classData);
+            var memoryData = (ModelCurtainDirectionAndLimite)this.GetDeviceModelDataClass(rollershade.DeviceAddr, rollershade.DeviceEpoint, ModelDeviceSaveEnum.A绐楀笜鏂瑰悜鍙婇檺浣�, classData);
             memoryData.curtainLength = curtainLength;
             memoryData.downLimit = downLimit;
             memoryData.upLimit = upLimit;
@@ -121,6 +121,9 @@
             memoryData.ListSendTopic[0] = "SetWritableValue";
             memoryData.ListReceiveTopic[0] = "SetWritableValue_Respon";
             memoryData.ListReceiveResult[0] = receiveResult;
+
+            //淇濆瓨鏁版嵁
+            this.SaveDeviceMemmoryData(rollershade.DeviceAddr, rollershade.DeviceEpoint);
 
             return true;
         }
@@ -134,7 +137,7 @@
         {
             //鑾峰彇瀵硅薄
             var classData = new ModelCurtainDirectionAndLimite();
-            var memoryData = (ModelCurtainDirectionAndLimite)this.GetDeviceModelDataClass(rollershade, ModelDeviceSaveEnum.A绐楀笜鏂瑰悜鍙婇檺浣�, classData);
+            var memoryData = (ModelCurtainDirectionAndLimite)this.GetDeviceModelDataClass(rollershade.DeviceAddr, rollershade.DeviceEpoint, ModelDeviceSaveEnum.A绐楀笜鏂瑰悜鍙婇檺浣�, classData);
 
             return memoryData;
         }
@@ -153,14 +156,14 @@
         {
             //鑾峰彇瀵硅薄
             var classData = new ModelAcModeSupport();
-            var memoryData = (ModelAcModeSupport)this.GetDeviceModelDataClass(device, ModelDeviceSaveEnum.A绌鸿皟鑷畾涔夋ā寮�, classData);
+            var memoryData = (ModelAcModeSupport)this.GetDeviceModelDataClass(device.DeviceAddr, device.DeviceEpoint, ModelDeviceSaveEnum.A绌鸿皟鑷畾涔夋ā寮�, classData);
 
             memoryData.data = data;
             memoryData.ListSendTopic[0] = "SetWritableValue";
             memoryData.ListReceiveTopic[0] = "SetWritableValue_Respon";
             memoryData.ListReceiveResult[0] = receiveResult;
             //淇濆瓨鏁版嵁
-            this.SaveDeviceMemmoryData(device);
+            this.SaveDeviceMemmoryData(device.DeviceAddr, device.DeviceEpoint);
         }
 
         /// <summary>
@@ -172,7 +175,7 @@
         {
             //鑾峰彇瀵硅薄
             var classData = new ModelAcModeSupport();
-            var memoryData = (ModelAcModeSupport)this.GetDeviceModelDataClass(device, ModelDeviceSaveEnum.A绌鸿皟鑷畾涔夋ā寮�, classData);
+            var memoryData = (ModelAcModeSupport)this.GetDeviceModelDataClass(device.DeviceAddr, device.DeviceEpoint, ModelDeviceSaveEnum.A绌鸿皟鑷畾涔夋ā寮�, classData);
 
             return memoryData.data;
         }
@@ -191,14 +194,14 @@
         {
             //鑾峰彇瀵硅薄
             var classData = new ModelAcSwingModeSupport();
-            var memoryData = (ModelAcSwingModeSupport)this.GetDeviceModelDataClass(device, ModelDeviceSaveEnum.A绌鸿皟鎽嗛鍔熻兘, classData);
+            var memoryData = (ModelAcSwingModeSupport)this.GetDeviceModelDataClass(device.DeviceAddr, device.DeviceEpoint, ModelDeviceSaveEnum.A绌鸿皟鎽嗛鍔熻兘, classData);
 
             memoryData.data = data;
             memoryData.ListSendTopic[0] = "SetWritableValue";
             memoryData.ListReceiveTopic[0] = "SetWritableValue_Respon";
             memoryData.ListReceiveResult[0] = receiveResult;
             //淇濆瓨鏁版嵁
-            this.SaveDeviceMemmoryData(device);
+            this.SaveDeviceMemmoryData(device.DeviceAddr, device.DeviceEpoint);
         }
 
         /// <summary>
@@ -210,7 +213,7 @@
         {
             //鑾峰彇瀵硅薄
             var classData = new ModelAcSwingModeSupport();
-            var memoryData = (ModelAcSwingModeSupport)this.GetDeviceModelDataClass(device, ModelDeviceSaveEnum.A绌鸿皟鎽嗛鍔熻兘, classData);
+            var memoryData = (ModelAcSwingModeSupport)this.GetDeviceModelDataClass(device.DeviceAddr, device.DeviceEpoint, ModelDeviceSaveEnum.A绌鸿皟鎽嗛鍔熻兘, classData);
 
             return memoryData.data;
         }
@@ -228,7 +231,7 @@
         {
             //鑾峰彇瀵硅薄
             var classData = new ModelDeviceBindData();
-            var memoryData = (ModelDeviceBindData)this.GetDeviceModelDataClass(device, ModelDeviceSaveEnum.A璁惧缁戝畾鍒楄〃, classData);
+            var memoryData = (ModelDeviceBindData)this.GetDeviceModelDataClass(device.DeviceAddr, device.DeviceEpoint, ModelDeviceSaveEnum.A璁惧缁戝畾鍒楄〃, classData);
 
             return memoryData.BindList;
         }
@@ -244,11 +247,23 @@
             var device = Common.LocalDevice.Current.GetDevice(addBindData.DeviceAddr, addBindData.Epoint);
             //鑾峰彇瀵硅薄
             var classData = new ModelDeviceBindData();
-            var memoryData = (ModelDeviceBindData)this.GetDeviceModelDataClass(device, ModelDeviceSaveEnum.A璁惧缁戝畾鍒楄〃, classData);
+            var memoryData = (ModelDeviceBindData)this.GetDeviceModelDataClass(device.DeviceAddr, device.DeviceEpoint, ModelDeviceSaveEnum.A璁惧缁戝畾鍒楄〃, classData);
+
+            //娓呯┖缁戝畾琛ㄧ殑杩斿洖鍊�
+            string clearResult = "{"
+                + SetDouMarks("Device_ID") + ":" + (int)device.Type + ","
+                + SetDouMarks("DeviceAddr") + ":" + SetDouMarks(device.DeviceAddr) + ","
+                + SetDouMarks("Epoint") + ":" + device.DeviceEpoint + ","
+                + SetDouMarks("Data_ID") + ":5006,"
+                + SetDouMarks("Data") + ": {"
+                + SetDouMarks("Result") + ": 0,"
+                + SetDouMarks("ResultRemark") + ":" + SetDouMarks("Success") + "}"
+                + "}";
+
             if (memoryData.ListReceiveResult.Count == 1)
             {
                 //璁惧缁戝畾鏈変笁鏉″懡浠� 绗竴鏉′负娓呯┖
-                memoryData.ListReceiveResult.Insert(0, "{" + SetDouMarks("Result") + ": 0," + SetDouMarks("ResultRemark") + ": " + SetDouMarks("Success") + " }");
+                memoryData.ListReceiveResult.Insert(0, clearResult);
                 memoryData.ListReceiveTopic.Insert(0, "Bind/ClearBindInfo_Respon");
                 memoryData.ListSendTopic.Insert(0, "Bind/ClearBindInfo");
 
@@ -256,6 +271,13 @@
                 memoryData.ListReceiveTopic.Add(string.Empty);
                 memoryData.ListSendTopic.Add(string.Empty);
             }
+            else
+            {
+                memoryData.ListReceiveResult[0] = clearResult;
+                memoryData.ListReceiveTopic[0] = "Bind/ClearBindInfo_Respon";
+                memoryData.ListSendTopic[0] = "Bind/ClearBindInfo";
+            }
+
             memoryData.ListSendTopic[2] = "Bind/SetBind";
             memoryData.ListReceiveTopic[2] = "Bind/SetBind_Respon";
             memoryData.ListReceiveResult[2] = receiveResult;
@@ -307,7 +329,7 @@
                 }
             }
             //淇濆瓨鏁版嵁
-            this.SaveDeviceMemmoryData(device);
+            this.SaveDeviceMemmoryData(device.DeviceAddr, device.DeviceEpoint);
 
             return reData;
         }
@@ -322,7 +344,7 @@
             var device = Common.LocalDevice.Current.GetDevice(delDeviceBindData.DeviceAddr, delDeviceBindData.Epoint);
             //鑾峰彇瀵硅薄
             var classData = new ModelDeviceBindData();
-            var memoryData = (ModelDeviceBindData)this.GetDeviceModelDataClass(device, ModelDeviceSaveEnum.A璁惧缁戝畾鍒楄〃, classData);
+            var memoryData = (ModelDeviceBindData)this.GetDeviceModelDataClass(device.DeviceAddr, device.DeviceEpoint, ModelDeviceSaveEnum.A璁惧缁戝畾鍒楄〃, classData);
 
             //杩斿洖鍊�
             var reData = new BindObj.DelDeviceBindResponseAllData();
@@ -366,7 +388,7 @@
                 removeData.Result = 0;
             }
             //淇濆瓨鏁版嵁
-            this.SaveDeviceMemmoryData(device);
+            this.SaveDeviceMemmoryData(device.DeviceAddr, device.DeviceEpoint);
             return reData;
         }
 
@@ -390,7 +412,7 @@
                     }
                 }
             }
-            this.SaveDeviceMemmoryData(device);
+            this.SaveDeviceMemmoryData(device.DeviceAddr, device.DeviceEpoint);
 
             return new BindObj.ClearBindInfoResponseAllData
             {
@@ -410,7 +432,7 @@
         {
             //鑾峰彇瀵硅薄
             var classData = new ModelDeviceBindData();
-            var memoryData = (ModelDeviceBindData)this.GetDeviceModelDataClass(device, ModelDeviceSaveEnum.A璁惧缁戝畾鍒楄〃, classData);
+            var memoryData = (ModelDeviceBindData)this.GetDeviceModelDataClass(device.DeviceAddr, device.DeviceEpoint, ModelDeviceSaveEnum.A璁惧缁戝畾鍒楄〃, classData);
             memoryData.keyMode = value;
             memoryData.keyModeClusterID = clusterID;
 
@@ -419,9 +441,9 @@
                 if (memoryData.ListReceiveResult.Count == 1)
                 {
                     //璁惧缁戝畾鏈変笁鏉″懡浠� 绗竴鏉′负娓呯┖
-                    memoryData.ListReceiveResult.Insert(0, "{" + SetDouMarks("Result") + ": 0," + SetDouMarks("ResultRemark") + ": " + SetDouMarks("Success") + " }");
-                    memoryData.ListReceiveTopic.Insert(0, "Bind/ClearBindInfo_Respon");
-                    memoryData.ListSendTopic.Insert(0, "Bind/ClearBindInfo");
+                    memoryData.ListReceiveResult.Insert(0, string.Empty);
+                    memoryData.ListReceiveTopic.Insert(0, string.Empty);
+                    memoryData.ListSendTopic.Insert(0, string.Empty);
 
                     memoryData.ListReceiveResult.Add(string.Empty);
                     memoryData.ListReceiveTopic.Add(string.Empty);
@@ -432,7 +454,7 @@
             memoryData.ListReceiveTopic[1] = "SetWritableValue_Respon";
             memoryData.ListReceiveResult[1] = receiveResult;
 
-            this.SaveDeviceMemmoryData(device);
+            this.SaveDeviceMemmoryData(device.DeviceAddr, device.DeviceEpoint);
 
             return new CommonDevice.SetWritableValueResponAllData
             {
@@ -448,12 +470,13 @@
         public Panel.PanelConfigureInfoResponAllData ReadPanelConfigureKeyModel(CommonDevice device)
         {
             var classData = new ModelDeviceBindData();
-            var memoryData = (ModelDeviceBindData)this.GetDeviceModelDataClass(device, ModelDeviceSaveEnum.A璁惧缁戝畾鍒楄〃, classData);
+            var memoryData = (ModelDeviceBindData)this.GetDeviceModelDataClass(device.DeviceAddr, device.DeviceEpoint, ModelDeviceSaveEnum.A璁惧缁戝畾鍒楄〃, classData);
 
             var data = new Panel.PanelConfigureInfoResponAllData();
             data.deviceStatusReportData = new CommonDevice.DeviceStatusReportData { CluterID = memoryData.keyModeClusterID };
 
             var dataAttri = new CommonDevice.AttributeDataObj();
+            dataAttri.AttributeId = (int)AttriButeId.HdlKey;
             dataAttri.AttriButeData = (int)memoryData.keyMode;
             data.deviceStatusReportData.AttriBute.Add(dataAttri);
 
@@ -469,11 +492,11 @@
         /// </summary>
         /// <param name="device"></param>
         /// <returns></returns>
-        public IASZone.ParamatesInfo GetPirSensorLightSettion(CommonDevice device)
+        public IASZone.ParamatesInfo GetPirSensorLightSettion(string deviceMac, int deviceEpoint)
         {
             //鑾峰彇瀵硅薄
-            var classData = new  ModelPirSensorSettion();
-            var memoryData = (ModelPirSensorSettion)this.GetDeviceModelDataClass(device, ModelDeviceSaveEnum.APir閰嶇疆, classData);
+            var classData = new ModelPirSensorSettion();
+            var memoryData = (ModelPirSensorSettion)this.GetDeviceModelDataClass(deviceMac, deviceEpoint, ModelDeviceSaveEnum.APir閰嶇疆, classData);
 
             var localData = new IASZone.ParamatesInfo();
             localData.configureParamates = new IASZone.ConfigureParamates();
@@ -498,11 +521,11 @@
         /// <param name="configureParamates"></param>
         /// <param name="receiveResult">璁惧杩斿洖鐨勭粨鏋�</param>
         /// <returns></returns>
-        public IASZone.ResponseAllData SetPirSensorLightSettion(CommonDevice device, IASZone.ConfigureParamates configureParamates, string receiveResult)
+        public IASZone.ResponseAllData SetPirSensorLightSettion(string deviceMac, int deviceEpoint, IASZone.ConfigureParamates configureParamates, string receiveResult)
         {
             //鑾峰彇瀵硅薄
             var classData = new ModelPirSensorSettion();
-            var memoryData = (ModelPirSensorSettion)this.GetDeviceModelDataClass(device, ModelDeviceSaveEnum.APir閰嶇疆, classData);
+            var memoryData = (ModelPirSensorSettion)this.GetDeviceModelDataClass(deviceMac, deviceEpoint, ModelDeviceSaveEnum.APir閰嶇疆, classData);
 
             memoryData.pirConfigure = configureParamates;
 
@@ -510,7 +533,7 @@
             memoryData.ListReceiveTopic[0] = "ZbDataPassthrough";
             memoryData.ListReceiveResult[0] = receiveResult;
 
-            this.SaveDeviceMemmoryData(device);
+            this.SaveDeviceMemmoryData(deviceMac, deviceEpoint);
 
             return new CommonDevice.ResponseAllData { responseData = new CommonDevice.ResponseData { status = 0 } };
         }
@@ -524,11 +547,11 @@
         /// </summary>
         /// <param name="device"></param>
         /// <returns></returns>
-        public UserCenter.HdlDevicePanelLogic.PanelVibrationInfo GetPanelVibrationInfo(CommonDevice device)
+        public UserCenter.HdlDevicePanelLogic.PanelVibrationInfo GetPanelVibrationInfo(string deviceMac, int deviceEpoint)
         {
             //鑾峰彇瀵硅薄
             var classData = new ModelPanelVibrationInfo();
-            var memoryData = (ModelPanelVibrationInfo)this.GetDeviceModelDataClass(device, ModelDeviceSaveEnum.A闈㈡澘闇囧姩鍔熻兘, classData);
+            var memoryData = (ModelPanelVibrationInfo)this.GetDeviceModelDataClass(deviceMac, deviceEpoint, ModelDeviceSaveEnum.A闈㈡澘闇囧姩鍔熻兘, classData);
 
             var data = new UserCenter.HdlDevicePanelLogic.PanelVibrationInfo();
             data.A闇囧姩浣胯兘 = memoryData.vibrationInfo.A闇囧姩浣胯兘;
@@ -545,18 +568,18 @@
         /// <param name="datainfo"></param>
         /// <param name="receiveResult">璁惧杩斿洖鐨勭粨鏋�</param>
         /// <returns></returns>
-        public bool SetPanelVibrationInfo(CommonDevice device, UserCenter.HdlDevicePanelLogic.PanelVibrationInfo datainfo, string receiveResult)
+        public bool SetPanelVibrationInfo(string deviceMac, int deviceEpoint, UserCenter.HdlDevicePanelLogic.PanelVibrationInfo datainfo, string receiveResult)
         {
             //鑾峰彇瀵硅薄
             var classData = new ModelPanelVibrationInfo();
-            var memoryData = (ModelPanelVibrationInfo)this.GetDeviceModelDataClass(device, ModelDeviceSaveEnum.A闈㈡澘闇囧姩鍔熻兘, classData);
+            var memoryData = (ModelPanelVibrationInfo)this.GetDeviceModelDataClass(deviceMac, deviceEpoint, ModelDeviceSaveEnum.A闈㈡澘闇囧姩鍔熻兘, classData);
             memoryData.vibrationInfo = datainfo;
 
             memoryData.ListSendTopic[0] = "ClientDataPassthrough";
             memoryData.ListReceiveTopic[0] = "ZbDataPassthrough";
             memoryData.ListReceiveResult[0] = receiveResult;
 
-            this.SaveDeviceMemmoryData(device);
+            this.SaveDeviceMemmoryData(deviceMac, deviceEpoint);
 
             return true;
         }
@@ -574,7 +597,7 @@
         {
             //鑾峰彇瀵硅薄
             var classData = new ModelDeviceMacNameInfo();
-            var memoryData = (ModelDeviceMacNameInfo)this.GetDeviceModelDataClass(device, ModelDeviceSaveEnum.A璁惧鍚嶇О, classData);
+            var memoryData = (ModelDeviceMacNameInfo)this.GetDeviceModelDataClass(device.DeviceAddr, device.DeviceEpoint, ModelDeviceSaveEnum.A璁惧鍚嶇О, classData);
             memoryData.deviceMacName = macName;
 
             //璁惧杩斿洖鐨勭粨鏋�
@@ -583,14 +606,14 @@
             + SetDouMarks("Data_ID") + ": 100,"
             + SetDouMarks("Data") + ": {"
             + SetDouMarks("Result") + ": 0,"
-            + SetDouMarks("MacName") + ":" + macName+ "}"
+            + SetDouMarks("MacName") + ":" + SetDouMarks(macName) + "}"
             + "}";
 
             memoryData.ListSendTopic[0] = "MacRename";
             memoryData.ListReceiveTopic[0] = "MacRename_Respon";
             memoryData.ListReceiveResult[0] = receiveResult;
 
-            this.SaveDeviceMemmoryData(device);
+            this.SaveDeviceMemmoryData(device.DeviceAddr, device.DeviceEpoint);
 
             return new CommonDevice.RenameDeviceMacNameAllData
             {
@@ -612,25 +635,25 @@
         {
             //鑾峰彇瀵硅薄
             var classData = new ModelDeviceEpointNameInfo();
-            var memoryData = (ModelDeviceEpointNameInfo)this.GetDeviceModelDataClass(device, ModelDeviceSaveEnum.A绔偣鍚嶇О, classData);
+            var memoryData = (ModelDeviceEpointNameInfo)this.GetDeviceModelDataClass(device.DeviceAddr, device.DeviceEpoint, ModelDeviceSaveEnum.A绔偣鍚嶇О, classData);
             memoryData.deviceEpointName = deviceName;
 
             //璁惧杩斿洖鐨勭粨鏋�
             var receiveResult = "{"
-            + SetDouMarks("Device_ID") + ": 2,"
+            + SetDouMarks("Device_ID") + ": " + (int)device.Type + ","
             + SetDouMarks("DeviceAddr") + ": " + SetDouMarks(device.DeviceAddr) + ","
             + SetDouMarks("Epoint") + ": " + device.DeviceEpoint + ","
             + SetDouMarks("Data_ID") + ": 96,"
             + SetDouMarks("Data") + ": {"
             + SetDouMarks("Result") + ": 0,"
-            + SetDouMarks("DeviceName") + ":" + deviceName + "}"
+            + SetDouMarks("DeviceName") + ":" + SetDouMarks(deviceName) + "}"
             + "}";
 
             memoryData.ListSendTopic[0] = "DeviceRename";
             memoryData.ListReceiveTopic[0] = "DeviceRenameRespon";
             memoryData.ListReceiveResult[0] = receiveResult;
 
-            this.SaveDeviceMemmoryData(device);
+            this.SaveDeviceMemmoryData(device.DeviceAddr, device.DeviceEpoint);
 
             return new CommonDevice.DeviceRenameAllData
             {
@@ -651,15 +674,15 @@
         /// </summary>
         /// <param name="device"></param>
         /// <returns></returns>
-        public Panel.PanelSwitchLevelInfo GetDeviceLightSettion(CommonDevice device)
+        public Panel.PanelSwitchLevelInfo GetDeviceLightSettion(string deviceMac, int deviceEpoint)
         {
             //鑾峰彇瀵硅薄
-            var classData = new ModelPanelBackLightInfo();
-            var memoryData = (ModelPanelBackLightInfo)this.GetDeviceModelDataClass(device, ModelDeviceSaveEnum.A闈㈡澘鑳屽厜鐏�, classData);
+            var classData = new ModelPanelBrightnessAdjustInfo();
+            var memoryData = (ModelPanelBrightnessAdjustInfo)this.GetDeviceModelDataClass(deviceMac, deviceEpoint, ModelDeviceSaveEnum.A闈㈡澘浜害璋冭妭, classData);
 
             var data = new Panel.PanelSwitchLevelInfo();
-            data.panelBacklightLevel = memoryData.linghtLevelInfo.panelBacklightLevel == -1 ? 0 : memoryData.linghtLevelInfo.panelBacklightLevel;
-            data.panelDirectionsLevel = memoryData.linghtLevelInfo.panelDirectionsLevel == -1 ? 0 : memoryData.linghtLevelInfo.panelDirectionsLevel;
+            data.panelBacklightLevel = memoryData.panelBacklightLevel == -1 ? 0 : memoryData.panelBacklightLevel;
+            data.panelDirectionsLevel = memoryData.panelDirectionsLevel == -1 ? 0 : memoryData.panelDirectionsLevel;
             return data;
         }
 
@@ -671,30 +694,19 @@
         /// <param name="backlightLevel">0-100(杩欎釜鏄偣鍑诲墠鐨勫��)</param>
         /// <param name="receiveResult">璁惧杩斿洖鐨勭粨鏋�</param>
         /// <returns></returns>
-        public bool SetDeviceLightSettion(CommonDevice device, int directionsLevel, int backlightLevel, string receiveResult)
+        public bool SetDeviceLightSettion(string deviceMac, int deviceEpoint, int directionsLevel, int backlightLevel, string receiveResult)
         {
             //鑾峰彇瀵硅薄
-            var classData = new ModelPanelBackLightInfo();
-            var memoryData = (ModelPanelBackLightInfo)this.GetDeviceModelDataClass(device, ModelDeviceSaveEnum.A闈㈡澘鑳屽厜鐏�, classData);
-            memoryData.linghtLevelInfo.panelBacklightLevel = backlightLevel;
-            memoryData.linghtLevelInfo.panelDirectionsLevel = directionsLevel;
-            //鑳屽厜鐏湁涓変釜涓滆タ
-            if (memoryData.ListSendTopic.Count == 1)
-            {
-                memoryData.ListSendTopic.Add(string.Empty);
-                memoryData.ListSendTopic.Add(string.Empty);
+            var classData = new ModelPanelBrightnessAdjustInfo();
+            var memoryData = (ModelPanelBrightnessAdjustInfo)this.GetDeviceModelDataClass(deviceMac, deviceEpoint, ModelDeviceSaveEnum.A闈㈡澘浜害璋冭妭, classData);
+            memoryData.panelBacklightLevel = backlightLevel;
+            memoryData.panelDirectionsLevel = directionsLevel;
 
-                memoryData.ListReceiveTopic.Add(string.Empty);
-                memoryData.ListReceiveTopic.Add(string.Empty);
-
-                memoryData.ListReceiveResult.Add(string.Empty);
-                memoryData.ListReceiveResult.Add(string.Empty);
-            }
             memoryData.ListSendTopic[0] = "ClientDataPassthrough";
             memoryData.ListReceiveTopic[0] = "ZbDataPassthrough";
             memoryData.ListReceiveResult[0] = receiveResult;
 
-            this.SaveDeviceMemmoryData(device);
+            this.SaveDeviceMemmoryData(deviceMac, deviceEpoint);
 
             return true;
         }
@@ -704,11 +716,11 @@
         /// </summary>
         /// <param name="device"></param>
         /// <returns></returns>
-        public Panel.PanelSaveEnergyModeInfo GetDeviceEnergyConservationMode(CommonDevice device)
+        public Panel.PanelSaveEnergyModeInfo GetDeviceEnergyConservationMode(string deviceMac, int deviceEpoint)
         {
             //鑾峰彇瀵硅薄
-            var classData = new ModelPanelBackLightInfo();
-            var memoryData = (ModelPanelBackLightInfo)this.GetDeviceModelDataClass(device, ModelDeviceSaveEnum.A闈㈡澘鑳屽厜鐏�, classData);
+            var classData = new ModelPanelEnergyModeInfo();
+            var memoryData = (ModelPanelEnergyModeInfo)this.GetDeviceModelDataClass(deviceMac, deviceEpoint, ModelDeviceSaveEnum.A闈㈡澘鑺傝兘妯″紡, classData);
 
             var data = new Panel.PanelSaveEnergyModeInfo();
             data.enable = memoryData.energyModeInfo.enable;
@@ -726,32 +738,20 @@
         /// <param name="level">鑺傝兘妯″紡浜害:0-100</param>
         /// <param name="receiveResult">璁惧杩斿洖鐨勭粨鏋�</param>
         /// <returns></returns>
-        public bool SetDeviceEnergyConservationMode(CommonDevice device, bool modeEnable, int modeTime, int level,string receiveResult)
+        public bool SetDeviceEnergyConservationMode(string deviceMac, int deviceEpoint, bool modeEnable, int modeTime, int level, string receiveResult)
         {
             //鑾峰彇瀵硅薄
-            var classData = new ModelPanelBackLightInfo();
-            var memoryData = (ModelPanelBackLightInfo)this.GetDeviceModelDataClass(device, ModelDeviceSaveEnum.A闈㈡澘鑳屽厜鐏�, classData);
+            var classData = new ModelPanelEnergyModeInfo();
+            var memoryData = (ModelPanelEnergyModeInfo)this.GetDeviceModelDataClass(deviceMac, deviceEpoint, ModelDeviceSaveEnum.A闈㈡澘鑺傝兘妯″紡, classData);
             memoryData.energyModeInfo.enable = modeEnable;
             memoryData.energyModeInfo.time = modeTime;
             memoryData.energyModeInfo.level = level;
 
-            //鑳屽厜鐏湁涓変釜涓滆タ
-            if (memoryData.ListSendTopic.Count == 1)
-            {
-                memoryData.ListSendTopic.Add(string.Empty);
-                memoryData.ListSendTopic.Add(string.Empty);
+            memoryData.ListSendTopic[0] = "ClientDataPassthrough";
+            memoryData.ListReceiveTopic[0] = "ZbDataPassthrough";
+            memoryData.ListReceiveResult[0] = receiveResult;
 
-                memoryData.ListReceiveTopic.Add(string.Empty);
-                memoryData.ListReceiveTopic.Add(string.Empty);
-
-                memoryData.ListReceiveResult.Add(string.Empty);
-                memoryData.ListReceiveResult.Add(string.Empty);
-            }
-            memoryData.ListSendTopic[1] = "ClientDataPassthrough";
-            memoryData.ListReceiveTopic[1] = "ZbDataPassthrough";
-            memoryData.ListReceiveResult[1] = receiveResult;
-
-            this.SaveDeviceMemmoryData(device);
+            this.SaveDeviceMemmoryData(deviceMac, deviceEpoint);
 
             return true;
         }
@@ -762,11 +762,11 @@
         /// <param name="device"></param>
         /// <param name="keyNum"></param>
         /// <returns></returns>
-        public Panel.KeyColorDataResponseAllData GetPanelColorInfo(CommonDevice device, Panel.KeyNum keyNum)
+        public Panel.KeyColorDataResponseAllData GetPanelColorInfo(string deviceMac, int deviceEpoint, Panel.KeyNum keyNum)
         {
             //鑾峰彇瀵硅薄
-            var classData = new ModelPanelBackLightInfo();
-            var memoryData = (ModelPanelBackLightInfo)this.GetDeviceModelDataClass(device, ModelDeviceSaveEnum.A闈㈡澘鑳屽厜鐏�, classData);
+            var classData = new ModelPanelIndicatorLightInfo();
+            var memoryData = (ModelPanelIndicatorLightInfo)this.GetDeviceModelDataClass(deviceMac, deviceEpoint, ModelDeviceSaveEnum.A闈㈡澘鎸囩ず鐏�, classData);
 
             var data = new Panel.KeyColorDataResponseAllData();
             data.keyColorData = new Panel.KeyColorData();
@@ -789,11 +789,11 @@
         /// <param name="keyNumStatus"></param>
         /// <param name="receiveResult">璁惧杩斿洖鐨勭粨鏋�</param>
         /// <returns></returns>
-        public CommonDevice.ResponseAllData SetPanelColorInfo(CommonDevice device, Panel.KeyColorData keyColorData, Panel.KeyNumStatus keyNumStatus, string receiveResult)
+        public CommonDevice.ResponseAllData SetPanelColorInfo(string deviceMac, int deviceEpoint, Panel.KeyColorData keyColorData, Panel.KeyNumStatus keyNumStatus, string receiveResult)
         {
             //鑾峰彇瀵硅薄
-            var classData = new ModelPanelBackLightInfo();
-            var memoryData = (ModelPanelBackLightInfo)this.GetDeviceModelDataClass(device, ModelDeviceSaveEnum.A闈㈡澘鑳屽厜鐏�, classData);
+            var classData = new ModelPanelIndicatorLightInfo();
+            var memoryData = (ModelPanelIndicatorLightInfo)this.GetDeviceModelDataClass(deviceMac, deviceEpoint, ModelDeviceSaveEnum.A闈㈡澘鎸囩ず鐏�, classData);
 
             memoryData.keyColorData.keyNum = keyColorData.keyNum;
             memoryData.keyColorData.OpenColorB = keyColorData.OpenColorB;
@@ -820,23 +820,11 @@
             memoryData.KeyNum.Key15 = keyNumStatus.Key15;
             memoryData.KeyNum.Key16 = keyNumStatus.Key16;
 
-            //鑳屽厜鐏湁涓変釜涓滆タ
-            if (memoryData.ListSendTopic.Count == 1)
-            {
-                memoryData.ListSendTopic.Add(string.Empty);
-                memoryData.ListSendTopic.Add(string.Empty);
+            memoryData.ListSendTopic[0] = "ClientDataPassthrough";
+            memoryData.ListReceiveTopic[0] = "ZbDataPassthrough";
+            memoryData.ListReceiveResult[0] = receiveResult;
 
-                memoryData.ListReceiveTopic.Add(string.Empty);
-                memoryData.ListReceiveTopic.Add(string.Empty);
-
-                memoryData.ListReceiveResult.Add(string.Empty);
-                memoryData.ListReceiveResult.Add(string.Empty);
-            }
-            memoryData.ListSendTopic[2] = "ClientDataPassthrough";
-            memoryData.ListReceiveTopic[2] = "ZbDataPassthrough";
-            memoryData.ListReceiveResult[2] = receiveResult;
-
-            this.SaveDeviceMemmoryData(device);
+            this.SaveDeviceMemmoryData(deviceMac, deviceEpoint);
 
             return new CommonDevice.ResponseAllData
             {
@@ -850,13 +838,14 @@
         #region 鈻� 淇濆瓨璁惧缂撳瓨_______________________
 
         /// <summary>
-        /// 淇濆瓨璁惧缂撳瓨
+        /// 淇濆瓨璁惧缂撳瓨(鑰冭檻鏈夌殑璁惧鐢ㄧ殑鏄�200绔偣,鎵�浠ヨ繖閲屾渶濂戒笉鐢ㄨ澶囧璞′綔涓哄弬鏁�)
         /// </summary>
-        /// <param name="device">璁惧瀵硅薄</param>
-        public void SaveDeviceMemmoryData(CommonDevice device)
+        /// <param name="deviceMac"></param>
+        /// <param name="deviceEpoint"></param>
+        public void SaveDeviceMemmoryData(string deviceMac, int deviceEpoint)
         {
             //浠g爜绉诲姩鍒板埆鐨勬枃浠朵腑浜�
-            TemplateCommonLogic.Current.SaveDeviceMemmoryData(device);
+            TemplateCommonLogic.Current.SaveDeviceMemmoryData(deviceMac, deviceEpoint);
         }
 
         #endregion
@@ -864,15 +853,16 @@
         #region 鈻� 涓�鑸柟娉昣__________________________
 
         /// <summary>
-        /// 鑾峰彇璁惧淇濆瓨鐨勬ā鏉垮璞�
+        /// 鑾峰彇璁惧淇濆瓨鐨勬ā鏉垮璞�(鑰冭檻鏈夌殑璁惧鐢ㄧ殑鏄�200绔偣,鎵�浠ヨ繖閲屾渶濂戒笉鐢ㄨ澶囧璞′綔涓哄弬鏁�)
         /// </summary>
-        /// <param name="device"></param>
+        /// <param name="deviceMac"></param>
+        /// <param name="deviceEpoint"></param>
         /// <param name="saveEnum"></param>
         /// <returns></returns>
-        private TemplateDeviceDataCommon GetDeviceModelDataClass(CommonDevice device, ModelDeviceSaveEnum saveEnum, TemplateDeviceDataCommon newClass)
+        private TemplateDeviceDataCommon GetDeviceModelDataClass(string deviceMac, int deviceEpoint, ModelDeviceSaveEnum saveEnum, TemplateDeviceDataCommon newClass)
         {
             //浠g爜绉诲姩鍒板埆鐨勬枃浠朵腑浜�
-            return TemplateCommonLogic.Current.GetDeviceModelDataClass(device, saveEnum, newClass);
+            return TemplateCommonLogic.Current.GetDeviceModelDataClass(deviceMac, deviceEpoint, saveEnum, newClass);
         }
 
         /// <summary>

--
Gitblit v1.8.0