gxc
2020-02-28 66a9965c44ecc32a6696abca876ab9d1cd091584
ZigbeeApp/Shared/Common/SceneTargetDeviceUI.cs
@@ -12,7 +12,7 @@
    public class SceneTargetDeviceUI
    {
        /// <summary>
        /// 场景添加对象的类型 默认0设备 1时间段  2场景
        /// 场景添加对象的类型 默认0设备 2时间段  1其他场景
        /// </summary>
        public int Type = 0;
        /// <summary>
@@ -25,35 +25,157 @@
        /// Type=0 存在
        /// </summary>
        public DeviceUI DeviceUI = new DeviceUI();
        /// <summary>
        /// Type=0、1、2 存在
        /// 延时时间
        /// Type=1 存在
        /// </summary>
        public int DelayTime = 0;
        /// <summary>
        /// 当Type=2时存在
        /// 延时执行序号,表示第几个延时动作
        /// </summary>
        public int DelayTimeSerialNumber = 0;
        /// <summary>
        /// 选择的场景
        /// Type=2 存在
        /// Type=1 存在
        /// </summary>
        public SceneUI SceneUI = new SceneUI();
        /// <summary>
        /// 作为成员的其他场景id。
        /// Type=2 存在
        /// Type=1 存在
        /// </summary>
        public int ElseScenesId = 0;
        /// <summary>
        /// 场景名称
        /// Type=2 存在
        /// Type=1 存在
        /// </summary>
        public string SceneName = string.Empty;
        /// <summary>
        /// 唯一标识--HashCode
        /// DateTime.Now.ToString("yyyyMMddHHmmss", DateTimeFormatInfo.InvariantInfo)
        /// </summary>
        public string SceneTargetDeviceUIID
        public string SceneTargetDeviceUIID = Guid.NewGuid().ToString();
        /// <summary>
        /// GetDeviceStatu
        /// </summary>
        /// <returns></returns>
        public string GetDeviceStatu()
        {
            get
            if (DeviceUI.CommonDevice.Type == ZigBee.Device.DeviceType.OnOffOutput)
            {
                return GetHashCode().ToString();
                if (TaskList.Count == 0)
                {
                    return null;
                }
                if (TaskList[0].Data1 == 1)
                {
                    return Language.StringByID(R.MyInternationalizationString.Open);
                }
                return Language.StringByID(R.MyInternationalizationString.Shut);
            }
            else if (DeviceUI.CommonDevice.Type == ZigBee.Device.DeviceType.AirSwitch)
            {
                if (TaskList.Count == 0)
                {
                    return null;
                }
                if (TaskList[0].Data1 == 1)
                {
                    return Language.StringByID(R.MyInternationalizationString.Open);
                }
                return Language.StringByID(R.MyInternationalizationString.Shut);
            }
            else if (DeviceUI.CommonDevice.Type == ZigBee.Device.DeviceType.DimmableLight)
            {
                if (TaskList.Count == 0)
                {
                    return null;
                }
                if (TaskList[0].Data1 == 0)
                {
                    return Language.StringByID(R.MyInternationalizationString.Shut);
                }
                return $"{(int)(TaskList[0].Data1 * 1.0 / 254 * 100)}%";
            }
            else if (DeviceUI.CommonDevice.Type == ZigBee.Device.DeviceType.WindowCoveringDevice)
            {
                if (TaskList.Count == 0)
                {
                    return null;
                }
                if (TaskList[0].Data1 == 1)
                {
                    return Language.StringByID(R.MyInternationalizationString.Shut);
                }
                return $"{TaskList[0].Data2}%";
            }
            else if (DeviceUI.CommonDevice.Type == ZigBee.Device.DeviceType.Thermostat)
            {
                //温度,模式,风速
                string tempareture = string.Empty;
                string model = string.Empty;
                string wind = string.Empty;
                if (TaskList.Count == 0)
                {
                    return null;
                }
                foreach(var taskListInfo in TaskList)
                {
                    if(taskListInfo.Data1==3)
                    {
                        if(taskListInfo.Data2==0)
                        {
                            return Language.StringByID(R.MyInternationalizationString.Shut);
                        }
                        else if(taskListInfo.Data2==1)
                        {
                            model = Language.StringByID(R.MyInternationalizationString.Mode_Auto);
                        }
                        else if(taskListInfo.Data2==3)
                        {
                            model = Language.StringByID(R.MyInternationalizationString.Mode_Cool);
                        }
                        else if (taskListInfo.Data2 == 4)
                        {
                            model = Language.StringByID(R.MyInternationalizationString.Mode_Heat);
                        }
                        else if (taskListInfo.Data2 == 7)
                        {
                            model = Language.StringByID(R.MyInternationalizationString.Mode_FanOnly);
                        }
                        else if (taskListInfo.Data2 == 8)
                        {
                            model = Language.StringByID(R.MyInternationalizationString.Mode_Dry);
                        }
                    }
                    else if(taskListInfo.Data1==4 || taskListInfo.Data1==5)
                    {
                        tempareture = $"{ taskListInfo.Data2/100} ℃";
                    }
                    else if (taskListInfo.Data1 == 6)
                    {
                        if (taskListInfo.Data2 == 1)
                        {
                            wind = Language.StringByID(R.MyInternationalizationString.Fan_Low);
                        }
                        else if(taskListInfo.Data2 ==2)
                        {
                            wind = Language.StringByID(R.MyInternationalizationString.Fan_Middle);
                        }
                        else if (taskListInfo.Data2 == 3)
                        {
                            wind = Language.StringByID(R.MyInternationalizationString.Fan_Height);
                        }
                    }
                }
                return $"{tempareture},{model},{wind}";
            }
            else
            {
                return null;
            }
        }
    }