From 66a9965c44ecc32a6696abca876ab9d1cd091584 Mon Sep 17 00:00:00 2001 From: gxc <guoxuecheng@guoxuechengdeMacBook-Pro.local> Date: 星期五, 28 二月 2020 15:25:13 +0800 Subject: [PATCH] 2020.2.28 --- ZigbeeApp/Shared/Common/DeviceUI.cs | 252 ++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 240 insertions(+), 12 deletions(-) diff --git a/ZigbeeApp/Shared/Common/DeviceUI.cs b/ZigbeeApp/Shared/Common/DeviceUI.cs old mode 100755 new mode 100644 index 01b042b..88c0ada --- a/ZigbeeApp/Shared/Common/DeviceUI.cs +++ b/ZigbeeApp/Shared/Common/DeviceUI.cs @@ -35,9 +35,9 @@ var myDevice = Common.LocalDevice.Current.GetDevice(DeviceAddr, DeviceEpoint); if (myDevice != null) { - return $"DeviceUI_{myDevice.FilePath}"; + return myDevice.FilePath; } - return $"DeviceUI_Unkwon"; + return $"Device_Unkwon"; } } @@ -178,38 +178,42 @@ { case DeviceType.OnOffSwitch: //鎺у埗闈㈡澘 - ImagePath= "Device/DryContact.png"; + ImagePath = "Device/DryContact.png"; break; case DeviceType.OnOffOutput: //缁х數鍣� - ImagePath= "Device/Relay.png"; + ImagePath = "Device/Relay.png"; break; case DeviceType.DimmableLight: //璋冨厜鐏� - ImagePath= "Device/DimmableLight.png"; + ImagePath = "Device/DimmableLight.png"; break; case DeviceType.WindowCoveringDevice: //绐楀笜 - ImagePath= "Device/Curtain.png"; + ImagePath = "Device/Curtain.png"; break; case DeviceType.Thermostat: //绌鸿皟 - ImagePath= "Device/AirConditioner.png"; + ImagePath = "Device/AirConditioner.png"; break; case DeviceType.IASZone: //浼犳劅鍣� - ImagePath= "Device/Sensor.png"; + ImagePath = "Device/Sensor.png"; break; case DeviceType.AirSwitch: //绌烘皵寮�鍏� - ImagePath= "Device/AirSwitch.png"; + ImagePath = "Device/AirSwitch.png"; break; case DeviceType.Repeater: //涓户鍣� ImagePath = "Device/AirSwitch.png"; break; + case DeviceType.TemperatureSensor: + //娓╂箍搴︿紶鎰熷櫒 + ImagePath = "Device/Sensor.png"; + break; default: - ImagePath= "Device/Relay.png"; + ImagePath = "Device/Relay.png"; break; } return ImagePath; @@ -304,6 +308,15 @@ //涓户鍣� deviceTypeR = R.MyInternationalizationString.Repeater; break; + case DeviceType.DoorLock: + //闂ㄩ攣 + deviceTypeR = R.MyInternationalizationString.DoorLock; + break; + + case DeviceType.TemperatureSensor: + //娓╁害浼犳劅鍣� + deviceTypeR = R.MyInternationalizationString.TemperatureAndHumiditySensor; + break; default: deviceTypeR = R.MyInternationalizationString.UnknowDevice; break; @@ -324,9 +337,13 @@ var room = Room.CurrentRoom.GetRoomByDevice(CommonDevice); if (room == null) { - return null; + return Language.StringByID(R.MyInternationalizationString.UnallocatedArea); } - var floorName = Shared.Common.Config.Instance.Home.GetFloorNameById(room.FloorId); + if(string.IsNullOrEmpty(room.FloorId)) + { + return room.Name; + } + var floorName = Config.Instance.Home.GetFloorNameById(room.FloorId); if (floorName == null) { return room.Name; @@ -335,5 +352,216 @@ } #endregion + + /// <summary> + /// GetDeviceStatu + /// </summary> + /// <returns></returns> + public string GetDeviceStatu() + { + var device = CommonDevice; + if (device.Type == DeviceType.OnOffOutput) + { + if ((device as ToggleLight).OnOffStatus == 1) + { + return Language.StringByID(R.MyInternationalizationString.Open); + } + return Language.StringByID(R.MyInternationalizationString.Shut); + } + else if (device.Type == DeviceType.AirSwitch) + { + if ((device as ZigBee.Device.AirSwitch).OnOffStatus == 1) + { + return Language.StringByID(R.MyInternationalizationString.Open); + } + return Language.StringByID(R.MyInternationalizationString.Shut); + } + else if (device.Type == DeviceType.DimmableLight) + { + if ((device as DimmableLight).OnOffStatus == 0 || (device as DimmableLight).Level == 0) + { + return Language.StringByID(R.MyInternationalizationString.Shut); + } + return $"{(int)((device as DimmableLight).Level * 1.0 / 254 * 100)}%"; + } + else if (device.Type == DeviceType.WindowCoveringDevice) + { + if ((device as Rollershade).WcdCurrentPositionLiftPercentage == 0) + { + return Language.StringByID(R.MyInternationalizationString.Shut); + } + return $"{(device as Rollershade).WcdCurrentPositionLiftPercentage}%"; + } + else if (device.Type == DeviceType.Thermostat) + { + //娓╁害锛屾ā寮忥紝椋庨�� + string tempareture = string.Empty; + string model = string.Empty; + string wind = string.Empty; + + var ac = CommonDevice as AC; + + if (ac.currentSystemMode == 0) + { + return Language.StringByID(R.MyInternationalizationString.Shut); + } + else if (ac.currentSystemMode == 1) + { + model = Language.StringByID(R.MyInternationalizationString.Mode_Auto); + tempareture = $"{ac.currentCoolingSetpoint} 鈩�"; + } + else if (ac.currentSystemMode == 3) + { + model = Language.StringByID(R.MyInternationalizationString.Mode_Cool); + tempareture = $"{ac.currentCoolingSetpoint} 鈩�"; + } + else if (ac.currentSystemMode == 4) + { + model = Language.StringByID(R.MyInternationalizationString.Mode_Heat); + tempareture = $"{ac.currentHeatingSetpoint} 鈩�"; + } + else if (ac.currentSystemMode == 7) + { + model = Language.StringByID(R.MyInternationalizationString.Mode_FanOnly); + } + else if (ac.currentSystemMode == 8) + { + model = Language.StringByID(R.MyInternationalizationString.Mode_Dry); + tempareture = $"{ac.currentCoolingSetpoint} 鈩�"; + } + + if (ac.currentFanMode == 1) + { + wind = Language.StringByID(R.MyInternationalizationString.Fan_Low); + } + else if (ac.currentFanMode == 2) + { + wind = Language.StringByID(R.MyInternationalizationString.Fan_Middle); + } + else + { + wind = Language.StringByID(R.MyInternationalizationString.Fan_Height); + } + + if (string.IsNullOrEmpty(tempareture)) + { + return $"{model},{wind}"; + } + return $"{model},{wind},{tempareture}"; + } + else if (device.Type == DeviceType.IASZone) + { + var ias = CommonDevice as IASZone; + //鍖哄垎浼犳劅鍣ㄥ叿浣撶被鍨� + var info = Common.LocalDevice.Current.GetNotHdlMyDeviceEnumInfo(new List<CommonDevice> { device },false); + if (info.ConcreteType == DeviceConcreteType.Sensor_Infrared) + { + //绾㈠ + if (ias.iASInfo?.Alarm1 == 1) + { + return Language.StringByID(R.MyInternationalizationString.IASZone_Statu_HavePerson); + } + return Language.StringByID(R.MyInternationalizationString.IASZone_Statu_NoPerson); + } + else if (info.ConcreteType == DeviceConcreteType.Sensor_Water) + { + //姘存蹈 + if (ias.iASInfo?.Alarm1 == 1) + { + return Language.StringByID(R.MyInternationalizationString.IASZone_Statu_HaveWater); + } + return Language.StringByID(R.MyInternationalizationString.IASZone_Statu_Normal); + } + else if (info.ConcreteType == DeviceConcreteType.Sensor_DoorWindow) + { + //闂ㄧ獥 + if (ias.iASInfo?.Alarm1 == 1) + { + return Language.StringByID(R.MyInternationalizationString.IASZone_Statu_Open); + } + return Language.StringByID(R.MyInternationalizationString.IASZone_Statu_Close); + } + else if (info.ConcreteType == DeviceConcreteType.Sensor_CarbonMonoxide) + { + //鐕冩皵 + if (ias.iASInfo?.Alarm1 == 1) + { + return Language.StringByID(R.MyInternationalizationString.IASZone_Statu_Alarm); + } + return Language.StringByID(R.MyInternationalizationString.IASZone_Statu_Safe); + } + else if (info.ConcreteType == DeviceConcreteType.Sensor_Fire) + { + //鐑熼浘 + if (ias.iASInfo?.Alarm1 == 1) + { + return Language.StringByID(R.MyInternationalizationString.IASZone_Statu_Alarm); + } + return Language.StringByID(R.MyInternationalizationString.IASZone_Statu_Safe); + } + else if (info.ConcreteType == DeviceConcreteType.Sensor_Pir) + { + //pir + if (ias.iASInfo?.Alarm1 == 1) + { + return Language.StringByID(R.MyInternationalizationString.IASZone_Statu_Alarm); + } + return Language.StringByID(R.MyInternationalizationString.IASZone_Statu_Safe); + } + else if (info.ConcreteType == DeviceConcreteType.Sensor_Keyfob) + { + //閽ュ寵鎵� + if (ias.iASInfo?.Alarm1 == 1) + { + return Language.StringByID(R.MyInternationalizationString.IASZone_Statu_Alarm); + } + return Language.StringByID(R.MyInternationalizationString.IASZone_Statu_Normal); + } + else if (info.ConcreteType == DeviceConcreteType.Sensor_Motion) + { + //杩愬姩浼犳劅鍣� + if (ias.iASInfo?.Alarm1 == 1) + { + return Language.StringByID(R.MyInternationalizationString.IASZone_Statu_Alarm); + } + return Language.StringByID(R.MyInternationalizationString.IASZone_Statu_Normal); + } + else if (info.ConcreteType == DeviceConcreteType.Sensor_EmergencyButton) + { + //绱ф�ユ寜閽� + if (ias.iASInfo?.Alarm1 == 1) + { + return Language.StringByID(R.MyInternationalizationString.IASZone_Statu_Alarm); + } + return Language.StringByID(R.MyInternationalizationString.IASZone_Statu_Normal); + } + return null; + } + else if (device.Type == DeviceType.TemperatureSensor) + { + var tempera = CommonDevice as TemperatureSensor; + if(tempera.SensorDiv==1) + { + if (tempera.Temperatrue == 0) + { + return "--鈩�"; + } + return $"{tempera.Temperatrue}鈩�"; + } + else if(tempera.SensorDiv==2) + { + if (tempera.Humidity == 0) + { + return "--%"; + } + return $"{tempera.Humidity}%"; + } + return null; + } + else + { + return null; + } + } } } -- Gitblit v1.8.0