From 623b1b77900ca2804d76426e5e0c003249eef324 Mon Sep 17 00:00:00 2001
From: wxr <464027401@qq.com>
Date: 星期一, 09 一月 2023 14:03:58 +0800
Subject: [PATCH] 方悦0.5精度空调

---
 HDL_ON/UI/UI2/FuntionControlView/1ContorlPage/AcControlPage.cs |  395 ++++++++++++++++++++++++--------------------------------
 1 files changed, 171 insertions(+), 224 deletions(-)

diff --git a/HDL_ON/UI/UI2/FuntionControlView/1ContorlPage/AcControlPage.cs b/HDL_ON/UI/UI2/FuntionControlView/1ContorlPage/AcControlPage.cs
index be06592..3b3a26d 100644
--- a/HDL_ON/UI/UI2/FuntionControlView/1ContorlPage/AcControlPage.cs
+++ b/HDL_ON/UI/UI2/FuntionControlView/1ContorlPage/AcControlPage.cs
@@ -14,15 +14,16 @@
         /// <summary>
         /// 绌鸿皟娓╁害鎺у埗鎺т欢
         /// </summary>
-        DiyArcSeekBar arcBar;
+        //DiyArcSeekBar arcBar;
+        DiyImageSeekBar setTempBar;
         /// <summary>
         /// 鍑忓彿鎸夐挳
         /// </summary>
-        Button btnMinus;
+        //Button btnMinus;
         /// <summary>
         /// 鍔犲彿鎸夐挳
         /// </summary>
-        Button btnPlus;
+        //Button btnPlus;
         /// <summary>
         /// 娓╁害鎸夐挳
         /// </summary>
@@ -55,10 +56,6 @@
         /// 鎺у埗鏃堕棿
         /// </summary>
         DateTime controlTime = DateTime.MinValue.AddDays(10);
-        /// <summary>
-        /// 鎺у埗娓╁害
-        /// </summary>
-        int temp = 16;
 
         #endregion
 
@@ -95,23 +92,6 @@
             this.RefreshFormStatu();
             //璇诲彇鐘舵��
             Control.Ins.SendReadCommand(device);
-            //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();
         }
 
         /// <summary>
@@ -121,7 +101,7 @@
         {
             //鑾峰彇娓╁害鍊�
             string setTempTemp = device.GetAttrState(FunctionAttributeKey.SetTemp);
-            temp = (int) Convert.ToDouble(setTempTemp);
+            var temp = (int)Convert.ToDouble(setTempTemp);
             if (temp <= 0)
             {
                 //榛樿鍊兼敼鎴�16,2022骞�06鏈�10鏃�10:03:19 鎴愮敨瑕佹眰鐨�
@@ -130,99 +110,123 @@
             }
 
 
-
-            arcBar = new DiyArcSeekBar()
+            var setTempAttr = device.GetAttribute(FunctionAttributeKey.SetTemp);
             {
-                Gravity = Gravity.CenterHorizontal,
-                OpenAngle = 160,
-                ThumbImageHeight = Application.GetRealWidth(50),
-                ProgressBarColor = CSS_Color.MainColor,
-                OfflineProgressBarColor = CSS_Color.PromptingColor2,
-                ArcColor = CSS_Color.BackgroundColor,
-#if __IOS__
-                Y = Application.GetRealHeight(120 + 25),
-                Width = Application.GetRealWidth(260 - 40),
-                Height = Application.GetRealWidth(260 - 40),
-                SeekBarPadding = Application.GetRealWidth(8),
-#else
-                            Y = Application.GetRealHeight(120 + 40),
-                            Width = Application.GetRealWidth(260 - 40),
-                            Height = Application.GetRealWidth(260 - 40),
-                            SeekBarPadding = Application.GetRealWidth(7),
-#endif
-
-            };
-            FrameWhiteCentet1.AddChidren(arcBar);
-
-            
-            arcBar.ThumbImagePath = device.GetAttrState(FunctionAttributeKey.OnOff) == "on" ? "FunctionIcon/AC/DiyThumbIconOn.png" : "FunctionIcon/AC/DiyThumbIcon.png";
-            arcBar.IsOffline = device.GetAttrState(FunctionAttributeKey.OnOff) == "off";
-            arcBar.MinValue = device.GetAttribute(FunctionAttributeKey.SetTemp).min;
-            arcBar.MaxValue = device.GetAttribute(FunctionAttributeKey.SetTemp).max;
-            arcBar.Progress = temp;
-
-            btnTemp = new Button()
-            {
-                Gravity = Gravity.CenterHorizontal,
-                Y = Application.GetRealHeight(206),
-                Width = Application.GetRealWidth(71),
-                Height = Application.GetRealWidth(60),
-                TextColor = CSS_Color.FirstLevelTitleColor,
-                TextSize = 50,
-                IsBold = true,
-                Text = "111",
-                TextAlignment = TextAlignment.Center,
-            };
-            btnTemp.Width = btnTemp.GetTextWidth() + Application.GetRealWidth(5);
-            btnTemp.Text = Convert.ToDouble(temp).ToString();
-            FrameWhiteCentet1.AddChidren(btnTemp);
+                btnTemp = new Button()
+                {
+                    Y = Application.GetRealHeight(121),
+                    Gravity = Gravity.CenterHorizontal,
+                    Height = Application.GetRealHeight(70),
+                    TextAlignment = TextAlignment.TopCenter,
+                    TextColor = CSS_Color.FirstLevelTitleColor,
+                    TextSize = 60,
+                    Text = "---",
+                    IsBold = true,
+                };
+                if(setTempAttr.step == "0.5")
+                {
+                    btnTemp.Text = Convert.ToDouble(setTempAttr.curValue).ToString("0.0");
+                }
+                else
+                {
+                    btnTemp.Text = setTempAttr.curValue.ToString();
+                }
+                btnTemp.Width = btnTemp.GetTextWidth();
+                FrameWhiteCentet1.AddChidren(btnTemp);
 
 
-            btnTempUint = new Button()
-            {
-                X = btnTemp.Right,
-                Y = btnTemp.Y,
-                Width = Application.GetRealWidth(30),
-                Height = Application.GetRealHeight(30),
-                TextColor = CSS_Color.FirstLevelTitleColor,
-                TextSize = CSS_FontSize.EmphasisFontSize_Secondary,
-                IsBold = true,
-                TextAlignment = TextAlignment.CenterLeft,
-                Text = "掳C",
-            };
-            FrameWhiteCentet1.AddChidren(btnTempUint);
+                btnTempUint = new Button()
+                {
+                    X = btnTemp.Right,
+                    Y = Application.GetRealHeight(131),
+                    Width = Application.GetRealWidth(30),
+                    Height = Application.GetRealHeight(30),
+                    TextColor = CSS_Color.FirstLevelTitleColor,
+                    TextSize = CSS_FontSize.EmphasisFontSize_Secondary,
+                    IsBold = true,
+                    TextAlignment = TextAlignment.CenterLeft,
+                    Text = "掳C",
+                };
+                FrameWhiteCentet1.AddChidren(btnTempUint);
 
-            btnIndoorTemp = new Button()
-            {
-                Gravity = Gravity.CenterHorizontal,
-                Y = btnTemp.Bottom,
-                Width = Application.GetRealWidth(120),
-                Height = Application.GetRealHeight(20),
-                Text = Language.StringByID(StringId.Indoor) + " 20掳C",
-                TextColor = CSS_Color.PromptingColor1,
-                TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
-            };
-            FrameWhiteCentet1.AddChidren(btnIndoorTemp);
+                btnIndoorTemp = new Button()
+                {
+                    Gravity = Gravity.CenterHorizontal,
+                    Y = btnTemp.Bottom,
+                    Width = Application.GetRealWidth(120),
+                    Height = Application.GetRealHeight(30),
+                    Text = Language.StringByID(StringId.Indoor) + " 20掳C",
+                    TextColor = CSS_Color.PromptingColor1,
+                    TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
+                    TextAlignment = TextAlignment.TopCenter,
+                };
+                FrameWhiteCentet1.AddChidren(btnIndoorTemp);
 
-            btnMinus = new Button()
-            {
-                X = Application.GetRealWidth(21),
-                Y = Application.GetRealHeight(263),
-                Width = Application.GetRealWidth(32),
-                Height = Application.GetRealWidth(32),
-                UnSelectedImagePath = "Public/MinusSignIcon.png",
-            };
-            FrameWhiteCentet1.AddChidren(btnMinus);
+                var setTempView = new FrameLayout()
+                {
+                    Height = Application.GetRealHeight(80),
+                    Y = Application.GetRealHeight(10) + btnIndoorTemp.Bottom,
+                };
+                FrameWhiteCentet1.AddChidren(setTempView);
 
-            btnPlus = new Button()
-            {
-                X = Application.GetRealWidth(275),
-                Y = Application.GetRealHeight(263),
-                Width = Application.GetRealWidth(32),
-                Height = Application.GetRealWidth(32),
-                UnSelectedImagePath = "Public/PlusSignIcon.png",
-            };
-            FrameWhiteCentet1.AddChidren(btnPlus);
+                var btnMinTemp = new Button()
+                {
+                    X = Application.GetRealWidth(26),
+                    Width = Application.GetRealWidth(18),
+                    TextAlignment = TextAlignment.Center,
+                    Text = setTempAttr.min.ToString(),
+                    TextSize = 12,
+                    TextColor = 0xFFC0C7D4,
+                };
+                setTempView.AddChidren(btnMinTemp);
+
+                setTempBar = new DiyImageSeekBar()
+                {
+                    X = btnMinTemp.Right,
+                    Y = Application.GetRealHeight(4),
+                    Width = Application.GetRealWidth(240),
+                    //Height = Application.GetRealHeight(41),
+                    //ProgressBarColor = CSS_Color.MainColor,
+                    //SeekBarBackgroundColor = CSS_Color.BackgroundColor,
+                    //MinValue = 16,
+                    //MaxValue = 30,
+                    //IsProgressTextShow = false,
+                    //ThumbImageHeight = 30,
+
+                    //Width = Application.GetRealWidth(238),
+                    Height = Application.GetRealHeight(72),
+                    SeekBarViewHeight = Application.GetRealHeight(14),
+                    ThumbImagePath = "FunctionIcon/Acst/ThumbImage.png",
+                    ThumbImageHeight = Application.GetRealHeight(51),
+                    ProgressBarColor = device.trait_on_off.curValue.ToString() == "on" ? CSS_Color.MainColor : CSS_Color.DividingLineColor,
+                    Progress = 0,
+                    SeekBarPadding = Application.GetRealWidth(20),
+                    IsProgressTextShow = false,
+                    ProgressChangeDelayTime = 0,
+                };
+                if (setTempAttr.step == "0.5")
+                {
+                    setTempBar.MaxValue = (setTempAttr.max - setTempAttr.min) * 2;
+                }
+                else
+                {
+                    setTempBar.MaxValue = (setTempAttr.max - setTempAttr.min);
+                }
+                setTempView.AddChidren(setTempBar);
+
+                var btnMaxTemp = new Button()
+                {
+                    X = setTempBar.Right,
+                    Width = Application.GetRealWidth(18),
+                    TextAlignment = TextAlignment.Center,
+                    Text = setTempAttr.max.ToString(),
+                    TextSize = 12,
+                    TextColor = 0xFFC0C7D4,
+                };
+                setTempView.AddChidren(btnMaxTemp);
+
+            }
+
 
             btnMode = new Button()
             {
@@ -271,7 +275,33 @@
             };
             FrameWhiteCentet1.AddChidren(btnSwitch);
 
-            LoadEvent_TempChange();
+            setTempBar.OnProgressChangedEvent = (sender, e) => {
+                if (setTempAttr.step == "0.5")
+                {
+                    btnTemp.Text = (setTempAttr.min + ((double)e / 2)).ToString("0.0");
+                }
+                else
+                {
+                    btnTemp.Text = (setTempAttr.min + e).ToString();
+                }
+            };
+            setTempBar.OnStopTrackingTouchEvent = (sender,e) =>{
+                temp = e;
+                device.SetAttrState(FunctionAttributeKey.SetTemp, e.ToString());
+                if (setTempAttr.step == "0.5")
+                {
+                    btnTemp.Text = (setTempAttr.min + ((double)e / 2)).ToString("0.0");
+                }
+                else
+                {
+                    btnTemp.Text = (setTempAttr.min + e).ToString();
+                }
+                controlTime = DateTime.Now;
+                Dictionary<string, string> d = new Dictionary<string, string>();
+                d.Add(FunctionAttributeKey.SetTemp, e.ToString());
+                Control.Ins.SendWriteCommand(device, d);
+            };
+
             LoadEvent_AcStatesChange();
 
             LoadDiv_IrView();
@@ -391,13 +421,14 @@
                     dialog.Close();
                     if (device.GetAttrState(FunctionAttributeKey.Mode) == "fan")
                     {
-                        arcBar.IsClickable = false;
-                        arcBar.IsOffline = true;
+
+                        setTempBar.IsClickable = false;
+                        setTempBar.IsOffline = true;
                     }
                     else
                     {
-                        arcBar.IsOffline = false;
-                        arcBar.IsClickable = true;
+                        setTempBar.IsOffline = false;
+                        setTempBar.IsClickable = true;
                     }
                 };
                 btnModeIcon.MouseUpEventHandler = eventHandler1;
@@ -890,96 +921,6 @@
         /// </summary>
         void LoadEvent_TempChange()
         {
-            btnMinus.MouseUpEventHandler = (sender, e) =>
-            {
-                //if (!device.online)
-                //{
-                //    new Tip()
-                //    {
-                //        CloseTime = 1,
-                //        Text = Language.StringByID(StringId.DeviceOfflineCannotOption),
-                //        Direction = AMPopTipDirection.None,
-                //    }.Show(MainPage.BaseView);
-                //}
-                if (device.trait_on_off.curValue.ToString() == "off" || device.GetAttrState(FunctionAttributeKey.Mode) == "fan")
-                {
-                    return;
-                }
-
-                if (temp <= device.GetAttribute(FunctionAttributeKey.SetTemp).min)
-                {
-                    return;
-                }
-                --temp;
-                Console.WriteLine($"temp == {temp}");
-                controlTime = DateTime.Now;
-                arcBar.Progress = temp;
-                btnTemp.Text = temp.ToString();
-                //btnTemp.Width = btnTemp.GetTextWidth() + Application.GetRealWidth(5);
-                //btnTempUint.X = btnTemp.Right;
-                device.SetAttrState(FunctionAttributeKey.SetTemp, temp.ToString());
-                System.Collections.Generic.Dictionary<string, string> d = new System.Collections.Generic.Dictionary<string, string>();
-                d.Add(FunctionAttributeKey.SetTemp, temp.ToString());
-                Control.Ins.SendWriteCommand(device, d);
-            };
-            btnPlus.MouseUpEventHandler = (sender, e) =>
-            {
-                //if (!device.online)
-                //{
-                //    new Tip()
-                //    {
-                //        CloseTime = 1,
-                //        Text = Language.StringByID(StringId.DeviceOfflineCannotOption),
-                //        Direction = AMPopTipDirection.None,
-                //    }.Show(MainPage.BaseView);
-                //}
-                if (device.trait_on_off.curValue.ToString() == "off" || device.GetAttrState(FunctionAttributeKey.Mode) == "fan")
-                {
-                    return;
-                }
-                if (temp >= device.GetAttribute(FunctionAttributeKey.SetTemp).max)
-                {
-                    return;
-                }
-                ++temp;
-                controlTime = DateTime.Now;
-                arcBar.Progress = temp;
-                btnTemp.Text = temp.ToString();
-                //btnTemp.Width = btnTemp.GetTextWidth() + Application.GetRealWidth(5);
-                //btnTempUint.X = btnTemp.Right;
-                device.SetAttrState(FunctionAttributeKey.SetTemp, temp.ToString());
-                System.Collections.Generic.Dictionary<string, string> d = new System.Collections.Generic.Dictionary<string, string>();
-                d.Add(FunctionAttributeKey.SetTemp, temp.ToString());
-                Control.Ins.SendWriteCommand(device, d);
-            };
-            //if (device.online)
-            {
-                arcBar.OnStopTrackingTouchEvent = (sender, e) =>
-                {
-                    temp = arcBar.Progress;
-                    device.SetAttrState(FunctionAttributeKey.SetTemp, arcBar.Progress.ToString());
-                    btnTemp.Text = arcBar.Progress.ToString();
-                    controlTime = DateTime.Now;
-                    Dictionary<string, string> d = new Dictionary<string, string>();
-                    d.Add(FunctionAttributeKey.SetTemp, arcBar.Progress.ToString());
-                    Control.Ins.SendWriteCommand(device, d);
-                };
-                arcBar.OnProgressChangedEvent = (sender, e) =>
-                {
-                    device.SetAttrState(FunctionAttributeKey.SetTemp, e.ToString());
-                    btnTemp.Text = e.ToString();
-                    //btnTemp.Width = btnTemp.GetTextWidth() + Application.GetRealWidth(5);
-                    //btnTempUint.X = btnTemp.Right;
-                };
-                //arcBar.MouseDownEventHandler = (sender, e) => {
-                //    Console.WriteLine("ddd");
-                //    MainPage.BasePageView.ScrollEnabled =false;
-                //};
-                //arcBar.MouseUpEventHandler = (sender, e) => {
-                //    Console.WriteLine("ddd2");
-                //    MainPage.BasePageView.ScrollEnabled = true;
-                //};
-            }
         }
 
         /// <summary>
@@ -1028,15 +969,13 @@
                 device.trait_on_off.curValue = btnSwitch.IsSelected ? "on" : "off";
                 if (device.trait_on_off.curValue.ToString() == "on")
                 {
-                    arcBar.ThumbImagePath = "FunctionIcon/AC/DiyThumbIconOn.png";
                     btnSwitch.IsSelected = true;
-                    arcBar.IsOffline = false;
+                    setTempBar.IsOffline = false;
                 }
                 else
                 {
-                    arcBar.ThumbImagePath = "FunctionIcon/AC/DiyThumbIcon.png";
                     btnSwitch.IsBold = false;
-                    arcBar.IsOffline = true;
+                    setTempBar.IsOffline = true;
                 }
                 System.Collections.Generic.Dictionary<string, string> d = new System.Collections.Generic.Dictionary<string, string>();
                 d.Add(FunctionAttributeKey.OnOff, device.trait_on_off.curValue.ToString());
@@ -1071,42 +1010,50 @@
                     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);
-                    temp = Convert.ToInt32(Convert.ToDouble(device.GetAttrState(FunctionAttributeKey.SetTemp).Replace(",", ".")));
-                   
+                    
+                    if (device.GetAttribute(FunctionAttributeKey.SetTemp).step == "0.5")
+                    {
+                        var t = Convert.ToDouble(device.GetAttrState(FunctionAttributeKey.SetTemp).Replace(",", "."));
+                        var temp = (int)(t * 2);
+                        setTempBar.Progress = temp - device.GetAttribute(FunctionAttributeKey.SetTemp).min * 2;
+                        btnTemp.Text = Convert.ToDouble(t).ToString("0.0");
+                    }
+                    else
+                    {
+                        var temp = Convert.ToInt32(Convert.ToDouble(device.GetAttrState(FunctionAttributeKey.SetTemp).Replace(",", ".")));
+                        setTempBar.Progress = temp - device.GetAttribute(FunctionAttributeKey.SetTemp).min;
+                        btnTemp.Text = temp.ToString();
+                    }
 
-                    arcBar.Progress = temp;
-                    btnTemp.Text = temp.ToString();
                     //btnTemp.Width = btnTemp.GetTextWidth() + Application.GetRealWidth(5);
                     //btnTempUint.X = btnTemp.Right;
 
                     if (device.trait_on_off.curValue.ToString() == "on")
                     {
                         btnMode.IsSelected = btnSwing.IsSelected = btnWindSpeed.IsSelected = true;
-                        arcBar.IsOffline = false;
+                        setTempBar.IsOffline = false;
                         btnSwitch.IsSelected = true;
-                        arcBar.ThumbImagePath = "FunctionIcon/AC/DiyThumbIconOn.png";
                         if (device.GetAttrState(FunctionAttributeKey.Mode) == "fan")
                         {
-                            arcBar.IsClickable = false;
+                            setTempBar.IsClickable = false;
                         }
                         else
                         {
-                            arcBar.IsClickable = true;
+                            setTempBar.IsClickable = true;
                         }
                     }
                     else
                     {
                         btnMode.IsSelected = btnSwing.IsSelected = btnWindSpeed.IsSelected = false;
-                        arcBar.IsOffline = true;
+                        setTempBar.IsOffline = true;
                         btnSwitch.IsSelected = false;
-                        arcBar.IsClickable = false;
-                        arcBar.ThumbImagePath = "FunctionIcon/AC/DiyThumbIcon.png";
+                        setTempBar.IsClickable = false;
                     }
 
                     if(device.GetAttrState(FunctionAttributeKey.Mode) == "dry")
                     {
-                        arcBar.IsOffline = true;
-                        arcBar.IsClickable = false;
+                        setTempBar.IsOffline = true;
+                        setTempBar.IsClickable = false;
 
                     }
                 }

--
Gitblit v1.8.0