HDL Home App 第二版本 旧平台金堂用 正在使用
黄学彪
2020-06-10 dce6c3481a37216292724013ff9d2b75ceb82f86
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 ■ 显示控制设备是否成功的提示_________
@@ -140,6 +98,19 @@
                    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)
            {
@@ -333,9 +304,9 @@
                    //燃气
                    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)
                {
@@ -382,7 +353,15 @@
                    }
                    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)
            {