New file |
| | |
| | | using 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 董泽斌 |
| | | 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:正常工作中 |
| | | 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:正常工作中 |
| | | 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(); |
| | | |
| | | }; |
| | | |
| | | } |
| | | |
| | | |
| | | } |
| | | } |