From ec9e37b92075752cd96c558a7d8bffbbc4adc07e Mon Sep 17 00:00:00 2001 From: wei <kaede@kaededeMacBook-Air.local> Date: 星期三, 13 十月 2021 11:35:43 +0800 Subject: [PATCH] 金茂新风湿度控制 --- HDL-ON_Android/Properties/AndroidManifest.xml | 2 HDL_ON/UI/UI2/1-HomePage/HomePage.cs | 19 ++ HDL_ON/UI/UI2/FuntionControlView/1ContorlPage/AirFreshControlPage.cs | 252 +++++++++++++++++++++++++++++++++++- HDL_ON/UI/UI2/3-Intelligence/Automation/InpOrOutLogicMethod.cs | 5 HDL-ON_iOS/HDL-ON_iOS.csproj | 3 HDL_ON/UI/UI2/3-Intelligence/Automation/ConditionDeviceFunList.cs | 1 HDL_ON/DAL/DriverLayer/Control_Udp.cs | 10 + HDL_ON/UI/UI2/3-Intelligence/Automation/TargetDeviceFunList.cs | 2 HDL-ON_Android/HDL-ON_Android.csproj | 3 HDL-ON_Android/Assets/Phone/FunctionIcon/AirFresh/HumiIcon.png | 0 HDL-ON_iOS/Info.plist | 4 HDL_ON/UI/UI2/3-Intelligence/Automation/LogicMethod.cs | 12 + HDL-ON_iOS/Resources/Phone/FunctionIcon/AirFresh/btnCloseIcon.png | 0 HDL-ON_Android/Assets/Phone/FunctionIcon/AirFresh/btnInfoIcon.png | 0 HDL-ON_Android/Assets/Phone/FunctionIcon/AirFresh/btnCloseIcon.png | 0 .vs/HDL_APP_Project/xs/UserPrefs.xml | 61 +++----- HDL-ON_iOS/Resources/Phone/FunctionIcon/AirFresh/btnInfoIcon.png | 0 HDL_ON/DAL/DriverLayer/Control.cs | 6 HDL_ON/UI/MainPage.cs | 2 HDL-ON_iOS/Resources/Phone/FunctionIcon/AirFresh/HumiIcon.png | 0 HDL_ON/UI/UI2/FuntionControlView/ArmCenter/AddInputPage.cs | 5 21 files changed, 325 insertions(+), 62 deletions(-) diff --git a/.vs/HDL_APP_Project/xs/UserPrefs.xml b/.vs/HDL_APP_Project/xs/UserPrefs.xml index 0c5476a..551ff4d 100644 --- a/.vs/HDL_APP_Project/xs/UserPrefs.xml +++ b/.vs/HDL_APP_Project/xs/UserPrefs.xml @@ -1,45 +1,30 @@ -锘�<Properties StartupConfiguration="{09712674-2A38-407B-B1E2-560B2C352F9A}|Default"> - <MonoDevelop.Ide.ItemProperties.HDL-ON__iOS PreferredExecutionTarget="MonoDevelop.IPhone.IPhoneSimulatorTarget." /> - <MonoDevelop.Ide.Workbench ActiveDocument="HDL_ON/DAL/DriverLayer/Packet.cs"> +锘�<Properties StartupConfiguration="{D998E133-F0DD-4760-BE3C-461632F54DA4}|Default"> + <MonoDevelop.Ide.ItemProperties.HDL-ON__iOS PreferredExecutionTarget="MonoDevelop.IPhone.IPhoneDeviceTarget" /> + <MonoDevelop.Ide.Workbench ActiveDocument="HDL-ON_iOS/Info.plist"> <Files> - <File FileName="HDL_ON/DAL/Server/HttpUtil.cs" Line="21" Column="89" /> - <File FileName="HDL_ON/UI/UI1-Login/LoginPage.cs" Line="237" Column="59" /> - <File FileName="HDL_ON/UI/UI2/FuntionControlView/1ContorlPage/AcControlPage.cs" Line="741" Column="23" /> - <File FileName="HDL_ON/UI/UI2/1-HomePage/HomePage.cs" Line="853" Column="21" /> - <File FileName="HDL_ON/UI/UI2/2-Classification/FunctionControlZoneBLL.cs" Line="340" Column="36" /> - <File FileName="HDL_ON/UI/UI2/2-Classification/FunctionControlZone.cs" Line="170" Column="1" /> - <File FileName="HDL_ON/DAL/Mqtt/MqttClient.cs" Line="315" Column="1" /> - <File FileName="HDL_ON/UI/MainPage.cs" Line="28" Column="55" /> - <File FileName="HDL_ON/DAL/DriverLayer/Control.cs" Line="1050" Column="1" /> - <File FileName="HDL_ON/DAL/DriverLayer/Control_Udp.cs" Line="272" Column="45" /> - <File FileName="HDL_ON/Entity/Function/Function.cs" Line="1326" Column="32" /> - <File FileName="HDL_ON/UI/UI2/FuntionControlView/AC/ACPage.cs" Line="8" Column="28" /> - <File FileName="HDL_ON/DAL/DriverLayer/Packet.cs" Line="384" Column="1" /> + <File FileName="HDL_ON/UI/UI2/FuntionControlView/1ContorlPage/AirFreshControlPage.cs" Line="211" Column="33" /> + <File FileName="HDL_ON/DAL/DriverLayer/Control.cs" Line="356" Column="21" /> + <File FileName="HDL_ON/UI/UI2/FuntionControlView/ArmCenter/ArmCenterPage.cs" Line="331" Column="68" /> + <File FileName="HDL_ON/UI/UI2/FuntionControlView/ArmCenter/AddAlarmDeploymentPage.cs" Line="306" Column="44" /> + <File FileName="HDL_ON/UI/UI2/FuntionControlView/ArmCenter/AddInputPage.cs" Line="89" Column="58" /> + <File FileName="HDL_ON/UI/MainPage.cs" Line="5" Column="17" /> + <File FileName="HDL_ON/DAL/Server/HttpUtil.cs" Line="21" Column="36" /> + <File FileName="HDL_ON/DAL/Mqtt/MqttClient.cs" Line="446" Column="41" /> + <File FileName="HDL-ON_iOS/Info.plist" /> </Files> <Pads> <Pad Id="ProjectPad"> <State name="__root__"> <Node name="HDL_APP_Project" expanded="True"> - <Node name="HDL_ON" expanded="True"> - <Node name="DAL" expanded="True"> - <Node name="DriverLayer" expanded="True"> - <Node name="Packet.cs" selected="True" /> - </Node> - <Node name="Server" expanded="True" /> - </Node> - <Node name="Entity" expanded="True"> - <Node name="Function" expanded="True" /> - </Node> - <Node name="UI" expanded="True"> - <Node name="UI0-Public" expanded="True" /> - <Node name="UI2" expanded="True"> - <Node name="FuntionControlView" expanded="True"> - <Node name="AC" expanded="True" /> - </Node> - </Node> - </Node> + <Node name="HDL-ON_iOS" expanded="True"> + <Node name="Info.plist" selected="True" /> </Node> </Node> + </State> + </Pad> + <Pad Id="MonoDevelop.Debugger.WatchPad"> + <State> + <Value>function.spk</Value> </State> </Pad> </Pads> @@ -50,23 +35,20 @@ <String>Shared.Droid.TouchID/Shared.Droid.TouchID.csproj</String> <String>Shared.IOS/Shared.IOS.csproj</String> </DisabledProjects> - <MonoDevelop.Ide.Workspace ActiveConfiguration="Debug|iPhone" /> - <MonoDevelop.Ide.ItemProperties.HDL-ON__Android PreferredExecutionTarget="Android.364c4b3158493098" /> + <MonoDevelop.Ide.Workspace ActiveConfiguration="Release|iPhone" /> + <MonoDevelop.Ide.ItemProperties.HDL-ON__Android PreferredExecutionTarget="Android.SelectDevice" /> <MonoDevelop.Ide.DebuggingService.Breakpoints> <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="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/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/Entity/Function/Scene.cs" relfile="HDL_ON/Entity/Function/Scene.cs" line="343" column="1" /> - <Breakpoint file="/Users/kaede/Desktop/HDL_APP_Project/HDL_ON/UI/UI2/FuntionControlView/ArmCenter/AddInputPage.cs" relfile="HDL_ON/UI/UI2/FuntionControlView/ArmCenter/AddInputPage.cs" line="148" 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="865" column="1" /> <Breakpoint file="/Users/kaede/Desktop/HDL_APP_Project/HDL_ON/DAL/Server/HttpServerRequest.cs" relfile="HDL_ON/DAL/Server/HttpServerRequest.cs" line="2691" column="1" /> <Breakpoint file="/Users/kaede/Desktop/HDL_APP_Project/HDL_ON/DAL/Server/HttpServerRequest.cs" relfile="HDL_ON/DAL/Server/HttpServerRequest.cs" line="2687" column="1" /> - <Breakpoint file="/Users/kaede/Desktop/HDL_APP_Project/HDL_ON/UI/UI2/FuntionControlView/Energy/EnergyMainPage.cs" relfile="HDL_ON/UI/UI2/FuntionControlView/Energy/EnergyMainPage.cs" line="524" column="1" /> <Breakpoint file="/Users/kaede/Desktop/HDL_APP_Project/HDL_ON/Entity/Function/Scene.cs" relfile="HDL_ON/Entity/Function/Scene.cs" line="322" column="1" /> <Breakpoint file="/Users/kaede/Desktop/HDL_APP_Project/HDL_ON/UI/UI2/FuntionControlView/EnvironmentalScience/EnvironmentalPage.cs" relfile="HDL_ON/UI/UI2/FuntionControlView/EnvironmentalScience/EnvironmentalPage.cs" line="798" column="1" /> <Breakpoint file="/Users/kaede/Desktop/HDL_APP_Project/HDL_ON/UI/UI2/FuntionControlView/EnvironmentalScience/EnvironmentalPage.cs" relfile="HDL_ON/UI/UI2/FuntionControlView/EnvironmentalScience/EnvironmentalPage.cs" line="852" column="11" /> @@ -74,6 +56,7 @@ <Breakpoint file="/Users/kaede/Desktop/HDL_APP_Project/HDL_ON/UI/UI2/FuntionControlView/EnvironmentalScience/EnvironmentalPage.cs" relfile="HDL_ON/UI/UI2/FuntionControlView/EnvironmentalScience/EnvironmentalPage.cs" line="835" column="12" /> <Breakpoint file="/Users/kaede/Desktop/HDL_APP_Project/HDL_ON/UI/UI2/FuntionControlView/Light/ColorTureLampPage.cs" relfile="HDL_ON/UI/UI2/FuntionControlView/Light/ColorTureLampPage.cs" line="200" column="1" /> <Breakpoint file="/Users/kaede/Desktop/HDL_APP_Project/HDL_ON/DAL/DriverLayer/Control.cs" relfile="HDL_ON/DAL/DriverLayer/Control.cs" line="727" column="1" /> + <Breakpoint file="/Users/kaede/Desktop/HDL_APP_Project/HDL_ON/UI/UI2/FuntionControlView/ArmCenter/AddInputPage.cs" relfile="HDL_ON/UI/UI2/FuntionControlView/ArmCenter/AddInputPage.cs" line="178" column="1" /> </BreakpointStore> </MonoDevelop.Ide.DebuggingService.Breakpoints> <MultiItemStartupConfigurations /> diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/AirFresh/HumiIcon.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/AirFresh/HumiIcon.png new file mode 100644 index 0000000..59b2f44 --- /dev/null +++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/AirFresh/HumiIcon.png Binary files differ diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/AirFresh/btnCloseIcon.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/AirFresh/btnCloseIcon.png new file mode 100644 index 0000000..261e62c --- /dev/null +++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/AirFresh/btnCloseIcon.png Binary files differ diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/AirFresh/btnInfoIcon.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/AirFresh/btnInfoIcon.png new file mode 100644 index 0000000..416d299 --- /dev/null +++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/AirFresh/btnInfoIcon.png Binary files differ diff --git a/HDL-ON_Android/HDL-ON_Android.csproj b/HDL-ON_Android/HDL-ON_Android.csproj index fa5f97f..8fe9c65 100644 --- a/HDL-ON_Android/HDL-ON_Android.csproj +++ b/HDL-ON_Android/HDL-ON_Android.csproj @@ -208,6 +208,9 @@ <None Include="Resources\AboutResources.txt" /> <None Include="Properties\AndroidManifest.xml" /> <None Include="Assets\AboutAssets.txt" /> + <AndroidAsset Include="Assets\Phone\FunctionIcon\AirFresh\HumiIcon.png" /> + <AndroidAsset Include="Assets\Phone\FunctionIcon\AirFresh\btnCloseIcon.png" /> + <AndroidAsset Include="Assets\Phone\FunctionIcon\AirFresh\btnInfoIcon.png" /> </ItemGroup> <ItemGroup> <AndroidResource Include="Resources\values\colors.xml" /> diff --git a/HDL-ON_Android/Properties/AndroidManifest.xml b/HDL-ON_Android/Properties/AndroidManifest.xml index 0ec5c06..7920cfd 100644 --- a/HDL-ON_Android/Properties/AndroidManifest.xml +++ b/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="202110112" android:versionName="1.2.202110112" package="com.hdl.onpro"> +<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="202110131" android:versionName="1.2.202110131" package="com.hdl.onpro"> <uses-sdk android:minSdkVersion="23" android:targetSdkVersion="28" /> <!-- 涔愭鍙瀵硅闇�瑕佺殑鏉冮檺 --> <!--<uses-permission android:name="android.permission.INTERNET" />--> diff --git a/HDL-ON_iOS/HDL-ON_iOS.csproj b/HDL-ON_iOS/HDL-ON_iOS.csproj index 1ea9ff9..c4e15fc 100644 --- a/HDL-ON_iOS/HDL-ON_iOS.csproj +++ b/HDL-ON_iOS/HDL-ON_iOS.csproj @@ -1353,6 +1353,9 @@ <BundleResource Include="Resources\Phone\Public\HookIcon.png" /> <BundleResource Include="Resources\Phone\Collection\MesCenter\Property.png" /> <BundleResource Include="Resources\Phone\Collection\MesCenter\PropertyOn.png" /> + <BundleResource Include="Resources\Phone\FunctionIcon\AirFresh\HumiIcon.png" /> + <BundleResource Include="Resources\Phone\FunctionIcon\AirFresh\btnCloseIcon.png" /> + <BundleResource Include="Resources\Phone\FunctionIcon\AirFresh\btnInfoIcon.png" /> </ItemGroup> <ItemGroup> <ITunesArtwork Include="iTunesArtwork" /> diff --git a/HDL-ON_iOS/Info.plist b/HDL-ON_iOS/Info.plist index b9cecc9..2922c21 100644 --- a/HDL-ON_iOS/Info.plist +++ b/HDL-ON_iOS/Info.plist @@ -100,9 +100,9 @@ <key>UIStatusBarStyle</key> <string>UIStatusBarStyleLightContent</string> <key>CFBundleShortVersionString</key> - <string>1.2.202109261</string> + <string>1.2.202110131</string> <key>CFBundleVersion</key> - <string>1.2.09261</string> + <string>1.2.10131</string> <key>NSLocationWhenInUseUsageDescription</key> <string>Use geographic location to provide services such as weather</string> <key>NSAppleMusicUsageDescription</key> diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/AirFresh/HumiIcon.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/AirFresh/HumiIcon.png new file mode 100644 index 0000000..59b2f44 --- /dev/null +++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/AirFresh/HumiIcon.png Binary files differ diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/AirFresh/btnCloseIcon.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/AirFresh/btnCloseIcon.png new file mode 100644 index 0000000..261e62c --- /dev/null +++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/AirFresh/btnCloseIcon.png Binary files differ diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/AirFresh/btnInfoIcon.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/AirFresh/btnInfoIcon.png new file mode 100644 index 0000000..416d299 --- /dev/null +++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/AirFresh/btnInfoIcon.png Binary files differ diff --git a/HDL_ON/DAL/DriverLayer/Control.cs b/HDL_ON/DAL/DriverLayer/Control.cs index d117157..4b93d06 100644 --- a/HDL_ON/DAL/DriverLayer/Control.cs +++ b/HDL_ON/DAL/DriverLayer/Control.cs @@ -1008,6 +1008,8 @@ case SPK.CurtainShades: break; case SPK.AcStandard: + case SPK.HvacAC: + case SPK.AcIr: Stan.HdlDeviceStatuPushLogic.Current.UpdateDeviceStatu(updateTemp.sid, updateTemp.status); if (localFunction != null) { @@ -1046,7 +1048,7 @@ break; } localFunction.lastState += " " + localFunction.GetAttrState(FunctionAttributeKey.SetTemp) + new AC().GetTempUnitString(localFunction); - ACPage.UpdataStates(localFunction); + } break; case SPK.HvacFloorHeat: @@ -1123,8 +1125,6 @@ case SPK.SensorSmoke: case SPK.SensorWater: case SPK.ClothesHanger: - case SPK.AcIr: - case SPK.HvacAC: case SPK.SenesorMegahealth: case SPK.SenesorMegahealth2: case SPK.AirFreshStandard: diff --git a/HDL_ON/DAL/DriverLayer/Control_Udp.cs b/HDL_ON/DAL/DriverLayer/Control_Udp.cs index 2179b3d..e5fb38e 100644 --- a/HDL_ON/DAL/DriverLayer/Control_Udp.cs +++ b/HDL_ON/DAL/DriverLayer/Control_Udp.cs @@ -198,6 +198,7 @@ } break; case SPK.AcStandard: + case SPK.HvacAC: AC acTemp = new AC(); byte onoff = 0; byte mode = 0; @@ -552,6 +553,7 @@ } break; case SPK.AcStandard: + case SPK.HvacAC: var ac = new AC(); foreach (var dic in commandDictionary) { @@ -742,6 +744,11 @@ } } //7 婀垮害璁惧畾 % + byte hum = 0; + if (commandDictionary.ContainsKey(FunctionAttributeKey.Humidity) == true) + { + hum = Convert.ToByte(commandDictionary[FunctionAttributeKey.Humidity]); + } //8 瀹ゅ唴娓╁害鍊� 鈩� byte indoorTemp_airFrsh = 0; if (commandDictionary.ContainsKey(FunctionAttributeKey.IndoorTemp) == true) @@ -760,7 +767,7 @@ function.bus.LoopId,0, switchValue , airFreshMode,airFreshEnergy, airFreshFan, - Convert.ToByte(function.GetAttrState(FunctionAttributeKey.Humidity)), + hum, indoorTemp_airFrsh, indoorHumidity_airFrsh, //Convert.ToByte( function.GetAttrState(FunctionAttributeKey.FilterRemain)), @@ -812,6 +819,7 @@ ControlBytesSend(Command.ReadCurtainStatus, subnetId, deviceId, new byte[] { function.bus.LoopId }); break; case SPK.AcStandard: + case SPK.HvacAC: ControlBytesSend(Command.ReadACMode, subnetId, deviceId, new byte[] { function.bus.LoopId }); break; case SPK.HvacFloorHeat:case SPK.FloorHeatStandard: diff --git a/HDL_ON/UI/MainPage.cs b/HDL_ON/UI/MainPage.cs index 31e48ec..1e4cb9e 100644 --- a/HDL_ON/UI/MainPage.cs +++ b/HDL_ON/UI/MainPage.cs @@ -25,7 +25,7 @@ /// <summary> /// 鐗堟湰鍙� /// </summary> - public static string VersionString = "1.2.1012"; + public static string VersionString = "1.2.1013"; ///// <summary> ///// 瀹㈡埛绔被鍨� ///// </summary> diff --git a/HDL_ON/UI/UI2/1-HomePage/HomePage.cs b/HDL_ON/UI/UI2/1-HomePage/HomePage.cs index e936a60..7de95a3 100644 --- a/HDL_ON/UI/UI2/1-HomePage/HomePage.cs +++ b/HDL_ON/UI/UI2/1-HomePage/HomePage.cs @@ -582,6 +582,25 @@ // }, //}); + + FunctionList.List.Functions.Add(new Function() + { + spk = SPK.HvacAirFreshJinmao, + name = "娴嬭瘯閲戣寕鏂伴", + attributes = new List<FunctionAttributes>() + { + new FunctionAttributes(){ key = "on_off",curValue= "on",state = "on" }, + new FunctionAttributes(){ key = "mode",curValue= "humidification",state = "humidification" ,value = new List<string>(){ "humidification", "fan" } }, + new FunctionAttributes(){ key = "energy",curValue= "true",state = "true" ,value = new List<string>(){ "true", "false" } }, + new FunctionAttributes(){ key = "fan",curValue= "level_1",state = "level_1" ,value = new List<string>(){ "level_1", "level_2", "level_3","auto" } }, + new FunctionAttributes(){ key = "humidity",curValue= "0",state = "0" ,value = new List<string>(){ },min = 0,max = 100 }, + new FunctionAttributes(){ key = "indoor_temp",curValue= "26",state = "26" ,value = new List<string>(){ },min = 0,max = 100 }, + new FunctionAttributes(){ key = "indoor_humidity",curValue= "0",state = "0" ,value = new List<string>(){ },min = 0,max = 100 }, + new FunctionAttributes(){ key = "filter_remain",curValue= "0",state = "0" ,value = new List<string>(){ },min = 0,max = 100 }, + new FunctionAttributes(){ key = "filter_timeout",curValue= "false",state = "false" ,value = new List<string>(){ "true", "false" }}, + }, + }); + //FunctionList.List.Functions.Add(new Function() //{ // spk = SPK.SensorGas, diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/ConditionDeviceFunList.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/ConditionDeviceFunList.cs index 4b91725..4d390cb 100644 --- a/HDL_ON/UI/UI2/3-Intelligence/Automation/ConditionDeviceFunList.cs +++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/ConditionDeviceFunList.cs @@ -59,6 +59,7 @@ case SPK.CurtainTrietex: //绌鸿皟 case SPK.AcStandard: + case SPK.HvacAC: //鍦扮儹 case SPK.FloorHeatStandard: case SPK.HvacFloorHeat: diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/InpOrOutLogicMethod.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/InpOrOutLogicMethod.cs index 5173eb6..02d31f8 100644 --- a/HDL_ON/UI/UI2/3-Intelligence/Automation/InpOrOutLogicMethod.cs +++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/InpOrOutLogicMethod.cs @@ -146,7 +146,7 @@ case SPK.CurtainRoller: case SPK.CurtainTrietex: //绌鸿皟 - case SPK.AcStandard: + case SPK.AcStandard:case SPK.HvacAC: //鍦扮儹 case SPK.HvacFloorHeat:case SPK.FloorHeatStandard: //鏂伴 @@ -978,6 +978,7 @@ } break; case SPK.AcStandard: + case SPK.HvacAC: { string on_off = GetKeyValue("on_off", dicList); string set_temp = GetKeyValue("set_temp", dicList); @@ -1436,6 +1437,7 @@ } break; case SPK.AcStandard: + case SPK.HvacAC: { foreach (var dic in dicList) { @@ -1990,6 +1992,7 @@ } break; case SPK.AcStandard: + case SPK.HvacAC: case SPK.FloorHeatStandard:case SPK.HvacFloorHeat: { foreach (var dic in dicList) diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicMethod.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicMethod.cs index bffa5c8..d521916 100644 --- a/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicMethod.cs +++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicMethod.cs @@ -335,6 +335,7 @@ } break; case SPK.AcStandard: + case SPK.HvacAC: { strPath = "LogicIcon/airconditionerlogic.png"; } @@ -407,7 +408,7 @@ deviceStrTypeList.Add(Language.StringByID(StringId.Curtain)); } - var ac = deviceList.Find((device) => device.spk == SPK.AcStandard); + var ac = deviceList.Find((device) => device.spk == SPK.AcStandard || device.spk == SPK.HvacAC); if (ac != null) { deviceStrTypeList.Add(Language.StringByID(StringId.AC)); @@ -476,6 +477,7 @@ else if (deviceType == Language.StringByID(StringId.AC)) { functionTypeList.Add(SPK.AcStandard); + functionTypeList.Add(SPK.HvacAC); } else if (deviceType == Language.StringByID(StringId.FloorHeating)) { @@ -532,8 +534,8 @@ deviceTypeList.Add(SPK.CurtainSwitch); deviceTypeList.Add(SPK.CurtainRoller); deviceTypeList.Add(SPK.CurtainTrietex); - deviceTypeList.Add(SPK.AcStandard); deviceTypeList.Add(SPK.HvacAirFresh); - deviceTypeList.Add(SPK.AirFreshStandard); + deviceTypeList.Add(SPK.AcStandard); deviceTypeList.Add(SPK.HvacAC); + deviceTypeList.Add(SPK.AirFreshStandard); deviceTypeList.Add(SPK.HvacAirFresh); deviceTypeList.Add(SPK.FloorHeatStandard); deviceTypeList.Add(SPK.HvacFloorHeat); deviceTypeList.Add(SPK.SensorSmoke); deviceTypeList.Add(SPK.SensorWater); @@ -568,9 +570,9 @@ deviceTypeList.Add(SPK.CurtainSwitch); deviceTypeList.Add(SPK.CurtainRoller); deviceTypeList.Add(SPK.CurtainTrietex); - deviceTypeList.Add(SPK.AcStandard); deviceTypeList.Add(SPK.HvacAirFresh); + deviceTypeList.Add(SPK.AcStandard); deviceTypeList.Add(SPK.HvacAC); deviceTypeList.Add(SPK.FloorHeatStandard); deviceTypeList.Add(SPK.HvacFloorHeat); - deviceTypeList.Add(SPK.AirFreshStandard); + deviceTypeList.Add(SPK.AirFreshStandard); deviceTypeList.Add(SPK.HvacAirFresh); } break; } diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/TargetDeviceFunList.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/TargetDeviceFunList.cs index 51ee8b6..dcbac35 100644 --- a/HDL_ON/UI/UI2/3-Intelligence/Automation/TargetDeviceFunList.cs +++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/TargetDeviceFunList.cs @@ -132,6 +132,7 @@ } break; case SPK.AcStandard: + case SPK.HvacAC: { #region 鐣岄潰 ///寮�鍏� @@ -437,6 +438,7 @@ } break; } + case SPK.HvacAC: case SPK.AcStandard: case SPK.FloorHeatStandard:case SPK.HvacFloorHeat: { diff --git a/HDL_ON/UI/UI2/FuntionControlView/1ContorlPage/AirFreshControlPage.cs b/HDL_ON/UI/UI2/FuntionControlView/1ContorlPage/AirFreshControlPage.cs index e0a5cfe..283d38c 100644 --- a/HDL_ON/UI/UI2/FuntionControlView/1ContorlPage/AirFreshControlPage.cs +++ b/HDL_ON/UI/UI2/FuntionControlView/1ContorlPage/AirFreshControlPage.cs @@ -37,6 +37,11 @@ /// </summary> private NormalViewControl btnFilterScreen = null; /// <summary> + /// 婊ょ綉浣跨敤瓒呮椂鎻愮ず + /// </summary> + FrameLayout filterScreenTipView; + + /// <summary> /// 鑺傝兘/鑸掗�傚浘鏍囨帶浠� /// </summary> private IconViewControl btnMode1 = null; @@ -60,6 +65,14 @@ /// 椋庨�熸枃鏈帶浠� /// </summary> private NormalViewControl btnFanView = null; + /// <summary> + /// 婀垮害璁剧疆鍥炬爣鎺т欢 + /// </summary> + private IconViewControl btnSetHumidity = null; + /// <summary> + /// 婀垮害璁剧疆鏂囨湰鎺т欢 + /// </summary> + private NormalViewControl btnSetHumidityView = null; /// <summary> /// 寮�鍏冲浘鏍� /// </summary> @@ -186,6 +199,52 @@ btnFilterScreen.TextColor = CSS_Color.MainColor; this.FrameWhiteCentet1.AddChidren(btnFilterScreen); + #region 婊ょ綉浣跨敤瓒呮椂鎻愰啋 + filterScreenTipView = new FrameLayout() + { + Y = btnFilterScreen.Bottom + Application.GetRealWidth(8), + Gravity = Gravity.CenterHorizontal, + Width = Application.GetRealWidth(295), + Height = Application.GetRealHeight(28), + Radius = (uint)Application.GetRealWidth(4), + BackgroundColor = 0xFFffE8E8, + Visible = false, + }; + this.FrameWhiteCentet1.AddChidren(filterScreenTipView); + + Button btnFilterScreenUseTip = new Button() + { + X = Application.GetRealWidth(8), + Gravity = Gravity.CenterVertical, + Width = Application.GetRealWidth(20), + Height = Application.GetRealWidth(20), + UnSelectedImagePath = "FunctionIcon/AirFresh/btnInfoIcon.png" + }; + filterScreenTipView.AddChidren(btnFilterScreenUseTip); + + Button btnFilterScreenUseTipText = new Button() + { + X = Application.GetRealWidth(32), + Width = Application.GetRealWidth(340), + TextAlignment = TextAlignment.CenterLeft, + TextColor = 0xFFFF4747, + TextSize = CSS_FontSize.PromptFontSize_FirstLevel, + }; + if(Language.CurrentLanguage == "Chinese") + { + btnFilterScreenUseTipText.Text = "杩囨护缃戜娇鐢ㄨ秴鏃�"; + } + else + { + btnFilterScreenUseTipText.Text = "Filter use timeout"; + } + filterScreenTipView.AddChidren(btnFilterScreenUseTipText); + + + #endregion + + + #region 鑺傝兘 //鑺傝兘/鑸掗�傚浘鏍� this.btnMode1 = new IconViewControl(28); btnMode1.X = Application.GetRealWidth(42); @@ -197,17 +256,20 @@ this.ShowMode1SelectView(); }; //鑺傝兘/鑸掗�傛枃鏈� - this.btnMode1View = new NormalViewControl(this.FrameWhiteCentet1.Width / 3, Application.GetRealHeight(18), false); + this.btnMode1View = new NormalViewControl(Application.GetRealWidth(72), Application.GetRealHeight(18), false); + btnMode1View.X = Application.GetRealWidth(21); btnMode1View.Y = btnMode1.Bottom + Application.GetRealHeight(6); btnMode1View.TextAlignment = TextAlignment.Center; btnMode1View.TextSize = CSS_FontSize.PromptFontSize_FirstLevel; btnMode1View.TextColor = CSS_Color.TextualColor; this.FrameWhiteCentet1.AddChidren(btnMode1View); + #endregion + #region 妯″紡 //閫氶/鍔犳箍鍥炬爣 this.btnMode2 = new IconViewControl(28); btnMode2.Y = btnMode1.Y; - btnMode2.Gravity = Gravity.CenterHorizontal; + btnMode2.X = Application.GetRealWidth(114); this.FrameWhiteCentet1.AddChidren(btnMode2); btnMode2.ButtonClickEvent += (sender, e) => { @@ -215,17 +277,20 @@ this.ShowMode2SelectView(); }; //閫氶/鍔犳箍鏂囨湰 - this.btnMode2View = new NormalViewControl(this.FrameWhiteCentet1.Width / 3, Application.GetRealHeight(18), false); + this.btnMode2View = new NormalViewControl(Application.GetRealWidth(72), Application.GetRealHeight(18), false); btnMode2View.X = btnMode1View.Right; btnMode2View.Y = btnMode2.Bottom + Application.GetRealHeight(6); btnMode2View.TextAlignment = TextAlignment.Center; btnMode2View.TextSize = CSS_FontSize.PromptFontSize_FirstLevel; btnMode2View.TextColor = CSS_Color.TextualColor; this.FrameWhiteCentet1.AddChidren(btnMode2View); + #endregion + #region 椋庨�� //椋庨�熷浘鏍� this.btnFan = new IconViewControl(28); - btnFan.X = this.FrameWhiteCentet1.Width - btnMode1.X - btnFan.IconSize; + //btnFan.X = this.FrameWhiteCentet1.Width - btnMode1.X - btnFan.IconSize; + btnFan.X = Application.GetRealWidth(186); btnFan.Y = btnMode1.Y; this.FrameWhiteCentet1.AddChidren(btnFan); btnFan.ButtonClickEvent += (sender, e) => @@ -234,13 +299,38 @@ this.ShowFanSelectView(); }; //椋庨�熸枃鏈� - this.btnFanView = new NormalViewControl(this.FrameWhiteCentet1.Width / 3, Application.GetRealHeight(18), false); + this.btnFanView = new NormalViewControl(Application.GetRealWidth(72), Application.GetRealHeight(18), false); btnFanView.X = btnMode2View.Right; btnFanView.Y = btnFan.Bottom + Application.GetRealHeight(6); btnFanView.TextAlignment = TextAlignment.Center; btnFanView.TextSize = CSS_FontSize.PromptFontSize_FirstLevel; btnFanView.TextColor = CSS_Color.TextualColor; this.FrameWhiteCentet1.AddChidren(btnFanView); + #endregion + + + #region 婀垮害 + //婀垮害鍥炬爣 + this.btnSetHumidity = new IconViewControl(28); + btnSetHumidity.X = this.FrameWhiteCentet1.Width - btnMode1.X - btnSetHumidity.IconSize; + btnSetHumidity.Y = btnMode1.Y; + btnSetHumidity.UnSelectedImagePath = "FunctionIcon/AirFresh/HumiIcon.png"; + this.FrameWhiteCentet1.AddChidren(btnSetHumidity); + + btnSetHumidity.ButtonClickEvent += (sender, e) => + { + LoadEditDialog_Humi(); + }; + //婀垮害鏂囨湰 + this.btnSetHumidityView = new NormalViewControl(Application.GetRealWidth(72), Application.GetRealHeight(18), false); + btnSetHumidityView.X = btnFanView.Right; + btnSetHumidityView.Y = btnSetHumidity.Bottom + Application.GetRealHeight(6); + btnSetHumidityView.TextAlignment = TextAlignment.Center; + btnSetHumidityView.TextSize = CSS_FontSize.PromptFontSize_FirstLevel; + btnSetHumidityView.TextColor = CSS_Color.TextualColor; + btnSetHumidityView.Text = "0%"; + this.FrameWhiteCentet1.AddChidren(btnSetHumidityView); + #endregion //寮�鍏冲浘鏍� this.btnSwitch = new IconViewControl(32); @@ -329,7 +419,7 @@ //鑿滃崟鎺т欢(妯″紡) var menuContr = new DialogTitleMenuControl(2, Language.StringByID(StringId.Mode)); menuContr.Y = Application.GetRealHeight(277); - menuContr.Gravity = Gravity.CenterHorizontal; + menuContr.X = Application.GetRealWidth(72); menuContr.Width = Application.GetRealWidth(160); menuContr.Height = Application.GetRealHeight(154); dialogBody.AddChidren(menuContr); @@ -355,6 +445,132 @@ #endregion + + /// <summary> + /// 鍔犺浇婀垮害閫夋嫨寮圭獥 + /// </summary> + /// <param name="function"></param> + /// <param name="btn"></param> + void LoadEditDialog_Humi() + { + List<string> pickerItems = new List<string>(); + + Dialog dialog = new Dialog(); + + var pView = new FrameLayout() + { + BackgroundColor = CSS_Color.DialogTransparentColor1, + }; + dialog.AddChidren(pView); + + var optionBaseView = new FrameLayout() + { + Y = Application.GetRealHeight(456 - 60), + Gravity = Gravity.CenterHorizontal, + Width = Application.GetRealWidth(343), + Height = Application.GetRealHeight(260), + AnimateSpeed = 0.3f, + Animate = Animate.DownToUp, + BackgroundColor = CSS_Color.MainBackgroundColor, + Radius = (uint)Application.GetRealWidth(12), + }; + pView.AddChidren(optionBaseView); + + var topView = new FrameLayout() + { + Gravity = Gravity.CenterHorizontal, + Width = Application.GetRealWidth(343), + Height = Application.GetRealHeight(40), + BackgroundColor = CSS_Color.MainBackgroundColor, + Radius = (uint)Application.GetRealWidth(12), + }; + optionBaseView.AddChidren(topView); + topView.AddChidren(new Button() { Y = Application.GetRealHeight(39), Height = Application.GetRealHeight(1), BackgroundColor = CSS_Color.DividingLineColor }); + + var btnTilteText = new Button() + { + Width = Application.GetRealWidth(200), + Gravity = Gravity.CenterHorizontal, + TextAlignment = TextAlignment.Center, + TextSize = CSS_FontSize.SubheadingFontSize, + IsBold = true, + TextColor = CSS_Color.FirstLevelTitleColor, + }; + if(Language.CurrentLanguage == "Chinese") + { + btnTilteText.Text = "婀垮害璁惧畾"; + } + else + { + btnTilteText.Text = "Humidity setting"; + } + topView.AddChidren(btnTilteText); + + var btnCancel = new Button() + { + X = Application.GetRealWidth(21), + Width = Application.GetRealWidth(100), + TextAlignment = TextAlignment.CenterLeft, + TextColor = CSS_Color.PromptingColor1, + TextSize = CSS_FontSize.TextFontSize, + TextID = StringId.Cancel, + }; + topView.AddChidren(btnCancel); + + var btnConfrim = new Button() + { + Width = Application.GetRealWidth(320), + TextAlignment = TextAlignment.CenterRight, + TextColor = CSS_Color.MainColor, + TextSize = CSS_FontSize.TextFontSize, + TextID = StringId.Confirm, + }; + topView.AddChidren(btnConfrim); + + UIPickerView uIPickerView = new UIPickerView() + { + Y = Application.GetRealHeight(40), + Height = Application.GetRealHeight(210), + Radius = (uint)Application.GetRealWidth(12), + }; + for (int i = 0; i <= 100; i ++) + { + pickerItems.Add(i.ToString()); + } + uIPickerView.setNPicker(pickerItems, null, null); + optionBaseView.AddChidren(uIPickerView); + //uIPickerView.setCurrentItems(pickerItems.IndexOf(trait.value.ToString()), 4, 5); + + string selectItem = pickerItems[0]; + //if (pickerItems.Contains(trait.value + trait.GetUintString())) + //{ + // selectItem = trait.value.ToString() + trait.GetUintString(); + //} + + dialog.Show(); + + pView.MouseUpEventHandler = (sender, e) => { + dialog.Close(); + }; + + btnCancel.MouseUpEventHandler = (sender, e) => { + dialog.Close(); + }; + uIPickerView.OnSelectChangeEvent = (int1, int2, int3) => { + selectItem = pickerItems[int1]; + }; + btnConfrim.MouseUpEventHandler = (sender, e) => { + dialog.Close(); + this.SendOtherComand(this.btnSetHumidity, FunctionAttributeKey.Humidity, selectItem); + this.btnSetHumidityView.Text = selectItem + "%"; + //btn.Text = selectItem; + //sceneFunction.status.Find((obj) => obj.key == FunctionAttributeKey.OnOff).value = trait.value.ToString() ; + //trait.value = selectItem.Replace(trait.GetUintString(), ""); + }; + + } + + #region 鈻� 鏄剧ず椋庨�熼�夋嫨鐣岄潰___________________ /// <summary> @@ -375,7 +591,7 @@ //鑿滃崟鎺т欢(椋庨��) var menuContr = new DialogTitleMenuControl(3, Language.StringByID(StringId.FanSpeed)); - menuContr.X = Application.GetRealWidth(209); + menuContr.X = Application.GetRealWidth(80+62); menuContr.Y = Application.GetRealHeight(231); menuContr.Width = Application.GetRealWidth(160); menuContr.Height = Application.GetRealHeight(199); @@ -441,6 +657,12 @@ this.btnSwitch.IsSelected = this.airFreshData.Open; //婊ょ綉鍓╀綑 this.btnFilterScreen.Text = this.dicText["婊ょ綉鍓╀綑"] + this.airFreshData.Filter_remain + "%"; + + if(this.airFreshData.Filter_timeout) + { + this.filterScreenTipView.Visible = true; + } + //瀹ゅ唴婀垮害 if (this.btnHumidity.Text == string.Empty || Convert.ToDecimal(this.btnHumidity.Text) != this.airFreshData.Indoor_humidity) @@ -516,6 +738,8 @@ } this.btnFan.IsSelected = this.airFreshData.Open; this.btnFan.CanClick = this.airFreshData.Open; + + this.btnSetHumidityView.Text = this.airFreshData.Humidity.ToString() + "%"; } #endregion @@ -581,6 +805,8 @@ dic[FunctionAttributeKey.Energy] = this.airFreshData.Energy; //椋庨�� dic[FunctionAttributeKey.FanSpeed] = this.airFreshData.Fan ; + //婀垮害 + dic[FunctionAttributeKey.Humidity] = this.airFreshData.Humidity.ToString(); //瀹ゅ唴娓╁害 dic[FunctionAttributeKey.IndoorTemp] = this.airFreshData.Indoor_temp.ToString(); ///瀹ゅ唴婀垮害 @@ -641,6 +867,14 @@ this.airFreshData.Filter_remain = Convert.ToInt32(data.state); } } + //杩囨护缃戞槸鍚﹁秴鏃惰鍛� + else if (data.key == FunctionAttributeKey.FilterTimeout) + { + if(data.state != string.Empty) + { + this.airFreshData.Filter_timeout = Convert.ToBoolean(data.state); + } + } } } @@ -685,6 +919,10 @@ /// 鍓╀綑婊ょ綉(%) /// </summary> public int Filter_remain = 0; + /// <summary> + /// 杩囨护缃戞槸鍚﹁秴鏃惰鍛� + /// </summary> + public bool Filter_timeout = false; } #endregion diff --git a/HDL_ON/UI/UI2/FuntionControlView/ArmCenter/AddInputPage.cs b/HDL_ON/UI/UI2/FuntionControlView/ArmCenter/AddInputPage.cs index 969d913..167b453 100644 --- a/HDL_ON/UI/UI2/FuntionControlView/ArmCenter/AddInputPage.cs +++ b/HDL_ON/UI/UI2/FuntionControlView/ArmCenter/AddInputPage.cs @@ -86,7 +86,7 @@ functionListView = new VerticalScrolViewLayout() { Y = showdFunctionTypeRow.Bottom, - Height = Application.GetRealHeight(530), + Height = Application.GetRealHeight(530-60), BackgroundColor = CSS_Color.BackgroundColor, }; bodyView.AddChidren(functionListView); @@ -168,7 +168,8 @@ switch(function.spk) { case SPK.SensorWater: - inKey = ""; + inKey = "alarm_status"; + inValue = "alarm"; break; case SPK.SensorPir: inKey = "people_status"; -- Gitblit v1.8.0