xm
2021-11-24 1802b849f0dadc81644fb0a706d6fb45efdf2a20
HDL_ON/UI/UI2/FuntionControlView/1ContorlPage/AcControlPage.cs
@@ -52,9 +52,13 @@
        AC acFunction = new AC();
        /// <summary>
        /// app自己控制的温度数值记录
        /// 控制时间
        /// </summary>
        List<string> seltControlTemp = new List<string>();
        DateTime controlTime = DateTime.MinValue.AddDays(10);
        /// <summary>
        /// 控制温度
        /// </summary>
        int temp = 16;
        #endregion
@@ -92,7 +96,19 @@
            //读取状态
            new System.Threading.Thread(() =>
            {
                while (true)
                {
                    if(controlTime == DateTime.MinValue)
                    {
                    }
                    else if (controlTime.AddSeconds(2)<DateTime.Now)
                    {
                Control.Ins.SendReadCommand(device);
                        controlTime = DateTime.MinValue;
                    }
                    System.Threading.Thread.Sleep(1000);
                }
            })
            { IsBackground = true }.Start();
        }
@@ -102,7 +118,7 @@
        /// </summary>
        private void InitFrameWhiteContent1()
        {
            temp = (int)Convert.ToDouble(device.GetAttrState(FunctionAttributeKey.SetTemp));
            arcBar = new DiyArcSeekBar()
            {
                Gravity = Gravity.CenterHorizontal,
@@ -829,13 +845,14 @@
                {
                    return;
                }
                var temp = (int)Convert.ToDouble(device.GetAttrState(FunctionAttributeKey.SetTemp));
                if (temp <= device.GetAttribute(FunctionAttributeKey.SetTemp).min)
                {
                    return;
                }
                temp--;
                seltControlTemp.Add(temp.ToString());
                --temp;
                Console.WriteLine($"temp == {temp}");
                controlTime = DateTime.Now;
                arcBar.Progress = temp;
                btnTemp.Text = temp.ToString();
                device.SetAttrState(FunctionAttributeKey.SetTemp, temp.ToString());
@@ -849,13 +866,12 @@
                {
                    return;
                }
                var temp = (int)Convert.ToDouble(device.GetAttrState(FunctionAttributeKey.SetTemp));
                if (temp >= device.GetAttribute(FunctionAttributeKey.SetTemp).max)
                {
                    return;
                }
                temp++;
                seltControlTemp.Add(temp.ToString());
                ++temp;
                controlTime = DateTime.Now;
                arcBar.Progress = temp;
                btnTemp.Text = temp.ToString();
                device.SetAttrState(FunctionAttributeKey.SetTemp, temp.ToString());
@@ -951,7 +967,13 @@
        {
            Application.RunOnMainThread(() =>
            {
                btnTemp.Text = Convert.ToDouble( device.GetAttrState(FunctionAttributeKey.SetTemp)).ToString();
                //app自己控制的不用更新,会造成跳动
                if (controlTime.AddSeconds(2) > DateTime.Now)
                {
                    return;
                }
                else
                {
                btnIndoorTemp.Text = Language.StringByID(StringId.IndoorTemp) + Convert.ToInt32(Convert.ToDouble(device.GetAttrState(FunctionAttributeKey.RoomTemp))) + "°C";
                btnMode.SelectedImagePath = acFunction.GetModeIconPath(device.GetAttrState(FunctionAttributeKey.Mode));
                btnSwing.SelectedImagePath = acFunction.GetSwingIconPath(device.GetAttrState(FunctionAttributeKey.Swing));
@@ -959,17 +981,11 @@
                btnMode.UnSelectedImagePath = acFunction.GetModeIconPath(device.GetAttrState(FunctionAttributeKey.Mode),false);
                btnSwing.UnSelectedImagePath = acFunction.GetSwingIconPath(device.GetAttrState(FunctionAttributeKey.Swing),false);
                btnWindSpeed.UnSelectedImagePath = acFunction.GetFanIconPath(device.GetAttrState(FunctionAttributeKey.FanSpeed),false);
                 var updataTemp = Convert.ToInt32(Convert.ToDouble(device.GetAttrState(FunctionAttributeKey.SetTemp)));
                    temp = Convert.ToInt32(Convert.ToDouble(device.GetAttrState(FunctionAttributeKey.SetTemp)));
                //app自己控制的不用更新,会造成跳动
                if (seltControlTemp.Contains(updataTemp.ToString()))
                {
                    seltControlTemp.Remove(updataTemp.ToString());
                }
                else
                {
                    arcBar.Progress = updataTemp;
                }
                    arcBar.Progress = temp;
                    btnTemp.Text = temp.ToString() ;
                if (device.trait_on_off.curValue.ToString() == "on")
                {
@@ -994,6 +1010,7 @@
                    arcBar.IsClickable = false;
                    arcBar.ThumbImagePath = "FunctionIcon/AC/DiyThumbIcon.png";
                }
                }
            });
        }