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/CommonDevice.cs |  766 +---------------------------------------------------------
 1 files changed, 18 insertions(+), 748 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/ZigBee/Device/CommonDevice.cs b/ZigbeeApp/Shared/Phone/ZigBee/Device/CommonDevice.cs
index 1528024..f73ef01 100755
--- a/ZigbeeApp/Shared/Phone/ZigBee/Device/CommonDevice.cs
+++ b/ZigbeeApp/Shared/Phone/ZigBee/Device/CommonDevice.cs
@@ -174,6 +174,14 @@
             {
                 return Newtonsoft.Json.JsonConvert.DeserializeObject<TemperatureSensor>(strDeviceByte);
             }
+            else if (strDeviceType == ZigBee.Device.DeviceType.FreshAirHumiditySensor.ToString())
+            {
+                return Newtonsoft.Json.JsonConvert.DeserializeObject<HumiditySensor>(strDeviceByte);
+            }
+            else if (strDeviceType == ZigBee.Device.DeviceType.FreshAir.ToString())
+            {
+                return Newtonsoft.Json.JsonConvert.DeserializeObject<FreshAir>(strDeviceByte);
+            }
             return null;
         }
 
@@ -230,10 +238,16 @@
                     //缁х數鍣�
                     IconPath = "Device/RelayEpoint.png";
                 }
-                else if (this.Type == DeviceType.Thermostat)
+                else if (this.Type == DeviceType.Thermostat || this.Type == DeviceType.FreshAir)
                 {
                     //绌鸿皟
+                    //鏂伴鍜岀┖璋冨浘鏍囩浉鍚�
                     IconPath = "Device/AirConditionerEpoint.png";
+                }
+                else if (this.Type == DeviceType.FreshAirHumiditySensor)
+                {
+                    //婀垮害浼犳劅鍣�
+                    IconPath = "Device/SensorHumidity.png";
                 }
                 else if (this.Type == DeviceType.TemperatureSensor)
                 {
@@ -1279,217 +1293,8 @@
 
                     if (topic == gatewayID + "/" + "MacRename_Respon")
                     {
-                        var deviceID = jobject.Value<int>("Device_ID");
-                        switch ((DeviceType)(deviceID))
-                        {
-                            case DeviceType.OnOffOutput:
-                                var toggleLight = new ToggleLight() { DeviceID = jobject.Value<int>("Device_ID"), DeviceAddr = jobject.Value<string>("DeviceAddr"), DeviceEpoint = jobject.Value<int>("Epoint"), DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = Gateway.CurrentGateWayId };
-                                toggleLight.renameDeviceMacNameData = Newtonsoft.Json.JsonConvert.DeserializeObject<ToggleLight.RenameDeviceMacNameData>(jobject["Data"].ToString());
-
-                                if (toggleLight.renameDeviceMacNameData == null)
-                                {
-                                    d = new RenameDeviceMacNameAllData { errorMessageBase = "缃戝叧杩斿洖鐨勬暟鎹负绌�" };
-                                }
-                                else
-                                {
-                                    d = new RenameDeviceMacNameAllData { renameDeviceMacNameData = toggleLight.renameDeviceMacNameData };
-                                    System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{ topic}");
-                                    var infoToggleLight = Gateway.DeviceList.Find((CommonDevice obj) => obj.DeviceID == toggleLight.DeviceID && obj.DeviceAddr == toggleLight.DeviceAddr && obj.DeviceEpoint == toggleLight.DeviceEpoint);
-                                    if (infoToggleLight != null)
-                                    {
-                                        infoToggleLight.DeviceName = toggleLight.renameDeviceMacNameData.MacName;
-                                    }
-                                }
-                                break;
-                            case DeviceType.AirSwitch:
-                                var airSwitch = new AirSwitch() { DeviceID = jobject.Value<int>("Device_ID"), DeviceAddr = jobject.Value<string>("DeviceAddr"), DeviceEpoint = jobject.Value<int>("Epoint"), DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = Gateway.CurrentGateWayId };
-                                airSwitch.renameDeviceMacNameData = Newtonsoft.Json.JsonConvert.DeserializeObject<AirSwitch.RenameDeviceMacNameData>(jobject["Data"].ToString());
-
-                                if (airSwitch.renameDeviceMacNameData == null)
-                                {
-                                    d = new RenameDeviceMacNameAllData { errorMessageBase = "缃戝叧杩斿洖鐨勬暟鎹负绌�" };
-                                }
-                                else
-                                {
-                                    d = new RenameDeviceMacNameAllData { renameDeviceMacNameData = airSwitch.renameDeviceMacNameData };
-                                    System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{ topic}");
-                                    var infoAirSwitch = Gateway.DeviceList.Find((CommonDevice obj) => obj.DeviceID == airSwitch.DeviceID && obj.DeviceAddr == airSwitch.DeviceAddr && obj.DeviceEpoint == airSwitch.DeviceEpoint);
-                                    if (infoAirSwitch != null)
-                                    {
-                                        infoAirSwitch.DeviceName = airSwitch.renameDeviceMacNameData.MacName;
-                                    }
-                                }
-                                break;
-                            case DeviceType.OnOffSwitch:
-                                var panelObj = new Panel() { DeviceID = jobject.Value<int>("Device_ID"), DeviceAddr = jobject.Value<string>("DeviceAddr"), DeviceEpoint = jobject.Value<int>("Epoint"), DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = Gateway.CurrentGateWayId };
-                                panelObj.renameDeviceMacNameData = Newtonsoft.Json.JsonConvert.DeserializeObject<Panel.RenameDeviceMacNameData>(jobject["Data"].ToString());
-                                if (panelObj.renameDeviceMacNameData == null)
-                                {
-                                    d = new RenameDeviceMacNameAllData { errorMessageBase = "缃戝叧杩斿洖鐨勬暟鎹负绌�" };
-                                }
-                                else
-                                {
-                                    d = new RenameDeviceMacNameAllData { renameDeviceMacNameData = panelObj.renameDeviceMacNameData };
-                                    System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{topic}");
-                                    var infoPanel = Gateway.DeviceList.Find((CommonDevice obj) => obj.DeviceID == panelObj.DeviceID && obj.DeviceAddr == panelObj.DeviceAddr && obj.DeviceEpoint == panelObj.DeviceEpoint);
-                                    if (infoPanel != null)
-                                    {
-                                        infoPanel.DeviceName = panelObj.renameDeviceMacNameData.MacName;
-                                    }
-                                }
-                                break;
-                            case DeviceType.WindowCoveringDevice:
-                                var windowCovering = new Rollershade() { DeviceID = jobject.Value<int>("Device_ID"), DeviceAddr = jobject.Value<string>("DeviceAddr"), DeviceEpoint = jobject.Value<int>("Epoint"), DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = Gateway.CurrentGateWayId };
-                                windowCovering.renameDeviceMacNameData = Newtonsoft.Json.JsonConvert.DeserializeObject<Rollershade.RenameDeviceMacNameData>(jobject["Data"].ToString());
-                                if (windowCovering.renameDeviceMacNameData == null)
-                                {
-                                    d = new RenameDeviceMacNameAllData { errorMessageBase = "缃戝叧杩斿洖鐨勬暟鎹负绌�" };
-                                }
-                                else
-                                {
-                                    d = new RenameDeviceMacNameAllData { renameDeviceMacNameData = windowCovering.renameDeviceMacNameData };
-                                    System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{ topic}_鏀跺埌閫氱煡鍚庣殑鏁版嵁_{ d.renameDeviceMacNameData.ToString()}");
-                                    var wc = Gateway.DeviceList.Find((CommonDevice obj) => obj.DeviceID == windowCovering.DeviceID && obj.DeviceAddr == windowCovering.DeviceAddr && obj.DeviceEpoint == windowCovering.DeviceEpoint);
-                                    if (wc != null)
-                                    {
-                                        wc.DeviceName = windowCovering.renameDeviceMacNameData.MacName;
-                                    }
-                                }
-                                break;
-                            case DeviceType.IASZone:
-                                var ias = new IASZone() { DeviceID = jobject.Value<int>("Device_ID"), DeviceAddr = jobject.Value<string>("DeviceAddr"), DeviceEpoint = jobject.Value<int>("Epoint"), DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = Gateway.CurrentGateWayId };
-                                ias.renameDeviceMacNameData = Newtonsoft.Json.JsonConvert.DeserializeObject<DimmableLight.RenameDeviceMacNameData>(jobject["Data"].ToString());
-
-                                if (ias.renameDeviceMacNameData == null)
-                                {
-                                    d = new RenameDeviceMacNameAllData { errorMessageBase = "缃戝叧杩斿洖鐨勬暟鎹负绌�" };
-                                }
-                                else
-                                {
-                                    d = new RenameDeviceMacNameAllData { renameDeviceMacNameData = ias.renameDeviceMacNameData };
-                                    System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{ topic}_鏀跺埌閫氱煡鍚庣殑鏁版嵁_{ d.renameDeviceMacNameData.ToString()}");
-                                    var info = Gateway.DeviceList.Find((CommonDevice obj) => obj.DeviceID == ias.DeviceID && obj.DeviceAddr == ias.DeviceAddr && obj.DeviceEpoint == ias.DeviceEpoint);
-                                    if (info != null)
-                                    {
-                                        info.DeviceName = ias.renameDeviceMacNameData.MacName;
-                                    }
-                                }
-                                break;
-                            case DeviceType.DimmableLight:
-                                var dimmableLight = new DimmableLight() { DeviceID = jobject.Value<int>("Device_ID"), DeviceAddr = jobject.Value<string>("DeviceAddr"), DeviceEpoint = jobject.Value<int>("Epoint"), DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = Gateway.CurrentGateWayId };
-                                dimmableLight.renameDeviceMacNameData = Newtonsoft.Json.JsonConvert.DeserializeObject<DimmableLight.RenameDeviceMacNameData>(jobject["Data"].ToString());
-
-                                if (dimmableLight.renameDeviceMacNameData == null)
-                                {
-                                    d = new RenameDeviceMacNameAllData { errorMessageBase = "缃戝叧杩斿洖鐨勬暟鎹负绌�" };
-                                }
-                                else
-                                {
-                                    d = new RenameDeviceMacNameAllData { renameDeviceMacNameData = dimmableLight.renameDeviceMacNameData };
-                                    System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{ topic}_鏀跺埌閫氱煡鍚庣殑鏁版嵁_{ d.renameDeviceMacNameData.ToString()}");
-                                    var info = Gateway.DeviceList.Find((CommonDevice obj) => obj.DeviceID == dimmableLight.DeviceID && obj.DeviceAddr == dimmableLight.DeviceAddr && obj.DeviceEpoint == dimmableLight.DeviceEpoint);
-                                    if (info != null)
-                                    {
-                                        info.DeviceName = dimmableLight.renameDeviceMacNameData.MacName;
-                                    }
-                                }
-                                break;
-                            case DeviceType.Repeater:
-                                var repeater = new DimmableLight() { DeviceID = jobject.Value<int>("Device_ID"), DeviceAddr = jobject.Value<string>("DeviceAddr"), DeviceEpoint = jobject.Value<int>("Epoint"), DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = Gateway.CurrentGateWayId };
-                                repeater.renameDeviceMacNameData = Newtonsoft.Json.JsonConvert.DeserializeObject<Repeater.RenameDeviceMacNameData>(jobject["Data"].ToString());
-
-                                if (repeater.renameDeviceMacNameData == null)
-                                {
-                                    d = new RenameDeviceMacNameAllData { errorMessageBase = "缃戝叧杩斿洖鐨勬暟鎹负绌�" };
-                                }
-                                else
-                                {
-                                    d = new RenameDeviceMacNameAllData { renameDeviceMacNameData = repeater.renameDeviceMacNameData };
-                                    System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{ topic}_鏀跺埌閫氱煡鍚庣殑鏁版嵁_{ d.renameDeviceMacNameData.ToString()}");
-                                    var info = Gateway.DeviceList.Find((CommonDevice obj) => obj.DeviceID == repeater.DeviceID && obj.DeviceAddr == repeater.DeviceAddr && obj.DeviceEpoint == repeater.DeviceEpoint);
-                                    if (info != null)
-                                    {
-                                        info.DeviceName = repeater.renameDeviceMacNameData.MacName;
-                                    }
-                                }
-                                break;
-                            case DeviceType.Thermostat:
-                                var ac = new AC() { DeviceID = jobject.Value<int>("Device_ID"), DeviceAddr = jobject.Value<string>("DeviceAddr"), DeviceEpoint = jobject.Value<int>("Epoint"), DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = Gateway.CurrentGateWayId };
-                                ac.renameDeviceMacNameData = Newtonsoft.Json.JsonConvert.DeserializeObject<AC.RenameDeviceMacNameData>(jobject["Data"].ToString());
-
-                                if (ac.renameDeviceMacNameData == null)
-                                {
-                                    d = new RenameDeviceMacNameAllData { errorMessageBase = "缃戝叧杩斿洖鐨勬暟鎹负绌�" };
-                                }
-                                else
-                                {
-                                    d = new RenameDeviceMacNameAllData { renameDeviceMacNameData = ac.renameDeviceMacNameData };
-                                    System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{ topic}_鏀跺埌閫氱煡鍚庣殑鏁版嵁_{ d.renameDeviceMacNameData.ToString()}");
-                                    var info = Gateway.DeviceList.Find((CommonDevice obj) => obj.DeviceID == ac.DeviceID && obj.DeviceAddr == ac.DeviceAddr && obj.DeviceEpoint == ac.DeviceEpoint);
-                                    if (info != null)
-                                    {
-                                        info.DeviceName = ac.renameDeviceMacNameData.MacName;
-                                    }
-                                }
-                                break;
-                            case DeviceType.Transverter:
-                                var transverter = new Transverter() { DeviceID = jobject.Value<int>("Device_ID"), DeviceAddr = jobject.Value<string>("DeviceAddr"), DeviceEpoint = jobject.Value<int>("Epoint"), DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = Gateway.CurrentGateWayId };
-                                transverter.renameDeviceMacNameData = Newtonsoft.Json.JsonConvert.DeserializeObject<Transverter.RenameDeviceMacNameData>(jobject["Data"].ToString());
-
-                                if (transverter.renameDeviceMacNameData == null)
-                                {
-                                    d = new RenameDeviceMacNameAllData { errorMessageBase = "缃戝叧杩斿洖鐨勬暟鎹负绌�" };
-                                }
-                                else
-                                {
-                                    d = new RenameDeviceMacNameAllData { renameDeviceMacNameData = transverter.renameDeviceMacNameData };
-                                    System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{ topic}_鏀跺埌閫氱煡鍚庣殑鏁版嵁_{ d.renameDeviceMacNameData.ToString()}");
-                                    var info = Gateway.DeviceList.Find((CommonDevice obj) => obj.DeviceID == transverter.DeviceID && obj.DeviceAddr == transverter.DeviceAddr && obj.DeviceEpoint == transverter.DeviceEpoint);
-                                    if (info != null)
-                                    {
-                                        info.DeviceName = transverter.renameDeviceMacNameData.MacName;
-                                    }
-                                }
-                                break;
-                            case DeviceType.DoorLock:
-                                var doorLock = new DoorLock() { DeviceID = jobject.Value<int>("Device_ID"), DeviceAddr = jobject.Value<string>("DeviceAddr"), DeviceEpoint = jobject.Value<int>("Epoint"), DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = Gateway.CurrentGateWayId };
-                                doorLock.renameDeviceMacNameData = Newtonsoft.Json.JsonConvert.DeserializeObject<DoorLock.RenameDeviceMacNameData>(jobject["Data"].ToString());
-
-                                if (doorLock.renameDeviceMacNameData == null)
-                                {
-                                    d = new RenameDeviceMacNameAllData { errorMessageBase = "缃戝叧杩斿洖鐨勬暟鎹负绌�" };
-                                }
-                                else
-                                {
-                                    d = new RenameDeviceMacNameAllData { renameDeviceMacNameData = doorLock.renameDeviceMacNameData };
-                                    System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{ topic}_鏀跺埌閫氱煡鍚庣殑鏁版嵁_{ d.renameDeviceMacNameData.ToString()}");
-                                    var info = Gateway.DeviceList.Find((CommonDevice obj) => obj.DeviceID == doorLock.DeviceID && obj.DeviceAddr == doorLock.DeviceAddr && obj.DeviceEpoint == doorLock.DeviceEpoint);
-                                    if (info != null)
-                                    {
-                                        info.DeviceName = doorLock.renameDeviceMacNameData.MacName;
-                                    }
-                                }
-                                break;
-                                //case DeviceType.TemperatureSensor:
-                                //    var temperatureSensor = new TemperatureSensor() { DeviceID = jobject.Value<int>("Device_ID"), DeviceAddr = jobject.Value<string>("DeviceAddr"), DeviceEpoint = jobject.Value<int>("Epoint"), DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = Gateway.CurrentGateWayId };
-                                //    temperatureSensor.renameDeviceData = Newtonsoft.Json.JsonConvert.DeserializeObject<TemperatureSensor.DeviceRenameResponseData>(jobject["Data"].ToString());
-                                //    if (temperatureSensor.renameDeviceData == null)
-                                //    {
-                                //        d.errorMessageBase = "缃戝叧杩斿洖鐨勬暟鎹负绌�";
-                                //    }
-                                //    else
-                                //    {
-                                //        d.deviceRenameData = temperatureSensor.renameDeviceData;
-                                //    }
-                                //    var ts = Gateway.DeviceList.Find((CommonDevice obj) => obj.DeviceID == temperatureSensor.DeviceID && obj.DeviceEpoint == temperatureSensor.DeviceEpoint && obj.DeviceEpoint == temperatureSensor.DeviceEpoint);
-                                //    if (ts == null)
-                                //    {
-                                //        ts.DeviceName = temperatureSensor.renameDeviceData.DeviceName;
-                                //        IO.LocalFileUtils.SaveDeviceInfo(ts, ts.DeviceEpoint.ToString());
-
-                                //    }
-                                //    break;
-                        }
+                        var deviceID = jobject.Value<int>("Device_ID");
+                        d = new RenameDeviceMacNameAllData { renameDeviceMacNameData = Newtonsoft.Json.JsonConvert.DeserializeObject<ToggleLight.RenameDeviceMacNameData>(jobject["Data"].ToString()) };
                     }
                 };
                 Gateway.Actions += action;
@@ -1847,16 +1652,6 @@
                         {
                             d = new RemoveGatewayDeviceListAllData { removeGatewayDeviceListData = gatewayTemp.removeGatewayDeviceListData };
                             System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{ topic}");
-
-                            //for (int listCount = 0; listCount < Gateway.AllGatewayDeviceList.Count; listCount++)
-                            //{
-                            //    var dev = Gateway.AllGatewayDeviceList[listCount];
-                            //    if (gatewayTemp.removeGatewayDeviceListData.GwId == dev.Gateway.CurrentGateWayId)
-                            //    {
-                            //        ZigBee.Device.ZbGateway.LogicList.RemoveAt(listCount);
-                            //        listCount--;
-                            //    }
-                            //}
                         }
                     }
                 };
@@ -1970,500 +1765,6 @@
             System.Console.WriteLine("Identify_Actions 閫�鍑�" + System.DateTime.Now.ToString());
 
         }
-        #endregion
-
-        #region 璁惧涓婃姤杩斿洖鏁版嵁锛岀綉鍏冲洖澶嶄俊鎭�
-        ///// <summary>
-        ///// 璁惧涓婃姤杩斿洖鏁版嵁锛岀綉鍏冲洖澶嶄俊鎭�
-        ///// </summary>
-        //public DeviceReportResponAllData deviceReportResponAllData;
-        ///// <summary>
-        ///// 缃戝叧鎭㈠鍑哄巶璁剧疆杩斿洖鏁版嵁
-        ///// </summary>
-        //[System.Serializable]
-        //public class DeviceReportResponAllData
-        //{
-        //    /// <summary>
-        //    /// 閿欒淇℃伅
-        //    /// </summary>
-        //    public string errorMessageBase;
-        //    /// <summary>
-        //    /// 缃戝叧淇℃伅閿欒鍙嶉
-        //    /// <para>褰撶綉鍏虫帴鏀跺埌瀹㈡埛绔俊鎭悗锛屽嚭鐜颁互涓嬪紓甯告儏鍐靛皢鍙嶉閿欒銆�</para>
-        //    /// </summary>
-        //    public ErrorResponData errorResponData;
-        //    ///<summary >
-        //    ///璁惧鏁版嵁
-        //    /// </summary>
-        //    public DeviceStatusReportData deviceStatusReportData;
-        //}
-
-        ///// <summary>
-        ///// 璇诲彇鎶ュ憡灞炴�ч厤缃�,寮傛鑾峰彇鏁版嵁
-        ///// </summary>
-        ///// <param name="clusterID">Cluster identifier.</param>
-        ///// <param name="attriButeId">Attri bute identifier.</param>
-        //public async System.Threading.Tasks.Task<DeviceReportResponAllData> ReadAttriAsync(Cluster_ID clusterID, AttriButeId attriButeId)
-        //{
-        //if (Gateway == null)
-        //{
-        //    return null;
-        //}
-        ////string result = null;
-
-        //return await System.Threading.Tasks.Task.Run(async () =>
-        //{
-        //var d = new DeviceReportResponAllData();
-        //Action<string, string> action = (topic, message) =>
-        //{
-        //var gatewayID = topic.Split('/')[0];
-        //var jobject = Newtonsoft.Json.Linq.JObject.Parse(message);
-
-        //if (topic == gatewayID + "/" + "Error_Respon")
-        //{
-        //    var gatewayTemp = new ZbGateway() { Time = jobject.Value<int>("Time"), DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = Gateway.getGatewayBaseInfo.gwID };
-        //    var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<ZbGateway.ErrorResponData>(jobject["Data"].ToString());
-
-        //    if (temp == null)
-        //    {
-        //        d.errorMessageBase = "缃戝叧閿欒鍥炲锛屼笖鏁版嵁鏄┖";
-        //    }
-        //    else
-        //    {
-        //        d.errorResponData = temp;
-        //        d.errorMessageBase = ErrorMess(temp.Error);
-        //    }
-        //}
-
-        //if (topic == gatewayID + "/" + "DeviceStatusReport" + "/" + DeviceAddr + "/" + DeviceEpoint + "/" + (int)clusterID + "/" + (int)attriButeId)
-        //{
-        //var deviceID = jobject.Value<int>("Device_ID");
-        //var deviceAddr = jobject.Value<string>("DeviceAddr");
-        //var ep = jobject.Value<int>("Epoint");
-
-        //var device = Gateway.DeviceList.Find((obj) => obj.DeviceID == deviceID && obj.DeviceAddr == deviceAddr && obj.DeviceEpoint == ep);
-        //if (device == null)
-        //{
-        //    return;
-        //}
-
-        //switch ((DeviceType)(deviceID))
-        //{
-        // case DeviceType.ColorDimmableLight:
-        //    device.DeviceStatusReport = Newtonsoft.Json.JsonConvert.DeserializeObject<ColorDimmableLight.DeviceStatusReportData>(jobject["Data"].ToString());
-        //    if (device.DeviceStatusReport == null)
-        //    {
-        //        d.errorMessageBase = "缃戝叧閿欒鍥炲锛屼笖鏁版嵁鏄┖";
-        //    }
-        //    else
-        //    {
-        //        d.deviceStatusReportData = device.DeviceStatusReport;
-        //        System.Console.WriteLine($"鏀跺埌閫氱煡鍚庣殑涓婚_{ topic}");
-        //        var light = device as ColorDimmableLight;
-        //        if (device.DeviceStatusReport.CluterID == 8)
-        //        {
-        //            var attriButeList = device.DeviceStatusReport.AttriBute;
-        //            foreach (var attriBute1 in attriButeList)
-        //            {
-        //                light.Level = attriBute1.AttriButeData;
-        //            }
-        //            light.ReSave();
-        //            ZigBee.Device.ZbGateway.UpdateDeviceStatus(light);
-        //        }
-        //        else if (device.DeviceStatusReport.CluterID == 6)
-        //        {
-        //            var attriButeList = device.DeviceStatusReport.AttriBute;
-        //            foreach (var attriBute1 in attriButeList)
-        //            {
-        //                light.OnOffStatus = attriBute1.AttriButeData;
-
-        //                var key = light.DeviceAddr + "_" + light.DeviceEpoint;
-        //                Gateway.sceneTaskInfoList.Remove(key);
-        //                var st = new Scene.TaskListInfo()
-        //                {
-        //                    TaskType = 1,
-        //                    Data1 = attriBute1.AttriButeData,
-        //                    Data2 = 0,
-        //                };
-        //                Gateway.sceneTaskInfoList.Add(key, st);
-        //            }
-        //            light.ReSave();
-        //            ZigBee.Device.ZbGateway.UpdateDeviceStatus(light);
-        //        }
-        //        else if (device.DeviceStatusReport.CluterID == 768)
-        //        {
-        //            var attriButeList = device.DeviceStatusReport.AttriBute;
-        //            //foreach (var attriBute1 in attriButeList)
-        //            //{
-        //            //    if (attriBute1.AttriButeId == 0)
-        //            //    {
-        //            //        light.Hue = attriBute1.AttriButeData.ToString();
-        //            //    }
-        //            //    else if ((attriBute1.AttriButeId == 1))
-        //            //    {
-        //            //        light.Saturation = attriBute1.AttriButeData.ToString();
-
-        //            //    }
-        //            //    else if ((attriBute1.AttriButeId == 16394))
-        //            //    {
-        //            //        light.ColorCapabilities = attriBute1.AttriButeData.ToString();
-        //            //    }
-        //            //    else if ((attriBute1.AttriButeId == 16384))
-        //            //    {
-        //            //        light.EnhancedCurrentHue = attriBute1.AttriButeData.ToString();
-        //            //    }
-        //            //}
-        //            light.ReSave();
-        //            ZigBee.Device.ZbGateway.UpdateDeviceStatus(light);
-        //        }
-        //    }
-        //    break;
-        // case DeviceType.OnOffSwitch:
-        //    device.DeviceStatusReport = Newtonsoft.Json.JsonConvert.DeserializeObject<Panel.DeviceStatusReportData>(jobject["Data"].ToString());
-        //    if (device.DeviceStatusReport == null)
-        //    {
-        //        d.errorMessageBase = "缃戝叧閿欒鍥炲锛屼笖鏁版嵁鏄┖";
-        //    }
-        //    else
-        //    {
-        //        d.deviceStatusReportData = device.DeviceStatusReport;
-        //        System.Console.WriteLine($"鏀跺埌閫氱煡鍚庣殑涓婚_{ topic}");
-
-        //        var panelObj = device as Panel;
-        //        foreach (var common in Gateway.DeviceList)
-        //        {
-        //            if (common.DeviceAddr != panelObj.DeviceAddr || common.DeviceEpoint != panelObj.DeviceEpoint)
-        //            {
-        //                continue;
-        //            }
-        //            if (common.Type == DeviceType.OnOffSwitch)
-        //            {
-        //                if (device.DeviceStatusReport.CluterID == 6)
-        //                {
-        //                    var attriButeList = device.DeviceStatusReport.AttriBute;
-        //                    foreach (var attriBute1 in attriButeList)
-        //                    {
-        //                        panelObj.panelMode = attriBute1.AttriButeData;
-        //                    }
-
-        //                }
-        //            }
-        //            panelObj.ReSave();
-        //            ZigBee.Device.ZbGateway.UpdateDeviceStatus(panelObj);
-        //        }
-        //    }
-        //     break;
-        //case DeviceType.OnOffOutput:
-        //    device.DeviceStatusReport = Newtonsoft.Json.JsonConvert.DeserializeObject<ToggleLight.DeviceStatusReportData>(jobject["Data"].ToString());
-        //    //if (device.DeviceStatusReport != null)
-        //    //{
-        //    //    result = "鎴愬姛";
-        //    //}
-        //    if (device.DeviceStatusReport == null)
-        //    {
-        //        d.errorMessageBase = "缃戝叧閿欒鍥炲锛屼笖鏁版嵁鏄┖";
-        //    }
-        //    else
-        //    {
-        //        d.deviceStatusReportData = device.DeviceStatusReport;
-        //        System.Console.WriteLine($"鏀跺埌閫氱煡鍚庣殑涓婚_{ topic}");
-
-        //        var lighttoggle = device as ToggleLight;
-        //        foreach (var common in Gateway.DeviceList)
-        //        {
-        //            if (common.DeviceAddr != lighttoggle.DeviceAddr || common.DeviceEpoint != lighttoggle.DeviceEpoint)
-        //            {
-        //                continue;
-        //            }
-        //            if (common.Type == DeviceType.OnOffOutput)
-        //            {
-        //                if (device.DeviceStatusReport.CluterID == 6)
-        //                {
-        //                    var attriButeList = device.DeviceStatusReport.AttriBute;
-        //                    foreach (var attriBute1 in attriButeList)
-        //                    {
-        //                        lighttoggle.OnOffStatus = attriBute1.AttriButeData;
-        //                        System.Console.WriteLine("褰撳墠寮�鍏崇姸鎬�" + "_" + attriBute1.AttriButeData.ToString() + "_" + Gateway.getGatewayBaseInfo.gwID + "_" + System.DateTime.Now.ToString());
-        //                    }
-        //                }
-        //            }
-        //            lighttoggle.ReSave();
-        //            ZigBee.Device.ZbGateway.UpdateDeviceStatus(lighttoggle);
-        //        }
-        //    }
-        //      break;
-
-        //case DeviceType.WindowCoveringDevice:
-        //    device.DeviceStatusReport = Newtonsoft.Json.JsonConvert.DeserializeObject<Rollershade.DeviceStatusReportData>(jobject["Data"].ToString());
-        //    if (device.DeviceStatusReport == null)
-        //    {
-        //        d.errorMessageBase = "缃戝叧閿欒鍥炲锛屼笖鏁版嵁鏄┖";
-        //    }
-        //    else
-        //    {
-        //        d.deviceStatusReportData = device.DeviceStatusReport;
-        //        System.Console.WriteLine($"鏀跺埌閫氱煡鍚庣殑涓婚_{ topic}");
-        //        var curtain = device as Rollershade;
-        //        foreach (var common in Gateway.DeviceList)
-        //        {
-        //            if (common.DeviceAddr != curtain.DeviceAddr || common.DeviceEpoint != curtain.DeviceEpoint)
-        //            {
-        //                continue;
-        //            }
-        //            if (common.Type == DeviceType.WindowCoveringDevice)
-        //            {
-        //                if (device.DeviceStatusReport.CluterID == 258)
-        //                {
-        //                    foreach (var attriBute1 in curtain.DeviceStatusReport.AttriBute)
-        //                    {
-        //                        switch (attriBute1.AttributeId)
-        //                        {
-        //                            case 0:
-        //                                curtain.WcdType = attriBute1.AttriButeData;
-        //                                System.Console.WriteLine("褰撳墠绐楀笜鐨勭被鍨�" + "_" + curtain.WcdType.ToString() + "_" + Gateway.getGatewayBaseInfo.gwID + "_" + System.DateTime.Now.ToString());
-        //                                break;
-        //                            case 3:
-        //                                curtain.WcdCurrentPositionLift = attriBute1.AttriButeData;
-        //                                System.Console.WriteLine("绐楀笜褰撳墠楂樺害" + "_" + curtain.WcdCurrentPositionLift.ToString() + "_" + Gateway.getGatewayBaseInfo.gwID + "_" + System.DateTime.Now.ToString());
-        //                                break;
-        //                            case 8:
-        //                                curtain.WcdCurrentPositionLiftPercentage = attriBute1.AttriButeData;
-        //                                System.Console.WriteLine("褰撳墠绐楀笜鎵�鍦ㄧ殑杩涘害锛堢櫨鍒嗭級浣嶇疆" + "_" + curtain.WcdCurrentPositionLiftPercentage.ToString() + "_" + Gateway.getGatewayBaseInfo.gwID + "_" + System.DateTime.Now.ToString());
-        //                                break;
-        //                            case 16:
-        //                                curtain.WcdInstalledOpenLimitLift = attriBute1.AttriButeData;
-        //                                System.Console.WriteLine("绐楀笜鍏ㄥ紑鎵�鍦ㄧ殑浣嶇疆" + "_" + curtain.WcdInstalledOpenLimitLift.ToString() + "_" + Gateway.getGatewayBaseInfo.gwID + "_" + System.DateTime.Now.ToString());
-        //                                break;
-        //                            case 17:
-        //                                curtain.WcdInstalledClosedLimitLift = attriBute1.AttriButeData;
-        //                                System.Console.WriteLine("绐楀笜鍏ㄥ叧鎵�鍦ㄧ殑浣嶇疆" + "_" + curtain.WcdCurrentPositionLift.ToString() + "_" + Gateway.getGatewayBaseInfo.gwID + "_" + System.DateTime.Now.ToString());
-        //                                break;
-        //                            case 18:
-        //                                curtain.WcdInstalledOpenLimitTilt = attriBute1.AttriButeData;
-        //                                System.Console.WriteLine("绐楀笜鍏ㄥ紑鎵�鍦ㄧ殑瑙掑害" + "_" + curtain.WcdCurrentPositionLift.ToString() + "_" + Gateway.getGatewayBaseInfo.gwID + "_" + System.DateTime.Now.ToString());
-        //                                break;
-        //                            case 19:
-        //                                curtain.WcdInstalledClosedLimitTilt = attriBute1.AttriButeData;
-        //                                System.Console.WriteLine("绐楀笜鍏ㄥ叧鎵�鍦ㄧ殑瑙掑害" + "_" + curtain.WcdCurrentPositionLift.ToString() + "_" + Gateway.getGatewayBaseInfo.gwID + "_" + System.DateTime.Now.ToString());
-        //                                break;
-        //                            case 23:
-        //                                curtain.WcdCurrentMode = attriBute1.AttriButeData;
-        //                                System.Console.WriteLine("绐楀笜褰撳墠妯″紡" + "_" + curtain.WcdCurrentMode.ToString() + "_" + Gateway.getGatewayBaseInfo.gwID + "_" + System.DateTime.Now.ToString());
-        //                                break;
-        //                            default:
-        //                                break;
-        //                        }
-        //                    }
-        //                    curtain.ReSave();
-        //                    ZigBee.Device.ZbGateway.UpdateDeviceStatus(curtain);
-        //                }
-        //            }
-        //        }
-        //    }
-        //    break;
-        //case DeviceType.IASZone:
-        //device.DeviceStatusReport = Newtonsoft.Json.JsonConvert.DeserializeObject<IASZone.DeviceStatusReportData>(jobject["Data"].ToString());
-        //var ias = device as IASZone;
-        //foreach (var common in Gateway.DeviceList)
-        //{
-        //    if (common.DeviceAddr != ias.DeviceAddr || common.DeviceEpoint != ias.DeviceEpoint)
-        //    {
-        //        continue;
-        //    }
-        //    if (common.Type == DeviceType.IASZone)
-        //    {
-        //        ias.ReSave();
-        //        ZigBee.Device.ZbGateway.UpdateDeviceStatus(ias);
-        //    }
-        //}
-        //ias.ReSave();
-        //break;
-        //case DeviceType.Thermostat:
-        //device.DeviceStatusReport = Newtonsoft.Json.JsonConvert.DeserializeObject<ThermostatObj.DeviceStatusReportData>(jobject["Data"].ToString());
-        //var ther = device as ThermostatObj;
-        //if (ther.DeviceStatusReport.CluterID == 514)
-        //{
-        //    foreach (var attriBute1 in ther.DeviceStatusReport.AttriBute)
-        //    {
-        //        if (attriBute1.AttributeId == 0)
-        //        {
-        //            ther.CurentFanControlMode = attriBute1.AttriButeData;
-        //        }
-        //    }
-        //}
-
-        //if (ther.DeviceStatusReport.CluterID == 513)
-        //{
-        //    foreach (var attriBute1 in ther.DeviceStatusReport.AttriBute)
-        //    {
-        //        if (attriBute1.AttributeId == 0)
-        //        {
-        //            ther.LocalThermostat = attriBute1.AttriButeData / 100;
-        //        }
-        //        else if (attriBute1.AttributeId == 17)
-        //        {
-        //            ther.CurentCoolingSetpoint = attriBute1.AttriButeData / 100;
-        //        }
-        //        else if (attriBute1.AttributeId == 18)
-        //        {
-        //            ther.CurentHeatingSetpoint = attriBute1.AttriButeData / 100;
-        //        }
-        //        else if (attriBute1.AttributeId == 28)
-        //        {
-        //            ther.CurentSystemMode = attriBute1.AttriButeData;
-        //        }
-        //    }
-        //}
-
-        //ZigBee.Device.ZbGateway.UpdateDeviceStatus(ther);
-        //break;
-        //case DeviceType.TemperatureSensor:
-        //var sensor = new TemperatureSensor() { DeviceID = jobject.Value<int>("Device_ID"), DeviceAddr = jobject.Value<string>("DeviceAddr"), DeviceEpoint = jobject.Value<int>("Epoint"), DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = Gateway.CurrentGateWayId };
-        //sensor.DeviceStatusReport = Newtonsoft.Json.JsonConvert.DeserializeObject<TemperatureSensor.DeviceStatusReportData>(jobject["Data"].ToString());
-        //ZigBee.Device.ZbGateway.UpdateDeviceStatus(sensor);
-
-        //if (sensor.DeviceStatusReport.CluterID == 1026)
-        //{
-        //    foreach (var attriBute1 in sensor.DeviceStatusReport.AttriBute)
-        //    {
-        //        if (attriBute1.AttributeId == 0)
-        //        {
-        //            sensor.CurentTemperature = attriBute1.AttriButeData;
-        //        }
-        //        else if (attriBute1.AttributeId == 1)
-        //        {
-        //            sensor.MaxTemperature = attriBute1.AttriButeData;
-        //        }
-        //        else if (attriBute1.AttributeId == 2)
-        //        {
-        //            sensor.MinTemperature = attriBute1.AttriButeData;
-        //        }
-        //        else if (attriBute1.AttributeId == 3)
-        //        {
-        //            sensor.TorleranceTemperature = attriBute1.AttriButeData;
-        //        }
-        //        IO.LocalFileUtils.SaveDeviceInfo(sensor, sensor.DeviceEpoint.ToString());
-        //    }
-        //}
-        //else if (sensor.DeviceStatusReport.CluterID == 1029)
-        //{
-        //    foreach (var attriBute1 in sensor.DeviceStatusReport.AttriBute)
-        //    {
-        //        if (attriBute1.AttributeId == 0)
-        //        {
-        //            sensor.CurentHumidity = attriBute1.AttriButeData;
-        //        }
-        //        else if (attriBute1.AttributeId == 1)
-        //        {
-        //            sensor.MaxHumidity = attriBute1.AttriButeData;
-        //        }
-        //        else if (attriBute1.AttributeId == 2)
-        //        {
-        //            sensor.MinHumidity = attriBute1.AttriButeData;
-        //        }
-        //        else if (attriBute1.AttributeId == 3)
-        //        {
-        //            sensor.ToleranceHumidity = attriBute1.AttriButeData;
-        //        }
-        //        IO.LocalFileUtils.SaveDeviceInfo(sensor, sensor.DeviceEpoint.ToString());
-        //    }
-        //}
-
-        //var sen = Gateway.SensorInfoList.Find(obj => obj.DeviceAddr == sensor.DeviceAddr && obj.DeviceEpoint == sensor.DeviceEpoint);
-        //if (sen == null)
-        //{
-        //    Gateway.SensorInfoList.Add(sensor);
-        //}
-        //else
-        //{
-        //    if (sensor.DeviceStatusReport.CluterID == 1026)
-        //    {
-        //        foreach (var attriBute1 in sensor.DeviceStatusReport.AttriBute)
-        //        {
-        //            if (attriBute1.AttributeId == 0)
-        //            {
-        //                sen.CurentTemperature = attriBute1.AttriButeData;
-        //            }
-        //            else if (attriBute1.AttributeId == 1)
-        //            {
-        //                sen.MaxTemperature = attriBute1.AttriButeData;
-        //            }
-        //            else if (attriBute1.AttributeId == 2)
-        //            {
-        //                sen.MinTemperature = attriBute1.AttriButeData;
-        //            }
-        //            else if (attriBute1.AttributeId == 3)
-        //            {
-        //                sen.TorleranceTemperature = attriBute1.AttriButeData;
-        //            }
-        //            IO.LocalFileUtils.SaveDeviceInfo(sensor, sensor.DeviceEpoint.ToString());
-        //        }
-        //    }
-        //    else if (sensor.DeviceStatusReport.CluterID == 1029)
-        //    {
-        //        foreach (var attriBute1 in sensor.DeviceStatusReport.AttriBute)
-        //        {
-        //            if (attriBute1.AttributeId == 0)
-        //            {
-        //                sen.CurentHumidity = attriBute1.AttriButeData;
-        //            }
-        //            else if (attriBute1.AttributeId == 1)
-        //            {
-        //                sen.MaxHumidity = attriBute1.AttriButeData;
-        //            }
-        //            else if (attriBute1.AttributeId == 2)
-        //            {
-        //                sen.MinHumidity = attriBute1.AttriButeData;
-        //            }
-        //            else if (attriBute1.AttributeId == 3)
-        //            {
-        //                sen.ToleranceHumidity = attriBute1.AttriButeData;
-        //            }
-        //            IO.LocalFileUtils.SaveDeviceInfo(sensor, sensor.DeviceEpoint.ToString());
-        //        }
-        //    }
-        //}
-        //break;
-        //                }
-        //            }
-        //        };
-
-        //        Gateway.Actions += action;
-
-        //        var JObject = new JObject {
-        //        { "DeviceAddr",DeviceAddr },
-        //        { "Epoint", DeviceEpoint },
-        //        { "Cluster_ID", (int)clusterID },
-        //        { "Command", 108 }
-        //    };
-        //        var attriBute = new JArray{
-        //          new JObject {
-        //            { "AttriButeId", (int)attriButeId}
-        //           }
-        //    };
-        //        var data = new JObject { { "AttriBute", attriBute } };
-        //        JObject.Add("Data", data);
-        //        Gateway?.Send(("GetDeviceStatus"), Common.SecuritySet.Encryption((JObject.ToString())));
-
-        //        var dateTime = DateTime.Now;
-        //        while ((DateTime.Now - dateTime).TotalMilliseconds < 5000)
-        //        {
-        //            await System.Threading.Tasks.Task.Delay(10);
-        //            if (d.deviceStatusReportData != null)
-        //            {
-        //                break;
-        //            }
-        //        }
-        //        if ((DateTime.Now - dateTime).TotalMilliseconds > 10000)
-        //        {
-        //            d.errorMessageBase = " 鍥炲瓒呮椂锛岃閲嶆柊鎿嶄綔";
-        //        }
-        //        Gateway.Actions -= action;
-        //        return d;
-
-        //    });
-
-        //}
         #endregion
 
         #region 璁惧灞炴�х姸鎬佷笂鎶�
@@ -3370,37 +2671,6 @@
 
         #endregion
 
-        #region 鍚敤鎴栧叧闂妭鐐硅澶囬�忎紶鏁版嵁涓婁紶鎺ュ彛
-        /// <summary>
-        /// 鑺傜偣璁惧閫忎紶鏁版嵁鍒板鎴风
-        /// <para>缃戝叧绋嬪簭榛樿鏄叧闂�忎紶鏁版嵁涓婁紶鐨勶紝鍙互閫氳繃浠ヤ笅鎸囦护寮�鍚�忎紶鏁版嵁涓婁紶銆傞�忎紶鏁版嵁涓婁紶寮�鍚悗锛岄噸鍚綉鍏崇▼搴忛�忎紶鏁版嵁涓婁紶灏嗚繕鍘熸垚鍏抽棴鐘舵��</para>
-        /// <para>isOn 0锛氬叧闂�忎紶鏁版嵁涓婁紶</para>
-        /// <para>isOn 1锛氬紑鍚�忎紶鏁版嵁涓婁紶</para>
-        /// </summary>
-        //public void OpenPassthroughControl(ZigBee.Device.ZbGateway gateway, int isOn = 1)
-        //{
-        //    if (Gateway == null)
-        //    {
-        //        return;
-        //    }
-        //    Action<string, string> action = (topic, message) => { };
-        //    Gateway.Actions += action;
-        //    System.Console.WriteLine("OnZbDataPassthrough_Actions 鍚姩" + "_" + System.DateTime.Now.ToString());
-
-        //    try
-        //    {
-        //        var jObject = new JObject { { "Cluster_ID", 64513 }, { "Command", 1 } };
-        //        var data = new JObject { { "IsOn", isOn } };
-        //        jObject.Add("Data", data);
-        //        gateway.Send(("OnZbDataPassthrough"), jObject.ToString());
-        //    }
-        //    catch { }
-
-        //    Gateway.Actions -= action;
-        //    System.Console.WriteLine("OnZbDataPassthrough_Actions 閫�鍑�" + System.DateTime.Now.ToString());
-        //}
-        #endregion
-
         #region 瀹㈡埛绔悜鑺傜偣璁惧閫忎紶鏁版嵁.
         /// <summary>
         /// 瀹㈡埛绔悜鑺傜偣璁惧閫忎紶鏁版嵁
@@ -3880,7 +3150,7 @@
             /// <summary>
             ///鍝嶅簲鎿嶄綔鐮侊紙0-ffff锛�
             /// </summary>
-            public int command = -1;
+            public string command;
             /// <summary>
             /// 鐘舵�佸��
             /// <para>0--鎴愬姛 1--澶辫触 ff--鏃犳晥</para>

--
Gitblit v1.8.0