From 48ba446936b51fffafa7c3600c0dadc6ac0e8c20 Mon Sep 17 00:00:00 2001 From: 陈嘉乐 <cjl@hdlchina.com.cn> Date: 星期五, 10 七月 2020 10:52:13 +0800 Subject: [PATCH] 2020-07-10-01 --- ZigbeeApp/Shared/Phone/ZigBee/Device/CommonDevice.cs | 2697 ++++++++--------------------------------------------------- 1 files changed, 362 insertions(+), 2,335 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/ZigBee/Device/CommonDevice.cs b/ZigbeeApp/Shared/Phone/ZigBee/Device/CommonDevice.cs index df4003f..da81728 100755 --- a/ZigbeeApp/Shared/Phone/ZigBee/Device/CommonDevice.cs +++ b/ZigbeeApp/Shared/Phone/ZigBee/Device/CommonDevice.cs @@ -8,29 +8,170 @@ [System.Serializable] public class CommonDevice { - [Newtonsoft.Json.JsonIgnore] - public DateTime LastDateTime = DateTime.MinValue; + #region 闇�瑕佷繚瀛樼殑鍙橀噺 - /// <summary> - /// 璋冭瘯鏃舵墦寮�鎵撳嵃淇℃伅锛宼rue:鎵撳嵃锛宖alse:涓嶆墦鍗� + /// <summary> + /// 鏄惁鏄嚜瀹氫箟鍥剧墖 /// </summary> - /// <param name="msg">Message.</param> - /// <param name="flage">If set to <c>true</c> flage.</param> - public static void DebugPrintLog(string msg, bool flage = true) + public bool IsCustomizeImage = false; + /// <summary> + /// 璁惧鍥剧墖 + /// </summary> + public string IconPath = string.Empty; + /// <summary> + /// 璁惧鍥剧墖--鍦ㄧ嚎鎴栬�呴�変腑鐘舵�� + /// </summary> + /// <value>The online icon path.</value> + [Newtonsoft.Json.JsonIgnore] + public string OnlineIconPath { - if (flage == true) + get { - if (msg.Contains("DeviceStatusReport") == false) + if (string.IsNullOrEmpty(IconPath)) { - System.Console.WriteLine(msg + " " + System.DateTime.Now.ToLongTimeString() + " " + System.DateTime.Now.Millisecond); + return string.Empty; } + var pathArr = IconPath.Split('.'); + if (pathArr == null || string.IsNullOrEmpty(pathArr[0])) + { + return string.Empty; + } + return $"{pathArr[0]}Selected.png"; } } + /// <summary> + /// 褰撳墠缃戝叧鐨処D + /// </summary> + public string CurrentGateWayId; + /// <summary> + /// 褰撳墠璁惧绫诲瀷 + /// </summary> + [Newtonsoft.Json.JsonIgnore] + public DeviceType Type = DeviceType.UnKown; + /// <summary> + /// 璁惧鐨勫姛鑳界被鍨�(姝ょ被鍨嬬洰鍓嶅彧閽堝缁х數鍣ㄥ洖璺湁鏁�,榛樿鏈寚瀹�) + /// </summary> + public DeviceFunctionType DfunctionType = DeviceFunctionType.A鏈畾涔�; + /// <summary> + /// MAC鍦板潃 + /// </summary> + public string DeviceAddr; + /// <summary> + /// 璁惧绔彛鍙� + /// </summary> + public int DeviceEpoint; + /// <summary> + /// 璁惧id + /// <para>258:color dimmable light,璋冨叧鐏� </para> + /// <para>10:Door lock,闂ㄩ攣</para> + /// <para>514:Window covering device,绐楀笜</para> + /// <para>515:Window covering controller锛岀獥甯樻帶鍒跺櫒</para> + /// <para>769:Thermostat,鎭掓俯闈㈡澘/绌鸿皟</para> + /// <para>770:Temperature Sensor,娓╁害浼犳劅鍣�</para> + /// <para>775:Temperature Sensor,婀垮害浼犳劅鍣�</para> + /// <para>262:Light sensor,鍏夌収浼犳劅鍣�</para> + /// <para>1026:sensor,浼犳劅鍣紝鍏蜂綋绫诲瀷鐨勪紶鎰熷櫒DeviceType鏉ュ尯鍒�</para> + /// </summary> + public int DeviceID; + /// <summary> + /// 璇ュ瓧娈典富瑕侀拡瀵笽AS瀹夐槻璁惧璁剧珛銆傛墍鏈塈AS瀹夐槻璁惧鍏辩敤涓�涓狣eviceID涓�1026銆傛墍浠ヨ鍖哄垎瀛愯澶囩被鍨嬶紝闇�瑕佽瀛楁銆� + /// 鐬棿鏁版嵁涓婃姤鐨勪紶鎰熷櫒 (MomentStatus=1 TriggerZoneStatus>=1锛滄姤璀︼紴) + /// <para>13:Motion sensor (杩愬姩浼犳劅鍣級</para> + /// <para>40 Fire sensor 鐑熼浘浼犳劅鍣�</para> + /// <para>42 Water sensor 姘翠镜浼犳劅鍣�</para> + /// <para>43 Carbon Monoxide (CO) 鐕冩皵浼犳劅鍣�</para> + /// <para>44 Personal emergency device 绱ф�ユ寜閽�</para> + /// <para>277 Key fob 閽ュ寵鎵�</para> + /// <para>鎸佺画鏁版嵁涓婃姤(MomentStatus=0 TriggerZoneStatus>=1锛滄姤璀︼紴 TriggerZoneStatus=0锛滃彇娑堟姤璀︼紴)</para> + /// <para>21: Door/Window 闂ㄧ獥浼犳劅鍣紙鏈�21鍜�22锛岃繖閲屾病鏈夊啓閿欙級</para> + /// <para>22:Door/Window 闂ㄧ獥浼犳劅鍣紙鏈�21鍜�22锛岃繖閲屾病鏈夊啓閿�</para> + /// </summary> + public int IasDeviceType; + /// <summary> + /// 璁惧鍚嶇О,浠ヨ澶囩殑MAC鍛藉悕 + /// </summary> + public string DeviceName = "UnKown"; + /// <summary> + /// 璁惧绔偣鍚嶇О锛屼互璁惧绔偣鍚嶇О鍛藉悕 + /// </summary> + public string DeviceEpointName = "UnKown"; + /// <summary> + /// 鐢ㄤ簬鍒ゆ柇璁惧鐨剒igbee鍗忚鐗堟湰銆� + ///<para>49246锛歓LL1.0鏍囧噯璁惧銆�</para> + ///<para>260锛� ZHA1.2鏍囧噯璁惧銆� Z3.0鏍囧噯璁惧銆�</para> + ///<para>41440锛歓GP3.0鏍囧噯璁惧銆�</para> + ///<para>265锛歓SE1.4鏍囧噯璁惧銆�</para> + /// </summary> + [Newtonsoft.Json.JsonIgnore] + public int Profile; + /// <summary> + /// 0锛氳澶囦笉鍦ㄧ嚎 + /// <para>1锛氳澶囧湪绾�</para> + /// </summary> + public int IsOnline; + /// <summary> + /// 1锛氳矾鐢辫澶� + /// <para>2锛氱粓绔澶囷紝鐢垫睜璁惧</para> + /// </summary> + public int ZigbeeType; + /// <summary> + /// 褰撳墠杩愯绋嬪簭鐗堟湰淇℃伅銆� 鏈�澶�64瀛楄妭 + /// </summary> + public int ImgVersion; + /// <summary> + /// 纭欢鐗堟湰 + /// </summary> + public int HwVersion; + /// <summary> + /// 褰撳墠闀滃儚绫诲瀷id + /// </summary> + public int ImgTypeId; + /// <summary> + /// 椹卞姩浠g爜銆備负0鏃讹紝琛ㄧずzigbee鍗忚皟鍣ㄨ澶囥�傚叾浠栧�艰〃绀轰负铏氭嫙椹卞姩璁惧 + /// </summary> + public int DriveCode; + /// <summary> + /// 鐢熶骇鍟嗗悕瀛� + /// </summary> + public string ManufacturerName = string.Empty; + /// <summary> + /// 妯″潡ID锛堣繖涓笢瑗夸篃鍙�愬瀷鍙风爜銆戯級 + /// </summary> + public string ModelIdentifier = string.Empty; + /// <summary> + /// 鐢熶骇鏃ユ湡 + /// </summary> + public string ProductionDate = string.Empty; + /// <summary> + /// 鐢垫簮 + /// </summary> + public int PowerSource = -1; + /// <summary> + /// 搴忓垪鍙� + /// </summary> + public string SerialNumber = string.Empty; + /// <summary> + /// 杈撳叆绨囧垪琛� + /// </summary> + public List<InClusterObj> InClusterList = new List<InClusterObj>(); + /// <summary> + /// 杈撳嚭绨囧垪琛� + /// </summary> + public List<OutClusterObj> OutClusterList = new List<OutClusterObj>(); + + [Newtonsoft.Json.JsonIgnore] + public DateTime LastDateTime = DateTime.MinValue; + /// <summary> + /// 鏄惁宸茬粡璇诲彇浜嗚澶囩姸鎬�(姝ゅ睘鎬ф槸缁欎富椤典娇鐢ㄧ殑) + /// </summary> + [Newtonsoft.Json.JsonIgnore] + public bool HadReadDeviceStatu = false; /// <summary> /// 绛夊緟浠庣綉鍏虫帴鏀舵暟鎹殑鏃堕棿 /// </summary> /// <value>The wait receive data time.</value> + [Newtonsoft.Json.JsonIgnore] public virtual int WaitReceiveDataTime { get @@ -46,16 +187,6 @@ } } - - [Newtonsoft.Json.JsonIgnore] - public bool IsValid - { - get - { - return (DateTime.Now - LastDateTime).TotalSeconds < 10; - } - } - /// <summary> /// 閫氳繃璁惧璋冪敤缃戝叧 /// </summary> @@ -68,12 +199,12 @@ { return null; } - var gateWay = ZbGateway.GateWayList.Find(obj => (obj != null) && (obj.getGatewayBaseInfo != null) && (obj.getGatewayBaseInfo.gwID == CurrentGateWayId)); + var gateWay = ZbGateway.GateWayList.Find(obj => (obj != null) && (obj.GwId == CurrentGateWayId)); if (gateWay == null) { gateWay = new ZbGateway { IsVirtual = true, }; - gateWay.getGatewayBaseInfo.gwID = CurrentGateWayId; - gateWay.getGatewayBaseInfo.HomeId = Shared.Common.Config.Instance.HomeId; + gateWay.GwId = CurrentGateWayId; + gateWay.HomeId = Shared.Common.Config.Instance.HomeId; ZbGateway.GateWayList.Add(gateWay); } @@ -96,6 +227,94 @@ } } + #endregion + + #region 璁惧淇濆瓨鍙婄敓鎴� + + /// <summary> + /// 鐢辫澶囧瓧绗︿覆姣旂壒鎭㈠璁惧瀵硅薄 + /// </summary> + /// <param name="strDeviceType">璁惧DeviceType鐨勫瓧绗︿覆绫诲瀷</param> + /// <param name="strDeviceByte">璁惧Json鏂囦欢杞负姣旂壒鍚庡啀杞负鐨勫瓧绗︿覆</param> + /// <returns></returns> + public static CommonDevice CommonDeviceByByteString(string strDeviceType, string strDeviceByte) + { + CommonDevice device = null; + if (strDeviceType == ZigBee.Device.DeviceType.DimmableLight.ToString()) + { + device = Newtonsoft.Json.JsonConvert.DeserializeObject<DimmableLight>(strDeviceByte); + } + else if (strDeviceType == ZigBee.Device.DeviceType.OnOffOutput.ToString()) + { + device = Newtonsoft.Json.JsonConvert.DeserializeObject<ToggleLight>(strDeviceByte); + } + else if (strDeviceType == ZigBee.Device.DeviceType.WindowCoveringDevice.ToString()) + { + device = Newtonsoft.Json.JsonConvert.DeserializeObject<Rollershade>(strDeviceByte); + } + else if (strDeviceType == ZigBee.Device.DeviceType.OnOffSwitch.ToString()) + { + device = Newtonsoft.Json.JsonConvert.DeserializeObject<Panel>(strDeviceByte); + } + else if (strDeviceType == ZigBee.Device.DeviceType.IASZone.ToString()) + { + device = Newtonsoft.Json.JsonConvert.DeserializeObject<IASZone>(strDeviceByte); + } + else if (strDeviceType == ZigBee.Device.DeviceType.OtaDevice.ToString() || strDeviceType == ZigBee.Device.DeviceType.OtaPanelDevice.ToString()) + { + device = Newtonsoft.Json.JsonConvert.DeserializeObject<OTADevice>(strDeviceByte); + } + else if (strDeviceType == ZigBee.Device.DeviceType.AirSwitch.ToString()) + { + device = Newtonsoft.Json.JsonConvert.DeserializeObject<AirSwitch>(strDeviceByte); + } + else if (strDeviceType == ZigBee.Device.DeviceType.Repeater.ToString()) + { + device = Newtonsoft.Json.JsonConvert.DeserializeObject<Repeater>(strDeviceByte); + } + else if (strDeviceType == ZigBee.Device.DeviceType.Thermostat.ToString()) + { + device = Newtonsoft.Json.JsonConvert.DeserializeObject<AC>(strDeviceByte); + } + else if (strDeviceType == ZigBee.Device.DeviceType.Transverter.ToString()) + { + device = Newtonsoft.Json.JsonConvert.DeserializeObject<Transverter>(strDeviceByte); + } + else if (strDeviceType == ZigBee.Device.DeviceType.DoorLock.ToString()) + { + device = Newtonsoft.Json.JsonConvert.DeserializeObject<DoorLock>(strDeviceByte); + } + else if (strDeviceType == ZigBee.Device.DeviceType.TemperatureSensor.ToString()) + { + device = Newtonsoft.Json.JsonConvert.DeserializeObject<TemperatureSensor>(strDeviceByte); + } + else if (strDeviceType == ZigBee.Device.DeviceType.FreshAirHumiditySensor.ToString()) + { + device = Newtonsoft.Json.JsonConvert.DeserializeObject<HumiditySensor>(strDeviceByte); + } + else if (strDeviceType == ZigBee.Device.DeviceType.FreshAir.ToString()) + { + device = Newtonsoft.Json.JsonConvert.DeserializeObject<FreshAir>(strDeviceByte); + } + else if (strDeviceType == ZigBee.Device.DeviceType.PMSensor.ToString()) + { + return Newtonsoft.Json.JsonConvert.DeserializeObject<PMSensor>(strDeviceByte); + } + else if (strDeviceType == ZigBee.Device.DeviceType.ColorTemperatureLight.ToString()) + { + return Newtonsoft.Json.JsonConvert.DeserializeObject<ColorTemperatureLight>(strDeviceByte); + } + else if (strDeviceType == ZigBee.Device.DeviceType.Buzzer.ToString()) + { + return Newtonsoft.Json.JsonConvert.DeserializeObject<Buzzer>(strDeviceByte); + } + else { return null; } + //鑳藉皯瀛樹竴涓彉閲忓氨灏戝瓨涓�涓� + device.Type = (DeviceType)device.DeviceID; + + return device; + } + /// <summary> /// 鐢辫澶囪矾寰勬仮澶嶈澶囧璞� /// </summary> @@ -109,65 +328,6 @@ return null; } return CommonDeviceByByteString(v[1], System.Text.Encoding.UTF8.GetString(Shared.Common.Global.ReadFileByHomeId(deviceFilePath))); - } - - /// <summary> - /// 鐢辫澶囧瓧绗︿覆姣旂壒鎭㈠璁惧瀵硅薄 - /// </summary> - /// <param name="strDeviceType">璁惧DeviceType鐨勫瓧绗︿覆绫诲瀷</param> - /// <param name="strDeviceByte">璁惧Json鏂囦欢杞负姣旂壒鍚庡啀杞负鐨勫瓧绗︿覆</param> - /// <returns></returns> - public static CommonDevice CommonDeviceByByteString(string strDeviceType, string strDeviceByte) - { - if (strDeviceType == ZigBee.Device.DeviceType.DimmableLight.ToString()) - { - return Newtonsoft.Json.JsonConvert.DeserializeObject<DimmableLight>(strDeviceByte); - } - else if (strDeviceType == ZigBee.Device.DeviceType.OnOffOutput.ToString()) - { - return Newtonsoft.Json.JsonConvert.DeserializeObject<ToggleLight>(strDeviceByte); - } - else if (strDeviceType == ZigBee.Device.DeviceType.WindowCoveringDevice.ToString()) - { - return Newtonsoft.Json.JsonConvert.DeserializeObject<Rollershade>(strDeviceByte); - } - else if (strDeviceType == ZigBee.Device.DeviceType.OnOffSwitch.ToString()) - { - return Newtonsoft.Json.JsonConvert.DeserializeObject<Panel>(strDeviceByte); - } - else if (strDeviceType == ZigBee.Device.DeviceType.IASZone.ToString()) - { - return Newtonsoft.Json.JsonConvert.DeserializeObject<IASZone>(strDeviceByte); - } - else if (strDeviceType == ZigBee.Device.DeviceType.OtaDevice.ToString() || strDeviceType == ZigBee.Device.DeviceType.OtaPanelDevice.ToString()) - { - return Newtonsoft.Json.JsonConvert.DeserializeObject<OTADevice>(strDeviceByte); - } - else if (strDeviceType == ZigBee.Device.DeviceType.AirSwitch.ToString()) - { - return Newtonsoft.Json.JsonConvert.DeserializeObject<AirSwitch>(strDeviceByte); - } - else if (strDeviceType == ZigBee.Device.DeviceType.Repeater.ToString()) - { - return Newtonsoft.Json.JsonConvert.DeserializeObject<Repeater>(strDeviceByte); - } - else if (strDeviceType == ZigBee.Device.DeviceType.Thermostat.ToString()) - { - return Newtonsoft.Json.JsonConvert.DeserializeObject<AC>(strDeviceByte); - } - else if (strDeviceType == ZigBee.Device.DeviceType.Transverter.ToString()) - { - return Newtonsoft.Json.JsonConvert.DeserializeObject<Transverter>(strDeviceByte); - } - else if (strDeviceType == ZigBee.Device.DeviceType.DoorLock.ToString()) - { - return Newtonsoft.Json.JsonConvert.DeserializeObject<DoorLock>(strDeviceByte); - } - else if (strDeviceType == ZigBee.Device.DeviceType.TemperatureSensor.ToString()) - { - return Newtonsoft.Json.JsonConvert.DeserializeObject<TemperatureSensor>(strDeviceByte); - } - return null; } /// <summary> @@ -217,6 +377,11 @@ { //璋冨厜鍣� IconPath = "Device/Light.png"; + } + else if (this.Type == DeviceType.ColorTemperatureLight) + { + //鑹叉俯鐏� + IconPath = "Device/ColorLightTemperature.png"; } else if (this.Type == DeviceType.OnOffOutput) { @@ -225,8 +390,23 @@ } else if (this.Type == DeviceType.Thermostat) { - //绌鸿皟 + //绌鸿皟 IconPath = "Device/AirConditionerEpoint.png"; + } + else if (this.Type == DeviceType.FreshAir) + { + //鏂伴 + IconPath = "Device/FreshAirEpoint.png"; + } + else if (this.Type == DeviceType.PMSensor) + { + //PM2.5绌烘皵璐ㄩ噺浼犳劅鍣� + IconPath = "Device/AirQualitySensorEpoint.png"; + } + else if (this.Type == DeviceType.FreshAirHumiditySensor) + { + //婀垮害浼犳劅鍣� + IconPath = "Device/SensorHumidity.png"; } else if (this.Type == DeviceType.TemperatureSensor) { @@ -246,199 +426,16 @@ //鍏朵粬鐨勫浘鏍囨湁鐐圭壒娈� string unSelectPic = string.Empty; string selectPic = string.Empty; - Shared.Common.LocalDevice.Current.GetDeviceBeloneIcon(new List<CommonDevice> { this }, ref unSelectPic, ref selectPic); + Shared.Common.LocalDevice.Current.GetDeviceObjectIcon(new List<CommonDevice> { this }, ref unSelectPic, ref selectPic); IconPath = unSelectPic; } Shared.Common.Global.WriteFileByBytesByHomeId(FilePath, System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(this))); } } - /// <summary> - /// 鏄惁鏄嚜瀹氫箟鍥剧墖 - /// </summary> - public bool IsCustomizeImage = false; - /// <summary> - /// 璁惧鍥剧墖 - /// </summary> - public string IconPath = string.Empty; - /// <summary> - /// 璁惧鍥剧墖--鍦ㄧ嚎鎴栬�呴�変腑鐘舵�� - /// </summary> - /// <value>The online icon path.</value> - [Newtonsoft.Json.JsonIgnore] - public string OnlineIconPath - { - get - { - if (string.IsNullOrEmpty(IconPath)) - { - return string.Empty; - } - var pathArr = IconPath.Split('.'); - if (pathArr == null || string.IsNullOrEmpty(pathArr[0])) - { - return string.Empty; - } - return $"{pathArr[0]}Selected.png"; - } - } + #endregion - /// <summary> - /// 褰撳墠缃戝叧鐨処D - /// </summary> - public string CurrentGateWayId; - /// <summary> - /// 褰撳墠璁惧绫诲瀷 - /// </summary> - public DeviceType Type = DeviceType.UnKown; - /// <summary> - /// 璁惧鐨勫姛鑳界被鍨�(姝ょ被鍨嬬洰鍓嶅彧閽堝缁х數鍣ㄥ洖璺湁鏁�,榛樿鏈寚瀹�) - /// </summary> - public DeviceFunctionType DfunctionType = DeviceFunctionType.A鏈畾涔�; - /// <summary> - /// MAC鍦板潃 - /// </summary> - public string DeviceAddr; - - /// <summary> - /// 璁惧绔彛鍙� - /// </summary> - public int DeviceEpoint; - - /// <summary> - /// 璁惧鍛戒护鏍煎紡锛歁ac+绔彛 - /// </summary> - /// <value>The common device address epoint.</value> - public string CommonDeviceAddrEpoint - { - get - { - return DeviceAddr + "_" + DeviceEpoint.ToString(); - } - } - - /// <summary> - /// 缃戝叧鍙嶉鐨勬椂闂存埑 - /// </summary> - public int Time; - - /// <summary> - /// 缃戝叧鍥炲鐨勬暟鎹甀D - /// </summary> - public int DataID; - - /// <summary> - /// 璁惧id - /// <para>258:color dimmable light,璋冨叧鐏� </para> - /// <para>10:Door lock,闂ㄩ攣</para> - /// <para>514:Window covering device,绐楀笜</para> - /// <para>515:Window covering controller锛岀獥甯樻帶鍒跺櫒</para> - /// <para>769:Thermostat,鎭掓俯闈㈡澘/绌鸿皟</para> - /// <para>770:Temperature Sensor,娓╁害浼犳劅鍣�</para> - /// <para>775:Temperature Sensor,婀垮害浼犳劅鍣�</para> - /// <para>262:Light sensor,鍏夌収浼犳劅鍣�</para> - /// <para>1026:sensor,浼犳劅鍣紝鍏蜂綋绫诲瀷鐨勪紶鎰熷櫒DeviceType鏉ュ尯鍒�</para> - /// </summary> - public int DeviceID; - - /// <summary> - /// 璇ュ瓧娈典富瑕侀拡瀵笽AS瀹夐槻璁惧璁剧珛銆傛墍鏈塈AS瀹夐槻璁惧鍏辩敤涓�涓狣eviceID涓�1026銆傛墍浠ヨ鍖哄垎瀛愯澶囩被鍨嬶紝闇�瑕佽瀛楁銆� - /// 鐬棿鏁版嵁涓婃姤鐨勪紶鎰熷櫒 (MomentStatus=1 TriggerZoneStatus>=1锛滄姤璀︼紴) - /// <para>13:Motion sensor (杩愬姩浼犳劅鍣級</para> - /// <para>40 Fire sensor 鐑熼浘浼犳劅鍣�</para> - /// <para>42 Water sensor 姘翠镜浼犳劅鍣�</para> - /// <para>43 Carbon Monoxide (CO) 鐕冩皵浼犳劅鍣�</para> - /// <para>44 Personal emergency device 绱ф�ユ寜閽�</para> - /// <para>277 Key fob 閽ュ寵鎵�</para> - /// <para>鎸佺画鏁版嵁涓婃姤(MomentStatus=0 TriggerZoneStatus>=1锛滄姤璀︼紴 TriggerZoneStatus=0锛滃彇娑堟姤璀︼紴)</para> - /// <para>21: Door/Window 闂ㄧ獥浼犳劅鍣紙鏈�21鍜�22锛岃繖閲屾病鏈夊啓閿欙級</para> - /// <para>22:Door/Window 闂ㄧ獥浼犳劅鍣紙鏈�21鍜�22锛岃繖閲屾病鏈夊啓閿�</para> - /// </summary> - public int IasDeviceType; - - /// <summary> - /// 璁惧鍚嶇О,浠ヨ澶囩殑MAC鍛藉悕 - /// </summary> - public string DeviceName = "UnKown"; - - /// <summary> - /// 璁惧绔偣鍚嶇О锛屼互璁惧绔偣鍚嶇О鍛藉悕 - /// </summary> - public string DeviceEpointName = "UnKown"; - - /// <summary> - /// 鐢ㄤ簬鍒ゆ柇璁惧鐨剒igbee鍗忚鐗堟湰銆� - ///<para>49246锛歓LL1.0鏍囧噯璁惧銆�</para> - ///<para>260锛� ZHA1.2鏍囧噯璁惧銆� Z3.0鏍囧噯璁惧銆�</para> - ///<para>41440锛歓GP3.0鏍囧噯璁惧銆�</para> - ///<para>265锛歓SE1.4鏍囧噯璁惧銆�</para> - /// </summary> - public int Profile; - /// <summary> - /// 0锛氳澶囦笉鍦ㄧ嚎 - /// <para>1锛氳澶囧湪绾�</para> - /// </summary> - public int IsOnline; - /// <summary> - /// 褰撳墠杩愯绋嬪簭鐗堟湰淇℃伅銆� 鏈�澶�64瀛楄妭 - /// </summary> - public int ImgVersion; - /// <summary> - /// 纭欢鐗堟湰 - /// </summary> - public int HwVersion; - /// <summary> - /// 褰撳墠闀滃儚绫诲瀷id - /// </summary> - public int ImgTypeId; - /// <summary> - /// 椹卞姩浠g爜銆備负0鏃讹紝琛ㄧずzigbee鍗忚皟鍣ㄨ澶囥�傚叾浠栧�艰〃绀轰负铏氭嫙椹卞姩璁惧 - /// </summary> - public int DriveCode; - /// <summary> - /// 鐢熶骇鍟嗗悕瀛� - /// </summary> - public string ManufacturerName = string.Empty; - /// <summary> - /// 妯″潡ID锛堣繖涓笢瑗夸篃鍙�愬瀷鍙风爜銆戯級 - /// </summary> - public string ModelIdentifier = string.Empty; - /// <summary> - /// 鐢熶骇鏃ユ湡 - /// </summary> - public string ProductionDate = string.Empty; - /// <summary> - /// 鐢垫簮 - /// </summary> - public int PowerSource = -1; - /// <summary> - /// 搴忓垪鍙� - /// </summary> - public string SerialNumber = string.Empty; - /// <summary> - /// 鎵�鏈夋寚瀹歝luster鏄惁閮藉凡缁忔垚鍔熺粦瀹氬崗璋冨櫒 - ///<para>0:鏈畬鍏ㄧ粦瀹�</para> - ///<para>1锛氬凡缁忕粦瀹�</para> - /// </summary> - public int ClusterBindZbSuccess = -1; - /// <summary> - /// 鏄惁鑾峰彇鎵�鏈夐粯璁ょ粦瀹氫俊鎭� - ///<para>0锛氬惁</para> - ///<para>1锛氭槸</para> - /// </summary> - public int IsGetAllDefaultBind = -1; - /// <summary> - /// 杈撳叆绨囧垪琛� - /// </summary> - public List<InClusterObj> InClusterList = new List<InClusterObj>(); - /// <summary> - /// 杈撳嚭绨囧垪琛� - /// </summary> - public List<OutClusterObj> OutClusterList = new List<OutClusterObj>(); - /// <summary> - /// 鐢ㄤ簬璁板綍璁惧鏈�鏂颁笂鎶ョ殑灞炴�х姸鎬佷俊鎭�傛渶澶ф敮鎸佽褰�16涓睘鎬х姸鎬侊紝涓斿彧璁板綍灞炴�у�奸暱搴︿笉澶т簬4瀛楄妭鐨勬暟鎹�� - /// </summary> - public List<AttributeStatusObj> AttributeStatus = new List<AttributeStatusObj>(); + #region 杈撳叆杈撳嚭闀炲畾涔� /// <summary> /// 璁惧鏈�鏂颁笂鎶ョ殑灞炴�х姸鎬佷俊鎭� @@ -492,6 +489,8 @@ /// 娓╁害娴嬮噺鍔熻兘鐨勮澶囧锛氭俯搴︿紶鎰熷櫒銆傘�傘�� /// <para>1029:Relative Humidity Measurement,璁惧鏀寔鈥滄箍搴︽祴閲忓姛鑳解��</para> /// 婀垮害娴嬮噺鍔熻兘鐨勮澶囧锛氭箍搴︿紶鎰熷櫒銆傘�傘�� + /// <para>1066:Pm2.5 Measurement,璁惧鏀寔鈥減m2.5娴嬮噺鍔熻兘鈥�</para> + /// Pm2.5娴嬮噺鍔熻兘鐨勮澶囧锛歅m2.5浼犳劅鍣ㄣ�傘�傘�� /// </summary> public int InCluster; } @@ -584,12 +583,15 @@ public int commandId; } - #region 浜屻�佽幏鍙栧凡鍏ョ綉璁惧淇℃伅 + #endregion + + #region 鑾峰彇宸插叆缃戣澶囦俊鎭� /// <summary> /// 缃戝叧涓殑璁惧淇℃伅 /// </summary> - public DeviceInfoData DeviceInfo = new DeviceInfoData(); + [Newtonsoft.Json.JsonIgnore] + public DeviceInfoData DeviceInfo = null; /// <summary> /// 缃戝叧涓殑璁惧淇℃伅 /// </summary> @@ -688,110 +690,15 @@ } + #endregion + + #region 閿欒缁撴灉瀹氫箟 + /// <summary> - /// 鑾峰彇鎵�鏈夌綉鍏崇殑鑺傜偣璁惧淇℃伅锛堢敤浜庝富缃戝叧锛� - /// </summary> - public AllGatewayDeviceInfo getAllGatewayDeviceInfo; - /// <summary> - /// 鑾峰彇鎵�鏈夌綉鍏崇殑鑺傜偣璁惧淇℃伅锛堢敤浜庝富缃戝叧锛� + /// 缃戝叧淇℃伅閿欒鍙嶉鍏遍�� /// </summary> [System.Serializable] - public class AllGatewayDeviceInfo - { - /// <summary> - /// 鍏ョ綉璁惧鎬绘暟銆傜瓑浜�0鏃讹紝琛ㄧず娌℃湁璁惧淇℃伅锛屼笅闈㈠瓧娈靛皢涓嶅瓨鍦ㄣ�� - /// </summary> - public int TotalNum; - /// <summary> - /// 鏍囪瘑褰撳墠璁惧鏄彂閫佺殑鏄鍑犱釜璁惧銆侱eviceNum浠�1寮�濮嬫瘡鍙戦�佷竴涓澶囦俊鎭紝涓嬩竴涓澶囦俊鎭殑DeviceNum灏嗗姞1銆傜洿鍒癉eviceNum绛変簬TotalNum璇存槑鎵�鏈夎澶囦俊鎭彂閫佸畬姣曘�� - /// </summary> - public int DeviceNum; - /// <summary> - /// 璁惧鎵�鍦ㄧ綉鍏崇殑缃戝叧id - /// </summary> - public string GwId; - /// <summary> - /// 鍏ョ綉鐨剈tc鏃堕棿鎴� - /// </summary> - public int JoinTime; - /// <summary> - /// 1:璺敱鍣ㄨ澶� - /// <para>2:缁堢璁惧</para> - /// </summary> - public int ZigbeeType; - /// <summary> - /// 璁惧缃戠粶鍦板潃 - /// </summary> - public int NwkAddr; - /// <summary> - /// 璇ュ瓧娈典富瑕侀拡瀵笽AS瀹夐槻璁惧璁剧珛銆傛墍鏈塈AS瀹夐槻璁惧鍏辩敤涓�涓狣eviceID涓�1026銆傛墍浠ヨ鍖哄垎瀛愯澶囩被鍨嬶紝闇�瑕佽瀛楁銆� - /// <para>13:Motion sensor (杩愬姩浼犳劅鍣級</para> - /// <para>43:Carbon Monoxide sensor (涓�姘у寲纰充紶鎰熷櫒锛�</para> - /// <para>44:Personal emergency device (绱ф�ユ寜閽級</para> - /// </summary> - public int DeviceType; - /// <summary> - /// 鐢ㄤ簬鍒ゆ柇璁惧鐨剒igbee鍗忚鐗堟湰銆� - /// <para>49246锛歓LL1.0鏍囧噯璁惧銆�</para> - /// <para>260锛� ZHA1.2鏍囧噯璁惧銆� Z3.0鏍囧噯璁惧銆�</para> - /// <para>41440锛歓GP3.0鏍囧噯璁惧銆�</para> - /// <para>265锛歓SE1.4鏍囧噯璁惧銆�</para> - /// </summary> - public int Profile; - /// <summary> - /// 璁惧绔偣鍚� - /// </summary> - public string DeviceName; - /// <summary> - /// 璁惧鍚� - /// </summary> - public string MacName; - /// <summary> - /// 0锛氳澶囦笉鍦ㄧ嚎 - /// <para>1锛氳澶囧湪绾�</para> - /// </summary> - public int IsOnline; - /// <summary> - /// 褰撳墠杩愯绋嬪簭鐗堟湰淇℃伅銆� 鏈�澶�64瀛楄妭 - /// </summary> - public int ImgVersion; - /// <summary> - /// 纭欢鐗堟湰 - /// </summary> - public int HwVersion; - /// <summary> - /// 褰撳墠闀滃儚绫诲瀷id - /// </summary> - public int ImgTypeId; - /// <summary> - /// 椹卞姩浠g爜銆備负0鏃讹紝琛ㄧずzigbee鍗忚皟鍣ㄨ澶囥�傚叾浠栧�艰〃绀轰负铏氭嫙椹卞姩璁惧 - /// </summary> - public int DriveCode; - /// <summary> - /// 杈撳叆绨囧垪琛� - /// </summary> - public List<InClusterObj> InClusterList = new List<InClusterObj>(); - - /// <summary> - /// 杈撳嚭绨囧垪琛� - /// </summary> - public List<OutClusterObj> OutClusterList = new List<OutClusterObj>(); - /// <summary> - /// 鐢ㄤ簬璁板綍璁惧鏈�鏂颁笂鎶ョ殑灞炴�х姸鎬佷俊鎭�傛渶澶ф敮鎸佽褰�16涓睘鎬х姸鎬侊紝涓斿彧璁板綍灞炴�у�奸暱搴︿笉澶т簬4瀛楄妭鐨勬暟鎹�� - /// </summary> - public List<AttributeStatusObj> AttributeStatus = new List<AttributeStatusObj>(); - - } - - /// <summary> - /// 鑾峰彇缃戝叧璁板綍鐨勮澶囧睘鎬х姸鎬� - /// </summary> - public GetStatusRecordAllInfo getStatusRecordAllInfo; - /// <summary> - /// 鑾峰彇缃戝叧璁板綍鐨勮澶囧睘鎬х姸鎬� - /// </summary> - [System.Serializable] - public class GetStatusRecordAllInfo + public class ErrorResponCommon { /// <summary> /// 閿欒淇℃伅 @@ -802,269 +709,8 @@ /// <para>褰撶綉鍏虫帴鏀跺埌瀹㈡埛绔俊鎭悗锛屽嚭鐜颁互涓嬪紓甯告儏鍐靛皢鍙嶉閿欒銆�</para> /// </summary> public ErrorResponData errorResponData; - /// <summary> - /// 璁惧鍚嶇О淇敼 - /// </summary> - public GetStatusRecordInfo getStatusRecordInfo; } - /// <summary> - /// 鑾峰彇鎵�鏈夌綉鍏崇殑鑺傜偣璁惧淇℃伅锛堢敤浜庝富缃戝叧锛� - /// </summary> - public GetStatusRecordInfo getStatusRecordInfo; - /// <summary> - /// 鑾峰彇鎵�鏈夌綉鍏崇殑鑺傜偣璁惧淇℃伅锛堢敤浜庝富缃戝叧锛� - /// </summary> - [System.Serializable] - public class GetStatusRecordInfo - { - /// <summary> - /// 璁惧鎵�鍦ㄧ綉鍏崇殑缃戝叧id - /// </summary> - public string GwId; - /// <summary> - /// 鍏ョ綉鐨剈tc鏃堕棿鎴� - /// </summary> - public int JoinTime; - /// <summary> - /// 1:璺敱鍣ㄨ澶� - /// <para>2:缁堢璁惧</para> - /// </summary> - public int ZigbeeType; - /// <summary> - /// 璁惧缃戠粶鍦板潃 - /// </summary> - public int NwkAddr; - /// <summary> - /// 璇ュ瓧娈典富瑕侀拡瀵笽AS瀹夐槻璁惧璁剧珛銆傛墍鏈塈AS瀹夐槻璁惧鍏辩敤涓�涓狣eviceID涓�1026銆傛墍浠ヨ鍖哄垎瀛愯澶囩被鍨嬶紝闇�瑕佽瀛楁銆� - /// <para>13:Motion sensor (杩愬姩浼犳劅鍣級</para> - /// <para>43:Carbon Monoxide sensor (涓�姘у寲纰充紶鎰熷櫒锛�</para> - /// <para>44:Personal emergency device (绱ф�ユ寜閽級</para> - /// </summary> - public int DeviceType; - /// <summary> - /// 鐢ㄤ簬鍒ゆ柇璁惧鐨剒igbee鍗忚鐗堟湰銆� - /// <para>49246锛歓LL1.0鏍囧噯璁惧銆�</para> - /// <para>260锛� ZHA1.2鏍囧噯璁惧銆� Z3.0鏍囧噯璁惧銆�</para> - /// <para>41440锛歓GP3.0鏍囧噯璁惧銆�</para> - /// <para>265锛歓SE1.4鏍囧噯璁惧銆�</para> - /// </summary> - public int Profile; - /// <summary> - /// 璁惧绔偣鍚� - /// </summary> - public string DeviceName; - /// <summary> - /// 璁惧鍚� - /// </summary> - public string MacName; - /// <summary> - /// 0锛氳澶囦笉鍦ㄧ嚎 - /// <para>1锛氳澶囧湪绾�</para> - /// </summary> - public int IsOnline; - /// <summary> - /// 褰撳墠杩愯绋嬪簭鐗堟湰淇℃伅銆� 鏈�澶�64瀛楄妭 - /// </summary> - public int ImgVersion; - /// <summary> - /// 纭欢鐗堟湰 - /// </summary> - public int HwVersion; - /// <summary> - /// 褰撳墠闀滃儚绫诲瀷id - /// </summary> - public int ImgTypeId; - /// <summary> - /// 椹卞姩浠g爜銆備负0鏃讹紝琛ㄧずzigbee鍗忚皟鍣ㄨ澶囥�傚叾浠栧�艰〃绀轰负铏氭嫙椹卞姩璁惧 - /// </summary> - public int DriveCode; - /// <summary> - /// 杈撳叆绨囧垪琛� - /// </summary> - public List<InClusterObj> InClusterList = new List<InClusterObj>(); - /// <summary> - /// 杈撳嚭绨囧垪琛� - /// </summary> - public List<OutClusterObj> OutClusterList = new List<OutClusterObj>(); - /// <summary> - /// 鐢ㄤ簬璁板綍璁惧鏈�鏂颁笂鎶ョ殑灞炴�х姸鎬佷俊鎭�傛渶澶ф敮鎸佽褰�16涓睘鎬х姸鎬侊紝涓斿彧璁板綍灞炴�у�奸暱搴︿笉澶т簬4瀛楄妭鐨勬暟鎹�� - /// </summary> - public List<AttributeStatusObj> AttributeStatus = new List<AttributeStatusObj>(); - } - #endregion - - /// <summary> - /// 鏈夋柊璁惧鍔犲叆zigbee缃戠粶鐨勪俊鎭� - /// </summary> - public DeviceDeviceJoinZbNetResponData deviceDeviceJoinZbNetResponData; - /// <summary> - /// 鏈夋柊璁惧鍔犲叆zigbee缃戠粶鐨勪俊鎭� - /// </summary> - [System.Serializable] - public class DeviceDeviceJoinZbNetResponData - { - /// <summary> - /// 璁惧缃戠粶鍦板潃 - /// </summary> - public int NwkAddr; - /// <summary> - /// 1:璺敱鍣ㄨ澶� - /// <para>2:缁堢璁惧</para> - /// </summary> - public int ZigbeeType; - } - - /// <summary> - /// 鑾峰彇鏂拌澶囨墍鏈夌鐐逛俊鎭槸鍚︽垚鍔熶俊鎭� - /// </summary> - public DeviceIsGetEpointInfoResponData deviceIsGetEpointInfoResponData; - /// <summary> - /// 鑾峰彇鏂拌澶囨墍鏈夌鐐逛俊鎭槸鍚︽垚鍔熶俊鎭� - /// </summary> - [System.Serializable] - public class DeviceIsGetEpointInfoResponData - { - /// <summary> - /// 0锛氭垚鍔熻幏鍙栨墍鏈夌鐐逛俊鎭� - ///<para>1锛氳幏鍙栧け璐�</para> - /// </summary> - public int Result; - } - - /// <summary> - /// 缃戝叧涓柊鎼滅储鍑虹殑璁惧淇℃伅 - /// </summary> - public NewDeviceInfoData getNewDeviceInfo; - /// <summary> - /// 缃戝叧涓柊鎼滅储鍑虹殑璁惧淇℃伅 - /// </summary> - [System.Serializable] - public class NewDeviceInfoData - { - /// <summary> - /// 鍏ョ綉鐨剈tc鏃堕棿鎴� - /// </summary> - public int JoinTime; - /// <summary> - /// 1:璺敱鍣ㄨ澶� - /// <para>2:缁堢璁惧</para> - /// </summary> - public int ZigbeeType; - /// <summary> - /// 璁惧缃戠粶鍦板潃 - /// </summary> - public int NwkAddr; - /// <summary> - /// 璇ュ瓧娈典富瑕侀拡瀵笽AS瀹夐槻璁惧璁剧珛銆傛墍鏈塈AS瀹夐槻璁惧鍏辩敤涓�涓狣eviceID涓�1026銆傛墍浠ヨ鍖哄垎瀛愯澶囩被鍨嬶紝闇�瑕佽瀛楁銆� - /// <para>13:Motion sensor (杩愬姩浼犳劅鍣級</para> - /// <para>43:Carbon Monoxide sensor (涓�姘у寲纰充紶鎰熷櫒锛�</para> - /// <para>44:Personal emergency device (绱ф�ユ寜閽級</para> - /// </summary> - public int DeviceType; - /// <summary> - /// 鐢ㄤ簬鍒ゆ柇璁惧鐨剒igbee鍗忚鐗堟湰銆傚尯鍒�3.0璁惧鍜孼HA璁惧 - /// <para>49246锛歓LL1.0鏍囧噯璁惧銆�</para> - /// <para>260锛� ZHA1.2鏍囧噯璁惧銆� Z3.0鏍囧噯璁惧銆�</para> - /// <para>41440锛歓GP3.0鏍囧噯璁惧銆�</para> - /// <para>265锛歓SE1.4鏍囧噯璁惧銆�</para> - /// </summary> - public int Profile; - /// <summary> - /// 鏄惁鏄柊鍏ョ綉璁惧銆� - /// <para>濡傛灉缃戝叧鍌ㄥ瓨鐨勮澶囧垪琛ㄤ腑鍘熸潵鏄病鏈夎璁惧鍒欎负鏂板叆缃戣澶囥��</para> - /// <para>濡傛灉缃戝叧鍌ㄥ瓨鐨勮澶囧垪琛ㄤ腑鏈夎璁惧鍒欎负鏃ц澶囥��</para> - /// <para>濡傛灉閲嶅叆缃戝悗璁惧淇℃伅宸茬粡鏀瑰彉锛堝璁惧鐨勭綉缁滃湴鍧�锛岃澶嘔D锛宑luster鍒楄〃锛夊垯涔熻涓烘柊璁惧鍏ョ綉銆�</para> - /// <para>璇ュ瓧娈电敤鏉ュ垽鍒敤鎴峰彲鑳介�氳繃鑺傜偣鐨勫疄浣撴寜閿皢璁惧鎭㈠鍑哄巶璁惧鍚庤妭鐐硅澶囬噸鏂板叆缃戠殑鎯呭喌鎴栬妭鐐硅澶囬噸鍚富鍔ㄥ彂閫佸叆缃戜俊鎭殑鎯呭喌銆�</para> - /// <para>0锛氭棫璁惧鍏ョ綉</para> - /// <para>1锛氭柊璁惧鍏ョ綉</para> - /// <para>2锛氳澶囦负鏂拌澶囷紝骞跺湪涓婃姤璇ヤ俊鎭墠宸茬粡閫�缃戯紝鍗宠澶囧叆缃戝悗缃戝叧杩樻潵涓嶅強涓婃姤璇ヨ澶囦俊鎭澶囦究宸茬粡閫�缃戙�傦紙璁惧鍏ョ綉锛屽埌缃戝叧涓婃姤璁惧淇℃伅鏈変竴娈靛欢鏃讹紝濡傛灉鍦ㄦ鏈熼棿濡傛灉璁惧宸茬粡閫�缃戯紝灏嗗弽棣堣鍊笺�傝鍊间负寮傚父鎯呭喌锛屽綋鏀跺埌璇ュ�兼椂鍊欒鏄庤澶囧苟娌″叆缃戯紝鍙涪寮冭繖涓叆缃戜俊鎭級</para> - /// </summary> - public int IsNewDev; - /// <summary> - /// 褰撳墠杩愯绋嬪簭鐗堟湰淇℃伅銆� 鏈�澶�64瀛楄妭 - /// </summary> - public int ImgVersion; - /// <summary> - /// 纭欢鐗堟湰 - /// </summary> - public int HwVersion; - /// <summary> - /// 褰撳墠闀滃儚绫诲瀷id - /// </summary> - public int ImgTypeId; - /// <summary> - /// 椹卞姩浠g爜銆備负0鏃讹紝琛ㄧずzigbee鍗忚皟鍣ㄨ澶囥�傚叾浠栧�艰〃绀轰负铏氭嫙椹卞姩璁惧 - /// </summary> - public int DriveCode; - /// <summary> - /// 璁惧鎵�鍦ㄧ綉鍏崇殑缃戝叧id - /// </summary> - public string GwId; - /// <summary> - /// 璁惧鍚� - /// </summary> - public string MacName; - /// <summary> - /// 璁惧绔偣鍚� - /// </summary> - public string DeviceName; - /// <summary> - /// 0锛氳澶囦笉鍦ㄧ嚎 - /// <para>1锛氳澶囧湪绾�</para> - /// </summary> - public int IsOnline; - /// <summary> - /// 鎵�鏈夋寚瀹歝luster鏄惁閮藉凡缁忔垚鍔熺粦瀹氬崗璋冨櫒 - ///<para>0:鏈畬鍏ㄧ粦瀹�</para> - ///<para>1锛氬凡缁忕粦瀹�</para> - /// </summary> - public int ClusterBindZbSuccess = -1; - /// <summary> - /// 鏄惁鑾峰彇鎵�鏈夐粯璁ょ粦瀹氫俊鎭� - ///<para>0锛氬惁</para> - ///<para>1锛氭槸</para> - /// </summary> - public int IsGetAllDefaultBind = -1; - /// <summary> - /// 鐢熶骇鍟嗗悕瀛� - /// </summary> - public string ManufacturerName = string.Empty; - /// <summary> - /// 妯″潡ID锛堣繖涓笢瑗夸篃鍙�愬瀷鍙风爜銆戯級 - /// </summary> - public string ModelIdentifier = string.Empty; - /// <summary> - /// 鐢熶骇鏃ユ湡 - /// </summary> - public string ProductionDate = string.Empty; - /// <summary> - /// 鐢垫簮 - /// </summary> - public int PowerSource = -1; - /// <summary> - /// 搴忓垪鍙� - /// </summary> - public string SerialNumber = string.Empty; - /// <summary> - /// 杈撳叆绨囧垪琛� - /// </summary> - public List<InClusterObj> InClusterList = new List<InClusterObj>(); - /// <summary> - /// 杈撳嚭绨囧垪琛� - /// </summary> - public List<OutClusterObj> OutClusterList = new List<OutClusterObj>(); - /// <summary> - /// 鐢ㄤ簬璁板綍璁惧鏈�鏂颁笂鎶ョ殑灞炴�х姸鎬佷俊鎭�傛渶澶ф敮鎸佽褰�16涓睘鎬х姸鎬侊紝涓斿彧璁板綍灞炴�у�奸暱搴︿笉澶т簬4瀛楄妭鐨勬暟鎹�� - /// </summary> - public List<AttributeStatusObj> AttributeStatus = new List<AttributeStatusObj>(); - } - - /// <summary> - /// 缃戝叧淇℃伅閿欒鍙嶉 - /// <para>褰撶綉鍏虫帴鏀跺埌瀹㈡埛绔俊鎭悗锛屽嚭鐜颁互涓嬪紓甯告儏鍐靛皢鍙嶉閿欒銆�</para> - /// </summary> - public ErrorResponData errorResponData; /// <summary> /// 缃戝叧淇℃伅閿欒鍙嶉 /// <para>褰撶綉鍏虫帴鏀跺埌瀹㈡埛绔俊鎭悗锛屽嚭鐜颁互涓嬪紓甯告儏鍐靛皢鍙嶉閿欒銆�</para> @@ -1112,277 +758,10 @@ return message; } + #endregion + #region 淇敼璁惧绔彛鍚嶇О - ///<summary > - /// 淇敼璁惧绔彛锛堟寜閿級鍚嶇О - /// <para>Gateway:璁惧鎵�灞炵綉鍏筹紙璋冪敤鏂规硶锛歞evice.Gateway)</para> - /// <para>deviceName:鎸夐敭鍚嶇О</para> - /// </summary> - public async System.Threading.Tasks.Task<DeviceRenameAllData> RenameDeviceNameAsync(string deviceAddr, int deviceEpoint, string deviceName) - { - if (Gateway == null) - { - return null; - } - return await System.Threading.Tasks.Task.Run(async () => - { - DeviceRenameAllData d = null; - 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 = new DeviceRenameAllData { errorMessageBase = "缃戝叧閿欒鍥炲锛屼笖鏁版嵁鏄┖" }; - } - else - { - d = new DeviceRenameAllData { errorResponData = temp, errorMessageBase = ErrorMess(temp.Error) }; - } - } - - if (topic == gatewayID + "/" + "DeviceRenameRespon") - { - 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.renameDeviceData = Newtonsoft.Json.JsonConvert.DeserializeObject<ToggleLight.DeviceRenameResponseData>(jobject["Data"].ToString()); - - if (toggleLight.renameDeviceData == null) - { - d = new DeviceRenameAllData { errorMessageBase = "缃戝叧杩斿洖鐨勬暟鎹负绌�" }; - } - else - { - d = new DeviceRenameAllData { deviceRenameData = toggleLight.renameDeviceData }; - 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.DeviceEpointName = toggleLight.renameDeviceData.DeviceName; - } - } - 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.renameDeviceData = Newtonsoft.Json.JsonConvert.DeserializeObject<AirSwitch.DeviceRenameResponseData>(jobject["Data"].ToString()); - - if (airSwitch.renameDeviceData == null) - { - d = new DeviceRenameAllData { errorMessageBase = "缃戝叧杩斿洖鐨勬暟鎹负绌�" }; - } - else - { - d = new DeviceRenameAllData { deviceRenameData = airSwitch.renameDeviceData }; - 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.DeviceEpointName = airSwitch.renameDeviceData.DeviceName; - //infoAirSwitch.ReSave(); - } - } - 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.renameDeviceData = Newtonsoft.Json.JsonConvert.DeserializeObject<Panel.DeviceRenameResponseData>(jobject["Data"].ToString()); - if (panelObj.renameDeviceData == null) - { - d = new DeviceRenameAllData { errorMessageBase = "缃戝叧杩斿洖鐨勬暟鎹负绌�" }; - } - else - { - d = new DeviceRenameAllData { deviceRenameData = panelObj.renameDeviceData }; - 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.DeviceEpointName = panelObj.renameDeviceData.DeviceName; - //infoPanel.ReSave(); - } - } - 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.renameDeviceData = Newtonsoft.Json.JsonConvert.DeserializeObject<Rollershade.DeviceRenameResponseData>(jobject["Data"].ToString()); - if (windowCovering.renameDeviceData == null) - { - d = new DeviceRenameAllData { errorMessageBase = "缃戝叧杩斿洖鐨勬暟鎹负绌�" }; - } - else - { - d = new DeviceRenameAllData { deviceRenameData = windowCovering.renameDeviceData }; - System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{topic}"); - var wc = Gateway.DeviceList.Find((CommonDevice obj) => obj.DeviceID == windowCovering.DeviceID && obj.DeviceAddr == windowCovering.DeviceAddr && obj.DeviceEpoint == windowCovering.DeviceEpoint); - if (wc != null) - { - wc.DeviceEpointName = windowCovering.renameDeviceData.DeviceName; - } - } - - 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.renameDeviceData = Newtonsoft.Json.JsonConvert.DeserializeObject<Rollershade.DeviceRenameResponseData>(jobject["Data"].ToString()); - if (ias.renameDeviceData == null) - { - d = new DeviceRenameAllData { errorMessageBase = "缃戝叧杩斿洖鐨勬暟鎹负绌�" }; - } - else - { - d = new DeviceRenameAllData { deviceRenameData = ias.renameDeviceData }; - System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{topic}"); - - var zone = Gateway.DeviceList.Find((CommonDevice obj) => obj.DeviceID == ias.DeviceID && obj.DeviceAddr == ias.DeviceAddr && obj.DeviceEpoint == ias.DeviceEpoint); - if (zone != null) - { - zone.DeviceEpointName = ias.renameDeviceData.DeviceName; - } - } - 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.renameDeviceData = Newtonsoft.Json.JsonConvert.DeserializeObject<DimmableLight.DeviceRenameResponseData>(jobject["Data"].ToString()); - - if (dimmableLight.renameDeviceData == null) - { - d = new DeviceRenameAllData { errorMessageBase = "缃戝叧杩斿洖鐨勬暟鎹负绌�" }; - } - else - { - d = new DeviceRenameAllData { deviceRenameData = dimmableLight.renameDeviceData }; - System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{ topic}"); - var info = Gateway.DeviceList.Find((CommonDevice obj) => obj.DeviceID == dimmableLight.DeviceID && obj.DeviceAddr == dimmableLight.DeviceAddr && obj.DeviceEpoint == dimmableLight.DeviceEpoint); - if (info != null) - { - info.DeviceEpointName = dimmableLight.renameDeviceData.DeviceName; - } - } - break; - case DeviceType.Repeater: - var repeater = new Repeater() { 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.renameDeviceData = Newtonsoft.Json.JsonConvert.DeserializeObject<Repeater.DeviceRenameResponseData>(jobject["Data"].ToString()); - - if (repeater.renameDeviceData == null) - { - d = new DeviceRenameAllData { errorMessageBase = "缃戝叧杩斿洖鐨勬暟鎹负绌�" }; - } - else - { - d = new DeviceRenameAllData { deviceRenameData = repeater.renameDeviceData }; - System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{ topic}"); - var info = Gateway.DeviceList.Find((CommonDevice obj) => obj.DeviceID == repeater.DeviceID && obj.DeviceAddr == repeater.DeviceAddr && obj.DeviceEpoint == repeater.DeviceEpoint); - if (info != null) - { - info.DeviceEpointName = repeater.renameDeviceData.DeviceName; - } - } - 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.renameDeviceData = Newtonsoft.Json.JsonConvert.DeserializeObject<AC.DeviceRenameResponseData>(jobject["Data"].ToString()); - if (ac.renameDeviceData == null) - { - d = new DeviceRenameAllData { errorMessageBase = "缃戝叧杩斿洖鐨勬暟鎹负绌�" }; - } - else - { - d = new DeviceRenameAllData { deviceRenameData = ac.renameDeviceData }; - System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{ topic}"); - var info = Gateway.DeviceList.Find((CommonDevice obj) => obj.DeviceID == ac.DeviceID && obj.DeviceAddr == ac.DeviceAddr && obj.DeviceEpoint == ac.DeviceEpoint); - if (info != null) - { - info.DeviceEpointName = ac.renameDeviceData.DeviceName; - } - } - 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.renameDeviceData = Newtonsoft.Json.JsonConvert.DeserializeObject<Transverter.DeviceRenameResponseData>(jobject["Data"].ToString()); - if (transverter.renameDeviceData == null) - { - d = new DeviceRenameAllData { errorMessageBase = "缃戝叧杩斿洖鐨勬暟鎹负绌�" }; - } - else - { - d = new DeviceRenameAllData { deviceRenameData = transverter.renameDeviceData }; - System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{ topic}"); - var info = Gateway.DeviceList.Find((CommonDevice obj) => obj.DeviceID == transverter.DeviceID && obj.DeviceAddr == transverter.DeviceAddr && obj.DeviceEpoint == transverter.DeviceEpoint); - if (info != null) - { - info.DeviceEpointName = transverter.renameDeviceData.DeviceName; - } - } - 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.renameDeviceData = Newtonsoft.Json.JsonConvert.DeserializeObject<DoorLock.DeviceRenameResponseData>(jobject["Data"].ToString()); - if (doorLock.renameDeviceData == null) - { - d = new DeviceRenameAllData { errorMessageBase = "缃戝叧杩斿洖鐨勬暟鎹负绌�" }; - } - else - { - d = new DeviceRenameAllData { deviceRenameData = doorLock.renameDeviceData }; - System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{ topic}"); - var info = Gateway.DeviceList.Find((CommonDevice obj) => obj.DeviceID == doorLock.DeviceID && obj.DeviceAddr == doorLock.DeviceAddr && obj.DeviceEpoint == doorLock.DeviceEpoint); - if (info != null) - { - info.DeviceEpointName = doorLock.renameDeviceData.DeviceName; - } - } - break; - } - } - }; - Gateway.Actions += action; - System.Console.WriteLine("DeviceRename_Actions 鍚姩" + "_" + System.DateTime.Now.ToString()); - try - { - var bytes = new byte[64]; - var reamarkGwBytes = Encoding.UTF8.GetBytes(deviceName); - System.Array.Copy(reamarkGwBytes, 0, bytes, 0, 64 < reamarkGwBytes.Length ? 64 : reamarkGwBytes.Length); - deviceName = Encoding.UTF8.GetString(bytes); - - var jObject = new JObject { { "DeviceAddr", deviceAddr }, { "Epoint", deviceEpoint }, { "Cluster_ID", 0 }, { "Command", 96 } }; - var data = new JObject { { "DeviceName", deviceName } }; - jObject.Add("Data", data); - Gateway?.Send(("DeviceRename"), jObject.ToString()); - } - catch { } - - var dateTime = DateTime.Now; - while ((DateTime.Now - dateTime).TotalMilliseconds < WaitReceiveDataTime) - { - await System.Threading.Tasks.Task.Delay(10); - if (d != null) - { - break; - } - } - if ((DateTime.Now - dateTime).TotalMilliseconds > WaitReceiveDataTime) - { - d = new DeviceRenameAllData { errorMessageBase = " 鍥炲瓒呮椂锛岃閲嶆柊鎿嶄綔" }; - } - - Gateway.Actions -= action; - System.Console.WriteLine("DeviceRename_Actions閫�鍑�" + System.DateTime.Now.ToString()); - return d; - }); - } - - /// <summary> - /// 閲嶅懡鍚嶈澶�,缃戝叧鍙嶉鍏蜂綋淇℃伅 - /// </summary> - public DeviceRenameAllData renameDeviceAllData; /// <summary> /// 閲嶅懡鍚嶈澶�,缃戝叧鍙嶉鍏蜂綋淇℃伅 /// </summary> @@ -1407,10 +786,6 @@ /// <summary> /// 璁惧鍚嶇О淇敼 /// </summary> - public DeviceRenameResponseData renameDeviceData; - /// <summary> - /// 璁惧鍚嶇О淇敼 - /// </summary> [System.Serializable] public class DeviceRenameResponseData { @@ -1427,320 +802,19 @@ #endregion #region 淇敼璁惧mac鍚嶇О - ///<summary > - /// 淇敼璁惧mac鍚嶇О - /// <para>macName:璁惧鍚嶇О</para> - /// </summary> - public async System.Threading.Tasks.Task<RenameDeviceMacNameAllData> RenameDeviceMacNameAsync(string deviceAddr, int deviceEpoint, string macName) - { - if (Gateway == null) - { - return null; - } - return await System.Threading.Tasks.Task.Run(async () => - { - RenameDeviceMacNameAllData d = null; - 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 = new RenameDeviceMacNameAllData { errorMessageBase = "缃戝叧閿欒鍥炲锛屼笖鏁版嵁鏄┖" }; - } - else - { - d = new RenameDeviceMacNameAllData { errorResponData = temp, errorMessageBase = ErrorMess(temp.Error) }; - } - } - - 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; - } - } - }; - Gateway.Actions += action; - System.Console.WriteLine("MacRename_Actions 鍚姩" + "_" + System.DateTime.Now.ToString()); - try - { - var bytes = new byte[64]; - var reamarkGwBytes = Encoding.UTF8.GetBytes(macName); - System.Array.Copy(reamarkGwBytes, 0, bytes, 0, 64 < reamarkGwBytes.Length ? 64 : reamarkGwBytes.Length); - macName = Encoding.UTF8.GetString(bytes); - - var jObject = new JObject { { "DeviceAddr", deviceAddr }, { "Epoint", deviceEpoint }, { "Cluster_ID", 0 }, { "Command", 100 } }; - var data = new JObject { { "MacName", macName } }; - jObject.Add("Data", data); - Gateway?.Send(("MacRename"), jObject.ToString()); - } - catch { } - - var dateTime = DateTime.Now; - while ((DateTime.Now - dateTime).TotalMilliseconds < WaitReceiveDataTime) - { - await System.Threading.Tasks.Task.Delay(10); - if (d != null) - { - break; - } - } - - if ((DateTime.Now - dateTime).TotalMilliseconds > WaitReceiveDataTime) - { - d = new RenameDeviceMacNameAllData { errorMessageBase = " 鍥炲瓒呮椂锛岃閲嶆柊鎿嶄綔" }; - } - - Gateway.Actions -= action; - System.Console.WriteLine("MacRename_Action閫�鍑�" + System.DateTime.Now.ToString()); - return d; - }); - } - - /// <summary> - /// 淇敼璁惧mac鍚嶇О鏁版嵁,缃戝叧鍙嶉鍏蜂綋淇℃伅 - /// </summary> - public RenameDeviceMacNameAllData renameDeviceMacNameAllData; /// <summary> /// 淇敼璁惧mac鍚嶇О鏁版嵁,缃戝叧鍙嶉鍏蜂綋淇℃伅 /// </summary> [System.Serializable] - public class RenameDeviceMacNameAllData + public class RenameDeviceMacNameAllData : ErrorResponCommon { - /// <summary> - /// 閿欒淇℃伅 - /// </summary> - public string errorMessageBase; - /// <summary> - /// 缃戝叧淇℃伅閿欒鍙嶉 - /// <para>褰撶綉鍏虫帴鏀跺埌瀹㈡埛绔俊鎭悗锛屽嚭鐜颁互涓嬪紓甯告儏鍐靛皢鍙嶉閿欒銆�</para> - /// </summary> - public ErrorResponData errorResponData; /// <summary> /// 淇敼璁惧mac鍚嶇О鏁版嵁 /// </summary> public RenameDeviceMacNameData renameDeviceMacNameData; } - /// <summary> - /// 淇敼璁惧mac鍚嶇О鏁版嵁 - /// </summary> - public RenameDeviceMacNameData renameDeviceMacNameData; /// <summary> /// 淇敼璁惧mac鍚嶇О鏁版嵁 /// </summary> @@ -1756,32 +830,6 @@ /// 淇敼鍚庣殑璁惧鍚嶇О /// </summary> public string MacName; - } - #endregion - - #region 璁惧鎭㈠鍑哄巶璁剧疆涓庡嚭缃� - ///<summary > - /// 浣胯澶囨仮澶嶅嚭鍘傝缃� - /// <para>浠呮仮澶嶅嚭鍘傝缃紝涓嶇缃戙�備絾鏈変簺涓嶆爣鍑嗙殑3.0璁惧锛屾仮澶嶅嚭鍘傝缃氨浼氱缃戙�� 瀹㈡埛绔垨浜戠鍒扮綉鍏�</para> - /// </summary> - public async void ResetDeviceFactoryAsync(string deviceAddr, int deviceEpoint) - { - if (Gateway == null) - { - return; - } - //Action<string, string> action = (topic, message) => { }; - //Gateway.Actions += action; - System.Console.WriteLine("FactoryResete_Actions 鍚姩" + "_" + System.DateTime.Now.ToString()); - try - { - var jObject = new JObject { { "DeviceAddr", deviceAddr }, { "Epoint", deviceEpoint }, { "Cluster_ID", 0 }, { "Command", 97 } }; - Gateway.Send("FactoryReset", jObject.ToString()); - } - catch { } - - //Gateway.Actions -= action; - System.Console.WriteLine("FactoryReset_Action閫�鍑�" + System.DateTime.Now.ToString()); } #endregion @@ -1807,8 +855,7 @@ 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()); + var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<CommonDevice.ErrorResponData>(jobject["Data"].ToString()); if (temp == null) { @@ -1822,221 +869,16 @@ if (topic == gatewayID + "/" + "RemoveDeviceRespon") { - var gatewayTemp = new ZbGateway() { DeviceAddr = jobject.Value<string>("DeviceAddr"), DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = Gateway.getGatewayBaseInfo.gwID }; - gatewayTemp.removeDeviceResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<ZbGateway.RemoveDeviceResponseData>(jobject["Data"].ToString()); + var removeDeviceResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<CommonDevice.RemoveDeviceResponseData>(jobject["Data"].ToString()); - if (gatewayTemp.removeDeviceResponseData == null) + if (removeDeviceResponseData == null) { d = new RemoveDeviceResponseAllData { errorMessageBase = "缃戝叧杩斿洖鐨勬暟鎹负绌�" }; } else { - d = new RemoveDeviceResponseAllData { removeDeviceResponseData = gatewayTemp.removeDeviceResponseData }; + d = new RemoveDeviceResponseAllData { removeDeviceResponseData = removeDeviceResponseData }; System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{ topic}"); - try - { - if (gatewayTemp.removeDeviceResponseData.Result == 0) - { - foreach (var delD in gatewayTemp.removeDeviceResponseData.DeviceList) - { - var deviceID = delD.Device_ID; - switch ((DeviceType)(deviceID)) - { - case DeviceType.OnOffOutput: - var toggleLight = new ToggleLight() { DeviceAddr = jobject.Value<string>("DeviceAddr"), DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = Gateway.getGatewayBaseInfo.gwID }; - toggleLight.removeDeviceResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<ToggleLight.RemoveDeviceResponseData>(jobject["Data"].ToString()); - if (toggleLight.removeDeviceResponseData == null) - { - return; - } - else - { - if (toggleLight.removeDeviceResponseData.Result == 0) - { - var infoToggleLight = Gateway.DeviceList.Find((CommonDevice obj) => obj.DeviceID == toggleLight.DeviceID && obj.DeviceAddr == toggleLight.DeviceAddr && obj.DeviceEpoint == toggleLight.DeviceEpoint); - if (infoToggleLight != null) - { - Gateway.DeviceList.Remove(infoToggleLight); - } - } - } - break; - case DeviceType.AirSwitch: - var airSwitch = new AirSwitch() { DeviceAddr = jobject.Value<string>("DeviceAddr"), DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = Gateway.getGatewayBaseInfo.gwID }; - airSwitch.removeDeviceResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<AirSwitch.RemoveDeviceResponseData>(jobject["Data"].ToString()); - if (airSwitch.removeDeviceResponseData == null) - { - return; - } - else - { - if (airSwitch.removeDeviceResponseData.Result == 0) - { - var infoAirSwitch = Gateway.DeviceList.Find((CommonDevice obj) => obj.DeviceID == airSwitch.DeviceID && obj.DeviceAddr == airSwitch.DeviceAddr && obj.DeviceEpoint == airSwitch.DeviceEpoint); - if (infoAirSwitch != null) - { - Gateway.DeviceList.Remove(infoAirSwitch); - } - } - } - 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.getGatewayBaseInfo.gwID }; - panelObj.removeDeviceResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<Panel.RemoveDeviceResponseData>(jobject["Data"].ToString()); - if (panelObj.removeDeviceResponseData == null) - { - return; - } - else - { - if (panelObj.removeDeviceResponseData.Result == 0) - { - var infoPanel = Gateway.DeviceList.Find((CommonDevice obj) => obj.DeviceID == panelObj.DeviceID && obj.DeviceAddr == panelObj.DeviceAddr && obj.DeviceEpoint == panelObj.DeviceEpoint); - if (infoPanel != null) - { - Gateway.DeviceList.Remove(infoPanel); - } - } - } - break; - case DeviceType.WindowCoveringDevice: - var rollershade = 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.getGatewayBaseInfo.gwID }; - rollershade.removeDeviceResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<Panel.RemoveDeviceResponseData>(jobject["Data"].ToString()); - if (rollershade.removeDeviceResponseData == null) - { - return; - } - else - { - if (rollershade.removeDeviceResponseData.Result == 0) - { - var infoRoller = Gateway.DeviceList.Find((CommonDevice obj) => obj.DeviceID == rollershade.DeviceID && obj.DeviceAddr == rollershade.DeviceAddr && obj.DeviceEpoint == rollershade.DeviceEpoint); - if (infoRoller != null) - { - Gateway.DeviceList.Remove(infoRoller); - } - } - } - break; - case DeviceType.IASZone: - var ias = new IASZone() { DeviceAddr = jobject.Value<string>("DeviceAddr"), DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = Gateway.getGatewayBaseInfo.gwID }; - ias.removeDeviceResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<IASZone.RemoveDeviceResponseData>(jobject["Data"].ToString()); - if (ias.removeDeviceResponseData == null) - { - return; - } - else - { - if (ias.removeDeviceResponseData.Result == 0) - { - var info = Gateway.DeviceList.Find((CommonDevice obj) => obj.DeviceID == ias.DeviceID && obj.DeviceAddr == ias.DeviceAddr && obj.DeviceEpoint == ias.DeviceEpoint); - if (info != null) - { - Gateway.DeviceList.Remove(info); - } - } - } - break; - case DeviceType.DimmableLight: - var dimmableLight = new DimmableLight() { DeviceAddr = jobject.Value<string>("DeviceAddr"), DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = Gateway.getGatewayBaseInfo.gwID }; - dimmableLight.removeDeviceResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<DimmableLight.RemoveDeviceResponseData>(jobject["Data"].ToString()); - if (dimmableLight.removeDeviceResponseData == null) - { - return; - } - else - { - if (dimmableLight.removeDeviceResponseData.Result == 0) - { - var info = Gateway.DeviceList.Find((CommonDevice obj) => obj.DeviceID == dimmableLight.DeviceID && obj.DeviceAddr == dimmableLight.DeviceAddr && obj.DeviceEpoint == dimmableLight.DeviceEpoint); - if (info != null) - { - Gateway.DeviceList.Remove(info); - } - } - } - break; - case DeviceType.Repeater: - var repeater = new Repeater() { DeviceAddr = jobject.Value<string>("DeviceAddr"), DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = Gateway.getGatewayBaseInfo.gwID }; - repeater.removeDeviceResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<Repeater.RemoveDeviceResponseData>(jobject["Data"].ToString()); - if (repeater.removeDeviceResponseData == null) - { - return; - } - else - { - if (repeater.removeDeviceResponseData.Result == 0) - { - var info = Gateway.DeviceList.Find((CommonDevice obj) => obj.DeviceID == repeater.DeviceID && obj.DeviceAddr == repeater.DeviceAddr && obj.DeviceEpoint == repeater.DeviceEpoint); - if (info != null) - { - Gateway.DeviceList.Remove(info); - } - } - } - break; - case DeviceType.Thermostat: - var ac = new AC() { DeviceAddr = jobject.Value<string>("DeviceAddr"), DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = Gateway.getGatewayBaseInfo.gwID }; - ac.removeDeviceResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<AC.RemoveDeviceResponseData>(jobject["Data"].ToString()); - if (ac.removeDeviceResponseData == null) - { - return; - } - else - { - if (ac.removeDeviceResponseData.Result == 0) - { - var info = Gateway.DeviceList.Find((CommonDevice obj) => obj.DeviceID == ac.DeviceID && obj.DeviceAddr == ac.DeviceAddr && obj.DeviceEpoint == ac.DeviceEpoint); - if (info != null) - { - Gateway.DeviceList.Remove(info); - } - } - } - break; - case DeviceType.Transverter: - var transverter = new Transverter() { DeviceAddr = jobject.Value<string>("DeviceAddr"), DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = Gateway.getGatewayBaseInfo.gwID }; - transverter.removeDeviceResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<Transverter.RemoveDeviceResponseData>(jobject["Data"].ToString()); - if (transverter.removeDeviceResponseData == null) - { - return; - } - else - { - if (transverter.removeDeviceResponseData.Result == 0) - { - var info = Gateway.DeviceList.Find((CommonDevice obj) => obj.DeviceID == transverter.DeviceID && obj.DeviceAddr == transverter.DeviceAddr && obj.DeviceEpoint == transverter.DeviceEpoint); - if (info != null) - { - Gateway.DeviceList.Remove(info); - } - } - } - break; - case DeviceType.DoorLock: - var doorLock = new DoorLock() { DeviceAddr = jobject.Value<string>("DeviceAddr"), DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = Gateway.getGatewayBaseInfo.gwID }; - doorLock.removeDeviceResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<DoorLock.RemoveDeviceResponseData>(jobject["Data"].ToString()); - if (doorLock.removeDeviceResponseData == null) - { - return; - } - else - { - if (doorLock.removeDeviceResponseData.Result == 0) - { - var info = Gateway.DeviceList.Find((CommonDevice obj) => obj.DeviceID == doorLock.DeviceID && obj.DeviceAddr == doorLock.DeviceAddr && obj.DeviceEpoint == doorLock.DeviceEpoint); - if (info != null) - { - Gateway.DeviceList.Remove(info); - } - } - } - break; - } - } - } - } - catch { } } } }; @@ -2088,10 +930,6 @@ /// <summary> /// 闇�瑕佸垹闄よ澶囩殑鏁版嵁 /// </summary> - public RemoveDeviceData removeDeviceData; - /// <summary> - /// 闇�瑕佸垹闄よ澶囩殑鏁版嵁 - /// </summary> [System.Serializable] public class RemoveDeviceData { @@ -2121,10 +959,6 @@ /// <summary> /// 绉婚櫎璁惧,缃戝叧鍙嶉鍏蜂綋淇℃伅 /// </summary> - public RemoveDeviceResponseAllData removeDeviceResponseAllData; - /// <summary> - /// 绉婚櫎璁惧,缃戝叧鍙嶉鍏蜂綋淇℃伅 - /// </summary> [System.Serializable] public class RemoveDeviceResponseAllData { @@ -2143,10 +977,6 @@ public RemoveDeviceResponseData removeDeviceResponseData; } - /// <summary> - /// 鍒犻櫎璁惧鍥炲鏁版嵁 - /// </summary> - public RemoveDeviceResponseData removeDeviceResponseData; /// <summary> /// 鍒犻櫎璁惧鍥炲鏁版嵁 /// <para>杩斿洖缁撴灉Resul=锛屽垹闄ゆ垚鍔�</para> @@ -2189,145 +1019,6 @@ } #endregion - #region 浠庢�昏澶囧垪琛ㄤ腑绉婚櫎涓�涓綉鍏崇殑鎵�鏈夎妭鐐硅澶囷紙鐢ㄤ簬涓荤綉鍏筹級 - ///<summary > - /// 浠庢�昏澶囧垪琛ㄤ腑绉婚櫎涓�涓綉鍏崇殑鎵�鏈夎妭鐐硅澶囷紙鐢ㄤ簬涓荤綉鍏筹級 - /// <para>GwId:瑕佺Щ闄よ妭鐐硅澶囩殑缃戝叧id</para> - /// </summary> - public async System.Threading.Tasks.Task<RemoveGatewayDeviceListAllData> RemoveGatewayDeviceListAsync(string gwId) - { - if (Gateway == null || gwId == null) - { - return null; - } - return await System.Threading.Tasks.Task.Run(async () => - { - RemoveGatewayDeviceListAllData d = null; - 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 = new RemoveGatewayDeviceListAllData { errorMessageBase = "缃戝叧閿欒鍥炲锛屼笖鏁版嵁鏄┖" }; - } - else - { - d = new RemoveGatewayDeviceListAllData { errorResponData = temp, errorMessageBase = ErrorMess(temp.Error) }; - } - } - if (topic == gatewayID + "/" + "RemoveEqOfGw_Respon") - { - var gatewayTemp = new ZbGateway() { DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = Gateway.getGatewayBaseInfo.gwID }; - gatewayTemp.removeGatewayDeviceListData = Newtonsoft.Json.JsonConvert.DeserializeObject<RemoveGatewayDeviceListData>(jobject["Data"].ToString()); - - if (gatewayTemp.removeGatewayDeviceListData == null) - { - d = new RemoveGatewayDeviceListAllData { errorMessageBase = "缃戝叧杩斿洖鐨勬暟鎹负绌�" }; - } - else - { - 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--; - // } - //} - } - } - }; - - Gateway.Actions += action; - System.Console.WriteLine("RemoveEqOfGw_Actions 鍚姩" + "_" + System.DateTime.Now.ToString()); - - try - { - var jObject = new JObject { { "Cluster_ID", 0 }, { "Command", 81 } }; - var data = new JObject { { "GwId", gwId } }; - jObject.Add("Data", data); - Gateway.Send(("RemoveEqOfGw"), jObject.ToString()); - } - catch { } - - - var dateTime = DateTime.Now; - while ((DateTime.Now - dateTime).TotalMilliseconds < WaitReceiveDataTime) - { - await System.Threading.Tasks.Task.Delay(10); - if (d != null) - { - break; - } - } - if ((DateTime.Now - dateTime).TotalMilliseconds > WaitReceiveDataTime) - { - d = new RemoveGatewayDeviceListAllData { errorMessageBase = " 鍥炲瓒呮椂锛岃閲嶆柊鎿嶄綔" }; - } - Gateway.Actions -= action; - System.Console.WriteLine("RemoveEqOfGw_Actions 閫�鍑�" + System.DateTime.Now.ToString()); - - return d; - }); - } - - /// <summary> - /// 绉婚櫎璁惧,缃戝叧鍙嶉鍏蜂綋淇℃伅 - /// </summary> - public RemoveGatewayDeviceListAllData removeGatewayDeviceListAllData; - /// <summary> - /// 绉婚櫎璁惧,缃戝叧鍙嶉鍏蜂綋淇℃伅 - /// </summary> - [System.Serializable] - public class RemoveGatewayDeviceListAllData - { - /// <summary> - /// 閿欒淇℃伅 - /// </summary> - public string errorMessageBase; - /// <summary> - /// 缃戝叧淇℃伅閿欒鍙嶉 - /// <para>褰撶綉鍏虫帴鏀跺埌瀹㈡埛绔俊鎭悗锛屽嚭鐜颁互涓嬪紓甯告儏鍐靛皢鍙嶉閿欒銆�</para> - /// </summary> - public ErrorResponData errorResponData; - /// <summary> - /// 璁惧鍚嶇О淇敼 - /// </summary> - public RemoveGatewayDeviceListData removeGatewayDeviceListData; - } - - /// <summary> - /// 浠庢�昏澶囧垪琛ㄤ腑绉婚櫎涓�涓綉鍏崇殑鎵�鏈夎妭鐐硅澶囷紙鐢ㄤ簬涓荤綉鍏筹級 - /// </summary> - public RemoveGatewayDeviceListData removeGatewayDeviceListData; - /// <summary> - /// 浠庢�昏澶囧垪琛ㄤ腑绉婚櫎涓�涓綉鍏崇殑鎵�鏈夎妭鐐硅澶囷紙鐢ㄤ簬涓荤綉鍏筹級 - /// </summary> - [System.Serializable] - public class RemoveGatewayDeviceListData - { - /// <summary> - /// 瑕佺Щ闄よ妭鐐硅澶囩殑缃戝叧id - /// </summary> - public string GwId; - /// <summary> - /// 琚垹闄よ澶囩殑鏁伴噺 - /// </summary> - public int RemoveNum; - } - - #endregion - #region 璇嗗埆璁惧 ///<summary > /// 璇嗗埆璁惧 @@ -2357,500 +1048,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 璁惧灞炴�х姸鎬佷笂鎶� @@ -2899,7 +1096,8 @@ /// <summary> /// 璁惧灞炴�х姸鎬佷笂鎶� /// </summary> - public DeviceStatusReportData DeviceStatusReport = new DeviceStatusReportData { }; + [Newtonsoft.Json.JsonIgnore] + public DeviceStatusReportData DeviceStatusReport = new DeviceStatusReportData(); /// <summary> /// 璁惧灞炴�х姸鎬佷笂鎶� /// </summary> @@ -2964,8 +1162,7 @@ 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()); + var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<CommonDevice.ErrorResponData>(jobject["Data"].ToString()); if (temp == null) { @@ -2979,7 +1176,6 @@ if (topic == gatewayID + "/" + "SetWritableValue_Respon") { - var gatewayTemp = new ZbGateway() { DeviceID = jobject.Value<int>("Device_ID"), DeviceAddr = jobject.Value<string>("DeviceAddr"), DeviceEpoint = jobject.Value<int>("Epoint"), DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = gateway.getGatewayBaseInfo.gwID }; var tempData = Newtonsoft.Json.JsonConvert.DeserializeObject<SetWritableValueResponData>(jobject["Data"].ToString()); if (tempData == null) @@ -3028,22 +1224,9 @@ /// <summary> /// 缃戝叧鐗堟湰淇℃伅,缃戝叧鍙嶉淇℃伅 /// </summary> - public SetWritableValueResponAllData setWritableValueResponAllData; - /// <summary> - /// 缃戝叧鐗堟湰淇℃伅,缃戝叧鍙嶉淇℃伅 - /// </summary> [System.Serializable] - public class SetWritableValueResponAllData + public class SetWritableValueResponAllData : ErrorResponCommon { - /// <summary> - /// 閿欒淇℃伅 - /// </summary> - public string errorMessageBase; - /// <summary> - /// 缃戝叧淇℃伅閿欒鍙嶉 - /// <para>褰撶綉鍏虫帴鏀跺埌瀹㈡埛绔俊鎭悗锛屽嚭鐜颁互涓嬪紓甯告儏鍐靛皢鍙嶉閿欒銆�</para> - /// </summary> - public ErrorResponData errorResponData; /// <summary> /// 缃戝叧鐗堟湰淇℃伅 /// </summary> @@ -3074,10 +1257,6 @@ } - /// <summary> - /// 璁剧疆鍙啓灞炴�х殑鍊肩殑鏁版嵁 - /// </summary> - public SetWritableValueData setWritableValueData; /// <summary> /// 璁剧疆鍙啓灞炴�х殑鍊肩殑鏁版嵁 /// </summary> @@ -3154,8 +1333,7 @@ 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()); + var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<CommonDevice.ErrorResponData>(jobject["Data"].ToString()); if (temp == null) { @@ -3169,22 +1347,21 @@ if (topic == gatewayID + "/" + "Cluster/OwnAttributes_Respon") { - var gatewayTemp = new ZbGateway() { DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = gateway.getGatewayBaseInfo.gwID }; - gatewayTemp.clusterOwnAttributesResponData = Newtonsoft.Json.JsonConvert.DeserializeObject<ZbGateway.ClusterOwnAttributesResponData>(jobject["Data"].ToString()); + var clusterOwnAttributesResponData = Newtonsoft.Json.JsonConvert.DeserializeObject<CommonDevice.ClusterOwnAttributesResponData>(jobject["Data"].ToString()); var tempAttributes = Newtonsoft.Json.Linq.JArray.Parse(jobject["Data"]["Attribute"].ToString()); for (int m = 0; tempAttributes != null && m < tempAttributes.Count; m++) { var tempAttribute = tempAttributes[m]; - gatewayTemp.clusterOwnAttributesResponData.AttributeList.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<AttributeObj>(tempAttribute.ToString())); + clusterOwnAttributesResponData.AttributeList.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<AttributeObj>(tempAttribute.ToString())); } - if (gatewayTemp.clusterOwnAttributesResponData == null) + if (clusterOwnAttributesResponData == null) { d = new ClusterOwnAttributesResponAllData { errorMessageBase = "缃戝叧杩斿洖鐨勬暟鎹负绌�" }; } else { - d = new ClusterOwnAttributesResponAllData { clusterOwnAttributesResponData = gatewayTemp.clusterOwnAttributesResponData }; + d = new ClusterOwnAttributesResponAllData { clusterOwnAttributesResponData = clusterOwnAttributesResponData }; System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{ topic}"); } @@ -3223,32 +1400,15 @@ /// <summary> /// 鍙戠幇灞炴��,缃戝叧鍙嶉淇℃伅 /// </summary> - public ClusterOwnAttributesResponAllData clusterOwnAttributesResponAllData; - /// <summary> - /// 鍙戠幇灞炴��,缃戝叧鍙嶉淇℃伅 - /// </summary> [System.Serializable] - public class ClusterOwnAttributesResponAllData + public class ClusterOwnAttributesResponAllData : ErrorResponCommon { - /// <summary> - /// 閿欒淇℃伅 - /// </summary> - public string errorMessageBase; - /// <summary> - /// 缃戝叧淇℃伅閿欒鍙嶉 - /// <para>褰撶綉鍏虫帴鏀跺埌瀹㈡埛绔俊鎭悗锛屽嚭鐜颁互涓嬪紓甯告儏鍐靛皢鍙嶉閿欒銆�</para> - /// </summary> - public ErrorResponData errorResponData; /// <summary> /// 缃戝叧鐗堟湰淇℃伅 /// </summary> public ClusterOwnAttributesResponData clusterOwnAttributesResponData; } - /// <summary> - /// 鍙戠幇灞炴�ф暟鎹� - /// </summary> - public ClusterOwnAttributesResponData clusterOwnAttributesResponData; [System.Serializable] public class ClusterOwnAttributesResponData { @@ -3287,8 +1447,7 @@ 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()); + var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<CommonDevice.ErrorResponData>(jobject["Data"].ToString()); if (temp == null) { @@ -3303,17 +1462,16 @@ if (topic == gatewayID + "/" + "Cluster/OwnCommand_Respon") { - var gatewayTemp = new ZbGateway() { DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = gateway.getGatewayBaseInfo.gwID }; - gatewayTemp.clusterOwnCommandResponData = Newtonsoft.Json.JsonConvert.DeserializeObject<ClusterOwnCommandResponData>(jobject["Data"].ToString()); + var clusterOwnCommandResponData = Newtonsoft.Json.JsonConvert.DeserializeObject<ClusterOwnCommandResponData>(jobject["Data"].ToString()); - if (gatewayTemp.clusterOwnCommandResponData == null) + if (clusterOwnCommandResponData == null) { d = new ClusterOwnCommandResponAllData { errorMessageBase = "缃戝叧杩斿洖鐨勬暟鎹负绌�" }; } else { - d = new ClusterOwnCommandResponAllData { clusterOwnCommandResponData = gatewayTemp.clusterOwnCommandResponData }; + d = new ClusterOwnCommandResponAllData { clusterOwnCommandResponData = clusterOwnCommandResponData }; System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{ topic}"); } } @@ -3352,32 +1510,15 @@ /// <summary> /// 璁惧鏌恈luster鎵�鏀寔鐨凜ommand鏁版嵁,缃戝叧鍙嶉淇℃伅 /// </summary> - public ClusterOwnCommandResponAllData clusterOwnCommandResponAllData; - /// <summary> - /// 璁惧鏌恈luster鎵�鏀寔鐨凜ommand鏁版嵁,缃戝叧鍙嶉淇℃伅 - /// </summary> [System.Serializable] - public class ClusterOwnCommandResponAllData + public class ClusterOwnCommandResponAllData : ErrorResponCommon { - /// <summary> - /// 閿欒淇℃伅 - /// </summary> - public string errorMessageBase; - /// <summary> - /// 缃戝叧淇℃伅閿欒鍙嶉 - /// <para>褰撶綉鍏虫帴鏀跺埌瀹㈡埛绔俊鎭悗锛屽嚭鐜颁互涓嬪紓甯告儏鍐靛皢鍙嶉閿欒銆�</para> - /// </summary> - public ErrorResponData errorResponData; /// <summary> /// 缃戣澶囨煇cluster鎵�鏀寔鐨凜ommand鏁版嵁 /// </summary> public ClusterOwnCommandResponData clusterOwnCommandResponData; } - /// <summary> - /// 璁惧鏌恈luster鎵�鏀寔鐨凜ommand鏁版嵁 - /// </summary> - public ClusterOwnCommandResponData clusterOwnCommandResponData; /// <summary> /// 璁惧鏌恈luster鎵�鏀寔鐨凜ommand鏁版嵁 /// </summary> @@ -3415,8 +1556,7 @@ 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()); + var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<CommonDevice.ErrorResponData>(jobject["Data"].ToString()); if (temp == null) { @@ -3431,16 +1571,15 @@ if (topic == gatewayID + "/" + "OTA/SetImage_Respon") { - var gatewayTemp = new ZbGateway() { DataID = jobject.Value<int>("Data_ID") }; - gatewayTemp.oTASetImageData = Newtonsoft.Json.JsonConvert.DeserializeObject<OTASetImageData>(jobject["Data"].ToString()); + var oTASetImageData = Newtonsoft.Json.JsonConvert.DeserializeObject<OTASetImageData>(jobject["Data"].ToString()); - if (gatewayTemp.oTASetImageData == null) + if (oTASetImageData == null) { d = new OTASetImageResponseAllData { errorMessageBase = "缃戝叧杩斿洖鐨勬暟鎹负绌�" }; } else { - d = new OTASetImageResponseAllData { otaSetImageData = gatewayTemp.oTASetImageData }; + d = new OTASetImageResponseAllData { otaSetImageData = oTASetImageData }; System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{ topic}"); } } @@ -3480,31 +1619,15 @@ /// <summary> /// 璁惧杩涜OTA鍗囩骇,缃戝叧鍙嶉鍏蜂綋淇℃伅 /// </summary> - public OTASetImageResponseAllData otaSetImageResponseAllData; - /// <summary> - /// 璁惧杩涜OTA鍗囩骇,缃戝叧鍙嶉鍏蜂綋淇℃伅 - /// </summary> [System.Serializable] - public class OTASetImageResponseAllData + public class OTASetImageResponseAllData : ErrorResponCommon { - /// <summary> - /// 閿欒淇℃伅 - /// </summary> - public string errorMessageBase; - /// <summary> - /// 缃戝叧淇℃伅閿欒鍙嶉 - /// <para>褰撶綉鍏虫帴鏀跺埌瀹㈡埛绔俊鎭悗锛屽嚭鐜颁互涓嬪紓甯告儏鍐靛皢鍙嶉閿欒銆�</para> - /// </summary> - public ErrorResponData errorResponData; /// <summary> /// 淇濆瓨zigbee鍗忚皟鍣ㄧ粍缃戜俊鎭� /// </summary> public OTASetImageData otaSetImageData; } - /// <summary> - /// 璁惧杩涜OTA鍗囩骇 - /// </summary> - public OTASetImageData oTASetImageData; + [System.Serializable] public class OTASetImageData { @@ -3578,8 +1701,7 @@ 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()); + var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<CommonDevice.ErrorResponData>(jobject["Data"].ToString()); if (temp == null) { @@ -3594,16 +1716,15 @@ if (topic == gatewayID + "/" + "OTA/StartUpdate_Respon") { - var gatewayTemp = new ZbGateway() { DataID = jobject.Value<int>("Data_ID") }; - gatewayTemp.startUpdateDeviceData = Newtonsoft.Json.JsonConvert.DeserializeObject<StartDeviceUpdateData>(jobject["Data"].ToString()); + var startUpdateDeviceData = Newtonsoft.Json.JsonConvert.DeserializeObject<StartDeviceUpdateData>(jobject["Data"].ToString()); - if (gatewayTemp.startUpdateDeviceData == null) + if (startUpdateDeviceData == null) { d = new StartDeviceUpdateResponseAllData { errorMessageBase = "缃戝叧杩斿洖鐨勬暟鎹负绌�" }; } else { - d = new StartDeviceUpdateResponseAllData { startUpdateDeviceData = gatewayTemp.startUpdateDeviceData }; + d = new StartDeviceUpdateResponseAllData { startUpdateDeviceData = startUpdateDeviceData }; System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{ topic}"); } } @@ -3656,10 +1777,6 @@ /// <summary> /// 鍚姩鍗囩骇,缃戝叧鍙嶉鍏蜂綋淇℃伅 /// </summary> - public StartDeviceUpdateResponseAllData startUpdateDeviceResponseAllData; - /// <summary> - /// 鍚姩鍗囩骇,缃戝叧鍙嶉鍏蜂綋淇℃伅 - /// </summary> [System.Serializable] public class StartDeviceUpdateResponseAllData { @@ -3677,10 +1794,7 @@ /// </summary> public StartDeviceUpdateData startUpdateDeviceData; } - /// <summary> - /// 鍚姩鍗囩骇 - /// </summary> - public StartDeviceUpdateData startUpdateDeviceData; + [System.Serializable] public class StartDeviceUpdateData { @@ -3721,7 +1835,9 @@ /// <summary> /// 鍚姩鍗囩骇 /// </summary> + [Newtonsoft.Json.JsonIgnore] public OTAScheduleResponData oTAScheduleResponData; + [System.Serializable] public class OTAScheduleResponData { @@ -3742,10 +1858,6 @@ public int Percent = 999; } - /// <summary> - /// 鍚姩鍗囩骇鐨勬暟鎹� - /// </summary> - public StartUpdateData startUpdateData; [System.Serializable] public class StartUpdateData { @@ -3755,37 +1867,6 @@ public List<OTADeviceList> DeviceList = new List<OTADeviceList>(); } - #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 瀹㈡埛绔悜鑺傜偣璁惧閫忎紶鏁版嵁. @@ -3806,8 +1887,7 @@ 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()); + var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<CommonDevice.ErrorResponData>(jobject["Data"].ToString()); if (temp == null) { @@ -3822,16 +1902,15 @@ if (topic == gatewayID + "/" + "ZbDataPassthrough") { - var gatewayTemp = new ZbGateway() { DataID = jobject.Value<int>("Data_ID") }; - gatewayTemp.clientDataPassthroughResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<ClientDataPassthroughResponseData>(jobject["Data"].ToString()); + var clientDataPassthroughResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<ClientDataPassthroughResponseData>(jobject["Data"].ToString()); - if (gatewayTemp.clientDataPassthroughResponseData == null) + if (clientDataPassthroughResponseData == null) { d = new ClientDataPassthroughResponseAllData { errorMessageBase = "缃戝叧杩斿洖鐨勬暟鎹负绌�" }; } else { - d = new ClientDataPassthroughResponseAllData { clientDataPassthroughResponseData = gatewayTemp.clientDataPassthroughResponseData }; + d = new ClientDataPassthroughResponseAllData { clientDataPassthroughResponseData = clientDataPassthroughResponseData }; System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{ topic}"); } } @@ -3871,22 +1950,9 @@ /// <summary> /// 瀹㈡埛绔悜鑺傜偣璁惧閫忎紶鏁版嵁,缃戝叧鍙嶉鍏蜂綋淇℃伅 /// </summary> - public ClientDataPassthroughResponseAllData clientDataPassthroughResponseAllData; - /// <summary> - /// 瀹㈡埛绔悜鑺傜偣璁惧閫忎紶鏁版嵁,缃戝叧鍙嶉鍏蜂綋淇℃伅 - /// </summary> [System.Serializable] - public class ClientDataPassthroughResponseAllData + public class ClientDataPassthroughResponseAllData : ErrorResponCommon { - /// <summary> - /// 閿欒淇℃伅 - /// </summary> - public string errorMessageBase; - /// <summary> - /// 缃戝叧淇℃伅閿欒鍙嶉 - /// <para>褰撶綉鍏虫帴鏀跺埌瀹㈡埛绔俊鎭悗锛屽嚭鐜颁互涓嬪紓甯告儏鍐靛皢鍙嶉閿欒銆�</para> - /// </summary> - public ErrorResponData errorResponData; /// <summary> /// 瀹㈡埛绔悜鑺傜偣璁惧閫忎紶鏁版嵁 /// </summary> @@ -3895,7 +1961,9 @@ /// <summary> /// 瀹㈡埛绔悜鑺傜偣璁惧閫忎紶鏁版嵁 /// </summary> - public ClientDataPassthroughResponseData clientDataPassthroughResponseData = new ClientDataPassthroughResponseData { }; + [Newtonsoft.Json.JsonIgnore] + public ClientDataPassthroughResponseData clientDataPassthroughResponseData = new ClientDataPassthroughResponseData(); + [System.Serializable] public class ClientDataPassthroughResponseData { @@ -3908,31 +1976,15 @@ /// <summary> /// 鍚敤鎴栧叧闂妭鐐硅澶囬�忎紶鏁版嵁涓婁紶鎺ュ彛,缃戝叧鍙嶉鍏蜂綋淇℃伅 /// </summary> - public OnZbDataPassthroughResponseAllData onZbDataPassthroughResponseAllData; - /// <summary> - /// 鍚敤鎴栧叧闂妭鐐硅澶囬�忎紶鏁版嵁涓婁紶鎺ュ彛,缃戝叧鍙嶉鍏蜂綋淇℃伅 - /// </summary> [System.Serializable] - public class OnZbDataPassthroughResponseAllData + public class OnZbDataPassthroughResponseAllData : ErrorResponCommon { - /// <summary> - /// 閿欒淇℃伅 - /// </summary> - public string errorMessageBase; - /// <summary> - /// 缃戝叧淇℃伅閿欒鍙嶉 - /// <para>褰撶綉鍏虫帴鏀跺埌瀹㈡埛绔俊鎭悗锛屽嚭鐜颁互涓嬪紓甯告儏鍐靛皢鍙嶉閿欒銆�</para> - /// </summary> - public ErrorResponData errorResponData; /// <summary> /// 鍚敤鎴栧叧闂妭鐐硅澶囬�忎紶鏁版嵁涓婁紶鎺ュ彛 /// </summary> public OnZbDataPassthroughData onZbDataPassthroughData; } - /// <summary> - /// 鍚敤鎴栧叧闂妭鐐硅澶囬�忎紶鏁版嵁涓婁紶鎺ュ彛 - /// </summary> - public OnZbDataPassthroughData onZbDataPassthroughData; + [System.Serializable] public class OnZbDataPassthroughData { @@ -3967,8 +2019,7 @@ 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()); + var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<CommonDevice.ErrorResponData>(jobject["Data"].ToString()); if (temp == null) { @@ -3982,16 +2033,15 @@ if (topic == gatewayID + "/" + "DownloadFile_Respon") { - var gatewayTemp = new ZbGateway() { DataID = jobject.Value<int>("Data_ID") }; - gatewayTemp.downloadFileResponData = Newtonsoft.Json.JsonConvert.DeserializeObject<DownloadFileResponData>(jobject["Data"].ToString()); + var downloadFileResponData = Newtonsoft.Json.JsonConvert.DeserializeObject<DownloadFileResponData>(jobject["Data"].ToString()); - if (gatewayTemp.downloadFileResponData == null) + if (downloadFileResponData == null) { d = new DownloadFileResponAllData { errorMessageBase = "缃戝叧杩斿洖鐨勬暟鎹负绌�" }; } else { - d = new DownloadFileResponAllData { downloadFileResponData = gatewayTemp.downloadFileResponData }; + d = new DownloadFileResponAllData { downloadFileResponData = downloadFileResponData }; System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{ topic}"); } } @@ -4032,35 +2082,19 @@ }); } - /// <summary> - /// 缃戝叧绯荤粺鍗囩骇,缃戝叧鍙嶉鍏蜂綋淇℃伅 - /// </summary> - public DownloadFileResponAllData downloadFileResponAllData; + /// <summary> /// 缃戝叧绯荤粺鍗囩骇,缃戝叧鍙嶉鍏蜂綋淇℃伅 /// </summary> [System.Serializable] - public class DownloadFileResponAllData + public class DownloadFileResponAllData : ErrorResponCommon { - /// <summary> - /// 閿欒淇℃伅 - /// </summary> - public string errorMessageBase; - /// <summary> - /// 缃戝叧淇℃伅閿欒鍙嶉 - /// <para>褰撶綉鍏虫帴鏀跺埌瀹㈡埛绔俊鎭悗锛屽嚭鐜颁互涓嬪紓甯告儏鍐靛皢鍙嶉閿欒銆�</para> - /// </summary> - public ErrorResponData errorResponData; /// <summary> /// 涓嬭浇浜戠鍥轰欢 /// </summary> public DownloadFileResponData downloadFileResponData; } - /// <summary> - /// 涓嬭浇浜戠鍥轰欢 - /// </summary> - public DownloadFileResponData downloadFileResponData; /// <summary> /// 涓嬭浇浜戠鍥轰欢 /// </summary> @@ -4084,6 +2118,7 @@ /// <summary> /// 涓嬭浇杩涘害 /// </summary> + [Newtonsoft.Json.JsonIgnore] public DownloadFileProgressResponData downloadFileProgressResponData; /// <summary> /// 涓嬭浇杩涘害 @@ -4136,8 +2171,7 @@ 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()); + var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<CommonDevice.ErrorResponData>(jobject["Data"].ToString()); if (temp == null) { @@ -4152,16 +2186,15 @@ if (topic == gatewayID + "/" + "OTA/KillUpdate_Respon") { - var gatewayTemp = new ZbGateway() { DataID = jobject.Value<int>("Data_ID") }; - gatewayTemp.killUpdateData = Newtonsoft.Json.JsonConvert.DeserializeObject<KillUpdateData>(jobject["Data"].ToString()); + var killUpdateData = Newtonsoft.Json.JsonConvert.DeserializeObject<KillUpdateData>(jobject["Data"].ToString()); - if (gatewayTemp.killUpdateData == null) + if (killUpdateData == null) { d = new KillUpdateResponseAllData { errorMessageBase = "缃戝叧杩斿洖鐨勬暟鎹负绌�" }; } else { - d = new KillUpdateResponseAllData { killUpdateData = gatewayTemp.killUpdateData }; + d = new KillUpdateResponseAllData { killUpdateData = killUpdateData }; System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{ topic}"); } } @@ -4199,31 +2232,15 @@ /// <summary> /// 缁堟璁惧鍗囩骇,缃戝叧鍙嶉鍏蜂綋淇℃伅 /// </summary> - public KillUpdateResponseAllData killUpdateResponseAllData; - /// <summary> - /// 缁堟璁惧鍗囩骇,缃戝叧鍙嶉鍏蜂綋淇℃伅 - /// </summary> [System.Serializable] - public class KillUpdateResponseAllData + public class KillUpdateResponseAllData : ErrorResponCommon { - /// <summary> - /// 閿欒淇℃伅 - /// </summary> - public string errorMessageBase; - /// <summary> - /// 缃戝叧淇℃伅閿欒鍙嶉 - /// <para>褰撶綉鍏虫帴鏀跺埌瀹㈡埛绔俊鎭悗锛屽嚭鐜颁互涓嬪紓甯告儏鍐靛皢鍙嶉閿欒銆�</para> - /// </summary> - public ErrorResponData errorResponData; /// <summary> /// 缁堟璁惧鍗囩骇 /// </summary> public KillUpdateData killUpdateData; } - /// <summary> - /// 缁堟璁惧鍗囩骇 - /// </summary> - public KillUpdateData killUpdateData; + [System.Serializable] public class KillUpdateData { @@ -4236,22 +2253,10 @@ #endregion #region 绉佹湁鍗忚缃戝叧鍜岃澶囩殑榛樿鍥炲 - /// <summary> - /// 绉佹湁鍗忚缃戝叧鍜岃澶囩殑榛樿鍥炲 - /// </summary> - public ResponseAllData keyColorDataResponseAllData; + [System.Serializable] - public class ResponseAllData + public class ResponseAllData : ErrorResponCommon { - /// <summary> - /// 閿欒淇℃伅 - /// </summary> - public string errorMessageBase; - /// <summary> - /// 缃戝叧淇℃伅閿欒鍙嶉 - /// <para>褰撶綉鍏虫帴鏀跺埌瀹㈡埛绔俊鎭悗锛屽嚭鐜颁互涓嬪紓甯告儏鍐靛皢鍙嶉閿欒銆�</para> - /// </summary> - public ErrorResponData errorResponData; /// <summary> /// 鎸夐敭鎸囩ず鐏鑹蹭俊鎭� /// </summary> @@ -4267,7 +2272,7 @@ /// <summary> ///鍝嶅簲鎿嶄綔鐮侊紙0-ffff锛� /// </summary> - public int command = -1; + public string command; /// <summary> /// 鐘舵�佸�� /// <para>0--鎴愬姛 1--澶辫触 ff--鏃犳晥</para> @@ -4275,5 +2280,27 @@ public int status = -1; } #endregion + + #region 鈻� 璋冭瘯鎵撳嵃 + + /// <summary> + /// 璋冭瘯鏃舵墦寮�鎵撳嵃淇℃伅锛宼rue:鎵撳嵃锛宖alse:涓嶆墦鍗� + /// </summary> + /// <param name="msg">Message.</param> + /// <param name="flage">If set to <c>true</c> flage.</param> + public static void DebugPrintLog(string msg, bool flage = true) + { +#if DEBUG + if (flage == true) + { + if (msg.Contains("DeviceStatusReport") == false) + { + System.Console.WriteLine(msg + " " + System.DateTime.Now.ToLongTimeString() + " " + System.DateTime.Now.Millisecond); + } + } +#endif + } + + #endregion } } -- Gitblit v1.8.0