From 2be70a32d2a8c517bd9868fb60913fcc843e66fe Mon Sep 17 00:00:00 2001
From: 黄学彪 <hxb@hdlchina.com.cn>
Date: 星期三, 13 五月 2020 11:21:32 +0800
Subject: [PATCH] 上传代码

---
 ZigbeeApp/Shared/Phone/Device/Logic/LogicView/TipView.cs                                                |   20 
 ZigbeeApp/Home.Ios/Resources/Phone/RealDevice/SensorPMTwoPointFive.png                                  |    0 
 ZigbeeApp/GateWay.Droid/Assets/Language.ini                                                             |    3 
 ZigbeeApp/GateWay.Droid/Resources/Resource.designer.cs                                                  | 1172 ++++++++++++++++---------------
 ZigbeeApp/Home.Ios/Resources/Language.ini                                                               |    3 
 ZigbeeApp/GateWay.Droid/Assets/Phone/PM2.5Sensor/PmPic.png                                              |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/PM2.5Sensor/HumidityPic.png                                        |    0 
 ZigbeeApp/Home.Ios/Home.IOS.csproj                                                                      |    7 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/AirQualitySensorEpointSelected2.png                         |    0 
 ZigbeeApp/GateWay.Droid/GateWay.Droid.csproj                                                            |   21 
 ZigbeeApp/Home.Ios/Resources/Phone/Device/AirQualitySensorEpointSelected2.png                           |    0 
 ZigbeeApp/Shared/Phone/UserCenter/Safety/AlarmTargetAddMenuForm.cs                                      |    2 
 ZigbeeApp/Shared/R.cs                                                                                   |   12 
 ZigbeeApp/Home.Ios/Resources/Phone/PM2.5Sensor/PmPic.png                                                |    0 
 ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceMacInfoEditorForm.cs                                     |   34 
 ZigbeeApp/Shared/Phone/Device/Logic/SkipView.cs                                                         |    2 
 ZigbeeApp/Home.Ios/Resources/Phone/PM2.5Sensor/HumidityPic.png                                          |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/AirQualitySensorEpointSelected.png                          |    0 
 ZigbeeApp/Shared/Phone/Category/AdjustTargetAddDeviceForm.cs                                            |    2 
 ZigbeeApp/Shared/Phone/Category/CategoryMainForm.cs                                                     |   12 
 ZigbeeApp/Shared/Common/Device.cs                                                                       |   52 +
 ZigbeeApp/Shared/Phone/Device/Logic/SoneLogicList.cs                                                    |  225 +++---
 ZigbeeApp/GateWay.Droid/Assets/Phone/PM2.5Sensor/TemperaturePic.png                                     |    0 
 ZigbeeApp/Shared/Phone/UserCenter/DoorLock/DoorLockCommonInfo.cs                                        |   18 
 ZigbeeApp/Home.Ios/Resources/Phone/PM2.5Sensor/TemperaturePic.png                                       |    0 
 ZigbeeApp/Shared/Phone/Category/Controls/DeviceRow/DevicePmSensorRowControl.cs                          |   58 +
 ZigbeeApp/Shared/Phone/MainPage/ControlForm/DevicePmSensorDetailCardForm.cs                             |  279 +++++++
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/AirQualitySensorEpoint.png                                  |    0 
 ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelFangyueFreshAirBackLightSettionForm.cs              |   59 +
 ZigbeeApp/Shared/Phone/MainPage/ControlForm/DeviceFreshAirDetailCardForm.cs                             |  133 ++
 ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceFunctionSettionForm.cs                                   |   15 
 ZigbeeApp/Shared/Shared.projitems                                                                       |    2 
 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/RowLayoutControls/DeviceFunctionTypeRowControl.cs |    7 
 ZigbeeApp/Home.Ios/Resources/Phone/Device/SensorPMTwoPointFive.png                                      |    0 
 ZigbeeApp/Shared/Phone/MainPage/UnallocatedRoomForm.cs                                                  |    2 
 ZigbeeApp/Home.Ios/Resources/Phone/Device/AirQualitySensorEpointSelected.png                            |    0 
 ZigbeeApp/Shared/Phone/ZigBee/Device/CommonDevice.cs                                                    |   12 
 ZigbeeApp/GateWay.Droid/Assets/Phone/RealDevice/SensorPMTwoPointFive.png                                |    0 
 ZigbeeApp/Shared/Phone/UserCenter/Residence/LookRoomSettionForm.cs                                      |    2 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorPMTwoPointFive.png                                    |    0 
 ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelFangyueFreshAirTargetsForm.cs                       |   25 
 ZigbeeApp/Home.Ios/Resources/Phone/Device/AirQualitySensorEpoint.png                                    |    0 
 ZigbeeApp/Shared/Phone/ZigBee/Device/PMSensor.cs                                                        |   18 
 43 files changed, 1,428 insertions(+), 769 deletions(-)

diff --git a/ZigbeeApp/GateWay.Droid/Assets/Language.ini b/ZigbeeApp/GateWay.Droid/Assets/Language.ini
index 9cc5450..134a3fe 100755
--- a/ZigbeeApp/GateWay.Droid/Assets/Language.ini
+++ b/ZigbeeApp/GateWay.Droid/Assets/Language.ini
@@ -315,6 +315,8 @@
 312= 鑳屽厜鐏鑹�
 313=闀挎寜鍥剧ず鎸夐敭5绉掍互涓婏紝淇″彿鍥炬爣{0}蹇棯锛� 杩涘叆閰嶇綉鐘舵�併�備俊鍙峰浘鏍囧父浜垯閰嶇綉鎴愬姛
 314=鑷姩妯″紡涓嶆敮鎸佹搷浣�
+315=绌烘皵璐ㄩ噺
+316=绌烘皵璐ㄩ噺浼犳劅鍣�
 
 5097=鍙栨秷
 5098=纭畾
@@ -1994,6 +1996,7 @@
 40016=鐏厜
 40017=骞叉帴鐐�
 40018=鏂伴
+40019=绌烘皵璐ㄩ噺
 
 ;鈽呪槄鈽呪槄涓嬮潰杩欎簺鏄ā鍧桰D鐨勮澶囬粯璁ゅ娉ㄥ悕瀛�,浠�50000寮�濮�.娉�:瀹冨苟涓嶉渶瑕佸啀R.cs鏂囦欢涓畾涔夆槄鈽呪槄鈽�
 50000=绱ф�ユ寜閽�
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/AirQualitySensorEpoint.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/AirQualitySensorEpoint.png
new file mode 100755
index 0000000..45505ef
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/AirQualitySensorEpoint.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/AirQualitySensorEpointSelected.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/AirQualitySensorEpointSelected.png
new file mode 100755
index 0000000..1b29393
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/AirQualitySensorEpointSelected.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/AirQualitySensorEpointSelected2.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/AirQualitySensorEpointSelected2.png
new file mode 100755
index 0000000..ea2a043
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/AirQualitySensorEpointSelected2.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorPMTwoPointFive.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorPMTwoPointFive.png
index 32335b9..c565f13 100755
--- a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorPMTwoPointFive.png
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorPMTwoPointFive.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/PM2.5Sensor/HumidityPic.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/PM2.5Sensor/HumidityPic.png
new file mode 100755
index 0000000..41c0a55
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/PM2.5Sensor/HumidityPic.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/PM2.5Sensor/PmPic.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/PM2.5Sensor/PmPic.png
new file mode 100755
index 0000000..dda5009
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/PM2.5Sensor/PmPic.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/PM2.5Sensor/TemperaturePic.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/PM2.5Sensor/TemperaturePic.png
new file mode 100755
index 0000000..72cf579
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/PM2.5Sensor/TemperaturePic.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/RealDevice/SensorPMTwoPointFive.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/RealDevice/SensorPMTwoPointFive.png
new file mode 100755
index 0000000..de0004d
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/RealDevice/SensorPMTwoPointFive.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/GateWay.Droid.csproj b/ZigbeeApp/GateWay.Droid/GateWay.Droid.csproj
index 5bb1fe3..f74407e 100644
--- a/ZigbeeApp/GateWay.Droid/GateWay.Droid.csproj
+++ b/ZigbeeApp/GateWay.Droid/GateWay.Droid.csproj
@@ -2140,6 +2140,27 @@
   <ItemGroup>
     <AndroidAsset Include="Assets\Phone\ZigeeLogic\nextIconSone.png" />
   </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\Device\AirQualitySensorEpoint.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\Device\AirQualitySensorEpointSelected.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\Device\AirQualitySensorEpointSelected2.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\RealDevice\SensorPMTwoPointFive.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\PM2.5Sensor\HumidityPic.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\PM2.5Sensor\PmPic.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\PM2.5Sensor\TemperaturePic.png" />
+  </ItemGroup>
   <Import Project="..\Shared\Shared.projitems" Label="Shared" Condition="Exists('..\Shared\Shared.projitems')" />
   <Import Project="$(MSBuildExtensionsPath)\Xamarin\Android\Xamarin.Android.CSharp.targets" />
   <Import Project="..\packages\Xamarin.Android.Support.Annotations.26.0.2\build\MonoAndroid80\Xamarin.Android.Support.Annotations.targets" Condition="Exists('..\packages\Xamarin.Android.Support.Annotations.26.0.2\build\MonoAndroid80\Xamarin.Android.Support.Annotations.targets')" />
diff --git a/ZigbeeApp/GateWay.Droid/Resources/Resource.designer.cs b/ZigbeeApp/GateWay.Droid/Resources/Resource.designer.cs
index d393349..09d3931 100644
--- a/ZigbeeApp/GateWay.Droid/Resources/Resource.designer.cs
+++ b/ZigbeeApp/GateWay.Droid/Resources/Resource.designer.cs
@@ -2979,665 +2979,698 @@
 		public partial class Id
 		{
 			
-			// aapt resource value: 0x7F09000E
-			public const int action0 = 2131296270;
-			
-			// aapt resource value: 0x7F090020
-			public const int actions = 2131296288;
-			
-			// aapt resource value: 0x7F09000F
-			public const int action_bar = 2131296271;
-			
-			// aapt resource value: 0x7F090010
-			public const int action_bar_activity_content = 2131296272;
-			
-			// aapt resource value: 0x7F090011
-			public const int action_bar_container = 2131296273;
-			
-			// aapt resource value: 0x7F090012
-			public const int action_bar_root = 2131296274;
-			
-			// aapt resource value: 0x7F090013
-			public const int action_bar_spinner = 2131296275;
-			
-			// aapt resource value: 0x7F090014
-			public const int action_bar_subtitle = 2131296276;
-			
 			// aapt resource value: 0x7F090015
-			public const int action_bar_title = 2131296277;
+			public const int action0 = 2131296277;
+			
+			// aapt resource value: 0x7F090027
+			public const int actions = 2131296295;
 			
 			// aapt resource value: 0x7F090016
-			public const int action_container = 2131296278;
+			public const int action_bar = 2131296278;
 			
 			// aapt resource value: 0x7F090017
-			public const int action_context_bar = 2131296279;
+			public const int action_bar_activity_content = 2131296279;
 			
 			// aapt resource value: 0x7F090018
-			public const int action_divider = 2131296280;
+			public const int action_bar_container = 2131296280;
 			
 			// aapt resource value: 0x7F090019
-			public const int action_image = 2131296281;
+			public const int action_bar_root = 2131296281;
 			
 			// aapt resource value: 0x7F09001A
-			public const int action_menu_divider = 2131296282;
+			public const int action_bar_spinner = 2131296282;
 			
 			// aapt resource value: 0x7F09001B
-			public const int action_menu_presenter = 2131296283;
+			public const int action_bar_subtitle = 2131296283;
 			
 			// aapt resource value: 0x7F09001C
-			public const int action_mode_bar = 2131296284;
+			public const int action_bar_title = 2131296284;
 			
 			// aapt resource value: 0x7F09001D
-			public const int action_mode_bar_stub = 2131296285;
+			public const int action_container = 2131296285;
 			
 			// aapt resource value: 0x7F09001E
-			public const int action_mode_close_button = 2131296286;
+			public const int action_context_bar = 2131296286;
 			
 			// aapt resource value: 0x7F09001F
-			public const int action_text = 2131296287;
+			public const int action_divider = 2131296287;
+			
+			// aapt resource value: 0x7F090020
+			public const int action_image = 2131296288;
 			
 			// aapt resource value: 0x7F090021
-			public const int activity_chooser_view_content = 2131296289;
+			public const int action_menu_divider = 2131296289;
 			
 			// aapt resource value: 0x7F090022
-			public const int add = 2131296290;
+			public const int action_menu_presenter = 2131296290;
 			
 			// aapt resource value: 0x7F090023
-			public const int alertTitle = 2131296291;
+			public const int action_mode_bar = 2131296291;
 			
 			// aapt resource value: 0x7F090024
-			public const int all = 2131296292;
+			public const int action_mode_bar_stub = 2131296292;
+			
+			// aapt resource value: 0x7F090025
+			public const int action_mode_close_button = 2131296293;
+			
+			// aapt resource value: 0x7F090026
+			public const int action_text = 2131296294;
+			
+			// aapt resource value: 0x7F090028
+			public const int activity_chooser_view_content = 2131296296;
+			
+			// aapt resource value: 0x7F090029
+			public const int add = 2131296297;
+			
+			// aapt resource value: 0x7F09002A
+			public const int alertTitle = 2131296298;
+			
+			// aapt resource value: 0x7F09002B
+			public const int all = 2131296299;
 			
 			// aapt resource value: 0x7F090000
 			public const int ALT = 2131296256;
 			
-			// aapt resource value: 0x7F090025
-			public const int always = 2131296293;
-			
-			// aapt resource value: 0x7F090026
-			public const int async = 2131296294;
-			
-			// aapt resource value: 0x7F090027
-			public const int auto = 2131296295;
-			
-			// aapt resource value: 0x7F090028
-			public const int beginning = 2131296296;
-			
-			// aapt resource value: 0x7F090029
-			public const int blocking = 2131296297;
-			
-			// aapt resource value: 0x7F09002A
-			public const int bottom = 2131296298;
-			
-			// aapt resource value: 0x7F09002B
-			public const int btnCancel = 2131296299;
-			
 			// aapt resource value: 0x7F09002C
-			public const int btnSubmit = 2131296300;
+			public const int always = 2131296300;
 			
 			// aapt resource value: 0x7F09002D
-			public const int buttonPanel = 2131296301;
+			public const int async = 2131296301;
 			
 			// aapt resource value: 0x7F09002E
-			public const int cancel_action = 2131296302;
+			public const int auto = 2131296302;
 			
 			// aapt resource value: 0x7F09002F
-			public const int center = 2131296303;
+			public const int beginning = 2131296303;
 			
 			// aapt resource value: 0x7F090030
-			public const int center_horizontal = 2131296304;
+			public const int blocking = 2131296304;
 			
 			// aapt resource value: 0x7F090031
-			public const int center_vertical = 2131296305;
+			public const int bottom = 2131296305;
 			
 			// aapt resource value: 0x7F090032
-			public const int checkbox = 2131296306;
+			public const int btnCancel = 2131296306;
 			
 			// aapt resource value: 0x7F090033
-			public const int chronometer = 2131296307;
+			public const int btnSubmit = 2131296307;
 			
 			// aapt resource value: 0x7F090034
-			public const int clip_horizontal = 2131296308;
+			public const int buttonPanel = 2131296308;
 			
 			// aapt resource value: 0x7F090035
-			public const int clip_vertical = 2131296309;
+			public const int cancel_action = 2131296309;
 			
 			// aapt resource value: 0x7F090036
-			public const int collapseActionView = 2131296310;
+			public const int center = 2131296310;
 			
 			// aapt resource value: 0x7F090037
-			public const int container = 2131296311;
+			public const int center_horizontal = 2131296311;
 			
 			// aapt resource value: 0x7F090038
-			public const int contentFrame = 2131296312;
+			public const int center_vertical = 2131296312;
 			
 			// aapt resource value: 0x7F090039
-			public const int contentPanel = 2131296313;
+			public const int checkbox = 2131296313;
 			
 			// aapt resource value: 0x7F09003A
-			public const int content_container = 2131296314;
+			public const int chronometer = 2131296314;
 			
 			// aapt resource value: 0x7F09003B
-			public const int coordinator = 2131296315;
+			public const int clip_horizontal = 2131296315;
+			
+			// aapt resource value: 0x7F09003C
+			public const int clip_vertical = 2131296316;
+			
+			// aapt resource value: 0x7F09003D
+			public const int collapseActionView = 2131296317;
+			
+			// aapt resource value: 0x7F09003E
+			public const int container = 2131296318;
+			
+			// aapt resource value: 0x7F09003F
+			public const int contentFrame = 2131296319;
+			
+			// aapt resource value: 0x7F090040
+			public const int contentPanel = 2131296320;
+			
+			// aapt resource value: 0x7F090041
+			public const int content_container = 2131296321;
+			
+			// aapt resource value: 0x7F090042
+			public const int coordinator = 2131296322;
 			
 			// aapt resource value: 0x7F090001
 			public const int CTRL = 2131296257;
 			
-			// aapt resource value: 0x7F09003C
-			public const int custom = 2131296316;
-			
-			// aapt resource value: 0x7F09003D
-			public const int customPanel = 2131296317;
-			
-			// aapt resource value: 0x7F09003E
-			public const int day = 2131296318;
-			
-			// aapt resource value: 0x7F09003F
-			public const int decor_content_parent = 2131296319;
-			
-			// aapt resource value: 0x7F090040
-			public const int default_activity_button = 2131296320;
-			
-			// aapt resource value: 0x7F090041
-			public const int description = 2131296321;
-			
-			// aapt resource value: 0x7F090042
-			public const int design_bottom_sheet = 2131296322;
+			// aapt resource value: 0x7F090002
+			public const int Custom = 2131296258;
 			
 			// aapt resource value: 0x7F090043
-			public const int design_menu_item_action_area = 2131296323;
-			
-			// aapt resource value: 0x7F090044
-			public const int design_menu_item_action_area_stub = 2131296324;
-			
-			// aapt resource value: 0x7F090045
-			public const int design_menu_item_text = 2131296325;
-			
-			// aapt resource value: 0x7F090046
-			public const int design_navigation_view = 2131296326;
-			
-			// aapt resource value: 0x7F090047
-			public const int disableHome = 2131296327;
-			
-			// aapt resource value: 0x7F090048
-			public const int edit_query = 2131296328;
-			
-			// aapt resource value: 0x7F090049
-			public const int end = 2131296329;
-			
-			// aapt resource value: 0x7F09004A
-			public const int end_padder = 2131296330;
-			
-			// aapt resource value: 0x7F09004B
-			public const int enterAlways = 2131296331;
-			
-			// aapt resource value: 0x7F09004C
-			public const int enterAlwaysCollapsed = 2131296332;
-			
-			// aapt resource value: 0x7F09004D
-			public const int exitUntilCollapsed = 2131296333;
-			
-			// aapt resource value: 0x7F09004F
-			public const int expanded_menu = 2131296335;
-			
-			// aapt resource value: 0x7F09004E
-			public const int expand_activities_button = 2131296334;
-			
-			// aapt resource value: 0x7F090050
-			public const int fill = 2131296336;
-			
-			// aapt resource value: 0x7F090002
-			public const int FILL = 2131296258;
-			
-			// aapt resource value: 0x7F090051
-			public const int fill_horizontal = 2131296337;
+			public const int custom = 2131296323;
 			
 			// aapt resource value: 0x7F090003
-			public const int FILL_STROKE = 2131296259;
+			public const int CustomLabel = 2131296259;
+			
+			// aapt resource value: 0x7F090044
+			public const int customPanel = 2131296324;
+			
+			// aapt resource value: 0x7F090045
+			public const int day = 2131296325;
+			
+			// aapt resource value: 0x7F090046
+			public const int decor_content_parent = 2131296326;
+			
+			// aapt resource value: 0x7F090047
+			public const int default_activity_button = 2131296327;
+			
+			// aapt resource value: 0x7F090048
+			public const int description = 2131296328;
+			
+			// aapt resource value: 0x7F090049
+			public const int design_bottom_sheet = 2131296329;
+			
+			// aapt resource value: 0x7F09004A
+			public const int design_menu_item_action_area = 2131296330;
+			
+			// aapt resource value: 0x7F09004B
+			public const int design_menu_item_action_area_stub = 2131296331;
+			
+			// aapt resource value: 0x7F09004C
+			public const int design_menu_item_text = 2131296332;
+			
+			// aapt resource value: 0x7F09004D
+			public const int design_navigation_view = 2131296333;
+			
+			// aapt resource value: 0x7F09004E
+			public const int disableHome = 2131296334;
+			
+			// aapt resource value: 0x7F09004F
+			public const int edit_query = 2131296335;
+			
+			// aapt resource value: 0x7F090050
+			public const int end = 2131296336;
+			
+			// aapt resource value: 0x7F090051
+			public const int end_padder = 2131296337;
 			
 			// aapt resource value: 0x7F090052
-			public const int fill_vertical = 2131296338;
+			public const int enterAlways = 2131296338;
 			
 			// aapt resource value: 0x7F090053
-			public const int fingerprint_icon = 2131296339;
+			public const int enterAlwaysCollapsed = 2131296339;
 			
 			// aapt resource value: 0x7F090054
-			public const int @fixed = 2131296340;
-			
-			// aapt resource value: 0x7F090005
-			public const int FixedBehind = 2131296261;
-			
-			// aapt resource value: 0x7F090006
-			public const int FixedFront = 2131296262;
-			
-			// aapt resource value: 0x7F090055
-			public const int forever = 2131296341;
-			
-			// aapt resource value: 0x7F090004
-			public const int FUNCTION = 2131296260;
+			public const int exitUntilCollapsed = 2131296340;
 			
 			// aapt resource value: 0x7F090056
-			public const int gd_btn_back = 2131296342;
+			public const int expanded_menu = 2131296342;
+			
+			// aapt resource value: 0x7F090055
+			public const int expand_activities_button = 2131296341;
 			
 			// aapt resource value: 0x7F090057
-			public const int gd_btn_myLocation = 2131296343;
+			public const int fill = 2131296343;
+			
+			// aapt resource value: 0x7F090004
+			public const int FILL = 2131296260;
 			
 			// aapt resource value: 0x7F090058
-			public const int gd_btn_save = 2131296344;
+			public const int fill_horizontal = 2131296344;
+			
+			// aapt resource value: 0x7F090005
+			public const int FILL_STROKE = 2131296261;
 			
 			// aapt resource value: 0x7F090059
-			public const int gd_img_search_delete = 2131296345;
+			public const int fill_vertical = 2131296345;
 			
 			// aapt resource value: 0x7F09005A
-			public const int gd_ll_myhome = 2131296346;
+			public const int fingerprint_icon = 2131296346;
 			
 			// aapt resource value: 0x7F09005B
-			public const int gd_ll_search = 2131296347;
-			
-			// aapt resource value: 0x7F09005C
-			public const int gd_mapView = 2131296348;
-			
-			// aapt resource value: 0x7F09005D
-			public const int gd_rl_topview = 2131296349;
-			
-			// aapt resource value: 0x7F09005E
-			public const int gd_tv_activity_title = 2131296350;
-			
-			// aapt resource value: 0x7F09005F
-			public const int gd_tv_radius = 2131296351;
-			
-			// aapt resource value: 0x7F090060
-			public const int gd_tv_search_title = 2131296352;
-			
-			// aapt resource value: 0x7F090061
-			public const int hdl_gallery_rootView = 2131296353;
-			
-			// aapt resource value: 0x7F090062
-			public const int hdl_gallery_viewPager = 2131296354;
-			
-			// aapt resource value: 0x7F090063
-			public const int hdl_options1 = 2131296355;
-			
-			// aapt resource value: 0x7F090064
-			public const int hdl_options2 = 2131296356;
-			
-			// aapt resource value: 0x7F090065
-			public const int hdl_options3 = 2131296357;
-			
-			// aapt resource value: 0x7F090066
-			public const int hdl_pickerview_ll = 2131296358;
-			
-			// aapt resource value: 0x7F090067
-			public const int home = 2131296359;
-			
-			// aapt resource value: 0x7F090068
-			public const int homeAsUp = 2131296360;
-			
-			// aapt resource value: 0x7F090069
-			public const int hour = 2131296361;
-			
-			// aapt resource value: 0x7F09006A
-			public const int icon = 2131296362;
-			
-			// aapt resource value: 0x7F09006B
-			public const int icon_group = 2131296363;
-			
-			// aapt resource value: 0x7F09006C
-			public const int ifRoom = 2131296364;
-			
-			// aapt resource value: 0x7F09006D
-			public const int image = 2131296365;
-			
-			// aapt resource value: 0x7F09006E
-			public const int info = 2131296366;
-			
-			// aapt resource value: 0x7F09006F
-			public const int italic = 2131296367;
-			
-			// aapt resource value: 0x7F090070
-			public const int item_touch_helper_previous_elevation = 2131296368;
-			
-			// aapt resource value: 0x7F090071
-			public const int largeLabel = 2131296369;
-			
-			// aapt resource value: 0x7F090072
-			public const int left = 2131296370;
-			
-			// aapt resource value: 0x7F090073
-			public const int line1 = 2131296371;
-			
-			// aapt resource value: 0x7F090074
-			public const int line3 = 2131296372;
-			
-			// aapt resource value: 0x7F090075
-			public const int listMode = 2131296373;
-			
-			// aapt resource value: 0x7F090076
-			public const int list_item = 2131296374;
-			
-			// aapt resource value: 0x7F090077
-			public const int masked = 2131296375;
-			
-			// aapt resource value: 0x7F090008
-			public const int MatchLayout = 2131296264;
-			
-			// aapt resource value: 0x7F090078
-			public const int media_actions = 2131296376;
-			
-			// aapt resource value: 0x7F090079
-			public const int message = 2131296377;
+			public const int @fixed = 2131296347;
 			
 			// aapt resource value: 0x7F090007
-			public const int META = 2131296263;
+			public const int FixedBehind = 2131296263;
+			
+			// aapt resource value: 0x7F090008
+			public const int FixedFront = 2131296264;
+			
+			// aapt resource value: 0x7F09005C
+			public const int forever = 2131296348;
+			
+			// aapt resource value: 0x7F090006
+			public const int FUNCTION = 2131296262;
+			
+			// aapt resource value: 0x7F09005D
+			public const int gd_btn_back = 2131296349;
+			
+			// aapt resource value: 0x7F09005E
+			public const int gd_btn_myLocation = 2131296350;
+			
+			// aapt resource value: 0x7F09005F
+			public const int gd_btn_save = 2131296351;
+			
+			// aapt resource value: 0x7F090060
+			public const int gd_img_search_delete = 2131296352;
+			
+			// aapt resource value: 0x7F090061
+			public const int gd_ll_myhome = 2131296353;
+			
+			// aapt resource value: 0x7F090062
+			public const int gd_ll_search = 2131296354;
+			
+			// aapt resource value: 0x7F090063
+			public const int gd_mapView = 2131296355;
+			
+			// aapt resource value: 0x7F090064
+			public const int gd_rl_topview = 2131296356;
+			
+			// aapt resource value: 0x7F090065
+			public const int gd_tv_activity_title = 2131296357;
+			
+			// aapt resource value: 0x7F090066
+			public const int gd_tv_radius = 2131296358;
+			
+			// aapt resource value: 0x7F090067
+			public const int gd_tv_search_title = 2131296359;
+			
+			// aapt resource value: 0x7F090068
+			public const int hdl_gallery_rootView = 2131296360;
+			
+			// aapt resource value: 0x7F090069
+			public const int hdl_gallery_viewPager = 2131296361;
+			
+			// aapt resource value: 0x7F09006A
+			public const int hdl_options1 = 2131296362;
+			
+			// aapt resource value: 0x7F09006B
+			public const int hdl_options2 = 2131296363;
+			
+			// aapt resource value: 0x7F09006C
+			public const int hdl_options3 = 2131296364;
+			
+			// aapt resource value: 0x7F09006D
+			public const int hdl_pickerview_ll = 2131296365;
+			
+			// aapt resource value: 0x7F09006E
+			public const int home = 2131296366;
+			
+			// aapt resource value: 0x7F09006F
+			public const int homeAsUp = 2131296367;
+			
+			// aapt resource value: 0x7F090070
+			public const int hour = 2131296368;
+			
+			// aapt resource value: 0x7F090071
+			public const int icon = 2131296369;
+			
+			// aapt resource value: 0x7F090072
+			public const int icon_group = 2131296370;
+			
+			// aapt resource value: 0x7F090073
+			public const int ifRoom = 2131296371;
+			
+			// aapt resource value: 0x7F090074
+			public const int image = 2131296372;
+			
+			// aapt resource value: 0x7F090075
+			public const int info = 2131296373;
+			
+			// aapt resource value: 0x7F090076
+			public const int italic = 2131296374;
+			
+			// aapt resource value: 0x7F090077
+			public const int item_touch_helper_previous_elevation = 2131296375;
+			
+			// aapt resource value: 0x7F090078
+			public const int largeLabel = 2131296376;
+			
+			// aapt resource value: 0x7F090079
+			public const int left = 2131296377;
 			
 			// aapt resource value: 0x7F09007A
-			public const int middle = 2131296378;
+			public const int line1 = 2131296378;
 			
 			// aapt resource value: 0x7F09007B
-			public const int min = 2131296379;
+			public const int line3 = 2131296379;
 			
 			// aapt resource value: 0x7F09007C
-			public const int mini = 2131296380;
+			public const int listMode = 2131296380;
 			
 			// aapt resource value: 0x7F09007D
-			public const int month = 2131296381;
+			public const int list_item = 2131296381;
 			
 			// aapt resource value: 0x7F09007E
-			public const int multiply = 2131296382;
-			
-			// aapt resource value: 0x7F09007F
-			public const int myButton = 2131296383;
-			
-			// aapt resource value: 0x7F090080
-			public const int navigation_header_container = 2131296384;
-			
-			// aapt resource value: 0x7F090081
-			public const int never = 2131296385;
-			
-			// aapt resource value: 0x7F090082
-			public const int none = 2131296386;
-			
-			// aapt resource value: 0x7F090083
-			public const int normal = 2131296387;
-			
-			// aapt resource value: 0x7F090084
-			public const int notification_background = 2131296388;
-			
-			// aapt resource value: 0x7F090085
-			public const int notification_main_column = 2131296389;
-			
-			// aapt resource value: 0x7F090086
-			public const int notification_main_column_container = 2131296390;
-			
-			// aapt resource value: 0x7F090087
-			public const int options1 = 2131296391;
-			
-			// aapt resource value: 0x7F090088
-			public const int options2 = 2131296392;
-			
-			// aapt resource value: 0x7F090089
-			public const int options3 = 2131296393;
-			
-			// aapt resource value: 0x7F09008A
-			public const int optionspicker = 2131296394;
-			
-			// aapt resource value: 0x7F09008B
-			public const int outmost_container = 2131296395;
-			
-			// aapt resource value: 0x7F09008C
-			public const int parallax = 2131296396;
-			
-			// aapt resource value: 0x7F09008D
-			public const int parentPanel = 2131296397;
-			
-			// aapt resource value: 0x7F09008E
-			public const int pin = 2131296398;
-			
-			// aapt resource value: 0x7F09008F
-			public const int progress_circular = 2131296399;
-			
-			// aapt resource value: 0x7F090090
-			public const int progress_horizontal = 2131296400;
-			
-			// aapt resource value: 0x7F090091
-			public const int radio = 2131296401;
-			
-			// aapt resource value: 0x7F090092
-			public const int right = 2131296402;
-			
-			// aapt resource value: 0x7F090093
-			public const int right_icon = 2131296403;
-			
-			// aapt resource value: 0x7F090094
-			public const int right_side = 2131296404;
-			
-			// aapt resource value: 0x7F090095
-			public const int rv_topbar = 2131296405;
-			
-			// aapt resource value: 0x7F09000C
-			public const int Scale = 2131296268;
-			
-			// aapt resource value: 0x7F090096
-			public const int screen = 2131296406;
-			
-			// aapt resource value: 0x7F090097
-			public const int scroll = 2131296407;
-			
-			// aapt resource value: 0x7F09009B
-			public const int scrollable = 2131296411;
-			
-			// aapt resource value: 0x7F090098
-			public const int scrollIndicatorDown = 2131296408;
-			
-			// aapt resource value: 0x7F090099
-			public const int scrollIndicatorUp = 2131296409;
-			
-			// aapt resource value: 0x7F09009A
-			public const int scrollView = 2131296410;
-			
-			// aapt resource value: 0x7F09009C
-			public const int search_badge = 2131296412;
-			
-			// aapt resource value: 0x7F09009D
-			public const int search_bar = 2131296413;
-			
-			// aapt resource value: 0x7F09009E
-			public const int search_button = 2131296414;
-			
-			// aapt resource value: 0x7F09009F
-			public const int search_close_btn = 2131296415;
-			
-			// aapt resource value: 0x7F0900A0
-			public const int search_edit_frame = 2131296416;
-			
-			// aapt resource value: 0x7F0900A1
-			public const int search_go_btn = 2131296417;
-			
-			// aapt resource value: 0x7F0900A2
-			public const int search_mag_icon = 2131296418;
-			
-			// aapt resource value: 0x7F0900A3
-			public const int search_plate = 2131296419;
-			
-			// aapt resource value: 0x7F0900A4
-			public const int search_src_text = 2131296420;
-			
-			// aapt resource value: 0x7F0900A5
-			public const int search_voice_btn = 2131296421;
-			
-			// aapt resource value: 0x7F0900A6
-			public const int second = 2131296422;
-			
-			// aapt resource value: 0x7F0900A7
-			public const int select_dialog_listview = 2131296423;
-			
-			// aapt resource value: 0x7F090009
-			public const int SHIFT = 2131296265;
-			
-			// aapt resource value: 0x7F0900A8
-			public const int shortcut = 2131296424;
-			
-			// aapt resource value: 0x7F0900A9
-			public const int showCustom = 2131296425;
-			
-			// aapt resource value: 0x7F0900AA
-			public const int showHome = 2131296426;
-			
-			// aapt resource value: 0x7F0900AB
-			public const int showTitle = 2131296427;
-			
-			// aapt resource value: 0x7F0900AC
-			public const int smallLabel = 2131296428;
-			
-			// aapt resource value: 0x7F0900AD
-			public const int snackbar_action = 2131296429;
-			
-			// aapt resource value: 0x7F0900AE
-			public const int snackbar_text = 2131296430;
-			
-			// aapt resource value: 0x7F0900AF
-			public const int snap = 2131296431;
-			
-			// aapt resource value: 0x7F0900B0
-			public const int spacer = 2131296432;
-			
-			// aapt resource value: 0x7F0900B1
-			public const int split_action_bar = 2131296433;
-			
-			// aapt resource value: 0x7F0900B2
-			public const int src_atop = 2131296434;
-			
-			// aapt resource value: 0x7F0900B3
-			public const int src_in = 2131296435;
-			
-			// aapt resource value: 0x7F0900B4
-			public const int src_over = 2131296436;
-			
-			// aapt resource value: 0x7F0900B5
-			public const int srl_classics_arrow = 2131296437;
-			
-			// aapt resource value: 0x7F0900B6
-			public const int srl_classics_center = 2131296438;
-			
-			// aapt resource value: 0x7F0900B7
-			public const int srl_classics_progress = 2131296439;
-			
-			// aapt resource value: 0x7F0900B8
-			public const int srl_classics_title = 2131296440;
-			
-			// aapt resource value: 0x7F0900B9
-			public const int srl_classics_update = 2131296441;
-			
-			// aapt resource value: 0x7F0900BA
-			public const int start = 2131296442;
-			
-			// aapt resource value: 0x7F0900BB
-			public const int status = 2131296443;
-			
-			// aapt resource value: 0x7F0900BC
-			public const int status_bar_latest_event_content = 2131296444;
+			public const int masked = 2131296382;
 			
 			// aapt resource value: 0x7F09000A
-			public const int STROKE = 2131296266;
+			public const int MatchLayout = 2131296266;
 			
-			// aapt resource value: 0x7F0900BD
-			public const int submenuarrow = 2131296445;
+			// aapt resource value: 0x7F09007F
+			public const int media_actions = 2131296383;
 			
-			// aapt resource value: 0x7F0900BE
-			public const int submit_area = 2131296446;
+			// aapt resource value: 0x7F090080
+			public const int message = 2131296384;
 			
-			// aapt resource value: 0x7F0900BF
-			public const int subtitle = 2131296447;
+			// aapt resource value: 0x7F090009
+			public const int META = 2131296265;
+			
+			// aapt resource value: 0x7F090081
+			public const int middle = 2131296385;
+			
+			// aapt resource value: 0x7F090082
+			public const int min = 2131296386;
+			
+			// aapt resource value: 0x7F090083
+			public const int mini = 2131296387;
+			
+			// aapt resource value: 0x7F090084
+			public const int month = 2131296388;
+			
+			// aapt resource value: 0x7F090085
+			public const int multiply = 2131296389;
+			
+			// aapt resource value: 0x7F090086
+			public const int myButton = 2131296390;
+			
+			// aapt resource value: 0x7F090087
+			public const int navigation_header_container = 2131296391;
+			
+			// aapt resource value: 0x7F090088
+			public const int never = 2131296392;
+			
+			// aapt resource value: 0x7F090089
+			public const int none = 2131296393;
+			
+			// aapt resource value: 0x7F09008A
+			public const int normal = 2131296394;
 			
 			// aapt resource value: 0x7F09000B
-			public const int SYM = 2131296267;
+			public const int Notice = 2131296267;
 			
-			// aapt resource value: 0x7F0900C0
-			public const int tabMode = 2131296448;
+			// aapt resource value: 0x7F09008B
+			public const int notification_background = 2131296395;
 			
-			// aapt resource value: 0x7F0900C1
-			public const int text = 2131296449;
+			// aapt resource value: 0x7F09008C
+			public const int notification_main_column = 2131296396;
 			
-			// aapt resource value: 0x7F0900C2
-			public const int text2 = 2131296450;
+			// aapt resource value: 0x7F09008D
+			public const int notification_main_column_container = 2131296397;
 			
-			// aapt resource value: 0x7F0900C6
-			public const int textinput_counter = 2131296454;
+			// aapt resource value: 0x7F09008E
+			public const int options1 = 2131296398;
 			
-			// aapt resource value: 0x7F0900C7
-			public const int textinput_error = 2131296455;
+			// aapt resource value: 0x7F09008F
+			public const int options2 = 2131296399;
 			
-			// aapt resource value: 0x7F0900C3
-			public const int textSpacerNoButtons = 2131296451;
+			// aapt resource value: 0x7F090090
+			public const int options3 = 2131296400;
 			
-			// aapt resource value: 0x7F0900C4
-			public const int textSpacerNoTitle = 2131296452;
+			// aapt resource value: 0x7F090091
+			public const int optionspicker = 2131296401;
 			
-			// aapt resource value: 0x7F0900C5
-			public const int text_input_password_toggle = 2131296453;
+			// aapt resource value: 0x7F090092
+			public const int outmost_container = 2131296402;
 			
-			// aapt resource value: 0x7F0900C8
-			public const int time = 2131296456;
+			// aapt resource value: 0x7F090093
+			public const int parallax = 2131296403;
 			
-			// aapt resource value: 0x7F0900C9
-			public const int timepicker = 2131296457;
+			// aapt resource value: 0x7F090094
+			public const int parentPanel = 2131296404;
 			
-			// aapt resource value: 0x7F0900CA
-			public const int title = 2131296458;
-			
-			// aapt resource value: 0x7F0900CB
-			public const int titleDividerNoCustom = 2131296459;
-			
-			// aapt resource value: 0x7F0900CC
-			public const int title_template = 2131296460;
-			
-			// aapt resource value: 0x7F0900CD
-			public const int top = 2131296461;
-			
-			// aapt resource value: 0x7F0900CE
-			public const int topPanel = 2131296462;
-			
-			// aapt resource value: 0x7F0900CF
-			public const int touch_outside = 2131296463;
+			// aapt resource value: 0x7F09000C
+			public const int Password = 2131296268;
 			
 			// aapt resource value: 0x7F09000D
-			public const int Translate = 2131296269;
+			public const int PasswordLabel = 2131296269;
 			
-			// aapt resource value: 0x7F0900D0
-			public const int tvTitle = 2131296464;
+			// aapt resource value: 0x7F090095
+			public const int pin = 2131296405;
+			
+			// aapt resource value: 0x7F090096
+			public const int progress_circular = 2131296406;
+			
+			// aapt resource value: 0x7F090097
+			public const int progress_horizontal = 2131296407;
+			
+			// aapt resource value: 0x7F090098
+			public const int radio = 2131296408;
+			
+			// aapt resource value: 0x7F090099
+			public const int right = 2131296409;
+			
+			// aapt resource value: 0x7F09009A
+			public const int right_icon = 2131296410;
+			
+			// aapt resource value: 0x7F09009B
+			public const int right_side = 2131296411;
+			
+			// aapt resource value: 0x7F09009C
+			public const int rv_topbar = 2131296412;
+			
+			// aapt resource value: 0x7F090013
+			public const int Scale = 2131296275;
+			
+			// aapt resource value: 0x7F09009D
+			public const int screen = 2131296413;
+			
+			// aapt resource value: 0x7F09009E
+			public const int scroll = 2131296414;
+			
+			// aapt resource value: 0x7F0900A2
+			public const int scrollable = 2131296418;
+			
+			// aapt resource value: 0x7F09009F
+			public const int scrollIndicatorDown = 2131296415;
+			
+			// aapt resource value: 0x7F0900A0
+			public const int scrollIndicatorUp = 2131296416;
+			
+			// aapt resource value: 0x7F0900A1
+			public const int scrollView = 2131296417;
+			
+			// aapt resource value: 0x7F0900A3
+			public const int search_badge = 2131296419;
+			
+			// aapt resource value: 0x7F0900A4
+			public const int search_bar = 2131296420;
+			
+			// aapt resource value: 0x7F0900A5
+			public const int search_button = 2131296421;
+			
+			// aapt resource value: 0x7F0900A6
+			public const int search_close_btn = 2131296422;
+			
+			// aapt resource value: 0x7F0900A7
+			public const int search_edit_frame = 2131296423;
+			
+			// aapt resource value: 0x7F0900A8
+			public const int search_go_btn = 2131296424;
+			
+			// aapt resource value: 0x7F0900A9
+			public const int search_mag_icon = 2131296425;
+			
+			// aapt resource value: 0x7F0900AA
+			public const int search_plate = 2131296426;
+			
+			// aapt resource value: 0x7F0900AB
+			public const int search_src_text = 2131296427;
+			
+			// aapt resource value: 0x7F0900AC
+			public const int search_voice_btn = 2131296428;
+			
+			// aapt resource value: 0x7F0900AD
+			public const int second = 2131296429;
+			
+			// aapt resource value: 0x7F0900AE
+			public const int select_dialog_listview = 2131296430;
+			
+			// aapt resource value: 0x7F09000E
+			public const int SHIFT = 2131296270;
+			
+			// aapt resource value: 0x7F0900AF
+			public const int shortcut = 2131296431;
+			
+			// aapt resource value: 0x7F0900B0
+			public const int showCustom = 2131296432;
+			
+			// aapt resource value: 0x7F0900B1
+			public const int showHome = 2131296433;
+			
+			// aapt resource value: 0x7F0900B2
+			public const int showTitle = 2131296434;
+			
+			// aapt resource value: 0x7F0900B3
+			public const int smallLabel = 2131296435;
+			
+			// aapt resource value: 0x7F0900B4
+			public const int snackbar_action = 2131296436;
+			
+			// aapt resource value: 0x7F0900B5
+			public const int snackbar_text = 2131296437;
+			
+			// aapt resource value: 0x7F0900B6
+			public const int snap = 2131296438;
+			
+			// aapt resource value: 0x7F0900B7
+			public const int spacer = 2131296439;
+			
+			// aapt resource value: 0x7F0900B8
+			public const int split_action_bar = 2131296440;
+			
+			// aapt resource value: 0x7F0900B9
+			public const int src_atop = 2131296441;
+			
+			// aapt resource value: 0x7F0900BA
+			public const int src_in = 2131296442;
+			
+			// aapt resource value: 0x7F0900BB
+			public const int src_over = 2131296443;
+			
+			// aapt resource value: 0x7F0900BC
+			public const int srl_classics_arrow = 2131296444;
+			
+			// aapt resource value: 0x7F0900BD
+			public const int srl_classics_center = 2131296445;
+			
+			// aapt resource value: 0x7F0900BE
+			public const int srl_classics_progress = 2131296446;
+			
+			// aapt resource value: 0x7F0900BF
+			public const int srl_classics_title = 2131296447;
+			
+			// aapt resource value: 0x7F0900C0
+			public const int srl_classics_update = 2131296448;
+			
+			// aapt resource value: 0x7F09000F
+			public const int SSID = 2131296271;
+			
+			// aapt resource value: 0x7F090010
+			public const int SSIDLabel = 2131296272;
+			
+			// aapt resource value: 0x7F0900C1
+			public const int start = 2131296449;
+			
+			// aapt resource value: 0x7F0900C2
+			public const int startV1 = 2131296450;
+			
+			// aapt resource value: 0x7F0900C3
+			public const int startV1V4 = 2131296451;
+			
+			// aapt resource value: 0x7F0900C4
+			public const int startV4 = 2131296452;
+			
+			// aapt resource value: 0x7F0900C5
+			public const int status = 2131296453;
+			
+			// aapt resource value: 0x7F0900C6
+			public const int status_bar_latest_event_content = 2131296454;
+			
+			// aapt resource value: 0x7F0900C7
+			public const int stop = 2131296455;
+			
+			// aapt resource value: 0x7F090011
+			public const int STROKE = 2131296273;
+			
+			// aapt resource value: 0x7F0900C8
+			public const int submenuarrow = 2131296456;
+			
+			// aapt resource value: 0x7F0900C9
+			public const int submit_area = 2131296457;
+			
+			// aapt resource value: 0x7F0900CA
+			public const int subtitle = 2131296458;
+			
+			// aapt resource value: 0x7F090012
+			public const int SYM = 2131296274;
+			
+			// aapt resource value: 0x7F0900CB
+			public const int tabMode = 2131296459;
+			
+			// aapt resource value: 0x7F0900CC
+			public const int text = 2131296460;
+			
+			// aapt resource value: 0x7F0900CD
+			public const int text2 = 2131296461;
 			
 			// aapt resource value: 0x7F0900D1
-			public const int tv_zxing_back = 2131296465;
+			public const int textinput_counter = 2131296465;
 			
 			// aapt resource value: 0x7F0900D2
-			public const int tv_zxing_flash = 2131296466;
+			public const int textinput_error = 2131296466;
+			
+			// aapt resource value: 0x7F0900CE
+			public const int textSpacerNoButtons = 2131296462;
+			
+			// aapt resource value: 0x7F0900CF
+			public const int textSpacerNoTitle = 2131296463;
+			
+			// aapt resource value: 0x7F0900D0
+			public const int text_input_password_toggle = 2131296464;
 			
 			// aapt resource value: 0x7F0900D3
-			public const int tv_zxing_scan = 2131296467;
+			public const int time = 2131296467;
 			
 			// aapt resource value: 0x7F0900D4
-			public const int uniform = 2131296468;
+			public const int timepicker = 2131296468;
 			
 			// aapt resource value: 0x7F0900D5
-			public const int up = 2131296469;
+			public const int title = 2131296469;
 			
 			// aapt resource value: 0x7F0900D6
-			public const int useLogo = 2131296470;
+			public const int titleDividerNoCustom = 2131296470;
 			
 			// aapt resource value: 0x7F0900D7
-			public const int view_offset_helper = 2131296471;
+			public const int title_template = 2131296471;
 			
 			// aapt resource value: 0x7F0900D8
-			public const int visible = 2131296472;
+			public const int top = 2131296472;
 			
 			// aapt resource value: 0x7F0900D9
-			public const int withText = 2131296473;
+			public const int topPanel = 2131296473;
 			
 			// aapt resource value: 0x7F0900DA
-			public const int wrap_content = 2131296474;
+			public const int touch_outside = 2131296474;
+			
+			// aapt resource value: 0x7F090014
+			public const int Translate = 2131296276;
 			
 			// aapt resource value: 0x7F0900DB
-			public const int year = 2131296475;
+			public const int tvTitle = 2131296475;
+			
+			// aapt resource value: 0x7F0900DC
+			public const int tv_zxing_back = 2131296476;
+			
+			// aapt resource value: 0x7F0900DD
+			public const int tv_zxing_flash = 2131296477;
+			
+			// aapt resource value: 0x7F0900DE
+			public const int tv_zxing_scan = 2131296478;
+			
+			// aapt resource value: 0x7F0900DF
+			public const int uniform = 2131296479;
+			
+			// aapt resource value: 0x7F0900E0
+			public const int up = 2131296480;
+			
+			// aapt resource value: 0x7F0900E1
+			public const int useLogo = 2131296481;
+			
+			// aapt resource value: 0x7F0900E2
+			public const int view_offset_helper = 2131296482;
+			
+			// aapt resource value: 0x7F0900E3
+			public const int visible = 2131296483;
+			
+			// aapt resource value: 0x7F0900E4
+			public const int withText = 2131296484;
+			
+			// aapt resource value: 0x7F0900E5
+			public const int wrap_content = 2131296485;
+			
+			// aapt resource value: 0x7F0900E6
+			public const int year = 2131296486;
 			
 			static Id()
 			{
@@ -3780,154 +3813,157 @@
 			public const int abc_select_dialog_material = 2131427354;
 			
 			// aapt resource value: 0x7F0B001B
-			public const int biometric_prompt_dialog_content = 2131427355;
+			public const int activity_elian = 2131427355;
 			
 			// aapt resource value: 0x7F0B001C
-			public const int design_bottom_navigation_item = 2131427356;
+			public const int biometric_prompt_dialog_content = 2131427356;
 			
 			// aapt resource value: 0x7F0B001D
-			public const int design_bottom_sheet_dialog = 2131427357;
+			public const int design_bottom_navigation_item = 2131427357;
 			
 			// aapt resource value: 0x7F0B001E
-			public const int design_layout_snackbar = 2131427358;
+			public const int design_bottom_sheet_dialog = 2131427358;
 			
 			// aapt resource value: 0x7F0B001F
-			public const int design_layout_snackbar_include = 2131427359;
+			public const int design_layout_snackbar = 2131427359;
 			
 			// aapt resource value: 0x7F0B0020
-			public const int design_layout_tab_icon = 2131427360;
+			public const int design_layout_snackbar_include = 2131427360;
 			
 			// aapt resource value: 0x7F0B0021
-			public const int design_layout_tab_text = 2131427361;
+			public const int design_layout_tab_icon = 2131427361;
 			
 			// aapt resource value: 0x7F0B0022
-			public const int design_menu_item_action_area = 2131427362;
+			public const int design_layout_tab_text = 2131427362;
 			
 			// aapt resource value: 0x7F0B0023
-			public const int design_navigation_item = 2131427363;
+			public const int design_menu_item_action_area = 2131427363;
 			
 			// aapt resource value: 0x7F0B0024
-			public const int design_navigation_item_header = 2131427364;
+			public const int design_navigation_item = 2131427364;
 			
 			// aapt resource value: 0x7F0B0025
-			public const int design_navigation_item_separator = 2131427365;
+			public const int design_navigation_item_header = 2131427365;
 			
 			// aapt resource value: 0x7F0B0026
-			public const int design_navigation_item_subheader = 2131427366;
+			public const int design_navigation_item_separator = 2131427366;
 			
 			// aapt resource value: 0x7F0B0027
-			public const int design_navigation_menu = 2131427367;
+			public const int design_navigation_item_subheader = 2131427367;
 			
 			// aapt resource value: 0x7F0B0028
-			public const int design_navigation_menu_item = 2131427368;
+			public const int design_navigation_menu = 2131427368;
 			
 			// aapt resource value: 0x7F0B0029
-			public const int design_text_input_password_icon = 2131427369;
+			public const int design_navigation_menu_item = 2131427369;
 			
 			// aapt resource value: 0x7F0B002A
-			public const int hdl_gallery_banner_view_layout = 2131427370;
+			public const int design_text_input_password_icon = 2131427370;
 			
 			// aapt resource value: 0x7F0B002B
-			public const int hdl_widget_activity_crop_image = 2131427371;
+			public const int hdl_gallery_banner_view_layout = 2131427371;
 			
 			// aapt resource value: 0x7F0B002C
-			public const int hdl_widget_activity_geofence_round = 2131427372;
+			public const int hdl_widget_activity_crop_image = 2131427372;
 			
 			// aapt resource value: 0x7F0B002D
-			public const int hdl_widget_air_button = 2131427373;
+			public const int hdl_widget_activity_geofence_round = 2131427373;
 			
 			// aapt resource value: 0x7F0B002E
-			public const int hdl_widget_include_pickerview_topbar = 2131427374;
+			public const int hdl_widget_air_button = 2131427374;
 			
 			// aapt resource value: 0x7F0B002F
-			public const int hdl_widget_layout_basepickerview = 2131427375;
+			public const int hdl_widget_include_pickerview_topbar = 2131427375;
 			
 			// aapt resource value: 0x7F0B0030
-			public const int hdl_widget_pickerview = 2131427376;
+			public const int hdl_widget_layout_basepickerview = 2131427376;
 			
 			// aapt resource value: 0x7F0B0031
-			public const int hdl_widget_pickerview_options = 2131427377;
+			public const int hdl_widget_pickerview = 2131427377;
 			
 			// aapt resource value: 0x7F0B0032
-			public const int hdl_widget_pickerview_time = 2131427378;
+			public const int hdl_widget_pickerview_options = 2131427378;
 			
 			// aapt resource value: 0x7F0B0033
-			public const int Main = 2131427379;
+			public const int hdl_widget_pickerview_time = 2131427379;
 			
 			// aapt resource value: 0x7F0B0034
-			public const int notification_action = 2131427380;
+			public const int Main = 2131427380;
 			
 			// aapt resource value: 0x7F0B0035
-			public const int notification_action_tombstone = 2131427381;
+			public const int notification_action = 2131427381;
 			
 			// aapt resource value: 0x7F0B0036
-			public const int notification_media_action = 2131427382;
+			public const int notification_action_tombstone = 2131427382;
 			
 			// aapt resource value: 0x7F0B0037
-			public const int notification_media_cancel_action = 2131427383;
+			public const int notification_media_action = 2131427383;
 			
 			// aapt resource value: 0x7F0B0038
-			public const int notification_template_big_media = 2131427384;
+			public const int notification_media_cancel_action = 2131427384;
 			
 			// aapt resource value: 0x7F0B0039
-			public const int notification_template_big_media_custom = 2131427385;
+			public const int notification_template_big_media = 2131427385;
 			
 			// aapt resource value: 0x7F0B003A
-			public const int notification_template_big_media_narrow = 2131427386;
+			public const int notification_template_big_media_custom = 2131427386;
 			
 			// aapt resource value: 0x7F0B003B
-			public const int notification_template_big_media_narrow_custom = 2131427387;
+			public const int notification_template_big_media_narrow = 2131427387;
 			
 			// aapt resource value: 0x7F0B003C
-			public const int notification_template_custom_big = 2131427388;
+			public const int notification_template_big_media_narrow_custom = 2131427388;
 			
 			// aapt resource value: 0x7F0B003D
-			public const int notification_template_icon_group = 2131427389;
+			public const int notification_template_custom_big = 2131427389;
 			
 			// aapt resource value: 0x7F0B003E
-			public const int notification_template_lines_media = 2131427390;
+			public const int notification_template_icon_group = 2131427390;
 			
 			// aapt resource value: 0x7F0B003F
-			public const int notification_template_media = 2131427391;
+			public const int notification_template_lines_media = 2131427391;
 			
 			// aapt resource value: 0x7F0B0040
-			public const int notification_template_media_custom = 2131427392;
+			public const int notification_template_media = 2131427392;
 			
 			// aapt resource value: 0x7F0B0041
-			public const int notification_template_part_chronometer = 2131427393;
+			public const int notification_template_media_custom = 2131427393;
 			
 			// aapt resource value: 0x7F0B0042
-			public const int notification_template_part_time = 2131427394;
+			public const int notification_template_part_chronometer = 2131427394;
 			
 			// aapt resource value: 0x7F0B0043
-			public const int select_dialog_item_material = 2131427395;
+			public const int notification_template_part_time = 2131427395;
 			
 			// aapt resource value: 0x7F0B0044
-			public const int select_dialog_multichoice_material = 2131427396;
+			public const int select_dialog_item_material = 2131427396;
 			
 			// aapt resource value: 0x7F0B0045
-			public const int select_dialog_singlechoice_material = 2131427397;
+			public const int select_dialog_multichoice_material = 2131427397;
 			
 			// aapt resource value: 0x7F0B0046
-			public const int srl_classics_footer = 2131427398;
+			public const int select_dialog_singlechoice_material = 2131427398;
 			
 			// aapt resource value: 0x7F0B0047
-			public const int srl_classics_header = 2131427399;
+			public const int srl_classics_footer = 2131427399;
 			
 			// aapt resource value: 0x7F0B0048
-			public const int support_simple_spinner_dropdown_item = 2131427400;
+			public const int srl_classics_header = 2131427400;
 			
 			// aapt resource value: 0x7F0B0049
-			public const int tooltip = 2131427401;
-			
-			// aapt resource value: 0x7F0B004B
-			public const int zxingscanneractivitylayout = 2131427403;
-			
-			// aapt resource value: 0x7F0B004C
-			public const int zxingscannerfragmentlayout = 2131427404;
+			public const int support_simple_spinner_dropdown_item = 2131427401;
 			
 			// aapt resource value: 0x7F0B004A
-			public const int zxing_layout = 2131427402;
+			public const int tooltip = 2131427402;
+			
+			// aapt resource value: 0x7F0B004C
+			public const int zxingscanneractivitylayout = 2131427404;
+			
+			// aapt resource value: 0x7F0B004D
+			public const int zxingscannerfragmentlayout = 2131427405;
+			
+			// aapt resource value: 0x7F0B004B
+			public const int zxing_layout = 2131427403;
 			
 			static Layout()
 			{
diff --git a/ZigbeeApp/Home.Ios/Home.IOS.csproj b/ZigbeeApp/Home.Ios/Home.IOS.csproj
index aa80c88..9321179 100644
--- a/ZigbeeApp/Home.Ios/Home.IOS.csproj
+++ b/ZigbeeApp/Home.Ios/Home.IOS.csproj
@@ -593,6 +593,9 @@
       <BundleResource Include="Resources\Phone\Item\SelectHouse.png" />
       <BundleResource Include="Resources\Phone\Item\ScanQRcodeIconSelected.png" />
       <BundleResource Include="Resources\Phone\Item\InputAccountIconSelected.png" />
+      <BundleResource Include="Resources\Phone\PM2.5Sensor\PmPic.png" />
+      <BundleResource Include="Resources\Phone\PM2.5Sensor\TemperaturePic.png" />
+      <BundleResource Include="Resources\Phone\PM2.5Sensor\HumidityPic.png" />
       <BundleResource Include="Resources\Phone\ZigeeLogic\deviceselectedbackgroundcolor.png" />
       <BundleResource Include="Resources\Phone\ZigeeLogic\add.png" />
       <BundleResource Include="Resources\Phone\ZigeeLogic\sensor0.png" />
@@ -704,6 +707,7 @@
       <BundleResource Include="Resources\Phone\Device\IntelligentLocksH06CSelected.png" />
       <BundleResource Include="Resources\Phone\Device\CurtainSelected2.png" />
       <BundleResource Include="Resources\Phone\Device\Relay.png" />
+      <BundleResource Include="Resources\Phone\Device\AirQualitySensorEpoint.png" />
       <BundleResource Include="Resources\Phone\Device\SensorWaterSelected.png" />
       <BundleResource Include="Resources\Phone\Device\SensorInfrared.png" />
       <BundleResource Include="Resources\Phone\Device\ButtonPanelFangyueFreshAir.png" />
@@ -742,6 +746,7 @@
       <BundleResource Include="Resources\Phone\Device\AirSwitchSelected2.png" />
       <BundleResource Include="Resources\Phone\Device\ConverterSelected2.png" />
       <BundleResource Include="Resources\Phone\Device\AirSwitchSelected.png" />
+      <BundleResource Include="Resources\Phone\Device\AirQualitySensorEpointSelected.png" />
       <BundleResource Include="Resources\Phone\Device\IntelligentLocksSelected.png" />
       <BundleResource Include="Resources\Phone\Device\RelaySelected.png" />
       <BundleResource Include="Resources\Phone\Device\Socket1Selected.png" />
@@ -770,6 +775,7 @@
       <BundleResource Include="Resources\Phone\Device\SensorFireSelected.png" />
       <BundleResource Include="Resources\Phone\Device\ColorLight.png" />
       <BundleResource Include="Resources\Phone\Device\AirConditionerZbGatewaySelected.png" />
+      <BundleResource Include="Resources\Phone\Device\AirQualitySensorEpointSelected2.png" />
       <BundleResource Include="Resources\Phone\Device\Switch.png" />
       <BundleResource Include="Resources\Phone\Device\AirConditionerSelected.png" />
       <BundleResource Include="Resources\Phone\Device\ButtonPanel.png" />
@@ -1005,6 +1011,7 @@
       <BundleResource Include="Resources\Phone\RealDevice\ButtonPanelFangyueEight.png" />
       <BundleResource Include="Resources\Phone\RealDevice\SensorFire.png" />
       <BundleResource Include="Resources\Phone\RealDevice\ButtonPanelThree.png" />
+      <BundleResource Include="Resources\Phone\RealDevice\SensorPMTwoPointFive.png" />
       <BundleResource Include="Resources\Phone\RealDevice\SensorCarbonMonoxide.png" />
       <BundleResource Include="Resources\Phone\RealDevice\DimmableLightOneLoad.png" />
       <BundleResource Include="Resources\Phone\RealDevice\ButtonPanelFangyueTwo.png" />
diff --git a/ZigbeeApp/Home.Ios/Resources/Language.ini b/ZigbeeApp/Home.Ios/Resources/Language.ini
index 9cc5450..134a3fe 100755
--- a/ZigbeeApp/Home.Ios/Resources/Language.ini
+++ b/ZigbeeApp/Home.Ios/Resources/Language.ini
@@ -315,6 +315,8 @@
 312= 鑳屽厜鐏鑹�
 313=闀挎寜鍥剧ず鎸夐敭5绉掍互涓婏紝淇″彿鍥炬爣{0}蹇棯锛� 杩涘叆閰嶇綉鐘舵�併�備俊鍙峰浘鏍囧父浜垯閰嶇綉鎴愬姛
 314=鑷姩妯″紡涓嶆敮鎸佹搷浣�
+315=绌烘皵璐ㄩ噺
+316=绌烘皵璐ㄩ噺浼犳劅鍣�
 
 5097=鍙栨秷
 5098=纭畾
@@ -1994,6 +1996,7 @@
 40016=鐏厜
 40017=骞叉帴鐐�
 40018=鏂伴
+40019=绌烘皵璐ㄩ噺
 
 ;鈽呪槄鈽呪槄涓嬮潰杩欎簺鏄ā鍧桰D鐨勮澶囬粯璁ゅ娉ㄥ悕瀛�,浠�50000寮�濮�.娉�:瀹冨苟涓嶉渶瑕佸啀R.cs鏂囦欢涓畾涔夆槄鈽呪槄鈽�
 50000=绱ф�ユ寜閽�
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/Device/AirQualitySensorEpoint.png b/ZigbeeApp/Home.Ios/Resources/Phone/Device/AirQualitySensorEpoint.png
new file mode 100755
index 0000000..45505ef
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/Device/AirQualitySensorEpoint.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/Device/AirQualitySensorEpointSelected.png b/ZigbeeApp/Home.Ios/Resources/Phone/Device/AirQualitySensorEpointSelected.png
new file mode 100755
index 0000000..1b29393
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/Device/AirQualitySensorEpointSelected.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/Device/AirQualitySensorEpointSelected2.png b/ZigbeeApp/Home.Ios/Resources/Phone/Device/AirQualitySensorEpointSelected2.png
new file mode 100755
index 0000000..ea2a043
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/Device/AirQualitySensorEpointSelected2.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/Device/SensorPMTwoPointFive.png b/ZigbeeApp/Home.Ios/Resources/Phone/Device/SensorPMTwoPointFive.png
index 32335b9..c565f13 100755
--- a/ZigbeeApp/Home.Ios/Resources/Phone/Device/SensorPMTwoPointFive.png
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/Device/SensorPMTwoPointFive.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/PM2.5Sensor/HumidityPic.png b/ZigbeeApp/Home.Ios/Resources/Phone/PM2.5Sensor/HumidityPic.png
new file mode 100755
index 0000000..41c0a55
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/PM2.5Sensor/HumidityPic.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/PM2.5Sensor/PmPic.png b/ZigbeeApp/Home.Ios/Resources/Phone/PM2.5Sensor/PmPic.png
new file mode 100755
index 0000000..dda5009
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/PM2.5Sensor/PmPic.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/PM2.5Sensor/TemperaturePic.png b/ZigbeeApp/Home.Ios/Resources/Phone/PM2.5Sensor/TemperaturePic.png
new file mode 100755
index 0000000..72cf579
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/PM2.5Sensor/TemperaturePic.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/RealDevice/SensorPMTwoPointFive.png b/ZigbeeApp/Home.Ios/Resources/Phone/RealDevice/SensorPMTwoPointFive.png
new file mode 100755
index 0000000..de0004d
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/RealDevice/SensorPMTwoPointFive.png
Binary files differ
diff --git a/ZigbeeApp/Shared/Common/Device.cs b/ZigbeeApp/Shared/Common/Device.cs
index 7275b4d..f7c3ede 100755
--- a/ZigbeeApp/Shared/Common/Device.cs
+++ b/ZigbeeApp/Shared/Common/Device.cs
@@ -1331,7 +1331,7 @@
         }
 
         /// <summary>
-        /// 璁剧疆銆愯澶囩被鍨嬨�戠殑鍥炬爣鍒版寚瀹氱殑鎺т欢
+        /// 璁剧疆銆愯澶囩被鍨嬨�戠殑鍥炬爣鍒版寚瀹氱殑鎺т欢(姝ゆ柟娉曚笉鑳界敤鍦ㄨ澶囧姛鑳界被鍨嬭彍鍗曠殑鍥炬爣)
         /// </summary>
         /// <param name="btnIcon">鎺т欢瀵硅薄</param>
         /// <param name="listdevice">璁惧瀵硅薄</param>
@@ -1353,7 +1353,7 @@
         }
 
         /// <summary>
-        /// 鑾峰彇銆愯澶囩被鍨嬨�戠殑鍥炬爣
+        /// 鑾峰彇銆愯澶囩被鍨嬨�戠殑鍥炬爣(姝ゆ柟娉曚笉鑳界敤鍦ㄨ澶囧姛鑳界被鍨嬭彍鍗曠殑鍥炬爣)
         /// </summary>
         /// <param name="listdevice">璁惧瀵硅薄</param>
         /// <param name="unSelectPath">鍥剧墖鍦板潃</param>
@@ -1369,13 +1369,42 @@
         }
 
         /// <summary>
-        /// 鑾峰彇銆愯澶囩被鍨嬨�戠殑鍥炬爣
+        /// 鑾峰彇銆愯澶囧姛鑳界被鍨嬨�戠殑鑿滃崟鍥炬爣
         /// </summary>
         /// <param name="specificType">鑷畾涔夎澶囩被鍨�</param>
         /// <param name="unSelectPath">鍥剧墖鍦板潃</param>
         /// <param name="selectPath">鍥剧墖鍦板潃</param>
         /// <returns></returns>
-        public void GetDeviceObjectIcon(DeviceConcreteType specificType, ref string unSelectPath, ref string selectPath)
+        public void GetDeviceFunctionTypeMenuIcon(DeviceConcreteType specificType, ref string unSelectPath, ref string selectPath)
+        {
+            //鏂伴灏忔ā鍧�
+            if (specificType == DeviceConcreteType.Relay_FangyueFreshAirModul)
+            {
+                unSelectPath = "Device/FreshAirEpoint.png";
+                selectPath = "Device/FreshAirEpointSelected.png";
+                return;
+            }
+            //PM2.5绌烘皵璐ㄩ噺浼犳劅鍣�
+            else if (specificType == DeviceConcreteType.Sensor_PMTwoPointFive)
+            {
+                unSelectPath = "Device/AirQualitySensorEpoint.png";
+                selectPath = "Device/AirQualitySensorEpointSelected.png";
+                return;
+            }
+            //涓婇潰闇�瑕佺壒娈婂鐞�
+
+            //鑾峰彇銆愯澶囩被鍨嬨�戠殑鍥炬爣
+            this.GetDeviceObjectIcon(specificType, ref unSelectPath, ref selectPath);
+        }
+
+        /// <summary>
+        /// 鑾峰彇銆愯澶囩被鍨嬨�戠殑鍥炬爣 2020.05.13:娆″嚱鏁颁笉鍐嶅叕寮�
+        /// </summary>
+        /// <param name="specificType">鑷畾涔夎澶囩被鍨�</param>
+        /// <param name="unSelectPath">鍥剧墖鍦板潃</param>
+        /// <param name="selectPath">鍥剧墖鍦板潃</param>
+        /// <returns></returns>
+        private void GetDeviceObjectIcon(DeviceConcreteType specificType, ref string unSelectPath, ref string selectPath)
         {
             //灏嗗叿浣撶被鍨嬭浆瀛楃涓�
             string strSpecific = Enum.GetName(typeof(DeviceConcreteType), specificType);
@@ -1412,6 +1441,7 @@
             unSelectPath = imageFilePath;
             selectPath = imageSelectFilePath;
         }
+
 
         #endregion
 
@@ -1817,6 +1847,14 @@
                 info.BeloneType = DeviceBeloneType.A鏂伴;
                 info.ConcreteType = DeviceConcreteType.Relay_FangyueFreshAirModul;
                 info.ObjectTypeNameId = 60011;//鏂伴
+            }
+            //15 PM2.5浼犳劅鍣ㄨ澶�
+            else if (dicType.ContainsKey(DeviceType.PMSensor) == true)
+            {
+                info.ConcreteTextId = R.MyInternationalizationString.uDeviceModelId1307;
+                info.BeloneType = DeviceBeloneType.APM2鐐�5绌烘皵璐ㄩ噺浼犳劅鍣�;
+                info.ConcreteType = DeviceConcreteType.Sensor_PMTwoPointFive;
+                info.ObjectTypeNameId = 60000;//浼犳劅鍣�
             }
 
             int value = (int)info.BeloneType;
@@ -2505,6 +2543,7 @@
                 mainDevice.DeviceEpointName = device.DeviceInfo.DeviceName;
             }
             mainDevice.CurrentGateWayId = device.CurrentGateWayId;
+            mainDevice.ZigbeeType = device.DeviceInfo.ZigbeeType;
             mainDevice.IsOnline = device.DeviceInfo.IsOnline;
             mainDevice.DriveCode = device.DeviceInfo.DriveCode;
             mainDevice.IasDeviceType = device.DeviceInfo.DeviceType;
@@ -2616,6 +2655,7 @@
             else if (deviceType == DeviceType.FreshAir) { device = new FreshAir(); }
             else if (deviceType == DeviceType.DoorLock) { device = new DoorLock(); }
             else if (deviceType == DeviceType.TemperatureSensor) { device = new TemperatureSensor(); }
+            else if (deviceType == DeviceType.PMSensor) { device = new PMSensor(); }
             else if (deviceType == DeviceType.FreshAirHumiditySensor) { device = new HumiditySensor(); }
             else if (deviceType == DeviceType.OtaDevice || deviceType == DeviceType.OtaPanelDevice) { device = new OTADevice(); }
             else { return null; }
@@ -3069,6 +3109,10 @@
         /// </summary>
         A浼犳劅鍣� = 1200,
         /// <summary>
+        /// PM2.5绌烘皵璐ㄩ噺浼犳劅鍣�
+        /// </summary>
+        APM2鐐�5绌烘皵璐ㄩ噺浼犳劅鍣� = 1307,
+        /// <summary>
         /// 缁х數鍣�(2300-2499)
         /// </summary>
         A缁х數鍣� = 2300,
diff --git a/ZigbeeApp/Shared/Phone/Category/AdjustTargetAddDeviceForm.cs b/ZigbeeApp/Shared/Phone/Category/AdjustTargetAddDeviceForm.cs
index 80f6792..df30573 100755
--- a/ZigbeeApp/Shared/Phone/Category/AdjustTargetAddDeviceForm.cs
+++ b/ZigbeeApp/Shared/Phone/Category/AdjustTargetAddDeviceForm.cs
@@ -517,7 +517,7 @@
                     string path1 = string.Empty;
                     string path2 = string.Empty;
                     //鑾峰彇鍥剧墖
-                    LocalDevice.Current.GetDeviceObjectIcon(typeInfo.ConcreteType, ref path1, ref path2);
+                    LocalDevice.Current.GetDeviceFunctionTypeMenuIcon(typeInfo.ConcreteType, ref path1, ref path2);
                     dic[typeInfo.BeloneTextId].IconPath = path1;
                     dic[typeInfo.BeloneTextId].IconPathSelected = path2;
                     dic[typeInfo.BeloneTextId].TextId = typeInfo.BeloneTextId;
diff --git a/ZigbeeApp/Shared/Phone/Category/CategoryMainForm.cs b/ZigbeeApp/Shared/Phone/Category/CategoryMainForm.cs
index 7deda9b..198566a 100755
--- a/ZigbeeApp/Shared/Phone/Category/CategoryMainForm.cs
+++ b/ZigbeeApp/Shared/Phone/Category/CategoryMainForm.cs
@@ -502,6 +502,11 @@
                     {
                         cardContr = new Controls.DeviceFreshAirRowControl();
                     }
+                    // PM2.5
+                    else if (device.Type == DeviceType.PMSensor)
+                    {
+                        cardContr = new Controls.DevicePmSensorRowControl();
+                    }
                     //褰╃伅(璋冨厜鍣�)
                     else if (device.Type == DeviceType.DimmableLight)
                     {
@@ -844,14 +849,9 @@
                     string path1 = string.Empty;
                     string path2 = string.Empty;
                     //鑾峰彇鍥剧墖
-                    LocalDevice.Current.GetDeviceObjectIcon(typeInfo.ConcreteType, ref path1, ref path2);
+                    LocalDevice.Current.GetDeviceFunctionTypeMenuIcon(typeInfo.ConcreteType, ref path1, ref path2);
                     dic[typeInfo.BeloneTextId].IconPath = path1;
                     dic[typeInfo.BeloneTextId].IconPathSelected = path2;
-                    if (device.Type == DeviceType.FreshAir)
-                    {
-                        dic[typeInfo.BeloneTextId].IconPath = "Device/FreshAirEpoint.png";
-                        dic[typeInfo.BeloneTextId].IconPathSelected = "Device/FreshAirEpointSelected.png";
-                    }
                     dic[typeInfo.BeloneTextId].TextId = typeInfo.BeloneTextId;
                 }
                 dic[typeInfo.BeloneTextId].listDeviceKeys.Add(LocalDevice.Current.GetDeviceMainKeys(device));
diff --git a/ZigbeeApp/Shared/Phone/Category/Controls/DeviceRow/DevicePmSensorRowControl.cs b/ZigbeeApp/Shared/Phone/Category/Controls/DeviceRow/DevicePmSensorRowControl.cs
new file mode 100755
index 0000000..11f00ed
--- /dev/null
+++ b/ZigbeeApp/Shared/Phone/Category/Controls/DeviceRow/DevicePmSensorRowControl.cs
@@ -0,0 +1,58 @@
+锘縰sing System;
+using Shared.Phone.UserCenter;
+using ZigBee.Device;
+namespace Shared.Phone.Category.Controls
+{
+    /// <summary>
+    /// 鍒嗙被鐣岄潰鐨凱M2.5浼犳劅鍣ㄨ澶囪鎺т欢
+    /// </summary>
+    public class DevicePmSensorRowControl : DeviceRowCommon
+    {
+        /// <summary>
+        /// 鍒濆鍖栨帶浠�
+        /// </summary>
+        /// <param name="i_device"></param>
+        public override void InitControl(CommonDevice i_device)
+        {
+            base.InitControl(i_device);
+
+            //娣诲姞璺宠浆娣卞害鍗$墖淇℃伅浜嬩欢
+            this.AddDetailInfoEvent(i_device);
+        }
+
+        #region 鈻� 娣卞害鍗$墖淇℃伅_______________________
+
+        /// <summary>
+        /// 娣诲姞璺宠浆娣卞害鍗$墖淇℃伅浜嬩欢
+        /// </summary>
+        private void AddDetailInfoEvent(CommonDevice i_device)
+        {
+            //娣卞害鍗$墖淇℃伅
+            this.frameTable.ButtonClickEvent += (sender, e) =>
+            {
+                //PM2.5浼犳劅鍣ㄧ被鍨嬬殑娣卞害鍗$墖鐣岄潰
+                var form = new MainPage.ControlForm.DevicePmSensorDetailCardForm();
+                form.AddForm(i_device, HdlRoomLogic.Current.CurrentRoom, 965, 1374);
+                form.FormCloseEvent += this.CardDetailInfoBackEvent;
+            };
+        }
+
+        #endregion
+
+        #region 鈻� 鍙戦�佽幏鍙栫姸鎬佸懡浠__________________
+
+        /// <summary>
+        /// 鍙戦�佽幏鍙栫姸鎬佸懡浠�
+        /// </summary>
+        public override void SendStatuComand()
+        {
+            //妫�娴嬭兘鍚﹀彂閫佽幏鍙栫姸鎬佸懡浠�
+            if (this.CheckCanSendStatuComand() == true)
+            {
+                HdlDeviceAttributeLogic.Current.SendFreshAirStatuComand(this.device);
+            }
+        }
+
+        #endregion
+    }
+}
diff --git a/ZigbeeApp/Shared/Phone/Device/Logic/LogicView/TipView.cs b/ZigbeeApp/Shared/Phone/Device/Logic/LogicView/TipView.cs
old mode 100644
new mode 100755
index c7b0fe4..88bf472
--- a/ZigbeeApp/Shared/Phone/Device/Logic/LogicView/TipView.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Logic/LogicView/TipView.cs
@@ -71,10 +71,8 @@
             {
                 Y = topFrame.Bottom,
                 Width = Application.GetRealWidth(792),
-                Height = Application.GetRealHeight(127),
-             Gravity=Gravity.BottomCenter,
-
-
+                Height = Application.GetRealHeight(127),
+                Gravity = Gravity.BottomCenter,
             };
             tipFLayout.AddChidren(bottomFrame);
 
@@ -87,8 +85,7 @@
                 Height = bottomFrame.Height,
                 Width = Application.GetRealWidth(397),
                 BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor,
-                TextID = R.MyInternationalizationString.cancel,
-                
+                TextID = R.MyInternationalizationString.cancel,
             };
             bottomFrame.AddChidren(cancelBtn);
             cancelBtn.SetCornerWithSameRadius(Application.GetRealHeight(17), HDLUtils.RectCornerBottomLeft);
@@ -160,7 +157,7 @@
                 Y = Application.GetRealHeight(69),
                 X = Application.GetRealWidth(150),
                 Height = Application.GetRealHeight(63),
-                Width = Application.GetRealWidth(492),
+                Width = Application.GetRealWidth(492),
                TextID = R.MyInternationalizationString.invalidSetting,
                 TextAlignment = TextAlignment.Center,
                 TextColor = ZigbeeColor.Current.LogicTipColor,
@@ -248,7 +245,7 @@
             };
             bottomFrame.AddChidren(okBtn);
 
-            if (_if) {
+            if (_if) {
                 cancelBtn.X = Application.GetRealWidth(0);
                 cancelBtn.Width = Application.GetRealWidth(0);
                 okBtn.X = Application.GetRealWidth(0);
@@ -361,7 +358,6 @@
                 Width = Application.GetRealWidth(792),
                 Height = Application.GetRealHeight(127),
                 Gravity = Gravity.BottomCenter,
-
             };
             tipFLayout.AddChidren(bottomFrame);
             ///鍙栨秷鎺т欢
@@ -472,8 +468,8 @@
                 TextColor = ZigbeeColor.Current.LogicBtnCancelColor,
                 TextSize = 14,
             };
-            tipFLayout.AddChidren(Text1Btn);
-           
+            tipFLayout.AddChidren(Text1Btn);
+           
             new System.Threading.Thread(() =>
             {
                 System.Threading.Thread.Sleep(timeValue*1000);
@@ -486,3 +482,5 @@
         }
     }
 }
+
+
diff --git a/ZigbeeApp/Shared/Phone/Device/Logic/SkipView.cs b/ZigbeeApp/Shared/Phone/Device/Logic/SkipView.cs
index a86c900..2e68b30 100755
--- a/ZigbeeApp/Shared/Phone/Device/Logic/SkipView.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Logic/SkipView.cs
@@ -72,7 +72,7 @@
         /// </summary>
         public static void ShowAutotionView(FrameLayout functionSceneAutoBodyView)
         {
-            // functionSceneAutoBodyView.BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor;
+            //functionSceneAutoBodyView.BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor;
             #region   ---鎺ㄨ崘妯℃澘鐨勭粍浠�
             //鎺ㄨ崘妯℃澘鑳屾櫙鎺т欢
             var bjFrameLayout = new FrameLayout
diff --git a/ZigbeeApp/Shared/Phone/Device/Logic/SoneLogicList.cs b/ZigbeeApp/Shared/Phone/Device/Logic/SoneLogicList.cs
index 54e00a4..4c51329 100755
--- a/ZigbeeApp/Shared/Phone/Device/Logic/SoneLogicList.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Logic/SoneLogicList.cs
@@ -19,12 +19,6 @@
         public  Action<bool> action;
         ///绗簩鍧楃涓�绾х埗鎺т欢
         FrameLayout fLayout = new FrameLayout();
-        ///甯稿紑妯″紡鍥炬爣
-        Button modeIconBtn = new Button();
-        ///绗簩鍧楃浜岀骇鐖舵帶浠�
-        FrameLayout modeFl = new FrameLayout();
-        Button button1 = new Button();
-        Button button2= new Button();
         ///绗笁鍧楃涓�绾х埗鎺т欢
         FrameLayout listLogicFl = new FrameLayout();
         ///甯稿紑鑷姩鍖栧垪琛ㄤ笂涓嬫粦鍔ㄧ殑鎺т欢
@@ -92,30 +86,6 @@
                 BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor,
             };
             middle.AddChidren(fLayout);
-            ///甯稿紑妯″紡鍥炬爣
-            modeIconBtn = new Button
-            {
-                X = Application.GetRealWidth(395),
-                Y = Application.GetRealHeight(92),
-                Width = Application.GetMinRealAverage(294),
-                Height = Application.GetMinRealAverage(294),
-            };
-            fLayout.AddChidren(modeIconBtn);
-            ///绗簩鍧楃浜岀骇鐖舵帶浠�
-            modeFl = new FrameLayout
-            {
-            };
-            fLayout.AddChidren(modeFl);
-
-            button1 = new Button
-            {
-            };
-            modeFl.AddChidren(button1);
-
-            button2 = new Button
-            {
-            };
-            modeFl.AddChidren(button2);
             ModeView();
             #endregion
             #region 甯稿紑鑷姩鍖�
@@ -162,7 +132,7 @@
                 UnSelectedImagePath = "ZigeeLogic/add.png",
             };
             addLogicfL.AddChidren(addIconBtn);
-
+            ///鍔犲ぇ鐐瑰嚮鐑敭
             var addIconclickBtn = new Button
             {
                 Width = Application.GetRealWidth(90 + 69 + 63),
@@ -245,33 +215,46 @@
         /// <summary>
         /// 甯稿紑妯″紡寮�鍏冲垏鎹㈠浘鏍囩晫闈�
         /// </summary>
-        public async void ModeView()
+        public  void ModeView()
         {
-            
+
+            fLayout.RemoveAll();
+            ///甯稿紑妯″紡鍥炬爣
+            Button modeIconBtn = new Button
+            {
+                X = Application.GetRealWidth(395),
+                Y = Application.GetRealHeight(92),
+                Width = Application.GetMinRealAverage(294),
+                Height = Application.GetMinRealAverage(294),
+            };
+            fLayout.AddChidren(modeIconBtn);
             if (Send.CurrentDoorLock.IsDoorLockNormallyMode)
             {
-                fLayout.Height = Application.GetRealHeight(780);//鏀瑰彉楂樺害 
+
+                fLayout.Height = Application.GetRealHeight(780);//鏀瑰彉楂樺害
                 modeIconBtn.UnSelectedImagePath = "ZigeeLogic/openMode.png";//鏀瑰彉鍥炬爣鐘舵��
-                modeFl.Y = modeIconBtn.Bottom + Application.GetRealHeight(64);
-                modeFl.X = Application.GetRealWidth(0);
-                modeFl.Height = Application.GetRealHeight(127 + 199);
-                modeFl.Width = Application.GetRealHeight(1080);
-                modeFl.BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor;
-                modeFl.SetCornerWithSameRadius(Application.GetRealHeight(0), HDLUtils.RectCornerBottomLeft);
-
+                ///绗簩绾х埗鎺т欢
+                var openModeFl = new FrameLayout
+                {
+                    Y = Application.GetRealHeight(455),
+                    Height = Application.GetRealHeight(127 + 199),
+                    Width = Application.GetRealWidth(1080),
+                };
+                fLayout.AddChidren(openModeFl);
                 ///鍏抽棴鏃舵晥鎬ц嚜鍔ㄥ寲
-                button1.Y = Application.GetRealHeight(0);
-                button1.X = Application.GetRealWidth(86);
-                button1.Width = Application.GetRealWidth(907);
-                button1.Height = Application.GetRealHeight(127);
-                button1.Radius = (uint)Application.GetRealHeight(58);
-                button1.BackgroundColor = ZigbeeColor.Current.LogicBtnSaveBackgroundColor;
-                button1.TextAlignment = TextAlignment.Center;
-                button1.TextColor = ZigbeeColor.Current.LogicBtnSaveTextColor;
-                button1.TextID = MyInternationalizationString.closeUp;
-                button1.TextSize = 16;
-
-                button1.MouseUpEventHandler = async (sender, e) =>
+                Button closeBtn = new Button
+                {
+                    X = Application.GetRealWidth(86),
+                    Height = Application.GetRealHeight(127),
+                    Width = Application.GetRealWidth(907),
+                    Radius = (uint)Application.GetRealHeight(58),
+                    BackgroundColor = ZigbeeColor.Current.LogicBtnSaveBackgroundColor,
+                    TextID = MyInternationalizationString.closeUp,
+                    TextColor = ZigbeeColor.Current.LogicBtnSaveTextColor,
+                    TextSize = 16,
+                };
+                openModeFl.AddChidren(closeBtn);
+                closeBtn.MouseUpEventHandler += async (sender, e) =>
                 {
                     CommonPage.Loading.Start();
                     try
@@ -302,16 +285,20 @@
                         });
                     }
                 };
+
+                ///鏄剧ず澶辨晥璁剧疆鏃堕棿鏂囨湰鎺т欢
+                var timeTextBtn = new Button
+                {
+                    Y = Application.GetRealHeight(127 + 69),
+                    X = Application.GetRealWidth(125),
+                    Width = Application.GetRealWidth(634 + 200),
+                    Height = Application.GetRealHeight(60),
+                    TextSize = 15,
+                    TextColor = ZigbeeColor.Current.LogicTextBlackColor,
+                };
                 if (logicId != 0)
                 {
-                    ///鏄剧ず澶辨晥璁剧疆鏃堕棿鏂囨湰鎺т欢
-                    button2.Y = Application.GetRealHeight(127 + 69);
-                    button2.X = Application.GetRealWidth(125);
-                    button2.Width = Application.GetRealWidth(634 + 200);
-                    button2.Height = Application.GetRealHeight(60);
-                    button2.UnSelectedImagePath = "ZigeeLogic/1234.png";
-                    button2.TextSize = 15;
-                    button2.TextColor = ZigbeeColor.Current.LogicTextBlackColor;
+                    openModeFl.AddChidren(timeTextBtn);
                     ///鏈夋椂鏁堟�у父寮�鎵嶆樉绀烘椂闂存潯浠舵枃鏈�
                     var y = DateTime.Now.Year.ToString();//閭d竴骞�
                     var m = DateTime.Now.Month.ToString();//閭d竴鏈�
@@ -325,72 +312,80 @@
                     string text3 = Language.StringByID(MyInternationalizationString.monthSone);
                     string text4 = Language.StringByID(MyInternationalizationString.numberSone);
                     string text5 = Language.StringByID(MyInternationalizationString.executeSone);
-                    button2.Text = text1 + y + text2 + m + text3 + days.ToString() + text4 + hour.ToString() + text5;
+                    timeTextBtn.Text = text1 + y + text2 + m + text3 + days.ToString() + text4 + hour.ToString() + text5;
                 }
-                else
-                {
-                    button2.Y = Application.GetRealHeight(0);
-                    button2.X = Application.GetRealWidth(0);
-                    button2.Width = Application.GetRealWidth(0);
-                    button2.Height = Application.GetRealHeight(0);
-                }
-           
+
 
             }
             else
             {
                 fLayout.Height = Application.GetRealHeight(645);//鏀瑰彉楂樺害
                 modeIconBtn.UnSelectedImagePath = "ZigeeLogic/noMode.png";//鏀瑰彉鍥炬爣鐘舵��
-                modeFl.Y = modeIconBtn.Bottom + Application.GetRealHeight(92);
-                modeFl.X = Application.GetRealWidth(58);
-                modeFl.Height = Application.GetRealHeight(138);
-                modeFl.Width = Application.GetRealHeight(1022);
-                modeFl.BackgroundColor = ZigbeeColor.Current.LogicBlankBackgroundColor;
+                ///绗簩绾х埗鎺т欢
+                var modeFl = new FrameLayout
+                {
+                    Y = Application.GetRealHeight(478),
+                    X = Application.GetRealWidth(58),
+                    Height = Application.GetRealHeight(138),
+                    Width = Application.GetRealWidth(1022),
+                    BackgroundColor = ZigbeeColor.Current.LogicBlankBackgroundColor,
+                };
+                fLayout.AddChidren(modeFl);
                 modeFl.SetCornerWithSameRadius(Application.GetRealHeight(58), HDLUtils.RectCornerBottomLeft);
-
                 ///鏃舵晥鎬у父寮�璁剧疆鏄剧ず鏂囨湰鎺т欢
-                button1.Y = Application.GetRealHeight(40);
-                button1.X = Application.GetRealWidth(58);
-                button1.Width = Application.GetRealWidth(600);
-                button1.Height = Application.GetRealHeight(60);
-                button1.Radius = (uint)Application.GetRealHeight(0);
-                button1.BackgroundColor = ZigbeeColor.Current.LogicBlankBackgroundColor;
-                button1.TextAlignment = TextAlignment.CenterLeft;
-                button1.TextColor = ZigbeeColor.Current.LogicTextBlackColor;
-                // Text = "鏃舵晥鎬у父寮�璁剧疆",
-                button1.TextID = MyInternationalizationString.timeSetSone;
-                button1.TextSize = 15;
-
-
-                ///涓嬩竴绾ц彍鍗曞浘鏍囨帶浠�
-                button2.Width = Application.GetMinRealAverage(104);
-                button2.Height = Application.GetMinRealAverage(104);
-                button2.X = Application.GetRealWidth(861);
-                button2.Y = Application.GetRealHeight(17);
-                button2.UnSelectedImagePath = "ZigeeLogic/nextIconSone.png";
-                button2.TextSize = 15;
-                button2.TextColor = ZigbeeColor.Current.LogicTextBlackColor;
-                button2.Text ="";
-                button2.MouseUpEventHandler = (sender, e) =>
+                var modeTextBtn = new Button
                 {
 
-                    LogicView.TipView.ShowConfrimTip(() =>
+                    Y = Application.GetRealHeight(40),
+                    X = Application.GetRealWidth(58),
+                    Width = Application.GetRealWidth(600),
+                    Height = Application.GetRealHeight(60),
+                    TextSize = 15,
+                    TextColor = ZigbeeColor.Current.LogicTextBlackColor,
+                    TextAlignment = TextAlignment.CenterLeft,
+                    // Text = "鏃舵晥鎬у父寮�璁剧疆",
+                    TextID = MyInternationalizationString.timeSetSone,
+                };
+                modeFl.AddChidren(modeTextBtn);
+                ///涓嬩竴绾ц彍鍗曞浘鏍囨帶浠�
+                var nextIconBtn = new Button
+                {
+                    Width = Application.GetMinRealAverage(104),
+                    Height = Application.GetMinRealAverage(104),
+                    X = Application.GetRealWidth(861),
+                    Y = Application.GetRealHeight(17),
+                    UnSelectedImagePath = "ZigeeLogic/nextIconSone.png",
+                };
+                modeFl.AddChidren(nextIconBtn);
 
-                    {///鍐嶆纭
+                ///鍔犲ぇ鐐瑰嚮鐑敭
+                var clickBtn = new Button
+                {
+                    Width = Application.GetRealWidth(104 + 161 + 30),
+                    Height = Application.GetRealHeight(138),
+                    X = Application.GetRealWidth(700),
+                };
+                modeFl.AddChidren(clickBtn);
+                clickBtn.MouseUpEventHandler += (sender, e) =>
+                 {
+
+                     LogicView.TipView.ShowConfrimTip(() =>
+
+                     {///鍐嶆纭
                         LogicView.TipView.ShowInputTip(true, async (str) =>
-                        {///纭鍙戦�佸懡浠�
+                         {///纭鍙戦�佸懡浠�
                             CommonPage.Loading.Start();
-                            try
-                            {
+                             try
+                             {
                                 ///xm
                                 var result = await UserCenter.DoorLock.DoorLockCommonInfo.SetNormallyOpenModeFuncAsync(Send.CurrentDoorLock);
-                                if (!result)
-                                {
-                                    LogicView.TipView.ShowFlashTip(Language.StringByID(MyInternationalizationString.openFailed));
-                                    return;
-                                }
-                                else
-                                {
+                                 if (!result)
+                                 {
+                                     LogicView.TipView.ShowFlashTip(Language.StringByID(MyInternationalizationString.openFailed));
+                                     return;
+                                 }
+                                 else
+                                 {
                                     ///鍥犱负鏈夊父寮�妯″紡涓嬫墠鍙互鍒涘缓澶辨晥閫昏緫锛�
                                     SkipView.GetLogicAll();//鍒犻櫎涔嬪墠鎵�鏈夊け鏁堥�昏緫
                                     var addResult = await SkipView.LockAddModifyLogic(int.Parse(str), Send.CurrentDoorLock);//娣诲姞涓�鏉″け鏁堥�昏緫
@@ -477,8 +472,10 @@
 
             }
         }
-      
-        RowLayout selectedRow = new RowLayout() { Tag = "0" };//璁板綍宸︽粦鐘舵��
+        /// <summary>
+        /// 璁板綍宸︽粦鐘舵��
+        /// </summary>
+        RowLayout selectedRow = new RowLayout() { Tag = "0" };
         int a = 1;
         /// <summary>
         /// 鍔犺浇鑷姩鍖栧垪琛�
@@ -644,6 +641,6 @@
                 };
             }
         }
-
+     
     }
 }
diff --git a/ZigbeeApp/Shared/Phone/MainPage/ControlForm/DeviceFreshAirDetailCardForm.cs b/ZigbeeApp/Shared/Phone/MainPage/ControlForm/DeviceFreshAirDetailCardForm.cs
index eb95779..8c05c1f 100755
--- a/ZigbeeApp/Shared/Phone/MainPage/ControlForm/DeviceFreshAirDetailCardForm.cs
+++ b/ZigbeeApp/Shared/Phone/MainPage/ControlForm/DeviceFreshAirDetailCardForm.cs
@@ -19,7 +19,7 @@
         /// <summary>
         /// 鎺т欢
         /// </summary>
-        private FreshAir FreshAirDev = null;
+        private FreshAir freshAirDev = null;
         /// <summary>
         /// 鐘舵�佹帶浠�
         /// </summary>
@@ -39,10 +39,9 @@
         #region 鈻� 鍒濆鍖朹____________________________
         public override void InitMiddleFrameAfter(FrameLayout frameWhiteBack)
         {
-
             //宸︽粦涓嶈兘
             this.ScrollEnabled = true;
-            this.FreshAirDev = (FreshAir)this.device;
+            this.freshAirDev = (FreshAir)this.device;
             //鍏堟竻绌�
             this.listControl = new List<ButtonBase>();
             InitFreshAirControl(frameWhiteBack);
@@ -64,6 +63,13 @@
             frameAcBack.BackgroundImagePath = "FreshAir/FreshAirPic.png";
             frameWhiteBack.AddChidren(frameAcBack);
 
+            //鏂伴鑷姩Layout銆愪负浜嗘墿澶х偣鍑昏寖鍥淬��
+            var autoFrameLayout = new NormalViewControl(213 + 40, 63 + 80, true);
+            autoFrameLayout.X = Application.GetRealWidth(275 - 20);
+            autoFrameLayout.Y = Application.GetRealHeight(821 - 20);
+            frameWhiteBack.AddChidren(autoFrameLayout);
+            autoFrameLayout.ButtonClickEvent += HandlerAuto;
+
             // 鑷姩锛堢1涓紝listControl銆�0銆戯級
             var btnAuto = new NormalViewControl(213, 63, true);
             btnAuto.X = Application.GetRealWidth(275);
@@ -73,14 +79,9 @@
             btnAuto.IsBold = false;
             btnAuto.TextAlignment = TextAlignment.Center;
             frameWhiteBack.AddChidren(btnAuto);
+
             this.listControl.Add(btnAuto);
-            btnAuto.ButtonClickEvent += (sender, e) =>
-            {
-                if (!btnAuto.IsSelected)
-                {
-                    this.SetFanComand(5);
-                }
-            };
+            btnAuto.ButtonClickEvent += HandlerAuto;
 
             //鑷姩涓嬪垝绾匡紙绗�2涓紝listControl銆�1銆戯級
             var btnAutoLine = new NormalViewControl(72, 12, true);
@@ -90,6 +91,14 @@
             btnAutoLine.Visible = false;
             frameWhiteBack.AddChidren(btnAutoLine);
             this.listControl.Add(btnAutoLine);
+            btnAutoLine.ButtonClickEvent += HandlerAuto;
+
+            //鏂伴鎵嬪姩Layout銆愪负浜嗘墿澶х偣鍑昏寖鍥淬��
+            var manualFrameLayout = new NormalViewControl(213 + 40, 63 + 80, true);
+            manualFrameLayout.X = Application.GetRealWidth(488 - 20);
+            manualFrameLayout.Y = Application.GetRealHeight(821 - 20);
+            frameWhiteBack.AddChidren(manualFrameLayout);
+            manualFrameLayout.ButtonClickEvent += HandlerManual;
 
             //鎵嬪姩锛堢3涓紝listControl銆�2銆戯級
             var btnManual = new NormalViewControl(213, 63, true);
@@ -101,13 +110,7 @@
             btnManual.TextAlignment = TextAlignment.Center;
             frameWhiteBack.AddChidren(btnManual);
             this.listControl.Add(btnManual);
-            btnManual.ButtonClickEvent += (sender, e) =>
-            {
-                if (!btnManual.IsSelected)
-                {
-                    this.SetFanComand(15);
-                }
-            };
+            btnManual.ButtonClickEvent += HandlerManual;
 
             //鎵嬪姩涓嬪垝绾匡紙绗�4涓紝listControl銆�3銆戯級
             var btnManualLine = new NormalViewControl(72, 12, true);
@@ -117,6 +120,7 @@
             btnManualLine.Visible = false;
             frameWhiteBack.AddChidren(btnManualLine);
             this.listControl.Add(btnManualLine);
+            btnManualLine.ButtonClickEvent += HandlerManual;
 
             //楂橀锛堢5涓紝listControl銆�4銆戯級
             var btnHighSpeed = new IconViewControl(81);
@@ -128,7 +132,11 @@
             this.listControl.Add(btnHighSpeed);
             btnHighSpeed.ButtonClickEvent += (sender, e) =>
             {
-                if (FreshAirDev.currentFanMode == 5)
+                if (freshAirDev.currentFanStatus == 0)
+                {
+                    return;
+                }
+                if (freshAirDev.currentFanMode == 5)
                 {
                     var msgContr = new ShowMsgControl(ShowMsgType.Tip, Language.StringByID(R.MyInternationalizationString.AutoModeForbiddenOperate));
                     msgContr.Show();
@@ -137,6 +145,7 @@
 
                 if (!btnHighSpeed.IsSelected)
                 {
+                    this.listControl[4].Enable = false;
                     this.SetFanComand(3);
                 }
             };
@@ -154,10 +163,12 @@
                 btnSwitch.IsSelected = !btnSwitch.IsSelected;
                 if (btnSwitch.IsSelected)
                 {
+                    this.listControl[5].Enable = false;
                     this.SetFanComand(4);
                 }
                 else
                 {
+                    this.listControl[5].Enable = false;
                     this.SetFanComand(0);
                 }
             };
@@ -172,7 +183,11 @@
             this.listControl.Add(btnLowSpeed);
             btnLowSpeed.ButtonClickEvent += (sender, e) =>
             {
-                if (FreshAirDev.currentFanMode == 5)
+                if (freshAirDev.currentFanStatus == 0)
+                {
+                    return;
+                }
+                if (freshAirDev.currentFanMode == 5)
                 {
                     var msgContr = new ShowMsgControl(ShowMsgType.Tip, Language.StringByID(R.MyInternationalizationString.AutoModeForbiddenOperate));
                     msgContr.Show();
@@ -180,9 +195,54 @@
                 }
                 if (!btnLowSpeed.IsSelected)
                 {
+                    this.listControl[6].Enable = false;
                     this.SetFanComand(1);
                 }
             };
+        }
+
+        /// <summary>
+        /// 鑷姩浜嬩欢
+        /// </summary>
+        /// <param name="sender"></param>
+        /// <param name="e"></param>
+        private void HandlerAuto(object sender, MouseEventArgs e)
+        {
+            if (freshAirDev.currentFanStatus == 0)
+            {
+                return;
+            }
+            if (freshAirDev.currentFanMode == 5)
+            {
+                return;
+            }
+            if (!listControl[0].IsSelected)
+            {
+                this.listControl[0].Enable = false;
+                this.SetFanComand(5);
+            }
+        }
+
+        /// <summary>
+        /// 鎵嬪姩浜嬩欢
+        /// </summary>
+        /// <param name="sender"></param>
+        /// <param name="e"></param>
+        private void HandlerManual(object sender, MouseEventArgs e)
+        {
+            if (freshAirDev.currentFanStatus == 0)
+            {
+                return;
+            }
+            if (freshAirDev.currentFanMode == 15)
+            {
+                return;
+            }
+            if (!this.listControl[2].IsSelected)
+            {
+                this.listControl[2].Enable = false;
+                this.SetFanComand(15);
+            }
         }
         #endregion 
 
@@ -217,6 +277,11 @@
                     }
                 }
             }
+            this.listControl[0].Enable = true;
+            this.listControl[2].Enable = true;
+            this.listControl[4].Enable = true;
+            this.listControl[5].Enable = true;
+            this.listControl[6].Enable = true;
             return false;
         }
         #endregion
@@ -245,22 +310,22 @@
             switch (command)
             {
                 case 0:
-                    FreshAirDev.Close();
+                    freshAirDev.Close();
                     break;
                 case 1:
-                    FreshAirDev.SetLowSpeed();
+                    freshAirDev.SetLowSpeed();
                     break;
                 case 3:
-                    FreshAirDev.SetHighSpeed();
+                    freshAirDev.SetHighSpeed();
                     break;
                 case 4:
-                    FreshAirDev.Open();
+                    freshAirDev.Open();
                     break;
                 case 5:
-                    FreshAirDev.SetAuto();
+                    freshAirDev.SetAuto();
                     break;
                 case 15:
-                    FreshAirDev.SetManual();
+                    freshAirDev.SetManual();
                     break;
             }
         }
@@ -273,14 +338,15 @@
         private void UpdateStatus()
         {
             //璁剧疆鐘舵�佹枃瀛�
-            if (FreshAirDev.currentFanStatus == 4)
+            if (freshAirDev.currentFanStatus == 4)
             {
+                this.listControl[5].Enable = true;
                 //鎵撳紑
                 this.listControl[5].IsSelected = true;
                 //璁剧疆鐘舵�佹枃瀛� 
                 this.SetStatuText(Language.StringByID(R.MyInternationalizationString.uOpen1));
             }
-            if (FreshAirDev.currentFanStatus == 0)
+            if (freshAirDev.currentFanStatus == 0)
             {
                 //鍏抽棴
                 this.listControl[0].TextColor = ZigbeeColor.Current.XMGray3;
@@ -292,13 +358,14 @@
                 this.listControl[4].IsSelected = false;
                 this.listControl[5].IsSelected = false;
                 this.listControl[6].IsSelected = false;
+                this.listControl[5].Enable = true;
                 //璁剧疆鐘舵�佹枃瀛� 
                 this.SetStatuText(Language.StringByID(R.MyInternationalizationString.Close));
                 return;
             }
 
             //璁剧疆妯″紡
-            if (FreshAirDev.currentFanMode == 5)
+            if (freshAirDev.currentFanMode == 5)
             {
                 this.listControl[0].TextColor = ZigbeeColor.Current.XMGray1;
                 this.listControl[0].IsBold = true;
@@ -306,8 +373,9 @@
                 this.listControl[2].TextColor = ZigbeeColor.Current.XMGray3;
                 this.listControl[2].IsBold = false;
                 this.listControl[3].Visible = false;
+                this.listControl[0].Enable = true;
             }
-            else if (FreshAirDev.currentFanMode == 15)
+            else if (freshAirDev.currentFanMode == 15)
             {
                 this.listControl[0].TextColor = ZigbeeColor.Current.XMGray3;
                 this.listControl[0].IsBold = false;
@@ -315,18 +383,21 @@
                 this.listControl[2].TextColor = ZigbeeColor.Current.XMGray1;
                 this.listControl[2].IsBold = true;
                 this.listControl[3].Visible = true;
+                this.listControl[2].Enable = true;
             }
 
             //璁剧疆椋庨��
-            if (FreshAirDev.currentFanSpeed == 1)
+            if (freshAirDev.currentFanSpeed == 1)
             {
                 this.listControl[4].IsSelected = false;
                 this.listControl[6].IsSelected = true;
+                this.listControl[6].Enable = true;
             }
-            else if (FreshAirDev.currentFanSpeed == 3)
+            else if (freshAirDev.currentFanSpeed == 3)
             {
                 this.listControl[4].IsSelected = true;
                 this.listControl[6].IsSelected = false;
+                this.listControl[4].Enable = true;
             }
         }
         #endregion
diff --git a/ZigbeeApp/Shared/Phone/MainPage/ControlForm/DevicePmSensorDetailCardForm.cs b/ZigbeeApp/Shared/Phone/MainPage/ControlForm/DevicePmSensorDetailCardForm.cs
new file mode 100755
index 0000000..45f747d
--- /dev/null
+++ b/ZigbeeApp/Shared/Phone/MainPage/ControlForm/DevicePmSensorDetailCardForm.cs
@@ -0,0 +1,279 @@
+锘縰sing System;
+using System.Collections.Generic;
+using Shared.Common;
+using Shared.Phone.UserCenter;
+using ZigBee.Device;
+
+namespace Shared.Phone.MainPage.ControlForm
+{
+    /// <summary>
+    /// PM2.5浼犳劅鍣ㄧ被鍨嬬殑娣卞害鍗$墖鐣岄潰
+    /// </summary>
+    public class DevicePmSensorDetailCardForm : DeviceDetailCardCommonForm
+    {
+        #region 鈻� 鍙橀噺澹版槑___________________________ 
+        /// <summary>
+        /// 鐣岄潰涓婂彲浠ユ搷浣滅殑鎺т欢
+        /// </summary>
+        private List<ButtonBase> listControl = new List<ButtonBase>();
+        /// <summary>
+        /// 鎺т欢
+        /// </summary>
+        private PMSensor pMSensor = null;
+        /// <summary>
+        /// 鐘舵�佹帶浠�
+        /// </summary>
+        private NormalViewControl btnStatu = null;
+        /// <summary>
+        /// 褰撳墠鐨勬枃鏈�
+        /// </summary>
+        private string CurrentText = string.Empty;
+
+        /// <summary>
+        /// 璁惧鍚嶇О鎺т欢
+        /// </summary>
+        private NormalViewControl btnDeviceName = null;
+
+        #endregion
+
+        #region 鈻� 鍒濆鍖朹____________________________
+        public override void InitMiddleFrameAfter(FrameLayout frameWhiteBack)
+        {
+            //宸︽粦涓嶈兘
+            this.ScrollEnabled = true;
+            this.pMSensor = (PMSensor)this.device;
+            //鍏堟竻绌�
+            this.listControl = new List<ButtonBase>();
+            InitFreshAirControl(frameWhiteBack);
+            UpdateStatus();
+        }
+
+        /// <summary>
+        /// 鍒濆鍖朠M2.5浼犳劅鍣ㄦ帶浠�
+        /// </summary>
+        /// <param name="frameWhiteBack"></param>
+        private void InitFreshAirControl(FrameLayout frameWhiteBack)
+        {
+            //婀垮害瀹瑰櫒
+            var frameHumidityPic = new FrameLayout();
+            frameHumidityPic.X = Application.GetMinRealAverage(138);
+            frameHumidityPic.Y = Application.GetRealHeight(242);
+            frameHumidityPic.Width = Application.GetMinRealAverage(311);
+            frameHumidityPic.Height = Application.GetMinRealAverage(351);
+            frameHumidityPic.BackgroundImagePath = "PM2.5Sensor/HumidityPic.png";
+            frameWhiteBack.AddChidren(frameHumidityPic);
+
+            //婀垮害鏂囨湰
+            var btnHumidityText = new NormalViewControl(311, 49, true);
+            btnHumidityText.Y = Application.GetRealHeight(45);
+            btnHumidityText.TextID = R.MyInternationalizationString.Humidity;
+            btnHumidityText.TextSize = 12;
+            btnHumidityText.TextColor = ZigbeeColor.Current.XMWhite;
+            btnHumidityText.TextAlignment = TextAlignment.Center;
+            frameHumidityPic.AddChidren(btnHumidityText);
+
+            //婀垮害鏁版嵁锛堢1涓紝listControl銆�0銆戯級
+            var btnHumidityStatus = new NormalViewControl(193, 92, true);
+            btnHumidityStatus.Y = Application.GetRealHeight(181);
+            btnHumidityStatus.Text = "20";
+            btnHumidityStatus.TextSize = 32;
+            btnHumidityStatus.TextColor = ZigbeeColor.Current.XMWhite;
+            btnHumidityStatus.TextAlignment = TextAlignment.CenterRight;
+            frameHumidityPic.AddChidren(btnHumidityStatus);
+            this.listControl.Add(btnHumidityStatus);
+
+            //婀垮害鍗曚綅
+            var btnHumidityUnit = new NormalViewControl(37 + 81, 40, true);
+            btnHumidityUnit.Y = Application.GetRealHeight(181 + 46);
+            btnHumidityUnit.X = Application.GetRealWidth(190);
+            btnHumidityUnit.Text = "%";
+            btnHumidityUnit.TextSize = 14;
+            btnHumidityUnit.TextColor = ZigbeeColor.Current.XMWhite;
+            btnHumidityUnit.TextAlignment = TextAlignment.CenterLeft;
+            frameHumidityPic.AddChidren(btnHumidityUnit);
+
+            //娓╁害瀹瑰櫒
+            var frameTemperaturePic = new FrameLayout();
+            frameTemperaturePic.X = Application.GetMinRealAverage(518);
+            frameTemperaturePic.Y = Application.GetRealHeight(242);
+            frameTemperaturePic.Width = Application.GetMinRealAverage(311);
+            frameTemperaturePic.Height = Application.GetMinRealAverage(351);
+            frameTemperaturePic.BackgroundImagePath = "PM2.5Sensor/TemperaturePic.png";
+            frameWhiteBack.AddChidren(frameTemperaturePic);
+            //娓╁害鏂囨湰
+            var btnTemperatureText = new NormalViewControl(311, 49, true);
+            btnTemperatureText.Y = Application.GetRealHeight(45);
+            btnTemperatureText.TextID = R.MyInternationalizationString.Temperature;
+            btnTemperatureText.TextSize = 12;
+            btnTemperatureText.TextColor = ZigbeeColor.Current.XMWhite;
+            btnTemperatureText.TextAlignment = TextAlignment.Center;
+            frameTemperaturePic.AddChidren(btnTemperatureText);
+
+            //娓╁害鏁版嵁锛堢2涓紝listControl銆�1銆戯級
+            var btnTemperatureStatus = new NormalViewControl(193, 92, true);
+            btnTemperatureStatus.Y = Application.GetRealHeight(181);
+            btnTemperatureStatus.Text = "20";
+            btnTemperatureStatus.TextSize = 32;
+            btnTemperatureStatus.TextColor = ZigbeeColor.Current.XMWhite;
+            btnTemperatureStatus.TextAlignment = TextAlignment.CenterRight;
+            frameTemperaturePic.AddChidren(btnTemperatureStatus);
+            this.listControl.Add(btnTemperatureStatus);
+
+            //娓╁害鍗曚綅
+            var btnTemperatureUnit = new NormalViewControl(40 + 81, 40, true);
+            btnTemperatureUnit.Y = Application.GetRealHeight(181 + 46);
+            btnTemperatureUnit.X = Application.GetRealWidth(188);
+            btnTemperatureUnit.Text = "鈩�";
+            btnTemperatureUnit.TextSize = 14;
+            btnTemperatureUnit.TextColor = ZigbeeColor.Current.XMWhite;
+            btnTemperatureUnit.TextAlignment = TextAlignment.CenterLeft;
+            frameTemperaturePic.AddChidren(btnTemperatureUnit);
+
+            //PM2.5浼犳劅鍣ㄧ殑PM2.5瀹瑰櫒
+            var framePmPic = new FrameLayout();
+            framePmPic.X = Application.GetMinRealAverage(138);
+            framePmPic.Y = Application.GetRealHeight(662);
+            framePmPic.Width = Application.GetMinRealAverage(311);
+            framePmPic.Height = Application.GetMinRealAverage(351);
+            framePmPic.BackgroundImagePath = "PM2.5Sensor/PmPic.png";
+            frameWhiteBack.AddChidren(framePmPic);
+            //PM2.5鏂囨湰
+            var btnPmText = new NormalViewControl(311, 49, true);
+            btnPmText.Y = Application.GetRealHeight(45);
+            btnPmText.Text = "PM2.5";
+            btnPmText.TextSize = 12;
+            btnPmText.TextColor = ZigbeeColor.Current.XMWhite;
+            btnPmText.TextAlignment = TextAlignment.Center;
+            framePmPic.AddChidren(btnPmText);
+
+            //PM2.5鏁版嵁锛堢3涓紝listControl銆�2銆戯級
+            var btnPmStatus = new NormalViewControl(109 + 40, 92, true);
+            btnPmStatus.Y = Application.GetRealHeight(181);
+            btnPmStatus.Text = "35";
+            btnPmStatus.TextSize = 32;
+            btnPmStatus.TextColor = ZigbeeColor.Current.XMWhite;
+            btnPmStatus.TextAlignment = TextAlignment.CenterRight;
+            framePmPic.AddChidren(btnPmStatus);
+            this.listControl.Add(btnPmStatus);
+
+            //PM2.5鍗曚綅
+            var btnPmUnit = new NormalViewControl(124 + 15, 43, true);
+            btnPmUnit.Y = Application.GetRealHeight(181 + 46);
+            btnPmUnit.X = Application.GetRealWidth(150);
+            btnPmUnit.Text = "渭g/m鲁";
+            btnPmUnit.TextSize = 14;
+            btnPmUnit.TextColor = ZigbeeColor.Current.XMWhite;
+            btnPmUnit.TextAlignment = TextAlignment.CenterLeft;
+            framePmPic.AddChidren(btnPmUnit);
+        }
+        #endregion 
+
+        #region 鈻� 鏄惁鑾峰彇缃戝叧鍙嶉鐨勭粨鏋淿____________
+
+        /// <summary>
+        /// 妫�娴嬬綉鍏崇殑鍙嶉缁撴灉(灞炴�т笂鎶ョ殑瀵硅薄锛歞evice.DeviceStatusReport)
+        /// </summary>
+        /// <param name="comandDiv">鍛戒护鍖哄垎</param>
+        /// <param name="report">涓婃姤鏁版嵁</param>
+        /// <returns></returns>
+        public override bool CheckResponeResultStatu(ReceiveComandDiv comandDiv, CommonDevice report)
+        {
+            if (comandDiv == ReceiveComandDiv.A璁惧灞炴�т笂鎶�)
+            {
+                if (report.DeviceStatusReport.CluterID == 1026)
+                {
+                    var attriButeList = report.DeviceStatusReport.AttriBute;
+                    foreach (var attList in attriButeList)
+                    {
+                        if (attList.AttributeId == 0)
+                        {
+                            HdlThreadLogic.Current.RunMain(() =>
+                            {
+                                UpdateStatus();
+                            });
+
+                            //宸茬粡鎺ユ敹鍒扮綉鍏崇殑鍙嶉
+                            return true;
+                        }
+                    }
+                }
+                if (report.DeviceStatusReport.CluterID == 1029)
+                {
+                    var attriButeList = report.DeviceStatusReport.AttriBute;
+                    foreach (var attList in attriButeList)
+                    {
+                        if (attList.AttributeId == 0)
+                        {
+                            HdlThreadLogic.Current.RunMain(() =>
+                            {
+                                UpdateStatus();
+                            });
+
+                            //宸茬粡鎺ユ敹鍒扮綉鍏崇殑鍙嶉
+                            return true;
+                        }
+                    }
+                }
+                if (report.DeviceStatusReport.CluterID == 1066)
+                {
+                    var attriButeList = report.DeviceStatusReport.AttriBute;
+                    foreach (var attList in attriButeList)
+                    {
+                        if (attList.AttributeId == 0)
+                        {
+                            HdlThreadLogic.Current.RunMain(() =>
+                            {
+                                UpdateStatus();
+                            });
+
+                            //宸茬粡鎺ユ敹鍒扮綉鍏崇殑鍙嶉
+                            return true;
+                        }
+                    }
+                }
+            }
+            return false;
+        }
+        #endregion
+
+        #region 鈻� 璁剧疆鏂规硶 
+        /// <summary>
+        ///鍛戒护
+        ///0:Off
+        ///1:Low
+        ///3:High
+        ///4:On
+        ///5:Auto
+        /// 15:Manual
+        /// </summary> 
+        private void SetFanComand(int command)
+        {
+            //妫�娴嬫槸鍚﹁幏鍙栫綉鍏冲弽棣堢殑缁撴灉,濡傛灉缃戝叧娌℃湁鍥炲,鍒欎細寮瑰嚭娑堟伅
+            this.StartCheckResponeResult(this.listControl, (result) =>
+            {
+                //鎺ユ敹鍒扮綉鍏冲洖澶�
+                if (result == true)
+                {
+                }
+            });
+
+
+        }
+        #endregion
+
+        #region 鈻� 鍒锋柊鐘舵�乢____________
+        /// <summary>
+        /// 鍒锋柊鐘舵��
+        /// </summary>
+        private void UpdateStatus()
+        {
+            //璁剧疆鐘舵�佹枃瀛�
+            this.listControl[0].Text = pMSensor.currentTemperature.ToString();
+            this.listControl[1].Text = pMSensor.currentHumidity.ToString();
+            this.listControl[2].Text = pMSensor.currentPmData.ToString();
+            //璁剧疆鐘舵�佹枃瀛� 
+            this.SetStatuText(Language.StringByID(R.MyInternationalizationString.uOpen1));
+        }
+        #endregion
+    }
+}
diff --git a/ZigbeeApp/Shared/Phone/MainPage/UnallocatedRoomForm.cs b/ZigbeeApp/Shared/Phone/MainPage/UnallocatedRoomForm.cs
index 81d6f2a..a238bb8 100755
--- a/ZigbeeApp/Shared/Phone/MainPage/UnallocatedRoomForm.cs
+++ b/ZigbeeApp/Shared/Phone/MainPage/UnallocatedRoomForm.cs
@@ -635,7 +635,7 @@
                     string path1 = string.Empty;
                     string path2 = string.Empty;
                     //鑾峰彇鍥剧墖
-                    Common.LocalDevice.Current.GetDeviceObjectIcon(typeInfo.ConcreteType, ref path1, ref path2);
+                    Common.LocalDevice.Current.GetDeviceFunctionTypeMenuIcon(typeInfo.ConcreteType, ref path1, ref path2);
                     dic[typeInfo.BeloneTextId].IconPath = path1;
                     dic[typeInfo.BeloneTextId].IconPathSelected = path2;
                     dic[typeInfo.BeloneTextId].TextId = typeInfo.BeloneTextId;
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/RowLayoutControls/DeviceFunctionTypeRowControl.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/RowLayoutControls/DeviceFunctionTypeRowControl.cs
index c62d9d6..1e53f96 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/RowLayoutControls/DeviceFunctionTypeRowControl.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/RowLayoutControls/DeviceFunctionTypeRowControl.cs
@@ -192,6 +192,12 @@
                 strType = Language.StringByID(R.MyInternationalizationString.FreshAir);
                 nowSelectNo = -1;
             }
+            else if (this.device.Type == DeviceType.PMSensor)
+            {
+                //PM2.5浼犳劅鍣ㄥ浐瀹氫负 绌烘皵璐ㄩ噺
+                strType = Language.StringByID(R.MyInternationalizationString.AirQuality);
+                nowSelectNo = -1;
+            }
 
             //鏄剧ず鏂囨湰
             this.txtView.Text = strType;
@@ -216,6 +222,7 @@
                 || this.device.Type == DeviceType.OnOffOutput//缁х數鍣�
                 || this.device.Type == DeviceType.Thermostat//绌鸿皟
                 || this.device.Type == DeviceType.FreshAir//鏂伴
+                || this.device.Type == DeviceType.PMSensor //PM2.5
                 || this.device.Type == DeviceType.WindowCoveringDevice)//绐楀笜
             {
                 return true;
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceFunctionSettionForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceFunctionSettionForm.cs
index 6b79eb0..b5ade0c 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceFunctionSettionForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceFunctionSettionForm.cs
@@ -84,7 +84,7 @@
             //鍒濆鍖栨甯�
             this.tableContr = new InformationEditorControl();
 
-            if (this.deviceObj.Type == DeviceType.FreshAir)
+            if (this.deviceObj.Type == DeviceType.FreshAir || this.deviceObj.Type == DeviceType.PMSensor)
             {
                 this.listview = tableContr.InitControl(listBackControl.frameTable, Language.StringByID(R.MyInternationalizationString.uDeviceEditor), 1028);
             }
@@ -330,6 +330,19 @@
                         frameBack.Y = Application.GetRealHeight(153);
                         frameBack.Gravity = Gravity.Center;
                     }
+
+                    //濡傛灉鏄疨M2.5
+                    if (deviceObj.Type == DeviceType.PMSensor)
+                    {
+                        frame.RemoveFromParent();
+                        frameBorder.Y = Application.GetRealHeight(0);
+                        frameBorder.Height = Application.GetRealHeight(708);
+                        frameBack.BackgroundImagePath = "RealDevice/SensorPMTwoPointFive.png";
+                        frameBack.Width = this.GetPictrueRealSize(418);
+                        frameBack.Height = this.GetPictrueRealSize(403);
+                        frameBack.Y = Application.GetRealHeight(153);
+                        frameBack.Gravity = Gravity.Center;
+                    }
                 }
                 else
                 {
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceMacInfoEditorForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceMacInfoEditorForm.cs
index 1bc724f..fda6ee2 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceMacInfoEditorForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceMacInfoEditorForm.cs
@@ -268,7 +268,16 @@
                 if (this.CheckCanShowFunctionSettionRow() == true)
                 {
                     //娣诲姞銆愬姛鑳借缃�戣
-                    this.AddFunctionSettionRow();
+                    if (deviceEnumInfo.ConcreteType == DeviceConcreteType.Sensor_PMTwoPointFive)
+                    {
+                        //PM浼犳劅鍣�
+                        this.AddFunctionSettionRowPM();
+                    }
+                    else
+                    {
+                        this.AddFunctionSettionRow();
+                    }
+
                 }
 
                 //娣诲姞銆愬共鎺ョ偣璁剧疆銆戣
@@ -682,7 +691,7 @@
             //鍙湁鍥炶矾鏁板ぇ浜�1鎵嶈兘鏈夎繖涓彍鍗�
             if (Common.LocalDevice.Current.GetDevicesCountByMac(listNewDevice[0].DeviceAddr) == 1)
             {
-                //瑕佹眰鏂伴灏忔ā鍧楃殑鏂伴鏈夊姛鑳借缃�
+                //鏂伴灏忔ā鍧楀彧鏈変竴涓洖璺紝浣嗚姹傛柊椋庡皬妯″潡鐨勬柊椋庢湁鍔熻兘璁剧疆
                 if (deviceEnumInfo.ConcreteType != DeviceConcreteType.Relay_FangyueFreshAirModul)
                 {
                     return;
@@ -743,6 +752,27 @@
             };
         }
 
+        /// <summary>
+        /// 娣诲姞浼犳劅鍣ㄣ�愬姛鑳借缃�戣
+        /// </summary>
+        private void AddFunctionSettionRowPM()
+        {
+            //鍔熻兘璁剧疆
+            string caption = Language.StringByID(R.MyInternationalizationString.uFunctionSettingUp);
+            var btnFunction = new FrameRowControl(listview.rowSpace / 2);
+            listview.AddChidren(btnFunction);
+            btnFunction.AddLeftCaption(caption, 600);
+            //鍚戝彸鍥炬爣
+            btnFunction.AddRightArrow();
+            //搴曠嚎
+            btnFunction.AddBottomLine();
+            btnFunction.ButtonClickEvent += (sender, e) =>
+            {
+                var form = new DeviceFunctionSettionForm();
+                form.AddForm(listNewDevice[0], false);
+            };
+        }
+
         #endregion;
 
         #region 鈻� 鏂瑰悜涓庨檺浣�(绐楀笜)___________________
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelFangyueFreshAirBackLightSettionForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelFangyueFreshAirBackLightSettionForm.cs
index d47001c..eef9e14 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelFangyueFreshAirBackLightSettionForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelFangyueFreshAirBackLightSettionForm.cs
@@ -70,6 +70,7 @@
             listview = new VerticalScrolViewLayout();
             listview.Height = Application.GetRealHeight(1981 - 184);
             bodyFrameLayout.AddChidren(listview);
+            listview.ScrollEnabled = false;
 
             HdlThreadLogic.Current.RunMain(() =>
             {
@@ -79,10 +80,8 @@
                 //娣诲姞灞忓箷浜害绾у埆鎺т欢
                 this.AddScreenBrightnesLevelControl();
 
-                //娣诲姞鑳屽厜鐏寒搴︽帶浠躲�愭殏鏃朵笉闇�瑕侊紝鍙兘鍚庢湡鏂伴闈㈡澘鐨勮繖涓鑹茶琛ュ洖鏉ャ��
-                this.AddBackLightControl();
-                //銆愭殏鏃朵笉闇�瑕侊紝鍙兘鍚庢湡鏂伴闈㈡澘鐨勮繖涓鑹茶琛ュ洖鏉ャ��
-                //this.FinishInitControl(listview, energyModeInfo.enable);
+                //娣诲姞鏂伴闈㈡澘鐨勯鑹�
+                this.AddColorControl();
 
                 //淇濆瓨
                 var btnSave = new BottomClickButton();
@@ -262,7 +261,7 @@
         /// <summary>
         /// 娣诲姞鑳屽厜棰滆壊鎺т欢
         /// </summary>
-        private void AddBackLightControl()
+        private void AddColorControl()
         {
             var btnEspace = new NormalViewControl(600, 58, true);
             btnEspace.X = ControlCommonResourse.XXLeft;
@@ -331,20 +330,44 @@
 
             frameColor.ButtonClickEvent += (sender, e) =>
             {
-                var form = new PanelColorSelectForm();
-                form.AddForm(R1, G1, B1);
-                form.FinishSelectColorEvent += (Rcolor, Gcolor, Bcolor) =>
-                {
-                    R1 = Rcolor;
-                    G1 = Gcolor;
-                    B1 = Bcolor;
+                PanelColor(btnColor, R1, G1, B1);
+            };
+            btnColorView.ButtonClickEvent += (sender, e) =>
+            {
+                PanelColor(btnColor, R1, G1, B1);
+            };
+            btnColor.ButtonClickEvent += (sender, e) =>
+            {
+                PanelColor(btnColor, R1, G1, B1);
+            };
+            btnColorLine.ButtonClickEvent += (sender, e) =>
+            {
+                PanelColor(btnColor, R1, G1, B1);
+            };
+            btnRight.ButtonClickEvent += (sender, e) =>
+            {
+                PanelColor(btnColor, R1, G1, B1);
+            };
+        }
 
-                    this.keyColorData.OpenColorR = Convert.ToString(Rcolor, 16);
-                    this.keyColorData.OpenColorG = Convert.ToString(Gcolor, 16);
-                    this.keyColorData.OpenColorB = Convert.ToString(Bcolor, 16);
+        /// <summary>
+        /// PanelColorSelectForm
+        /// </summary>
+        private void PanelColor(NormalViewControl btnColor, int R1, int G1, int B1)
+        {
+            var form = new PanelColorSelectForm();
+            form.AddForm(R1, G1, B1);
+            form.FinishSelectColorEvent += (Rcolor, Gcolor, Bcolor) =>
+            {
+                R1 = Rcolor;
+                G1 = Gcolor;
+                B1 = Bcolor;
 
-                    btnColor.BackgroundColor = this.GetColorByRGB((byte)Rcolor, (byte)Gcolor, (byte)Bcolor);
-                };
+                this.keyColorData.OpenColorR = Convert.ToString(Rcolor, 16);
+                this.keyColorData.OpenColorG = Convert.ToString(Gcolor, 16);
+                this.keyColorData.OpenColorB = Convert.ToString(Bcolor, 16);
+
+                btnColor.BackgroundColor = this.GetColorByRGB((byte)Rcolor, (byte)Gcolor, (byte)Bcolor);
             };
         }
 
@@ -382,8 +405,6 @@
                 {
                     frameBack.Height -= value;
                 }
-                //瀹瑰櫒琛ュ厖
-                this.FinishInitControl(listview, energyModeInfo.enable);
             };
             if (energyModeInfo.enable == true)
             {
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelFangyueFreshAirTargetsForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelFangyueFreshAirTargetsForm.cs
index 90b4e2d..1111293 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelFangyueFreshAirTargetsForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelFangyueFreshAirTargetsForm.cs
@@ -103,6 +103,10 @@
         /// PM缁戝畾鐩爣鍥炶皟
         /// </summary>
         public Action<string> actionPMTarget = null;
+        /// <summary>
+        /// 鏄惁鑳界偣鍑讳繚瀛樻寜閽�
+        /// </summary>
+        private bool canSave = true;
         #endregion
 
         #region UI璁捐 
@@ -864,6 +868,7 @@
         /// <param name="curControlDev"></param>
         void SaveTarget()
         {
+            btnFinifh.Enable = false;
             if (targetList.Count == 0)
             {
                 //绌虹洰鏍�
@@ -978,6 +983,11 @@
                     catch (Exception ex)
                     {
                         var mess = ex.Message;
+                        Application.RunOnMainThread(() =>
+                        {
+                            CommonPage.Loading.Hide();
+                        });
+                        btnFinifh.Enable = true;
                     }
                 });
             }
@@ -1180,6 +1190,11 @@
                     }
                     catch (Exception ex)
                     {
+                        Application.RunOnMainThread(() =>
+                        {
+                            CommonPage.Loading.Hide();
+                        });
+                        btnFinifh.Enable = true;
                         var mess = ex.Message;
                     }
                 });
@@ -1368,6 +1383,11 @@
             foreach (var de in room.ListDevice)
             {
                 var device = LocalDevice.Current.GetDevice(de);
+                //鐢垫睜璁惧涓嶆敮鎸佺粦瀹�
+                if (device.ZigbeeType != 1)
+                {
+                    continue;
+                }
                 if (device != null)
                 {
                     if (device.Type == DeviceType.TemperatureSensor)
@@ -1393,6 +1413,11 @@
             foreach (var de in room.ListDevice)
             {
                 var device = LocalDevice.Current.GetDevice(de);
+                //鐢垫睜璁惧涓嶆敮鎸佺粦瀹�
+                if (device.ZigbeeType != 1)
+                {
+                    continue;
+                }
                 if (device != null)
                 {
                     if (device.Type == DeviceType.TemperatureSensor)
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/DoorLockCommonInfo.cs b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/DoorLockCommonInfo.cs
index b5e90d4..449c8e2 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/DoorLockCommonInfo.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/DoorLockCommonInfo.cs
@@ -196,6 +196,11 @@
                 {
                     //涓婃姤鈥滃父寮�妯″紡鈥濆凡琚彇娑堬紝app榛樿浜嗏�滃父寮�妯″紡鈥濊鍙栨秷 
                     DoorLockCommonInfo.NormallyOpenModeValue(doorLock, false);
+                    if (haveLogic)
+                    {
+                        //姝ゅ鍒犻櫎娓╁眳鍩庣殑甯稿紑妯″紡鐗规畩閫昏緫
+                        var resTemp1 = await Shared.Phone.Device.Logic.SkipView.GetLogicAll();
+                    }
                 }
                 else
                 {
@@ -213,8 +218,11 @@
                     //涓婃姤鈥滃父寮�妯″紡鈥濆凡琚彇娑�
                     Application.RunOnMainThread(() => { CommonPage.Loading.Start(""); });
 
-                    //娓╁眳鍩庢柟娉曪紵锛燂紵
-                    //姝ゅ鏄惁瑕佸垹闄ゆ俯灞呭煄鐨勭壒娈婇�昏緫
+                    if (haveLogic)
+                    {
+                        //姝ゅ鍒犻櫎娓╁眳鍩庣殑甯稿紑妯″紡鐗规畩閫昏緫
+                        var resTemp1 = await Shared.Phone.Device.Logic.SkipView.GetLogicAll();
+                    }
 
                     //app閲嶆柊寮�鍚�滃父寮�妯″紡鈥�
                     var result = await doorLock.SetNormallyOpenModeFuncAsync(true);
@@ -273,8 +281,7 @@
                     NormallyOpenModeValue(doorLock, false);
                     if (haveLogic)
                     {
-                        //娓╁眳鍩庢柟娉曪紵锛燂紵
-                        //姝ゅ鏄惁瑕佸垹闄ゆ俯灞呭煄鐨勭壒娈婇�昏緫
+                        //姝ゅ鍒犻櫎娓╁眳鍩庣殑甯稿紑妯″紡鐗规畩閫昏緫
                         var resTemp1 = await Shared.Phone.Device.Logic.SkipView.GetLogicAll();
                     }
                 }
@@ -315,9 +322,8 @@
                         //鍒犻櫎璁剧疆甯稿紑妯″紡鍒涘缓鐨勯�昏緫
                         if (haveLogic)
                         {
+                            //姝ゅ鍒犻櫎娓╁眳鍩庣殑甯稿紑妯″紡鐗规畩閫昏緫
                             var resTemp1 = await Shared.Phone.Device.Logic.SkipView.GetLogicAll();
-                            //娓╁眳鍩庢柟娉曪紵锛燂紵
-                            //姝ゅ鏄惁瑕佸垹闄ゆ俯灞呭煄鐨勭壒娈婇�昏緫 
                         }
                         Application.RunOnMainThread(() =>
                         {
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Residence/LookRoomSettionForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Residence/LookRoomSettionForm.cs
index 756134f..a32a3e9 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Residence/LookRoomSettionForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Residence/LookRoomSettionForm.cs
@@ -248,7 +248,7 @@
                     string path1 = string.Empty;
                     string path2 = string.Empty;
                     //鑾峰彇鍥剧墖
-                    Common.LocalDevice.Current.GetDeviceObjectIcon(typeInfo.ConcreteType, ref path1, ref path2);
+                    Common.LocalDevice.Current.GetDeviceFunctionTypeMenuIcon(typeInfo.ConcreteType, ref path1, ref path2);
                     dic[typeInfo.BeloneTextId].IconPath = path1;
                 }
                 dic[typeInfo.BeloneTextId].listDeviceKeys.Add(Common.LocalDevice.Current.GetDeviceMainKeys(device));
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Safety/AlarmTargetAddMenuForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Safety/AlarmTargetAddMenuForm.cs
index 945475a..4ed7043 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Safety/AlarmTargetAddMenuForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Safety/AlarmTargetAddMenuForm.cs
@@ -291,7 +291,7 @@
 
                     var typeInfo = Common.LocalDevice.Current.GetDeviceBelongEnumInfo(device);
                     //鑾峰彇鍥剧墖
-                    Common.LocalDevice.Current.GetDeviceObjectIcon(typeInfo.ConcreteType, ref unSelectPath, ref selectPath);
+                    Common.LocalDevice.Current.GetDeviceFunctionTypeMenuIcon(typeInfo.ConcreteType, ref unSelectPath, ref selectPath);
                     if (dicRoomData.ContainsKey(typeInfo.BeloneTextId) == false)
                     {
                         dicRoomData[typeInfo.BeloneTextId] = new uRowInformation();
diff --git a/ZigbeeApp/Shared/Phone/ZigBee/Device/CommonDevice.cs b/ZigbeeApp/Shared/Phone/ZigBee/Device/CommonDevice.cs
index a572e70..92b3442 100755
--- a/ZigbeeApp/Shared/Phone/ZigBee/Device/CommonDevice.cs
+++ b/ZigbeeApp/Shared/Phone/ZigBee/Device/CommonDevice.cs
@@ -108,7 +108,12 @@
         /// 0锛氳澶囦笉鍦ㄧ嚎
         /// <para>1锛氳澶囧湪绾�</para>
         /// </summary>
-        public int IsOnline;
+        public int IsOnline;
+        /// <summary>
+        /// 1锛氳矾鐢辫澶�
+        /// <para>2锛氱粓绔澶囷紝鐢垫睜璁惧</para>
+        /// </summary>
+        public int ZigbeeType;
         /// <summary>
         /// 褰撳墠杩愯绋嬪簭鐗堟湰淇℃伅銆� 鏈�澶�64瀛楄妭
         /// </summary>
@@ -376,6 +381,11 @@
                     //鏂伴 
                     IconPath = "Device/FreshAirEpoint.png";
                 }
+                else if (this.Type == DeviceType.PMSensor)
+                {
+                    //PM2.5绌烘皵璐ㄩ噺浼犳劅鍣� 
+                    IconPath = "Device/AirQualitySensorEpoint.png";
+                }
                 else if (this.Type == DeviceType.FreshAirHumiditySensor)
                 {
                     //婀垮害浼犳劅鍣�
diff --git a/ZigbeeApp/Shared/Phone/ZigBee/Device/PMSensor.cs b/ZigbeeApp/Shared/Phone/ZigBee/Device/PMSensor.cs
index f2dece7..5008025 100755
--- a/ZigbeeApp/Shared/Phone/ZigBee/Device/PMSensor.cs
+++ b/ZigbeeApp/Shared/Phone/ZigBee/Device/PMSensor.cs
@@ -11,6 +11,22 @@
         public PMSensor()
         {
             this.Type = DeviceType.PMSensor;
-        }
+        }
+
+        /// <summary>
+        /// 褰撳墠娓╁害   
+        /// </summary>
+        [Newtonsoft.Json.JsonIgnore]
+        public int currentTemperature = 0;
+        /// <summary>
+        /// 褰撳墠婀垮害 
+        /// </summary>
+        [Newtonsoft.Json.JsonIgnore]
+        public int currentHumidity = 0;
+        /// <summary>
+        /// 褰撳墠PM2.5鍊�
+        /// </summary>
+        [Newtonsoft.Json.JsonIgnore]
+        public int currentPmData = 0;
     }
 }
diff --git a/ZigbeeApp/Shared/R.cs b/ZigbeeApp/Shared/R.cs
index bd4528c..799a1c7 100755
--- a/ZigbeeApp/Shared/R.cs
+++ b/ZigbeeApp/Shared/R.cs
@@ -570,6 +570,14 @@
         /// 鑷姩妯″紡涓嶆敮鎸佹搷浣�
         /// </summary>
         public const int AutoModeForbiddenOperate = 314;
+        /// <summary>
+        /// 绌烘皵璐ㄩ噺
+        /// </summary>
+        public const int AirQuality = 315;
+        /// <summary>
+        /// 绌烘皵璐ㄩ噺浼犳劅鍣�
+        /// </summary>
+        public const int AirQualitySensor = 316;
 
         public readonly static int cancel = 5097;
         public readonly static int confrim = 5098;
@@ -6241,6 +6249,10 @@
         /// 鑷畾涔夎澶囨墍灞濱D涓�2310鐨勭炕璇戝悕瀛楋細鏂伴
         /// </summary>
         public const int uDeviceBelongId2310 = 40018;
+        /// <summary>
+        /// 鑷畾涔夎澶囨墍灞濱D涓�1307鐨勭炕璇戝悕瀛楋細绌烘皵璐ㄩ噺
+        /// </summary>
+        public const int uDeviceBelongId1307 = 40019;
 
         //鈽呪槄鈽呪槄妯″潡ID鐨勮澶囬粯璁ゅ娉ㄥ悕瀛�,浠�50000寮�濮�,杩欓噷涓嶉渶瑕佸畾涔�,鍙啓鍦↙anguage.ini鏂囦欢閲岄潰鈽呪槄鈽呪槄
         //鈽呪槄鈽呪槄妯″潡ID鐨勮澶囩被鍨嬪悕瀛�,浠�60000寮�濮�,杩欓噷涓嶉渶瑕佸畾涔�,鍙啓鍦↙anguage.ini鏂囦欢閲岄潰鈽呪槄鈽呪槄
diff --git a/ZigbeeApp/Shared/Shared.projitems b/ZigbeeApp/Shared/Shared.projitems
index aa71f62..f55d5c5 100755
--- a/ZigbeeApp/Shared/Shared.projitems
+++ b/ZigbeeApp/Shared/Shared.projitems
@@ -29,6 +29,7 @@
     <Compile Include="$(MSBuildThisFileDirectory)Phone\Category\Controls\DeviceRow\DeviceCurtainRowControl.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\Category\Controls\DeviceRow\DeviceDoorLockRowControl.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\Category\Controls\DeviceRow\DeviceFreshAirRowControl.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Phone\Category\Controls\DeviceRow\DevicePmSensorRowControl.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\Category\Controls\DeviceRow\DeviceRelayRowControl.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\Category\Controls\DeviceRow\DeviceSensorRowControl.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\Category\Controls\DeviceRow\DeviceTemperatureRowControl.cs" />
@@ -96,6 +97,7 @@
     <Compile Include="$(MSBuildThisFileDirectory)Phone\MainPage\ControlForm\DeviceColorLightDetailCardForm.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\MainPage\ControlForm\DeviceCurtainDetailCardForm.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\MainPage\ControlForm\DeviceFreshAirDetailCardForm.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Phone\MainPage\ControlForm\DevicePmSensorDetailCardForm.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\MainPage\ControlForm\DeviceRelayDetailCardForm.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\MainPage\Controls\DeviceCard\DeviceFreshAirCardControl.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\MainPage\Controls\DeviceFunctionUnallocatedControl.cs" />

--
Gitblit v1.8.0