.vs/HDL_APP_Project/xs/UserPrefs.xml
@@ -1,15 +1,15 @@ <Properties StartupConfiguration="{09712674-2A38-407B-B1E2-560B2C352F9A}|Default"> <MonoDevelop.Ide.ItemProperties.HDL-ON__iOS PreferredExecutionTarget="MonoDevelop.IPhone.IPhoneDeviceTarget.6242be7109c740c6cb8999a8904b6e0ea8d45192" /> <MonoDevelop.Ide.Workbench ActiveDocument="HDL_ON/UI/MainPage.cs"> <MonoDevelop.Ide.Workbench ActiveDocument="HDL_ON/UI/UI2/3-Intelligence/Automation/ConditionDeviceFunList.cs"> <Files> <File FileName="HDL-ON_iOS/Info.plist" /> <File FileName="HDL_ON/UI/MainPage.cs" Line="28" Column="55" /> <File FileName="HDL_ON/UI/UI2/3-Intelligence/Automation/ConditionDeviceFunList.cs" Line="367" Column="73" /> <File FileName="HDL_ON/UI/UI2/3-Intelligence/Automation/PublicInterface.cs" Line="1046" Column="57" /> </Files> <Pads> <Pad Id="ProjectPad"> <State name="__root__"> <Node name="HDL_APP_Project" expanded="True"> <Node name="HDL-ON_Android" expanded="True" selected="True" /> <Node name="HDL-ON_Android" selected="True" /> </Node> </State> </Pad> @@ -27,14 +27,17 @@ <BreakpointStore> <Breakpoint file="/Users/kaede/Desktop/HDL_APP_Project/HDL_ON/UI/UI2/FuntionControlView/Electrical/IrFanPage.cs" relfile="HDL_ON/UI/UI2/FuntionControlView/Electrical/IrFanPage.cs" line="42" column="1" /> <Breakpoint file="/Users/kaede/Desktop/HDL_APP_Project/HDL_ON/DAL/Mqtt/MqttClient.cs" relfile="HDL_ON/DAL/Mqtt/MqttClient.cs" line="431" column="1" /> <Breakpoint file="/Users/kaede/Desktop/HDL_APP_Project/HDL_ON/UI/UI2/FuntionControlView/EnvironmentalScience/EnvironmentalSensorPage.cs" relfile="HDL_ON/UI/UI2/FuntionControlView/EnvironmentalScience/EnvironmentalSensorPage.cs" line="747" column="1" /> <Breakpoint file="/Users/kaede/Desktop/HDL_APP_Project/HDL_ON/UI/UI2/FuntionControlView/EnvironmentalScience/EnvironmentalSensorPage.cs" relfile="HDL_ON/UI/UI2/FuntionControlView/EnvironmentalScience/EnvironmentalSensorPage.cs" line="758" column="1" /> <Breakpoint file="/Users/kaede/Desktop/HDL_APP_Project/HDL_ON/UI/UI2/4-PersonalCenter/RoomListManage/Transfer/TransferUserConfirmPage.cs" relfile="HDL_ON/UI/UI2/4-PersonalCenter/RoomListManage/Transfer/TransferUserConfirmPage.cs" line="106" column="1" /> <Breakpoint file="/Users/kaede/Desktop/HDL_APP_Project/HDL_ON/UI/UI2/FuntionControlView/Light/RGBPageBLL.cs" relfile="HDL_ON/UI/UI2/FuntionControlView/Light/RGBPageBLL.cs" line="168" column="1" /> <Breakpoint file="/Users/kaede/Desktop/HDL_APP_Project/HDL_ON/UI/UI2/FuntionControlView/ArmCenter/ArmCenterPage.cs" relfile="HDL_ON/UI/UI2/FuntionControlView/ArmCenter/ArmCenterPage.cs" line="461" column="1" /> <Breakpoint file="/Users/kaede/Desktop/HDL_APP_Project/HDL_ON/UI/UI2/4-PersonalCenter/FaceManagement/FacePassagePage.cs" relfile="HDL_ON/UI/UI2/4-PersonalCenter/FaceManagement/FacePassagePage.cs" line="481" column="1" /> <Breakpoint file="/Users/kaede/Desktop/HDL_APP_Project/HDL_ON/UI/UI2/4-PersonalCenter/FaceManagement/FacePassagePage.cs" relfile="HDL_ON/UI/UI2/4-PersonalCenter/FaceManagement/FacePassagePage.cs" line="541" column="1" /> <Breakpoint file="/Users/kaede/Desktop/HDL_APP_Project/HDL_ON/DAL/Mqtt/MqttClient.cs" relfile="HDL_ON/DAL/Mqtt/MqttClient.cs" line="314" column="1" /> <Breakpoint file="/Users/kaede/Desktop/HDL_APP_Project/HDL_ON/DAL/DriverLayer/Control.cs" relfile="HDL_ON/DAL/DriverLayer/Control.cs" line="783" column="1" /> <Breakpoint file="/Users/kaede/Desktop/HDL_APP_Project/HDL_ON/Entity/FunctionList.cs" relfile="HDL_ON/Entity/FunctionList.cs" line="492" column="1" /> <Breakpoint file="/Users/kaede/Desktop/HDL_APP_Project/HDL_ON/Entity/FunctionList.cs" relfile="HDL_ON/Entity/FunctionList.cs" line="491" column="1" /> <Breakpoint file="/Users/kaede/Desktop/HDL_APP_Project/HDL_ON/UI/UI2/3-Intelligence/Scene/SetSceneFunctionInfoPage.cs" relfile="HDL_ON/UI/UI2/3-Intelligence/Scene/SetSceneFunctionInfoPage.cs" line="153" column="1" /> <Breakpoint file="/Users/kaede/Desktop/HDL_APP_Project/HDL_ON/Entity/Function/Scene.cs" relfile="HDL_ON/Entity/Function/Scene.cs" line="338" column="1" /> <Breakpoint file="/Users/kaede/Desktop/HDL_APP_Project/HDL_ON/DAL/Server/HttpServerRequest.cs" relfile="HDL_ON/DAL/Server/HttpServerRequest.cs" line="2144" column="1" /> </BreakpointStore> </MonoDevelop.Ide.DebuggingService.Breakpoints> <MultiItemStartupConfigurations /> HDL-ON_Android/Assets/Language.ini
@@ -489,8 +489,8 @@ 501=Security alarm: {0} is triggered. 502=Clear the security alarm? 503=Exceeding standard 504=Secondary standard 505=Class I standard 504=Good 505=Excellent 506=Face input succeeded 507=Face input failed 508=Formaldehyde @@ -998,7 +998,7 @@ 7141=Exceeding 7142=Serious 7143=High 7144=excellence 7144=Excellence 7145=Security 7146=Add security 7147=Arm @@ -1605,8 +1605,8 @@ 501=安防报警:{0}被触发。 502=是否解除安防警报? 503=超标 504=二级 505=一级 504=良好 505=优秀 506=人脸录入成功 507=人脸录入失败 508=甲醛 HDL-ON_Android/Properties/AndroidManifest.xml
@@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="202108301" android:versionName="1.2.202108301" package="com.hdl.onpro"> <manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="202109012" android:versionName="1.2.202109012" package="com.hdl.onpro"> <uses-sdk android:minSdkVersion="23" android:targetSdkVersion="28" /> <!-- 乐橙可视对讲需要的权限 --> <!--<uses-permission android:name="android.permission.INTERNET" />--> HDL-ON_iOS/Info.plist
@@ -100,9 +100,9 @@ <key>UIStatusBarStyle</key> <string>UIStatusBarStyleLightContent</string> <key>CFBundleShortVersionString</key> <string>1.2.202108301</string> <string>1.2.202100911</string> <key>CFBundleVersion</key> <string>1.2.08301</string> <string>1.2.09011</string> <key>NSLocationWhenInUseUsageDescription</key> <string>Use geographic location to provide services such as weather</string> <key>NSAppleMusicUsageDescription</key> HDL-ON_iOS/Resources/Language.ini
@@ -489,8 +489,8 @@ 501=Security alarm: {0} is triggered. 502=Clear the security alarm? 503=Exceeding standard 504=Secondary standard 505=Class I standard 504=Good 505=Excellent 506=Face input succeeded 507=Face input failed 508=Formaldehyde @@ -998,7 +998,7 @@ 7141=Exceeding 7142=Serious 7143=High 7144=excellence 7144=Excellence 7145=Security 7146=Add security 7147=Arm @@ -1605,8 +1605,8 @@ 501=安防报警:{0}被触发。 502=是否解除安防警报? 503=超标 504=二级 505=一级 504=良好 505=优秀 506=人脸录入成功 507=人脸录入失败 508=甲醛 HDL_ON/DAL/DriverLayer/Control.cs
@@ -1000,6 +1000,7 @@ HomePage.LoadEvent_RefreshEnvirIndoorHumi(); } EnvironmentalPage.LoadEvent_UpdataStatus(localFunction); A_EnvironmentalDataCenter.LoadEvent_UpdataStatus(localFunction); break; case SPK.SensorEnvironment: case SPK.SensorEnvironment2: @@ -1013,6 +1014,7 @@ HomePage.LoadEvent_RefreshEnvirIndoorHumi(); } EnvironmentalPage.LoadEvent_UpdataStatus(localFunction); A_EnvironmentalDataCenter.LoadEvent_UpdataStatus(localFunction); break; case SPK.ElectricSocket: SocketPage.UpdataState(localFunction); HDL_ON/DAL/DriverLayer/Packet.cs
@@ -519,21 +519,27 @@ case SPK.SensorTemperature: byte[] tempBytes = new byte[] { receiveBytes[24], receiveBytes[25], receiveBytes[26], receiveBytes[27] }; sensor.SetAttrState(FunctionAttributeKey.Value,Math.Round(BitConverter.ToSingle(tempBytes, 0), 1).ToString()); sensor.SetAttrState(sensor.spk,Math.Round(BitConverter.ToSingle(tempBytes, 0), 1).ToString()); break; case SPK.SensorHumidity: sensor.SetAttrState(FunctionAttributeKey.Value, (Convert.ToDouble(receiveBytes[24] * 256 + receiveBytes[25]) / 10).ToString()); sensor.SetAttrState(sensor.spk, (Convert.ToDouble(receiveBytes[24] * 256 + receiveBytes[25]) / 10).ToString()); break; case SPK.SensorTVOC: sensor.SetAttrState(FunctionAttributeKey.Value, (Convert.ToDouble(receiveBytes[24] * 256 + receiveBytes[25]) / 100).ToString()); sensor.SetAttrState(sensor.spk, (Convert.ToDouble(receiveBytes[24] * 256 + receiveBytes[25]) / 100).ToString()); break; case SPK.SensorPm25: sensor.SetAttrState(FunctionAttributeKey.Value,Convert.ToInt32(receiveBytes[24] * 256 + receiveBytes[25]).ToString()); sensor.SetAttrState(sensor.spk,Convert.ToInt32(receiveBytes[24] * 256 + receiveBytes[25]).ToString()); break; case SPK.SensorCO2: sensor.SetAttrState(FunctionAttributeKey.Value, Convert.ToInt32(receiveBytes[24] * 256 + receiveBytes[25]).ToString()); sensor.SetAttrState(sensor.spk, Convert.ToInt32(receiveBytes[24] * 256 + receiveBytes[25]).ToString()); break; } EnvironmentalPage.LoadEvent_UpdataStatus(sensor); A_EnvironmentalDataCenter.LoadEvent_UpdataStatus(sensor); } } } @@ -571,13 +577,16 @@ { case 1: sensor.SetAttrState(FunctionAttributeKey.Value,( (receiveBytes[5] * 256 * 256 * 256) + (receiveBytes[6] * 256 * 256) + (receiveBytes[7] * 256) + receiveBytes[8]).ToString()); sensor.SetAttrState(sensor.spk,( (receiveBytes[5] * 256 * 256 * 256) + (receiveBytes[6] * 256 * 256) + (receiveBytes[7] * 256) + receiveBytes[8]).ToString()); break; case 2: sensor.SetAttrState(FunctionAttributeKey.Value,( -1 * ((receiveBytes[5] * 256 * 256 * 256) + (receiveBytes[6] * 256 * 256) + (receiveBytes[7] * 256) + receiveBytes[8])).ToString()); sensor.SetAttrState(sensor.spk,( -1 * ((receiveBytes[5] * 256 * 256 * 256) + (receiveBytes[6] * 256 * 256) + (receiveBytes[7] * 256) + receiveBytes[8])).ToString()); break; case 3: byte[] tempBytes = new byte[] { receiveBytes[5], receiveBytes[6], receiveBytes[7], receiveBytes[8] }; sensor.SetAttrState(FunctionAttributeKey.Value,( Math.Round(BitConverter.ToSingle(tempBytes, 0), 1)).ToString()); sensor.SetAttrState(sensor.spk,( Math.Round(BitConverter.ToSingle(tempBytes, 0), 1)).ToString()); break; } switch (receiveBytes[4]) @@ -587,9 +596,12 @@ { var value = Convert.ToInt32(sensor.GetAttrState(FunctionAttributeKey.Value)); sensor.SetAttrState(FunctionAttributeKey.Value, (value /= 100000).ToString()); sensor.SetAttrState(sensor.spk, (value /= 100000).ToString()); } break; } A_EnvironmentalDataCenter.LoadEvent_UpdataStatus(sensor); EnvironmentalPage.LoadEvent_UpdataStatus(sensor); } } HDL_ON/Entity/Function/Function.cs
@@ -1280,6 +1280,24 @@ public const string SensorHcho = "sensor.hcho"; /// <summary> /// 环境传感器设备spk列表 /// </summary> /// <returns></returns> public static List<string> EnvironDeviceSpkList() { var spkList = new List<string>(); spkList.Add(SensorTemperature); spkList.Add(SensorPm25); spkList.Add(SensorCO2); spkList.Add(SensorTVOC); spkList.Add(SensorHumidity); spkList.Add(SensorEnvironment); spkList.Add(SensorEnvironment2); spkList.Add(SensorEnvironment3); spkList.Add(SensorHcho); return spkList; } /// <summary> /// 环境传感器spk列表 /// </summary> /// <returns></returns> @@ -1291,9 +1309,6 @@ spkList.Add(SensorCO2); spkList.Add(SensorTVOC); spkList.Add(SensorHumidity); spkList.Add(SensorEnvironment); spkList.Add(SensorEnvironment2); spkList.Add(SensorEnvironment3); spkList.Add(SensorHcho); return spkList; } HDL_ON/Entity/Function/Scene.cs
@@ -593,6 +593,10 @@ case FunctionAttributeKey.RoomTemp: case FunctionAttributeKey.Brightness: case FunctionAttributeKey.Percent: int outT = 0; int.TryParse(catchString,out outT); if (outT < 0) catchString = "0"; if (catchString == "") { catchString = "0"; HDL_ON/Entity/Function/Sensor.cs
@@ -285,5 +285,81 @@ } return level; } /// <summary> /// 当前等级 /// </summary> public int GetCurLevel(string spk,double values) { int level = 1; switch (spk) { case SPK.SensorPm25: if (values < 35) level = 1; else if (values < 75) level = 2; else if (values < 115) level = 3; else if (values > 115) level = 4; break; case SPK.SensorCO2: if (values < 1000) level = 1; else if (values < 2000) level = 2; else if (values < 5000) level = 3; else if (values >= 5000) level = 4; break; case SPK.SensorTemperature: if (values < 18) level = 1; else if (values < 20) level = 2; else if (values < 25) level = 3; else if (values < 27) level = 4; else if (values < 30) level = 5; else if (values < 33) level = 6; else if (values > 33) level = 7; break; case SPK.SensorTVOC: if (values < 600) level = 1; else if (values < 2000) level = 2; else if (values < 5000) level = 3; else if (values >= 5000) level = 4; break; case SPK.SensorHumidity: if (values > 70) level = 1; else if (values > 40) level = 2; else if (values < 40) level = 3; break; case SPK.SensorHcho: if (values <= 0.08) level = 1; else if (values <= 0.1) level = 2; else level = 3; break; } return level; } } } HDL_ON/Entity/FunctionList.cs
@@ -128,7 +128,7 @@ /// </summary> public List<Function> GetEnvirSensorsList() { var spkList = SPK.EnvironSpkList(); var spkList = SPK.EnvironDeviceSpkList(); return Functions.FindAll((obj) => spkList.Contains(obj.spk)); } /// <summary> HDL_ON/HDL_ON.projitems
@@ -484,6 +484,7 @@ <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\FaceManagement\CustomerObj.cs" /> <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\Security.cs" /> <Compile Include="$(MSBuildThisFileDirectory)DAL\ThirdPartySdk\HDLLinphone.cs" /> <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\EnvironmentalScience\A_EnvironmentalDataCenter.cs" /> </ItemGroup> <ItemGroup> <Folder Include="$(MSBuildThisFileDirectory)Entity\Device\" /> HDL_ON/UI/MainPage.cs
@@ -25,7 +25,7 @@ /// <summary> /// 版本号 /// </summary> public static string VersionString = "1.2.0830"; public static string VersionString = "1.2.0901"; ///// <summary> ///// 客户端类型 ///// </summary> HDL_ON/UI/UI2/1-HomePage/HomePage.cs
@@ -392,6 +392,14 @@ if (temp.status == "enable") { btnSecurityStatus.IsSelected = true; if (temp.alarm) { btnSecurityStatus.SelectedImagePath = "Collection/DefenseAlarmIcon.png"; } else { btnSecurityStatus.SelectedImagePath = "Collection/DefenseStatusIcon.png"; } break; } } @@ -539,15 +547,15 @@ #if DEBUG //FunctionList.List.Functions.Add(new Function() //{ // spk = SPK.AirSwitch, // name = "智能空开", // attributes = new List<FunctionAttributes>() // { // new FunctionAttributes(){ key = "on_off",curValue= "on",state = "on" }, // }, //}); FunctionList.List.Functions.Add(new Function() { spk = SPK.AirSwitch, name = "智能空开", attributes = new List<FunctionAttributes>() { new FunctionAttributes(){ key = "on_off",curValue= "on",state = "on" }, }, }); //FunctionList.List.Functions.Add(new Function() //{ HDL_ON/UI/UI2/1-HomePage/HomePageBLL.cs
@@ -38,6 +38,7 @@ { lock (FunctionList.List.securities) { bodyView.btnSecurityStatus.IsSelected = false; foreach (var temp in FunctionList.List.securities) { if (temp.status == "enable") HDL_ON/UI/UI2/2-Classification/ClassificationPage.cs
@@ -973,7 +973,8 @@ btnName.TextID = StringId.EnvironmentalData; btnFunctionViewBg.MouseUpEventHandler = (sender, e) => { var skipView = new EnvironmentalPage();// EnvironmentalSciencePage(); //var skipView = new EnvironmentalPage();// EnvironmentalSciencePage(); var skipView = new A_EnvironmentalDataCenter();// EnvironmentalSciencePage(); MainPage.BasePageView.AddChidren(skipView); skipView.LoadPage(); MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; HDL_ON/UI/UI2/3-Intelligence/Automation/ConditionDeviceFunList.cs
@@ -364,7 +364,7 @@ { ///hcho LogicView.FunTypeView hchoView = new LogicView.FunTypeView(); hchoView.btnText.TextID = StringId.tvoc; hchoView.btnText.TextID = StringId.Formaldehyde; fLayout.AddChidren(hchoView.FLayoutView()); ///hcho点击事件 hchoView.btnClick.MouseUpEventHandler += (sender, e) => HDL_ON/UI/UI2/3-Intelligence/Automation/PublicInterface.cs
@@ -1019,7 +1019,7 @@ text = Language.StringByID(StringId.youxiu) + ":(0~0.08mg/m3)"; } break; case "(0.09,0.1]": case "(0.08,0.1]": { text = Language.StringByID(StringId.lianghao) + ":(0.09~0.1mg/m3)"; } @@ -1112,7 +1112,7 @@ } else if (text == Language.StringByID(StringId.lianghao) + ":(0.09~0.1mg/m3)") { value = "(0.09,0.1]"; value = "(0.08,0.1]"; } else if (text == Language.StringByID(StringId.chaobiao) + ":>(0.1mg/m3)") { HDL_ON/UI/UI2/3-Intelligence/IntelligencePage.cs
@@ -225,7 +225,7 @@ sceneFunctionView = new VerticalScrolViewLayout() { Y = Application.GetRealHeight(53), Height = Application.GetRealHeight(667 - 64 - 49 - 52 + 30), Height = Application.GetRealHeight(667 - 64 - 49 - 52 + 0), }; scenePageView.AddChidren(sceneFunctionView); LoadSceneFunctionControlZone(null); HDL_ON/UI/UI2/3-Intelligence/Scene/SetSceneFunctionInfoPage.cs
@@ -279,6 +279,10 @@ } else if (sceneStatus.key == FunctionAttributeKey.Brightness || sceneStatus.key == FunctionAttributeKey.Percent) { int outT = 0; int.TryParse(sceneStatus.value, out outT); if (outT < 0) sceneStatus.value = "0"; btnBrightnessText = btnFunctionText; } HDL_ON/UI/UI2/4-PersonalCenter/PersonalCenterPage.cs
@@ -138,10 +138,10 @@ /// 获取支持小区域 /// </summary> VerticalScrolViewLayout supportView; /// <summary> /// 获取支持文本 /// </summary> Button btnSupportText; ///// <summary> ///// 获取支持文本 ///// </summary> //Button btnSupportText; /// <summary> /// 关于On文本 @@ -795,7 +795,7 @@ if (!DB_ResidenceData.Instance.CurrentRegion.isOtherShare) { //supportView 加高 显示3行 3*44 supportView.Height = Application.GetRealWidth(3*44); supportView.Height = Application.GetRealWidth(2*44); FrameLayout smartSpeakerView = new FrameLayout() { @@ -850,53 +850,53 @@ #endregion #region 获取支持 FrameLayout supView = new FrameLayout() { Height = Application.GetRealWidth(44), }; supportView.AddChidren(supView); //FrameLayout supView = new FrameLayout() //{ // Height = Application.GetRealWidth(44), //}; //supportView.AddChidren(supView); Button btnSupportIcon = new Button() { X = Application.GetRealWidth(12), Y = Application.GetRealWidth(10), Width = Application.GetMinRealAverage(24), Height = Application.GetMinRealAverage(24), UnSelectedImagePath = "PersonalCenter/SupportIcon.png", }; supView.AddChidren(btnSupportIcon); //Button btnSupportIcon = new Button() //{ // X = Application.GetRealWidth(12), // Y = Application.GetRealWidth(10), // Width = Application.GetMinRealAverage(24), // Height = Application.GetMinRealAverage(24), // UnSelectedImagePath = "PersonalCenter/SupportIcon.png", //}; //supView.AddChidren(btnSupportIcon); btnSupportText = new Button() { X = Application.GetRealWidth(48), Width = Application.GetRealWidth(270), Height = Application.GetRealWidth(44), TextID = StringId.GetSupport, TextColor = CSS_Color.FirstLevelTitleColor, TextAlignment = TextAlignment.CenterLeft, TextSize = CSS_FontSize.TextFontSize }; supView.AddChidren(btnSupportText); //btnSupportText = new Button() //{ // X = Application.GetRealWidth(48), // Width = Application.GetRealWidth(270), // Height = Application.GetRealWidth(44), // TextID = StringId.GetSupport, // TextColor = CSS_Color.FirstLevelTitleColor, // TextAlignment = TextAlignment.CenterLeft, // TextSize = CSS_FontSize.TextFontSize //}; //supView.AddChidren(btnSupportText); Button btnSupportRight = new Button() { X = Application.GetRealWidth(315), Y = Application.GetRealWidth(14), Width = Application.GetMinRealAverage(16), Height = Application.GetMinRealAverage(16), UnSelectedImagePath = "Public/Right.png", }; supView.AddChidren(btnSupportRight); //Button btnSupportRight = new Button() //{ // X = Application.GetRealWidth(315), // Y = Application.GetRealWidth(14), // Width = Application.GetMinRealAverage(16), // Height = Application.GetMinRealAverage(16), // UnSelectedImagePath = "Public/Right.png", //}; //supView.AddChidren(btnSupportRight); var btnSupportViewLine = new Button() { X = Application.GetRealWidth(48), Y = Application.GetRealWidth(43), Height = Application.GetRealHeight(1), Width = Application.GetRealWidth(279), BackgroundColor = CSS_Color.DividingLineColor }; supView.AddChidren(btnSupportViewLine); //var btnSupportViewLine = new Button() //{ // X = Application.GetRealWidth(48), // Y = Application.GetRealWidth(43), // Height = Application.GetRealHeight(1), // Width = Application.GetRealWidth(279), // BackgroundColor = CSS_Color.DividingLineColor //}; //supView.AddChidren(btnSupportViewLine); #endregion #region 关于ON+ HDL_ON/UI/UI2/4-PersonalCenter/PersonalCenterPageBLL.cs
@@ -33,19 +33,18 @@ } /// <summary> /// 安防部分事件 /// 更新安防控件状态 /// </summary> void LoadEvent_SecurityEvent() void LoadEvent_UpdataSenurityStatus() { if (btnResidenceArmIcon != null) { btnResidenceArmIcon.IsSelected = false; lock (FunctionList.List.securities) { btnResidenceArmText.TextID = StringId.Undefense; foreach (var temp in FunctionList.List.securities) { if (temp.status == "enable") { btnResidenceArmText.TextID = StringId.Defense; if (temp.alarm) { btnResidenceArmIcon.SelectedImagePath = "PersonalCenter/ResidenceInAlarmIcon.png"; @@ -59,32 +58,35 @@ } } } btnResidenceArmIcon.MouseUpEventHandler = (sender, e) => } /// <summary> /// 安防部分事件 /// </summary> void LoadEvent_SecurityEvent() { var page = new ArmCenterPage(); if (btnResidenceArmIcon != null&& btnResidenceArmText != null) { Action action = () =>{ Application.RunOnMainThread(() => { LoadEvent_UpdataSenurityStatus(); }); }; btnResidenceArmIcon.IsSelected = false; LoadEvent_UpdataSenurityStatus(); EventHandler<MouseEventArgs> eventHandler = (sender, e) => { var page = new ArmCenterPage(action); MainPage.BasePageView.AddChidren(page); page.LoadPage(); MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; }; } if (btnResidenceArmText != null) { btnResidenceArmText.TextID = StringId.Undefense; foreach (var temp in FunctionList.List.securities) { if (temp.status == "enable") { btnResidenceArmText.TextID = StringId.Defense; break; } } btnResidenceArmText.MouseUpEventHandler = (sender, e) => { var page = new ArmCenterPage(); MainPage.BasePageView.AddChidren(page); page.LoadPage(); MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; }; btnResidenceArmIcon.MouseUpEventHandler = eventHandler; btnResidenceArmText.MouseUpEventHandler = eventHandler; } } @@ -357,13 +359,13 @@ /// </summary> void LoadEvent_SkipGetSupportPage() { btnSupportText.MouseUpEventHandler = (sender, e) => { var getsupportPage = new FAQHelpPage(); MainPage.BasePageView.AddChidren(getsupportPage); getsupportPage.LoadPage(); MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; }; //btnSupportText.MouseUpEventHandler = (sender, e) => //{ // var getsupportPage = new FAQHelpPage(); // MainPage.BasePageView.AddChidren(getsupportPage); // getsupportPage.LoadPage(); // MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; //}; } /// <summary> HDL_ON/UI/UI2/FuntionControlView/1ContorlPage/AirFreshRelayControlPage.cs
@@ -66,7 +66,10 @@ fanSpeedList = device.GetAttribute(FunctionAttributeKey.FanSpeed).value; btnFan.MouseUpEventHandler += (sender, e) => { if (btnSwitch.IsSelected) { ShowFanSelectView(); } }; //风速文本 this.btnFanView = new NormalViewControl(this.FrameWhiteCentet1.Width / 3, Application.GetRealHeight(18), false); HDL_ON/UI/UI2/FuntionControlView/ArmCenter/ArmCenterPage.cs
@@ -45,6 +45,14 @@ /// </summary> List<ArmDiyView> armDiyViewList = new List<ArmDiyView>(); Action refreshAction = null; public ArmCenterPage(Action action) { refreshAction = action; bodyView = this; } public ArmCenterPage() { bodyView = this; @@ -437,6 +445,8 @@ { if (bodyView != null) { bodyView.refreshAction?.Invoke(); //布防 if (updataTemp.status == "enable") { HDL_ON/UI/UI2/FuntionControlView/Electrical/AirSwitchPage.cs
@@ -148,7 +148,7 @@ }; controlView.AddChidren(btnSwitch); new TopViewDiv(bodyView, Language.StringByID(StringId.Electric)).LoadTopView_FunctionTop(function, actionRefresh,false); new TopViewDiv(bodyView, Language.StringByID(StringId.Electric)).LoadTopView_FunctionTop(function, actionRefresh); new System.Threading.Thread(() => { DriverLayer.Control.Ins.SendReadCommand(function); HDL_ON/UI/UI2/FuntionControlView/EnvironmentalScience/A_EnvironmentalDataCenter.cs
New file @@ -0,0 +1,1052 @@ using System; using System.Collections.Generic; using HDL_ON.DriverLayer; using HDL_ON.Entity; using HDL_ON.UI.CSS; using Shared; namespace HDL_ON.UI { public class A_EnvironmentalDataCenter : FrameLayout { #region 控件集合 static A_EnvironmentalDataCenter bodyView; /// <summary> /// 楼层显示 /// </summary> Button btnRoom; /// <summary> /// 房间选择下拉图标 /// </summary> Button btnFoorDownIcon; /// <summary> /// 房间选择触发区域 /// </summary> Button btnRoomClickRow; /// <summary> /// 传感器列表区域 /// </summary> FrameLayout sensorListView; VerticalScrolViewLayout sensorListContentView; /// <summary> /// 天气名称文本 /// </summary> Button btnWatherText; /// <summary> /// 湿度数据文本 /// </summary> Button btnHumidityText; /// <summary> /// pm25数据文本 /// </summary> Button btnPm25Values; /// <summary> /// 风速数据文本 /// </summary> Button btnFanSpeedValues; List<SensorView> sensorViewList = new List<SensorView>(); #endregion #region 区域变量 Room room; Sensor sensorTemp = new Sensor(); /// <summary> /// 传感器分类列表 /// </summary> Dictionary<string, List<Function>> sensorList = new Dictionary<string, List<Function>>(); #endregion public A_EnvironmentalDataCenter() { bodyView = this; } /// <summary> /// 加载界面 /// </summary> /// <param name="btnCollectionIcon">收藏按钮</param> /// <param name="btnFunctionName">功能名称信息按钮</param> /// <param name="btnFromFloor">功能楼层信息按钮</param> public void LoadPage() { bodyView.BackgroundColor = CSS_Color.BackgroundColor; #region 顶部天气部分 var topWeatherView = new FrameLayout() { Gravity = Gravity.CenterHorizontal, Y = Application.GetRealHeight(73), Width = Application.GetRealWidth(361), Height = Application.GetRealWidth(166), BackgroundImagePath = "FunctionIcon/EnvirSensor/0.png", }; bodyView.AddChidren(topWeatherView); LoadEvent_ChangeWeatherIcon(topWeatherView); var btnLocationText = new Button() { X = Application.GetRealWidth(27), Width = Application.GetRealWidth(74), Height = Application.GetRealWidth(44), TextAlignment = TextAlignment.CenterLeft, TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel, TextColor = CSS_Color.FirstLevelTitleColor, Text = MainPage.cityInfo.location, }; topWeatherView.AddChidren(btnLocationText); var btnTemp = new Button() { X = Application.GetRealWidth(21), Y = Application.GetRealWidth(53), Width = Application.GetRealWidth(78), Height = Application.GetRealWidth(68), TextSize = 60, IsBold = true, TextAlignment = TextAlignment.CenterLeft, TextColor = CSS_Color.FirstLevelTitleColor, Text = MainPage.cityInfo.temperature, }; topWeatherView.AddChidren(btnTemp); var btnTempUint = new Button() { X = Application.GetRealWidth(109), Y = Application.GetRealWidth(60), Width = Application.GetRealWidth(20), Height = Application.GetRealWidth(20), TextSize = CSS_FontSize.PromptFontSize_FirstLevel, TextColor = CSS_Color.TextualColor, Text = "°C", }; topWeatherView.AddChidren(btnTempUint); btnWatherText = new Button() { X = Application.GetRealWidth(109), Y = Application.GetRealWidth(82), Width = Application.GetRealWidth(200), Height = Application.GetRealWidth(20), TextColor = CSS_Color.TextualColor, TextSize = CSS_FontSize.TextFontSize, TextAlignment = TextAlignment.CenterLeft, Text = MainPage.cityInfo.weather }; topWeatherView.AddChidren(btnWatherText); var btnTempUpperLimit = new Button() { X = Application.GetRealWidth(107), Y = Application.GetRealWidth(101), Width = Application.GetRealWidth(16), Height = Application.GetRealWidth(16), UnSelectedImagePath = "FunctionIcon/EnvirSensor/UpperLimit.png", }; topWeatherView.AddChidren(btnTempUpperLimit); var btnTempUpperLimitText = new Button() { X = btnTempUpperLimit.Right, Y = Application.GetRealWidth(101), Width = Application.GetRealWidth(42), Height = Application.GetRealWidth(20), TextColor = CSS_Color.TextualColor, TextAlignment = TextAlignment.CenterLeft, TextSize = CSS_FontSize.PromptFontSize_FirstLevel, Text = $"{MainPage.cityInfo.highestTemperature}°C", }; topWeatherView.AddChidren(btnTempUpperLimitText); var btnTempLowerLimit = new Button() { X = Application.GetRealWidth(156), Y = Application.GetRealWidth(101), Width = Application.GetRealWidth(16), Height = Application.GetRealWidth(16), UnSelectedImagePath = "FunctionIcon/EnvirSensor/LowerLimit.png", }; topWeatherView.AddChidren(btnTempLowerLimit); var btnTempLowerLimitText = new Button() { X = btnTempLowerLimit.Right, Y = Application.GetRealWidth(101), Width = Application.GetRealWidth(42), Height = Application.GetRealWidth(20), TextColor = CSS_Color.TextualColor, TextAlignment = TextAlignment.CenterLeft, TextSize = CSS_FontSize.PromptFontSize_FirstLevel, Text = $"{MainPage.cityInfo.lowestTemperature}°C", }; topWeatherView.AddChidren(btnTempLowerLimitText); var btnValue = new Button() { X = Application.GetRealWidth(27), Y = Application.GetRealWidth(119), Width = Application.GetRealWidth(300), Height = Application.GetRealWidth(34), TextAlignment = TextAlignment.CenterLeft, TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel, TextColor = CSS_Color.TextualColor, }; topWeatherView.AddChidren(btnValue); var valueText = Language.StringByID(StringId.EnvirSensorValueTip); btnValue.Text = valueText.Replace("{0}", $"{MainPage.cityInfo.humidity}").Replace("{1}", $"{MainPage.cityInfo.pm25}").Replace("{2}", $"{MainPage.cityInfo.windLevel}"); #endregion #region contentView FrameLayout contentView = new FrameLayout() { Gravity = Gravity.CenterHorizontal, Y = Application.GetRealWidth(239), Height = Application.GetRealHeight(450), }; bodyView.AddChidren(contentView); #region 房间顶部切换显示区域 room = new Room() { roomName = Language.StringByID(StringId.All) }; btnFoorDownIcon = new Button() { Width = Application.GetMinRealAverage(16), Height = Application.GetMinRealAverage(16), X = Application.GetRealWidth(16), Y = Application.GetRealHeight(18), UnSelectedImagePath = "Public/DownIcon.png", }; contentView.AddChidren(btnFoorDownIcon); btnRoom = new Button() { X = btnFoorDownIcon.Right, Y = Application.GetRealHeight(18), Width = Application.GetRealWidth(200), Height = Application.GetMinRealAverage(16), TextColor = CSS_Color.FirstLevelTitleColor, TextSize = CSS_FontSize.PromptFontSize_FirstLevel, TextAlignment = TextAlignment.CenterLeft, Text = room.roomName, }; contentView.AddChidren(btnRoom); btnRoomClickRow = new Button() { Height = Application.GetRealHeight(40), }; contentView.AddChidren(btnRoomClickRow); #endregion sensorListContentView = new VerticalScrolViewLayout() { Gravity = Gravity.CenterHorizontal, Y = Application.GetRealHeight(50), Height = Application.GetRealHeight(400), Radius = (uint)Application.GetRealWidth(12), BorderColor = 0x00000000, BorderWidth = 0, }; contentView.AddChidren(sensorListContentView); sensorListView = new FrameLayout(); sensorListContentView.AddChidren(sensorListView); LoadSenesorList(); #endregion //LoadEventList(); LoadDialog_ChangeRoom(); new TopViewDiv(bodyView, Language.StringByID(StringId.EnvironmentalScience)).LoadTopView(); } /// <summary> /// 加载传感器列表 /// </summary> void LoadSenesorList() { sensorListView.RemoveAll(); sensorViewList.Clear(); sensorList = new Dictionary<string, List<Function>>(); int index = 0; foreach (var sensor in FunctionList.List.GetEnvirSensorsList()) { foreach (var sensorAttr in sensor.attributes) { if (SPK.EnvironSpkList().Contains(sensorAttr.key) || sensorAttr.key == "value") { var flag = sensorAttr.key; if (flag == "value") { flag = sensor.spk.Replace("sensor.", ""); } var newTemp = new Function() { name = sensor.name, sid = sensor.sid, deviceId = sensor.deviceId, roomIds = sensor.roomIds, spk = "sensor."+ flag, attributes = new List<FunctionAttributes> { new FunctionAttributes { key = "value", state = sensorAttr.state, curValue = sensorAttr.curValue } , new FunctionAttributes {key = "spk",state = sensorAttr.key,curValue = sensorAttr.key } } }; //分类加入集合 if (sensorList.ContainsKey(flag)) { sensorList[flag].Add(newTemp); } else { sensorList.Add(flag, new List<Function>() { newTemp }); } } } new System.Threading.Thread(() => { Control.Ins.SendReadCommand(sensor); }) { IsBackground = true }.Start(); } foreach(var sensorAssemble in sensorList) { var showList = sensorAssemble.Value; if(room.roomId != "") { showList = sensorAssemble.Value.FindAll((obj) => obj.roomIds.Contains(room.roomId)); } if (showList != null && showList.Count > 0) { var sensorView = new SensorView(showList,index); sensorListView.AddChidren(sensorView); sensorViewList.Add(sensorView); sensorView.LoadView(); index++; } } sensorListView.Height = Application.GetRealWidth(124 * (index + 1) / 2); } /// <summary> /// 房间列表点击事件 /// </summary> void LoadDialog_ChangeRoom() { EventHandler<MouseEventArgs> eventHandler = (sender, e) => { var dialog = new Dialog(); var dialogBody = new FrameLayout(); dialog.AddChidren(dialogBody); dialogBody.MouseUpEventHandler += (sender1, e1) => { dialog.Close(); }; var dispalyView = new FrameLayout() { X = Application.GetRealWidth(10), Y = Application.GetRealHeight(266), Width = Application.GetRealWidth(160), Height = Application.GetRealHeight(110), BackgroundImagePath = "PersonalCenter/HomeList1bg.png", }; dialogBody.AddChidren(dispalyView); var contentView = new VerticalScrolViewLayout() { X = Application.GetRealWidth(8), Y = Application.GetRealHeight(15), Width = Application.GetRealWidth(150), Height = Application.GetRealHeight(45 * 2), ScrollEnabled = false }; dispalyView.AddChidren(contentView); if (SpatialInfo.CurrentSpatial.RoomList.Count < 2) { } else if (SpatialInfo.CurrentSpatial.RoomList.Count < 3) { dispalyView = new FrameLayout() { X = Application.GetRealWidth(10), Y = Application.GetRealHeight(266), Width = Application.GetRealWidth(160), Height = Application.GetRealHeight(155), BackgroundImagePath = "PersonalCenter/HomeList2bg.png", }; dialogBody.AddChidren(dispalyView); contentView.Height = Application.GetRealHeight(45 * 3); dispalyView.AddChidren(contentView); } else if (SpatialInfo.CurrentSpatial.RoomList.Count < 4) { dispalyView = new FrameLayout() { X = Application.GetRealWidth(10), Y = Application.GetRealHeight(266), Width = Application.GetRealWidth(160), Height = Application.GetRealHeight(200), BackgroundImagePath = "PersonalCenter/HomeList3bg.png", }; dialogBody.AddChidren(dispalyView); contentView.Height = Application.GetRealHeight(45 * 4); dispalyView.AddChidren(contentView); } else { dispalyView = new FrameLayout() { X = Application.GetRealWidth(10), Y = Application.GetRealHeight(266), Width = Application.GetRealWidth(160), Height = Application.GetRealHeight(245), BackgroundImagePath = "PersonalCenter/HomeList4bg.png", }; dialogBody.AddChidren(dispalyView); contentView.Height = Application.GetRealHeight(45 * 5); contentView.ScrollEnabled = true; dispalyView.AddChidren(contentView); } var showListRoom = new List<Room>(); showListRoom.Add(new Room() { roomName = Language.StringByID(StringId.All) }); showListRoom.AddRange(SpatialInfo.CurrentSpatial.RoomList); foreach (var roomTemp in showListRoom) { string roomName = roomTemp.roomName; var btnRoomName = new Button() { Gravity = Gravity.CenterHorizontal, Width = Application.GetRealWidth(112), Height = Application.GetRealHeight(44), TextAlignment = TextAlignment.CenterLeft, TextColor = CSS_Color.FirstLevelTitleColor, SelectedTextColor = CSS_Color.MainColor, Text = roomName, TextSize = CSS_FontSize.SubheadingFontSize, IsSelected = btnRoom.Text == roomName, IsMoreLines = true, Tag = roomName }; contentView.AddChidren(btnRoomName); btnRoomName.MouseUpEventHandler += (senderH, en) => { dialog.Close(); btnRoom.Text = roomName; room = roomTemp; LoadSenesorList(); }; } dialog.Show(); }; btnRoomClickRow.MouseUpEventHandler = eventHandler; //btnFoorDownIcon.MouseUpEventHandler = eventHandler; } #region event public static void LoadEvent_UpdataStatus(Function updateTemp) { Application.RunOnMainThread(() => { try { if (bodyView != null) { foreach (var sensorAttr in updateTemp.attributes) { if (SPK.EnvironSpkList().Contains(sensorAttr.key) || sensorAttr.key == "value") { var flag = sensorAttr.key; if (flag == "value") { flag = updateTemp.spk.Replace("sensor.", ""); } foreach (var view in bodyView.sensorViewList) { if (view.Tag.ToString() == flag) { view.UpdataStatus(flag,updateTemp.sid, sensorAttr.state); } } } } } } catch (Exception ex) { MainPage.Log($"更新环境传感器界面异常:{ex.Message}"); } }); } void LoadEvent_ChangeWeatherIcon(FrameLayout view) { switch (MainPage.cityInfo.weather) { case "晴": case "Sunny": case "晴天": case "天晴": case "Clear": case "大部晴朗": case "Mostly Sunny": case "晴時多雲": case "陽光充沛": case "Mostly Clear": view.BackgroundImagePath = "FunctionIcon/EnvirSensor/0.png"; break; case "多云": case "Cloudy": case "多雲": case "少云": case "Partly Cloudy": case "少雲": view.BackgroundImagePath = "FunctionIcon/EnvirSensor/1.png"; break; case "阴": case "Overcast": case "陰天": view.BackgroundImagePath = "FunctionIcon/EnvirSensor/2.png"; break; case "阵雨": case "Showers": case "陣雨": case "驟雨": case "局部阵雨": case "Scattered Showers": case "局地陣雨": case "局部地區性驟雨": case "小阵雨": case "Light Showers": case "小陣雨": case "零散驟雨": case "强阵雨": case "Heavy Showers": case "強陣雨": case "間中有驟雨": view.BackgroundImagePath = "FunctionIcon/EnvirSensor/3.png"; break; case "阵雪": case "Snow Showers": case "陣雪": case "驟雪": case "小阵雪": case "Light Snow Showers": case "小陣雪": case "零散驟雪": view.BackgroundImagePath = "FunctionIcon/EnvirSensor/13.png"; break; case "雾": case "Fog": case "霧": case "薄霧": case "冻雾": case "Freezing Fog": case "凍霧": view.BackgroundImagePath = "FunctionIcon/EnvirSensor/18.png"; break; case "沙尘暴": case "Sandstorm": case "沙塵暴": case "强沙尘暴": case "Heavy Sandstorm": case "強沙塵暴": view.BackgroundImagePath = "FunctionIcon/EnvirSensor/20.png"; break; case "浮尘": case "Dust": case "浮塵": case "尘卷风": case "Dust Storm": case "塵捲風": case "扬沙": case "Sand": case "揚沙": view.BackgroundImagePath = "FunctionIcon/EnvirSensor/29.png"; break; case "霾": case "Haze": case "煙霞": view.BackgroundImagePath = "FunctionIcon/EnvirSensor/45.png"; break; case "雷阵雨": case "Thundershower": case "雷陣雨": case "雷雨": case "雷电": case "Lightning": case "雷電": case "雷暴": case "Thunderstorm": view.BackgroundImagePath = "FunctionIcon/EnvirSensor/4.png"; break; case "雷阵雨伴有冰雹": case "Thundershower with Hail": case "雷陣雨伴有冰雹": case "雷雨伴有冰雹": case "冰雹": case "Hail": case "冰针": case "Needle Ice": case "冰針": case "冰粒": case "Icy": view.BackgroundImagePath = "FunctionIcon/EnvirSensor/5.png"; break; case "雨夹雪": case "Sleet": case "雨夾雪": view.BackgroundImagePath = "FunctionIcon/EnvirSensor/6.png"; break; case "小雨": case "Light Rain": view.BackgroundImagePath = "FunctionIcon/EnvirSensor/3.png"; break; case "中雨": case "Rain": case "小到中雨": case "雨": view.BackgroundImagePath = "FunctionIcon/EnvirSensor/3.png"; break; case "大雨": case "Heavy Rain": case "中到大雨": view.BackgroundImagePath = "FunctionIcon/EnvirSensor/3.png"; break; case "暴雨": case "Rainstorm": case "豪雨": case "大暴雨": case "Heavy Rainstorm": case "大豪雨": case "特大暴雨": case "Extreme Rainstorm": case "超大豪雨": case "大到暴雨": view.BackgroundImagePath = "FunctionIcon/EnvirSensor/3.png"; break; case "小雪": case "Light Snow": view.BackgroundImagePath = "FunctionIcon/EnvirSensor/13.png"; break; case "雪": case "中雪": case "小到中雪": case "Snow": view.BackgroundImagePath = "FunctionIcon/EnvirSensor/13.png"; break; case "大雪": case "Heavy Snow": view.BackgroundImagePath = "FunctionIcon/EnvirSensor/13.png"; break; case "暴雪": case "Blizzard": view.BackgroundImagePath = "FunctionIcon/EnvirSensor/13.png"; break; case "冻雨": case "Freezing Rain": case "凍雨": view.BackgroundImagePath = "FunctionIcon/EnvirSensor/6.png"; break; } } #endregion } /// <summary> /// 加载传感器列表 /// </summary> public class SensorView :FrameLayout { Button btnSensorValues; Button btnLevel; List<Function> sensorList = new List<Function>(); string imagePath = ""; string iconPath = ""; string sensorSPK = ""; Sensor sensorTemp = new Sensor(); double assembleValues = 0.0; public SensorView(List<Function> showList, int index)//,,string spk,double value) { sensorList = showList; sensorSPK = showList[0].spk; foreach (var s in showList) { assembleValues += Convert.ToDouble(s.GetAttrState("value")); } this.X = Application.GetRealWidth(7); this.Width = Application.GetRealWidth(182); this.Height = Application.GetRealWidth(124); this.Y = Application.GetRealWidth(124 * (index / 2)); this.Tag = sensorSPK; if (index % 2 != 0) { this.X = Application.GetRealWidth(189); } switch (sensorSPK) { case SPK.SensorCO2: imagePath = "FunctionIcon/EnvirSensor/Co2Bg.png"; iconPath = "FunctionIcon/EnvirSensor/Co2Icon.png"; break; case SPK.SensorPm25: imagePath = "FunctionIcon/EnvirSensor/Pm25Bg.png"; iconPath = "FunctionIcon/EnvirSensor/Pm25Icon.png"; break; case SPK.SensorTVOC: imagePath = "FunctionIcon/EnvirSensor/TvocBg.png"; iconPath = "FunctionIcon/EnvirSensor/TvocIcon.png"; break; case SPK.SensorHumidity: imagePath = "FunctionIcon/EnvirSensor/HumidityBg.png"; iconPath = "FunctionIcon/EnvirSensor/HumidityIcon.png"; break; case SPK.SensorTemperature: imagePath = "FunctionIcon/EnvirSensor/TempBg.png"; iconPath = "FunctionIcon/EnvirSensor/TempIcon.png"; break; case SPK.SensorHcho: imagePath = "FunctionIcon/EnvirSensor/HchoBg.png"; iconPath = "FunctionIcon/EnvirSensor/HchoIcon.png"; break; } } public void LoadView() { Function sensor = sensorList[0]; this.BackgroundImagePath = imagePath; var btnIcon = new Button() { X = Application.GetRealWidth(23), Y = Application.GetRealHeight(17), Width = Application.GetRealWidth(32), Height = Application.GetRealWidth(32), UnSelectedImagePath = iconPath }; this.AddChidren(btnIcon); btnIcon.MouseUpEventHandler = (sender, e) => { #region var esp = new EnvironmentalSensorPage(sensor,sensorList); MainPage.BasePageView.AddChidren(esp); esp.LoadPage(); MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; #endregion }; var btnInfoIcon = new Button() { X = Application.GetRealWidth(139), Y = Application.GetRealHeight(21), Width = Application.GetRealWidth(24), Height = Application.GetRealWidth(24), UnSelectedImagePath = "FunctionIcon/EnvirSensor/InfoIcon.png", }; this.AddChidren(btnInfoIcon); btnInfoIcon.MouseUpEventHandler = (sender, e) => { LoadInfo(sensorSPK); }; var curLevel = sensorTemp.GetCurLevel(sensorSPK, assembleValues); var levelTextList = sensorTemp.GetLevelTextList(sensorSPK); btnLevel = new Button() { X = Application.GetRealWidth(25), Y = Application.GetRealWidth(59), Width = Application.GetRealWidth(100), Height = Application.GetRealWidth(32), TextAlignment = TextAlignment.CenterLeft, TextColor = sensorTemp.GetLevelColorList(sensorSPK)[curLevel - 1], TextSize = CSS_FontSize.SubheadingFontSize, TextID = levelTextList[curLevel - 1], Tag = "SensorLevel", }; this.AddChidren(btnLevel); btnLevel.MouseUpEventHandler = (sender, e) => { #region var esp = new EnvironmentalSensorPage(sensor,sensorList); MainPage.BasePageView.AddChidren(esp); esp.LoadPage(); MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; #endregion }; btnSensorValues = new Button() { X = Application.GetRealWidth(25), Y = Application.GetRealWidth(83), Width = Application.GetRealWidth(100), Height = Application.GetRealWidth(27), TextAlignment = TextAlignment.CenterLeft, TextColor = CSS_Color.PromptingColor1, TextSize = CSS_FontSize.PromptFontSize_FirstLevel, IsBold = true, Text = assembleValues.ToString(), Tag = "SensorValues" }; this.AddChidren(btnSensorValues); btnSensorValues.MouseUpEventHandler = (sender, e) => { #region var esp = new EnvironmentalSensorPage(sensor,sensorList); MainPage.BasePageView.AddChidren(esp); esp.LoadPage(); MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; #endregion }; } /// <summary> /// 加载传感器等级相关信息 /// </summary> void LoadInfo(string sensorSPK) { var levelColorList = sensorTemp.GetLevelColorList(sensorSPK); var levelTextList = sensorTemp.GetLevelTextList(sensorSPK); Dialog dialog = new Dialog(); FrameLayout dialogBodyView = new FrameLayout(); dialog.AddChidren(dialogBodyView); dialogBodyView.MouseUpEventHandler = (sender, e) => { dialog.Close(); }; VerticalScrolViewLayout infoView = new VerticalScrolViewLayout() { Gravity = Gravity.CenterHorizontal, Y = Application.GetRealHeight(667 - 94 - (levelColorList.Count * 44) - 20), Width = Application.GetRealWidth(343), Height = Application.GetRealHeight(94 + (levelColorList.Count * 44) + levelColorList.Count), Radius = (uint)Application.GetRealWidth(12), BackgroundColor = CSS_Color.MainBackgroundColor, Animate = Animate.DownToUp, ScrollEnabled = false, AnimateSpeed = 0.3f, }; dialogBodyView.AddChidren(infoView); Button btnTitle = new Button() { Height = Application.GetRealHeight(50), TextColor = CSS_Color.FirstLevelTitleColor, IsBold = true, TextSize = CSS_FontSize.SubheadingFontSize, TextAlignment = TextAlignment.Center, }; infoView.AddChidren(btnTitle); switch (sensorSPK) { case SPK.SensorPm25: btnTitle.Text = "PM2.5(ug/m²)"; break; case SPK.SensorTemperature: btnTitle.Text = Language.StringByID(StringId.Temp) + "(°C)"; break; case SPK.SensorTVOC: btnTitle.Text = "TVOC(PPB)"; break; case SPK.SensorCO2: btnTitle.Text = "CO2(PPM)"; break; case SPK.SensorHumidity: btnTitle.Text = Language.StringByID(StringId.Humidity) + "(%)"; break; case SPK.SensorHcho: btnTitle.Text = Language.StringByID(StringId.Formaldehyde) + "(mg/m3)"; break; } FrameLayout subTitleView = new FrameLayout() { Height = Application.GetRealHeight(44), }; infoView.AddChidren(subTitleView); subTitleView.AddChidren(new Button() { X = Application.GetRealWidth(20), Width = Application.GetRealWidth(100), TextAlignment = TextAlignment.CenterLeft, TextColor = CSS_Color.FirstLevelTitleColor, TextSize = CSS_FontSize.TextFontSize, IsBold = true, TextID = StringId.IntervalValue, }); subTitleView.AddChidren(new Button() { Gravity = Gravity.CenterHorizontal, Width = Application.GetRealWidth(100), TextAlignment = TextAlignment.Center, TextColor = CSS_Color.FirstLevelTitleColor, TextSize = CSS_FontSize.TextFontSize, IsBold = true, TextID = StringId.LevelSensor, }); subTitleView.AddChidren(new Button() { X = Application.GetRealWidth(223), Width = Application.GetRealWidth(100), TextAlignment = TextAlignment.CenterRight, TextColor = CSS_Color.FirstLevelTitleColor, TextSize = CSS_FontSize.TextFontSize, IsBold = true, TextID = StringId.ColorValue, }); for (int index = 0; index < levelTextList.Count; index++) { infoView.AddChidren(new Button() { Gravity = Gravity.CenterHorizontal, Width = Application.GetRealWidth(303), Height = Application.GetRealWidth(1), BackgroundColor = CSS_Color.DividingLineColor, }); FrameLayout subInfoView = new FrameLayout() { Height = Application.GetRealHeight(44), }; infoView.AddChidren(subInfoView); subInfoView.AddChidren(new Button() { X = Application.GetRealWidth(20), Width = Application.GetRealWidth(100), TextAlignment = TextAlignment.CenterLeft, TextColor = CSS_Color.FirstLevelTitleColor, TextSize = CSS_FontSize.TextFontSize, IsBold = true, Text = sensorTemp.GetIntervalValue(sensorSPK)[index] }); subInfoView.AddChidren(new Button() { Gravity = Gravity.CenterHorizontal, Width = Application.GetRealWidth(100), TextAlignment = TextAlignment.Center, TextColor = CSS_Color.FirstLevelTitleColor, TextSize = CSS_FontSize.TextFontSize, IsBold = true, TextID = levelTextList[index] }); subInfoView.AddChidren(new Button() { X = Application.GetRealWidth(285), Gravity = Gravity.CenterVertical, Width = Application.GetRealWidth(38), Height = Application.GetRealHeight(18), Radius = (uint)Application.GetRealWidth(4), BackgroundColor = levelColorList[index] }); } dialog.Show(); } public void calculateAverage() { assembleValues = 0; foreach (var s in sensorList) { assembleValues += Convert.ToDouble(s.GetAttrState("value")); } } /// <summary> /// 更新状态 /// </summary> /// <param name="updateTemp"></param> public void UpdataStatus(string spk ,string sid,string value) { try { if (spk == sensorSPK) { var temp = sensorList.Find((obj) => obj.sid == sid); if(temp!= null) { temp.SetAttrState("value", value); } calculateAverage(); btnSensorValues.Text = assembleValues.ToString(); var curLevel = sensorTemp.GetCurLevel(sensorSPK, assembleValues); btnLevel.TextID = sensorTemp.GetLevelTextList(sensorSPK)[curLevel- 1]; btnLevel.TextColor = sensorTemp.GetLevelColorList(sensorSPK)[curLevel - 1]; } } catch (Exception ex) { MainPage.Log($"更新环境传感器界面异常:{ex.Message}"); } } } } HDL_ON/UI/UI2/FuntionControlView/EnvironmentalScience/EnvironmentalSensorPage.cs
@@ -26,6 +26,7 @@ Function function; List<Function> showFunctions; List<Function> sensorList; /// <summary> /// 当前查询类型 /// </summary> @@ -45,6 +46,17 @@ { bodyView = this; function = ss; showFunctions = new List<Function>(); showFunctions.Add(ss); sensorList = FunctionList.List.GetEnvirSensorsList(); } public EnvironmentalSensorPage(Function ss,List<Function> functions) { bodyView = this; function = ss; sensorList = functions; showFunctions = new List<Function>(); showFunctions.Add(ss); } @@ -644,9 +656,8 @@ bool initTitleButton = true; var tempList = FunctionList.List.GetEnvirSensorsList(); foreach (var tempSensor in tempList) foreach (var tempSensor in sensorList) { if (tempSensor.sid == function.sid) { @@ -850,7 +861,7 @@ } var sensorType = sr.spk.Split(".")[1]; var queryType = sr.GetAttrState("spk")==null? "value": sr.GetAttrState("spk"); var queryType = sr.GetAttrState("spk").ToString(); var revertObj = new HttpServerRequest().GetSensorHistory(curQueryType, sr.deviceId, queryType); if (revertObj != null) HDL_ON/UI/UI2/FuntionControlView/FunctionBaseInfoSetPageBLL.cs
@@ -63,7 +63,10 @@ view.LoadPage(); MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; }; if (btnLocationInfoRight != null) { btnLocationInfoRight.MouseUpEventHandler = eventHandler; } btnLocationValues.MouseUpEventHandler = eventHandler; } }