| | |
| | | //温湿度 |
| | | else if (device.Type == DeviceType.TemperatureSensor) |
| | | { |
| | | cardContr = new Controls.DeviceTemperatureCardControl(); |
| | | //空气质量传感器 |
| | | //获取设备类型 |
| | | var deviceEnumInfo = Common.LocalDevice.Current.GetMyDeviceEnumInfo(new List<CommonDevice>() { device }); |
| | | if (deviceEnumInfo.ConcreteType == Common.DeviceConcreteType.AirQualitySensor) |
| | | { |
| | | cardContr = new Controls.DeviceAirQualitySensorCardControl(); |
| | | } |
| | | else |
| | | { |
| | | cardContr = new Controls.DeviceTemperatureCardControl(); |
| | | |
| | | } |
| | | } |
| | | //门锁 |
| | | else if (device.Type == DeviceType.DoorLock) |
| | |
| | | } |
| | | HdlThreadLogic.Current.RunThread(() => |
| | | { |
| | | int sendCount = 0; |
| | | while (listDeviceBackContr.Parent != null) |
| | | { |
| | | bool hadSend = false; |
| | |
| | | //发送获取状态的命令 |
| | | listContr[i].SendStatuComand(); |
| | | hadSend = true; |
| | | System.Threading.Thread.Sleep(200); |
| | | System.Threading.Thread.Sleep(300); |
| | | } |
| | | } |
| | | if (hadSend == false) |
| | |
| | | //如果已经全部回路都接收了网关回复,则不再二次发送 |
| | | break; |
| | | } |
| | | System.Threading.Thread.Sleep(2000); |
| | | sendCount++; |
| | | if (sendCount == 2) |
| | | { |
| | | //就发2次 |
| | | break; |
| | | } |
| | | System.Threading.Thread.Sleep(5000); |
| | | } |
| | | }, ShowErrorMode.NO); |
| | | } |
| | |
| | | { |
| | | //处理一般设备的上报数据 |
| | | string mainKeys = LocalDevice.Current.GetDeviceMainKeys(report); |
| | | |
| | | //晾衣架上报需要特殊处理,其他上报的回路统一转为端点1 |
| | | var tempList = LocalDevice.Current.GetDevicesByMac(report.DeviceAddr); |
| | | var tempDeviceEnum = LocalDevice.Current.GetMyDeviceEnumInfo(tempList); |
| | | if (tempDeviceEnum.ConcreteType == Common.DeviceConcreteType.Airer) |
| | | { |
| | | mainKeys = report.DeviceAddr + "_" + 1; |
| | | } |
| | | |
| | | if (this.dicDeviceCardControl.ContainsKey(mainKeys) == true) |
| | | { |
| | | //刷新卡片信息 |