HDL-ON_iOS/HDL-ON_iOS.csproj
@@ -1839,6 +1839,9 @@ <BundleResource Include="Resources\Phone\FunctionIcon\Acst\Inverter\SocialContributionInfoBg_Coal.png" /> <BundleResource Include="Resources\Phone\FunctionIcon\Acst\Inverter\SocialContributionInfoIcon_Coal.png" /> <BundleResource Include="Resources\Phone\FunctionIcon\Acst\Inverter\EnergyStorageStatusBg.png" /> <BundleResource Include="Resources\Phone\FunctionIcon\Acst\WaterHeater\Mode_Economic.png" /> <BundleResource Include="Resources\Phone\FunctionIcon\Acst\WaterHeater\Mode_QuickHeat_On.png" /> <BundleResource Include="Resources\Phone\FunctionIcon\Acst\WaterHeater\ModeFree_True.png" /> </ItemGroup> <ItemGroup> <ITunesArtwork Include="iTunesArtwork" /> HDL-ON_iOS/Resources/Phone/FunctionIcon/Acst/WaterHeater/ModeFree_True.png
HDL-ON_iOS/Resources/Phone/FunctionIcon/Acst/WaterHeater/Mode_Economic.png
HDL-ON_iOS/Resources/Phone/FunctionIcon/Acst/WaterHeater/Mode_QuickHeat_On.png
HDL_ON/Common/UserInfo.cs
@@ -174,7 +174,7 @@ { get { return (DateTime.Now - LastTime).TotalDays < 7; return (DateTime.Now - LastTime).TotalDays < 90; } } HDL_ON/DAL/Server/HttpServerRequest.cs
@@ -38,7 +38,7 @@ /// <summary> /// 获取传感器历史数据 /// </summary> /// <param name="qType">时间查询类型:hour=近24小时、week=近一周、month = 近一月 </param> /// <param name="qType">时间查询类型:hour=近24小时、day_hour =某日24小时、week=近一周、month = 近一月、custom_month=某年某月 y/M、custom_year=某年 y</param> /// <param name="deviceId">设备ID</param> /// <param name="deviceKey">功能查询类型:pm25</param> /// <param name="time">具体查询的日期,金茂温控器使用</param> HDL_ON/UI/UI1-Login/LoginPage.cs
@@ -1218,11 +1218,11 @@ new FunctionAttributes(){ key = WaterHeaterJinmao_AttrEnum.flow.ToString(),curValue = "2",state = "2" }, new FunctionAttributes(){ key = WaterHeaterJinmao_AttrEnum.mode.ToString(),curValue = "economic",state = "economic" }, new FunctionAttributes(){ key = WaterHeaterJinmao_AttrEnum.mode_free.ToString(),curValue = "true",state = "true" }, new FunctionAttributes(){ key = WaterHeaterJinmao_AttrEnum.recycl_volume.ToString(),curValue = "5",state = "5" }, new FunctionAttributes(){ key = WaterHeaterJinmao_AttrEnum.recycl_volume.ToString(),curValue = "10",state = "10" }, new FunctionAttributes(){ key = WaterHeaterJinmao_AttrEnum.set_temp.ToString(),curValue = "25",state = "25" }, new FunctionAttributes(){ key = WaterHeaterJinmao_AttrEnum.temp.ToString(),curValue = "23",state = "23" }, new FunctionAttributes(){ key = WaterHeaterJinmao_AttrEnum.trees.ToString(),curValue = "8",state = "8" }, new FunctionAttributes(){ key = WaterHeaterJinmao_AttrEnum.volume.ToString(),curValue = "88",state = "88" }, new FunctionAttributes(){ key = WaterHeaterJinmao_AttrEnum.volume.ToString(),curValue = "100",state = "100" }, }, }); HDL_ON/UI/UI1-Login/LoginPageBLL.cs
@@ -637,6 +637,7 @@ { //跳转页面---- MainPage.GoUserPage(true); this.RemoveFromParent(); return; } }); @@ -671,6 +672,7 @@ Common.ApiUtlis.Ins.DownloadDataComplete = false; //跳转页面---- MainPage.GoUserPage(true); this.RemoveFromParent(); }); } else HDL_ON/UI/UI2/4-PersonalCenter/RoomListManage/AddRoom/AddRoomPage.cs
@@ -616,7 +616,7 @@ { CropImageCallBack(imagePath); }, imageName, 16, 9); }, imageName, 16, 9,0); baseView.RemoveFromParent(); }; @@ -637,7 +637,7 @@ { CropImageCallBack(imagePath); }, imageName, 16, 9); }, imageName, 16, 9,0); baseView.RemoveFromParent(); HDL_ON/UI/UI2/4-PersonalCenter/RoomListManage/RoomEditPageBLL.cs
@@ -224,7 +224,7 @@ { CropImageCallBack(imagePath); }, imageName, 16, 9); }, imageName, 16, 9,0); baseView.RemoveFromParent(); }; @@ -245,7 +245,7 @@ { CropImageCallBack(imagePath); }, imageName, 16, 9); }, imageName, 16, 9,0); baseView.RemoveFromParent(); HDL_ON/UI/UI2/FuntionControlView/Acst/InverterJinmaoPage.cs
@@ -9,6 +9,55 @@ { FrameLayout bodyView; Function function; /// <summary> /// 今日发电量数据按钮 /// </summary> Button pvGenerate_TodayValuesButton; /// <summary> /// 今日发电量单位按钮 /// </summary> Button pvGenerate_todayUintButton; /// <summary> /// 累计发电量数据按钮 /// </summary> Button pvGenerate_TotalValuesButton; /// <summary> /// 今日用电量数据按钮 /// </summary> Button pvLoad_TodayValuesButton; /// <summary> /// 累计用电量数据按钮 /// </summary> Button pvLoad_TotalValuesButton; /// <summary> /// 光伏运行状态信息区域 /// </summary> FrameLayout pvRunStatusInfoView; /// <summary> /// 光伏运行状态图标按钮 /// </summary> Button pvRunStatus_IconButtonp; /// <summary> /// 光伏运行状态文本按钮 /// </summary> Button pvRunStatus_TextButton; /// <summary> /// 光伏发电功能数据按钮 /// </summary> Button pvPower_ValuesButton; /// <summary> /// 光伏今日发电量数据按钮 /// </summary> Button pvGeneration_TodayValuesButton; /// <summary> /// 光伏本月发电量数据按钮 /// </summary> Button pvGeneration_MonthValuesButton; /// <summary> /// 光伏本年发电量数据按钮 /// </summary> Button pvGeneration_YearValuesButton; public InverterJinmaoPage() { @@ -59,7 +108,7 @@ }; electricityQuantityView.AddChidren(electricityGenerationView); var electricityGeneration_IconButton = new Button() var pv_IconButton = new Button() { X = Application.GetRealWidth(14), Y = Application.GetRealWidth(16), @@ -67,9 +116,9 @@ Height = Application.GetRealWidth(12), UnSelectedImagePath = "FunctionIcon/Acst/Inverter/ElectricityGenerationIcon.png" }; electricityQuantityView.AddChidren(electricityGeneration_IconButton); electricityQuantityView.AddChidren(pv_IconButton); var electricityGeneration_TextButton = new Button() var pv_TextButton = new Button() { X = Application.GetRealWidth(32), Y = Application.GetRealWidth(12), @@ -80,9 +129,9 @@ TextAlignment = TextAlignment.CenterLeft, TextColor = CSS_Color.MainBackgroundColor, }; electricityGenerationView.AddChidren(electricityGeneration_TextButton); electricityGenerationView.AddChidren(pv_TextButton); var electricityGeneration_ValuesButton = new Button() pvGenerate_TodayValuesButton = new Button() { X = Application.GetRealWidth(12), Y = Application.GetRealWidth(34), @@ -92,16 +141,16 @@ TextSize = 18, IsBold = true, }; electricityGenerationView.AddChidren(electricityGeneration_ValuesButton); electricityGenerationView.AddChidren(pvGenerate_TodayValuesButton); #if __IOS__ electricityGeneration_ValuesButton.TextAlignment = TextAlignment.TopLeft; electricityGeneration_ValuesButton.Width = electricityGeneration_ValuesButton.GetTextWidth() + Application.GetRealWidth(8); pvGenerate_TodayValuesButton.TextAlignment = TextAlignment.TopLeft; pvGenerate_TodayValuesButton.Width = pvGenerate_TodayValuesButton.GetTextWidth() + Application.GetRealWidth(8); #else electricityGeneration_ValuesButton.TextAlignment = TextAlignment.BottomLeft; electricityGeneration_ValuesButton.Width = electricityGeneration_ValuesButton.GetTextWidth(); pvGenerate_TodayValuesButton.TextAlignment = TextAlignment.BottomLeft; pvGenerate_TodayValuesButton.Width = pvGenerate_TodayValuesButton.GetTextWidth(); #endif var electricityGeneration_UintButton = new Button() pvGenerate_todayUintButton = new Button() { Y = Application.GetRealWidth(41), Height = Application.GetRealWidth(17), @@ -110,10 +159,10 @@ TextSize = 12, TextAlignment = TextAlignment.CenterLeft, }; electricityGeneration_UintButton.X = electricityGeneration_ValuesButton.Right; electricityGenerationView.AddChidren(electricityGeneration_UintButton); pvGenerate_todayUintButton.X = pvGenerate_TodayValuesButton.Right; electricityGenerationView.AddChidren(pvGenerate_todayUintButton); var electricityGeneration_TotalValuesButton = new Button() pvGenerate_TotalValuesButton = new Button() { X = Application.GetRealWidth(12), Y = Application.GetRealWidth(69), @@ -124,24 +173,23 @@ TextAlignment = TextAlignment.CenterLeft, //IsBold = true, }; electricityGenerationView.AddChidren(electricityGeneration_TotalValuesButton); electricityGenerationView.AddChidren(pvGenerate_TotalValuesButton); #endregion #region 用电量 Electricity consumption var electricityConsumptionView = new FrameLayout() var loadEleView = new FrameLayout() { X = Application.GetRealWidth(178-16), Width = Application.GetRealWidth(181), Height = Application.GetRealWidth(99), BackgroundImagePath = "FunctionIcon/Acst/Inverter/ElectricityConsumptionBg.png" }; electricityQuantityView.AddChidren(electricityConsumptionView); electricityQuantityView.AddChidren(loadEleView); var electricityConsumption_IconButton = new Button() var loadEle_IconButton = new Button() { X = Application.GetRealWidth(155), Y = Application.GetRealWidth(16), @@ -149,9 +197,9 @@ Height = Application.GetRealWidth(12), UnSelectedImagePath = "FunctionIcon/Acst/Inverter/ElectricityConsumptionIcon.png" }; electricityConsumptionView.AddChidren(electricityConsumption_IconButton); loadEleView.AddChidren(loadEle_IconButton); var electricityConsumption_TextButton = new Button() var loadEle_TodayTextButton = new Button() { //X = Application.GetRealWidth(181 - 32), Y = Application.GetRealWidth(12), @@ -162,10 +210,10 @@ TextAlignment = TextAlignment.CenterRight, TextColor = CSS_Color.MainBackgroundColor, }; electricityConsumptionView.AddChidren(electricityConsumption_TextButton); loadEleView.AddChidren(loadEle_TodayTextButton); var electricityConsumption_UintButton = new Button() var loadEle_TodayUintButton = new Button() { Y = Application.GetRealWidth(41), Height = Application.GetRealWidth(17), @@ -174,17 +222,17 @@ TextSize = 12, TextAlignment = TextAlignment.CenterRight, }; electricityConsumptionView.AddChidren(electricityConsumption_UintButton); loadEleView.AddChidren(loadEle_TodayUintButton); #if __IOS__ electricityConsumption_UintButton.Width = electricityConsumption_UintButton.GetTextWidth() + Application.GetRealWidth(8); loadEle_TodayUintButton.Width = loadEle_TodayUintButton.GetTextWidth() + Application.GetRealWidth(8); #else electricityConsumption_UintButton.Width = electricityConsumption_UintButton.GetTextWidth(); loadEle_TodayUintButton.Width = loadEle_TodayUintButton.GetTextWidth(); #endif electricityConsumption_UintButton.X = Application.GetRealWidth(181 - 12) - electricityConsumption_UintButton.Width; loadEle_TodayUintButton.X = Application.GetRealWidth(181 - 12) - loadEle_TodayUintButton.Width; var electricityConsumption_ValuesButton = new Button() pvLoad_TodayValuesButton = new Button() { X = Application.GetRealWidth(81 - 12) - electricityConsumption_UintButton.Width, X = Application.GetRealWidth(81 - 12) - loadEle_TodayUintButton.Width, Y = Application.GetRealWidth(34), Height = Application.GetRealWidth(53), Width = Application.GetRealWidth(100), @@ -194,10 +242,9 @@ TextAlignment = TextAlignment.TopRight, IsBold = true, }; electricityConsumptionView.AddChidren(electricityConsumption_ValuesButton); loadEleView.AddChidren(pvLoad_TodayValuesButton); var electricityConsumption_TotalValuesButton = new Button() pvLoad_TotalValuesButton = new Button() { Y = Application.GetRealWidth(69), Height = Application.GetRealWidth(18), @@ -208,13 +255,14 @@ TextAlignment = TextAlignment.CenterRight, //IsBold = true, }; electricityConsumptionView.AddChidren(electricityConsumption_TotalValuesButton); loadEleView.AddChidren(pvLoad_TotalValuesButton); #endregion var goHistroyButton = new Button(); electricityQuantityView.AddChidren(goHistroyButton); goHistroyButton.MouseUpEventHandler = (sender, e) => { goHistroyButton.MouseUpEventHandler = (sender, e) => { var page = new InverterJinmaoHistroyPage(function); MainPage.BasePageView.AddChidren(page); page.LoadPage(); @@ -227,7 +275,7 @@ Height = Application.GetRealWidth(8), }); #region 光伏运行状态 var runStatus_TitleButton = new Button() var pvRunStatus_TitleButton = new Button() { X = Application.GetRealWidth(16), Height = Application.GetRealWidth(47), @@ -237,10 +285,9 @@ TextSize = 16, IsBold = true, }; contentView.AddChidren(runStatus_TitleButton); contentView.AddChidren(pvRunStatus_TitleButton); #region 发电量 electricity generation var electricityGenerationStatusView = new FrameLayout() var pvEleGenerationInfoView = new FrameLayout() { Gravity = Gravity.CenterHorizontal, Width = Application.GetRealWidth(343), @@ -250,9 +297,10 @@ BorderColor = 0x00FFFFFF, BorderWidth = 0, }; contentView.AddChidren(electricityGenerationStatusView); contentView.AddChidren(pvEleGenerationInfoView); var electricityGenerationStatus_InfoView = new FrameLayout() #region 光伏运行状态 pvRunStatusInfoView = new FrameLayout() { X = 0 - Application.GetRealWidth(14), Y = Application.GetRealWidth(12), @@ -263,9 +311,9 @@ BorderColor = 0x00FFFFFF, BorderWidth = 0, }; electricityGenerationStatusView.AddChidren(electricityGenerationStatus_InfoView); pvEleGenerationInfoView.AddChidren(pvRunStatusInfoView); var runStatus_Info_IconButton = new Button() pvRunStatus_IconButtonp = new Button() { X = Application.GetRealWidth(8 + 14), Gravity = Gravity.CenterVertical, @@ -273,9 +321,9 @@ Height = Application.GetRealWidth(12), UnSelectedImagePath = "FunctionIcon/Acst/Inverter/PvIconRun.png", }; electricityGenerationStatus_InfoView.AddChidren(runStatus_Info_IconButton); pvRunStatusInfoView.AddChidren(pvRunStatus_IconButtonp); var runStatus_Info_TextButton = new Button() pvRunStatus_TextButton = new Button() { X = Application.GetRealWidth(8 + 14 + 4 + 12), TextAlignment = TextAlignment.CenterLeft, @@ -283,7 +331,7 @@ TextColor = 0xFF4484F4, Text = "运行", }; electricityGenerationStatus_InfoView.AddChidren(runStatus_Info_TextButton); pvRunStatusInfoView.AddChidren(pvRunStatus_TextButton); var powerGenerationView = new FrameLayout() { @@ -293,9 +341,12 @@ Height = Application.GetRealWidth(151), BackgroundImagePath = "FunctionIcon/Acst/Inverter/PvBgRun.png" }; electricityGenerationStatusView.AddChidren(powerGenerationView); pvEleGenerationInfoView.AddChidren(powerGenerationView); #endregion var powerGeneration_ValuesButton = new Button() #region 光伏发电量 #region 光伏发电功率 pvPower_ValuesButton = new Button() { Gravity = Gravity.CenterHorizontal, Y = Application.GetRealWidth(46), @@ -307,7 +358,7 @@ TextSize = 24, IsBold = true, }; powerGenerationView.AddChidren(powerGeneration_ValuesButton); powerGenerationView.AddChidren(pvPower_ValuesButton); var powerGeneration_TextButton = new Button() { @@ -321,9 +372,10 @@ TextSize = 12, }; powerGenerationView.AddChidren(powerGeneration_TextButton); #endregion var powerGeneration_TodayValuesButton = new Button() #region 光伏今日发电量 pvGeneration_TodayValuesButton = new Button() { X = Application.GetRealWidth(16), Y = Application.GetRealWidth(191), @@ -335,7 +387,7 @@ TextSize = 18, IsBold = true, }; electricityGenerationStatusView.AddChidren(powerGeneration_TodayValuesButton); pvEleGenerationInfoView.AddChidren(pvGeneration_TodayValuesButton); var powerGeneration_TodayTextButton = new Button() { @@ -348,10 +400,11 @@ TextColor = CSS_Color.TextualColor, TextSize = 12, }; electricityGenerationStatusView.AddChidren(powerGeneration_TodayTextButton); pvEleGenerationInfoView.AddChidren(powerGeneration_TodayTextButton); #endregion var powerGeneration_MonthValuesButton = new Button() #region 光伏本月发电量 pvGeneration_MonthValuesButton = new Button() { X = Application.GetRealWidth(16 + 105), Y = Application.GetRealWidth(191), @@ -363,7 +416,7 @@ TextSize = 18, IsBold = true, }; electricityGenerationStatusView.AddChidren(powerGeneration_MonthValuesButton); pvEleGenerationInfoView.AddChidren(pvGeneration_MonthValuesButton); var powerGeneration_MonthTextButton = new Button() { @@ -376,10 +429,11 @@ TextColor = CSS_Color.TextualColor, TextSize = 12, }; electricityGenerationStatusView.AddChidren(powerGeneration_MonthTextButton); pvEleGenerationInfoView.AddChidren(powerGeneration_MonthTextButton); #endregion var powerGeneration_YearValuesButton = new Button() #region 光伏本年发电量 pvGeneration_YearValuesButton = new Button() { X = Application.GetRealWidth(16 + 212), Y = Application.GetRealWidth(191), @@ -391,7 +445,7 @@ TextSize = 18, IsBold = true, }; electricityGenerationStatusView.AddChidren(powerGeneration_YearValuesButton); pvEleGenerationInfoView.AddChidren(pvGeneration_YearValuesButton); var powerGeneration_YearTextButton = new Button() { @@ -399,12 +453,13 @@ Y = Application.GetRealWidth(220), Width = Application.GetRealWidth(100), Height = Application.GetRealWidth(17), Text = "总发电量 (kwh)", Text = "累计发电量 (kwh)", TextAlignment = TextAlignment.Center, TextColor = CSS_Color.TextualColor, TextSize = 12, }; electricityGenerationStatusView.AddChidren(powerGeneration_YearTextButton); pvEleGenerationInfoView.AddChidren(powerGeneration_YearTextButton); #endregion #endregion contentView.AddChidren(new Button() @@ -539,15 +594,13 @@ Y = Application.GetRealWidth(220), Width = Application.GetRealWidth(100), Height = Application.GetRealWidth(17), Text = "总用电量 (kwh)", Text = "累计用电量 (kwh)", TextAlignment = TextAlignment.Center, TextColor = CSS_Color.TextualColor, TextSize = 12, }; electricityUsageStatusView.AddChidren(powerUsage_YearTextButton); #endregion #endregion @@ -726,7 +779,6 @@ #endregion #endregion contentView.AddChidren(new Button() { @@ -966,6 +1018,141 @@ } /// <summary> /// 更新界面数据 /// </summary> /// <param name="temp"></param> public void UpdateStatus(Function temp) { if (bodyView == null) { return; } Application.RunOnMainThread(() => { /// 更新今日发电量 if (function.GetAttrState(InverterJinmao_AttrEnum.pv_electricity_today.ToString()) != temp.GetAttrState(InverterJinmao_AttrEnum.pv_electricity_today.ToString())) { upatePvGenerateTodayValues(); } /// 更新累计发电量 if (function.GetAttrState(InverterJinmao_AttrEnum.pv_electricity.ToString()) != temp.GetAttrState(InverterJinmao_AttrEnum.pv_electricity.ToString())) { upatePvGenerateTotalValues(); } /// 更新今日用电量 if (function.GetAttrState(InverterJinmao_AttrEnum.load_electricity_today.ToString()) != temp.GetAttrState(InverterJinmao_AttrEnum.load_electricity_today.ToString())) { upatePvLoadTodayValues(); } /// 更新累计用电量 if (function.GetAttrState(InverterJinmao_AttrEnum.load_electricity.ToString()) != temp.GetAttrState(InverterJinmao_AttrEnum.load_electricity.ToString())) { upatePvLoadTotalValues(); } /// 更新光伏运行状态 if (function.GetAttrState(InverterJinmao_AttrEnum.system_status.ToString()) != temp.GetAttrState(InverterJinmao_AttrEnum.system_status.ToString())) { upatePvRunStatus(); } /// 更新光伏发电功能 if (function.GetAttrState(InverterJinmao_AttrEnum.pv_power.ToString()) != temp.GetAttrState(InverterJinmao_AttrEnum.pv_power.ToString())) { upatePvPower(); } /// 更新光伏本月发电量 if (function.GetAttrState(InverterJinmao_AttrEnum.pv_electricity_month.ToString()) != temp.GetAttrState(InverterJinmao_AttrEnum.pv_electricity_month.ToString())) { upatePvGenerateMonthValues(); } /// 更新光伏本年发电量 if (function.GetAttrState(InverterJinmao_AttrEnum.pv_electricity.ToString()) != temp.GetAttrState(InverterJinmao_AttrEnum.pv_electricity.ToString())) { upatePvGenerateYearValues(); } }); } /// <summary> /// 更新今日发电量 /// </summary> private void upatePvGenerateTodayValues() { pvGenerate_TodayValuesButton.Text = pvGeneration_TodayValuesButton.Text = function.GetAttrState(InverterJinmao_AttrEnum.pv_electricity_today.ToString()); pvGenerate_todayUintButton.X = pvGenerate_TodayValuesButton.Right; } /// <summary> /// 更新光伏本月发电量 /// </summary> private void upatePvGenerateMonthValues() { pvGeneration_MonthValuesButton.Text = function.GetAttrState(InverterJinmao_AttrEnum.pv_electricity_month.ToString()); } /// <summary> /// 更新光伏本年发电量 /// </summary> private void upatePvGenerateYearValues() { pvGeneration_YearValuesButton.Text = function.GetAttrState(InverterJinmao_AttrEnum.pv_electricity.ToString()); } /// <summary> /// 更新累计发电量 /// </summary> private void upatePvGenerateTotalValues() { pvGenerate_TodayValuesButton.Text = "累计发电量:" + function.GetAttrState(InverterJinmao_AttrEnum.pv_electricity.ToString()); } /// <summary> /// 更新今日用电量 /// </summary> private void upatePvLoadTodayValues() { pvLoad_TodayValuesButton.Text = function.GetAttrState(InverterJinmao_AttrEnum.load_electricity_today.ToString()); } /// <summary> /// 更新累计用电量 /// </summary> private void upatePvLoadTotalValues() { pvLoad_TotalValuesButton.Text = "累计用电量:" + function.GetAttrState(InverterJinmao_AttrEnum.load_electricity.ToString()); } /// <summary> /// 更新光伏运行状态 /// </summary> private void upatePvRunStatus() { switch (function.GetAttrState(InverterJinmao_AttrEnum.system_status.ToString())) { case "run": pvRunStatusInfoView.BackgroundColor = 0x154484F4; pvRunStatus_IconButtonp.UnSelectedImagePath = "FunctionIcon/Acst/Inverter/PvIconRun.png"; pvRunStatus_TextButton.Text = "运行"; pvRunStatus_TextButton.TextColor = 0xFF4484F4; break; case "fault": pvRunStatusInfoView.BackgroundColor = 0x15FF4747; pvRunStatus_IconButtonp.UnSelectedImagePath = "FunctionIcon/Acst/Inverter/PvIconFault.png"; pvRunStatus_TextButton.Text = "故障"; pvRunStatus_TextButton.TextColor = 0xFFFF4747; break; case "standby": pvRunStatusInfoView.BackgroundColor = 0x15798394; pvRunStatus_IconButtonp.UnSelectedImagePath = "FunctionIcon/Acst/Inverter/PvIconStandby.png"; pvRunStatus_TextButton.Text = "待机"; pvRunStatus_TextButton.TextColor = 0xFF798394; break; } } /// <summary> /// 更新光伏发电功率 /// </summary> private void upatePvPower() { pvPower_ValuesButton.Text = function.GetAttrState(InverterJinmao_AttrEnum.pv_power.ToString()); } } } HDL_ON/UI/UI2/FuntionControlView/Acst/WaterHeaterJinmaoPage.cs
@@ -1,5 +1,6 @@ using System; using System.Collections.Generic; using com.hdl.on; using HDL_ON.DriverLayer; using HDL_ON.Entity; using HDL_ON.UI.CSS; @@ -14,10 +15,142 @@ FrameLayout bottomView; Function function; /// <summary> /// 热水模式状态区域 /// </summary> FrameLayout modeFreeView; /// <summary> /// 热水模式状态图标 /// </summary> Button modeFree_IconButton; /// <summary> /// 热水模式状态文本 /// </summary> Button modeFree_TextButton; /// <summary> /// 热水温度值 /// </summary> Button btnTempValues; /// <summary> /// 热水温度单位 /// </summary> Button btnTempValuesUint; /// <summary> /// 节能模式控制按钮 /// </summary> Button btnControlModeEconomic; /// <summary> /// 节能模式控制区域 /// </summary> FrameLayout mode_EconomicView; /// <summary> /// 节能模式图标按钮 /// </summary> Button mode_Economic_IconButton; /// <summary> /// 节能模式文本按钮 /// </summary> Button mode_Economic_TextButton; /// <summary> /// 速热模式控制按钮 /// </summary> Button btnControlModeQuickHeat; /// <summary> /// 速热模式控制区域 /// </summary> FrameLayout mode_QuickHeatView; /// <summary> /// 速热模式图标按钮 /// </summary> Button mode_QuickHeat_IconButton; /// <summary> /// 速热模式文本按钮 /// </summary> Button mode_QuickHeat_TextButton; /// <summary> /// 设置温度文本按钮 /// </summary> Button setTemp_ValuesButton; /// <summary> /// 设置温度单位按钮 /// </summary> Button setTemp_UintButton; /// <summary> /// 设置温度控制控件 /// </summary> DiyImageSeekBar setTemp_Bar; /// <summary> /// 热水流量数据按钮 /// </summary> Button flow_ValuesButton; /// <summary> /// 热水总流量数据按钮 /// </summary> Button flow_VolumeButton; /// <summary> /// 热水流量比控件 /// </summary> DiyImageSeekBar flow_ValuesBar; /// <summary> /// 热回收百分比数据按钮 /// </summary> Button flow_HeatRecoveryProgressButton; /// <summary> /// 热回收数据按钮 /// </summary> Button flow_HeatRecoverytValuesButton; /// <summary> /// 电直驱百分比数据按钮 /// </summary> Button flow_ElectricDriveProgressButton; /// <summary> /// 电直驱数据按钮 /// </summary> Button flow_ElectricDriveValuesButton; string volumeString = string.Empty; string recyclVolumeString = string.Empty; double volume = 0; double recyclVolume = 0; int recyclVolumePercent = 0; /// <summary> /// 热回收节电量数据按钮 /// </summary> Button socialContribution_Info1_ValuesButton; /// <summary> /// 热回收节电量单位按钮 /// </summary> Button socialContribution_Info1_UintButton; /// <summary> /// CO2减排量数据按钮 /// </summary> Button socialContribution_Info2_ValuesButton; /// <summary> /// CO2减排量单位按钮 /// </summary> Button socialContribution_Info2_UintButton; /// <summary> /// 等效植树量数据按钮 /// </summary> Button socialContribution_Info3_UintButton; /// <summary> /// 等效植树量单位按钮 /// </summary> Button socialContribution_Info3_ValuesButton; /// <summary> /// 开关按钮 /// </summary> Button btnPowerControl; public WaterHeaterJinmaoPage(Function deviceFunction) { bodyView = this; function = deviceFunction; this.BackgroundColor = CSS_Color.BackgroundColor; } public void LoadPage(Action action) @@ -25,7 +158,6 @@ var topView = new TopViewDiv(bodyView, function.name); topView.LoadTopView_FunctionTop(function, action); contentView = new VerticalScrolViewLayout() { @@ -47,6 +179,7 @@ initContentView(); initBottomView(); initControlEvent(); Control.Ins.SendReadCommand(function); } /// <summary> @@ -69,20 +202,20 @@ }; contentView.AddChidren(infoView); var infoView_ModeFreeView = new FrameLayout() modeFreeView = new FrameLayout() { X = 0 - Application.GetRealWidth(14), Y = Application.GetRealWidth(12), Width = Application.GetRealWidth(68 + 14), Height = Application.GetRealWidth(28), BackgroundColor = 0x15FC9C04, Radius = (uint)Application.GetRealHeight(14), Radius = (uint)Application.GetRealWidth(14), BorderColor = 0x00FFFFFF, BorderWidth = 0, }; infoView.AddChidren(infoView_ModeFreeView); infoView.AddChidren(modeFreeView); var infoView_ModeFree_IconButton = new Button() modeFree_IconButton = new Button() { X = Application.GetRealWidth(8 + 14), Gravity = Gravity.CenterVertical, @@ -90,17 +223,17 @@ Height = Application.GetRealWidth(12), UnSelectedImagePath = "FunctionIcon/Acst/WaterHeater/ModeFree_False.png", }; infoView_ModeFreeView.AddChidren(infoView_ModeFree_IconButton); modeFreeView.AddChidren(modeFree_IconButton); var infoView_ModeFree_TextButton = new Button() modeFree_TextButton = new Button() { X = Application.GetRealWidth(8 + 14 + 8 + 12), X = Application.GetRealWidth(8 + 14 + 4 + 12), TextAlignment = TextAlignment.CenterLeft, TextSize = 14, TextColor = 0xFFFC9C04, Text = "用电", }; infoView_ModeFreeView.AddChidren(infoView_ModeFree_TextButton); modeFreeView.AddChidren(modeFree_TextButton); var infoView_Temp_View = new FrameLayout() { @@ -111,7 +244,7 @@ }; infoView.AddChidren(infoView_Temp_View); var btnTempValues = new Button() btnTempValues = new Button() { Y = Application.GetRealWidth(34), Gravity = Gravity.CenterVertical, @@ -129,7 +262,8 @@ #endif btnTempValues.Gravity = Gravity.CenterHorizontal; infoView_Temp_View.AddChidren(btnTempValues); var btnTempValuesUint = new Button() btnTempValuesUint = new Button() { X = btnTempValues.Right - Application.GetRealWidth(4), Y = Application.GetRealWidth(40), @@ -178,8 +312,8 @@ { Width = Application.GetRealWidth(16), }); var mode_EconomicView = new FrameLayout() //节能 mode_EconomicView = new FrameLayout() { Width = Application.GetRealWidth(165), Height = Application.GetRealWidth(52), @@ -191,7 +325,7 @@ }; modeView.AddChidren(mode_EconomicView); var mode_Economic_IconButton = new Button() mode_Economic_IconButton = new Button() { Width = Application.GetRealWidth(20), Height = Application.GetRealWidth(20), @@ -201,7 +335,7 @@ }; mode_EconomicView.AddChidren(mode_Economic_IconButton); var mode_Economic_TextButton = new Button() mode_Economic_TextButton = new Button() { Width = Application.GetRealWidth(80), X = Application.GetRealWidth(73 + 8), @@ -217,8 +351,12 @@ Width = Application.GetRealWidth(13), }); btnControlModeEconomic = new Button(); mode_EconomicView.AddChidren(btnControlModeEconomic); //速热 var mode_QuickHeatView = new FrameLayout() mode_QuickHeatView = new FrameLayout() { Width = Application.GetRealWidth(165), Height = Application.GetRealWidth(52), @@ -230,7 +368,7 @@ }; modeView.AddChidren(mode_QuickHeatView); var mode_QuickHeat_IconButton = new Button() mode_QuickHeat_IconButton = new Button() { Width = Application.GetRealWidth(20), Height = Application.GetRealWidth(20), @@ -240,7 +378,8 @@ }; mode_QuickHeatView.AddChidren(mode_QuickHeat_IconButton); var mode_QuickHeat_TextButton = new Button() mode_QuickHeat_TextButton = new Button() { Width = Application.GetRealWidth(80), X = Application.GetRealWidth(81), @@ -250,6 +389,10 @@ Text = "速热" }; mode_QuickHeatView.AddChidren(mode_QuickHeat_TextButton); btnControlModeQuickHeat = new Button(); mode_QuickHeatView.AddChidren(btnControlModeQuickHeat); #endregion #region 设置温度 @@ -279,7 +422,7 @@ }; setTempView.AddChidren(setTemp_TextButtont); var setTemp_Temp_ValuesTextButton = new Button() setTemp_ValuesButton = new Button() { Y = Application.GetRealWidth(34), Gravity = Gravity.CenterVertical, @@ -291,15 +434,16 @@ Text = function.GetAttrState(WaterHeaterJinmao_AttrEnum.set_temp.ToString(), "---"), }; #if __IOS__ setTemp_Temp_ValuesTextButton.Width = setTemp_Temp_ValuesTextButton.GetTextWidth() + Application.GetRealWidth(8); setTemp_ValuesButton.Width = setTemp_ValuesButton.GetTextWidth() + Application.GetRealWidth(8); #else setTemp_Temp_ValuesTextButton.Width = setTemp_Temp_ValuesTextButton.GetTextWidth(); setTemp_ValuesButton.Width = setTemp_ValuesButton.GetTextWidth(); #endif setTemp_Temp_ValuesTextButton.Gravity = Gravity.CenterHorizontal; setTempView.AddChidren(setTemp_Temp_ValuesTextButton); var setTemp_Temp_ValuesUintButton = new Button() setTemp_ValuesButton.Gravity = Gravity.CenterHorizontal; setTempView.AddChidren(setTemp_ValuesButton); setTemp_UintButton = new Button() { X = setTemp_Temp_ValuesTextButton.Right - Application.GetRealWidth(4), X = setTemp_ValuesButton.Right - Application.GetRealWidth(4), Y = Application.GetRealWidth(40), Height = Application.GetRealWidth(66), TextAlignment = TextAlignment.TopLeft, @@ -308,7 +452,7 @@ TextColor = CSS_Color.FirstLevelTitleColor, Text = "°C" }; setTempView.AddChidren(setTemp_Temp_ValuesUintButton); setTempView.AddChidren(setTemp_UintButton); int setTempValue = 0; @@ -316,7 +460,7 @@ double dd = 0; double.TryParse(function.GetAttrState(WaterHeaterJinmao_AttrEnum.set_temp.ToString(), "--"), out dd); setTempValue = Convert.ToInt32(dd); var setTemp_Temp_Bar = new DiyImageSeekBar() setTemp_Bar = new DiyImageSeekBar() { Gravity = Gravity.CenterHorizontal, Y = Application.GetRealHeight(126 - 72), @@ -332,7 +476,7 @@ IsProgressTextShow = false, ProgressChangeDelayTime = 0, }; setTempView.AddChidren(setTemp_Temp_Bar); setTempView.AddChidren(setTemp_Bar); var setTemp_Temp_MinValuesTextButton = new Button() { @@ -379,7 +523,7 @@ }; contentView.AddChidren(flowView); var flow_ValuesButton = new Button() flow_ValuesButton = new Button() { X = Application.GetRealWidth(16), Y = Application.GetRealWidth(14), @@ -388,7 +532,7 @@ TextAlignment = TextAlignment.CenterLeft, TextSize = 16, TextColor = CSS_Color.FirstLevelTitleColor, Text = "热水流量:0.3L/min", Text = "热水流量:" + function.GetAttrState(WaterHeaterJinmao_AttrEnum.flow.ToString()) + "L/min", IsBold = true, }; flowView.AddChidren(flow_ValuesButton); @@ -406,20 +550,30 @@ }; flowView.AddChidren(flow_HotWaterVolumeTextButton); var flow_HotWaterVolumeValuesButton = new Button() string volumeString = function.GetAttrState(WaterHeaterJinmao_AttrEnum.volume.ToString()); string recyclVolumeString = function.GetAttrState(WaterHeaterJinmao_AttrEnum.recycl_volume.ToString()); double volume = 0; double.TryParse(volumeString, out volume); double recyclVolume = 0; double.TryParse(recyclVolumeString, out recyclVolume); int recyclVolumePercent = (int)(recyclVolume / volume * 100); flow_VolumeButton = new Button() { X = Application.GetRealWidth(343 - 116), Y = Application.GetRealWidth(55), Width = Application.GetRealWidth(100), Height = Application.GetRealWidth(26), Text = "24t", Text = volumeString + "t", TextAlignment = TextAlignment.CenterRight, TextColor = CSS_Color.FirstLevelTitleColor, TextSize = CSS_FontSize.TextFontSize, }; flowView.AddChidren(flow_HotWaterVolumeValuesButton); flowView.AddChidren(flow_VolumeButton); var flow_ValuesBar = new DiyImageSeekBar() flow_ValuesBar = new DiyImageSeekBar() { Gravity = Gravity.CenterHorizontal, Y = Application.GetRealWidth(79), @@ -430,7 +584,7 @@ ProgressBarColor = 0xFF42D163, SeekBarBackgroundColor = 0xFFFFB848, MaxValue = 100, Progress = 80, Progress = recyclVolumePercent, SeekBarPadding = Application.GetRealWidth(0), IsProgressTextShow = false, ProgressChangeDelayTime = 0, @@ -452,7 +606,7 @@ }; flowView.AddChidren(flow_HeatRecoveryCapacitytTextButton); var flow_HeatRecoveryCapacitytProgressButton = new Button() flow_HeatRecoveryProgressButton = new Button() { X = Application.GetRealWidth(16), Y = Application.GetRealWidth(125), @@ -461,11 +615,11 @@ TextAlignment = TextAlignment.CenterLeft, TextSize = 14, TextColor = 0xFF00C22D, Text = "80%" Text = recyclVolumePercent + "%" }; flowView.AddChidren(flow_HeatRecoveryCapacitytProgressButton); flowView.AddChidren(flow_HeatRecoveryProgressButton); var flow_HeatRecoveryCapacitytValuesButton = new Button() flow_HeatRecoverytValuesButton = new Button() { X = Application.GetRealWidth(16), Y = Application.GetRealWidth(148), @@ -474,13 +628,13 @@ TextAlignment = TextAlignment.CenterLeft, TextSize = 14, TextColor = CSS_Color.FirstLevelTitleColor, Text = "19.2t" Text = recyclVolume + "t" }; flowView.AddChidren(flow_HeatRecoveryCapacitytValuesButton); flowView.AddChidren(flow_HeatRecoverytValuesButton); var flow_ElectricDirectDriveQuantityTextButton = new Button() var flow_ElectricDriveTextButton = new Button() { X = Application.GetRealWidth(343 - 116), Y = Application.GetRealWidth(103), @@ -491,9 +645,9 @@ TextColor = 0xFFFC9C04, Text = "电直驱量" }; flowView.AddChidren(flow_ElectricDirectDriveQuantityTextButton); flowView.AddChidren(flow_ElectricDriveTextButton); var flow_ElectricDirectDriveQuantityProgressButton = new Button() flow_ElectricDriveProgressButton = new Button() { X = Application.GetRealWidth(343 - 116), Y = Application.GetRealWidth(125), @@ -502,11 +656,11 @@ TextAlignment = TextAlignment.CenterRight, TextSize = 14, TextColor = 0xFFFC9C04, Text = "20%" Text = (100 - recyclVolumePercent) + "%" }; flowView.AddChidren(flow_ElectricDirectDriveQuantityProgressButton); flowView.AddChidren(flow_ElectricDriveProgressButton); var flow_ElectricDirectDriveQuantityValuesButton = new Button() flow_ElectricDriveValuesButton = new Button() { X = Application.GetRealWidth(343 - 116), Y = Application.GetRealWidth(148), @@ -515,9 +669,9 @@ TextAlignment = TextAlignment.CenterRight, TextSize = 14, TextColor = CSS_Color.FirstLevelTitleColor, Text = "4.8t" Text = (volume - recyclVolume) + "t" }; flowView.AddChidren(flow_ElectricDirectDriveQuantityValuesButton); flowView.AddChidren(flow_ElectricDriveValuesButton); #endregion @@ -567,13 +721,13 @@ }; socialContribution_InfoView_1.AddChidren(socialContribution_Info1_IconButton); var socialContribution_Info1_ValuesButton = new Button() socialContribution_Info1_ValuesButton = new Button() { X = Application.GetRealWidth(12), Y = Application.GetRealWidth(68), Width = Application.GetRealWidth(36), Height = Application.GetRealWidth(25), Text = function.GetAttrState(WaterHeaterJinmao_AttrEnum.recycl_volume.ToString()), Text = function.GetAttrState(WaterHeaterJinmao_AttrEnum.energy_electricity.ToString()), TextSize = 18, TextColor = CSS_Color.FirstLevelTitleColor, TextAlignment = TextAlignment.BottomLeft, @@ -586,7 +740,7 @@ #endif socialContribution_InfoView_1.AddChidren(socialContribution_Info1_ValuesButton); var socialContribution_Info1_UintButton = new Button() socialContribution_Info1_UintButton = new Button() { X = socialContribution_Info1_ValuesButton.Right - Application.GetRealWidth(4), Y = Application.GetRealWidth(68), @@ -637,7 +791,7 @@ }; socialContribution_InfoView_2.AddChidren(socialContribution_Info2_IconButton); var socialContribution_Info2_ValuesButton = new Button() socialContribution_Info2_ValuesButton = new Button() { X = Application.GetRealWidth(12), Y = Application.GetRealWidth(68), @@ -656,7 +810,8 @@ #endif socialContribution_InfoView_2.AddChidren(socialContribution_Info2_ValuesButton); var socialContribution_Info2_UintButton = new Button() socialContribution_Info2_UintButton = new Button() { X = socialContribution_Info2_ValuesButton.Right - Application.GetRealWidth(4), Y = Application.GetRealWidth(68), @@ -707,7 +862,7 @@ }; socialContribution_InfoView_3.AddChidren(socialContribution_Info3_IconButton); var socialContribution_Info3_ValuesButton = new Button() socialContribution_Info3_ValuesButton = new Button() { X = Application.GetRealWidth(12), Y = Application.GetRealWidth(68), @@ -726,7 +881,7 @@ #endif socialContribution_InfoView_3.AddChidren(socialContribution_Info3_ValuesButton); var socialContribution_Info3_UintButton = new Button() socialContribution_Info3_UintButton = new Button() { X = socialContribution_Info3_ValuesButton.Right - Application.GetRealWidth(4), Y = Application.GetRealWidth(68), @@ -759,10 +914,12 @@ } /// <summary> /// 加载底部区域 /// </summary> private void initBottomView() { var btnPowerControl = new Button() btnPowerControl = new Button() { Width = Application.GetRealWidth(50), Height = Application.GetRealWidth(50), @@ -774,10 +931,12 @@ }; bottomView.AddChidren(btnPowerControl); btnPowerControl.MouseUpEventHandler = (sender, e) => { btnPowerControl.MouseUpEventHandler = (sender, e) => { btnPowerControl.IsSelected = !btnPowerControl.IsSelected; new System.Threading.Thread(() => { new System.Threading.Thread(() => { Dictionary<string, string> d = new Dictionary<string, string>(); d.Add(FunctionAttributeKey.OnOff, btnPowerControl.IsSelected ? "on" : "off"); Control.Ins.SendWriteCommand(function, d); @@ -787,10 +946,343 @@ } /// <summary> /// 初始化控制事件 /// </summary> private void initControlEvent() { //节能模式控制 btnControlModeEconomic.MouseUpEventHandler = (sender, e) => { if (function.GetAttrState(WaterHeaterJinmao_AttrEnum.mode.ToString()) != WaterHeaterJinmao_Attr_ModeEnum.economic.ToString()) { new System.Threading.Thread(() => { var dic = new Dictionary<string, string>(); dic.Add(WaterHeaterJinmao_AttrEnum.mode.ToString(), WaterHeaterJinmao_Attr_ModeEnum.economic.ToString()); Control.Ins.SendWriteCommand(function, dic); function.SetAttrState(WaterHeaterJinmao_AttrEnum.mode.ToString(), WaterHeaterJinmao_Attr_ModeEnum.economic.ToString()); Application.RunOnMainThread(() => { updateModeUI(); }); }) { IsBackground = true }.Start(); } }; //速热模式控制 btnControlModeQuickHeat.MouseUpEventHandler = (sender, e) => { if (function.GetAttrState(WaterHeaterJinmao_AttrEnum.mode.ToString()) != WaterHeaterJinmao_Attr_ModeEnum.quick_heat.ToString()) { new System.Threading.Thread(() => { var dic = new Dictionary<string, string>(); dic.Add(WaterHeaterJinmao_AttrEnum.mode.ToString(), WaterHeaterJinmao_Attr_ModeEnum.quick_heat.ToString()); Control.Ins.SendWriteCommand(function, dic); function.SetAttrState(WaterHeaterJinmao_AttrEnum.mode.ToString(), WaterHeaterJinmao_Attr_ModeEnum.quick_heat.ToString()); Application.RunOnMainThread(() => { updateModeUI(); }); }) { IsBackground = true }.Start(); } }; //设置温度调节 setTemp_Bar.OnStopTrackingTouchEvent = (sender, e) => { new System.Threading.Thread(() => { var dic = new Dictionary<string, string>(); dic.Add(WaterHeaterJinmao_AttrEnum.set_temp.ToString(), setTemp_Bar.Progress.ToString()); Control.Ins.SendWriteCommand(function, dic); function.SetAttrState(WaterHeaterJinmao_AttrEnum.set_temp.ToString(), setTemp_Bar.Progress.ToString()); }) { IsBackground = true }.Start(); }; setTemp_Bar.OnProgressChangedEvent = (sender, e) => { setTemp_ValuesButton.Text = e.ToString(); }; //开关控制 btnPowerControl.MouseUpEventHandler = (sender, e) => { btnPowerControl.IsSelected = !btnPowerControl.IsSelected; function.SetAttrState(FunctionAttributeKey.OnOff.ToString(), btnPowerControl.IsSelected ? "on" : "off"); new System.Threading.Thread(() => { var dic = new Dictionary<string, string>(); dic.Add(FunctionAttributeKey.OnOff.ToString(), function.GetAttrState(FunctionAttributeKey.OnOff.ToString())); Control.Ins.SendWriteCommand(function, dic); }) { IsBackground = true }.Start(); }; } /// <summary> /// 更新界面状态 /// </summary> /// <param name="temp"></param> public void UpdateStatus(Function temp) { if (bodyView == null) { return; } //免费热水 if (function.GetAttrState(WaterHeaterJinmao_AttrEnum.mode_free.ToString()) != temp.GetAttrState(WaterHeaterJinmao_AttrEnum.mode_free.ToString())) { function.SetAttrState(WaterHeaterJinmao_AttrEnum.mode_free.ToString(), temp.GetAttrState(WaterHeaterJinmao_AttrEnum.mode_free.ToString())); Application.RunOnMainThread(() => { updateFreeMode(); }); } //热水温度 if (function.GetAttrState(WaterHeaterJinmao_AttrEnum.temp.ToString()) != temp.GetAttrState(WaterHeaterJinmao_AttrEnum.temp.ToString())) { function.SetAttrState(WaterHeaterJinmao_AttrEnum.temp.ToString(), temp.GetAttrState(WaterHeaterJinmao_AttrEnum.temp.ToString())); Application.RunOnMainThread(() => { updateTemp(); }); } //热水器模式 if (function.GetAttrState(WaterHeaterJinmao_AttrEnum.mode.ToString()) != temp.GetAttrState(WaterHeaterJinmao_AttrEnum.mode.ToString())) { function.SetAttrState(WaterHeaterJinmao_AttrEnum.mode.ToString(), temp.GetAttrState(WaterHeaterJinmao_AttrEnum.mode.ToString())); Application.RunOnMainThread(() => { updateModeUI(); }); } //热水器设置温度 if (function.GetAttrState(WaterHeaterJinmao_AttrEnum.set_temp.ToString()) != temp.GetAttrState(WaterHeaterJinmao_AttrEnum.set_temp.ToString())) { function.SetAttrState(WaterHeaterJinmao_AttrEnum.set_temp.ToString(), temp.GetAttrState(WaterHeaterJinmao_AttrEnum.set_temp.ToString())); Application.RunOnMainThread(() => { updateSetTemp(); }); } //热水流量 if (function.GetAttrState(WaterHeaterJinmao_AttrEnum.flow.ToString()) != temp.GetAttrState(WaterHeaterJinmao_AttrEnum.flow.ToString())) { Application.RunOnMainThread(() => { updateFlow(); }); } //热水总量 if (function.GetAttrState(WaterHeaterJinmao_AttrEnum.volume.ToString()) != temp.GetAttrState(WaterHeaterJinmao_AttrEnum.volume.ToString()) || function.GetAttrState(WaterHeaterJinmao_AttrEnum.recycl_volume.ToString()) != temp.GetAttrState(WaterHeaterJinmao_AttrEnum.recycl_volume.ToString())) { Application.RunOnMainThread(() => { updateVolume(); }); } //社会贡献-节电量 if (function.GetAttrState(WaterHeaterJinmao_AttrEnum.energy_electricity.ToString()) != temp.GetAttrState(WaterHeaterJinmao_AttrEnum.energy_electricity.ToString())) { updateSocialContribution1(); } //社会贡献-co2 if (function.GetAttrState(WaterHeaterJinmao_AttrEnum.co2.ToString()) != temp.GetAttrState(WaterHeaterJinmao_AttrEnum.co2.ToString())) { updateSocialContribution2(); } //社会贡献-植树 if (function.GetAttrState(WaterHeaterJinmao_AttrEnum.trees.ToString()) != temp.GetAttrState(WaterHeaterJinmao_AttrEnum.trees.ToString())) { updateSocialContribution3(); } //开关按钮 if (function.GetAttrState(FunctionAttributeKey.OnOff.ToString()) != temp.GetAttrState(FunctionAttributeKey.OnOff.ToString())) { updatePowerButton(); } } /// <summary> /// 更新免费热水模式状态UI /// </summary> private void updateFreeMode() { 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; } 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; } } /// <summary> /// 更新热水温度UI /// </summary> private void updateTemp() { btnTempValues.Text = function.GetAttrState(WaterHeaterJinmao_AttrEnum.temp.ToString(), "---"); #if __IOS__ btnTempValues.Width = btnTempValues.GetTextWidth() + Application.GetRealWidth(8); #else btnTempValues.Width = btnTempValues.GetTextWidth(); #endif btnTempValues.Gravity = Gravity.CenterHorizontal; btnTempValuesUint.X = btnTempValues.Right - Application.GetRealWidth(4); } /// <summary> /// 更新模式UI /// </summary> private void updateModeUI() { if (function.GetAttrState(WaterHeaterJinmao_AttrEnum.mode.ToString()) == WaterHeaterJinmao_Attr_ModeEnum.economic.ToString()) { //节能 mode_EconomicView.BorderColor = 0xFF00C22D; mode_EconomicView.BackgroundColor = 0xFFEBFAEE; mode_Economic_IconButton.UnSelectedImagePath = "FunctionIcon/Acst/WaterHeater/Mode_Economic_On.png"; mode_Economic_TextButton.TextColor = CSS_Color.FirstLevelTitleColor; //速热 mode_QuickHeatView.BorderColor = 0x0000C22D; mode_QuickHeatView.BorderWidth = (uint)Application.GetRealWidth(1); mode_QuickHeatView.BackgroundColor = CSS_Color.MainBackgroundColor; mode_QuickHeat_IconButton.UnSelectedImagePath = "FunctionIcon/Acst/WaterHeater/Mode_QuickHeat.png"; mode_QuickHeat_TextButton.TextColor = CSS_Color.TextualColor; } else if (function.GetAttrState(WaterHeaterJinmao_AttrEnum.mode.ToString()) == WaterHeaterJinmao_Attr_ModeEnum.quick_heat.ToString()) { //节能 mode_EconomicView.BorderColor = 0x0000C22D; mode_EconomicView.BackgroundColor = CSS_Color.MainBackgroundColor; mode_Economic_IconButton.UnSelectedImagePath = "FunctionIcon/Acst/WaterHeater/Mode_Economic.png"; mode_Economic_TextButton.TextColor = CSS_Color.TextualColor; //速热 mode_QuickHeatView.BorderColor = 0xFFFC9C04; mode_QuickHeatView.BackgroundColor = 0xFFFFF7EB; mode_QuickHeat_IconButton.UnSelectedImagePath = "FunctionIcon/Acst/WaterHeater/Mode_QuickHeat_On.png"; mode_QuickHeat_TextButton.TextColor = CSS_Color.FirstLevelTitleColor; } } /// <summary> /// 更新热水器设置温度UI /// </summary> private void updateSetTemp() { setTemp_ValuesButton.Text = function.GetAttrState(WaterHeaterJinmao_AttrEnum.set_temp.ToString(), "---"); #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); double dd = 0; double.TryParse(function.GetAttrState(WaterHeaterJinmao_AttrEnum.set_temp.ToString(), "0"), out dd); setTemp_Bar.Progress = Convert.ToInt32(dd) - 35; } /// <summary> /// 更新热水流量数据UI /// </summary> private void updateFlow() { flow_ValuesButton.Text = "热水流量:" + function.GetAttrState(WaterHeaterJinmao_AttrEnum.flow.ToString()) + "L/min"; } /// <summary> /// 更新热水总量数据UI /// </summary> private void updateVolume() { volumeString = function.GetAttrState(WaterHeaterJinmao_AttrEnum.volume.ToString()); recyclVolumeString = function.GetAttrState(WaterHeaterJinmao_AttrEnum.recycl_volume.ToString()); volume = 0; double.TryParse(volumeString, out volume); double.TryParse(recyclVolumeString, out recyclVolume); recyclVolumePercent = (int)(recyclVolume / volume * 100); flow_VolumeButton.Text = volumeString + "t"; flow_ValuesBar.Progress = recyclVolumePercent; flow_HeatRecoveryProgressButton.Text = recyclVolumePercent + "%"; flow_HeatRecoverytValuesButton.Text = recyclVolume + "t"; flow_ElectricDriveProgressButton.Text = (100 - recyclVolumePercent) + "%"; flow_ElectricDriveValuesButton.Text = (volume - recyclVolume) + "t"; } /// <summary> /// 更新社会贡献1数据UI /// </summary> private void updateSocialContribution1() { socialContribution_Info1_ValuesButton.Text = function.GetAttrState(WaterHeaterJinmao_AttrEnum.energy_electricity.ToString()); #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.X = socialContribution_Info1_ValuesButton.Right - Application.GetRealWidth(4); } /// <summary> /// 更新社会贡2献数据UI /// </summary> private void updateSocialContribution2() { socialContribution_Info3_ValuesButton.Text = function.GetAttrState(WaterHeaterJinmao_AttrEnum.co2.ToString()); #if __IOS__ socialContribution_Info3_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); } /// <summary> /// 更新社会贡3献数据UI /// </summary> private void updateSocialContribution3() { socialContribution_Info3_ValuesButton.Text = function.GetAttrState(WaterHeaterJinmao_AttrEnum.trees.ToString()); #if __IOS__ socialContribution_Info3_ValuesButton.Width = socialContribution_Info3_ValuesButton.GetTextWidth() + Application.GetRealWidth(8); #else socialContribution_Info3_ValuesButton.Width = socialContribution_Info3_ValuesButton.GetTextWidth(); #endif socialContribution_Info3_UintButton.X = socialContribution_Info3_ValuesButton.Right - Application.GetRealWidth(4); } /// <summary> /// 更新开关按钮状态 /// </summary> private void updatePowerButton() { btnPowerControl.IsSelected = function.GetAttrState(FunctionAttributeKey.OnOff.ToString()) == "on"; } } } HDL_ON/UI/UI2/FuntionControlView/Acst/WetarHeaterJinmaoHistoryPage.cs
@@ -1,5 +1,6 @@ using System; using System.Collections.Generic; using HDL_ON.DAL.Server; using HDL_ON.Entity; using HDL_ON.UI.CSS; using Shared; @@ -8,22 +9,39 @@ public class WetarHeaterJinmaoHistoryPage : FrameLayout { WetarHeaterJinmaoHistoryPage bodyView; Function device; Function function; FrameLayout infoView1; EchartsOption_Histogram tempEchartOption; MyEchartsViewOn infoView1_EchartsView; Button infoView1_Date_Day; Button infoView1_Date_Month; Button infoView1_Date_Year; Button infoView1_DateInfo_PreClickButton; Button infoView1_DateInfo_DateTextButton; Button infoView1_DateInfo_NextClickButton; /// <summary> /// echart容器 /// </summary> MyEchartsViewOn tempEchartsView; public WetarHeaterJinmaoHistoryPage(Function function) FrameLayout infoView2; MyEchartsViewOn infoView2_EchartsView; EchartsOption_Histogram echartOption2; Button infoView2_Date_Day; Button infoView2_Date_Month; Button infoView2_Date_Year; Button infoView2_DateInfo_PreClickButton; Button infoView2_DateInfo_DateTextButton; Button infoView2_DateInfo_NextClickButton; public WetarHeaterJinmaoHistoryPage(Function deviceFunction) { bodyView = this; device = function; function = deviceFunction; this.BackgroundColor = CSS_Color.BackgroundColor; } public void LoadPage() { var topView = new TopViewDiv(bodyView, device.name); var topView = new TopViewDiv(bodyView, function.name); topView.maginY = 10; topView.LoadTopView(); @@ -35,7 +53,7 @@ bodyView.AddChidren(contentView); #region 温度值 var infoView1 = new FrameLayout() infoView1 = new FrameLayout() { Width = Application.GetRealWidth(343), Height = Application.GetRealWidth(382), @@ -62,7 +80,7 @@ }; infoView1.AddChidren(infoView1_DateView); var infoView1_Date_Day = new Button() infoView1_Date_Day = new Button() { Width = Application.GetRealWidth(103), Height = Application.GetRealWidth(26), @@ -80,8 +98,7 @@ }; infoView1_DateView.AddChidren(infoView1_Date_Day); var infoView1_Date_Month = new Button() infoView1_Date_Month = new Button() { Width = Application.GetRealWidth(103), Height = Application.GetRealWidth(26), @@ -99,8 +116,7 @@ }; infoView1_DateView.AddChidren(infoView1_Date_Month); var infoView1_Date_Year = new Button() infoView1_Date_Year = new Button() { Width = Application.GetRealWidth(103), Height = Application.GetRealWidth(26), @@ -135,13 +151,13 @@ }; infoView1_DateInfoView.AddChidren(infoView1_DateInfo_PreIconButton); var infoView1_DateInfo_PreClickButton = new Button() infoView1_DateInfo_PreClickButton = new Button() { Width = Application.GetRealWidth(32 + 6), }; infoView1_DateInfoView.AddChidren(infoView1_DateInfo_PreClickButton); var infoView1_DateInfo_DateTextButton = new Button() infoView1_DateInfo_DateTextButton = new Button() { Gravity = Gravity.Center, Width = Application.GetRealWidth(200), @@ -164,7 +180,7 @@ }; infoView1_DateInfoView.AddChidren(infoView1_DateInfo_NextIconButton); var infoView1_DateInfo_NextClickButton = new Button() infoView1_DateInfo_NextClickButton = new Button() { Width = Application.GetRealWidth(32 + 6), }; @@ -173,23 +189,23 @@ #endregion #region 数据图表 MyEchartsViewOn infoView1_EchartsView = new MyEchartsViewOn() infoView1_EchartsView = new MyEchartsViewOn() { Y = Application.GetRealWidth(101), Height = Application.GetRealWidth(246), }; infoView1.AddChidren(infoView1_EchartsView); var echartOption = new EchartsOption_Histogram(); echartOption.xTitle = "时间"; echartOption.yTitle = "温度(℃)"; echartOption.InitXdataText(new List<string>() tempEchartOption = new EchartsOption_Histogram(); tempEchartOption.xTitle = "时间"; tempEchartOption.yTitle = "温度(℃)"; tempEchartOption.InitXdataText(new List<string>() { "21","22","23","24","25","26","26","27","28","29", "21","22","23","24","25","26","26","27","28","29", "21","22","23","24" }); echartOption.InitYdataText(new List<EnvironmentalSensorHistor>() { tempEchartOption.InitYdataText(new List<EnvironmentalSensorHistor>() { new EnvironmentalSensorHistor{ fieldName = "1", fieldValue= "23" }, new EnvironmentalSensorHistor{ fieldName = "2", fieldValue= "22" }, new EnvironmentalSensorHistor{ fieldName = "3", fieldValue= "11" }, @@ -215,7 +231,7 @@ new EnvironmentalSensorHistor{ fieldName = "23", fieldValue= "11" }, new EnvironmentalSensorHistor{ fieldName = "24", fieldValue= "21" }, }); var ddd = echartOption.InitOption(); var ddd = tempEchartOption.InitOption(); infoView1_EchartsView.ShowWithOption(ddd); infoView1.AddChidren(new Button() @@ -238,7 +254,8 @@ }); #region 用水量 var infoView2 = new FrameLayout() infoView2 = new FrameLayout() { Width = Application.GetRealWidth(343), Height = Application.GetRealWidth(382), @@ -266,7 +283,7 @@ }; infoView2.AddChidren(infoView2_DateView); var infoView2_Date_Day = new Button() infoView2_Date_Day = new Button() { Width = Application.GetRealWidth(103), Height = Application.GetRealWidth(26), @@ -285,7 +302,7 @@ infoView2_DateView.AddChidren(infoView2_Date_Day); var infoView2_Date_Month = new Button() infoView2_Date_Month = new Button() { Width = Application.GetRealWidth(103), Height = Application.GetRealWidth(26), @@ -304,7 +321,7 @@ infoView2_DateView.AddChidren(infoView2_Date_Month); var infoView2_Date_Year = new Button() infoView2_Date_Year = new Button() { Width = Application.GetRealWidth(103), Height = Application.GetRealWidth(26), @@ -339,13 +356,13 @@ }; infoView2_DateInfoView.AddChidren(infoView2_DateInfo_PreIconButton); var infoView2_DateInfo_PreClickButton = new Button() infoView2_DateInfo_PreClickButton = new Button() { Width = Application.GetRealWidth(32 + 6), }; infoView2_DateInfoView.AddChidren(infoView2_DateInfo_PreClickButton); var infoView2_DateInfo_DateTextButton = new Button() infoView2_DateInfo_DateTextButton = new Button() { Gravity = Gravity.Center, Width = Application.GetRealWidth(200), @@ -357,7 +374,6 @@ }; infoView2_DateInfoView.AddChidren(infoView2_DateInfo_DateTextButton); var infoView2_DateInfo_NextIconButton = new Button() { X = Application.GetRealWidth(343 - 18 - 6), @@ -368,7 +384,7 @@ }; infoView2_DateInfoView.AddChidren(infoView2_DateInfo_NextIconButton); var infoView2_DateInfo_NextClickButton = new Button() infoView2_DateInfo_NextClickButton = new Button() { Width = Application.GetRealWidth(32 + 6), }; @@ -377,16 +393,16 @@ #endregion #region 数据图表 MyEchartsViewOn infoView2_EchartsView = new MyEchartsViewOn() infoView2_EchartsView = new MyEchartsViewOn() { Y = Application.GetRealWidth(101), Height = Application.GetRealWidth(246), }; infoView2.AddChidren(infoView2_EchartsView); var echartOption2 = new EchartsOption_Histogram(); echartOption2 = new EchartsOption_Histogram(); echartOption2.xTitle = "时间"; echartOption2.yTitle = "温度(℃)"; echartOption2.yTitle = "用水量(t)"; echartOption2.InitXdataText(new List<string>() { "21","22","23","24","25","26","26","27","28","29", @@ -443,6 +459,137 @@ }); } /// <summary> /// 读取温度值历史数据 /// </summary> private void getTempHistory(string queryType) { var loadPage = new Loading() { LodingBackgroundColor = 0x88888888, }; infoView1.AddChidren(loadPage); new System.Threading.Thread(() => { try { Application.RunOnMainThread(() => { loadPage.Start(Language.StringByID(StringId.PleaseWait)); }); var revertObj = new HttpServerRequest().GetSensorHistory(queryType, function.deviceId, WaterHeaterJinmao_AttrEnum.temp.ToString()); if (revertObj != null) { if (revertObj.Code == StateCode.SUCCESS) { var revertData = Newtonsoft.Json.JsonConvert.DeserializeObject<List<EnvironmentalSensorHistor>>(revertObj.Data.ToString()); List<string> vs = new List<string>(); foreach (var data in revertData) { vs.Add(data.fieldName); } tempEchartOption.InitXdataText(vs); tempEchartOption.InitYdataText(revertData); Application.RunOnMainThread(() => { infoView1_EchartsView.ShowWithOption(tempEchartOption.InitOption()); }); } } } catch (Exception ex) { MainPage.Log($"history error : {ex.Message}"); } finally { Application.RunOnMainThread(() => { loadPage.Hide(); }); } }) { IsBackground = true }.Start(); } /// <summary> /// 获取用水量历史记录 /// </summary> /// <param name="queryType"></param> private void getWaterHistory(string queryType) { var loadPage = new Loading() { LodingBackgroundColor = 0x88888888, }; infoView2.AddChidren(loadPage); new System.Threading.Thread(() => { try { Application.RunOnMainThread(() => { loadPage.Start(Language.StringByID(StringId.PleaseWait)); }); var revertObj = new HttpServerRequest().GetSensorHistory(queryType, function.deviceId, WaterHeaterJinmao_AttrEnum.volume.ToString()); if (revertObj != null) { if (revertObj.Code == StateCode.SUCCESS) { var revertData = Newtonsoft.Json.JsonConvert.DeserializeObject<List<EnvironmentalSensorHistor>>(revertObj.Data.ToString()); List<string> vs = new List<string>(); foreach (var data in revertData) { vs.Add(data.fieldName); } echartOption2.InitXdataText(vs); echartOption2.InitYdataText(revertData); Application.RunOnMainThread(() => { infoView2_EchartsView.ShowWithOption(echartOption2.InitOption()); }); } } } catch (Exception ex) { MainPage.Log($"history 2 error : {ex.Message}"); } finally { Application.RunOnMainThread(() => { loadPage.Hide(); }); } }) { IsBackground = true }.Start(); } private void initQueryButton() { infoView1_Date_Day.MouseUpEventHandler = (sender, e) => { if (infoView1_Date_Day.IsSelected) { return; } infoView1_Date_Day.IsSelected = true; infoView1_Date_Month.IsSelected = false; infoView1_Date_Year.IsSelected = false; //getTempHistory("day") }; } } }