| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using Newtonsoft.Json.Linq; |
| | | |
| | |
| | | { |
| | | //if (msg.Contains("DeviceStatusReport") == false)
|
| | | //{
|
| | | System.Console.WriteLine(msg);
|
| | | System.Console.WriteLine(msg + " " + System.DateTime.Now.ToLongTimeString() + " " + System.DateTime.Now.Millisecond);
|
| | | //} |
| | | } |
| | | } |
| | |
| | | else if (strDeviceType == ZigBee.Device.DeviceType.DoorLock.ToString()) |
| | | { |
| | | return Newtonsoft.Json.JsonConvert.DeserializeObject<DoorLock>(strDeviceByte); |
| | | }
|
| | | else if (strDeviceType == ZigBee.Device.DeviceType.TemperatureSensor.ToString()) |
| | | { |
| | | return Newtonsoft.Json.JsonConvert.DeserializeObject<TemperatureSensor>(strDeviceByte); |
| | | } |
| | | return null; |
| | | } |
| | |
| | | else if (this.Type == DeviceType.ColorDimmableLight) |
| | | { |
| | | //彩灯 |
| | | IconPath = "Device/ColorDimmableLight.png"; |
| | | IconPath = "Device/ColorLight.png"; |
| | | }
|
| | | else if (this.Type == DeviceType.DimmableLight) |
| | | { |
| | | //调光器 |
| | | IconPath = "Device/ColorDimmableLight.png"; |
| | | IconPath = "Device/Light.png"; |
| | | } |
| | | else if (this.Type == DeviceType.OnOffOutput) |
| | | { |
| | |
| | | { |
| | | //空调 |
| | | IconPath = "Device/AirConditionerEpoint.png"; |
| | | } |
| | | else if (this.Type == DeviceType.TemperatureSensor)
|
| | | {
|
| | | if (((TemperatureSensor)this).SensorDiv == 1)
|
| | | {
|
| | | //温度传感器
|
| | | IconPath = "Device/SensorTemperature.png";
|
| | | }
|
| | | else if (((TemperatureSensor)this).SensorDiv == 2)
|
| | | {
|
| | | //湿度传感器
|
| | | IconPath = "Device/SensorHumidity.png";
|
| | | }
|
| | | } |
| | | else if (this.Type != DeviceType.UnKown)
|
| | | {
|
| | |
| | | /// </summary> |
| | | public DeviceType Type = DeviceType.UnKown; |
| | | /// <summary>
|
| | | /// 设备的功能类型(此类型目前只针对继电器回路有效,默认为灯光)
|
| | | /// 设备的功能类型(此类型目前只针对继电器回路有效,默认未指定)
|
| | | /// </summary> |
| | | public DeviceFunctionType DfunctionType = DeviceFunctionType.A灯光; |
| | | public DeviceFunctionType DfunctionType = DeviceFunctionType.A未定义; |
| | | /// <summary> |
| | | /// MAC地址 |
| | | /// </summary> |
| | |
| | | /// 序列号 |
| | | /// </summary> |
| | | public string SerialNumber = string.Empty; |
| | | /// <summary>
|
| | | /// 整个设备所属的区域ID(因为设备也能够分配区域了)
|
| | | /// </summary> |
| | | public string DeviceRoomId = string.Empty; |
| | | /// <summary> |
| | | /// 所有指定cluster是否都已经成功绑定协调器 |
| | | ///<para>0:未完全绑定</para> |
| | |
| | | } |
| | | } |
| | | break; |
| | | case DeviceType.DoorLock: |
| | | var doorLock = new DoorLock() { DeviceID = jobject.Value<int>("Device_ID"), DeviceAddr = jobject.Value<string>("DeviceAddr"), DeviceEpoint = jobject.Value<int>("Epoint"), DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = Gateway.CurrentGateWayId }; |
| | | doorLock.renameDeviceData = Newtonsoft.Json.JsonConvert.DeserializeObject<DoorLock.DeviceRenameResponseData>(jobject["Data"].ToString()); |
| | | if (doorLock.renameDeviceData == null) |
| | | { |
| | | d = new DeviceRenameAllData { errorMessageBase = "网关返回的数据为空" }; |
| | | } |
| | | else |
| | | { |
| | | d = new DeviceRenameAllData { deviceRenameData = doorLock.renameDeviceData }; |
| | | System.Console.WriteLine($"UI收到通知后的主题_{ topic}"); |
| | | var info = Gateway.DeviceList.Find((CommonDevice obj) => obj.DeviceID == doorLock.DeviceID && obj.DeviceAddr == doorLock.DeviceAddr && obj.DeviceEpoint == doorLock.DeviceEpoint); |
| | | if (info != null) |
| | | { |
| | | info.DeviceEpointName = doorLock.renameDeviceData.DeviceName; |
| | | } |
| | | } |
| | | break; |
| | | } |
| | | } |
| | | }; |
| | |
| | | if (info != null) |
| | | { |
| | | info.DeviceName = transverter.renameDeviceMacNameData.MacName; |
| | | } |
| | | } |
| | | break; |
| | | case DeviceType.DoorLock: |
| | | var doorLock = new DoorLock() { DeviceID = jobject.Value<int>("Device_ID"), DeviceAddr = jobject.Value<string>("DeviceAddr"), DeviceEpoint = jobject.Value<int>("Epoint"), DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = Gateway.CurrentGateWayId }; |
| | | doorLock.renameDeviceMacNameData = Newtonsoft.Json.JsonConvert.DeserializeObject<DoorLock.RenameDeviceMacNameData>(jobject["Data"].ToString()); |
| | | |
| | | if (doorLock.renameDeviceMacNameData == null) |
| | | { |
| | | d = new RenameDeviceMacNameAllData { errorMessageBase = "网关返回的数据为空" }; |
| | | } |
| | | else |
| | | { |
| | | d = new RenameDeviceMacNameAllData { renameDeviceMacNameData = doorLock.renameDeviceMacNameData }; |
| | | System.Console.WriteLine($"UI收到通知后的主题_{ topic}_收到通知后的数据_{ d.renameDeviceMacNameData.ToString()}"); |
| | | var info = Gateway.DeviceList.Find((CommonDevice obj) => obj.DeviceID == doorLock.DeviceID && obj.DeviceAddr == doorLock.DeviceAddr && obj.DeviceEpoint == doorLock.DeviceEpoint); |
| | | if (info != null) |
| | | { |
| | | info.DeviceName = doorLock.renameDeviceMacNameData.MacName; |
| | | } |
| | | } |
| | | break; |
| | |
| | | } |
| | | } |
| | | break; |
| | | case DeviceType.DoorLock: |
| | | var doorLock = new DoorLock() { DeviceAddr = jobject.Value<string>("DeviceAddr"), DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = Gateway.getGatewayBaseInfo.gwID }; |
| | | doorLock.removeDeviceResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<DoorLock.RemoveDeviceResponseData>(jobject["Data"].ToString()); |
| | | if (doorLock.removeDeviceResponseData == null) |
| | | { |
| | | return; |
| | | } |
| | | else |
| | | { |
| | | if (doorLock.removeDeviceResponseData.Result == 0) |
| | | { |
| | | var info = Gateway.DeviceList.Find((CommonDevice obj) => obj.DeviceID == doorLock.DeviceID && obj.DeviceAddr == doorLock.DeviceAddr && obj.DeviceEpoint == doorLock.DeviceEpoint); |
| | | if (info != null) |
| | | { |
| | | Gateway.DeviceList.Remove(info); |
| | | } |
| | | } |
| | | } |
| | | break; |
| | | } |
| | | } |
| | | } |