| | |
| | | using HDL_ON.Entity; |
| | | using HDL_ON.UI; |
| | | using HDL_ON.UI.CSS; |
| | | using HDL_ON.UI.UI2.FuntionControlView.VideoDoorLock; |
| | | using Newtonsoft.Json; |
| | | using Newtonsoft.Json.Linq; |
| | | using Shared; |
| | | |
| | | namespace HDL_ON.UI |
| | | { |
| | | /// <summary> |
| | | /// 分类界面 |
| | | /// </summary> |
| | | public partial class ClassificationPage : FrameLayout |
| | | { |
| | | |
| | |
| | | #region top |
| | | FrameLayout topView = new FrameLayout() |
| | | { |
| | | Height = Application.GetRealHeight(64), |
| | | Height = Application.GetRealHeight(74), |
| | | BackgroundColor = CSS_Color.TopViewColor, |
| | | }; |
| | | bodyView.AddChidren(topView); |
| | | |
| | | btnRoomTilte = new Button() |
| | | { |
| | | Y = Application.GetRealHeight(30), |
| | | Y = Application.GetRealHeight(40), |
| | | Width = Application.GetRealWidth(170), |
| | | Height = Application.GetRealHeight(25), |
| | | TextAlignment = TextAlignment.CenterRight, |
| | |
| | | btnFuncTitle = new Button() |
| | | { |
| | | X = Application.GetRealWidth(209), |
| | | Y = Application.GetRealHeight(30), |
| | | Y = Application.GetRealHeight(40), |
| | | Width = Application.GetRealWidth(170), |
| | | Height = Application.GetRealHeight(25), |
| | | TextAlignment = TextAlignment.CenterLeft, |
| | |
| | | |
| | | contentPageView = new PageLayout() |
| | | { |
| | | Y = Application.GetRealHeight(64), |
| | | Height = Application.GetRealHeight(667 - 64 - 49 + 30), |
| | | Y = Application.GetRealHeight(74), |
| | | Height = Application.GetRealHeight(667 - 74 - 49 + 30), |
| | | BackgroundColor = CSS_Color.MainBackgroundColor, |
| | | IsShowPoint = false |
| | | }; |
| | |
| | | }; |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 加载功能列表界面 |
| | | /// </summary> |
| | | void LoadFunctionPageView() |
| | | void LoadFunctionPageView () |
| | | { |
| | | #region |
| | | functionsPageView = new VerticalScrolViewLayout() |
| | | { |
| | | BackgroundColor = CSS_Color.BackgroundColor, |
| | | Height = Application.GetRealHeight(667 - 64 - 49 + 20), |
| | | }; |
| | | contentPageView.AddChidren(functionsPageView); |
| | | this.RefreshFunctionView(); |
| | | |
| | | FrameLayout functionContentView; |
| | | } |
| | | FrameLayout functionContentView; |
| | | /// <summary> |
| | | /// 显示功能列表界面 |
| | | /// </summary> |
| | | void RefreshFunctionView() |
| | | { |
| | | #region |
| | | //functionsPageView = new VerticalScrolViewLayout() |
| | | //{ |
| | | // BackgroundColor = CSS_Color.BackgroundColor, |
| | | // Height = Application.GetRealHeight(667 - 64 - 49 + 20), |
| | | //}; |
| | | //contentPageView.AddChidren(functionsPageView); |
| | | |
| | | //FrameLayout functionContentView; |
| | | functionContentView = new FrameLayout() |
| | | { |
| | | Y = Application.GetRealHeight(16), |
| | |
| | | var lastY2 = Application.GetRealWidth(16); |
| | | var functionContentViewHeight = Application.GetRealWidth(16); |
| | | |
| | | foreach (var item in DB_ResidenceData.Instance.functionTypeList) |
| | | foreach (var item in DB_ResidenceData.Instance.ShowFunctionTypeList) |
| | | { |
| | | int functionCount = 0; |
| | | int functionOnCount = 0; |
| | | switch (item) |
| | | { |
| | | case ShowFunction.Series: |
| | | functionCount = FunctionList.List.GetSeries().Count; |
| | | //functionOnCount = FunctionList.List.GetSeries().FindAll((obj) => obj.trait_on_off.curValue.ToString() == "on").Count; |
| | | break; |
| | | case ShowFunction.IpCam: |
| | | functionCount = FunctionList.List.GetIpCamImouList().Count; |
| | | break; |
| | | case ShowFunction.MechanicalArm: |
| | | functionCount = FunctionList.List.GetMechanicalArmList().Count; |
| | | functionOnCount = FunctionList.List.GetMechanicalArmList().FindAll((obj) => obj.trait_on_off.curValue.ToString() == "on").Count; |
| | | break; |
| | | case ShowFunction.Light: |
| | | #region Light |
| | | functionCount = FunctionList.List.GetLightList().Count; |
| | |
| | | break; |
| | | case ShowFunction.Electric: |
| | | #region 电器 |
| | | |
| | | functionCount = FunctionList.List.GetElectricals().Count; |
| | | functionOnCount = FunctionList.List.GetElectricals().FindAll((obj) => obj.trait_on_off.curValue.ToString() == "on").Count; |
| | | functionOnCount = FunctionList.List.GetElectricals().FindAll((obj) => obj.spk!=SPK.ElectricalTvHisense&&obj.trait_on_off.curValue.ToString() == "on").Count; |
| | | //#if DEBUG |
| | | // functionCount = 1; |
| | | //#endif |
| | | #endregion |
| | | break; |
| | | case ShowFunction.EnergyMonitoring: |
| | |
| | | case ShowFunction.SecurityMonitoring: |
| | | if (!MainPage.NoLoginMode) |
| | | { |
| | | functionCount = 1; |
| | | if (OnAppConfig.Instance.RequestHttpsHost.Contains("bahrain") || !Common.ApiUtlis.Ins.hadInternet) |
| | | { |
| | | functionCount = 0; |
| | | } |
| | | else |
| | | { |
| | | functionCount = 1; |
| | | } |
| | | } |
| | | break; |
| | | case ShowFunction.Sensor: |
| | |
| | | break; |
| | | case ShowFunction.SecurityCenter: |
| | | functionCount = FunctionList.List.securities.Count; |
| | | //if (DB_ResidenceData.Instance.GatewayType == 1) |
| | | //{ |
| | | // functionCount = 1; |
| | | //} |
| | | break; |
| | | case ShowFunction.Acst: |
| | | functionCount = FunctionList.List.GetAcstParentList().Count; |
| | | functionOnCount = FunctionList.List.GetAcstParentList().FindAll((obj) => obj.trait_on_off.curValue.ToString() == "on").Count; |
| | | break; |
| | | case ShowFunction.VideoDoorLock: |
| | | if (Common.ApiUtlis.Ins.hadInternet) |
| | | { |
| | | functionCount = FunctionList.List.GetVideoDoorLockList().Count; |
| | | functionOnCount = FunctionList.List.GetAcstParentList().FindAll((obj) => obj.GetAttrState("status").ToString() == "open" |
| | | || obj.GetAttrState("status").ToString() == "normal_open").Count; |
| | | } |
| | | else |
| | | { |
| | | functionCount = 0; |
| | | } |
| | | break; |
| | | case ShowFunction.Aks: |
| | | functionCount = FunctionList.List.GetVideoControlsList().Count; |
| | | functionOnCount = 1; |
| | | break; |
| | | |
| | | |
| | | |
| | | } |
| | |
| | | }; |
| | | functionView.AddChidren(btnName); |
| | | |
| | | if (item != ShowFunction.Environmental && item != ShowFunction.Sensor && item != ShowFunction.VideoIntercom |
| | | && item != ShowFunction.SecurityMonitoring && item != ShowFunction.FreshAir && item != ShowFunction.Music |
| | | && item != ShowFunction.EnergyMonitoring && item != ShowFunction.SecurityCenter |
| | | && item != ShowFunction.Acst |
| | | //不需要显示设备开状态数量; |
| | | Button btnFunctionCount=null; |
| | | if (item != ShowFunction.Aks |
| | | && item != ShowFunction.VideoDoorLock |
| | | && item != ShowFunction.Environmental |
| | | && item != ShowFunction.Sensor |
| | | && item != ShowFunction.VideoIntercom |
| | | && item != ShowFunction.SecurityMonitoring |
| | | && item != ShowFunction.FreshAir |
| | | && item != ShowFunction.Music |
| | | && item != ShowFunction.EnergyMonitoring |
| | | && item != ShowFunction.SecurityCenter |
| | | && item != ShowFunction.Acst && item != ShowFunction.IpCam |
| | | && functionCount != 0) |
| | | { |
| | | Button btnFunctionCount = new Button() |
| | | btnFunctionCount = new Button() |
| | | { |
| | | X = Application.GetRealWidth(17) + Application.GetRealWidth(7 * functionCount.ToString().Length), |
| | | Y = btnName.Bottom, |
| | |
| | | TextAlignment = TextAlignment.CenterLeft, |
| | | Text = "/" + functionCount, |
| | | }; |
| | | functionView.AddChidren(btnFunctionCount); |
| | | Button btnOpenCount = new Button() |
| | | if (item == ShowFunction.Series) |
| | | { |
| | | X = Application.GetRealWidth(16), |
| | | Y = btnName.Bottom, |
| | | Width = Application.GetRealWidth(14 * functionCount.ToString().Length), |
| | | Height = Application.GetRealHeight(24), |
| | | TextColor = CSS_Color.MainColor, |
| | | TextSize = CSS_FontSize.PromptFontSize_FirstLevel, |
| | | TextAlignment = TextAlignment.CenterLeft, |
| | | Text = functionOnCount.ToString(), |
| | | Tag = item + "_onCount", |
| | | BorderWidth = 0, |
| | | }; |
| | | functionView.AddChidren(btnOpenCount); |
| | | btnFunctionCount.Text = functionCount.ToString(); |
| | | } |
| | | functionView.AddChidren(btnFunctionCount); |
| | | |
| | | if (item != ShowFunction.Series) |
| | | { |
| | | Button btnOpenCount = new Button() |
| | | { |
| | | X = Application.GetRealWidth(16), |
| | | Y = btnName.Bottom, |
| | | Width = Application.GetRealWidth(14 * functionCount.ToString().Length), |
| | | Height = Application.GetRealHeight(24), |
| | | TextColor = CSS_Color.MainColor, |
| | | TextSize = CSS_FontSize.PromptFontSize_FirstLevel, |
| | | TextAlignment = TextAlignment.CenterLeft, |
| | | Text = functionOnCount.ToString(), |
| | | Tag = item + "_onCount", |
| | | BorderWidth = 0, |
| | | }; |
| | | functionView.AddChidren(btnOpenCount); |
| | | } |
| | | } |
| | | |
| | | |
| | |
| | | int functionPageTitleId = 0; |
| | | switch (item) |
| | | { |
| | | case ShowFunction.Series: |
| | | btnName.TextID = StringId.HorseRaceLamp; |
| | | functionPageTitleId = StringId.HorseRaceLamp; |
| | | btnFunctionViewBg.MouseUpEventHandler = (sender, e) => { |
| | | var page2 = new UI2.Classification.SeriesFunctionListPage(); |
| | | MainPage.BasePageView.AddChidren(page2); |
| | | page2.LoadPage(); |
| | | MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; |
| | | }; |
| | | break; |
| | | case ShowFunction.Light: |
| | | #region Light |
| | | btnName.TextID = StringId.Lights; |
| | |
| | | functionPageTitleId = StringId.Lights; |
| | | |
| | | #endregion |
| | | break; |
| | | case ShowFunction.IpCam: |
| | | btnName.TextID = StringId.SecurityMonitoring; |
| | | |
| | | btnFunctionViewBg.UnSelectedImagePath = "FunctionIcon/FunctionBg/SecurityMonitoringFunctionBg.png"; |
| | | |
| | | functionPageTitleId = StringId.SecurityMonitoring; |
| | | |
| | | break; |
| | | case ShowFunction.MechanicalArm: |
| | | btnName.TextID = StringId.MechanicalArm; |
| | | Button btnMaPower = new Button() |
| | | { |
| | | X = Application.GetRealWidth(120), |
| | | Y = specialList.Contains(index) ? Application.GetRealWidth(160) : Application.GetRealWidth(117), |
| | | Width = Application.GetRealWidth(32), |
| | | Height = Application.GetRealWidth(32), |
| | | SelectedImagePath = "Public/PowerOpen.png", |
| | | UnSelectedImagePath = "Public/PowerClose.png", |
| | | IsSelected = functionOnCount > 0, |
| | | Tag = item + "_AllControl", |
| | | }; |
| | | functionView.AddChidren(btnMaPower); |
| | | |
| | | btnMaPower.MouseUpEventHandler = (sender, e) => |
| | | { |
| | | LoadEvent_SwitchFunction(btnMaPower, item, functionView); |
| | | }; |
| | | functionPageTitleId = StringId.MechanicalArm; |
| | | |
| | | break; |
| | | case ShowFunction.AC: |
| | | #region AC |
| | |
| | | case ShowFunction.EnergyMonitoring: |
| | | #region 能源监测 |
| | | btnName.TextID = StringId.EnergyMonitoring; |
| | | btnFunctionViewBg.MouseUpEventHandler = (sender, e) => |
| | | { |
| | | var skipView = new EnergyMainPage(); |
| | | MainPage.BasePageView.AddChidren(skipView); |
| | | skipView.LoadPage(); |
| | | MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; |
| | | }; |
| | | functionPageTitleId = StringId.EnergyMonitoring; |
| | | |
| | | //btnFunctionViewBg.MouseUpEventHandler = (sender, e) => |
| | | //{ |
| | | // var skipView = new EnergyMainPage(); |
| | | // MainPage.BasePageView.AddChidren(skipView); |
| | | // skipView.LoadPage(); |
| | | // MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; |
| | | //}; |
| | | #endregion |
| | | break; |
| | | case ShowFunction.Environmental: |
| | |
| | | btnName.TextID = StringId.Panel; |
| | | break; |
| | | case ShowFunction.SecurityMonitoring: |
| | | btnName.TextID = StringId.SecurityMonitoring; |
| | | btnName.TextID = StringId.EZVIZ; |
| | | btnFunctionViewBg.MouseUpEventHandler = (sender, e) => |
| | | { |
| | | HDLCommon.Current.Go2EZvizMonitor(bodyView); |
| | |
| | | break; |
| | | case ShowFunction.Acst: |
| | | btnName.TextID = StringId.Acst; |
| | | Button btnAcstPower = new Button() |
| | | |
| | | Button btnJMLogo = new Button() |
| | | { |
| | | X = Application.GetRealWidth(120), |
| | | Y = specialList.Contains(index) ? Application.GetRealWidth(160) : Application.GetRealWidth(117), |
| | | Width = Application.GetRealWidth(32), |
| | | Height = Application.GetRealWidth(32), |
| | | SelectedImagePath = "Public/PowerOpen.png", |
| | | UnSelectedImagePath = "Public/PowerClose.png", |
| | | IsSelected = functionOnCount > 0, |
| | | Tag = item + "_AllControl", |
| | | Y = specialList.Contains(index) ? Application.GetRealWidth(147) : Application.GetRealWidth(104), |
| | | UnSelectedImagePath = "FunctionIcon/Acst/LvJianLogo.png", |
| | | Width = Application.GetRealWidth(105), |
| | | Height = Application.GetRealWidth(57), |
| | | }; |
| | | functionView.AddChidren(btnAcstPower); |
| | | btnFunctionViewBg.MouseUpEventHandler = (sender, e) => { |
| | | //绿建科技系统todo |
| | | functionView.AddChidren(btnJMLogo); |
| | | |
| | | //Button btnAcstPower = new Button() |
| | | //{ |
| | | // X = Application.GetRealWidth(120), |
| | | // Y = specialList.Contains(index) ? Application.GetRealWidth(160) : Application.GetRealWidth(117), |
| | | // Width = Application.GetRealWidth(32), |
| | | // Height = Application.GetRealWidth(32), |
| | | // SelectedImagePath = "Public/PowerOpen.png", |
| | | // UnSelectedImagePath = "Public/PowerClose.png", |
| | | // IsSelected = functionOnCount > 0, |
| | | // Tag = item + "_AllControl", |
| | | //}; |
| | | //functionView.AddChidren(btnAcstPower); |
| | | //btnAcstPower.MouseUpEventHandler = (sender, e) => |
| | | //{ |
| | | // btnAcstPower.IsSelected = !btnAcstPower.IsSelected; |
| | | // string onoff = btnAcstPower.IsSelected ? "on" : "off"; |
| | | // Dictionary<string, string> d = new Dictionary<string, string>(); |
| | | // d.Add(FunctionAttributeKey.OnOff, onoff); |
| | | // foreach (var temp in FunctionList.List.GetAcstParentList()) |
| | | // { |
| | | // Control.Ins.SendWriteCommand(temp, d); |
| | | // } |
| | | //}; |
| | | |
| | | |
| | | btnFunctionViewBg.MouseUpEventHandler = (sender, e) => |
| | | { |
| | | var page = new AcstParentPage(); |
| | | MainPage.BasePageView.AddChidren(page); |
| | | page.LoadPage(); |
| | | MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; |
| | | }; |
| | | break; |
| | | case ShowFunction.VideoDoorLock: |
| | | //萤石视频门锁 |
| | | btnName.TextID = StringId.yingshishipinmensuo; |
| | | btnFunctionViewBg.MouseUpEventHandler = (sender, e) => |
| | | { |
| | | var list =CommonMethod.Current.GetVideoDoorLockList(); |
| | | var form = new VideoDoorLockListPage(()=> { |
| | | UpdateBottomView(); |
| | | }); |
| | | form.AddForm(list); |
| | | }; |
| | | break; |
| | | case ShowFunction.Aks: |
| | | |
| | | btnFunctionViewBg.UnSelectedImagePath = "FunctionIcon/FunctionBg/AksFunctionBg.png"; |
| | | //埃克斯影音中控 |
| | | btnName.TextID = StringId.jiatingyingyuan; |
| | | btnFunctionViewBg.MouseUpEventHandler = (sender, e) => |
| | | { |
| | | var list = HDL_ON.UI.UI2.FuntionControlView.Aks.AksCommonMethod.Current.GetVideoControlsList(); |
| | | var form = new HDL_ON.UI.UI2.FuntionControlView.Aks.AksListPage(() => { |
| | | UpdateBottomView(); |
| | | }); |
| | | form.AddForm(list); |
| | | }; |
| | | break; |
| | | |
| | | } |
| | | //界面跳转--音乐跳转自己的界面--环境跳转自己的界面 |
| | | if (item != ShowFunction.Music && item != ShowFunction.Environmental && item != ShowFunction.SecurityMonitoring && item != ShowFunction.DoorLock |
| | | && ShowFunction.EnergyMonitoring!= item && ShowFunction.VideoIntercom != item && ShowFunction.SecurityCenter != item |
| | | //界面跳转--音乐跳转自己的界面--环境跳转自己的界面--(萤石视频门锁)跳转自己的界面--埃克斯影音中控 |
| | | if (item != ShowFunction.VideoDoorLock |
| | | && item != ShowFunction.Aks |
| | | && item != ShowFunction.Music |
| | | && item != ShowFunction.Environmental |
| | | && item != ShowFunction.SecurityMonitoring |
| | | && item != ShowFunction.DoorLock |
| | | //&& ShowFunction.EnergyMonitoring != item |
| | | && ShowFunction.VideoIntercom != item |
| | | && ShowFunction.SecurityCenter != item |
| | | && ShowFunction.Series != item |
| | | && ShowFunction.Acst != item) |
| | | { |
| | | btnFunctionViewBg.MouseUpEventHandler = (sender, e) => |
| | | { |
| | | |
| | | var skipView = new FunctionPage(); |
| | | MainPage.BasePageView.AddChidren(skipView); |
| | | skipView.LoadPage(functionPageTitleId); |
| | | MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; |
| | | skipView.DelAction += () => |
| | | { |
| | | |
| | | UpdateBottomView(); |
| | | }; |
| | | }; |
| | | } |
| | | index++; |
| | | } |
| | | |
| | | |
| | | bool debugFlag = false; |
| | | #if DEBUG |
| | | debugFlag = true; |
| | | #endif |
| | | |
| | | //光伏数据 |
| | | if (FunctionList.List.InverterList.Count > 0 || debugFlag) |
| | | if (FunctionList.List.InverterList().Count > 0) |
| | | { |
| | | FrameLayout inverterListView = new FrameLayout() |
| | | { |
| | | Height = Application.GetRealHeight(223), |
| | | Height = Application.GetRealHeight(204), |
| | | Radius = (uint)Application.GetRealWidth(6), |
| | | BackgroundColor = CSS_Color.MainBackgroundColor, |
| | | Tag = "inverterList_View", |
| | |
| | | Button btnName = new Button() |
| | | { |
| | | X = Application.GetRealWidth(16), |
| | | Y = Application.GetRealHeight(22),//14),// |
| | | Y = Application.GetRealHeight(16),//14),// |
| | | Width = Application.GetRealWidth(140), |
| | | Height = Application.GetRealHeight(20), |
| | | TextColor = CSS_Color.FirstLevelTitleColor, |
| | |
| | | }; |
| | | inverterListView.AddChidren(btnName); |
| | | |
| | | Button btnWorkStatus = new Button() |
| | | |
| | | Button btnFunctionCount = new Button() |
| | | { |
| | | Y = Application.GetRealHeight(24), |
| | | Width = Application.GetRealWidth(148), |
| | | Height = Application.GetRealHeight(18), |
| | | TextAlignment = TextAlignment.CenterRight, |
| | | TextColor = 0xFF0BAF31, |
| | | TextID = StringId.NormalOperation, |
| | | TextSize = CSS_FontSize.TextFontSize |
| | | X = Application.GetRealWidth(17) + Application.GetRealWidth(7 * FunctionList.List.InverterList().Count.ToString().Length), |
| | | Y = btnName.Bottom, |
| | | Width = Application.GetRealWidth(120), |
| | | Height = Application.GetRealHeight(24), |
| | | TextColor = CSS_Color.PromptingColor1, |
| | | TextSize = CSS_FontSize.PromptFontSize_FirstLevel, |
| | | TextAlignment = TextAlignment.CenterLeft, |
| | | Text = "/" + FunctionList.List.InverterList().Count, |
| | | }; |
| | | inverterListView.AddChidren(btnWorkStatus); |
| | | inverterListView.AddChidren(btnFunctionCount); |
| | | |
| | | int count = 0; |
| | | foreach (var temp in FunctionList.List.InverterList()) |
| | | { |
| | | if (temp.isOnline()) |
| | | { |
| | | if (temp.trait_on_off.state.ToString() == "on") |
| | | { |
| | | ++count; |
| | | } |
| | | } |
| | | } |
| | | |
| | | Button btnOpenCount = new Button() |
| | | { |
| | | X = Application.GetRealWidth(16), |
| | | Y = btnName.Bottom, |
| | | Width = Application.GetRealWidth(14 * count.ToString().Length), |
| | | Height = Application.GetRealHeight(24), |
| | | TextColor = CSS_Color.MainColor, |
| | | TextSize = CSS_FontSize.PromptFontSize_FirstLevel, |
| | | TextAlignment = TextAlignment.CenterLeft, |
| | | Text = count.ToString(), |
| | | Tag = "inverter_onCount", |
| | | BorderWidth = 0, |
| | | }; |
| | | inverterListView.AddChidren(btnOpenCount); |
| | | |
| | | |
| | | //Button btnWorkStatus = new Button() |
| | | //{ |
| | | // Y = Application.GetRealHeight(24), |
| | | // Width = Application.GetRealWidth(148), |
| | | // Height = Application.GetRealHeight(18), |
| | | // TextAlignment = TextAlignment.CenterRight, |
| | | // TextColor = 0xFF0BAF31, |
| | | // TextID = StringId.NormalOperation, |
| | | // TextSize = CSS_FontSize.TextFontSize |
| | | //}; |
| | | //inverterListView.AddChidren(btnWorkStatus); |
| | | |
| | | Button btnWorkingModeIcon = new Button() |
| | | { |
| | | X = Application.GetRealWidth(16), |
| | | Y = btnOpenCount.Bottom + Application.GetRealHeight(5), |
| | | Width = Application.GetRealWidth(14), |
| | | Height = Application.GetRealWidth(14), |
| | | UnSelectedImagePath = "FunctionIcon/Inverter/Icon1.png" |
| | | }; |
| | | inverterListView.AddChidren(btnWorkingModeIcon); |
| | | |
| | | |
| | | Button btnWorkingMode = new Button() |
| | | { |
| | | X = Application.GetRealWidth(16), |
| | | Y = btnWorkStatus.Bottom + Application.GetRealHeight(16), |
| | | X = Application.GetRealWidth(37), |
| | | Y = btnOpenCount.Bottom + Application.GetRealHeight(5),// + Application.GetRealHeight(16), |
| | | Width = Application.GetRealWidth(148), |
| | | Height = Application.GetRealHeight(18), |
| | | Height = Application.GetRealHeight(14), |
| | | TextColor = CSS_Color.FirstLevelTitleColor, |
| | | TextSize = CSS_FontSize.PromptFontSize_FirstLevel, |
| | | TextID = StringId.WorkingMode, |
| | |
| | | }; |
| | | inverterListView.AddChidren(btnWorkingMode); |
| | | |
| | | Button btnPowerTenerationToday = new Button() |
| | | |
| | | Button btnPowerTenerationTodayIcon = new Button() |
| | | { |
| | | X = Application.GetRealWidth(16), |
| | | Y = btnWorkingMode.Bottom + Application.GetRealHeight(16), |
| | | Y = btnWorkingMode.Bottom + Application.GetRealHeight(10), |
| | | Width = Application.GetRealWidth(14), |
| | | Height = Application.GetRealWidth(14), |
| | | UnSelectedImagePath = "FunctionIcon/Inverter/Icon2.png" |
| | | }; |
| | | inverterListView.AddChidren(btnPowerTenerationTodayIcon); |
| | | |
| | | Button btnPowerTenerationToday = new Button() |
| | | { |
| | | X = Application.GetRealWidth(37), |
| | | Y = btnWorkingMode.Bottom + Application.GetRealHeight(10), |
| | | Width = Application.GetRealWidth(148), |
| | | Height = Application.GetRealHeight(18), |
| | | Height = Application.GetRealHeight(14), |
| | | TextColor = CSS_Color.FirstLevelTitleColor, |
| | | TextSize = CSS_FontSize.PromptFontSize_FirstLevel, |
| | | TextID = StringId.PowerTenerationToday, |
| | |
| | | }; |
| | | inverterListView.AddChidren(btnPowerTenerationToday); |
| | | |
| | | Button btnCurrentPowerGenerationIcon = new Button() |
| | | { |
| | | X = Application.GetRealWidth(16), |
| | | Y = btnPowerTenerationToday.Bottom + Application.GetRealHeight(10), |
| | | Width = Application.GetRealWidth(14), |
| | | Height = Application.GetRealWidth(14), |
| | | UnSelectedImagePath = "FunctionIcon/Inverter/Icon3.png" |
| | | }; |
| | | inverterListView.AddChidren(btnCurrentPowerGenerationIcon); |
| | | |
| | | Button btnCurrentPowerGeneration = new Button() |
| | | { |
| | | X = Application.GetRealWidth(16), |
| | | Y = btnPowerTenerationToday.Bottom + Application.GetRealHeight(16), |
| | | X = Application.GetRealWidth(37), |
| | | Y = btnPowerTenerationToday.Bottom + Application.GetRealHeight(10), |
| | | Width = Application.GetRealWidth(148), |
| | | Height = Application.GetRealHeight(18), |
| | | Height = Application.GetRealHeight(14), |
| | | TextColor = CSS_Color.FirstLevelTitleColor, |
| | | TextSize = CSS_FontSize.PromptFontSize_FirstLevel, |
| | | TextID = StringId.CurrentPowerGeneration, |
| | |
| | | }; |
| | | inverterListView.AddChidren(btnCurrentPowerGeneration); |
| | | |
| | | Button btnBatterySOC = new Button() |
| | | { |
| | | X = Application.GetRealWidth(16), |
| | | Y = btnCurrentPowerGeneration.Bottom + Application.GetRealHeight(16), |
| | | Width = Application.GetRealWidth(148), |
| | | Height = Application.GetRealHeight(18), |
| | | TextColor = CSS_Color.FirstLevelTitleColor, |
| | | TextSize = CSS_FontSize.PromptFontSize_FirstLevel, |
| | | TextID = StringId.BatterySOC, |
| | | TextAlignment = TextAlignment.CenterLeft, |
| | | }; |
| | | inverterListView.AddChidren(btnBatterySOC); |
| | | //Button btnBatterySOC = new Button() |
| | | //{ |
| | | // X = Application.GetRealWidth(37), |
| | | // Y = btnCurrentPowerGeneration.Bottom, |
| | | // Width = Application.GetRealWidth(148), |
| | | // Height = Application.GetRealHeight(18), |
| | | // TextColor = CSS_Color.FirstLevelTitleColor, |
| | | // TextSize = CSS_FontSize.PromptFontSize_FirstLevel, |
| | | // TextID = StringId.BatterySOC, |
| | | // TextAlignment = TextAlignment.CenterLeft, |
| | | //}; |
| | | //inverterListView.AddChidren(btnBatterySOC); |
| | | |
| | | Button btnOperationDataTotalData = new Button() |
| | | { |
| | | X = Application.GetRealWidth(16), |
| | | Y = btnBatterySOC.Bottom + Application.GetRealHeight(16), |
| | | Width = Application.GetRealWidth(148), |
| | | Height = Application.GetRealHeight(18), |
| | | TextColor = CSS_Color.FirstLevelTitleColor, |
| | | TextSize = CSS_FontSize.PromptFontSize_FirstLevel, |
| | | TextID = StringId.OperationDataTotalData, |
| | | TextAlignment = TextAlignment.CenterLeft, |
| | | }; |
| | | inverterListView.AddChidren(btnOperationDataTotalData); |
| | | //Button btnOperationDataTotalData = new Button() |
| | | //{ |
| | | // X = Application.GetRealWidth(16), |
| | | // Y = btnBatterySOC.Bottom + Application.GetRealHeight(16), |
| | | // Width = Application.GetRealWidth(148), |
| | | // Height = Application.GetRealHeight(18), |
| | | // TextColor = CSS_Color.FirstLevelTitleColor, |
| | | // TextSize = CSS_FontSize.PromptFontSize_FirstLevel, |
| | | // TextID = StringId.OperationDataTotalData, |
| | | // TextAlignment = TextAlignment.CenterLeft, |
| | | //}; |
| | | //inverterListView.AddChidren(btnOperationDataTotalData); |
| | | |
| | | var clickButton = new Button(); |
| | | inverterListView.AddChidren(clickButton); |
| | | |
| | | clickButton.MouseUpEventHandler = (sender2, e2) => |
| | | { |
| | | var h5BasePage = new FrameLayout(); |
| | | var h5BasePage = new FrameLayout() { |
| | | BackgroundColor = CSS_Color.MainBackgroundColor, |
| | | }; |
| | | |
| | | #if __Android__ |
| | | //适配安卓沉浸式导航栏 |
| | | h5BasePage.Y = Application.GetRealHeight(16); |
| | | h5BasePage.Height = Application.GetRealHeight(651); |
| | | #endif |
| | | //#if __Android__ |
| | | //适配沉浸式导航栏 |
| | | h5BasePage.Y = Application.GetRealHeight(35); |
| | | h5BasePage.Height = Application.GetRealHeight(646); |
| | | //#endif |
| | | MainPage.BasePageView.AddChidren(h5BasePage); |
| | | MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; |
| | | |
| | | h5BasePage.AddChidren(Inverter.Ins.H5Page);//000 |
| | | string url = $"h5/index.html?homeId={DB_ResidenceData.Instance.CurrentRegion.id}&token={UserInfo.Current.AccessToken}&refresh_token={UserInfo.Current.RefreshToken}&url={HttpUtil.GlobalRequestHttpsHost}"; |
| | | string lz = "zh"; |
| | | if (Language.CurrentLanguage == "Ukraine") { |
| | | lz = "ua"; |
| | | } |
| | | else if (Language.CurrentLanguage == "Chinese") |
| | | { |
| | | lz = "zh"; |
| | | } |
| | | else |
| | | { |
| | | lz = "en"; |
| | | } |
| | | string url = $"h5/index.html?homeId={DB_ResidenceData.Instance.CurrentRegion.id}&token={UserInfo.Current.AccessToken}&refresh_token={UserInfo.Current.RefreshToken}&url={OnAppConfig.Instance.RequestHttpsHost}&language={lz}"; |
| | | Inverter.Ins.ShowWebviewFormUrl(url); |
| | | |
| | | new System.Threading.Thread(() => |
| | | { |
| | | System.Threading.Thread.Sleep(2000); |
| | | Application.RunOnMainThread(() => |
| | | { |
| | | var status = new Dictionary<string, object> { ["method"] = "weather", ["data"] = MainPage.cityInfo.weather }; |
| | | Inverter.Ins.H5Page.CallJS($"nativeToJs(\'{Newtonsoft.Json.JsonConvert.SerializeObject(status)}\')"); |
| | | }); |
| | | }) |
| | | { IsBackground = true }.Start(); |
| | | Inverter.Ins.H5Page.JSToNativeAction = (dictionary) => |
| | | { |
| | | #if __IOS__ |
| | | JObject jObj = JObject.Parse(Newtonsoft.Json.JsonConvert.SerializeObject(dictionary)); |
| | | #else |
| | | var valuePairs = ""; |
| | | dictionary.TryGetValue("method", out valuePairs); |
| | | JObject jObj = JObject.Parse(valuePairs); |
| | | #endif |
| | | |
| | | if (!jObj.ContainsKey("method") || !jObj.ContainsKey("data")) |
| | | { |
| | |
| | | } |
| | | var function = new Function(); |
| | | function.sid = data["sid"].ToString(); |
| | | var inObj = FunctionList.List.InverterList.Find((obj) => obj.sid == function.sid); |
| | | var inObj = FunctionList.List.InverterList().Find((obj) => obj.sid == function.sid); |
| | | if (inObj == null) |
| | | { |
| | | return; |
| | |
| | | { |
| | | h5BasePage.RemoveFromParent(); |
| | | }); |
| | | refreshInverterInfo(btnPowerTenerationToday, btnWorkingMode, btnCurrentPowerGeneration); |
| | | } |
| | | else if (jObj["method"].ToString() == "setPageIndex") |
| | | { |
| | | var data = jObj["data"].ToString(); |
| | | Inverter.Ins.PageIndex = data.ToString(); |
| | | } |
| | | }; |
| | | |
| | | |
| | | |
| | | }; |
| | | |
| | | refreshInverterInfo(btnPowerTenerationToday, btnWorkingMode, btnCurrentPowerGeneration); |
| | | |
| | | index++; |
| | | } |
| | | |
| | | s1View.Height = s2View.Height = functionContentView.Height = functionContentViewHeight + Application.GetRealWidth(40); |
| | | |
| | | #endregion |
| | | #endregion |
| | | } |
| | | |
| | | |
| | | |
| | | void refreshInverterInfo(Button btnPowerTenerationToday, Button btnWorkingMode, Button btnCurrentPowerGeneration) |
| | | { |
| | | new System.Threading.Thread(() => |
| | | { |
| | | var http = new HttpServerRequest(); |
| | | var pack = http.GetInverterStatisticsInfo(); |
| | | if (pack != null) |
| | | { |
| | | if(pack.Data == null) |
| | | { |
| | | return; |
| | | } |
| | | var info = JsonConvert.DeserializeObject<StatisticsInfo>(pack.Data?.ToString()); |
| | | if (info == null) |
| | | { |
| | | return; |
| | | } |
| | | try |
| | | { |
| | | Application.RunOnMainThread(() => |
| | | { |
| | | btnPowerTenerationToday.Text = info.totalElectricityPvToday + "kW·h";// Language.StringByID(StringId.PowerTenerationToday).Replace("----", info.totalElectricityPvToday); |
| | | string workModeString = ""; |
| | | if (Language.CurrentLanguage == "Chinese") { |
| | | switch (info.workMode) |
| | | { |
| | | case "self_use": |
| | | workModeString = "自发自用"; |
| | | break; |
| | | case "peak_load_shifting": |
| | | workModeString = "削峰填谷"; |
| | | break; |
| | | case "battery_priority": |
| | | workModeString = "电池优先"; |
| | | break; |
| | | } |
| | | } |
| | | else |
| | | { |
| | | switch (info.workMode) |
| | | { |
| | | case "self_use": |
| | | workModeString = "Self Consume"; |
| | | break; |
| | | case "peak_load_shifting": |
| | | workModeString = "Peak Shift"; |
| | | break; |
| | | case "battery_priority": |
| | | workModeString = "Battery Priority"; |
| | | break; |
| | | } |
| | | } |
| | | btnWorkingMode.Text = workModeString;// Language.StringByID(StringId.WorkingMode).Replace("----", workModeString); |
| | | btnCurrentPowerGeneration.Text = info.powerPvNow + "w";// Language.StringByID(StringId.CurrentPowerGeneration).Replace("----", info.powerPvNow); |
| | | //btnBatterySOC.Text = Language.StringByID(StringId.BatterySOC).Replace("--", info.batterySoc); |
| | | }); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | MainPage.Log($"获取家庭光伏统计数据异常:{ex.Message}"); |
| | | } |
| | | } |
| | | |
| | | |
| | | }) |
| | | { IsBackground = true }.Start(); |
| | | } |
| | | |
| | | #region 切换楼层 |
| | |
| | | |
| | | foreach (var floor in chooseList) |
| | | { |
| | | if (!string.IsNullOrEmpty( floor.roomId))// != Language.StringByID(StringId.All)) |
| | | if (!string.IsNullOrEmpty( floor.roomId)) |
| | | { |
| | | //---分割线 |
| | | contentView.AddChidren(new Button() |
| | |
| | | { |
| | | |
| | | } |
| | | #endregion |
| | | #endregion |
| | | |
| | | /// <summary> |
| | | /// 更新底部界面 |
| | | /// </summary> |
| | | void UpdateBottomView() |
| | | { |
| | | Application.RunOnMainThread(() => |
| | | { |
| | | functionContentView?.RemoveFromParent(); |
| | | this.RefreshFunctionView(); |
| | | }); |
| | | } |
| | | } |
| | | } |
| | | } |