From eeb6f0b4bf0a81834325638401d5fa404e53db93 Mon Sep 17 00:00:00 2001
From: wxr <wxr@hdlchina.com.cn>
Date: 星期四, 05 九月 2024 19:41:45 +0800
Subject: [PATCH] 金茂光伏储能,热水器;自动化,空调,地暖步进判断

---
 HDL_ON/UI/UI2/FuntionControlView/Acst/WaterHeaterJinmaoPage.cs |  217 +++++++++++++++++++++++++++--------------------------
 1 files changed, 110 insertions(+), 107 deletions(-)

diff --git a/HDL_ON/UI/UI2/FuntionControlView/Acst/WaterHeaterJinmaoPage.cs b/HDL_ON/UI/UI2/FuntionControlView/Acst/WaterHeaterJinmaoPage.cs
index 2202ec8..485c9a1 100644
--- a/HDL_ON/UI/UI2/FuntionControlView/Acst/WaterHeaterJinmaoPage.cs
+++ b/HDL_ON/UI/UI2/FuntionControlView/Acst/WaterHeaterJinmaoPage.cs
@@ -110,8 +110,8 @@
         Button flow_ElectricDriveValuesButton;
         string volumeString = string.Empty;
         string recyclVolumeString = string.Empty;
-        double volume = 0;
-        double recyclVolume = 0;
+        double volume = 0.00;
+        double recyclVolume = 0.00;
         int recyclVolumePercent = 0;
 
         /// <summary>
@@ -181,6 +181,8 @@
             initBottomView();
             initControlEvent();
             Control.Ins.SendReadCommand(function);
+
+            UpdateStatus();
         }
         /// <summary>
         /// 鍔犺浇鍐呭鍖哄煙
@@ -190,7 +192,7 @@
             contentView.AddChidren(new Button() { Height = Application.GetRealHeight(16) });
 
             #region 鐑按鍣ㄧ姸鎬�
-            var infoView = new FrameLayout()
+            FrameLayout infoView = new FrameLayout()
             {
                 Gravity = Gravity.CenterHorizontal,
                 Width = Application.GetRealWidth(343),
@@ -206,7 +208,7 @@
             {
                 X = 0 - Application.GetRealWidth(14),
                 Y = Application.GetRealWidth(12),
-                Width = Application.GetRealWidth(68 + 14),
+                Width = Application.GetRealWidth(82 + 14),
                 Height = Application.GetRealWidth(28),
                 BackgroundColor = 0x15FC9C04,
                 Radius = (uint)Application.GetRealWidth(14),
@@ -255,14 +257,18 @@
                 TextAlignment = TextAlignment.TopCenter,
                 Text = function.GetAttrState(WaterHeaterJinmao_AttrEnum.temp.ToString(), "---"),
             };
-            btnTempValues.Width = btnTempValues.GetTextWidth() + Application.GetRealWidth(8);
+            btnTempValues.Width = btnTempValues.GetTextWidth() + Application.GetRealWidth(6);
+            if (btnTempValues.Width > Application.GetRealWidth(80))
+            {
+                btnTempValues.TextSize = 28;
+            }
             btnTempValues.Gravity = Gravity.CenterHorizontal;
 
             infoView_Temp_View.AddChidren(btnTempValues);
 
             btnTempValuesUint = new Button()
             {
-                X = btnTempValues.Right - Application.GetRealWidth(4),
+                X = btnTempValues.Right,
                 Y = Application.GetRealWidth(40),
                 Height = Application.GetRealWidth(66),
                 TextAlignment = TextAlignment.TopLeft,
@@ -392,7 +398,7 @@
 
             #endregion
 
-            #region 璁剧疆娓╁害
+            #region 娓╁害璁剧疆
             var setTempView = new FrameLayout()
             {
                 Gravity = Gravity.CenterHorizontal,
@@ -462,13 +468,14 @@
                 SeekBarViewHeight = Application.GetRealHeight(14),
                 ThumbImagePath = "FunctionIcon/Acst/ThumbImage.png",
                 ThumbImageHeight = Application.GetRealHeight(51),
-                ProgressBarColor = function.trait_on_off.curValue.ToString() == "on" ? 0xFFFFB848 : CSS_Color.DividingLineColor,
-                MaxValue = 25,
-                Progress = setTempValue - 35,
+                ProgressBarColor =  0xFFFFB848 ,
+                MaxValue = 60,
+                MinValue = 35,
+                Progress = setTempValue,
                 SeekBarPadding = Application.GetRealWidth(20),
                 IsProgressTextShow = false,
-                ProgressChangeDelayTime = 0,
             };
+            setTemp_Bar.ProgressChangeDelayTime = 0;
             setTempView.AddChidren(setTemp_Bar);
 
             var setTemp_Temp_MinValuesTextButton = new Button()
@@ -625,8 +632,6 @@
             };
             flowView.AddChidren(flow_HeatRecoverytValuesButton);
 
-
-
             var flow_ElectricDriveTextButton = new Button()
             {
                 X = Application.GetRealWidth(343 - 116),
@@ -636,7 +641,7 @@
                 TextAlignment = TextAlignment.CenterRight,
                 TextSize = 14,
                 TextColor = 0xFFFC9C04,
-                Text = "鐢电洿椹遍噺"
+                Text = "鐢电洿椹遍噺",
             };
             flowView.AddChidren(flow_ElectricDriveTextButton);
 
@@ -649,8 +654,12 @@
                 TextAlignment = TextAlignment.CenterRight,
                 TextSize = 14,
                 TextColor = 0xFFFC9C04,
-                Text = (100 - recyclVolumePercent) + "%"
+                Text = "0%"
             };
+            if(volume > 0)
+            {
+                flow_ElectricDriveProgressButton.Text = (100 - recyclVolumePercent) + "%";
+            }
             flowView.AddChidren(flow_ElectricDriveProgressButton);
 
             flow_ElectricDriveValuesButton = new Button()
@@ -731,7 +740,7 @@
 
             socialContribution_Info1_UintButton = new Button()
             {
-                X = socialContribution_Info1_ValuesButton.Right - Application.GetRealWidth(4),
+                X = socialContribution_Info1_ValuesButton.Right ,
                 Y = Application.GetRealWidth(68),
                 Width = Application.GetRealWidth(50),
                 Height = Application.GetRealWidth(23),
@@ -798,7 +807,7 @@
 
             socialContribution_Info2_UintButton = new Button()
             {
-                X = socialContribution_Info2_ValuesButton.Right - Application.GetRealWidth(4),
+                X = socialContribution_Info2_ValuesButton.Right ,
                 Y = Application.GetRealWidth(68),
                 Width = Application.GetRealWidth(50),
                 Height = Application.GetRealWidth(23),
@@ -864,7 +873,7 @@
 
             socialContribution_Info3_UintButton = new Button()
             {
-                X = socialContribution_Info3_ValuesButton.Right - Application.GetRealWidth(4),
+                X = socialContribution_Info3_ValuesButton.Right ,
                 Y = Application.GetRealWidth(68),
                 Width = Application.GetRealWidth(50),
                 Height = Application.GetRealWidth(23),
@@ -907,7 +916,7 @@
                 Gravity = Gravity.CenterHorizontal,
                 Y = Application.GetRealWidth(16),
                 UnSelectedImagePath = "FunctionIcon/Acst/grey/PowerOffIcon.png",
-                SelectedImagePath = $"FunctionIcon/Acst/blue/PowerIcon.png",
+                SelectedImagePath = "FunctionIcon/Acst/blue/PowerIcon.png",
                 IsSelected = function.trait_on_off.curValue.ToString() == "on"
             };
             bottomView.AddChidren(btnPowerControl);
@@ -935,7 +944,6 @@
             //鑺傝兘妯″紡鎺у埗
             btnControlModeEconomic.MouseUpEventHandler = (sender, e) =>
             {
-                if (function.GetAttrState(WaterHeaterJinmao_AttrEnum.mode.ToString()) != WaterHeaterJinmao_Attr_ModeEnum.economic.ToString())
                 {
                     new System.Threading.Thread(() =>
                     {
@@ -954,7 +962,6 @@
             //閫熺儹妯″紡鎺у埗
             btnControlModeQuickHeat.MouseUpEventHandler = (sender, e) =>
             {
-                if (function.GetAttrState(WaterHeaterJinmao_AttrEnum.mode.ToString()) != WaterHeaterJinmao_Attr_ModeEnum.quick_heat.ToString())
                 {
                     new System.Threading.Thread(() =>
                     {
@@ -970,9 +977,21 @@
                     { IsBackground = true }.Start();
                 }
             };
+            setTemp_Bar.OnStartTrackingTouchEvent = (sender, e) =>
+            {
+                contentView.ScrollEnabled = false;
+            };
             //璁剧疆娓╁害璋冭妭
             setTemp_Bar.OnStopTrackingTouchEvent = (sender, e) =>
             {
+                contentView.ScrollEnabled = true;
+#if __IOS__
+                setTemp_ValuesButton.Width = setTemp_ValuesButton.GetTextWidth() + Application.GetRealWidth(8);
+#else
+            setTemp_ValuesButton.Width = setTemp_ValuesButton.GetTextWidth();
+#endif
+                setTemp_ValuesButton.Gravity = Gravity.CenterHorizontal;
+                setTemp_UintButton.X = setTemp_ValuesButton.Right + Application.GetRealWidth(4);
                 new System.Threading.Thread(() =>
                 {
                     var dic = new Dictionary<string, string>();
@@ -1007,86 +1026,26 @@
         /// 鏇存柊鐣岄潰鐘舵��
         /// </summary>
         /// <param name="temp"></param>
-        public static void UpdateStatus(Function temp)
+        public static void UpdateStatus()
         {
             if (bodyView == null)
             {
                 return;
             }
             //鍏嶈垂鐑按
-            if (bodyView.function.GetAttrState(WaterHeaterJinmao_AttrEnum.mode_free.ToString()) != temp.GetAttrState(WaterHeaterJinmao_AttrEnum.mode_free.ToString()))
+            Application.RunOnMainThread(() =>
             {
-                bodyView.function.SetAttrState(WaterHeaterJinmao_AttrEnum.mode_free.ToString(), temp.GetAttrState(WaterHeaterJinmao_AttrEnum.mode_free.ToString()));
-                Application.RunOnMainThread(() =>
-                {
-                    bodyView.updateFreeMode();
-                });
-            }
-            //鐑按娓╁害
-            if (bodyView.function.GetAttrState(WaterHeaterJinmao_AttrEnum.temp.ToString()) != temp.GetAttrState(WaterHeaterJinmao_AttrEnum.temp.ToString()))
-            {
-                bodyView.function.SetAttrState(WaterHeaterJinmao_AttrEnum.temp.ToString(), temp.GetAttrState(WaterHeaterJinmao_AttrEnum.temp.ToString()));
-                Application.RunOnMainThread(() =>
-                {
-                    bodyView.updateTemp();
-                });
-            }
-            //鐑按鍣ㄦā寮�
-            if (bodyView.function.GetAttrState(WaterHeaterJinmao_AttrEnum.mode.ToString()) != temp.GetAttrState(WaterHeaterJinmao_AttrEnum.mode.ToString()))
-            {
-                bodyView.function.SetAttrState(WaterHeaterJinmao_AttrEnum.mode.ToString(), temp.GetAttrState(WaterHeaterJinmao_AttrEnum.mode.ToString()));
-                Application.RunOnMainThread(() =>
-                {
-                    bodyView.updateModeUI();
-                });
-            }
-            //鐑按鍣ㄨ缃俯搴�
-            if (bodyView.function.GetAttrState(WaterHeaterJinmao_AttrEnum.set_temp.ToString()) != temp.GetAttrState(WaterHeaterJinmao_AttrEnum.set_temp.ToString()))
-            {
-                bodyView.function.SetAttrState(WaterHeaterJinmao_AttrEnum.set_temp.ToString(), temp.GetAttrState(WaterHeaterJinmao_AttrEnum.set_temp.ToString()));
-                Application.RunOnMainThread(() =>
-                {
-                    bodyView.updateSetTemp();
-                });
-            }
-            //鐑按娴侀噺
-            if (bodyView.function.GetAttrState(WaterHeaterJinmao_AttrEnum.flow.ToString()) != temp.GetAttrState(WaterHeaterJinmao_AttrEnum.flow.ToString()))
-            {
-                Application.RunOnMainThread(() =>
-                {
-                    bodyView.updateFlow();
-                });
-            }
-            //鐑按鎬婚噺
-            if (bodyView.function.GetAttrState(WaterHeaterJinmao_AttrEnum.volume.ToString()) != temp.GetAttrState(WaterHeaterJinmao_AttrEnum.volume.ToString()) ||
-                bodyView.function.GetAttrState(WaterHeaterJinmao_AttrEnum.recycl_volume.ToString()) != temp.GetAttrState(WaterHeaterJinmao_AttrEnum.recycl_volume.ToString()))
-            {
-                Application.RunOnMainThread(() =>
-                {
-                    bodyView.updateVolume();
-                });
-            }
-            //绀句細璐$尞-鑺傜數閲�
-            if (bodyView.function.GetAttrState(WaterHeaterJinmao_AttrEnum.energy_electricity.ToString()) != temp.GetAttrState(WaterHeaterJinmao_AttrEnum.energy_electricity.ToString()))
-            {
+                bodyView.updateFreeMode();
+                bodyView.updateTemp();
+                bodyView.updateModeUI();
+                bodyView.updateSetTemp();
+                bodyView.updateFlow();
+                bodyView.updateVolume();
                 bodyView.updateSocialContribution1();
-            }
-            //绀句細璐$尞-co2
-            if (bodyView.function.GetAttrState(WaterHeaterJinmao_AttrEnum.co2.ToString()) != temp.GetAttrState(WaterHeaterJinmao_AttrEnum.co2.ToString()))
-            {
                 bodyView.updateSocialContribution2();
-            }
-            //绀句細璐$尞-妞嶆爲
-            if (bodyView.function.GetAttrState(WaterHeaterJinmao_AttrEnum.trees.ToString()) != temp.GetAttrState(WaterHeaterJinmao_AttrEnum.trees.ToString()))
-            {
                 bodyView.updateSocialContribution3();
-            }
-            //寮�鍏虫寜閽�
-            if (bodyView.function.GetAttrState(FunctionAttributeKey.OnOff.ToString()) != temp.GetAttrState(FunctionAttributeKey.OnOff.ToString()))
-            {
                 bodyView.updatePowerButton();
-            }
-
+            });
         }
 
         /// <summary>
@@ -1094,10 +1053,9 @@
         /// </summary>
         private void updateFreeMode()
         {
-            if (function.GetAttrState(WaterHeaterJinmao_AttrEnum.mode_free.ToString()) != "true")
+            if (function.GetAttrState(WaterHeaterJinmao_AttrEnum.mode_free.ToString()) == "true")
             {
                 modeFreeView.BackgroundColor = 0x1500C22D;
-                modeFreeView.Width = Width = Application.GetRealWidth(82 + 14);
                 modeFree_IconButton.UnSelectedImagePath = "FunctionIcon/Acst/WaterHeater/ModeFree_True.png";
                 modeFree_TextButton.Text = "鐑洖鏀�";
                 modeFree_TextButton.TextColor = 0xFF00C22D;
@@ -1105,7 +1063,6 @@
             else
             {
                 modeFreeView.BackgroundColor = 0x15FC9C04;
-                modeFreeView.Width = Width = Application.GetRealWidth(68 + 14);
                 modeFree_IconButton.UnSelectedImagePath = "FunctionIcon/Acst/WaterHeater/ModeFree_False.png";
                 modeFree_TextButton.Text = "鐢ㄧ數";
                 modeFree_TextButton.TextColor = 0xFFFC9C04;
@@ -1118,13 +1075,17 @@
         {
             btnTempValues.Text = function.GetAttrState(WaterHeaterJinmao_AttrEnum.temp.ToString(), "---");
 #if __IOS__
-            btnTempValues.Width = btnTempValues.GetTextWidth() + Application.GetRealWidth(8);
+            btnTempValues.Width = btnTempValues.GetTextWidth() + Application.GetRealWidth(6);
 #else
             btnTempValues.Width = btnTempValues.GetTextWidth();
 #endif
+            if (btnTempValues.Width > Application.GetRealWidth(80))
+            {
+                btnTempValues.TextSize = 28;
+            }
             btnTempValues.Gravity = Gravity.CenterHorizontal;
 
-            btnTempValuesUint.X = btnTempValues.Right - Application.GetRealWidth(4);
+            btnTempValuesUint.X = btnTempValues.Right ;
         }
 
         /// <summary>
@@ -1176,12 +1137,12 @@
 #endif
             setTemp_ValuesButton.Gravity = Gravity.CenterHorizontal;
 
-            setTemp_UintButton.X = setTemp_ValuesButton.Right - Application.GetRealWidth(4);
+            setTemp_UintButton.X = setTemp_ValuesButton.Right + Application.GetRealWidth(4);
 
 
-            double dd = 0;
+            double dd = 35;
             double.TryParse(function.GetAttrState(WaterHeaterJinmao_AttrEnum.set_temp.ToString(), "0"), out dd);
-            setTemp_Bar.Progress = Convert.ToInt32(dd) - 35;
+            setTemp_Bar.Progress = Convert.ToInt32(dd);
 
         }
 
@@ -1209,8 +1170,11 @@
             flow_ValuesBar.Progress = recyclVolumePercent;
             flow_HeatRecoveryProgressButton.Text = recyclVolumePercent + "%";
             flow_HeatRecoverytValuesButton.Text = recyclVolume + "t";
-            flow_ElectricDriveProgressButton.Text = (100 - recyclVolumePercent) + "%";
-            flow_ElectricDriveValuesButton.Text = (volume - recyclVolume) + "t";
+            if (volume > 0)
+            {
+                flow_ElectricDriveProgressButton.Text = ((int)(100 - recyclVolumePercent)) + "%";
+            }
+            flow_ElectricDriveValuesButton.Text = (((int)(volume * 100) - (int)(recyclVolume * 100)) / 100.0) + "t";
         }
 
         /// <summary>
@@ -1224,20 +1188,48 @@
 #else
             socialContribution_Info1_ValuesButton.Width = socialContribution_Info1_ValuesButton.GetTextWidth();
 #endif
-            socialContribution_Info1_UintButton.X = socialContribution_Info1_ValuesButton.Right - Application.GetRealWidth(4);
+            if (socialContribution_Info1_ValuesButton.Width > Application.GetRealWidth(61))
+            {
+                socialContribution_Info1_ValuesButton.TextSize = 14;
+#if __IOS__
+                socialContribution_Info1_ValuesButton.Width = socialContribution_Info1_ValuesButton.GetTextWidth() + Application.GetRealWidth(8);
+#else
+            socialContribution_Info1_ValuesButton.Width = socialContribution_Info1_ValuesButton.GetTextWidth();
+#endif
+                socialContribution_Info1_UintButton.Height = Application.GetRealWidth(25);
+            }
+#if __IOS__
+            socialContribution_Info1_UintButton.X = socialContribution_Info1_ValuesButton.Right ;
+#else
+            socialContribution_Info1_UintButton.X = socialContribution_Info1_ValuesButton.Right +Application.GetRealWidth(2);
+#endif
         }
         /// <summary>
         /// 鏇存柊绀句細璐�2鐚暟鎹甎I
         /// </summary>
         private void updateSocialContribution2()
         {
-            socialContribution_Info3_ValuesButton.Text = function.GetAttrState(WaterHeaterJinmao_AttrEnum.co2.ToString());
+            socialContribution_Info2_ValuesButton.Text = function.GetAttrState(WaterHeaterJinmao_AttrEnum.co2.ToString());
 #if __IOS__
-            socialContribution_Info3_ValuesButton.Width = socialContribution_Info2_ValuesButton.GetTextWidth() + Application.GetRealWidth(8);
+            socialContribution_Info2_ValuesButton.Width = socialContribution_Info2_ValuesButton.GetTextWidth() + Application.GetRealWidth(8);
 #else
             socialContribution_Info2_ValuesButton.Width = socialContribution_Info2_ValuesButton.GetTextWidth();
 #endif
-            socialContribution_Info2_UintButton.X = socialContribution_Info2_ValuesButton.Right - Application.GetRealWidth(4);
+            if (socialContribution_Info2_ValuesButton.Width > Application.GetRealWidth(61))
+            {
+                socialContribution_Info2_ValuesButton.TextSize = 14;
+#if __IOS__
+                socialContribution_Info2_ValuesButton.Width = socialContribution_Info2_ValuesButton.GetTextWidth() + Application.GetRealWidth(8);
+#else
+            socialContribution_Info2_ValuesButton.Width = socialContribution_Info2_ValuesButton.GetTextWidth();
+#endif
+                socialContribution_Info2_UintButton.Y = socialContribution_Info2_UintButton.Y - Application.GetRealWidth(4);
+            }
+#if __IOS__
+            socialContribution_Info2_UintButton.X = socialContribution_Info2_ValuesButton.Right;
+#else
+            socialContribution_Info2_UintButton.X = socialContribution_Info2_ValuesButton.Right +Application.GetRealWidth(2);
+#endif
 
         }
         /// <summary>
@@ -1252,7 +1244,20 @@
 #else
             socialContribution_Info3_ValuesButton.Width = socialContribution_Info3_ValuesButton.GetTextWidth();
 #endif
-            socialContribution_Info3_UintButton.X = socialContribution_Info3_ValuesButton.Right - Application.GetRealWidth(4);
+            if (socialContribution_Info3_ValuesButton.Width > Application.GetRealWidth(61))
+            {
+                socialContribution_Info3_ValuesButton.TextSize = 14;
+#if __IOS__
+                socialContribution_Info3_ValuesButton.Width = socialContribution_Info3_ValuesButton.GetTextWidth() + Application.GetRealWidth(8);
+#else
+            socialContribution_Info3_ValuesButton.Width = socialContribution_Info3_ValuesButton.GetTextWidth();
+#endif
+            }
+#if __IOS__
+            socialContribution_Info3_UintButton.X = socialContribution_Info3_ValuesButton.Right;
+#else
+            socialContribution_Info3_UintButton.X = socialContribution_Info3_ValuesButton.Right +Application.GetRealWidth(2);
+#endif
         }
 
         /// <summary>
@@ -1262,8 +1267,6 @@
         {
             btnPowerControl.IsSelected = function.GetAttrState(FunctionAttributeKey.OnOff.ToString()) == "on";
         }
-
-
     }
 }
 

--
Gitblit v1.8.0