| | |
| | | }
|
| | | }
|
| | |
|
| | | /// <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 ■ 显示控制设备是否成功的提示_________
|
| | |
| | | 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)
|
| | | {
|
| | |
| | | //燃气
|
| | | 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)
|
| | | {
|
| | |
| | | }
|
| | | return Language.StringByID(R.MyInternationalizationString.IASZone_Statu_Normal);
|
| | | }
|
| | | return null;
|
| | | 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)
|
| | | {
|