From c7df85937f73fb347ee0b19e9c052d2d00a6df6c Mon Sep 17 00:00:00 2001 From: 黄学彪 <hxb@hdlchina.com.cn> Date: 星期五, 18 九月 2020 13:58:19 +0800 Subject: [PATCH] 新版本 --- ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlDeviceOtherLogic.cs | 175 +++++++++++++++++++++++++++++++++++++++------------------ 1 files changed, 119 insertions(+), 56 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlDeviceOtherLogic.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlDeviceOtherLogic.cs index 179faf5..7ee279d 100755 --- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlDeviceOtherLogic.cs +++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlDeviceOtherLogic.cs @@ -32,48 +32,6 @@ } } - /// <summary> - /// 鎺у埗寤舵椂榛樿鍙嶉鐨勭嚎绋嬪垪琛� - /// </summary> - private List<System.Threading.Thread> ListThreads = new List<System.Threading.Thread> { }; - - #endregion - - #region 鈻� 鍙戦�佹帶鍒跺懡浠ゅ欢鏃跺弽棣坃______________ - - /// <summary> - /// 鍙戦�佹帶鍒跺懡浠ゅ欢鏃跺弽棣� - /// </summary> - /// <param name="commonDevice">Common device.</param> - /// <param name="action">Action.</param> - /// <param name="delayTime">Delay time.</param> - public void SendCommandDelayAction(CommonDevice commonDevice, Action action, int delayTime = 3) - { - var threadName = commonDevice.GetHashCode().ToString(); - if (ListThreads.Find((obj) => obj.Name == threadName) == null) - { - var thread = new System.Threading.Thread(() => - { - var dateTime = DateTime.Now; - while ((DateTime.Now - dateTime).TotalSeconds < delayTime) - { - System.Threading.Thread.Sleep(100); - } - lock (ListThreads) - { - ListThreads.RemoveAll((obj) => obj.Name == threadName); - } - action?.Invoke(); - }) - { IsBackground = true, Name = threadName }; - lock (ListThreads) - { - ListThreads.Add(thread); - } - thread.Start(); - } - } - #endregion #region 鈻� 鏄剧ず鎺у埗璁惧鏄惁鎴愬姛鐨勬彁绀篲________ @@ -135,11 +93,24 @@ { return Language.StringByID(R.MyInternationalizationString.uOffLine); } - if ((device as DimmableLight).OnOffStatus == 0 || (device as DimmableLight).Level == 0) + if ((device as DimmableLight).OnOffStatus == 0) { return Language.StringByID(R.MyInternationalizationString.Close); } return $"{(int)((device as DimmableLight).Level * 1.0 / 254 * 100)}%"; + } + else if (device.Type == DeviceType.ColorTemperatureLight) + { + //鍦ㄧ綉鍏虫病鏈夊洖澶嶄箣鍓�,榛樿绂荤嚎 + if (device.HadReadDeviceStatu == false) + { + return Language.StringByID(R.MyInternationalizationString.uOffLine); + } + if ((device as ColorTemperatureLight).OnOffStatus == 0) + { + return Language.StringByID(R.MyInternationalizationString.Close); + } + return $"{(int)((device as ColorTemperatureLight).Level * 1.0 / 254 * 100)}%"; } else if (device.Type == DeviceType.WindowCoveringDevice) { @@ -153,6 +124,81 @@ return Language.StringByID(R.MyInternationalizationString.Close); } return $"{(device as Rollershade).WcdCurrentPositionLiftPercentage}%"; + } + else if (device.Type == DeviceType.FreshAir) + { + //鍦ㄧ綉鍏虫病鏈夊洖澶嶄箣鍓�,榛樿绂荤嚎 + if (device.HadReadDeviceStatu == false) + { + return Language.StringByID(R.MyInternationalizationString.uOffLine); + } + + //妯″紡 + string wind = string.Empty; + var freshAir = device as FreshAir; + if (freshAir.currentFanStatus == 0) + { + return Language.StringByID(R.MyInternationalizationString.Close); + } + if (freshAir.currentFanSpeed == 1) + { + wind = Language.StringByID(R.MyInternationalizationString.Fan_Low); + } + else if (freshAir.currentFanSpeed == 2) + { + wind = Language.StringByID(R.MyInternationalizationString.Fan_Middle); + } + else if (freshAir.currentFanSpeed == 3) + { + wind = Language.StringByID(R.MyInternationalizationString.Fan_Height); + } + return $"{wind}"; + } + else if (device.Type == DeviceType.PMSensor) + { + //绌烘皵璐ㄩ噺 + string curQuality = ""; + //娓╁害 + string temperature = string.Empty; + //婀垮害 + string humidity = string.Empty; + //PM2.5 + string pm = string.Empty; + var pMSensor = device as PMSensor; + if (pMSensor.currentPmData <= 35 && pMSensor.currentPmData >= 0) + { + curQuality = Language.StringByID(R.MyInternationalizationString.ExcellentAirQuality); + } + else if (pMSensor.currentPmData <= 75 && pMSensor.currentPmData > 35) + { + curQuality = Language.StringByID(R.MyInternationalizationString.ExcellentAirQuality); + } + else if (pMSensor.currentPmData <= 115 && pMSensor.currentPmData > 75) + { + curQuality = Language.StringByID(R.MyInternationalizationString.ExcellentAirQuality); + } + else if (pMSensor.currentPmData <= 150 && pMSensor.currentPmData > 115) + { + curQuality = Language.StringByID(R.MyInternationalizationString.ExcellentAirQuality); + } + else if (pMSensor.currentPmData <= 250 && pMSensor.currentPmData > 150) + { + curQuality = Language.StringByID(R.MyInternationalizationString.ExcellentAirQuality); + } + else if (pMSensor.currentPmData > 250) + { + curQuality = Language.StringByID(R.MyInternationalizationString.ExcellentAirQuality); + } + else + { + curQuality = "--"; + } + + humidity = $"{pMSensor.currentHumidity}%"; + temperature = $"{pMSensor.currentTemperature}鈩�"; + pm = $"{pMSensor.currentPmData}渭g/m鲁"; + return $"{curQuality},{pm},{temperature},{humidity}"; + } else if (device.Type == DeviceType.Thermostat) { @@ -253,16 +299,16 @@ //鐕冩皵 if (ias.iASInfo?.Alarm1 == 1) { - return Language.StringByID(R.MyInternationalizationString.IASZone_Statu_Alarm); + return Language.StringByID(R.MyInternationalizationString.uGasLeakage); } - return Language.StringByID(R.MyInternationalizationString.IASZone_Statu_Safe); + return Language.StringByID(R.MyInternationalizationString.IASZone_Statu_Normal); } 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.uSmogAlarm); } return Language.StringByID(R.MyInternationalizationString.IASZone_Statu_Safe); } @@ -271,9 +317,9 @@ //pir if (ias.iASInfo?.Alarm1 == 1) { - return Language.StringByID(R.MyInternationalizationString.IASZone_Statu_Alarm); + return Language.StringByID(R.MyInternationalizationString.IASZone_Statu_HavePerson); } - return Language.StringByID(R.MyInternationalizationString.IASZone_Statu_Safe); + return Language.StringByID(R.MyInternationalizationString.IASZone_Statu_NoPerson); } else if (info.ConcreteType == DeviceConcreteType.Sensor_Keyfob) { @@ -289,9 +335,9 @@ //杩愬姩浼犳劅鍣� if (ias.iASInfo?.Alarm1 == 1) { - return Language.StringByID(R.MyInternationalizationString.IASZone_Statu_Alarm); + return Language.StringByID(R.MyInternationalizationString.IASZone_Statu_HavePerson); } - return Language.StringByID(R.MyInternationalizationString.IASZone_Statu_Normal); + return Language.StringByID(R.MyInternationalizationString.IASZone_Statu_NoPerson); } else if (info.ConcreteType == DeviceConcreteType.Sensor_EmergencyButton) { @@ -302,26 +348,43 @@ } return Language.StringByID(R.MyInternationalizationString.IASZone_Statu_Normal); } - return null; + else if (info.ConcreteType == DeviceConcreteType.Sensor_SphericalMotion) + { + //鐞冨瀷绉诲姩浼犳劅鍣� + if (ias.iASInfo?.Alarm1 == 1) + { + return Language.StringByID(R.MyInternationalizationString.IASZone_Statu_HavePerson); + } + return Language.StringByID(R.MyInternationalizationString.IASZone_Statu_NoPerson); + } + else + { + //鍏朵粬浼犳劅鍣� + if (ias.iASInfo?.Alarm1 == 1) + { + return Language.StringByID(R.MyInternationalizationString.IASZone_Statu_Alarm); + } + return Language.StringByID(R.MyInternationalizationString.IASZone_Statu_Normal); + } } else if (device.Type == DeviceType.TemperatureSensor) { var tempera = device as TemperatureSensor; if (tempera.SensorDiv == 1) { - if (tempera.Temperatrue == 0) + if (tempera.currentTemperature == 0) { - return "--鈩�"; + return "0.0鈩�"; } - return $"{tempera.Temperatrue}鈩�"; + return $"{tempera.currentTemperature}鈩�"; } else if (tempera.SensorDiv == 2) { - if (tempera.Humidity == 0) + if (tempera.currentHumidity == 0) { return "--%"; } - return $"{tempera.Humidity}%"; + return $"{tempera.currentHumidity}%"; } return null; } -- Gitblit v1.8.0