old mode 100644
new mode 100755
| | |
| | | public bool IsMainGateWay |
| | | { |
| | | get |
| | | {
|
| | | return getGatewayBaseInfo != null && getGatewayBaseInfo.IsMainGateWay; |
| | | { |
| | | return getGatewayBaseInfo != null && getGatewayBaseInfo.IsMainGateWay; |
| | | } |
| | | } |
| | | |
| | |
| | | } |
| | | } |
| | | |
| | | #region variable |
| | | #region variable |
| | | /// <summary> |
| | | /// 远程连接成功时的时间 |
| | | /// </summary> |
| | |
| | | |
| | | /// <summary> |
| | | /// 同步到远程的当前时间戳 |
| | | /// </summary> |
| | | /// </summary>Re |
| | | public static ulong CurrentTimeStamp |
| | | { |
| | | get |
| | |
| | | }
|
| | | 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")
|
| | |
| | | ///<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 = "当前没有网关" }; |
| | |
| | | sendDataBytes[1] = Convert.ToByte(devicePoint); |
| | | //设备mac地址,小端结构,8个bytes |
| | | //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++; |
| | |
| | | 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; |
| | | } |
| | |
| | | { |
| | | if (WaitReceiveDataTime < (DateTime.Now - dateTime).TotalMilliseconds) |
| | | { |
| | | return new SendFileResponseAllData { errorMessageBase = "回复超时,请重新操作" }; ; |
| | | return new SendFileResponseAllData { errorMessageBase = "回复超时,请重新操作" }; ; |
| | | } |
| | | await System.Threading.Tasks.Task.Delay(10); |
| | | } |
| | |
| | | } |
| | | } |
| | | catch { } |
| | | finally{ |
| | | finally |
| | | { |
| | | Actions -= action; |
| | | } |
| | | DebugPrintLog("Security/ChangeAdminPassword_Actions 退出" + System.DateTime.Now.ToString()); |
| | |
| | | if (tempData.Result == 0) |
| | | { |
| | | ZbGateway.byteSource.Clear(); |
| | | } |
| | | } |
| | | tempDa.Result = tempData.Result; |
| | | dataRes.setDownloadFileResponseData = tempDa; |
| | | DebugPrintLog($"UI收到通知后的主题_{ topic}"); |
| | |
| | | /// <summary> |
| | | /// 局域网的MQTT是否正在连接 |
| | | /// </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 |
| | | { |
| | |
| | | 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($"当前是网关Wi-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($"当前是网关Wi-Fi在通讯_{System.DateTime.Now.ToString()}");
|
| | |
|
| | | }; |
| | | } |
| | | |
| | | if (RemoteMqttClient != null && RemoteMqttClient.IsConnected == true) |
| | |
| | | CleanSession = true,// 设置是否清空session,这里如果设置为false表示服务器会保留客户端的连接记录,这里设置为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) |
| | | { |
| | |
| | | { |
| | | try |
| | | { |
| | | if (remoteMqttIsConnecting) |
| | | if (remoteMqttIsConnecting || Shared.Common.Config.Instance.HomeId == "") |
| | | { |
| | | return; |
| | | } |
| | |
| | | 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) |
| | |
| | | #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) |
| | |
| | | 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) |
| | | { |
| | |
| | | { |
| | | 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 |
| | | { |
| | |
| | | /// <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); |
| | |
| | | { |
| | | 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$分布式住宅Id=XXX尚未登录,请重新登录后再连接后再进行发布操作,如果您当前是别人共享给你的连接,则请重新请求获取连接信息一下,再初始化连接再次发布远程控制即可!! |
| | | else if (topic == "AppNoLogin") |
| | | { |
| | |
| | | } |
| | | } |
| | | #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) |
| | |
| | | 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; |
| | | } |
| | |
| | | { |
| | | var topic = e.ApplicationMessage.Topic; |
| | | var message = System.Text.Encoding.UTF8.GetString(e.ApplicationMessage.Payload); |
| | | // DebugPrintLog($"网关返回的主题(秘文):{topic}_网关返回的负载(秘文):{message}_{System.DateTime.Now.ToString()}"); |
| | | |
| | | if (IsEncry) |
| | | { |
| | |
| | | { |
| | | try |
| | | { |
| | | if(string .IsNullOrEmpty(message)) |
| | | if (string.IsNullOrEmpty(message)) |
| | | { |
| | | return; |
| | | message = "{}"; |
| | | } |
| | | var gatewayID = topic.Split('/')[0];//网关返回的网关ID |
| | | var reportStatus = topic.Split('/')[1];//主题为设备上报的主题 |
| | | var reportStatus = ""; |
| | | reportStatus = topic.Split('/')[1];//主题为设备上报的主题 |
| | | string addr = "";//上报的设备addr |
| | | string epoint = "";//上报的设备epoint |
| | | string cluID = "";//上报的设备cluID |
| | |
| | | if (gwa.GwResDataAction != null) |
| | | { |
| | | gwa.GwResDataAction(topic, message); |
| | | if (topic == $"{gatewayID}/DoorLock/DoorLockOperatingEventNotificationCommand") |
| | | { |
| | | Console.WriteLine($"111_DoorLockOperatingEventNotificationCommand:{message}"); |
| | | } |
| | | if (topic == $"{gatewayID}/DoorLock/DoorLockProgrammingEventNotificationCommand") |
| | | { |
| | | Console.WriteLine($"111_DoorLockProgrammingEventNotificationCommand:{message}"); |
| | | } |
| | | } |
| | | gwa.CurrentGateWayId = gatewayID; |
| | | |
| | |
| | | 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) |
| | |
| | | { |
| | | DebugPrintLog("AppNoLogin已经通知"); |
| | | gwa.CloudErrorAction("AppNoLogin", "登录过期,请重新登录"); |
| | | } |
| | | }
|
| | | //全局接收网关推送的的逻辑(为了执行速度,尽可能的别加耗时的操作)
|
| | | Shared.Phone.UserCenter.HdlGatewayReceiveLogic.GatewayOverallMsgReceive(gatewayID, "AppNoLogin", jobject); |
| | | break; |
| | | case "AppTimeOut": |
| | | if (gwa.CloudErrorAction != null) |
| | |
| | | } |
| | | #endregion |
| | | #region 远程,主网关上报通知 |
| | | if(IsRemote) |
| | | if (IsRemote) |
| | | { |
| | | if (topic == gatewayID + "/" + "BeMainGw_Report") |
| | | { |
| | |
| | | UpdateDeviceInfo(ac, "DeviceInComingRespon"); |
| | | UpdateDeviceStatus(gwa); |
| | | break; |
| | | case DeviceType.Transverter : |
| | | 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) |
| | |
| | | gwa.ReportAction("DeviceInComingRespon", transverter.getNewDeviceInfo); |
| | | } |
| | | UpdateDeviceInfo(transverter, "DeviceInComingRespon"); |
| | | UpdateDeviceStatus(gwa); |
| | | 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 = gwa.getGatewayBaseInfo.gwID }; |
| | | doorLock.getNewDeviceInfo = Newtonsoft.Json.JsonConvert.DeserializeObject<DoorLock.NewDeviceInfoData>(jobject["Data"].ToString()); |
| | | if (gwa.ReportAction != null) |
| | | { |
| | | DebugPrintLog("DeviceInComingRespon已经通知"); |
| | | gwa.ReportAction("DeviceInComingRespon", doorLock.getNewDeviceInfo); |
| | | } |
| | | UpdateDeviceInfo(doorLock, "DeviceInComingRespon"); |
| | | UpdateDeviceStatus(gwa); |
| | | break; |
| | | } |
| | |
| | | UpdateDeviceStatus(transverterInfo); |
| | | } |
| | | 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 = gwa.getGatewayBaseInfo.gwID }; |
| | | doorLock.IsOnline = Newtonsoft.Json.JsonConvert.DeserializeObject<int>(jobject["Data"]["IsOnline"].ToString()); |
| | | if (gwa.ReportAction != null) |
| | | { |
| | | DebugPrintLog("OnlineStatusChange已经通知"); |
| | | gwa.ReportAction("OnlineStatusChange", doorLock); |
| | | } |
| | | var doorLockInfo = gwa.DeviceList.Find(obj => obj.DeviceID == doorLock.DeviceID && obj.DeviceAddr == doorLock.DeviceAddr); |
| | | if (doorLockInfo == null) |
| | | { |
| | | gwa.DeviceList.Add(doorLockInfo); |
| | | UpdateDeviceInfo(doorLockInfo, "OnlineStatusChange"); |
| | | UpdateDeviceStatus(gwa); |
| | | } |
| | | else |
| | | { |
| | | if (doorLockInfo.DeviceInfo != null) |
| | | { |
| | | doorLockInfo.DeviceInfo.IsOnline = doorLockInfo.IsOnline; |
| | | } |
| | | UpdateDeviceInfo(doorLockInfo, "OnlineStatusChange"); |
| | | UpdateDeviceStatus(doorLockInfo); |
| | | } |
| | | break; |
| | | } |
| | | } |
| | | #endregion |
| | |
| | | } |
| | | } |
| | | break; |
| | | case DeviceType.DoorLock: |
| | | var doorLock = new DoorLock() { DeviceAddr = jobject.Value<string>("DeviceAddr"), DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = gwa.getGatewayBaseInfo.gwID }; |
| | | doorLock.removeDeviceResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<DoorLock.RemoveDeviceResponseData>(jobject["Data"].ToString()); |
| | | if (doorLock.removeDeviceResponseData == null) |
| | | { |
| | | return; |
| | | } |
| | | else |
| | | { |
| | | UpdateDeviceStatus(doorLock); |
| | | UpdateDeviceInfo(doorLock, "RemoveDeviceRespon"); |
| | | if (doorLock.removeDeviceResponseData.Result == 0) |
| | | { |
| | | var info = gwa.DeviceList.Find((CommonDevice obj) => obj.DeviceID == doorLock.DeviceID && obj.DeviceAddr == doorLock.DeviceAddr && obj.DeviceEpoint == doorLock.DeviceEpoint); |
| | | if (info != null) |
| | | { |
| | | gwa.DeviceList.Remove(info); |
| | | } |
| | | } |
| | | } |
| | | break; |
| | | } |
| | | } |
| | | } |
| | |
| | | UpdateDeviceStatus(ac); |
| | | UpdateDeviceInfo(ac, "DeviceStatusReport"); |
| | | break; |
| | | case DeviceType.Transverter : |
| | | 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()); |
| | | transverter.DeviceStatusReport = Newtonsoft.Json.JsonConvert.DeserializeObject<Transverter.DeviceStatusReportData>(jobject["Data"].ToString()); |
| | | UpdateDeviceStatus(transverter); |
| | | UpdateDeviceInfo(transverter, "DeviceStatusReport"); |
| | | break; |
| | | case DeviceType.DoorLock: |
| | | var doorLock = new DoorLock { DeviceID = deviceID, DeviceAddr = deviceAddr, DeviceEpoint = tempEpoint, DataID = dataId }; |
| | | doorLock.DeviceStatusReport = Newtonsoft.Json.JsonConvert.DeserializeObject<DoorLock.DeviceStatusReportData>(jobject["Data"].ToString()); |
| | | UpdateDeviceStatus(doorLock); |
| | | UpdateDeviceInfo(doorLock, "DeviceStatusReport"); |
| | | break; |
| | | } |
| | | } |
| | | #endregion |