From 1b85f8a35867a3a851039aeb99480ffb5e3d50d6 Mon Sep 17 00:00:00 2001
From: wxr <464027401@qq.com>
Date: 星期四, 27 七月 2023 09:34:40 +0800
Subject: [PATCH] 三相空开1.0

---
 HDL_ON/Entity/Function/Function.cs                             |   81 ++++++++
 HDL_ON/UI/UI0-Public/PublicAssmeblyBLL.cs                      |    6 
 HDL_ON/UI/UI2/FuntionControlView/Electrical/AirSwitchP3Page.cs |  468 ++++++++++++++++++++++++++++++++++++++++++++++
 HDL_ON/UI/MainPage.cs                                          |    1 
 HDL_ON/HDL_ON.projitems                                        |    1 
 HDL_ON/UI/UI1-Login/LoginPage.cs                               |   34 +++
 6 files changed, 590 insertions(+), 1 deletions(-)

diff --git a/HDL_ON/Entity/Function/Function.cs b/HDL_ON/Entity/Function/Function.cs
index 8e8602b..4f6404c 100644
--- a/HDL_ON/Entity/Function/Function.cs
+++ b/HDL_ON/Entity/Function/Function.cs
@@ -171,6 +171,9 @@
                 string iconPath = spk.Replace(".", "");
                 switch (spk)
                 {
+                    case SPK.AirSwitchP3:
+                        iconPath = "electricalbreaker";
+                        break;
                     case SPK.PanelSocket:
                         iconPath = "electricalsocket";
                         break;
@@ -1155,6 +1158,79 @@
     /// </summary>
     public static class FunctionAttributeKey
     {
+        #region 涓夌浉绌哄紑灞炴��
+        /// <summary>
+        /// A鐩稿姛鐜�
+        /// </summary>
+        public const string PowerA = "power_a";
+        /// <summary>
+        /// B鐩稿姛鐜�
+        /// </summary>
+        public const string PowerB = "power_b";
+        /// <summary>
+        /// C鐩稿姛鐜�
+        /// </summary>
+        public const string PowerC = "power_c";
+        /// <summary>
+        /// A鐩哥數鍘�
+        /// </summary>
+        public const string VoltageA = "voltage_a";
+        /// <summary>
+        /// B鐩哥數鍘�
+        /// </summary>
+        public const string VoltageB = "voltage_b";
+        /// <summary>
+        /// C鐩哥數鍘�
+        /// </summary>
+        public const string VoltageC = "voltage_c";
+        /// <summary>
+        /// A鐩哥數娴�
+        /// </summary>
+        public const string CurrentA = "current_a";
+        /// <summary>
+        /// B鐩哥數娴�
+        /// </summary>
+        public const string CurrentB = "current_b";
+        /// <summary>
+        /// C鐩哥數娴�
+        /// </summary>
+        public const string CurrentC = "current_c";
+        /// <summary>
+        /// A鐩告俯搴�
+        /// </summary>
+        public const string TempA = "temp_a";
+        /// <summary>
+        /// B鐩告俯搴�
+        /// </summary>
+        public const string TempB = "temp_b";
+        /// <summary>
+        /// C鐩告俯搴�
+        /// </summary>
+        public const string TempC = "temp_c";
+        /// <summary>
+        /// 杩囨祦鍊�
+        /// </summary>
+        public const string MaxCurrent = "max_current";
+        /// <summary>
+        /// 杩囨俯鍊�
+        /// </summary>
+        public const string MaxTemp = "max_temp";
+        /// <summary>
+        /// A鐩哥數閲�
+        /// </summary>
+        public const string ElectricityA = "electricity_a";
+        /// <summary>
+        /// B鐩哥數閲�
+        /// </summary>
+        public const string ElectricityB = "electricity_b";
+        /// <summary>
+        /// C鐩哥數閲�
+        /// </summary>
+        public const string ElectricityC = "electricity_c";
+
+        #endregion
+
+
         public const string _null = "";
         /// <summary>
         /// 瀹夐槻甯冮槻鐘舵��
@@ -2058,6 +2134,10 @@
         /// 鏅鸿兘绌哄紑
         /// </summary>
         public const string AirSwitch = "electrical.breaker";
+        /// <summary>
+        /// 涓夌浉鏅鸿兘绌哄紑
+        /// </summary>
+        public const string AirSwitchP3 = "electrical.breakerP3";
 
         #region 娑傞甫
         /// <summary>
@@ -2111,6 +2191,7 @@
             spkList.Add(ElectricTuyaWaterValve);
             spkList.Add(ElectricTuyaWaterValve2);
             spkList.Add(AirSwitch);
+            spkList.Add(AirSwitchP3);
             return spkList;
         }
 
diff --git a/HDL_ON/HDL_ON.projitems b/HDL_ON/HDL_ON.projitems
index f946b7e..52e9524 100644
--- a/HDL_ON/HDL_ON.projitems
+++ b/HDL_ON/HDL_ON.projitems
@@ -562,6 +562,7 @@
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\VideoDoorLock\VideoDoorlockAudioSetupPage.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\VideoDoorLock\VideoDoorlockBatteryManagementPage.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\2-Classification\SeriesFunctionListPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Electrical\AirSwitchP3Page.cs" />
   </ItemGroup>
   <ItemGroup>
     <Folder Include="$(MSBuildThisFileDirectory)Entity\Device\" />
diff --git a/HDL_ON/UI/MainPage.cs b/HDL_ON/UI/MainPage.cs
index 6f43aa2..44a2e3a 100644
--- a/HDL_ON/UI/MainPage.cs
+++ b/HDL_ON/UI/MainPage.cs
@@ -141,6 +141,7 @@
                     //_RoomNotSupportFunctionList.Add(SPK.MusicStandard);
                     //_RoomNotSupportFunctionList.Add(SPK.AvMusic);
                     _RoomNotSupportFunctionList.Add(SPK.AirSwitch);
+                    _RoomNotSupportFunctionList.Add(SPK.AirSwitchP3);
                     _RoomNotSupportFunctionList.Add(SPK.ElectricEnergy);
                     //_RoomNotSupportFunctionList.Add(SPK.OtherCommon);
                     _RoomNotSupportFunctionList.Add(SPK.SensorLight);
diff --git a/HDL_ON/UI/UI0-Public/PublicAssmeblyBLL.cs b/HDL_ON/UI/UI0-Public/PublicAssmeblyBLL.cs
index 96dd1af..2f1ba90 100644
--- a/HDL_ON/UI/UI0-Public/PublicAssmeblyBLL.cs
+++ b/HDL_ON/UI/UI0-Public/PublicAssmeblyBLL.cs
@@ -36,6 +36,12 @@
                         airSwitchPage.LoadPage(btnCollectionIcon, btnName, btnFromFloor);
                         MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
                         break;
+                    case SPK.AirSwitchP3:
+                        var airSwitchP3Page = new AirSwitchP3Page(function);
+                        MainPage.BasePageView.AddChidren(airSwitchP3Page);
+                        airSwitchP3Page.LoadPage(btnCollectionIcon, btnName, btnFromFloor);
+                        MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
+                        break;
                     case SPK.LightSwitch:
                         var relayView = new RelayPage(function);
                         MainPage.BasePageView.AddChidren(relayView);
diff --git a/HDL_ON/UI/UI1-Login/LoginPage.cs b/HDL_ON/UI/UI1-Login/LoginPage.cs
index c5cfa1d..3fb66f0 100644
--- a/HDL_ON/UI/UI1-Login/LoginPage.cs
+++ b/HDL_ON/UI/UI1-Login/LoginPage.cs
@@ -923,7 +923,39 @@
 
 
 #if DEBUG
-
+                var airSwitchP3 = new Function()
+                {
+                    sid = "airSwitchP3000000000001",
+                    deviceId = "airSwitchP3000000000001",
+                    name =  "娴嬭瘯-涓夌浉鏅鸿兘绌哄紑",
+                    spk = SPK.AirSwitchP3,
+                    roomIds = new List<string>() { "1405771024583090178" },
+                    attributes = new List<FunctionAttributes>()
+                    {
+                        new FunctionAttributes() { key = "on_off",value =new List<string>(){ "on","off" }, curValue="on",state = "on"   },
+                        new FunctionAttributes() { key = "delay",value =new List<string>(){ "0","100" }, curValue="0",state = "0"   },
+                        new FunctionAttributes() { key = FunctionAttributeKey.PowerA,value =new List<string>(){ "" }, curValue="26",state = "26" ,max = 1000,min = 0  },
+                        new FunctionAttributes() { key = FunctionAttributeKey.PowerB,value =new List<string>(){ "" }, curValue="26",state = "26" ,max = 1000,min = 0  },
+                        new FunctionAttributes() { key = FunctionAttributeKey.PowerC,value =new List<string>(){ "" }, curValue="26",state = "26" ,max = 1000,min = 0  },
+                        new FunctionAttributes() { key = FunctionAttributeKey.VoltageA,value =new List<string>(){ "" }, curValue="26",state = "26" ,max = 1000,min = 0  },
+                        new FunctionAttributes() { key = FunctionAttributeKey.VoltageB,value =new List<string>(){ "" }, curValue="26",state = "26" ,max = 1000,min = 0  },
+                        new FunctionAttributes() { key = FunctionAttributeKey.VoltageC,value =new List<string>(){ "" }, curValue="26",state = "26" ,max = 1000,min = 0  },
+                        new FunctionAttributes() { key = FunctionAttributeKey.CurrentA,value =new List<string>(){ "" }, curValue="26",state = "26" ,max = 1000,min = 0  },
+                        new FunctionAttributes() { key = FunctionAttributeKey.CurrentB,value =new List<string>(){ "" }, curValue="26",state = "26" ,max = 1000,min = 0  },
+                        new FunctionAttributes() { key = FunctionAttributeKey.CurrentC,value =new List<string>(){ "" }, curValue="26",state = "26" ,max = 1000,min = 0  },
+                        new FunctionAttributes() { key = FunctionAttributeKey.TempA,value =new List<string>(){ "" }, curValue="26",state = "26" ,max = 1000,min = 0  },
+                        new FunctionAttributes() { key = FunctionAttributeKey.TempB,value =new List<string>(){ "" }, curValue="26",state = "26" ,max = 1000,min = 0  },
+                        new FunctionAttributes() { key = FunctionAttributeKey.TempC,value =new List<string>(){ "" }, curValue="26",state = "26" ,max = 1000,min = 0  },
+                        new FunctionAttributes() { key = FunctionAttributeKey.MaxCurrent,value =new List<string>(){ "" }, curValue="26",state = "26" ,max = 1000,min = 0  },
+                        new FunctionAttributes() { key = FunctionAttributeKey.MaxTemp,value =new List<string>(){ "" }, curValue="26",state = "26" ,max = 1000,min = 0  },
+                        new FunctionAttributes() { key = FunctionAttributeKey.ElectricityA,value =new List<string>(){ "" }, curValue="26",state = "26" ,max = 1000,min = 0  },
+                        new FunctionAttributes() { key = FunctionAttributeKey.ElectricityB,value =new List<string>(){ "" }, curValue="26",state = "26" ,max = 1000,min = 0  },
+                        new FunctionAttributes() { key = FunctionAttributeKey.ElectricityC,value =new List<string>(){ "" }, curValue="26",state = "26" ,max = 1000,min = 0  },
+                        new FunctionAttributes() { key = FunctionAttributeKey.TotalElectricity,value =new List<string>(){ "" }, curValue="26",state = "26" ,max = 1000,min = 0  },
+                    },
+                    collect=true,
+                };
+                airSwitchP3.SaveFunctionFile();
 
                 if (FunctionList.List.groupControls.Count == 0)
                 {
diff --git a/HDL_ON/UI/UI2/FuntionControlView/Electrical/AirSwitchP3Page.cs b/HDL_ON/UI/UI2/FuntionControlView/Electrical/AirSwitchP3Page.cs
new file mode 100644
index 0000000..b0887f6
--- /dev/null
+++ b/HDL_ON/UI/UI2/FuntionControlView/Electrical/AirSwitchP3Page.cs
@@ -0,0 +1,468 @@
+锘縰sing System;
+using HDL_ON.Entity;
+using HDL_ON.UI.CSS;
+using Shared;
+
+namespace HDL_ON.UI
+{
+    public class AirSwitchP3Page : FrameLayout
+    {
+
+        #region 鎺т欢闆嗗悎
+        static AirSwitchP3Page bodyView;
+        /// <summary>
+        /// 鎺у埗鐣岄潰鍔犺浇鍖哄煙
+        /// </summary>
+        FrameLayout controlView;
+        /// <summary>
+        /// 鍔熻兘澶囨敞
+        /// </summary>
+        Button btnFunctionName;
+        /// <summary>
+        /// 鍔熻兘鎵�灞炴ゼ灞傘�佹埧闂�
+        /// </summary>
+        Button btnFromFoorAndRoom;
+        /// <summary>
+        /// 鏀惰棌鎸夐挳
+        /// </summary>
+        Button btnCollection;
+        /// <summary>
+        /// 缁х數鍣ㄧ姸鎬佸浘鏍�
+        /// </summary>
+        Button btnSwitchIcon;
+        /// <summary>
+        /// 寮�鍏虫寜閽�
+        /// </summary>
+        Button btnSwitch;
+
+
+        /// <summary>
+        /// 杩愯鐘舵��-鍔ㄦ�佸姞杞�
+        /// </summary>
+        Button btnRunStatus;
+
+        #endregion
+
+        #region 鍖哄煙鍙橀噺
+        Function function;
+        Button btnCollection_Out;
+        Button btnFunctionName_Out;
+        Button btnFromFloor_Out;
+        /// <summary>
+        /// 鍒锋柊鏄剧ず淇℃伅
+        /// </summary>
+        Action actionRefresh;
+        #endregion
+
+        public AirSwitchP3Page(Function func)
+        {
+            bodyView = this;
+            function = func;
+
+        }
+        /// <summary>
+        /// 鍔犺浇鐣岄潰
+        /// </summary>
+        /// <param name="btnCollectionIcon">鏀惰棌鎸夐挳</param>
+        /// <param name="btnFunctionName">鍔熻兘鍚嶇О淇℃伅鎸夐挳</param>
+        /// <param name="btnFromFloor">鍔熻兘妤煎眰淇℃伅鎸夐挳</param>
+        public void LoadPage(Button btnCollectionIcon, Button btnFunctionNameOut, Button btnFromFloorOut)
+        {
+            if (btnCollectionIcon == null)
+            {
+                btnCollection_Out = new Button();
+                btnFunctionName_Out = new Button();
+                btnFromFloor_Out = new Button();
+            }
+            else
+            {
+                btnCollection_Out = btnCollectionIcon;
+                btnFunctionName_Out = btnFunctionNameOut;
+                btnFromFloor_Out = btnFromFloorOut;
+            }
+            bodyView.BackgroundColor = CSS_Color.BackgroundColor;
+
+            controlView = new FrameLayout()
+            {
+                Gravity = Gravity.CenterHorizontal,
+                Y = Application.GetRealHeight(88),
+                Width = Application.GetRealWidth(327),
+                Height = Application.GetRealHeight(526),
+                BackgroundImagePath = "Public/Fragmentbg.png",
+            };
+            bodyView.AddChidren(controlView);
+
+            btnFunctionName = new Button()
+            {
+                X = Application.GetRealWidth(16),
+                Y = Application.GetRealHeight(14),
+                Width = Application.GetRealWidth(270),
+                Height = Application.GetRealHeight(37),
+                TextColor = CSS_Color.FirstLevelTitleColor,
+                TextAlignment = TextAlignment.CenterLeft,
+                TextSize = CSS_FontSize.EmphasisFontSize_FirstLevel,
+                Text = function.name,
+            };
+            controlView.AddChidren(btnFunctionName);
+
+            btnFromFoorAndRoom = new Button()
+            {
+                X = Application.GetRealWidth(16),
+                Y = btnFunctionName.Bottom,
+                Width = Application.GetRealWidth(270),
+                Height = Application.GetRealHeight(21),
+                TextColor = CSS_Color.PromptingColor1,
+                TextAlignment = TextAlignment.CenterLeft,
+                TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
+                Text = function.GetRoomListName()
+            };
+            controlView.AddChidren(btnFromFoorAndRoom);
+
+            btnCollection = new Button()
+            {
+                X = Application.GetRealWidth(273),
+                Y = Application.GetRealHeight(14),
+                Width = Application.GetMinRealAverage(40),
+                Height = Application.GetMinRealAverage(40),
+                SelectedImagePath = "Collection/CollectionIcon.png",
+                UnSelectedImagePath = "Collection/CollectionGrayIcon.png",
+                IsSelected = function.collect
+            };
+            controlView.AddChidren(btnCollection);
+
+            btnSwitchIcon = new Button()
+            {
+                Gravity = Gravity.CenterHorizontal,
+                Y = Application.GetRealHeight(102),
+                Width = Application.GetRealWidth(148),
+                Height = Application.GetRealWidth(198),
+                UnSelectedImagePath = "FunctionIcon/Electrical/AirSwitch/AirSwitchBgIcon.png",
+                SelectedImagePath = "FunctionIcon/Electrical/AirSwitch/AirSwitchBgOnIcon.png",
+                IsSelected = function.trait_on_off.curValue.ToString() == "on"
+            };
+            controlView.AddChidren(btnSwitchIcon);
+
+            //杩愯鐘舵��
+            if (function.GetAttribute("run_status") != null)
+            {
+
+                btnRunStatus = new Button()
+                {
+                    Y = Application.GetRealHeight(300),
+                    Height = Application.GetRealHeight(58),
+                    TextAlignment = TextAlignment.Center,
+                    TextSize = CSS_FontSize.TextFontSize,
+                };
+                controlView.AddChidren(btnRunStatus); //鐘舵�佹棤娉曟祴璇曪紝鏆傛椂闅愯棌--2021-10-14 13:58:48 钁f辰鏂�
+                UpdataRunStatus();
+            }
+
+            //if (function.GetAttribute("power") != null)
+            {
+                Button btnEnergyIcon = new Button()
+                {
+                    Y = Application.GetRealHeight(377),
+                    Gravity = Gravity.CenterHorizontal,
+                    Width = Application.GetRealWidth(32),
+                    Height = Application.GetRealWidth(32),
+                    UnSelectedImagePath = "FunctionIcon/Electrical/AirSwitch/EnergyIcon.png"
+                };
+                controlView.AddChidren(btnEnergyIcon);
+
+
+                Button btnEnergyText = new Button()
+                {
+                    Y = Application.GetRealHeight(400),
+                    Gravity = Gravity.CenterHorizontal,
+                    Height = Application.GetRealWidth(47),
+                    TextAlignment = TextAlignment.Center,
+                    TextID = StringId.EnergyMonitoring,
+                    TextColor = CSS_Color.TextualColor,
+                    TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
+                };
+                controlView.AddChidren(btnEnergyText);
+
+                EventHandler<MouseEventArgs> eventHandler = (sender, e) => {
+                    var skipView = new EnergyMainPage();
+                    MainPage.BasePageView.AddChidren(skipView);
+                    skipView.LoadPage();
+                    MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
+                };
+                btnEnergyIcon.MouseUpEventHandler = eventHandler;
+                btnEnergyText.MouseUpEventHandler = eventHandler;
+
+
+
+            }
+
+
+
+
+            btnSwitch = new Button()
+            {
+                Gravity = Gravity.CenterHorizontal,
+                Y = Application.GetRealHeight(466),// + btnSwitchIcon.Bottom,
+                Width = Application.GetMinRealAverage(32),
+                Height = Application.GetMinRealAverage(32),
+                UnSelectedImagePath = "Public/PowerClose.png",
+                SelectedImagePath = "Public/PowerOpen.png",
+                IsSelected = function.trait_on_off.curValue.ToString() == "on"
+            };
+            controlView.AddChidren(btnSwitch);
+
+            new TopViewDiv(bodyView, Language.StringByID(StringId.Electric)).LoadTopView_FunctionTop(function, actionRefresh, false);
+            new System.Threading.Thread(() =>
+            {
+                DriverLayer.Control.Ins.SendReadCommand(function);
+            })
+            { IsBackground = true }.Start();
+
+
+            LoadEventList();
+        }
+
+
+
+
+        /// <summary>
+        /// 鏇存柊鐘舵��
+        /// </summary>
+        public static void UpdataState(Function updataTemp)
+        {
+            Application.RunOnMainThread(() =>
+            {
+                try
+                {
+                    if (bodyView == null)
+                        return;
+                    if (updataTemp.spk == bodyView.function.spk && updataTemp.sid == bodyView.function.sid)
+                    {
+                        bodyView.btnSwitch.IsSelected = bodyView.btnSwitchIcon.IsSelected = updataTemp.trait_on_off.curValue.ToString() == "on";
+
+                        if (updataTemp.GetAttribute("run_status") != null)
+                        {
+                            bodyView.UpdataRunStatus();
+                        }
+                    }
+                }
+                catch (Exception ex)
+                {
+                    MainPage.Log($"AirSwitch error {ex.Message}");
+                }
+            });
+        }
+        /// <summary>
+        /// 鏇存柊杩愯鐘舵��
+        /// </summary>
+        void UpdataRunStatus()
+        {
+            if (btnRunStatus == null)
+                return;
+            var runStatus = function.GetAttrState("run_status");
+            if (Language.CurrentLanguage == "Chinese")
+            {
+                switch (runStatus)
+                {
+                    //* RUN:姝e父宸ヤ綔涓�
+                    case "RUN":
+                        btnRunStatus.Text = "宸ヤ綔涓�";
+                        btnRunStatus.TextColor = CSS_Color.MainColor;
+                        break;
+                    //* HV:杩囧帇棰勮
+                    case "HV":
+                        btnRunStatus.Text = "杩囧帇棰勮";
+                        btnRunStatus.TextColor = 0xFFFC9C04;
+                        break;
+                    //* LV:娆犲帇棰勮
+                    case "LV":
+                        btnRunStatus.Text = "娆犲帇棰勮";
+                        btnRunStatus.TextColor = 0xFFFC9C04;
+                        break;
+                    //* HC:杩囨祦棰勮
+                    case "HC":
+                        btnRunStatus.Text = "杩囨祦棰勮";
+                        btnRunStatus.TextColor = 0xFFFC9C04;
+                        break;
+                    //* HT:杩囨俯棰勮
+                    case "HT":
+                        btnRunStatus.Text = "杩囨俯棰勮";
+                        btnRunStatus.TextColor = 0xFFFC9C04;
+                        break;
+                    //* LEAK:婕忕數棰勮
+                    case "LEAK":
+                        btnRunStatus.Text = "婕忕數棰勮";
+                        btnRunStatus.TextColor = 0xFFFC9C04;
+                        break;
+                    //* ERR_HV:杩囧帇鎶ヨ
+                    case "ERR_HV":
+                        btnRunStatus.Text = "杩囧帇鎶ヨ";
+                        btnRunStatus.TextColor = 0xFFFF8080;
+                        break;
+                    //* ERR_LV:娆犲帇鎶ヨ
+                    case "ERR_LV":
+                        btnRunStatus.Text = "娆犲帇鎶ヨ";
+                        btnRunStatus.TextColor = 0xFFFF8080;
+                        break;
+                    //* ERR_HC:杩囨祦鎶ヨ
+                    case "ERR_HC":
+                        btnRunStatus.Text = "杩囨祦鎶ヨ";
+                        btnRunStatus.TextColor = 0xFFFF8080;
+                        break;
+                    //* ERR_HT:杩囨俯鎶ヨ
+                    case "ERR_HT":
+                        btnRunStatus.Text = "杩囨俯鎶ヨ";
+                        btnRunStatus.TextColor = 0xFFFF8080;
+                        break;
+                    //* ERR_LEAK:婕忕數鎶ヨ
+                    case "ERR_LEAK":
+                        btnRunStatus.Text = "婕忕數鎶ヨ";
+                        btnRunStatus.TextColor = 0xFFFF8080;
+                        break;
+                }
+            }
+            else
+            {
+                switch (runStatus)
+                {
+                    //* RUN:姝e父宸ヤ綔涓�
+                    case "RUN":
+                        btnRunStatus.Text = "At work";
+                        btnRunStatus.TextColor = CSS_Color.MainColor;
+                        break;
+                    //* HV:杩囧帇棰勮
+                    case "HV":
+                        btnRunStatus.Text = "Overvoltage warning";
+                        btnRunStatus.TextColor = 0xFFFC9C04;
+                        break;
+                    //* LV:娆犲帇棰勮
+                    case "LV":
+                        btnRunStatus.Text = "Undervoltage warning";
+                        btnRunStatus.TextColor = 0xFFFC9C04;
+                        break;
+                    //* HC:杩囨祦棰勮
+                    case "HC":
+                        btnRunStatus.Text = "Overcurrent warning";
+                        btnRunStatus.TextColor = 0xFFFC9C04;
+                        break;
+                    //* HT:杩囨俯棰勮
+                    case "HT":
+                        btnRunStatus.Text = "Overtemperature warning";
+                        btnRunStatus.TextColor = 0xFFFC9C04;
+                        break;
+                    //* LEAK:婕忕數棰勮
+                    case "LEAK":
+                        btnRunStatus.Text = "Leakage warning";
+                        btnRunStatus.TextColor = 0xFFFC9C04;
+                        break;
+                    //* ERR_HV:杩囧帇鎶ヨ
+                    case "ERR_HV":
+                        btnRunStatus.Text = "Overvoltage alarm";
+                        btnRunStatus.TextColor = 0xFFFF8080;
+                        break;
+                    //* ERR_LV:娆犲帇鎶ヨ
+                    case "ERR_LV":
+                        btnRunStatus.Text = "Undervoltage alarm";
+                        btnRunStatus.TextColor = 0xFFFF8080;
+                        break;
+                    //* ERR_HC:杩囨祦鎶ヨ
+                    case "ERR_HC":
+                        btnRunStatus.Text = "Overcurrent alarm";
+                        btnRunStatus.TextColor = 0xFFFF8080;
+                        break;
+                    //* ERR_HT:杩囨俯鎶ヨ
+                    case "ERR_HT":
+                        btnRunStatus.Text = "Overtemperature alarm";
+                        btnRunStatus.TextColor = 0xFFFF8080;
+                        break;
+                    //* ERR_LEAK:婕忕數鎶ヨ
+                    case "ERR_LEAK":
+                        btnRunStatus.Text = "Leakage alarm";
+                        btnRunStatus.TextColor = 0xFFFF8080;
+                        break;
+                }
+            }
+        }
+
+        /// <summary>
+        /// 鍔犺浇浜嬩欢鍒楄〃
+        /// </summary>
+        void LoadEventList()
+        {
+            LoadSwitchEvent();
+            LoadCollectionEvent();
+
+            //鍥為��鍒锋柊淇℃伅浜嬩欢
+            actionRefresh = () => {
+                btnFunctionName.Text = btnFunctionName_Out.Text = function.name;
+                btnFromFloor_Out.Text = btnFromFoorAndRoom.Text = function.GetRoomListName();
+                //function.SaveFunctionData(true);
+            };
+        }
+
+        /// <summary>
+        /// 鏀惰棌鍔熻兘鎸夐挳浜嬩欢
+        /// </summary>
+        void LoadCollectionEvent()
+        {
+            btnCollection.MouseUpEventHandler += (sender, e) => {
+                btnCollection.IsSelected = function.collect = btnCollection_Out.IsSelected = !btnCollection.IsSelected;
+                function.CollectFunction();
+            };
+        }
+
+        /// <summary>
+        /// 鍔犺浇寮�鍏充簨浠�
+        /// </summary>
+        void LoadSwitchEvent()
+        {
+            btnSwitchIcon.MouseUpEventHandler = (sender, e) =>
+            {
+                if (!function.online)
+                {
+                    new Tip()
+                    {
+                        CloseTime = 1,
+                        Text = Language.StringByID(StringId.DeviceOfflineCannotOption),
+                        Direction = AMPopTipDirection.None,
+                    }.Show(MainPage.BaseView);
+                    return;
+                }
+                btnSwitch.IsSelected = btnSwitchIcon.IsSelected = !btnSwitchIcon.IsSelected;
+                new System.Threading.Thread(() =>
+                {
+                    function.trait_on_off.curValue = btnSwitchIcon.IsSelected ? "on" : "off";
+                    System.Collections.Generic.Dictionary<string, string> d = new System.Collections.Generic.Dictionary<string, string>();
+                    d.Add("on_off", function.trait_on_off.curValue.ToString());
+                    DriverLayer.Control.Ins.SendWriteCommand(function, d);
+                })
+                { IsBackground = true }.Start();
+            };
+            btnSwitch.MouseUpEventHandler = (sender, e) =>
+            {
+                if (!function.online)
+                {
+                    new Tip()
+                    {
+                        CloseTime = 1,
+                        Text = Language.StringByID(StringId.DeviceOfflineCannotOption),
+                        Direction = AMPopTipDirection.None,
+                    }.Show(MainPage.BaseView);
+                    return;
+                }
+                btnSwitchIcon.IsSelected = btnSwitch.IsSelected = !btnSwitch.IsSelected;
+                new System.Threading.Thread(() =>
+                {
+                    function.trait_on_off.curValue = btnSwitch.IsSelected ? "on" : "off";
+                    System.Collections.Generic.Dictionary<string, string> d = new System.Collections.Generic.Dictionary<string, string>();
+                    d.Add("on_off", function.trait_on_off.curValue.ToString());
+                    DriverLayer.Control.Ins.SendWriteCommand(function, d);
+                })
+                { IsBackground = true }.Start();
+
+            };
+
+        }
+
+
+    }
+}
\ No newline at end of file

--
Gitblit v1.8.0