From 2d5cd35af7437ad4015d38594d8c721dc6166b11 Mon Sep 17 00:00:00 2001 From: mac <user@users-MacBook-Pro.local> Date: 星期二, 29 八月 2023 09:22:38 +0800 Subject: [PATCH] Merge branch 'wjc' of http://59.41.255.150:6688/r/~wxr/OnPro into wjc --- HDL_ON/UI/UI2/FuntionControlView/Electrical/AirSwitchP3Page.cs | 478 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 478 insertions(+), 0 deletions(-) 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..a1a754e --- /dev/null +++ b/HDL_ON/UI/UI2/FuntionControlView/Electrical/AirSwitchP3Page.cs @@ -0,0 +1,478 @@ +锘縰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); + 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 AirSwitchP3EnergyPage(function); + 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); + + //鍥為��鍒锋柊淇℃伅浜嬩欢 + actionRefresh = () => { + btnFunctionName.Text = btnFunctionName_Out.Text = function.name; + btnFromFloor_Out.Text = btnFromFoorAndRoom.Text = function.GetRoomListName(); + //function.SaveFunctionData(true); + }; + + new TopViewDiv(bodyView, Language.StringByID(StringId.EnergyMonitoring)).LoadTopView_FunctionTop(function, actionRefresh); + 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; + if (function.GetAttrState(FunctionAttributeKey.OnOff) == "off") + { + btnRunStatus.Text = ""; + 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; + ////* HV:杩囧帇棰勮 + //case "HV_A": + // btnRunStatus.Text = "A椤硅繃鍘嬮璀�"; + // 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(); + } + + /// <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.isOnline()) + { + 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.isOnline()) + { + 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