From 1a2061079e97a738ec7b8959bfd9a6e6c6997403 Mon Sep 17 00:00:00 2001
From: gxc <guoxuecheng@guoxuechengdeMacBook-Pro.local>
Date: 星期四, 31 十月 2019 09:59:29 +0800
Subject: [PATCH] 2019.10.31
---
ZigbeeApp/Shared/Phone/ZigBee/Device/ZbGateway.cs | 1578 +++++++++++++++++++--------------------------------------
1 files changed, 536 insertions(+), 1,042 deletions(-)
diff --git a/ZigbeeApp/Shared/Phone/ZigBee/Device/ZbGateway.cs b/ZigbeeApp/Shared/Phone/ZigBee/Device/ZbGateway.cs
old mode 100644
new mode 100755
index 42be53e..49cb86e
--- a/ZigbeeApp/Shared/Phone/ZigBee/Device/ZbGateway.cs
+++ b/ZigbeeApp/Shared/Phone/ZigBee/Device/ZbGateway.cs
@@ -46,8 +46,8 @@
public bool IsMainGateWay
{
get
- {
- return getGatewayBaseInfo != null && getGatewayBaseInfo.IsMainGateWay;
+ {
+ return getGatewayBaseInfo != null && getGatewayBaseInfo.IsMainGateWay;
}
}
@@ -98,7 +98,7 @@
}
}
- #region variable
+ #region variable
/// <summary>
/// 杩滅▼杩炴帴鎴愬姛鏃剁殑鏃堕棿
/// </summary>
@@ -106,7 +106,7 @@
/// <summary>
/// 鍚屾鍒拌繙绋嬬殑褰撳墠鏃堕棿鎴�
- /// </summary>
+ /// </summary>Re
public static ulong CurrentTimeStamp
{
get
@@ -647,365 +647,365 @@
}
var deviceID = jobject.Value<int>("Device_ID");
switch ((DeviceType)(deviceID))
- {
- //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 = this.getGatewayBaseInfo?.gwID };
- // dimmableLight.DeviceInfo = Newtonsoft.Json.JsonConvert.DeserializeObject<DimmableLight.DeviceInfoData>(jobject["Data"].ToString());
- // if (dimmableLight.DeviceInfo == null)
- // {
- // return;
- // }
- // var light = DeviceList.Find(obj => obj.DeviceID == dimmableLight.DeviceID && obj.DeviceAddr == dimmableLight.DeviceAddr && obj.DeviceEpoint == dimmableLight.DeviceEpoint);
- // if (light == null)
- // {
- // DeviceList.Add(dimmableLight);
- // dimmableLight.DeviceName = dimmableLight.DeviceInfo.MacName;
- // dimmableLight.DeviceEpointName = dimmableLight.DeviceInfo.DeviceName;
- // dimmableLight.ImgVersion = dimmableLight.DeviceInfo.ImgVersion;
- // dimmableLight.HwVersion = dimmableLight.DeviceInfo.HwVersion;
- // dimmableLight.IsOnline = dimmableLight.DeviceInfo.IsOnline;
- // dimmableLight.DriveCode = dimmableLight.DeviceInfo.DriveCode;
- // dimmableLight.ImgTypeId = dimmableLight.DeviceInfo.ImgTypeId;
- // dimmableLight.IasDeviceType = dimmableLight.DeviceInfo.DeviceType;
- // dimmableLight.Profile = dimmableLight.DeviceInfo.Profile;
- // dimmableLight.InClusterList = dimmableLight.DeviceInfo.InClusterList;
- // dimmableLight.OutClusterList = dimmableLight.DeviceInfo.OutClusterList;
- // dimmableLight.AttributeStatus = dimmableLight.DeviceInfo.AttributeStatus;
- // //dimmableLight.Save();
- // }
- // else
- // {
- // light.DeviceInfo = dimmableLight.DeviceInfo;
- // light.DeviceName = dimmableLight.DeviceInfo.MacName;
- // light.DeviceEpointName = dimmableLight.DeviceInfo.DeviceName;
- // light.ImgVersion = dimmableLight.DeviceInfo.ImgVersion;
- // light.HwVersion = dimmableLight.DeviceInfo.HwVersion;
- // light.IsOnline = dimmableLight.DeviceInfo.IsOnline;
- // light.DriveCode = dimmableLight.DeviceInfo.DriveCode;
- // light.ImgTypeId = dimmableLight.DeviceInfo.ImgTypeId;
- // light.IasDeviceType = dimmableLight.DeviceInfo.DeviceType;
- // light.Profile = dimmableLight.DeviceInfo.Profile;
- // light.InClusterList = dimmableLight.DeviceInfo.InClusterList;
- // light.OutClusterList = dimmableLight.DeviceInfo.OutClusterList;
- // light.AttributeStatus = dimmableLight.DeviceInfo.AttributeStatus;
- // //dimmableLight.ReSave();
- // }
- // DebugPrintLog($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{ topic}");
-
- // break;
- //case DeviceType.OnOffSwitch:
- // var panel = new Panel() { Time = jobject.Value<int>("Time"), DeviceID = jobject.Value<int>("Device_ID"), DeviceAddr = jobject.Value<string>("DeviceAddr"), DeviceEpoint = jobject.Value<int>("Epoint"), DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = this.getGatewayBaseInfo?.gwID };
- // panel.DeviceInfo = Newtonsoft.Json.JsonConvert.DeserializeObject<Panel.DeviceInfoData>(jobject["Data"].ToString());
- // if (panel.DeviceInfo == null)
- // {
- // return;
- // }
- // var panelInfo = DeviceList.Find(obj => obj.DeviceID == panel.DeviceID && obj.DeviceAddr == panel.DeviceAddr && obj.DeviceEpoint == panel.DeviceEpoint);
- // if (panelInfo == null)
- // {
- // DeviceList.Add(panel);
- // panel.DeviceName = panel.DeviceInfo.MacName;
- // panel.DeviceEpointName = panel.DeviceInfo.DeviceName;
- // panel.ImgTypeId = panel.DeviceInfo.ImgTypeId;
- // panel.ImgVersion = panel.DeviceInfo.ImgVersion;
- // panel.HwVersion = panel.DeviceInfo.HwVersion;
- // panel.IasDeviceType = panel.DeviceInfo.DeviceType;
- // panel.IsOnline = panel.DeviceInfo.IsOnline;
- // panel.DriveCode = panel.DeviceInfo.DriveCode;
- // panel.Profile = panel.DeviceInfo.Profile;
- // panel.InClusterList = panel.DeviceInfo.InClusterList;
- // panel.OutClusterList = panel.DeviceInfo.OutClusterList;
- // panel.AttributeStatus = panel.DeviceInfo.AttributeStatus;
- // //panel.Save();
- // }
- // else
- // {
- // panelInfo.DeviceInfo = panel.DeviceInfo;
- // panelInfo.DeviceName = panel.DeviceInfo.MacName;
- // panelInfo.DeviceEpointName = panel.DeviceInfo.DeviceName;
- // panelInfo.ImgVersion = panel.DeviceInfo.ImgVersion;
- // panelInfo.HwVersion = panel.DeviceInfo.HwVersion;
- // panelInfo.IsOnline = panel.DeviceInfo.IsOnline;
- // panelInfo.DriveCode = panel.DeviceInfo.DriveCode;
- // panelInfo.IasDeviceType = panel.DeviceInfo.DeviceType;
- // panelInfo.Profile = panel.DeviceInfo.Profile;
- // panelInfo.ImgTypeId = panel.DeviceInfo.ImgTypeId;
- // panelInfo.InClusterList = panel.DeviceInfo.InClusterList;
- // panelInfo.OutClusterList = panel.DeviceInfo.OutClusterList;
- // panelInfo.AttributeStatus = panel.DeviceInfo.AttributeStatus;
- // //panel.ReSave();
- // }
- // DebugPrintLog($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{ topic}");
-
- // break;
- //case DeviceType.OnOffOutput:
- // var toggleLight = new ToggleLight() { Time = jobject.Value<int>("Time"), DeviceID = jobject.Value<int>("Device_ID"), DeviceAddr = jobject.Value<string>("DeviceAddr"), DeviceEpoint = jobject.Value<int>("Epoint"), DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = this.getGatewayBaseInfo?.gwID };
- // toggleLight.DeviceInfo = Newtonsoft.Json.JsonConvert.DeserializeObject<ToggleLight.DeviceInfoData>(jobject["Data"].ToString());
- // if (toggleLight.DeviceInfo == null)
- // {
- // return;
- // }
- // var toggleLightInfo = DeviceList.Find(obj => obj.DeviceID == toggleLight.DeviceID && obj.DeviceAddr == toggleLight.DeviceAddr && obj.DeviceEpoint == toggleLight.DeviceEpoint);
- // if (toggleLightInfo == null)
- // {
- // DeviceList.Add(toggleLight);
- // toggleLight.DeviceName = toggleLight.DeviceInfo.MacName;
- // toggleLight.DeviceEpointName = toggleLight.DeviceInfo.DeviceName;
- // toggleLight.ImgVersion = toggleLight.DeviceInfo.ImgVersion;
- // toggleLight.HwVersion = toggleLight.DeviceInfo.HwVersion;
- // toggleLight.IsOnline = toggleLight.DeviceInfo.IsOnline;
- // toggleLight.DriveCode = toggleLight.DeviceInfo.DriveCode;
- // toggleLight.IasDeviceType = toggleLight.DeviceInfo.DeviceType;
- // toggleLight.Profile = toggleLight.DeviceInfo.Profile;
- // toggleLight.ImgTypeId = toggleLight.DeviceInfo.ImgTypeId;
- // toggleLight.InClusterList = toggleLight.DeviceInfo.InClusterList;
- // toggleLight.OutClusterList = toggleLight.DeviceInfo.OutClusterList;
- // toggleLight.AttributeStatus = toggleLight.DeviceInfo.AttributeStatus;
- // //toggleLight.Save();
- // }
- // else
- // {
- // toggleLightInfo.DeviceName = toggleLight.DeviceInfo.MacName;
- // toggleLightInfo.DeviceEpointName = toggleLight.DeviceInfo.DeviceName;
- // toggleLightInfo.ImgVersion = toggleLight.DeviceInfo.ImgVersion;
- // toggleLightInfo.HwVersion = toggleLight.DeviceInfo.HwVersion;
- // toggleLightInfo.IsOnline = toggleLight.DeviceInfo.IsOnline;
- // toggleLightInfo.DriveCode = toggleLight.DeviceInfo.DriveCode;
- // toggleLightInfo.IasDeviceType = toggleLight.DeviceInfo.DeviceType;
- // toggleLightInfo.Profile = toggleLight.DeviceInfo.Profile;
- // toggleLightInfo.ImgTypeId = toggleLight.DeviceInfo.ImgTypeId;
- // toggleLightInfo.InClusterList = toggleLight.DeviceInfo.InClusterList;
- // toggleLightInfo.OutClusterList = toggleLight.DeviceInfo.OutClusterList;
- // toggleLightInfo.AttributeStatus = toggleLight.DeviceInfo.AttributeStatus;
- // toggleLightInfo.DeviceInfo = toggleLight.DeviceInfo;
- // //toggleLightInfo.ReSave();
- // }
- // DebugPrintLog($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{ topic}");
-
- // break;
- //case DeviceType.AirSwitch:
- // var airSwitch = new AirSwitch() { Time = jobject.Value<int>("Time"), DeviceID = jobject.Value<int>("Device_ID"), DeviceAddr = jobject.Value<string>("DeviceAddr"), DeviceEpoint = jobject.Value<int>("Epoint"), DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = this.getGatewayBaseInfo?.gwID };
- // airSwitch.DeviceInfo = Newtonsoft.Json.JsonConvert.DeserializeObject<AirSwitch.DeviceInfoData>(jobject["Data"].ToString());
- // if (airSwitch.DeviceInfo == null)
- // {
- // return;
- // }
- // var airSwitchInfo = DeviceList.Find(obj => obj.DeviceID == airSwitch.DeviceID && obj.DeviceAddr == airSwitch.DeviceAddr && obj.DeviceEpoint == airSwitch.DeviceEpoint);
- // if (airSwitchInfo == null)
- // {
- // DeviceList.Add(airSwitch);
- // airSwitch.DeviceName = airSwitch.DeviceInfo.MacName;
- // airSwitch.DeviceEpointName = airSwitch.DeviceInfo.DeviceName;
- // airSwitch.ImgVersion = airSwitch.DeviceInfo.ImgVersion;
- // airSwitch.HwVersion = airSwitch.DeviceInfo.HwVersion;
- // airSwitch.IsOnline = airSwitch.DeviceInfo.IsOnline;
- // airSwitch.DriveCode = airSwitch.DeviceInfo.DriveCode;
- // airSwitch.IasDeviceType = airSwitch.DeviceInfo.DeviceType;
- // airSwitch.Profile = airSwitch.DeviceInfo.Profile;
- // airSwitch.ImgTypeId = airSwitch.DeviceInfo.ImgTypeId;
- // airSwitch.InClusterList = airSwitch.DeviceInfo.InClusterList;
- // airSwitch.OutClusterList = airSwitch.DeviceInfo.OutClusterList;
- // airSwitch.AttributeStatus = airSwitch.DeviceInfo.AttributeStatus;
- // //airSwitch.Save();
- // }
- // else
- // {
- // airSwitchInfo.DeviceName = airSwitch.DeviceInfo.MacName;
- // airSwitchInfo.DeviceEpointName = airSwitch.DeviceInfo.DeviceName;
- // airSwitchInfo.ImgVersion = airSwitch.DeviceInfo.ImgVersion;
- // airSwitchInfo.HwVersion = airSwitch.DeviceInfo.HwVersion;
- // airSwitchInfo.IsOnline = airSwitch.DeviceInfo.IsOnline;
- // airSwitchInfo.DriveCode = airSwitch.DeviceInfo.DriveCode;
- // airSwitchInfo.IasDeviceType = airSwitch.DeviceInfo.DeviceType;
- // airSwitchInfo.Profile = airSwitch.DeviceInfo.Profile;
- // airSwitchInfo.ImgTypeId = airSwitch.DeviceInfo.ImgTypeId;
- // airSwitchInfo.InClusterList = airSwitch.DeviceInfo.InClusterList;
- // airSwitchInfo.OutClusterList = airSwitch.DeviceInfo.OutClusterList;
- // airSwitchInfo.AttributeStatus = airSwitch.DeviceInfo.AttributeStatus;
- // airSwitchInfo.DeviceInfo = airSwitch.DeviceInfo;
- // // airSwitchInfo.ReSave();
- // }
- // DebugPrintLog($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{ topic}");
-
- // break;
- //case DeviceType.WindowCoveringDevice:
- // var windowCovering = new Rollershade() { DeviceID = jobject.Value<int>((object)"Device_ID"), DeviceAddr = jobject.Value<string>((object)"DeviceAddr"), DeviceEpoint = jobject.Value<int>((object)"Epoint"), DataID = jobject.Value<int>((object)"Data_ID"), CurrentGateWayId = this.getGatewayBaseInfo?.gwID };
- // windowCovering.DeviceInfo = Newtonsoft.Json.JsonConvert.DeserializeObject<Rollershade.DeviceInfoData>(jobject["Data"].ToString());
- // if (windowCovering.DeviceInfo == null)
- // {
- // return;
- // }
- // var wc = DeviceList.Find(obj => obj.DeviceID == windowCovering.DeviceID && obj.DeviceAddr == windowCovering.DeviceAddr && obj.DeviceEpoint == windowCovering.DeviceEpoint);
- // if (wc == null)
- // {
- // DeviceList.Add(windowCovering);
- // windowCovering.DeviceName = windowCovering.DeviceInfo.MacName;
- // windowCovering.DeviceEpointName = windowCovering.DeviceInfo.DeviceName;
- // windowCovering.ImgVersion = windowCovering.DeviceInfo.ImgVersion;
- // windowCovering.HwVersion = windowCovering.DeviceInfo.HwVersion;
- // windowCovering.IsOnline = windowCovering.DeviceInfo.IsOnline;
- // windowCovering.DriveCode = windowCovering.DeviceInfo.DriveCode;
- // windowCovering.IasDeviceType = windowCovering.DeviceInfo.DeviceType;
- // windowCovering.Profile = windowCovering.DeviceInfo.Profile;
- // windowCovering.ImgTypeId = windowCovering.DeviceInfo.ImgTypeId;
- // windowCovering.InClusterList = windowCovering.DeviceInfo.InClusterList;
- // windowCovering.OutClusterList = windowCovering.DeviceInfo.OutClusterList;
- // windowCovering.AttributeStatus = windowCovering.DeviceInfo.AttributeStatus;
- // //windowCovering.Save();
- // }
- // else
- // {
- // wc.DeviceName = windowCovering.DeviceInfo.MacName;
- // wc.DeviceEpointName = windowCovering.DeviceInfo.DeviceName;
- // wc.DeviceInfo = windowCovering.DeviceInfo;
- // wc.ImgVersion = windowCovering.DeviceInfo.ImgVersion;
- // wc.HwVersion = windowCovering.DeviceInfo.HwVersion;
- // wc.IsOnline = windowCovering.DeviceInfo.IsOnline;
- // wc.DriveCode = windowCovering.DeviceInfo.DriveCode;
- // wc.IasDeviceType = windowCovering.DeviceInfo.DeviceType;
- // wc.Profile = windowCovering.DeviceInfo.Profile;
- // wc.ImgTypeId = windowCovering.DeviceInfo.ImgTypeId;
- // wc.InClusterList = windowCovering.DeviceInfo.InClusterList;
- // wc.OutClusterList = windowCovering.DeviceInfo.OutClusterList;
- // wc.AttributeStatus = windowCovering.DeviceInfo.AttributeStatus;
- // // wc.ReSave();
- // }
- // DebugPrintLog($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{ topic}");
- // break;
- //case DeviceType.IASZone:
- // var ias = new IASZone() { Time = jobject.Value<int>("Time"), DeviceID = jobject.Value<int>("Device_ID"), DeviceAddr = jobject.Value<string>("DeviceAddr"), DeviceEpoint = jobject.Value<int>("Epoint"), DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = this.getGatewayBaseInfo?.gwID };
- // ias.DeviceInfo = Newtonsoft.Json.JsonConvert.DeserializeObject<IASZone.DeviceInfoData>(jobject["Data"].ToString());
- // if (ias.DeviceInfo == null)
- // {
- // return;
- // }
- // var infoIAS = DeviceList.Find(obj => obj.DeviceID == ias.DeviceID && obj.DeviceAddr == ias.DeviceAddr && obj.DeviceEpoint == ias.DeviceEpoint);
- // if (infoIAS == null)
- // {
- // DeviceList.Add(ias);
- // ias.DeviceName = ias.DeviceInfo.MacName;
- // ias.DeviceEpointName = ias.DeviceInfo.DeviceName;
- // ias.ImgVersion = ias.DeviceInfo.ImgVersion;
- // ias.HwVersion = ias.DeviceInfo.HwVersion;
- // ias.IsOnline = ias.DeviceInfo.IsOnline;
- // ias.DriveCode = ias.DeviceInfo.DriveCode;
- // ias.IasDeviceType = ias.DeviceInfo.DeviceType;
- // ias.Profile = ias.DeviceInfo.Profile;
- // ias.ImgTypeId = ias.DeviceInfo.ImgTypeId;
- // ias.InClusterList = ias.DeviceInfo.InClusterList;
- // ias.OutClusterList = ias.DeviceInfo.OutClusterList;
- // ias.AttributeStatus = ias.DeviceInfo.AttributeStatus;
- // //ias.Save();
- // }
- // else
- // {
- // infoIAS.DeviceName = ias.DeviceInfo.MacName;
- // infoIAS.DeviceEpointName = ias.DeviceInfo.DeviceName;
- // infoIAS.DeviceEpointName = ias.DeviceInfo.DeviceName;
- // infoIAS.ImgVersion = ias.DeviceInfo.ImgVersion;
- // infoIAS.HwVersion = ias.DeviceInfo.HwVersion;
- // infoIAS.IsOnline = ias.DeviceInfo.IsOnline;
- // infoIAS.DriveCode = ias.DeviceInfo.DriveCode;
- // infoIAS.IasDeviceType = ias.DeviceInfo.DeviceType;
- // infoIAS.Profile = ias.DeviceInfo.Profile;
- // infoIAS.ImgTypeId = ias.DeviceInfo.ImgTypeId;
- // infoIAS.InClusterList = ias.DeviceInfo.InClusterList;
- // infoIAS.OutClusterList = ias.DeviceInfo.OutClusterList;
- // infoIAS.AttributeStatus = ias.DeviceInfo.AttributeStatus;
- // infoIAS.DeviceInfo = ias.DeviceInfo;
- // //ias.ReSave();
- // }
- // DebugPrintLog($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{ topic}");
- // break;
- //case DeviceType.OtaDevice:
- //case DeviceType.OtaPanelDevice:
- //var ota = new OTADevice() { Time = jobject.Value<int>("Time"), DeviceID = jobject.Value<int>("Device_ID"), DeviceAddr = jobject.Value<string>("DeviceAddr"), DeviceEpoint = jobject.Value<int>("Epoint"), DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = this.getGatewayBaseInfo?.gwID };
- //ota.DeviceInfo = Newtonsoft.Json.JsonConvert.DeserializeObject<DeviceInfoData>(jobject["Data"].ToString());
- //if (ota.DeviceInfo == null)
- //{
- // return;
- //}
- //var infoOta = DeviceList.Find(obj => obj.DeviceID == ota.DeviceID && obj.DeviceAddr == ota.DeviceAddr && obj.DeviceEpoint == ota.DeviceEpoint);
- //if (infoOta == null)
- //{
- // DeviceList.Add(ota);
- // ota.DeviceName = ota.DeviceInfo.MacName;
- // ota.DeviceEpointName = ota.DeviceInfo.DeviceName;
- // ota.ImgVersion = ota.DeviceInfo.ImgVersion;
- // ota.HwVersion = ota.DeviceInfo.HwVersion;
- // ota.IsOnline = ota.DeviceInfo.IsOnline;
- // ota.DriveCode = ota.DeviceInfo.DriveCode;
- // ota.IasDeviceType = ota.DeviceInfo.DeviceType;
- // ota.Profile = ota.DeviceInfo.Profile;
- // ota.ImgTypeId = ota.DeviceInfo.ImgTypeId;
- // ota.InClusterList = ota.DeviceInfo.InClusterList;
- // ota.OutClusterList = ota.DeviceInfo.OutClusterList;
- // ota.AttributeStatus = ota.DeviceInfo.AttributeStatus;
- // //ota.Save();
- //}
- //else
- //{
- // infoOta.DeviceName = ota.DeviceInfo.MacName;
- // infoOta.DeviceEpointName = ota.DeviceInfo.DeviceName;
- // infoOta.DeviceEpointName = ota.DeviceInfo.DeviceName;
- // infoOta.ImgVersion = ota.DeviceInfo.ImgVersion;
- // infoOta.HwVersion = ota.DeviceInfo.HwVersion;
- // infoOta.IsOnline = ota.DeviceInfo.IsOnline;
- // infoOta.DriveCode = ota.DeviceInfo.DriveCode;
- // infoOta.IasDeviceType = ota.DeviceInfo.DeviceType;
- // infoOta.Profile = ota.DeviceInfo.Profile;
- // infoOta.ImgTypeId = ota.DeviceInfo.ImgTypeId;
- // infoOta.InClusterList = ota.DeviceInfo.InClusterList;
- // infoOta.OutClusterList = ota.DeviceInfo.OutClusterList;
- // infoOta.AttributeStatus = ota.DeviceInfo.AttributeStatus;
- // infoOta.DeviceInfo = ota.DeviceInfo;
- // //ota.ReSave();
- //}
- //DebugPrintLog($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{ topic}");
- //break;
- //case DeviceType.Thermostat:
- //var thermostat = new ThermostatObj() { 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 };
- //thermostat.DeviceInfo = Newtonsoft.Json.JsonConvert.DeserializeObject<ThermostatObj.DeviceInfoData>(jobject["Data"].ToString());
- //if (thermostat.DeviceInfo == null)
- //{
- // return;
- //}
- //var ther = gateway.DeviceList.Find(obj => obj.DeviceID == thermostat.DeviceID && obj.DeviceAddr == thermostat.DeviceAddr && obj.DeviceEpoint == thermostat.DeviceEpoint);
- //if (ther == null)
- //{
- // gateway.DeviceList.Add(thermostat);
- // thermostat.DeviceName = thermostat.DeviceInfo.DeviceName;
- // IO.LocalFileUtils.SaveDeviceInfo(thermostat, thermostat.DeviceEpoint.ToString());
- //}
- //else
- //{
- // ther.DeviceName = thermostat.DeviceInfo.DeviceName;
- // ther.DeviceInfo = thermostat.DeviceInfo;
- // ZigBee.IO.LocalFileUtils.SaveDeviceInfo(ther, ther.DeviceEpoint.ToString());
- //}
- //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.getGatewayBaseInfo.gwID };
- //temperatureSensor.DeviceInfo = Newtonsoft.Json.JsonConvert.DeserializeObject<TemperatureSensor.DeviceInfoData>(jobject["Data"].ToString());
- //if (temperatureSensor.DeviceInfo == null)
- //{
- // return;
- //}
- //var ts = gateway.DeviceList.Find(obj => obj.DeviceID == temperatureSensor.DeviceID && obj.DeviceAddr == temperatureSensor.DeviceAddr && obj.DeviceEpoint == temperatureSensor.DeviceEpoint);
- //if (ts == null)
- //{
- // gateway.DeviceList.Add(temperatureSensor);
- // temperatureSensor.DeviceName = temperatureSensor.DeviceInfo.DeviceName;
- // IO.LocalFileUtils.SaveDeviceInfo(temperatureSensor, temperatureSensor.DeviceEpoint.ToString());
- //}
- //else
- //{
- // ts.DeviceName = temperatureSensor.DeviceInfo.DeviceName;
- // ts.DeviceInfo = temperatureSensor.DeviceInfo;
- // IO.LocalFileUtils.SaveDeviceInfo(ts, ts.DeviceEpoint.ToString());
- //}
- //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 = this.getGatewayBaseInfo?.gwID };
+ // dimmableLight.DeviceInfo = Newtonsoft.Json.JsonConvert.DeserializeObject<DimmableLight.DeviceInfoData>(jobject["Data"].ToString());
+ // if (dimmableLight.DeviceInfo == null)
+ // {
+ // return;
+ // }
+ // var light = DeviceList.Find(obj => obj.DeviceID == dimmableLight.DeviceID && obj.DeviceAddr == dimmableLight.DeviceAddr && obj.DeviceEpoint == dimmableLight.DeviceEpoint);
+ // if (light == null)
+ // {
+ // DeviceList.Add(dimmableLight);
+ // dimmableLight.DeviceName = dimmableLight.DeviceInfo.MacName;
+ // dimmableLight.DeviceEpointName = dimmableLight.DeviceInfo.DeviceName;
+ // dimmableLight.ImgVersion = dimmableLight.DeviceInfo.ImgVersion;
+ // dimmableLight.HwVersion = dimmableLight.DeviceInfo.HwVersion;
+ // dimmableLight.IsOnline = dimmableLight.DeviceInfo.IsOnline;
+ // dimmableLight.DriveCode = dimmableLight.DeviceInfo.DriveCode;
+ // dimmableLight.ImgTypeId = dimmableLight.DeviceInfo.ImgTypeId;
+ // dimmableLight.IasDeviceType = dimmableLight.DeviceInfo.DeviceType;
+ // dimmableLight.Profile = dimmableLight.DeviceInfo.Profile;
+ // dimmableLight.InClusterList = dimmableLight.DeviceInfo.InClusterList;
+ // dimmableLight.OutClusterList = dimmableLight.DeviceInfo.OutClusterList;
+ // dimmableLight.AttributeStatus = dimmableLight.DeviceInfo.AttributeStatus;
+ // //dimmableLight.Save();
+ // }
+ // else
+ // {
+ // light.DeviceInfo = dimmableLight.DeviceInfo;
+ // light.DeviceName = dimmableLight.DeviceInfo.MacName;
+ // light.DeviceEpointName = dimmableLight.DeviceInfo.DeviceName;
+ // light.ImgVersion = dimmableLight.DeviceInfo.ImgVersion;
+ // light.HwVersion = dimmableLight.DeviceInfo.HwVersion;
+ // light.IsOnline = dimmableLight.DeviceInfo.IsOnline;
+ // light.DriveCode = dimmableLight.DeviceInfo.DriveCode;
+ // light.ImgTypeId = dimmableLight.DeviceInfo.ImgTypeId;
+ // light.IasDeviceType = dimmableLight.DeviceInfo.DeviceType;
+ // light.Profile = dimmableLight.DeviceInfo.Profile;
+ // light.InClusterList = dimmableLight.DeviceInfo.InClusterList;
+ // light.OutClusterList = dimmableLight.DeviceInfo.OutClusterList;
+ // light.AttributeStatus = dimmableLight.DeviceInfo.AttributeStatus;
+ // //dimmableLight.ReSave();
+ // }
+ // DebugPrintLog($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{ topic}");
+
+ // break;
+ //case DeviceType.OnOffSwitch:
+ // var panel = new Panel() { Time = jobject.Value<int>("Time"), DeviceID = jobject.Value<int>("Device_ID"), DeviceAddr = jobject.Value<string>("DeviceAddr"), DeviceEpoint = jobject.Value<int>("Epoint"), DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = this.getGatewayBaseInfo?.gwID };
+ // panel.DeviceInfo = Newtonsoft.Json.JsonConvert.DeserializeObject<Panel.DeviceInfoData>(jobject["Data"].ToString());
+ // if (panel.DeviceInfo == null)
+ // {
+ // return;
+ // }
+ // var panelInfo = DeviceList.Find(obj => obj.DeviceID == panel.DeviceID && obj.DeviceAddr == panel.DeviceAddr && obj.DeviceEpoint == panel.DeviceEpoint);
+ // if (panelInfo == null)
+ // {
+ // DeviceList.Add(panel);
+ // panel.DeviceName = panel.DeviceInfo.MacName;
+ // panel.DeviceEpointName = panel.DeviceInfo.DeviceName;
+ // panel.ImgTypeId = panel.DeviceInfo.ImgTypeId;
+ // panel.ImgVersion = panel.DeviceInfo.ImgVersion;
+ // panel.HwVersion = panel.DeviceInfo.HwVersion;
+ // panel.IasDeviceType = panel.DeviceInfo.DeviceType;
+ // panel.IsOnline = panel.DeviceInfo.IsOnline;
+ // panel.DriveCode = panel.DeviceInfo.DriveCode;
+ // panel.Profile = panel.DeviceInfo.Profile;
+ // panel.InClusterList = panel.DeviceInfo.InClusterList;
+ // panel.OutClusterList = panel.DeviceInfo.OutClusterList;
+ // panel.AttributeStatus = panel.DeviceInfo.AttributeStatus;
+ // //panel.Save();
+ // }
+ // else
+ // {
+ // panelInfo.DeviceInfo = panel.DeviceInfo;
+ // panelInfo.DeviceName = panel.DeviceInfo.MacName;
+ // panelInfo.DeviceEpointName = panel.DeviceInfo.DeviceName;
+ // panelInfo.ImgVersion = panel.DeviceInfo.ImgVersion;
+ // panelInfo.HwVersion = panel.DeviceInfo.HwVersion;
+ // panelInfo.IsOnline = panel.DeviceInfo.IsOnline;
+ // panelInfo.DriveCode = panel.DeviceInfo.DriveCode;
+ // panelInfo.IasDeviceType = panel.DeviceInfo.DeviceType;
+ // panelInfo.Profile = panel.DeviceInfo.Profile;
+ // panelInfo.ImgTypeId = panel.DeviceInfo.ImgTypeId;
+ // panelInfo.InClusterList = panel.DeviceInfo.InClusterList;
+ // panelInfo.OutClusterList = panel.DeviceInfo.OutClusterList;
+ // panelInfo.AttributeStatus = panel.DeviceInfo.AttributeStatus;
+ // //panel.ReSave();
+ // }
+ // DebugPrintLog($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{ topic}");
+
+ // break;
+ //case DeviceType.OnOffOutput:
+ // var toggleLight = new ToggleLight() { Time = jobject.Value<int>("Time"), DeviceID = jobject.Value<int>("Device_ID"), DeviceAddr = jobject.Value<string>("DeviceAddr"), DeviceEpoint = jobject.Value<int>("Epoint"), DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = this.getGatewayBaseInfo?.gwID };
+ // toggleLight.DeviceInfo = Newtonsoft.Json.JsonConvert.DeserializeObject<ToggleLight.DeviceInfoData>(jobject["Data"].ToString());
+ // if (toggleLight.DeviceInfo == null)
+ // {
+ // return;
+ // }
+ // var toggleLightInfo = DeviceList.Find(obj => obj.DeviceID == toggleLight.DeviceID && obj.DeviceAddr == toggleLight.DeviceAddr && obj.DeviceEpoint == toggleLight.DeviceEpoint);
+ // if (toggleLightInfo == null)
+ // {
+ // DeviceList.Add(toggleLight);
+ // toggleLight.DeviceName = toggleLight.DeviceInfo.MacName;
+ // toggleLight.DeviceEpointName = toggleLight.DeviceInfo.DeviceName;
+ // toggleLight.ImgVersion = toggleLight.DeviceInfo.ImgVersion;
+ // toggleLight.HwVersion = toggleLight.DeviceInfo.HwVersion;
+ // toggleLight.IsOnline = toggleLight.DeviceInfo.IsOnline;
+ // toggleLight.DriveCode = toggleLight.DeviceInfo.DriveCode;
+ // toggleLight.IasDeviceType = toggleLight.DeviceInfo.DeviceType;
+ // toggleLight.Profile = toggleLight.DeviceInfo.Profile;
+ // toggleLight.ImgTypeId = toggleLight.DeviceInfo.ImgTypeId;
+ // toggleLight.InClusterList = toggleLight.DeviceInfo.InClusterList;
+ // toggleLight.OutClusterList = toggleLight.DeviceInfo.OutClusterList;
+ // toggleLight.AttributeStatus = toggleLight.DeviceInfo.AttributeStatus;
+ // //toggleLight.Save();
+ // }
+ // else
+ // {
+ // toggleLightInfo.DeviceName = toggleLight.DeviceInfo.MacName;
+ // toggleLightInfo.DeviceEpointName = toggleLight.DeviceInfo.DeviceName;
+ // toggleLightInfo.ImgVersion = toggleLight.DeviceInfo.ImgVersion;
+ // toggleLightInfo.HwVersion = toggleLight.DeviceInfo.HwVersion;
+ // toggleLightInfo.IsOnline = toggleLight.DeviceInfo.IsOnline;
+ // toggleLightInfo.DriveCode = toggleLight.DeviceInfo.DriveCode;
+ // toggleLightInfo.IasDeviceType = toggleLight.DeviceInfo.DeviceType;
+ // toggleLightInfo.Profile = toggleLight.DeviceInfo.Profile;
+ // toggleLightInfo.ImgTypeId = toggleLight.DeviceInfo.ImgTypeId;
+ // toggleLightInfo.InClusterList = toggleLight.DeviceInfo.InClusterList;
+ // toggleLightInfo.OutClusterList = toggleLight.DeviceInfo.OutClusterList;
+ // toggleLightInfo.AttributeStatus = toggleLight.DeviceInfo.AttributeStatus;
+ // toggleLightInfo.DeviceInfo = toggleLight.DeviceInfo;
+ // //toggleLightInfo.ReSave();
+ // }
+ // DebugPrintLog($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{ topic}");
+
+ // break;
+ //case DeviceType.AirSwitch:
+ // var airSwitch = new AirSwitch() { Time = jobject.Value<int>("Time"), DeviceID = jobject.Value<int>("Device_ID"), DeviceAddr = jobject.Value<string>("DeviceAddr"), DeviceEpoint = jobject.Value<int>("Epoint"), DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = this.getGatewayBaseInfo?.gwID };
+ // airSwitch.DeviceInfo = Newtonsoft.Json.JsonConvert.DeserializeObject<AirSwitch.DeviceInfoData>(jobject["Data"].ToString());
+ // if (airSwitch.DeviceInfo == null)
+ // {
+ // return;
+ // }
+ // var airSwitchInfo = DeviceList.Find(obj => obj.DeviceID == airSwitch.DeviceID && obj.DeviceAddr == airSwitch.DeviceAddr && obj.DeviceEpoint == airSwitch.DeviceEpoint);
+ // if (airSwitchInfo == null)
+ // {
+ // DeviceList.Add(airSwitch);
+ // airSwitch.DeviceName = airSwitch.DeviceInfo.MacName;
+ // airSwitch.DeviceEpointName = airSwitch.DeviceInfo.DeviceName;
+ // airSwitch.ImgVersion = airSwitch.DeviceInfo.ImgVersion;
+ // airSwitch.HwVersion = airSwitch.DeviceInfo.HwVersion;
+ // airSwitch.IsOnline = airSwitch.DeviceInfo.IsOnline;
+ // airSwitch.DriveCode = airSwitch.DeviceInfo.DriveCode;
+ // airSwitch.IasDeviceType = airSwitch.DeviceInfo.DeviceType;
+ // airSwitch.Profile = airSwitch.DeviceInfo.Profile;
+ // airSwitch.ImgTypeId = airSwitch.DeviceInfo.ImgTypeId;
+ // airSwitch.InClusterList = airSwitch.DeviceInfo.InClusterList;
+ // airSwitch.OutClusterList = airSwitch.DeviceInfo.OutClusterList;
+ // airSwitch.AttributeStatus = airSwitch.DeviceInfo.AttributeStatus;
+ // //airSwitch.Save();
+ // }
+ // else
+ // {
+ // airSwitchInfo.DeviceName = airSwitch.DeviceInfo.MacName;
+ // airSwitchInfo.DeviceEpointName = airSwitch.DeviceInfo.DeviceName;
+ // airSwitchInfo.ImgVersion = airSwitch.DeviceInfo.ImgVersion;
+ // airSwitchInfo.HwVersion = airSwitch.DeviceInfo.HwVersion;
+ // airSwitchInfo.IsOnline = airSwitch.DeviceInfo.IsOnline;
+ // airSwitchInfo.DriveCode = airSwitch.DeviceInfo.DriveCode;
+ // airSwitchInfo.IasDeviceType = airSwitch.DeviceInfo.DeviceType;
+ // airSwitchInfo.Profile = airSwitch.DeviceInfo.Profile;
+ // airSwitchInfo.ImgTypeId = airSwitch.DeviceInfo.ImgTypeId;
+ // airSwitchInfo.InClusterList = airSwitch.DeviceInfo.InClusterList;
+ // airSwitchInfo.OutClusterList = airSwitch.DeviceInfo.OutClusterList;
+ // airSwitchInfo.AttributeStatus = airSwitch.DeviceInfo.AttributeStatus;
+ // airSwitchInfo.DeviceInfo = airSwitch.DeviceInfo;
+ // // airSwitchInfo.ReSave();
+ // }
+ // DebugPrintLog($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{ topic}");
+
+ // break;
+ //case DeviceType.WindowCoveringDevice:
+ // var windowCovering = new Rollershade() { DeviceID = jobject.Value<int>((object)"Device_ID"), DeviceAddr = jobject.Value<string>((object)"DeviceAddr"), DeviceEpoint = jobject.Value<int>((object)"Epoint"), DataID = jobject.Value<int>((object)"Data_ID"), CurrentGateWayId = this.getGatewayBaseInfo?.gwID };
+ // windowCovering.DeviceInfo = Newtonsoft.Json.JsonConvert.DeserializeObject<Rollershade.DeviceInfoData>(jobject["Data"].ToString());
+ // if (windowCovering.DeviceInfo == null)
+ // {
+ // return;
+ // }
+ // var wc = DeviceList.Find(obj => obj.DeviceID == windowCovering.DeviceID && obj.DeviceAddr == windowCovering.DeviceAddr && obj.DeviceEpoint == windowCovering.DeviceEpoint);
+ // if (wc == null)
+ // {
+ // DeviceList.Add(windowCovering);
+ // windowCovering.DeviceName = windowCovering.DeviceInfo.MacName;
+ // windowCovering.DeviceEpointName = windowCovering.DeviceInfo.DeviceName;
+ // windowCovering.ImgVersion = windowCovering.DeviceInfo.ImgVersion;
+ // windowCovering.HwVersion = windowCovering.DeviceInfo.HwVersion;
+ // windowCovering.IsOnline = windowCovering.DeviceInfo.IsOnline;
+ // windowCovering.DriveCode = windowCovering.DeviceInfo.DriveCode;
+ // windowCovering.IasDeviceType = windowCovering.DeviceInfo.DeviceType;
+ // windowCovering.Profile = windowCovering.DeviceInfo.Profile;
+ // windowCovering.ImgTypeId = windowCovering.DeviceInfo.ImgTypeId;
+ // windowCovering.InClusterList = windowCovering.DeviceInfo.InClusterList;
+ // windowCovering.OutClusterList = windowCovering.DeviceInfo.OutClusterList;
+ // windowCovering.AttributeStatus = windowCovering.DeviceInfo.AttributeStatus;
+ // //windowCovering.Save();
+ // }
+ // else
+ // {
+ // wc.DeviceName = windowCovering.DeviceInfo.MacName;
+ // wc.DeviceEpointName = windowCovering.DeviceInfo.DeviceName;
+ // wc.DeviceInfo = windowCovering.DeviceInfo;
+ // wc.ImgVersion = windowCovering.DeviceInfo.ImgVersion;
+ // wc.HwVersion = windowCovering.DeviceInfo.HwVersion;
+ // wc.IsOnline = windowCovering.DeviceInfo.IsOnline;
+ // wc.DriveCode = windowCovering.DeviceInfo.DriveCode;
+ // wc.IasDeviceType = windowCovering.DeviceInfo.DeviceType;
+ // wc.Profile = windowCovering.DeviceInfo.Profile;
+ // wc.ImgTypeId = windowCovering.DeviceInfo.ImgTypeId;
+ // wc.InClusterList = windowCovering.DeviceInfo.InClusterList;
+ // wc.OutClusterList = windowCovering.DeviceInfo.OutClusterList;
+ // wc.AttributeStatus = windowCovering.DeviceInfo.AttributeStatus;
+ // // wc.ReSave();
+ // }
+ // DebugPrintLog($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{ topic}");
+ // break;
+ //case DeviceType.IASZone:
+ // var ias = new IASZone() { Time = jobject.Value<int>("Time"), DeviceID = jobject.Value<int>("Device_ID"), DeviceAddr = jobject.Value<string>("DeviceAddr"), DeviceEpoint = jobject.Value<int>("Epoint"), DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = this.getGatewayBaseInfo?.gwID };
+ // ias.DeviceInfo = Newtonsoft.Json.JsonConvert.DeserializeObject<IASZone.DeviceInfoData>(jobject["Data"].ToString());
+ // if (ias.DeviceInfo == null)
+ // {
+ // return;
+ // }
+ // var infoIAS = DeviceList.Find(obj => obj.DeviceID == ias.DeviceID && obj.DeviceAddr == ias.DeviceAddr && obj.DeviceEpoint == ias.DeviceEpoint);
+ // if (infoIAS == null)
+ // {
+ // DeviceList.Add(ias);
+ // ias.DeviceName = ias.DeviceInfo.MacName;
+ // ias.DeviceEpointName = ias.DeviceInfo.DeviceName;
+ // ias.ImgVersion = ias.DeviceInfo.ImgVersion;
+ // ias.HwVersion = ias.DeviceInfo.HwVersion;
+ // ias.IsOnline = ias.DeviceInfo.IsOnline;
+ // ias.DriveCode = ias.DeviceInfo.DriveCode;
+ // ias.IasDeviceType = ias.DeviceInfo.DeviceType;
+ // ias.Profile = ias.DeviceInfo.Profile;
+ // ias.ImgTypeId = ias.DeviceInfo.ImgTypeId;
+ // ias.InClusterList = ias.DeviceInfo.InClusterList;
+ // ias.OutClusterList = ias.DeviceInfo.OutClusterList;
+ // ias.AttributeStatus = ias.DeviceInfo.AttributeStatus;
+ // //ias.Save();
+ // }
+ // else
+ // {
+ // infoIAS.DeviceName = ias.DeviceInfo.MacName;
+ // infoIAS.DeviceEpointName = ias.DeviceInfo.DeviceName;
+ // infoIAS.DeviceEpointName = ias.DeviceInfo.DeviceName;
+ // infoIAS.ImgVersion = ias.DeviceInfo.ImgVersion;
+ // infoIAS.HwVersion = ias.DeviceInfo.HwVersion;
+ // infoIAS.IsOnline = ias.DeviceInfo.IsOnline;
+ // infoIAS.DriveCode = ias.DeviceInfo.DriveCode;
+ // infoIAS.IasDeviceType = ias.DeviceInfo.DeviceType;
+ // infoIAS.Profile = ias.DeviceInfo.Profile;
+ // infoIAS.ImgTypeId = ias.DeviceInfo.ImgTypeId;
+ // infoIAS.InClusterList = ias.DeviceInfo.InClusterList;
+ // infoIAS.OutClusterList = ias.DeviceInfo.OutClusterList;
+ // infoIAS.AttributeStatus = ias.DeviceInfo.AttributeStatus;
+ // infoIAS.DeviceInfo = ias.DeviceInfo;
+ // //ias.ReSave();
+ // }
+ // DebugPrintLog($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{ topic}");
+ // break;
+ //case DeviceType.OtaDevice:
+ //case DeviceType.OtaPanelDevice:
+ //var ota = new OTADevice() { Time = jobject.Value<int>("Time"), DeviceID = jobject.Value<int>("Device_ID"), DeviceAddr = jobject.Value<string>("DeviceAddr"), DeviceEpoint = jobject.Value<int>("Epoint"), DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = this.getGatewayBaseInfo?.gwID };
+ //ota.DeviceInfo = Newtonsoft.Json.JsonConvert.DeserializeObject<DeviceInfoData>(jobject["Data"].ToString());
+ //if (ota.DeviceInfo == null)
+ //{
+ // return;
+ //}
+ //var infoOta = DeviceList.Find(obj => obj.DeviceID == ota.DeviceID && obj.DeviceAddr == ota.DeviceAddr && obj.DeviceEpoint == ota.DeviceEpoint);
+ //if (infoOta == null)
+ //{
+ // DeviceList.Add(ota);
+ // ota.DeviceName = ota.DeviceInfo.MacName;
+ // ota.DeviceEpointName = ota.DeviceInfo.DeviceName;
+ // ota.ImgVersion = ota.DeviceInfo.ImgVersion;
+ // ota.HwVersion = ota.DeviceInfo.HwVersion;
+ // ota.IsOnline = ota.DeviceInfo.IsOnline;
+ // ota.DriveCode = ota.DeviceInfo.DriveCode;
+ // ota.IasDeviceType = ota.DeviceInfo.DeviceType;
+ // ota.Profile = ota.DeviceInfo.Profile;
+ // ota.ImgTypeId = ota.DeviceInfo.ImgTypeId;
+ // ota.InClusterList = ota.DeviceInfo.InClusterList;
+ // ota.OutClusterList = ota.DeviceInfo.OutClusterList;
+ // ota.AttributeStatus = ota.DeviceInfo.AttributeStatus;
+ // //ota.Save();
+ //}
+ //else
+ //{
+ // infoOta.DeviceName = ota.DeviceInfo.MacName;
+ // infoOta.DeviceEpointName = ota.DeviceInfo.DeviceName;
+ // infoOta.DeviceEpointName = ota.DeviceInfo.DeviceName;
+ // infoOta.ImgVersion = ota.DeviceInfo.ImgVersion;
+ // infoOta.HwVersion = ota.DeviceInfo.HwVersion;
+ // infoOta.IsOnline = ota.DeviceInfo.IsOnline;
+ // infoOta.DriveCode = ota.DeviceInfo.DriveCode;
+ // infoOta.IasDeviceType = ota.DeviceInfo.DeviceType;
+ // infoOta.Profile = ota.DeviceInfo.Profile;
+ // infoOta.ImgTypeId = ota.DeviceInfo.ImgTypeId;
+ // infoOta.InClusterList = ota.DeviceInfo.InClusterList;
+ // infoOta.OutClusterList = ota.DeviceInfo.OutClusterList;
+ // infoOta.AttributeStatus = ota.DeviceInfo.AttributeStatus;
+ // infoOta.DeviceInfo = ota.DeviceInfo;
+ // //ota.ReSave();
+ //}
+ //DebugPrintLog($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{ topic}");
+ //break;
+ //case DeviceType.Thermostat:
+ //var thermostat = new ThermostatObj() { 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 };
+ //thermostat.DeviceInfo = Newtonsoft.Json.JsonConvert.DeserializeObject<ThermostatObj.DeviceInfoData>(jobject["Data"].ToString());
+ //if (thermostat.DeviceInfo == null)
+ //{
+ // return;
+ //}
+ //var ther = gateway.DeviceList.Find(obj => obj.DeviceID == thermostat.DeviceID && obj.DeviceAddr == thermostat.DeviceAddr && obj.DeviceEpoint == thermostat.DeviceEpoint);
+ //if (ther == null)
+ //{
+ // gateway.DeviceList.Add(thermostat);
+ // thermostat.DeviceName = thermostat.DeviceInfo.DeviceName;
+ // IO.LocalFileUtils.SaveDeviceInfo(thermostat, thermostat.DeviceEpoint.ToString());
+ //}
+ //else
+ //{
+ // ther.DeviceName = thermostat.DeviceInfo.DeviceName;
+ // ther.DeviceInfo = thermostat.DeviceInfo;
+ // ZigBee.IO.LocalFileUtils.SaveDeviceInfo(ther, ther.DeviceEpoint.ToString());
+ //}
+ //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.getGatewayBaseInfo.gwID };
+ //temperatureSensor.DeviceInfo = Newtonsoft.Json.JsonConvert.DeserializeObject<TemperatureSensor.DeviceInfoData>(jobject["Data"].ToString());
+ //if (temperatureSensor.DeviceInfo == null)
+ //{
+ // return;
+ //}
+ //var ts = gateway.DeviceList.Find(obj => obj.DeviceID == temperatureSensor.DeviceID && obj.DeviceAddr == temperatureSensor.DeviceAddr && obj.DeviceEpoint == temperatureSensor.DeviceEpoint);
+ //if (ts == null)
+ //{
+ // gateway.DeviceList.Add(temperatureSensor);
+ // temperatureSensor.DeviceName = temperatureSensor.DeviceInfo.DeviceName;
+ // IO.LocalFileUtils.SaveDeviceInfo(temperatureSensor, temperatureSensor.DeviceEpoint.ToString());
+ //}
+ //else
+ //{
+ // ts.DeviceName = temperatureSensor.DeviceInfo.DeviceName;
+ // ts.DeviceInfo = temperatureSensor.DeviceInfo;
+ // IO.LocalFileUtils.SaveDeviceInfo(ts, ts.DeviceEpoint.ToString());
+ //}
+ //break;
+
}
}
else if (topic == gatewayID + "/" + "DeviceInfoResponEnd")
@@ -1648,9 +1648,9 @@
///<para>Result2锛氭暟鎹В鏋愰敊璇�</para>
///<para>Result3锛氬彂閫佹暟鎹ぇ灏忚秴鍑洪檺鍒�</para>
/// </summary>
- public async System.Threading.Tasks.Task<Panel.PanelSwitchLevelInfo> ClientDataPassthroughBytesAsync(string deviceAddr, int devicePoint,long dataLength, byte[] passData)
+ public async System.Threading.Tasks.Task<Panel.PanelSwitchLevelInfo> ClientDataPassthroughBytesAsync(string deviceAddr, int devicePoint, long dataLength, byte[] passData)
{
- Panel.PanelSwitchLevelInfo result = null;
+ Panel.PanelSwitchLevelInfo result = null;
if (Gateway == null)
{
result = new Panel.PanelSwitchLevelInfo { errorMessageBase = "褰撳墠娌℃湁缃戝叧" };
@@ -1720,10 +1720,10 @@
sendDataBytes[1] = Convert.ToByte(devicePoint);
//璁惧mac鍦板潃锛屽皬绔粨鏋�,8涓猙ytes
//var addrAllBytes = new byte[8];
- int j=0;
+ int j = 0;
for (int i = 14; i >= 0; i = i - 2)
{
- var curByte= deviceAddr.Substring(i, 2); //00 0d 6f ff fe 04 51 52
+ var curByte = deviceAddr.Substring(i, 2); //00 0d 6f ff fe 04 51 52
sendDataBytes[2 + j] = Convert.ToByte(string.Format("0x{0}", curByte), 16);
j++;
@@ -2455,7 +2455,7 @@
var gateway = new ZbGateway() { DataID = jobject.Value<int>("Data_ID") };
var result = Newtonsoft.Json.JsonConvert.DeserializeObject<int>(jobject["Data"]["Result"].ToString());
dataRes = new SendFileResponseAllData { Result = result };
- if(result ==0)
+ if (result == 0)
{
isRespond = true;
}
@@ -2476,7 +2476,7 @@
{
if (WaitReceiveDataTime < (DateTime.Now - dateTime).TotalMilliseconds)
{
- return new SendFileResponseAllData { errorMessageBase = "鍥炲瓒呮椂锛岃閲嶆柊鎿嶄綔" }; ;
+ return new SendFileResponseAllData { errorMessageBase = "鍥炲瓒呮椂锛岃閲嶆柊鎿嶄綔" }; ;
}
await System.Threading.Tasks.Task.Delay(10);
}
@@ -2513,7 +2513,8 @@
}
}
catch { }
- finally{
+ finally
+ {
Actions -= action;
}
DebugPrintLog("Security/ChangeAdminPassword_Actions 閫�鍑�" + System.DateTime.Now.ToString());
@@ -2723,7 +2724,7 @@
if (tempData.Result == 0)
{
ZbGateway.byteSource.Clear();
- }
+ }
tempDa.Result = tempData.Result;
dataRes.setDownloadFileResponseData = tempDa;
DebugPrintLog($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{ topic}");
@@ -3085,11 +3086,11 @@
/// <summary>
/// 灞�鍩熺綉鐨凪QTT鏄惁姝e湪杩炴帴
/// </summary>
- object mqttIsConnecting=false.ToString();
+ object mqttIsConnecting = false.ToString();
public async System.Threading.Tasks.Task StartLocalMqtt(string brokerName)
{
- await System.Threading.Tasks.Task.Factory.StartNew(async() =>
+ await System.Threading.Tasks.Task.Factory.StartNew(async () =>
{
try
{
@@ -3121,29 +3122,29 @@
DebugPrintLog($" 鏈湴杩炴帴鏂紑_缃戝叧IP:{brokerName}_缃戝叧鏄惁鍔�:{IsEncry}_{System.DateTime.Now.ToString()}");
#endif
};
- mqttClient.Connected += async (sender, e) =>
- {
+ mqttClient.Connected += async (sender, e) =>
+ {
#if DEBUG
- DebugPrintLog($" 鏈湴杩炴帴鎴愬姛_缃戝叧IP:{brokerName}_缃戝叧鏄惁鍔�:{IsEncry}_褰撳墠瀵嗙爜:{Password}_{System.DateTime.Now.ToString()}");
+ DebugPrintLog($" 鏈湴杩炴帴鎴愬姛_缃戝叧IP:{brokerName}_缃戝叧鏄惁鍔�:{IsEncry}_褰撳墠瀵嗙爜:{Password}_{System.DateTime.Now.ToString()}");
#endif
-
- //if (PubKey != null)
- //{
- // var rsaString = ZigBee.Common.SecuritySet.RSAEncrypt(PubKey, Password);
- // var resultVerityfy = await SendAesKeyAsync(rsaString);
- // if (resultVerityfy == null)
- // {
- // resultVerityfy = await SendAesKeyAsync(rsaString);
- // }
- // if (resultVerityfy != null && resultVerityfy.Result == 0)
- // {
- // IsEncry = true;
- // }
- //}
- Shared.Common.LocalGateway.Current.CheckGatewayByConnectChanged(Shared.Phone.UserCenter.GatewayConnectMode.WIFI);
- System.Console.WriteLine($"褰撳墠鏄綉鍏砏i-Fi鍦ㄩ�氳_{System.DateTime.Now.ToString()}");
-
- };
+
+ if (PubKey != null)
+ {
+ var rsaString = ZigBee.Common.SecuritySet.RSAEncrypt(PubKey, Password);
+ var resultVerityfy = await SendAesKeyAsync(rsaString);
+ if (resultVerityfy == null)
+ {
+ resultVerityfy = await SendAesKeyAsync(rsaString);
+ }
+ if (resultVerityfy != null && resultVerityfy.Result == 0)
+ {
+ IsEncry = true;
+ }
+ }
+ Shared.Phone.UserCenter.HdlGatewayLogic.Current.CheckGatewayByConnectChanged(Shared.Phone.UserCenter.GatewayConnectMode.WIFI);
+ System.Console.WriteLine($"褰撳墠鏄綉鍏砏i-Fi鍦ㄩ�氳_{System.DateTime.Now.ToString()}");
+
+ };
}
if (RemoteMqttClient != null && RemoteMqttClient.IsConnected == true)
@@ -3166,8 +3167,8 @@
CleanSession = true,// 璁剧疆鏄惁娓呯┖session,杩欓噷濡傛灉璁剧疆涓篺alse琛ㄧず鏈嶅姟鍣ㄤ細淇濈暀瀹㈡埛绔殑杩炴帴璁板綍锛岃繖閲岃缃负true琛ㄧず姣忔杩炴帴鍒版湇鍔″櫒閮戒互鏂扮殑韬唤杩炴帴
KeepAlivePeriod = new TimeSpan(0, 5, 0),//璁剧疆蹇冭烦鏃堕棿锛堟渶澶у�硷紝2^16-1 = 65535绉� = 18灏忔椂銆傛渶灏忓�煎彲浠ヤ负0锛岃〃绀哄鎴风涓嶆柇寮�銆備竴鑸涓哄嚑鍒嗛挓锛屾瘮濡傚井淇″績璺冲懆鏈熶负300绉掋�傦級
DefaultCommunicationTimeout = new TimeSpan(0, 0, 100),//璁剧疆瓒呮椂鏃堕棿
- };
- await mqttClient.ConnectAsync(connectCloudMqttClientOptions);
+ };
+ await mqttClient.ConnectAsync(connectCloudMqttClientOptions);
}
catch (Exception ex)
{
@@ -3204,7 +3205,7 @@
{
try
{
- if (remoteMqttIsConnecting)
+ if (remoteMqttIsConnecting || Shared.Common.Config.Instance.HomeId == "")
{
return;
}
@@ -3213,6 +3214,7 @@
var url = Shared.Common.Config.Instance.ZigbeeMqttBrokerLoadSubDomain;//.Replace("6688","6689");
if (string.IsNullOrEmpty(url) || !url.StartsWith("tcp://") || url.Split(':').Length != 3)
{
+ remoteMqttIsConnecting = false;
return;
}
if (RemoteMqttClient == null)
@@ -3235,42 +3237,42 @@
#endif
};
RemoteMqttClient.Connected += async (sender, e) =>
- {
+ {
#if DEBUG
- DebugPrintLog($"杩滅▼杩炴帴鎴愬姛_{System.DateTime.Now.ToString()}");
+ DebugPrintLog($"杩滅▼杩炴帴鎴愬姛_{System.DateTime.Now.ToString()}");
#endif
- Shared.Common.LocalGateway.Current.CheckGatewayByConnectChanged(Shared.Phone.UserCenter.GatewayConnectMode.Remote);
- //娌℃湁涓荤綉鍏虫椂涓诲姩璇诲彇锛岃幏鍙栦富缃戝叧淇℃伅
- var gateWayList = GateWayList.FindAll(obj => obj.getGatewayBaseInfo.HomeId == Shared.Common.Config.Instance.HomeId);
- if (gateWayList.Find(obj => obj.getGatewayBaseInfo.IsMainGateWay == true) == null)
- {
- if (gateWayList.Count == 1)
- {
- gateWayList[0].getGatewayBaseInfo.IsMainGateWay = true;
- }
- else
- {
- for (int i = 0; i < gateWayList.Count; i++)
- {
- var gateWay = gateWayList[i];
- var info = await gateWay.GetZbGwInfoAsync();
- if (info == null || info.getGwData == null)
- {
- continue;
- }
- if (info.getGwData.IsDominant == 1)
- {
- gateWay.getGatewayBaseInfo.IsMainGateWay = true;
- for (int j = i + 1; j < gateWayList.Count; j++)
- {
- gateWayList[j].getGatewayBaseInfo.IsMainGateWay = false;
- }
- break;
- }
- }
- }
- }
- };
+ Shared.Phone.UserCenter.HdlGatewayLogic.Current.CheckGatewayByConnectChanged(Shared.Phone.UserCenter.GatewayConnectMode.Remote);
+ //娌℃湁涓荤綉鍏虫椂涓诲姩璇诲彇锛岃幏鍙栦富缃戝叧淇℃伅
+ var gateWayList = GateWayList.FindAll(obj => obj.getGatewayBaseInfo.HomeId == Shared.Common.Config.Instance.HomeId);
+ if (gateWayList.Find(obj => obj.getGatewayBaseInfo.IsMainGateWay == true) == null)
+ {
+ if (gateWayList.Count == 1)
+ {
+ gateWayList[0].getGatewayBaseInfo.IsMainGateWay = true;
+ }
+ else
+ {
+ for (int i = 0; i < gateWayList.Count; i++)
+ {
+ var gateWay = gateWayList[i];
+ var info = await gateWay.GetZbGwInfoAsync();
+ if (info == null || info.getGwData == null)
+ {
+ continue;
+ }
+ if (info.getGwData.IsDominant == 1)
+ {
+ gateWay.getGatewayBaseInfo.IsMainGateWay = true;
+ for (int j = i + 1; j < gateWayList.Count; j++)
+ {
+ gateWayList[j].getGatewayBaseInfo.IsMainGateWay = false;
+ }
+ break;
+ }
+ }
+ }
+ }
+ };
}
if (RemoteMqttClient.IsConnected)
@@ -3300,7 +3302,7 @@
//杩樻湁绉嶆儏鍐垫槸鍚屼竴涓狪D 鏈夊涓澶囩敤杩欎釜id杩炴帴锛堜細瀵艰嚧涓柇锛�
string clientId = Shared.Common.Config.Instance.ConnectZigbeeMqttClientId;
- string username = Shared.Common.Config.Instance.ConnectZigbeeMqttBrokerName;
+ string username = Shared.Common.Config.Instance.ConnectGuid;
string passwordRemote = Shared.Common.Config.Instance.ConnectZigbeeMqttBrokerPwd;
//(1)杩炴帴鍒颁簯绔殑Mqtt瀹㈡埛绔繛鎺ュ弬鏁�
var connectCloudMqttClientOptions = new MqttClientTcpOptions
@@ -3314,7 +3316,9 @@
KeepAlivePeriod = new TimeSpan(0, 5, 0),//璁剧疆蹇冭烦鏃堕棿锛堟渶澶у�硷紝2^16-1 = 65535绉� = 18灏忔椂銆傛渶灏忓�煎彲浠ヤ负0锛岃〃绀哄鎴风涓嶆柇寮�銆備竴鑸涓哄嚑鍒嗛挓锛屾瘮濡傚井淇″績璺冲懆鏈熶负300绉掋�傦級
DefaultCommunicationTimeout = new TimeSpan(0, 0, 100),//璁剧疆瓒呮椂鏃堕棿
};
+ //杩滅▼閫氳杩炴帴锛岃繛鎺ヤ簯绔湇鍔″櫒
await RemoteMqttClient.ConnectAsync(connectCloudMqttClientOptions);
+
}
catch (Exception ex)
{
@@ -3381,15 +3385,16 @@
/// </summary>
async System.Threading.Tasks.Task SendRemoteMsg(string topicName, byte[] message, MQTTnet.Core.Protocol.MqttQualityOfServiceLevel qosLevel = MQTTnet.Core.Protocol.MqttQualityOfServiceLevel.ExactlyOnce, bool retain = false)
{
- #region MD5鍔犲瘑 token
- var result = System.Text.Encoding.UTF8.GetBytes(Shared.Common.Config.Instance.Password);
- var md5 = new System.Security.Cryptography.MD5CryptoServiceProvider();
- var output = md5.ComputeHash(result);
- var md5Password = BitConverter.ToString(output).Replace("-", "").ToUpper();
- #endregion
+ //#region MD5鍔犲瘑 token
+ //var result = System.Text.Encoding.UTF8.GetBytes(Shared.Common.Config.Instance.Password);
+ //var md5 = new System.Security.Cryptography.MD5CryptoServiceProvider();
+ //var output = md5.ComputeHash(result);
+ //var md5Password = BitConverter.ToString(output).Replace("-", "").ToUpper();
+ //#endregion
//(1)鐢熸垚[鐢ㄦ埛鍚�:瀵嗙爜]
- var userNameAndPwdStr = string.Concat(Shared.Common.Config.Instance.Account, RemoteOperatorConsts.CAP_NUMBER, md5Password);
+ var userNameAndPwdStr = string.Concat(Shared.Common.Config.Instance.Guid, RemoteOperatorConsts.CAP_NUMBER, Shared.Common.Config.Instance.MD5PWD);
+ DebugPrintLog($"userNameAndPwdStr锛歿userNameAndPwdStr} ");
//(2)灏�(1)杞垚Base64瀛楃涓�,鐢熸垚鏍煎紡[Base64(鐢ㄦ埛鍚�:瀵嗙爜)]
var userNameAndPwdStrBaseSexFour = Convert.ToBase64String(ZigBee.Common.CommonInfo.EncodingUTF8.GetBytes(userNameAndPwdStr));
@@ -3399,14 +3404,17 @@
///[Zigbee.Buspro]App/id(甯愬彿Id)/Base64(DES[Base64(鐢ㄦ埛鍚�:瀵嗙爜):Timestamp ]/缃戝叧鍞竴Id/杞彂缁欑綉鍏崇殑涓婚/XX/XX
//(4)鐢熸垚涓婃姤涓婚锛屼富棰樻ā寮忛渶瑕佷负 /ZigbeeApp/id(涓诲瓙璋冭瘯甯愬彿Id)/Base64(DES[Base64(鐢ㄦ埛鍚�:瀵嗙爜):Timestamp ]/缃戝叧鍞竴Id/topicName "000204022022" GateWayId 000204022022
- var reportTopic = string.Format("/{0}/{1}/{2}/{3}/{4}", RemoteOperatorConsts.ZIGBEE_APP_STARTS_WITH, Shared.Common.Config.Instance.Account, userNameAndPwdStrBaseSexFourAndTimestamp, this.getGatewayBaseInfo?.gwID, topicName);
+ var reportTopic = string.Format("/{0}/{1}/{2}/{3}/{4}", RemoteOperatorConsts.ZIGBEE_APP_STARTS_WITH, Shared.Common.Config.Instance.Guid, userNameAndPwdStrBaseSexFourAndTimestamp, this.getGatewayBaseInfo?.gwID, topicName);
+ var aa = System.Text.Encoding.UTF8.GetString(message);
+ DebugPrintLog($"AAAA鍙戦�佸埌浜戠涓婚鏄庢枃锛歿reportTopic}___BBBBB鍙戦�佸埌浜戠鍐呭鏄庢枃锛歿aa}");
- //(5)浣跨敤浣犵櫥褰曟垚鍔熸椂8浣峩ey锛岃繘琛孌ES鍔犲瘑浣犻渶瑕佷笂鎶ョ殑鏁版嵁
string topicEncStr = reportTopic;
//鏂囦欢娴佷笉鐢ㄥ姞瀵�
topicEncStr = ZigBee.Common.SecuritySet.AesEncrypt(System.Text.Encoding.UTF8.GetBytes(topicEncStr), Shared.Common.Config.Instance.MqttKey);
topicEncStr = topicEncStr.Replace("/", "[[$-MQTT_TILT_SYMBOL_REPLACE-$]]").Replace("+", "[[$-MQTT_PLUS_SYMBOL_REPLACE-$]]");
message = System.Text.Encoding.UTF8.GetBytes(SecuritySet.AesEncrypt(message, Shared.Common.Config.Instance.MqttKey));
+ var bb = System.Text.Encoding.UTF8.GetString(message);
+ DebugPrintLog($"CCCC鍙戦�佸埌浜戠涓婚绉樻枃锛歿topicEncStr}___DDDD鍙戦�佸埌浜戠鍐呭绉樻枃锛歿bb}");
//(6)鏋勫缓Mqtt闇�瑕佸彂甯冪殑鏁版嵁鍖�,鍙戝竷缁欎簯绔殑MqttBroker
await RemoteMqttClient.PublishAsync(new MQTTnet.Core.MqttApplicationMessage(topicEncStr, message, qosLevel, retain));
@@ -3424,12 +3432,18 @@
{
try
{
+ if (Shared.Common.Config.Instance.HomeId == "")
+ {
+ return;
+ }
+
if (IsRemote)
{
-#if DEBUG
- DebugPrintLog($"杩滅▼ 鈥斺�斿彂閫佸埌缃戝叧鐨勪富棰�:{topic}_鍙戦�佸埌缃戝叧鐨勬暟鎹�:{System.Text.Encoding.UTF8.GetString(message)}_褰撳墠缃戝叧{CurrentGateWayId}_{System.DateTime.Now.ToString()}");
-#endif
+
await SendRemoteMsg(topic, message, qosLevel, retain);
+#if DEBUG
+ DebugPrintLog($"杩滅▼ 鈥斺�斿彂閫佸埌缃戝叧鐨勪富棰�:{topic}_鍙戦�佸埌缃戝叧鐨勬暟鎹�:{System.Text.Encoding.UTF8.GetString(message)}_褰撳墠缃戝叧{CurrentGateWayId}_{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:fff")}");//{System.DateTime.Now.ToString()}");// DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:fff")
+#endif
}
else
{
@@ -3478,7 +3492,8 @@
/// <param name="retain"></param>
public async System.Threading.Tasks.Task Send(string topic, string message, MQTTnet.Core.Protocol.MqttQualityOfServiceLevel qosLevel = MQTTnet.Core.Protocol.MqttQualityOfServiceLevel.ExactlyOnce, bool retain = false)
{
- if(string.IsNullOrEmpty(message)){
+ if (string.IsNullOrEmpty(message))
+ {
return;
}
await Send(topic, System.Text.Encoding.UTF8.GetBytes(message), qosLevel, retain);
@@ -3509,6 +3524,15 @@
{
message = System.Text.Encoding.UTF8.GetString(e.ApplicationMessage.Payload);
}
+ else if (topic == "BeingSqueezedOffline")
+ {
+ //浜戠涓殑褰撳墠杩炴帴琚尋涓嬬嚎锛岄渶瑕侀�氱煡app
+ //鍏ㄥ眬鎺ユ敹缃戝叧鎺ㄩ�佺殑鐨勯�昏緫(涓轰簡鎵ц閫熷害,灏藉彲鑳界殑鍒姞鑰楁椂鐨勬搷浣�)
+ message = "BeingSqueezedOffline";
+ Shared.Phone.UserCenter.HdlGatewayReceiveLogic.GatewayOverallMsgReceive("", topic, null);
+ DebugPrintLog($"琚尋涓嬬嚎閫氱煡:{ topic}_杩滅▼杩斿洖鐨勬暟鎹甠{message}_{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:fff")}");//{System.DateTime.Now.ToString()}");// DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:fff")
+ return;
+ }
//閲嶆柊鐧诲綍:甯愬彿鎴栬�呭叡浜繛鎺ヤ腑鐨刐瀛愬笎鍙峰垎甯冨紡Id$Share$鍒嗗竷寮忎綇瀹匢d=XXX灏氭湭鐧诲綍,璇烽噸鏂扮櫥褰曞悗鍐嶈繛鎺ュ悗鍐嶈繘琛屽彂甯冩搷浣�,濡傛灉鎮ㄥ綋鍓嶆槸鍒汉鍏变韩缁欎綘鐨勮繛鎺�,鍒欒閲嶆柊璇锋眰鑾峰彇杩炴帴淇℃伅涓�涓�,鍐嶅垵濮嬪寲杩炴帴鍐嶆鍙戝竷杩滅▼鎺у埗鍗冲彲!!
else if (topic == "AppNoLogin")
{
@@ -3526,7 +3550,7 @@
}
}
#if DEBUG
- DebugPrintLog($"杩滅▼杩斿洖鐨勪富棰�:{ topic}_杩滅▼杩斿洖鐨勬暟鎹甠{message}_{System.DateTime.Now.ToString()}");
+ DebugPrintLog($"杩滅▼杩斿洖鐨勪富棰�:{ topic}_杩滅▼杩斿洖鐨勬暟鎹甠{message}_{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:fff")}");//{System.DateTime.Now.ToString()}");// DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:fff")
#endif
var cloudMqttResult = Newtonsoft.Json.JsonConvert.DeserializeObject<ZigBee.Common.CloudMqttResponsePack>(message);
if (cloudMqttResult != null)
@@ -3536,7 +3560,7 @@
RemoteTimeStamp = ulong.Parse(cloudMqttResult.CloudTimestamp);
LoginRemoteDateTime = System.DateTime.Now;
#if DEBUG
- DebugPrintLog($"杩滅▼杩斿洖涓婚:{topic}_褰撳墠鏃堕棿鎴�:_+{CurrentTimeStamp} + _+ {System.DateTime.Now.ToString()}");
+ DebugPrintLog($"杩滅▼杩斿洖涓婚:{topic}_褰撳墠鏃堕棿鎴�:_+{CurrentTimeStamp} + _+{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:fff")}");//{System.DateTime.Now.ToString()}");// DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:fff" // {System.DateTime.Now.ToString()}");
#endif
return;
}
@@ -3598,7 +3622,6 @@
{
var topic = e.ApplicationMessage.Topic;
var message = System.Text.Encoding.UTF8.GetString(e.ApplicationMessage.Payload);
- // DebugPrintLog($"缃戝叧杩斿洖鐨勪富棰橈紙绉樻枃锛�:{topic}_缃戝叧杩斿洖鐨勮礋杞斤紙绉樻枃锛�:{message}_{System.DateTime.Now.ToString()}");
if (IsEncry)
{
@@ -3645,12 +3668,13 @@
{
try
{
- if(string .IsNullOrEmpty(message))
+ if (string.IsNullOrEmpty(message))
{
- return;
+ message = "{}";
}
var gatewayID = topic.Split('/')[0];//缃戝叧杩斿洖鐨勭綉鍏矷D
- var reportStatus = topic.Split('/')[1];//涓婚涓鸿澶囦笂鎶ョ殑涓婚
+ var reportStatus = "";
+ reportStatus = topic.Split('/')[1];//涓婚涓鸿澶囦笂鎶ョ殑涓婚
string addr = "";//涓婃姤鐨勮澶嘺ddr
string epoint = "";//涓婃姤鐨勮澶噀point
string cluID = "";//涓婃姤鐨勮澶嘽luID
@@ -3700,6 +3724,9 @@
jobject = Newtonsoft.Json.Linq.JObject.Parse(message);
}
+ //鍏ㄥ眬鎺ユ敹缃戝叧鎺ㄩ�佺殑鐨勯�昏緫(涓轰簡鎵ц閫熷害,灏藉彲鑳界殑鍒姞鑰楁椂鐨勬搷浣�)
+ Shared.Phone.UserCenter.HdlGatewayReceiveLogic.GatewayOverallMsgReceive(gatewayID, topic, jobject);
+
#region 浜戠閫氱煡
var cloudMqttResult = Newtonsoft.Json.JsonConvert.DeserializeObject<ZigBee.Common.CloudMqttResponsePack>(message);
if (cloudMqttResult != null)
@@ -3711,7 +3738,9 @@
{
DebugPrintLog("AppNoLogin宸茬粡閫氱煡");
gwa.CloudErrorAction("AppNoLogin", "鐧诲綍杩囨湡锛岃閲嶆柊鐧诲綍");
- }
+ }
+ //鍏ㄥ眬鎺ユ敹缃戝叧鎺ㄩ�佺殑鐨勯�昏緫(涓轰簡鎵ц閫熷害,灏藉彲鑳界殑鍒姞鑰楁椂鐨勬搷浣�)
+ Shared.Phone.UserCenter.HdlGatewayReceiveLogic.GatewayOverallMsgReceive(gatewayID, "AppNoLogin", jobject);
break;
case "AppTimeOut":
if (gwa.CloudErrorAction != null)
@@ -3731,7 +3760,7 @@
}
#endregion
#region 杩滅▼,涓荤綉鍏充笂鎶ラ�氱煡
- if(IsRemote)
+ if (IsRemote)
{
if (topic == gatewayID + "/" + "BeMainGw_Report")
{
@@ -3796,344 +3825,43 @@
if (topic == gatewayID + "/" + "DeviceInComingRespon")
{
//鏂拌澶囦笂鎶ワ紝閲嶆柊鍙戣幏鍙栨墍鏈夌殑璁惧
- var deviceID = jobject.Value<int>("Device_ID");
- switch ((DeviceType)(deviceID))
- {
- 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 = gwa.getGatewayBaseInfo.gwID };
- dimmableLight.getNewDeviceInfo = Newtonsoft.Json.JsonConvert.DeserializeObject<DimmableLight.NewDeviceInfoData>(jobject["Data"].ToString());
- if (gwa.ReportAction != null)
- {
- DebugPrintLog("DeviceInComingRespon宸茬粡閫氱煡");
- gwa.ReportAction("DeviceInComingRespon", dimmableLight.getNewDeviceInfo);
- }
- UpdateDeviceInfo(dimmableLight, "DeviceInComingRespon");
- UpdateDeviceStatus(gwa);
- break;
- 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 = gwa.getGatewayBaseInfo.gwID };
- toggleLight.getNewDeviceInfo = Newtonsoft.Json.JsonConvert.DeserializeObject<ToggleLight.NewDeviceInfoData>(jobject["Data"].ToString());
- if (gwa.ReportAction != null)
- {
- DebugPrintLog("DeviceInComingRespon宸茬粡閫氱煡");
- gwa.ReportAction("DeviceInComingRespon", toggleLight.getNewDeviceInfo);
- }
- UpdateDeviceInfo(toggleLight, "DeviceInComingRespon");
- UpdateDeviceStatus(gwa);
- 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 = gwa.getGatewayBaseInfo.gwID };
- airSwitch.getNewDeviceInfo = Newtonsoft.Json.JsonConvert.DeserializeObject<AirSwitch.NewDeviceInfoData>(jobject["Data"].ToString());
- if (gwa.ReportAction != null)
- {
- DebugPrintLog("DeviceInComingRespon宸茬粡閫氱煡");
- gwa.ReportAction("DeviceInComingRespon", airSwitch.getNewDeviceInfo);
- }
- UpdateDeviceInfo(airSwitch, "DeviceInComingRespon");
- UpdateDeviceStatus(gwa);
- break;
- case DeviceType.OnOffSwitch:
- var panel = 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 = gwa.getGatewayBaseInfo.gwID };
- panel.getNewDeviceInfo = Newtonsoft.Json.JsonConvert.DeserializeObject<Panel.NewDeviceInfoData>(jobject["Data"].ToString());
- if (gwa.ReportAction != null)
- {
- DebugPrintLog("DeviceInComingRespon宸茬粡閫氱煡");
- gwa.ReportAction("DeviceInComingRespon", panel.getNewDeviceInfo);
- }
- UpdateDeviceInfo(panel, "DeviceInComingRespon");
- UpdateDeviceStatus(gwa);
- break;
- case DeviceType.WindowCoveringDevice:
- var curtain = 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 = gwa.getGatewayBaseInfo.gwID };
- curtain.getNewDeviceInfo = Newtonsoft.Json.JsonConvert.DeserializeObject<Rollershade.NewDeviceInfoData>(jobject["Data"].ToString());
- if (gwa.ReportAction != null)
- {
- DebugPrintLog("DeviceInComingRespon宸茬粡閫氱煡");
- gwa.ReportAction("DeviceInComingRespon", curtain.getNewDeviceInfo);
- }
- UpdateDeviceInfo(curtain, "DeviceInComingRespon");
- UpdateDeviceStatus(gwa);
- 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 = gwa.getGatewayBaseInfo.gwID };
- ias.getNewDeviceInfo = Newtonsoft.Json.JsonConvert.DeserializeObject<IASZone.NewDeviceInfoData>(jobject["Data"].ToString());
- if (gwa.ReportAction != null)
- {
- DebugPrintLog("DeviceInComingRespon宸茬粡閫氱煡");
- gwa.ReportAction("DeviceInComingRespon", ias.getNewDeviceInfo);
- }
- UpdateDeviceInfo(ias, "DeviceInComingRespon");
- UpdateDeviceStatus(gwa);
- 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 = gwa.getGatewayBaseInfo.gwID };
- repeater.getNewDeviceInfo = Newtonsoft.Json.JsonConvert.DeserializeObject<Repeater.NewDeviceInfoData>(jobject["Data"].ToString());
- if (gwa.ReportAction != null)
- {
- DebugPrintLog("DeviceInComingRespon宸茬粡閫氱煡");
- gwa.ReportAction("DeviceInComingRespon", repeater.getNewDeviceInfo);
- }
- UpdateDeviceInfo(repeater, "DeviceInComingRespon");
- UpdateDeviceStatus(gwa);
- 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 = gwa.getGatewayBaseInfo.gwID };
- ac.getNewDeviceInfo = Newtonsoft.Json.JsonConvert.DeserializeObject<AC.NewDeviceInfoData>(jobject["Data"].ToString());
- if (gwa.ReportAction != null)
- {
- DebugPrintLog("DeviceInComingRespon宸茬粡閫氱煡");
- gwa.ReportAction("DeviceInComingRespon", ac.getNewDeviceInfo);
- }
- UpdateDeviceInfo(ac, "DeviceInComingRespon");
- UpdateDeviceStatus(gwa);
- 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 = gwa.getGatewayBaseInfo.gwID };
- transverter.getNewDeviceInfo = Newtonsoft.Json.JsonConvert.DeserializeObject<Transverter.NewDeviceInfoData>(jobject["Data"].ToString());
- if (gwa.ReportAction != null)
- {
- DebugPrintLog("DeviceInComingRespon宸茬粡閫氱煡");
- gwa.ReportAction("DeviceInComingRespon", transverter.getNewDeviceInfo);
- }
- UpdateDeviceInfo(transverter, "DeviceInComingRespon");
- UpdateDeviceStatus(gwa);
- break;
- }
+ var tempDevice = new CommonDevice() { DeviceID = jobject.Value<int>("Device_ID"), DeviceAddr = jobject.Value<string>("DeviceAddr"), DeviceEpoint = jobject.Value<int>("Epoint"), DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = gwa.getGatewayBaseInfo.gwID };
+ tempDevice.getNewDeviceInfo = Newtonsoft.Json.JsonConvert.DeserializeObject<CommonDevice.NewDeviceInfoData>(jobject["Data"].ToString());
+ if (gwa.ReportAction != null)
+ {
+ DebugPrintLog("DeviceInComingRespon宸茬粡閫氱煡");
+ gwa.ReportAction("DeviceInComingRespon", tempDevice.getNewDeviceInfo);
+ }
+ UpdateDeviceInfo(tempDevice, "DeviceInComingRespon");
+ UpdateDeviceStatus(gwa);
}
#endregion
#region 璁惧鍦ㄧ嚎鐘舵�佹洿鏂板弽棣�
else if (topic == gatewayID + "/" + "OnlineStatusChange_Respon")
{
- var deviceID = jobject.Value<int>("Device_ID");
- switch ((DeviceType)(deviceID))
- {
- 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 = gwa.getGatewayBaseInfo.gwID };
- dimmableLight.IsOnline = Newtonsoft.Json.JsonConvert.DeserializeObject<int>(jobject["Data"]["IsOnline"].ToString());
-
- if (gwa.ReportAction != null)
- {
- DebugPrintLog("OnlineStatusChange宸茬粡閫氱煡");
- gwa.ReportAction("OnlineStatusChange", dimmableLight);
- }
- var lightDimmer = gwa.DeviceList.Find(obj => obj.DeviceID == dimmableLight.DeviceID && obj.DeviceAddr == dimmableLight.DeviceAddr);
- if (lightDimmer == null)
- {
- gwa.DeviceList.Add(dimmableLight);
- UpdateDeviceStatus(dimmableLight);
- UpdateDeviceInfo(dimmableLight, "OnlineStatusChange");
- }
- else
- {
- if (dimmableLight.DeviceInfo != null)
- {
- dimmableLight.DeviceInfo.IsOnline = dimmableLight.IsOnline;
- }
- UpdateDeviceInfo(dimmableLight, "OnlineStatusChange");
- UpdateDeviceStatus(dimmableLight);
- }
-
- break;
- 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 = gwa.getGatewayBaseInfo.gwID };
- toggleLight.IsOnline = Newtonsoft.Json.JsonConvert.DeserializeObject<int>(jobject["Data"]["IsOnline"].ToString());
- if (gwa.ReportAction != null)
- {
- DebugPrintLog("OnlineStatusChange宸茬粡閫氱煡");
- gwa.ReportAction("OnlineStatusChange", toggleLight);
- }
- var toggleInfo = gwa.DeviceList.Find(obj => obj.DeviceID == toggleLight.DeviceID && obj.DeviceAddr == toggleLight.DeviceAddr);
- if (toggleInfo == null)
- {
- gwa.DeviceList.Add(toggleLight);
- UpdateDeviceInfo(toggleLight, "OnlineStatusChange");
- UpdateDeviceStatus(toggleLight);
- }
- else
- {
- if (toggleLight.DeviceInfo != null)
- {
- toggleLight.DeviceInfo.IsOnline = toggleLight.IsOnline;
- }
- UpdateDeviceInfo(toggleLight, "OnlineStatusChange");
- UpdateDeviceStatus(toggleLight);
- }
- 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 = gwa.getGatewayBaseInfo.gwID };
- airSwitch.IsOnline = Newtonsoft.Json.JsonConvert.DeserializeObject<int>(jobject["Data"]["IsOnline"].ToString());
- if (gwa.ReportAction != null)
- {
- DebugPrintLog("OnlineStatusChange宸茬粡閫氱煡");
- gwa.ReportAction("OnlineStatusChange", airSwitch);
- }
- var airSwitchInfo = gwa.DeviceList.Find(obj => obj.DeviceID == airSwitch.DeviceID && obj.DeviceAddr == airSwitch.DeviceAddr);
- if (airSwitchInfo == null)
- {
- gwa.DeviceList.Add(airSwitch);
- UpdateDeviceInfo(airSwitch, "OnlineStatusChange");
- UpdateDeviceStatus(gwa);
- }
- else
- {
- if (airSwitchInfo.DeviceInfo != null)
- {
- airSwitchInfo.DeviceInfo.IsOnline = airSwitchInfo.IsOnline;
- }
- UpdateDeviceInfo(airSwitchInfo, "OnlineStatusChange");
- UpdateDeviceStatus(airSwitchInfo);
- }
- break;
- case DeviceType.OnOffSwitch:
- var panel = 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 = gwa.getGatewayBaseInfo.gwID };
- panel.IsOnline = Newtonsoft.Json.JsonConvert.DeserializeObject<int>(jobject["Data"]["IsOnline"].ToString());
- if (gwa.ReportAction != null)
- {
- DebugPrintLog("OnlineStatusChange宸茬粡閫氱煡");
- gwa.ReportAction("OnlineStatusChange", panel);
- }
- var panelInfo = gwa.DeviceList.Find(obj => obj.DeviceID == panel.DeviceID && obj.DeviceAddr == panel.DeviceAddr);
- if (panelInfo == null)
- {
- gwa.DeviceList.Add(panel);
- UpdateDeviceInfo(panel, "OnlineStatusChange");
- UpdateDeviceStatus(panel);
- }
- else
- {
- if (panelInfo.DeviceInfo != null)
- {
- panelInfo.DeviceInfo.IsOnline = panelInfo.IsOnline;
- }
- UpdateDeviceInfo(panelInfo, "OnlineStatusChange");
- UpdateDeviceStatus(panelInfo);
- }
- break;
- case DeviceType.WindowCoveringDevice:
- var curtain = 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 = gwa.getGatewayBaseInfo.gwID };
- curtain.IsOnline = Newtonsoft.Json.JsonConvert.DeserializeObject<int>(jobject["Data"]["IsOnline"].ToString());
- if (gwa.ReportAction != null)
- {
- DebugPrintLog("OnlineStatusChange宸茬粡閫氱煡");
- gwa.ReportAction("OnlineStatusChange", curtain);
- }
- var curtainInfo = gwa.DeviceList.Find(obj => obj.DeviceID == curtain.DeviceID && obj.DeviceAddr == curtain.DeviceAddr);
- if (curtainInfo == null)
- {
- gwa.DeviceList.Add(curtain);
- UpdateDeviceInfo(curtain, "OnlineStatusChange");
- UpdateDeviceStatus(gwa);
- }
- else
- {
- if (curtain.DeviceInfo != null)
- {
- curtain.DeviceInfo.IsOnline = curtain.IsOnline;
- }
- UpdateDeviceStatus(curtain);
- UpdateDeviceInfo(curtain, "OnlineStatusChange");
- }
- 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 = gwa.getGatewayBaseInfo.gwID };
- ias.IsOnline = Newtonsoft.Json.JsonConvert.DeserializeObject<int>(jobject["Data"]["IsOnline"].ToString());
- if (gwa.ReportAction != null)
- {
- DebugPrintLog("OnlineStatusChange宸茬粡閫氱煡");
- gwa.ReportAction("OnlineStatusChange", ias);
- }
- var iasInfo = gwa.DeviceList.Find(obj => obj.DeviceID == ias.DeviceID && obj.DeviceAddr == ias.DeviceAddr);
- if (iasInfo == null)
- {
- gwa.DeviceList.Add(iasInfo);
- UpdateDeviceInfo(iasInfo, "OnlineStatusChange");
- UpdateDeviceStatus(gwa);
- }
- else
- {
- if (iasInfo.DeviceInfo != null)
- {
- iasInfo.DeviceInfo.IsOnline = iasInfo.IsOnline;
- }
- UpdateDeviceInfo(iasInfo, "OnlineStatusChange");
- UpdateDeviceStatus(iasInfo);
- }
- 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 = gwa.getGatewayBaseInfo.gwID };
- repeater.IsOnline = Newtonsoft.Json.JsonConvert.DeserializeObject<int>(jobject["Data"]["IsOnline"].ToString());
- if (gwa.ReportAction != null)
- {
- DebugPrintLog("OnlineStatusChange宸茬粡閫氱煡");
- gwa.ReportAction("OnlineStatusChange", repeater);
- }
- var repeaterInfo = gwa.DeviceList.Find(obj => obj.DeviceID == repeater.DeviceID && obj.DeviceAddr == repeater.DeviceAddr);
- if (repeaterInfo == null)
- {
- gwa.DeviceList.Add(repeaterInfo);
- UpdateDeviceInfo(repeaterInfo, "OnlineStatusChange");
- UpdateDeviceStatus(gwa);
- }
- else
- {
- if (repeaterInfo.DeviceInfo != null)
- {
- repeaterInfo.DeviceInfo.IsOnline = repeaterInfo.IsOnline;
- }
- UpdateDeviceInfo(repeaterInfo, "OnlineStatusChange");
- UpdateDeviceStatus(repeaterInfo);
- }
- 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 = gwa.getGatewayBaseInfo.gwID };
- ac.IsOnline = Newtonsoft.Json.JsonConvert.DeserializeObject<int>(jobject["Data"]["IsOnline"].ToString());
- if (gwa.ReportAction != null)
- {
- DebugPrintLog("OnlineStatusChange宸茬粡閫氱煡");
- gwa.ReportAction("OnlineStatusChange", ac);
- }
- var acInfo = gwa.DeviceList.Find(obj => obj.DeviceID == ac.DeviceID && obj.DeviceAddr == ac.DeviceAddr);
- if (acInfo == null)
- {
- gwa.DeviceList.Add(acInfo);
- UpdateDeviceInfo(acInfo, "OnlineStatusChange");
- UpdateDeviceStatus(gwa);
- }
- else
- {
- if (acInfo.DeviceInfo != null)
- {
- acInfo.DeviceInfo.IsOnline = acInfo.IsOnline;
- }
- UpdateDeviceInfo(acInfo, "OnlineStatusChange");
- UpdateDeviceStatus(acInfo);
- }
- 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 = gwa.getGatewayBaseInfo.gwID };
- transverter.IsOnline = Newtonsoft.Json.JsonConvert.DeserializeObject<int>(jobject["Data"]["IsOnline"].ToString());
- if (gwa.ReportAction != null)
- {
- DebugPrintLog("OnlineStatusChange宸茬粡閫氱煡");
- gwa.ReportAction("OnlineStatusChange", transverter);
- }
- var transverterInfo = gwa.DeviceList.Find(obj => obj.DeviceID == transverter.DeviceID && obj.DeviceAddr == transverter.DeviceAddr);
- if (transverterInfo == null)
- {
- gwa.DeviceList.Add(transverterInfo);
- UpdateDeviceInfo(transverterInfo, "OnlineStatusChange");
- UpdateDeviceStatus(gwa);
- }
- else
- {
- if (transverterInfo.DeviceInfo != null)
- {
- transverterInfo.DeviceInfo.IsOnline = transverterInfo.IsOnline;
- }
- UpdateDeviceInfo(transverterInfo, "OnlineStatusChange");
- UpdateDeviceStatus(transverterInfo);
- }
- break;
+ var tempDevice = new CommonDevice() { DeviceID = jobject.Value<int>("Device_ID"), DeviceAddr = jobject.Value<string>("DeviceAddr"), DeviceEpoint = jobject.Value<int>("Epoint"), DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = gwa.getGatewayBaseInfo.gwID };
+ tempDevice.IsOnline = Newtonsoft.Json.JsonConvert.DeserializeObject<int>(jobject["Data"]["IsOnline"].ToString());
+
+ if (gwa.ReportAction != null)
+ {
+ DebugPrintLog("OnlineStatusChange宸茬粡閫氱煡");
+ gwa.ReportAction("OnlineStatusChange", tempDevice);
+ }
+ var infoTempDevice = gwa.DeviceList.Find(obj => obj.DeviceID == tempDevice.DeviceID && obj.DeviceAddr == tempDevice.DeviceAddr);
+ if (infoTempDevice == null)
+ {
+ gwa.DeviceList.Add(tempDevice);
+ UpdateDeviceStatus(tempDevice);
+ UpdateDeviceInfo(tempDevice, "OnlineStatusChange");
+ }
+ else
+ {
+ if (infoTempDevice.DeviceInfo != null)
+ {
+ infoTempDevice.DeviceInfo.IsOnline = infoTempDevice.IsOnline;
+ }
+ UpdateDeviceInfo(infoTempDevice, "OnlineStatusChange");
+ UpdateDeviceStatus(infoTempDevice);
}
}
#endregion
@@ -4151,198 +3879,24 @@
{
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 = gwa.getGatewayBaseInfo.gwID };
- toggleLight.removeDeviceResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<ToggleLight.RemoveDeviceResponseData>(jobject["Data"].ToString());
- if (toggleLight.removeDeviceResponseData == null)
- {
- return;
- }
- else
- {
- UpdateDeviceStatus(toggleLight);
- UpdateDeviceInfo(toggleLight, "RemoveDeviceRespon");
- if (toggleLight.removeDeviceResponseData.Result == 0)
- {
- var infoToggleLight = gwa.DeviceList.Find((CommonDevice obj) => obj.DeviceID == toggleLight.DeviceID && obj.DeviceAddr == toggleLight.DeviceAddr && obj.DeviceEpoint == toggleLight.DeviceEpoint);
- if (infoToggleLight != null)
- {
- gwa.DeviceList.Remove(infoToggleLight);
- }
- }
- }
- break;
- case DeviceType.AirSwitch:
- var airSwitch = new AirSwitch() { DeviceAddr = jobject.Value<string>("DeviceAddr"), DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = gwa.getGatewayBaseInfo.gwID };
- airSwitch.removeDeviceResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<AirSwitch.RemoveDeviceResponseData>(jobject["Data"].ToString());
- if (airSwitch.removeDeviceResponseData == null)
- {
- return;
- }
- else
- {
- UpdateDeviceStatus(airSwitch);
- UpdateDeviceInfo(airSwitch, "RemoveDeviceRespon");
- if (airSwitch.removeDeviceResponseData.Result == 0)
- {
- var infoAirSwitch = gwa.DeviceList.Find((CommonDevice obj) => obj.DeviceID == airSwitch.DeviceID && obj.DeviceAddr == airSwitch.DeviceAddr && obj.DeviceEpoint == airSwitch.DeviceEpoint);
- if (infoAirSwitch != null)
- {
- gwa.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 = gwa.getGatewayBaseInfo.gwID };
- panelObj.removeDeviceResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<Panel.RemoveDeviceResponseData>(jobject["Data"].ToString());
- if (panelObj.removeDeviceResponseData == null)
- {
- return;
- }
- else
- {
- UpdateDeviceStatus(panelObj);
- UpdateDeviceInfo(panelObj, "RemoveDeviceRespon");
- if (panelObj.removeDeviceResponseData.Result == 0)
- {
- var infoPanel = gwa.DeviceList.Find((CommonDevice obj) => obj.DeviceID == panelObj.DeviceID && obj.DeviceAddr == panelObj.DeviceAddr && obj.DeviceEpoint == panelObj.DeviceEpoint);
- if (infoPanel != null)
- {
- gwa.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 = gwa.getGatewayBaseInfo.gwID };
- rollershade.removeDeviceResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<Panel.RemoveDeviceResponseData>(jobject["Data"].ToString());
- if (rollershade.removeDeviceResponseData == null)
- {
- return;
- }
- else
- {
- UpdateDeviceStatus(rollershade);
- UpdateDeviceInfo(rollershade, "RemoveDeviceRespon");
- if (rollershade.removeDeviceResponseData.Result == 0)
- {
- var infoRoller = gwa.DeviceList.Find((CommonDevice obj) => obj.DeviceID == rollershade.DeviceID && obj.DeviceAddr == rollershade.DeviceAddr && obj.DeviceEpoint == rollershade.DeviceEpoint);
- if (infoRoller != null)
- {
- gwa.DeviceList.Remove(infoRoller);
- }
- }
- }
- break;
- case DeviceType.IASZone:
- var ias = new IASZone() { DeviceAddr = jobject.Value<string>("DeviceAddr"), DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = gwa.getGatewayBaseInfo.gwID };
- ias.removeDeviceResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<IASZone.RemoveDeviceResponseData>(jobject["Data"].ToString());
- if (ias.removeDeviceResponseData == null)
- {
- return;
- }
- else
- {
- UpdateDeviceStatus(ias);
- UpdateDeviceInfo(ias, "RemoveDeviceRespon");
- if (ias.removeDeviceResponseData.Result == 0)
- {
- var info = gwa.DeviceList.Find((CommonDevice obj) => obj.DeviceID == ias.DeviceID && obj.DeviceAddr == ias.DeviceAddr && obj.DeviceEpoint == ias.DeviceEpoint);
- if (info != null)
- {
- gwa.DeviceList.Remove(info);
- }
- }
- }
- break;
- case DeviceType.DimmableLight:
- var dimmableLight = new DimmableLight() { DeviceAddr = jobject.Value<string>("DeviceAddr"), DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = gwa.getGatewayBaseInfo.gwID };
- dimmableLight.removeDeviceResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<DimmableLight.RemoveDeviceResponseData>(jobject["Data"].ToString());
- if (dimmableLight.removeDeviceResponseData == null)
- {
- return;
- }
- else
- {
- UpdateDeviceStatus(dimmableLight);
- UpdateDeviceInfo(dimmableLight, "RemoveDeviceRespon");
- if (dimmableLight.removeDeviceResponseData.Result == 0)
- {
- var info = gwa.DeviceList.Find((CommonDevice obj) => obj.DeviceID == dimmableLight.DeviceID && obj.DeviceAddr == dimmableLight.DeviceAddr && obj.DeviceEpoint == dimmableLight.DeviceEpoint);
- if (info != null)
- {
- gwa.DeviceList.Remove(info);
- }
- }
- }
- break;
- case DeviceType.Repeater:
- var repeater = new Repeater() { DeviceAddr = jobject.Value<string>("DeviceAddr"), DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = gwa.getGatewayBaseInfo.gwID };
- repeater.removeDeviceResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<DimmableLight.RemoveDeviceResponseData>(jobject["Data"].ToString());
- if (repeater.removeDeviceResponseData == null)
- {
- return;
- }
- else
- {
- UpdateDeviceStatus(repeater);
- UpdateDeviceInfo(repeater, "RemoveDeviceRespon");
- if (repeater.removeDeviceResponseData.Result == 0)
- {
- var info = gwa.DeviceList.Find((CommonDevice obj) => obj.DeviceID == repeater.DeviceID && obj.DeviceAddr == repeater.DeviceAddr && obj.DeviceEpoint == repeater.DeviceEpoint);
- if (info != null)
- {
- gwa.DeviceList.Remove(info);
- }
- }
- }
- break;
- case DeviceType.Thermostat:
- var ac = new AC() { DeviceAddr = jobject.Value<string>("DeviceAddr"), DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = gwa.getGatewayBaseInfo.gwID };
- ac.removeDeviceResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<AC.RemoveDeviceResponseData>(jobject["Data"].ToString());
- if (ac.removeDeviceResponseData == null)
- {
- return;
- }
- else
- {
- UpdateDeviceStatus(ac);
- UpdateDeviceInfo(ac, "RemoveDeviceRespon");
- if (ac.removeDeviceResponseData.Result == 0)
- {
- var info = gwa.DeviceList.Find((CommonDevice obj) => obj.DeviceID == ac.DeviceID && obj.DeviceAddr == ac.DeviceAddr && obj.DeviceEpoint == ac.DeviceEpoint);
- if (info != null)
- {
- gwa.DeviceList.Remove(info);
- }
- }
- }
- break;
- case DeviceType.Transverter:
- var transverter = new Transverter() { DeviceAddr = jobject.Value<string>("DeviceAddr"), DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = gwa.getGatewayBaseInfo.gwID };
- transverter.removeDeviceResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<Transverter.RemoveDeviceResponseData>(jobject["Data"].ToString());
- if (transverter.removeDeviceResponseData == null)
- {
- return;
- }
- else
- {
- UpdateDeviceStatus(transverter);
- UpdateDeviceInfo(transverter, "RemoveDeviceRespon");
- if (transverter.removeDeviceResponseData.Result == 0)
- {
- var info = gwa.DeviceList.Find((CommonDevice obj) => obj.DeviceID == transverter.DeviceID && obj.DeviceAddr == transverter.DeviceAddr && obj.DeviceEpoint == transverter.DeviceEpoint);
- if (info != null)
- {
- gwa.DeviceList.Remove(info);
- }
- }
- }
- break;
+ var tempDevice = new CommonDevice() { DeviceAddr = jobject.Value<string>("DeviceAddr"), DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = gwa.getGatewayBaseInfo.gwID };
+ tempDevice.removeDeviceResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<CommonDevice.RemoveDeviceResponseData>(jobject["Data"].ToString());
+ if (tempDevice.removeDeviceResponseData == null)
+ {
+ return;
+ }
+ else
+ {
+ UpdateDeviceStatus(tempDevice);
+ UpdateDeviceInfo(tempDevice, "RemoveDeviceRespon");
+ if (tempDevice.removeDeviceResponseData.Result == 0)
+ {
+ var infoTempDevice = gwa.DeviceList.Find((CommonDevice obj) => obj.DeviceID == tempDevice.DeviceID && obj.DeviceAddr == tempDevice.DeviceAddr && obj.DeviceEpoint == tempDevice.DeviceEpoint);
+ if (infoTempDevice != null)
+ {
+ gwa.DeviceList.Remove(infoTempDevice);
+ }
+ }
}
}
}
@@ -4359,70 +3913,10 @@
var tempEpoint = jobject.Value<int>("Epoint");
var dataId = jobject.Value<int>("Data_ID");
- switch ((DeviceType)(deviceID))
- {
- case DeviceType.DimmableLight:
- var light = new DimmableLight { DeviceID = deviceID, DeviceAddr = deviceAddr, DeviceEpoint = tempEpoint, DataID = dataId };
- light.DeviceStatusReport = Newtonsoft.Json.JsonConvert.DeserializeObject<DimmableLight.DeviceStatusReportData>(jobject["Data"].ToString());
- UpdateDeviceStatus(light);
- UpdateDeviceInfo(light, "DeviceStatusReport");
- break;
- case DeviceType.OnOffSwitch:
- var lightSwitch = new Panel { DeviceID = deviceID, DeviceAddr = deviceAddr, DeviceEpoint = tempEpoint, DataID = dataId };
- lightSwitch.DeviceStatusReport = Newtonsoft.Json.JsonConvert.DeserializeObject<Panel.DeviceStatusReportData>(jobject["Data"].ToString());
- UpdateDeviceStatus(lightSwitch);
- UpdateDeviceInfo(lightSwitch, "DeviceStatusReport");
- break;
- case DeviceType.OnOffOutput:
- var lighttoggle = new ToggleLight { DeviceID = deviceID, DeviceAddr = deviceAddr, DeviceEpoint = tempEpoint, DataID = dataId };
- lighttoggle.DeviceStatusReport = Newtonsoft.Json.JsonConvert.DeserializeObject<ToggleLight.DeviceStatusReportData>(jobject["Data"].ToString());
- UpdateDeviceStatus(lighttoggle);
- UpdateDeviceInfo(lighttoggle, "DeviceStatusReport");
- break;
- case DeviceType.AirSwitch:
- var airSwitch = new AirSwitch { DeviceID = deviceID, DeviceAddr = deviceAddr, DeviceEpoint = tempEpoint, DataID = dataId };
- airSwitch.DeviceStatusReport = Newtonsoft.Json.JsonConvert.DeserializeObject<AirSwitch.DeviceStatusReportData>(jobject["Data"].ToString());
- UpdateDeviceStatus(airSwitch);
- UpdateDeviceInfo(airSwitch, "DeviceStatusReport");
- break;
- case DeviceType.WindowCoveringDevice:
- var curtain = new Rollershade { DeviceID = deviceID, DeviceAddr = deviceAddr, DeviceEpoint = tempEpoint, DataID = dataId };
- curtain.DeviceStatusReport = Newtonsoft.Json.JsonConvert.DeserializeObject<Rollershade.DeviceStatusReportData>(jobject["Data"].ToString());
- UpdateDeviceStatus(curtain);
- UpdateDeviceInfo(curtain, "DeviceStatusReport");
- break;
- case DeviceType.OtaDevice:
- case DeviceType.OtaPanelDevice:
- var ota = new OTADevice { DeviceID = deviceID, DeviceAddr = deviceAddr, DeviceEpoint = tempEpoint, DataID = dataId };
- ota.DeviceStatusReport = Newtonsoft.Json.JsonConvert.DeserializeObject<OTADevice.DeviceStatusReportData>(jobject["Data"].ToString());
- UpdateDeviceStatus(ota);
- UpdateDeviceInfo(ota, "DeviceStatusReport");
- break;
- case DeviceType.IASZone:
- var ias = new IASZone { DeviceID = deviceID, DeviceAddr = deviceAddr, DeviceEpoint = tempEpoint, DataID = dataId };
- ias.DeviceStatusReport = Newtonsoft.Json.JsonConvert.DeserializeObject<IASZone.DeviceStatusReportData>(jobject["Data"].ToString());
- UpdateDeviceStatus(ias);
- UpdateDeviceInfo(ias, "DeviceStatusReport");
- break;
- case DeviceType.Repeater:
- var repeater = new Repeater { DeviceID = deviceID, DeviceAddr = deviceAddr, DeviceEpoint = tempEpoint, DataID = dataId };
- repeater.DeviceStatusReport = Newtonsoft.Json.JsonConvert.DeserializeObject<Repeater.DeviceStatusReportData>(jobject["Data"].ToString());
- UpdateDeviceStatus(repeater);
- UpdateDeviceInfo(repeater, "DeviceStatusReport");
- break;
- case DeviceType.Thermostat:
- var ac = new AC { DeviceID = deviceID, DeviceAddr = deviceAddr, DeviceEpoint = tempEpoint, DataID = dataId };
- ac.DeviceStatusReport = Newtonsoft.Json.JsonConvert.DeserializeObject<AC.DeviceStatusReportData>(jobject["Data"].ToString());
- UpdateDeviceStatus(ac);
- UpdateDeviceInfo(ac, "DeviceStatusReport");
- break;
- case DeviceType.Transverter :
- var transverter = new Transverter { DeviceID = deviceID, DeviceAddr = deviceAddr, DeviceEpoint = tempEpoint, DataID = dataId };
- transverter.DeviceStatusReport = Newtonsoft.Json.JsonConvert.DeserializeObject<AC.DeviceStatusReportData>(jobject["Data"].ToString());
- UpdateDeviceStatus(transverter);
- UpdateDeviceInfo(transverter, "DeviceStatusReport");
- break;
- }
+ var tempDevice = new CommonDevice { DeviceID = deviceID, DeviceAddr = deviceAddr, DeviceEpoint = tempEpoint, DataID = dataId };
+ tempDevice.DeviceStatusReport = Newtonsoft.Json.JsonConvert.DeserializeObject<CommonDevice.DeviceStatusReportData>(jobject["Data"].ToString());
+ UpdateDeviceStatus(tempDevice);
+ UpdateDeviceInfo(tempDevice, "DeviceStatusReport");
}
#endregion
#region IAS瀹夐槻淇℃伅涓婃姤
--
Gitblit v1.8.0