wei
2021-05-23 6aae0b4d094c54cd5d7d27cda7b439d9d62d0bc7
能耗功能,红外宝功能
16个文件已添加
3个文件已删除
29个文件已修改
4477 ■■■■■ 已修改文件
.vs/HDL_APP_Project/xs/UserPrefs.xml 75 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Language.ini 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/TVIcon.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Phone/FunctionIcon/Energy/EnergyDrodUpIcon.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/irpjt_blue.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/irpjt_white.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/irstb_blue.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/irstb_white.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/irpjt.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/irstb.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/HDL-ON_Android.csproj 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Resources/Resource.designer.cs 1909 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_iOS/HDL-ON_iOS.csproj 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_iOS/Resources/Language.ini 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/TVIcon.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_iOS/Resources/Phone/FunctionIcon/Energy/EnergyDrodUpIcon.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/irpjt_blue.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/irpjt_white.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/irstb_blue.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/irstb_white.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/irpjt.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/irstb.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/Common/R.cs 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/DAL/DriverLayer/Control.cs 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/DAL/DriverLayer/Control_Udp.cs 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/DAL/DriverLayer/UdpSocket.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/DAL/Mqtt/MqttClient.cs 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/DAL/Mqtt/MqttInfoConfig.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/DAL/Server/HttpServerRequest.cs 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/DAL/Server/NewAPI.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/Entity/Function/Function.cs 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/Entity/Function/Scene.cs 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/HDL_ON.projitems 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI0-Public/PublicAssmebly.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI0-Public/PublicAssmeblyBLL.cs 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI0-Stan/Controls/BottomControls/BottomTimeSelectControl.cs 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/1-HomePage/HomePage.cs 98 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/2-Classification/ClassificationPage.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/3-Intelligence/IntelligencePage.cs 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/FuntionControlView/1ContorlPage/AcControlPage.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/FuntionControlView/Electrical/PjtPage.cs 653 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/FuntionControlView/Electrical/StbPage.cs 604 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/FuntionControlView/Energy/EchartsOption_Energy.cs 150 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/FuntionControlView/Energy/EnergyMainPage.cs 497 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/FuntionControlView/EnvironmentalScience/EchartsOption_BrokenLine.cs 127 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/FuntionControlView/EnvironmentalScience/EnvironmentalSensorPage.cs 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/FuntionControlView/FoolHeating/FloorHeatingPage.cs 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/FuntionControlView/FunctionBaseInfoSetPage.cs 127 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.vs/HDL_APP_Project/xs/UserPrefs.xml
@@ -1,19 +1,20 @@
<Properties StartupConfiguration="{D998E133-F0DD-4760-BE3C-461632F54DA4}|Default">
  <MonoDevelop.Ide.ItemProperties.HDL-ON__iOS PreferredExecutionTarget="MonoDevelop.IPhone.IPhoneDeviceTarget.00008020-000404163432002E" />
  <MonoDevelop.Ide.Workbench ActiveDocument="HDL_ON/Entity/Function/Scene.cs">
  <MonoDevelop.Ide.ItemProperties.HDL-ON__iOS PreferredExecutionTarget="MonoDevelop.IPhone.IPhoneDeviceTarget.6242be7109c740c6cb8999a8904b6e0ea8d45192" />
  <MonoDevelop.Ide.Workbench ActiveDocument="HDL_ON/UI/UI2/FuntionControlView/FunctionBaseInfoSetPage.cs">
    <Files>
      <File FileName="HDL_ON/UI/UI2/FuntionControlView/Electrical/ClothesHangerSetTimePage.cs" Line="40" Column="1" IsPinned="True" />
      <File FileName="HDL_ON/UI/UI2/3-Intelligence/Scene/SceneAddPage.cs" Line="277" Column="68" />
      <File FileName="HDL_ON/UI/UI2/4-PersonalCenter/SmartSpeaker/SmartSpeakerRoomListPage.cs" Line="93" Column="73" />
      <File FileName="HDL_ON/UI/UI2/4-PersonalCenter/PersonalCenterPage.cs" Line="753" Column="70" />
      <File FileName="HDL_ON/DAL/Server/HttpServerRequest.cs" Line="2431" Column="16" />
      <File FileName="HDL_ON/UI/UI2/FuntionControlView/Electrical/ClothesHangerPage.cs" Line="414" Column="1" />
      <File FileName="HDL_ON/UI/UI2/1-HomePage/HomePage.cs" Line="364" Column="36" />
      <File FileName="HDL_ON/UI/UI0-Public/PublicAssmebly.cs" Line="746" Column="16" />
      <File FileName="HDL_ON/UI/UI0-Stan/Controls/BottomControls/BottomTimeSelectControl.cs" Line="111" Column="60" />
      <File FileName="HDL_ON/UI/UI2/3-Intelligence/Scene/SceneEditPage.cs" Line="292" Column="62" />
      <File FileName="HDL_ON/UI/UI2/3-Intelligence/Scene/SetSceneFunctionInfoPage.cs" Line="330" Column="87" />
      <File FileName="HDL_ON/Entity/Function/Scene.cs" Line="349" Column="30" />
      <File FileName="HDL_ON/DAL/Mqtt/MqttInfoConfig.cs" />
      <File FileName="HDL_ON/Common/FileUtlis.cs" />
      <File FileName="HDL_ON/DAL/Mqtt/MqttClient.cs" Line="630" Column="1" />
      <File FileName="HDL_ON/UI/UI2/FuntionControlView/EnvironmentalScience/EnvironmentalSensorPage.cs" Line="851" Column="74" />
      <File FileName="HDL_ON/UI/UI2/FuntionControlView/Energy/EnergyMainPage.cs" Line="694" Column="59" />
      <File FileName="HDL_ON/UI/UI2/FuntionControlView/Electrical/StbPage.cs" Line="529" Column="20" />
      <File FileName="HDL_ON/UI/UI2/FuntionControlView/Electrical/PjtPage.cs" Line="13" Column="25" />
      <File FileName="HDL_ON/UI/UI2/FuntionControlView/Electrical/TVPage.cs" Line="348" Column="10" />
      <File FileName="HDL_ON/UI/UI2/1-HomePage/HomePage.cs" Line="1054" Column="1" />
      <File FileName="HDL_ON/UI/UI2/FuntionControlView/Electrical/TVPageBLL.cs" Line="11" Column="9" />
      <File FileName="HDL_ON/UI/UI2/FuntionControlView/Electrical/IrLearnPage.cs" Line="1" Column="1" />
      <File FileName="HDL_ON/UI/UI2/FuntionControlView/EnvironmentalScience/EchartsOption_BrokenLine.cs" Line="1" Column="1" />
      <File FileName="HDL_ON/UI/UI2/FuntionControlView/FunctionBaseInfoSetPage.cs" Line="256" Column="64" />
    </Files>
    <Pads>
      <Pad Id="ProjectPad">
@@ -23,39 +24,58 @@
              <Node name="Common" expanded="True" />
              <Node name="DAL" expanded="True">
                <Node name="DriverLayer" expanded="True" />
                <Node name="Mqtt" expanded="True" />
                <Node name="Server" expanded="True" />
              </Node>
              <Node name="Entity" expanded="True">
                <Node name="Function" expanded="True">
                  <Node name="Scene.cs" selected="True" />
                </Node>
                <Node name="Device" expanded="True" />
                <Node name="Enumerative" expanded="True" />
                <Node name="Function" expanded="True" />
              </Node>
              <Node name="UI" expanded="True">
                <Node name="UI0-Public" expanded="True" />
                <Node name="UI0-Stan" expanded="True">
                  <Node name="Controls" expanded="True">
                    <Node name="BottomControls" expanded="True" />
                  </Node>
                  <Node name="Form" expanded="True">
                    <Node name="Base" expanded="True" />
                  </Node>
                </Node>
                <Node name="UI1-Login" expanded="True" />
                <Node name="UI2" expanded="True">
                  <Node name="1-HomePage" expanded="True" />
                  <Node name="3-Intelligence" expanded="True">
                    <Node name="Scene" expanded="True" />
                  </Node>
                  <Node name="2-Classification" expanded="True" />
                  <Node name="FuntionControlView" expanded="True">
                    <Node name="1ContorlPage" expanded="True" />
                    <Node name="Electrical" expanded="True" />
                    <Node name="Energy" expanded="True" />
                    <Node name="EnvironmentalScience" expanded="True" />
                    <Node name="Light" expanded="True" />
                    <Node name="Music" expanded="True" />
                    <Node name="Video" expanded="True" />
                    <Node name="FunctionBaseInfoSetPage.cs" selected="True" />
                  </Node>
                </Node>
              </Node>
            </Node>
            <Node name="HDL-ON_Android" expanded="True" />
            <Node name="HDL-ON_iOS" expanded="True" />
            <Node name="HDL-ON_Android" expanded="True">
              <Node name="Assets" expanded="True">
                <Node name="Phone" expanded="True">
                  <Node name="FunctionIcon" expanded="True">
                    <Node name="Electrical" expanded="True" />
                  </Node>
                </Node>
              </Node>
            </Node>
            <Node name="HDL-ON_iOS" expanded="True">
              <Node name="Resources" expanded="True">
                <Node name="Phone" expanded="True">
                  <Node name="FunctionIcon" expanded="True">
                    <Node name="Electrical" expanded="True" />
                    <Node name="Icon" expanded="True">
                      <Node name="HomeIcon" expanded="True" />
                    </Node>
                  </Node>
                </Node>
              </Node>
            </Node>
          </Node>
        </State>
      </Pad>
@@ -68,10 +88,13 @@
    <String>Shared.IOS/Shared.IOS.csproj</String>
  </DisabledProjects>
  <MonoDevelop.Ide.Workspace ActiveConfiguration="Debug|iPhone" />
  <MonoDevelop.Ide.ItemProperties.HDL-ON__Android PreferredExecutionTarget="Android.SelectDevice" />
  <MonoDevelop.Ide.DebuggingService.Breakpoints>
    <BreakpointStore>
      <Breakpoint file="/Users/kaede/Desktop/HDL_APP_Project/HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/Method.cs" relfile="HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/Method.cs" line="34" column="1" />
      <Breakpoint file="/Users/kaede/Desktop/HDL_APP_Project/HDL_ON/UI/UI2/FuntionControlView/1ContorlPage/AcControlPage.cs" relfile="HDL_ON/UI/UI2/FuntionControlView/1ContorlPage/AcControlPage.cs" line="313" column="1" />
      <Breakpoint file="/Users/kaede/Desktop/HDL_APP_Project/HDL_ON/UI/UI2/FuntionControlView/Energy/EnergyMainPage.cs" relfile="HDL_ON/UI/UI2/FuntionControlView/Energy/EnergyMainPage.cs" line="392" column="1" />
      <Breakpoint file="/Users/kaede/Desktop/HDL_APP_Project/HDL_ON/UI/UI2/FuntionControlView/FunctionBaseInfoSetPage.cs" relfile="HDL_ON/UI/UI2/FuntionControlView/FunctionBaseInfoSetPage.cs" line="327" column="1" />
    </BreakpointStore>
  </MonoDevelop.Ide.DebuggingService.Breakpoints>
  <MultiItemStartupConfigurations />
HDL-ON_Android/Assets/Language.ini
@@ -74,7 +74,7 @@
73=Floor Management
74=Room Management
75=Administrator migration
76=Administrator privilege migration
76=Privilege Migration
77=Debugging privilege
78=The administrator is migrated to other user.
79=All of the data for the residence is migrated to new user.
@@ -440,6 +440,11 @@
453=Alarm mute
454=Deployment information
455=The name can not be blank.
456=Canvas
457=Energy consumption
458=Date
459=Real time energy consumption
460=Energy consumption of this month
1000=Room Humidity
1001=V-chip
@@ -1236,7 +1241,11 @@
453=报警静音
454=布防信息
455=名称不能为空。
456=画布
457=能耗
458=日期
459=实时能耗
460=本月能耗
1000=室内湿度
1001=童锁
HDL-ON_Android/Assets/Phone/FunctionIcon/Electrical/TVIcon.png
Binary files differ
HDL-ON_Android/Assets/Phone/FunctionIcon/Energy/EnergyDrodUpIcon.png
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/irpjt_blue.png
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/irpjt_white.png
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/irstb_blue.png
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/irstb_white.png
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/irpjt.png
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/irstb.png
HDL-ON_Android/HDL-ON_Android.csproj
@@ -533,7 +533,6 @@
    <AndroidAsset Include="Assets\Phone\FunctionIcon\Music\MusicIcon.png" />
    <AndroidAsset Include="Assets\Phone\FunctionIcon\Music\MusicOnIcon.png" />
    <AndroidAsset Include="Assets\Phone\FunctionIcon\Electrical\FanIconBg.png" />
    <AndroidAsset Include="Assets\Phone\FunctionIcon\Electrical\TVIcon.png" />
    <AndroidAsset Include="Assets\Phone\FunctionIcon\Electrical\FanThinIcon.png" />
    <AndroidAsset Include="Assets\Phone\FunctionIcon\Electrical\FanIcon.png" />
    <AndroidAsset Include="Assets\Phone\FunctionIcon\Electrical\FanIconOnBg.png" />
@@ -1136,6 +1135,13 @@
    <AndroidAsset Include="Assets\Phone\FunctionIcon\Curtain\CurtainUpIcon.png" />
    <AndroidAsset Include="Assets\Phone\FunctionIcon\Curtain\CurtainUpIconOn.png" />
    <AndroidAsset Include="Assets\Phone\PersonalCenter\SmartSpeaker.png" />
    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\irpjt.png" />
    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\irstb.png" />
    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\HomeIcon\irpjt_blue.png" />
    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\HomeIcon\irpjt_white.png" />
    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\HomeIcon\irstb_blue.png" />
    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\HomeIcon\irstb_white.png" />
    <AndroidAsset Include="Assets\Phone\FunctionIcon\Energy\EnergyDrodUpIcon.png" />
  </ItemGroup>
  <ItemGroup>
    <AndroidNativeLibrary Include="libs\armeabi-v7a\libelianjni.so" />
HDL-ON_Android/Resources/Resource.designer.cs
@@ -5119,1612 +5119,1615 @@
            public const int label_bg_sel = 2131231231;
            
            // aapt resource value: 0x7F080200
            public const int leave_message_play = 2131231232;
            public const int launchImage = 2131231232;
            
            // aapt resource value: 0x7F080201
            public const int leave_message_play_sel = 2131231233;
            public const int leave_message_play = 2131231233;
            
            // aapt resource value: 0x7F080202
            public const int leave_message_play_selector = 2131231234;
            public const int leave_message_play_sel = 2131231234;
            
            // aapt resource value: 0x7F080203
            public const int left_horizontal = 2131231235;
            public const int leave_message_play_selector = 2131231235;
            
            // aapt resource value: 0x7F080204
            public const int left_twinkle = 2131231236;
            public const int left_horizontal = 2131231236;
            
            // aapt resource value: 0x7F080205
            public const int link_account1 = 2131231237;
            public const int left_twinkle = 2131231237;
            
            // aapt resource value: 0x7F080206
            public const int link_account2 = 2131231238;
            public const int link_account1 = 2131231238;
            
            // aapt resource value: 0x7F080207
            public const int link_account3 = 2131231239;
            public const int link_account2 = 2131231239;
            
            // aapt resource value: 0x7F080208
            public const int link_account4 = 2131231240;
            // aapt resource value: 0x7F08020A
            public const int Loading = 2131231242;
            public const int link_account3 = 2131231240;
            
            // aapt resource value: 0x7F080209
            public const int load_failed_bg = 2131231241;
            public const int link_account4 = 2131231241;
            
            // aapt resource value: 0x7F08020B
            public const int lock_bg = 2131231243;
            public const int Loading = 2131231243;
            // aapt resource value: 0x7F08020A
            public const int load_failed_bg = 2131231242;
            
            // aapt resource value: 0x7F08020C
            public const int login_btn_selector = 2131231244;
            public const int lock_bg = 2131231244;
            
            // aapt resource value: 0x7F08020D
            public const int login_logo = 2131231245;
            public const int login_btn_selector = 2131231245;
            
            // aapt resource value: 0x7F08020E
            public const int login_logo_button = 2131231246;
            public const int login_logo = 2131231246;
            
            // aapt resource value: 0x7F08020F
            public const int login_logo_button_sel = 2131231247;
            public const int login_logo_button = 2131231247;
            
            // aapt resource value: 0x7F080210
            public const int logo_loading_1 = 2131231248;
            public const int login_logo_button_sel = 2131231248;
            
            // aapt resource value: 0x7F080211
            public const int logo_loading_2 = 2131231249;
            public const int logo_loading_1 = 2131231249;
            
            // aapt resource value: 0x7F080212
            public const int logo_loading_3 = 2131231250;
            public const int logo_loading_2 = 2131231250;
            
            // aapt resource value: 0x7F080213
            public const int logo_loading_4 = 2131231251;
            public const int logo_loading_3 = 2131231251;
            
            // aapt resource value: 0x7F080214
            public const int mesage_details_callhelp = 2131231252;
            public const int logo_loading_4 = 2131231252;
            
            // aapt resource value: 0x7F080215
            public const int mesage_details_curtain = 2131231253;
            public const int mesage_details_callhelp = 2131231253;
            
            // aapt resource value: 0x7F080216
            public const int mesage_details_data = 2131231254;
            public const int mesage_details_curtain = 2131231254;
            
            // aapt resource value: 0x7F080217
            public const int mesage_details_door = 2131231255;
            public const int mesage_details_data = 2131231255;
            
            // aapt resource value: 0x7F080218
            public const int mesage_details_gas = 2131231256;
            public const int mesage_details_door = 2131231256;
            
            // aapt resource value: 0x7F080219
            public const int mesage_details_hdd = 2131231257;
            public const int mesage_details_gas = 2131231257;
            
            // aapt resource value: 0x7F08021A
            public const int mesage_details_infrared = 2131231258;
            public const int mesage_details_hdd = 2131231258;
            
            // aapt resource value: 0x7F08021B
            public const int mesage_details_keyboard = 2131231259;
            public const int mesage_details_infrared = 2131231259;
            
            // aapt resource value: 0x7F08021C
            public const int mesage_details_loss = 2131231260;
            public const int mesage_details_keyboard = 2131231260;
            
            // aapt resource value: 0x7F08021D
            public const int mesage_details_low_battery = 2131231261;
            public const int mesage_details_loss = 2131231261;
            
            // aapt resource value: 0x7F08021E
            public const int mesage_details_offline = 2131231262;
            public const int mesage_details_low_battery = 2131231262;
            
            // aapt resource value: 0x7F08021F
            public const int mesage_details_power = 2131231263;
            public const int mesage_details_offline = 2131231263;
            
            // aapt resource value: 0x7F080220
            public const int mesage_details_smoke = 2131231264;
            public const int mesage_details_power = 2131231264;
            
            // aapt resource value: 0x7F080221
            public const int mesage_details_tampering = 2131231265;
            public const int mesage_details_smoke = 2131231265;
            
            // aapt resource value: 0x7F080222
            public const int mesage_details_video_loss = 2131231266;
            public const int mesage_details_tampering = 2131231266;
            
            // aapt resource value: 0x7F080223
            public const int mesage_details_water = 2131231267;
            public const int mesage_details_video_loss = 2131231267;
            
            // aapt resource value: 0x7F080224
            public const int message = 2131231268;
            public const int mesage_details_water = 2131231268;
            
            // aapt resource value: 0x7F080225
            public const int message_a1_bg = 2131231269;
            public const int message = 2131231269;
            
            // aapt resource value: 0x7F080226
            public const int message_back = 2131231270;
            public const int message_a1_bg = 2131231270;
            
            // aapt resource value: 0x7F080227
            public const int message_back_sel = 2131231271;
            public const int message_back = 2131231271;
            
            // aapt resource value: 0x7F080228
            public const int message_back_selector = 2131231272;
            public const int message_back_sel = 2131231272;
            
            // aapt resource value: 0x7F080229
            public const int message_border_bg = 2131231273;
            public const int message_back_selector = 2131231273;
            
            // aapt resource value: 0x7F08022A
            public const int message_callhelp = 2131231274;
            public const int message_border_bg = 2131231274;
            
            // aapt resource value: 0x7F08022B
            public const int message_curtain = 2131231275;
            public const int message_callhelp = 2131231275;
            
            // aapt resource value: 0x7F08022C
            public const int message_data = 2131231276;
            public const int message_curtain = 2131231276;
            
            // aapt resource value: 0x7F08022D
            public const int message_door = 2131231277;
            public const int message_data = 2131231277;
            
            // aapt resource value: 0x7F08022E
            public const int message_gas = 2131231278;
            public const int message_door = 2131231278;
            
            // aapt resource value: 0x7F08022F
            public const int message_hdd = 2131231279;
            public const int message_gas = 2131231279;
            
            // aapt resource value: 0x7F080230
            public const int message_infrared = 2131231280;
            public const int message_hdd = 2131231280;
            
            // aapt resource value: 0x7F080231
            public const int message_item_bg_selector = 2131231281;
            public const int message_infrared = 2131231281;
            
            // aapt resource value: 0x7F080232
            public const int message_keyboard = 2131231282;
            public const int message_item_bg_selector = 2131231282;
            
            // aapt resource value: 0x7F080233
            public const int message_loss = 2131231283;
            public const int message_keyboard = 2131231283;
            
            // aapt resource value: 0x7F080234
            public const int message_low_battery = 2131231284;
            public const int message_loss = 2131231284;
            
            // aapt resource value: 0x7F080235
            public const int message_move_magnetometer = 2131231285;
            public const int message_low_battery = 2131231285;
            
            // aapt resource value: 0x7F080236
            public const int message_offline = 2131231286;
            public const int message_move_magnetometer = 2131231286;
            
            // aapt resource value: 0x7F080237
            public const int message_play = 2131231287;
            public const int message_offline = 2131231287;
            
            // aapt resource value: 0x7F080238
            public const int message_play_dis = 2131231288;
            public const int message_play = 2131231288;
            
            // aapt resource value: 0x7F080239
            public const int message_play_sel = 2131231289;
            public const int message_play_dis = 2131231289;
            
            // aapt resource value: 0x7F08023A
            public const int message_play_selector = 2131231290;
            public const int message_play_sel = 2131231290;
            
            // aapt resource value: 0x7F08023B
            public const int message_power = 2131231291;
            public const int message_play_selector = 2131231291;
            
            // aapt resource value: 0x7F08023C
            public const int message_sel = 2131231292;
            public const int message_power = 2131231292;
            
            // aapt resource value: 0x7F08023D
            public const int message_smoke = 2131231293;
            public const int message_sel = 2131231293;
            
            // aapt resource value: 0x7F08023E
            public const int message_tampering = 2131231294;
            public const int message_smoke = 2131231294;
            
            // aapt resource value: 0x7F08023F
            public const int message_video = 2131231295;
            public const int message_tampering = 2131231295;
            
            // aapt resource value: 0x7F080240
            public const int message_video_dis = 2131231296;
            public const int message_video = 2131231296;
            
            // aapt resource value: 0x7F080241
            public const int message_video_loss = 2131231297;
            public const int message_video_dis = 2131231297;
            
            // aapt resource value: 0x7F080242
            public const int message_video_sel = 2131231298;
            public const int message_video_loss = 2131231298;
            
            // aapt resource value: 0x7F080243
            public const int message_video_selector = 2131231299;
            public const int message_video_sel = 2131231299;
            
            // aapt resource value: 0x7F080244
            public const int message_water = 2131231300;
            public const int message_video_selector = 2131231300;
            
            // aapt resource value: 0x7F080245
            public const int mic = 2131231301;
            public const int message_water = 2131231301;
            
            // aapt resource value: 0x7F080246
            public const int mm_trans = 2131231302;
            public const int mic = 2131231302;
            
            // aapt resource value: 0x7F080247
            public const int more = 2131231303;
            public const int mm_trans = 2131231303;
            
            // aapt resource value: 0x7F080248
            public const int my_5k_vr = 2131231304;
            public const int more = 2131231304;
            
            // aapt resource value: 0x7F080249
            public const int my_5k_vr116 = 2131231305;
            public const int my_5k_vr = 2131231305;
            
            // aapt resource value: 0x7F08024A
            public const int my_a1 = 2131231306;
            public const int my_5k_vr116 = 2131231306;
            
            // aapt resource value: 0x7F08024B
            public const int my_a1c = 2131231307;
            public const int my_a1 = 2131231307;
            
            // aapt resource value: 0x7F08024C
            public const int my_a1s = 2131231308;
            public const int my_a1c = 2131231308;
            
            // aapt resource value: 0x7F08024D
            public const int my_add = 2131231309;
            public const int my_a1s = 2131231309;
            
            // aapt resource value: 0x7F08024E
            public const int my_c6p = 2131231310;
            public const int my_add = 2131231310;
            
            // aapt resource value: 0x7F08024F
            public const int my_c6t = 2131231311;
            public const int my_c6p = 2131231311;
            
            // aapt resource value: 0x7F080250
            public const int my_cover = 2131231312;
            public const int my_c6t = 2131231312;
            
            // aapt resource value: 0x7F080251
            public const int my_cover620 = 2131231313;
            public const int my_cover = 2131231313;
            
            // aapt resource value: 0x7F080252
            public const int my_db1 = 2131231314;
            public const int my_cover620 = 2131231314;
            
            // aapt resource value: 0x7F080253
            public const int my_doorbell = 2131231315;
            public const int my_db1 = 2131231315;
            
            // aapt resource value: 0x7F080254
            public const int my_doorbell_hik = 2131231316;
            public const int my_doorbell = 2131231316;
            
            // aapt resource value: 0x7F080255
            public const int my_n1 = 2131231317;
            public const int my_doorbell_hik = 2131231317;
            
            // aapt resource value: 0x7F080256
            public const int my_no_video = 2131231318;
            public const int my_n1 = 2131231318;
            
            // aapt resource value: 0x7F080257
            public const int my_progress_drawable = 2131231319;
            public const int my_no_video = 2131231319;
            
            // aapt resource value: 0x7F080258
            public const int my_r1 = 2131231320;
            public const int my_progress_drawable = 2131231320;
            
            // aapt resource value: 0x7F080259
            public const int my_r2 = 2131231321;
            public const int my_r1 = 2131231321;
            
            // aapt resource value: 0x7F08025A
            public const int my_shoping = 2131231322;
            public const int my_r2 = 2131231322;
            
            // aapt resource value: 0x7F08025B
            public const int my_switch_off = 2131231323;
            public const int my_shoping = 2131231323;
            
            // aapt resource value: 0x7F08025C
            public const int my_switch_on = 2131231324;
            public const int my_switch_off = 2131231324;
            
            // aapt resource value: 0x7F08025D
            public const int my_switch_selector = 2131231325;
            public const int my_switch_on = 2131231325;
            
            // aapt resource value: 0x7F08025E
            public const int my_vr104d = 2131231326;
            public const int my_switch_selector = 2131231326;
            
            // aapt resource value: 0x7F08025F
            public const int my_w1 = 2131231327;
            public const int my_vr104d = 2131231327;
            
            // aapt resource value: 0x7F080260
            public const int my_w2d = 2131231328;
            public const int my_w1 = 2131231328;
            
            // aapt resource value: 0x7F080261
            public const int my_w2s = 2131231329;
            public const int my_w2d = 2131231329;
            
            // aapt resource value: 0x7F080262
            public const int my_w3 = 2131231330;
            public const int my_w2s = 2131231330;
            
            // aapt resource value: 0x7F080263
            public const int my_wlb = 2131231331;
            public const int my_w3 = 2131231331;
            
            // aapt resource value: 0x7F080264
            public const int my_x1 = 2131231332;
            public const int my_wlb = 2131231332;
            
            // aapt resource value: 0x7F080265
            public const int my_x2 = 2131231333;
            public const int my_x1 = 2131231333;
            
            // aapt resource value: 0x7F080266
            public const int my_x3 = 2131231334;
            public const int my_x2 = 2131231334;
            
            // aapt resource value: 0x7F080267
            public const int my_x3c = 2131231335;
            public const int my_x3 = 2131231335;
            
            // aapt resource value: 0x7F080268
            public const int my_x4 = 2131231336;
            public const int my_x3c = 2131231336;
            
            // aapt resource value: 0x7F080269
            public const int my_x5c = 2131231337;
            public const int my_x4 = 2131231337;
            
            // aapt resource value: 0x7F08026A
            public const int name_del = 2131231338;
            public const int my_x5c = 2131231338;
            
            // aapt resource value: 0x7F08026B
            public const int name_del_sel = 2131231339;
            public const int name_del = 2131231339;
            
            // aapt resource value: 0x7F08026C
            public const int name_del_selector = 2131231340;
            public const int name_del_sel = 2131231340;
            
            // aapt resource value: 0x7F08026D
            public const int navigation_empty_icon = 2131231341;
            // aapt resource value: 0x7F080270
            public const int nomessage = 2131231344;
            // aapt resource value: 0x7F080271
            public const int notification_action_background = 2131231345;
            // aapt resource value: 0x7F080272
            public const int notification_bg = 2131231346;
            // aapt resource value: 0x7F080273
            public const int notification_bg_low = 2131231347;
            // aapt resource value: 0x7F080274
            public const int notification_bg_low_normal = 2131231348;
            // aapt resource value: 0x7F080275
            public const int notification_bg_low_pressed = 2131231349;
            // aapt resource value: 0x7F080276
            public const int notification_bg_normal = 2131231350;
            // aapt resource value: 0x7F080277
            public const int notification_bg_normal_pressed = 2131231351;
            // aapt resource value: 0x7F080278
            public const int notification_icon_background = 2131231352;
            // aapt resource value: 0x7F080279
            public const int notification_template_icon_bg = 2131231353;
            // aapt resource value: 0x7F08027A
            public const int notification_template_icon_low_bg = 2131231354;
            // aapt resource value: 0x7F08027B
            public const int notification_tile_bg = 2131231355;
            // aapt resource value: 0x7F08027C
            public const int notify_bg = 2131231356;
            // aapt resource value: 0x7F08027D
            public const int notify_panel_notification_icon_bg = 2131231357;
            public const int name_del_selector = 2131231341;
            
            // aapt resource value: 0x7F08026E
            public const int no_message = 2131231342;
            public const int navigation_empty_icon = 2131231342;
            
            // aapt resource value: 0x7F08026F
            public const int no_read = 2131231343;
            // aapt resource value: 0x7F080271
            public const int nomessage = 2131231345;
            // aapt resource value: 0x7F080272
            public const int notification_action_background = 2131231346;
            // aapt resource value: 0x7F080273
            public const int notification_bg = 2131231347;
            // aapt resource value: 0x7F080274
            public const int notification_bg_low = 2131231348;
            // aapt resource value: 0x7F080275
            public const int notification_bg_low_normal = 2131231349;
            // aapt resource value: 0x7F080276
            public const int notification_bg_low_pressed = 2131231350;
            // aapt resource value: 0x7F080277
            public const int notification_bg_normal = 2131231351;
            // aapt resource value: 0x7F080278
            public const int notification_bg_normal_pressed = 2131231352;
            // aapt resource value: 0x7F080279
            public const int notification_icon_background = 2131231353;
            // aapt resource value: 0x7F08027A
            public const int notification_template_icon_bg = 2131231354;
            // aapt resource value: 0x7F08027B
            public const int notification_template_icon_low_bg = 2131231355;
            // aapt resource value: 0x7F08027C
            public const int notification_tile_bg = 2131231356;
            // aapt resource value: 0x7F08027D
            public const int notify_bg = 2131231357;
            
            // aapt resource value: 0x7F08027E
            public const int number_bg = 2131231358;
            public const int notify_panel_notification_icon_bg = 2131231358;
            // aapt resource value: 0x7F08026F
            public const int no_message = 2131231343;
            // aapt resource value: 0x7F080270
            public const int no_read = 2131231344;
            
            // aapt resource value: 0x7F08027F
            public const int offline = 2131231359;
            public const int number_bg = 2131231359;
            
            // aapt resource value: 0x7F080280
            public const int open_cameralist_alarmlist_selector = 2131231360;
            public const int offline = 2131231360;
            
            // aapt resource value: 0x7F080281
            public const int open_cameralist_button_selector = 2131231361;
            public const int open_cameralist_alarmlist_selector = 2131231361;
            
            // aapt resource value: 0x7F080282
            public const int open_cameralist_remotepb_selector = 2131231362;
            public const int open_cameralist_button_selector = 2131231362;
            
            // aapt resource value: 0x7F080283
            public const int open_cameralist_setup_selector = 2131231363;
            public const int open_cameralist_remotepb_selector = 2131231363;
            
            // aapt resource value: 0x7F080284
            public const int opinion = 2131231364;
            public const int open_cameralist_setup_selector = 2131231364;
            
            // aapt resource value: 0x7F080285
            public const int palyback_alarm_icon2 = 2131231365;
            public const int opinion = 2131231365;
            
            // aapt resource value: 0x7F080286
            public const int palyback_close = 2131231366;
            public const int palyback_alarm_icon2 = 2131231366;
            
            // aapt resource value: 0x7F080287
            public const int palyback_close_sel = 2131231367;
            public const int palyback_close = 2131231367;
            
            // aapt resource value: 0x7F080288
            public const int palyback_close_selector = 2131231368;
            public const int palyback_close_sel = 2131231368;
            
            // aapt resource value: 0x7F080289
            public const int palyback_date_down = 2131231369;
            public const int palyback_close_selector = 2131231369;
            
            // aapt resource value: 0x7F08028A
            public const int palyback_date_down_sel = 2131231370;
            public const int palyback_date_down = 2131231370;
            
            // aapt resource value: 0x7F08028B
            public const int palyback_full_down = 2131231371;
            public const int palyback_date_down_sel = 2131231371;
            
            // aapt resource value: 0x7F08028C
            public const int palyback_full_up = 2131231372;
            public const int palyback_full_down = 2131231372;
            
            // aapt resource value: 0x7F08028D
            public const int palyback_nest = 2131231373;
            public const int palyback_full_up = 2131231373;
            
            // aapt resource value: 0x7F08028E
            public const int palyback_pause = 2131231374;
            public const int palyback_nest = 2131231374;
            
            // aapt resource value: 0x7F08028F
            public const int palyback_pause_sel = 2131231375;
            public const int palyback_pause = 2131231375;
            
            // aapt resource value: 0x7F080290
            public const int palyback_previously = 2131231376;
            public const int palyback_pause_sel = 2131231376;
            
            // aapt resource value: 0x7F080291
            public const int palyback_previously_sel = 2131231377;
            public const int palyback_previously = 2131231377;
            
            // aapt resource value: 0x7F080292
            public const int palyback_previously_selector = 2131231378;
            public const int palyback_previously_sel = 2131231378;
            
            // aapt resource value: 0x7F080293
            public const int palyback_replay = 2131231379;
            public const int palyback_previously_selector = 2131231379;
            
            // aapt resource value: 0x7F080294
            public const int palyback_retry = 2131231380;
            public const int palyback_replay = 2131231380;
            
            // aapt resource value: 0x7F080295
            public const int palyback_time_bg = 2131231381;
            public const int palyback_retry = 2131231381;
            
            // aapt resource value: 0x7F080296
            public const int palyback_video = 2131231382;
            public const int palyback_time_bg = 2131231382;
            
            // aapt resource value: 0x7F080297
            public const int palyback_video_now = 2131231383;
            public const int palyback_video = 2131231383;
            
            // aapt resource value: 0x7F080298
            public const int palyback_video_now_sel = 2131231384;
            public const int palyback_video_now = 2131231384;
            
            // aapt resource value: 0x7F080299
            public const int palyback_video_now_selector = 2131231385;
            public const int palyback_video_now_sel = 2131231385;
            
            // aapt resource value: 0x7F08029A
            public const int palyback_video_sel = 2131231386;
            public const int palyback_video_now_selector = 2131231386;
            
            // aapt resource value: 0x7F08029B
            public const int palyback_video_selector = 2131231387;
            public const int palyback_video_sel = 2131231387;
            
            // aapt resource value: 0x7F08029C
            public const int pause = 2131231388;
            public const int palyback_video_selector = 2131231388;
            
            // aapt resource value: 0x7F08029D
            public const int pause_sel = 2131231389;
            public const int pause = 2131231389;
            
            // aapt resource value: 0x7F08029E
            public const int pic_bg = 2131231390;
            public const int pause_sel = 2131231390;
            
            // aapt resource value: 0x7F08029F
            public const int play = 2131231391;
            // aapt resource value: 0x7F0802FE
            public const int playback = 2131231486;
            // aapt resource value: 0x7F08030E
            public const int playbackslider = 2131231502;
            // aapt resource value: 0x7F08030F
            public const int playbackslider_sel = 2131231503;
            // aapt resource value: 0x7F0802FF
            public const int playback_button = 2131231487;
            // aapt resource value: 0x7F080300
            public const int playback_cancel = 2131231488;
            // aapt resource value: 0x7F080301
            public const int playback_check_selector = 2131231489;
            // aapt resource value: 0x7F080302
            public const int playback_cover2 = 2131231490;
            // aapt resource value: 0x7F080303
            public const int playback_cut = 2131231491;
            // aapt resource value: 0x7F080304
            public const int playback_cut_btn_selector = 2131231492;
            // aapt resource value: 0x7F080305
            public const int playback_cut_disable = 2131231493;
            // aapt resource value: 0x7F080306
            public const int playback_cut_sel = 2131231494;
            // aapt resource value: 0x7F080307
            public const int playback_matte = 2131231495;
            // aapt resource value: 0x7F080308
            public const int playback_more_down = 2131231496;
            // aapt resource value: 0x7F080309
            public const int playback_more_down1 = 2131231497;
            // aapt resource value: 0x7F08030A
            public const int playback_more_up1 = 2131231498;
            // aapt resource value: 0x7F08030B
            public const int playback_play = 2131231499;
            // aapt resource value: 0x7F08030C
            public const int playback_play_sel = 2131231500;
            // aapt resource value: 0x7F08030D
            public const int playback_sel = 2131231501;
            // aapt resource value: 0x7F080310
            public const int playbtn_selector = 2131231504;
            public const int pic_bg = 2131231391;
            
            // aapt resource value: 0x7F0802A0
            public const int play_balanced = 2131231392;
            public const int play = 2131231392;
            
            // aapt resource value: 0x7F0802A1
            public const int play_balanced_disabel = 2131231393;
            // aapt resource value: 0x7F0802FF
            public const int playback = 2131231487;
            
            // aapt resource value: 0x7F0802A2
            public const int play_balanced_sel = 2131231394;
            // aapt resource value: 0x7F08030F
            public const int playbackslider = 2131231503;
            
            // aapt resource value: 0x7F0802A3
            public const int play_balanced_selector = 2131231395;
            // aapt resource value: 0x7F080310
            public const int playbackslider_sel = 2131231504;
            
            // aapt resource value: 0x7F0802A4
            public const int play_big = 2131231396;
            // aapt resource value: 0x7F080300
            public const int playback_button = 2131231488;
            
            // aapt resource value: 0x7F0802A6
            public const int play_bigbtn_selector = 2131231398;
            // aapt resource value: 0x7F080301
            public const int playback_cancel = 2131231489;
            
            // aapt resource value: 0x7F0802A5
            public const int play_big_press = 2131231397;
            // aapt resource value: 0x7F080302
            public const int playback_check_selector = 2131231490;
            
            // aapt resource value: 0x7F0802A7
            public const int play_button_bg = 2131231399;
            // aapt resource value: 0x7F080303
            public const int playback_cover2 = 2131231491;
            
            // aapt resource value: 0x7F0802A8
            public const int play_button_sel = 2131231400;
            // aapt resource value: 0x7F080304
            public const int playback_cut = 2131231492;
            
            // aapt resource value: 0x7F0802A9
            public const int play_button_selector = 2131231401;
            // aapt resource value: 0x7F080305
            public const int playback_cut_btn_selector = 2131231493;
            
            // aapt resource value: 0x7F0802AA
            public const int play_close = 2131231402;
            // aapt resource value: 0x7F080306
            public const int playback_cut_disable = 2131231494;
            
            // aapt resource value: 0x7F0802AB
            public const int play_close_sel = 2131231403;
            // aapt resource value: 0x7F080307
            public const int playback_cut_sel = 2131231495;
            
            // aapt resource value: 0x7F0802AC
            public const int play_close_selector = 2131231404;
            // aapt resource value: 0x7F080308
            public const int playback_matte = 2131231496;
            
            // aapt resource value: 0x7F0802AD
            public const int play_disable = 2131231405;
            // aapt resource value: 0x7F080309
            public const int playback_more_down = 2131231497;
            
            // aapt resource value: 0x7F0802AE
            public const int play_flunet = 2131231406;
            // aapt resource value: 0x7F08030A
            public const int playback_more_down1 = 2131231498;
            
            // aapt resource value: 0x7F0802AF
            public const int play_flunet_disabel = 2131231407;
            // aapt resource value: 0x7F08030B
            public const int playback_more_up1 = 2131231499;
            
            // aapt resource value: 0x7F0802B0
            public const int play_flunet_sel = 2131231408;
            // aapt resource value: 0x7F08030C
            public const int playback_play = 2131231500;
            
            // aapt resource value: 0x7F0802B1
            public const int play_flunet_selector = 2131231409;
            // aapt resource value: 0x7F08030D
            public const int playback_play_sel = 2131231501;
            
            // aapt resource value: 0x7F0802B2
            public const int play_full_loding_logo = 2131231410;
            // aapt resource value: 0x7F0802B3
            public const int play_full_multiple = 2131231411;
            // aapt resource value: 0x7F0802B4
            public const int play_full_multiple2 = 2131231412;
            // aapt resource value: 0x7F0802B5
            public const int play_full_multiple3 = 2131231413;
            // aapt resource value: 0x7F0802B6
            public const int play_full_multiple4 = 2131231414;
            // aapt resource value: 0x7F0802B7
            public const int play_full_multiple5 = 2131231415;
            // aapt resource value: 0x7F0802B8
            public const int play_full_pause = 2131231416;
            // aapt resource value: 0x7F0802B9
            public const int play_full_pause_sel = 2131231417;
            // aapt resource value: 0x7F0802BA
            public const int play_full_pause_selector = 2131231418;
            // aapt resource value: 0x7F0802BB
            public const int play_full_play = 2131231419;
            // aapt resource value: 0x7F0802BC
            public const int play_full_play_sel = 2131231420;
            // aapt resource value: 0x7F0802BD
            public const int play_full_play_selector = 2131231421;
            // aapt resource value: 0x7F0802BE
            public const int play_full_previously = 2131231422;
            // aapt resource value: 0x7F0802BF
            public const int play_full_previously_sel = 2131231423;
            // aapt resource value: 0x7F0802C0
            public const int play_full_previously_selector = 2131231424;
            // aapt resource value: 0x7F0802C1
            public const int play_full_ptz_selector = 2131231425;
            // aapt resource value: 0x7F0802C2
            public const int play_full_quality_color_selector = 2131231426;
            // aapt resource value: 0x7F0802C3
            public const int play_full_quality_selector = 2131231427;
            // aapt resource value: 0x7F0802C4
            public const int play_full_soundoff_btn_selector = 2131231428;
            // aapt resource value: 0x7F0802C5
            public const int play_full_soundon_btn_selector = 2131231429;
            // aapt resource value: 0x7F0802C6
            public const int play_full_stop = 2131231430;
            // aapt resource value: 0x7F0802C7
            public const int play_full_stop_sel = 2131231431;
            // aapt resource value: 0x7F0802C8
            public const int play_full_stop_selector = 2131231432;
            // aapt resource value: 0x7F0802C9
            public const int play_full_talk_selector = 2131231433;
            // aapt resource value: 0x7F0802CA
            public const int play_full_video = 2131231434;
            // aapt resource value: 0x7F0802CB
            public const int play_full_video_now = 2131231435;
            // aapt resource value: 0x7F0802CC
            public const int play_full_video_now_sel = 2131231436;
            // aapt resource value: 0x7F0802CD
            public const int play_full_video_now_selector = 2131231437;
            // aapt resource value: 0x7F0802CE
            public const int play_full_video_sel = 2131231438;
            // aapt resource value: 0x7F0802CF
            public const int play_full_video_selector = 2131231439;
            // aapt resource value: 0x7F0802D0
            public const int play_hd = 2131231440;
            // aapt resource value: 0x7F0802D1
            public const int play_hd_disabel = 2131231441;
            // aapt resource value: 0x7F0802D2
            public const int play_hd_sel = 2131231442;
            // aapt resource value: 0x7F0802D3
            public const int play_hd_selector = 2131231443;
            // aapt resource value: 0x7F0802D4
            public const int play_play = 2131231444;
            // aapt resource value: 0x7F0802D5
            public const int play_play_dis = 2131231445;
            // aapt resource value: 0x7F0802D6
            public const int play_play_sel = 2131231446;
            // aapt resource value: 0x7F0802D7
            public const int play_play_selector = 2131231447;
            // aapt resource value: 0x7F0802D8
            public const int play_press = 2131231448;
            // aapt resource value: 0x7F0802D9
            public const int play_previously = 2131231449;
            // aapt resource value: 0x7F0802DA
            public const int play_previously_dis = 2131231450;
            // aapt resource value: 0x7F0802DB
            public const int play_previously_sel = 2131231451;
            // aapt resource value: 0x7F0802DC
            public const int play_previously_selector = 2131231452;
            // aapt resource value: 0x7F0802DD
            public const int play_privacy_selector = 2131231453;
            // aapt resource value: 0x7F0802DE
            public const int play_ptz = 2131231454;
            // aapt resource value: 0x7F0802DF
            public const int play_ptz_dis = 2131231455;
            // aapt resource value: 0x7F0802E0
            public const int play_ptz_sel = 2131231456;
            // aapt resource value: 0x7F0802E1
            public const int play_ptz_selector = 2131231457;
            // aapt resource value: 0x7F0802E2
            public const int play_small = 2131231458;
            // aapt resource value: 0x7F0802E4
            public const int play_smallbtn_selector = 2131231460;
            // aapt resource value: 0x7F0802E3
            public const int play_small_press = 2131231459;
            // aapt resource value: 0x7F0802E5
            public const int play_speech = 2131231461;
            // aapt resource value: 0x7F0802E6
            public const int play_speech_dis = 2131231462;
            // aapt resource value: 0x7F0802E7
            public const int play_speech_sel = 2131231463;
            // aapt resource value: 0x7F0802E8
            public const int play_speech_selector = 2131231464;
            // aapt resource value: 0x7F0802E9
            public const int play_stop = 2131231465;
            // aapt resource value: 0x7F0802EA
            public const int play_stop_sel = 2131231466;
            // aapt resource value: 0x7F0802EB
            public const int play_stop_selector = 2131231467;
            // aapt resource value: 0x7F0802EC
            public const int play_talk = 2131231468;
            // aapt resource value: 0x7F0802F0
            public const int play_talkback = 2131231472;
            // aapt resource value: 0x7F0802F1
            public const int play_talkback_sel = 2131231473;
            // aapt resource value: 0x7F0802F2
            public const int play_talkback_selector = 2131231474;
            // aapt resource value: 0x7F0802ED
            public const int play_talk_dis = 2131231469;
            // aapt resource value: 0x7F0802EE
            public const int play_talk_sel = 2131231470;
            // aapt resource value: 0x7F0802EF
            public const int play_talk_selector = 2131231471;
            // aapt resource value: 0x7F0802F3
            public const int play_video = 2131231475;
            // aapt resource value: 0x7F0802F4
            public const int play_video_dis = 2131231476;
            // aapt resource value: 0x7F0802F5
            public const int play_video_record = 2131231477;
            // aapt resource value: 0x7F0802F6
            public const int play_video_sel = 2131231478;
            // aapt resource value: 0x7F0802F7
            public const int play_video_selector = 2131231479;
            // aapt resource value: 0x7F0802F8
            public const int play_video_start = 2131231480;
            // aapt resource value: 0x7F0802F9
            public const int play_video_time_bg = 2131231481;
            // aapt resource value: 0x7F0802FA
            public const int play_voice = 2131231482;
            // aapt resource value: 0x7F0802FB
            public const int play_voice_dis = 2131231483;
            // aapt resource value: 0x7F0802FC
            public const int play_voice_sel = 2131231484;
            // aapt resource value: 0x7F0802FD
            public const int play_voice_selector = 2131231485;
            // aapt resource value: 0x7F08030E
            public const int playback_sel = 2131231502;
            
            // aapt resource value: 0x7F080311
            public const int popdialogbg = 2131231505;
            public const int playbtn_selector = 2131231505;
            // aapt resource value: 0x7F0802A1
            public const int play_balanced = 2131231393;
            // aapt resource value: 0x7F0802A2
            public const int play_balanced_disabel = 2131231394;
            // aapt resource value: 0x7F0802A3
            public const int play_balanced_sel = 2131231395;
            // aapt resource value: 0x7F0802A4
            public const int play_balanced_selector = 2131231396;
            // aapt resource value: 0x7F0802A5
            public const int play_big = 2131231397;
            // aapt resource value: 0x7F0802A7
            public const int play_bigbtn_selector = 2131231399;
            // aapt resource value: 0x7F0802A6
            public const int play_big_press = 2131231398;
            // aapt resource value: 0x7F0802A8
            public const int play_button_bg = 2131231400;
            // aapt resource value: 0x7F0802A9
            public const int play_button_sel = 2131231401;
            // aapt resource value: 0x7F0802AA
            public const int play_button_selector = 2131231402;
            // aapt resource value: 0x7F0802AB
            public const int play_close = 2131231403;
            // aapt resource value: 0x7F0802AC
            public const int play_close_sel = 2131231404;
            // aapt resource value: 0x7F0802AD
            public const int play_close_selector = 2131231405;
            // aapt resource value: 0x7F0802AE
            public const int play_disable = 2131231406;
            // aapt resource value: 0x7F0802AF
            public const int play_flunet = 2131231407;
            // aapt resource value: 0x7F0802B0
            public const int play_flunet_disabel = 2131231408;
            // aapt resource value: 0x7F0802B1
            public const int play_flunet_sel = 2131231409;
            // aapt resource value: 0x7F0802B2
            public const int play_flunet_selector = 2131231410;
            // aapt resource value: 0x7F0802B3
            public const int play_full_loding_logo = 2131231411;
            // aapt resource value: 0x7F0802B4
            public const int play_full_multiple = 2131231412;
            // aapt resource value: 0x7F0802B5
            public const int play_full_multiple2 = 2131231413;
            // aapt resource value: 0x7F0802B6
            public const int play_full_multiple3 = 2131231414;
            // aapt resource value: 0x7F0802B7
            public const int play_full_multiple4 = 2131231415;
            // aapt resource value: 0x7F0802B8
            public const int play_full_multiple5 = 2131231416;
            // aapt resource value: 0x7F0802B9
            public const int play_full_pause = 2131231417;
            // aapt resource value: 0x7F0802BA
            public const int play_full_pause_sel = 2131231418;
            // aapt resource value: 0x7F0802BB
            public const int play_full_pause_selector = 2131231419;
            // aapt resource value: 0x7F0802BC
            public const int play_full_play = 2131231420;
            // aapt resource value: 0x7F0802BD
            public const int play_full_play_sel = 2131231421;
            // aapt resource value: 0x7F0802BE
            public const int play_full_play_selector = 2131231422;
            // aapt resource value: 0x7F0802BF
            public const int play_full_previously = 2131231423;
            // aapt resource value: 0x7F0802C0
            public const int play_full_previously_sel = 2131231424;
            // aapt resource value: 0x7F0802C1
            public const int play_full_previously_selector = 2131231425;
            // aapt resource value: 0x7F0802C2
            public const int play_full_ptz_selector = 2131231426;
            // aapt resource value: 0x7F0802C3
            public const int play_full_quality_color_selector = 2131231427;
            // aapt resource value: 0x7F0802C4
            public const int play_full_quality_selector = 2131231428;
            // aapt resource value: 0x7F0802C5
            public const int play_full_soundoff_btn_selector = 2131231429;
            // aapt resource value: 0x7F0802C6
            public const int play_full_soundon_btn_selector = 2131231430;
            // aapt resource value: 0x7F0802C7
            public const int play_full_stop = 2131231431;
            // aapt resource value: 0x7F0802C8
            public const int play_full_stop_sel = 2131231432;
            // aapt resource value: 0x7F0802C9
            public const int play_full_stop_selector = 2131231433;
            // aapt resource value: 0x7F0802CA
            public const int play_full_talk_selector = 2131231434;
            // aapt resource value: 0x7F0802CB
            public const int play_full_video = 2131231435;
            // aapt resource value: 0x7F0802CC
            public const int play_full_video_now = 2131231436;
            // aapt resource value: 0x7F0802CD
            public const int play_full_video_now_sel = 2131231437;
            // aapt resource value: 0x7F0802CE
            public const int play_full_video_now_selector = 2131231438;
            // aapt resource value: 0x7F0802CF
            public const int play_full_video_sel = 2131231439;
            // aapt resource value: 0x7F0802D0
            public const int play_full_video_selector = 2131231440;
            // aapt resource value: 0x7F0802D1
            public const int play_hd = 2131231441;
            // aapt resource value: 0x7F0802D2
            public const int play_hd_disabel = 2131231442;
            // aapt resource value: 0x7F0802D3
            public const int play_hd_sel = 2131231443;
            // aapt resource value: 0x7F0802D4
            public const int play_hd_selector = 2131231444;
            // aapt resource value: 0x7F0802D5
            public const int play_play = 2131231445;
            // aapt resource value: 0x7F0802D6
            public const int play_play_dis = 2131231446;
            // aapt resource value: 0x7F0802D7
            public const int play_play_sel = 2131231447;
            // aapt resource value: 0x7F0802D8
            public const int play_play_selector = 2131231448;
            // aapt resource value: 0x7F0802D9
            public const int play_press = 2131231449;
            // aapt resource value: 0x7F0802DA
            public const int play_previously = 2131231450;
            // aapt resource value: 0x7F0802DB
            public const int play_previously_dis = 2131231451;
            // aapt resource value: 0x7F0802DC
            public const int play_previously_sel = 2131231452;
            // aapt resource value: 0x7F0802DD
            public const int play_previously_selector = 2131231453;
            // aapt resource value: 0x7F0802DE
            public const int play_privacy_selector = 2131231454;
            // aapt resource value: 0x7F0802DF
            public const int play_ptz = 2131231455;
            // aapt resource value: 0x7F0802E0
            public const int play_ptz_dis = 2131231456;
            // aapt resource value: 0x7F0802E1
            public const int play_ptz_sel = 2131231457;
            // aapt resource value: 0x7F0802E2
            public const int play_ptz_selector = 2131231458;
            // aapt resource value: 0x7F0802E3
            public const int play_small = 2131231459;
            // aapt resource value: 0x7F0802E5
            public const int play_smallbtn_selector = 2131231461;
            // aapt resource value: 0x7F0802E4
            public const int play_small_press = 2131231460;
            // aapt resource value: 0x7F0802E6
            public const int play_speech = 2131231462;
            // aapt resource value: 0x7F0802E7
            public const int play_speech_dis = 2131231463;
            // aapt resource value: 0x7F0802E8
            public const int play_speech_sel = 2131231464;
            // aapt resource value: 0x7F0802E9
            public const int play_speech_selector = 2131231465;
            // aapt resource value: 0x7F0802EA
            public const int play_stop = 2131231466;
            // aapt resource value: 0x7F0802EB
            public const int play_stop_sel = 2131231467;
            // aapt resource value: 0x7F0802EC
            public const int play_stop_selector = 2131231468;
            // aapt resource value: 0x7F0802ED
            public const int play_talk = 2131231469;
            // aapt resource value: 0x7F0802F1
            public const int play_talkback = 2131231473;
            // aapt resource value: 0x7F0802F2
            public const int play_talkback_sel = 2131231474;
            // aapt resource value: 0x7F0802F3
            public const int play_talkback_selector = 2131231475;
            // aapt resource value: 0x7F0802EE
            public const int play_talk_dis = 2131231470;
            // aapt resource value: 0x7F0802EF
            public const int play_talk_sel = 2131231471;
            // aapt resource value: 0x7F0802F0
            public const int play_talk_selector = 2131231472;
            // aapt resource value: 0x7F0802F4
            public const int play_video = 2131231476;
            // aapt resource value: 0x7F0802F5
            public const int play_video_dis = 2131231477;
            // aapt resource value: 0x7F0802F6
            public const int play_video_record = 2131231478;
            // aapt resource value: 0x7F0802F7
            public const int play_video_sel = 2131231479;
            // aapt resource value: 0x7F0802F8
            public const int play_video_selector = 2131231480;
            // aapt resource value: 0x7F0802F9
            public const int play_video_start = 2131231481;
            // aapt resource value: 0x7F0802FA
            public const int play_video_time_bg = 2131231482;
            // aapt resource value: 0x7F0802FB
            public const int play_voice = 2131231483;
            // aapt resource value: 0x7F0802FC
            public const int play_voice_dis = 2131231484;
            // aapt resource value: 0x7F0802FD
            public const int play_voice_sel = 2131231485;
            // aapt resource value: 0x7F0802FE
            public const int play_voice_selector = 2131231486;
            
            // aapt resource value: 0x7F080312
            public const int prepare_device = 2131231506;
            public const int popdialogbg = 2131231506;
            
            // aapt resource value: 0x7F080313
            public const int preview_close1_video_ico = 2131231507;
            public const int prepare_device = 2131231507;
            
            // aapt resource value: 0x7F080314
            public const int preview_close_video = 2131231508;
            public const int preview_close1_video_ico = 2131231508;
            
            // aapt resource value: 0x7F080315
            public const int preview_close_video_dis = 2131231509;
            public const int preview_close_video = 2131231509;
            
            // aapt resource value: 0x7F080316
            public const int preview_close_video_sel = 2131231510;
            public const int preview_close_video_dis = 2131231510;
            
            // aapt resource value: 0x7F080317
            public const int preview_down_bg_normal = 2131231511;
            public const int preview_close_video_sel = 2131231511;
            
            // aapt resource value: 0x7F080318
            public const int preview_down_bg_pressed = 2131231512;
            public const int preview_down_bg_normal = 2131231512;
            
            // aapt resource value: 0x7F080319
            public const int preview_down_ico = 2131231513;
            public const int preview_down_bg_pressed = 2131231513;
            
            // aapt resource value: 0x7F08031A
            public const int preview_down_selector = 2131231514;
            public const int preview_down_ico = 2131231514;
            
            // aapt resource value: 0x7F08031B
            public const int preview_enlarge = 2131231515;
            public const int preview_down_selector = 2131231515;
            
            // aapt resource value: 0x7F08031C
            public const int preview_enlarge_btn_sel = 2131231516;
            public const int preview_enlarge = 2131231516;
            
            // aapt resource value: 0x7F08031D
            public const int preview_enlarge_dis = 2131231517;
            public const int preview_enlarge_btn_sel = 2131231517;
            
            // aapt resource value: 0x7F08031E
            public const int preview_enlarge_selector = 2131231518;
            public const int preview_enlarge_dis = 2131231518;
            
            // aapt resource value: 0x7F08031F
            public const int preview_play_btn = 2131231519;
            public const int preview_enlarge_selector = 2131231519;
            
            // aapt resource value: 0x7F080320
            public const int preview_play_btn_dis = 2131231520;
            public const int preview_play_btn = 2131231520;
            
            // aapt resource value: 0x7F080321
            public const int preview_play_btn_sel = 2131231521;
            public const int preview_play_btn_dis = 2131231521;
            
            // aapt resource value: 0x7F080322
            public const int preview_recording = 2131231522;
            public const int preview_play_btn_sel = 2131231522;
            
            // aapt resource value: 0x7F080323
            public const int preview_recording_dis = 2131231523;
            public const int preview_recording = 2131231523;
            
            // aapt resource value: 0x7F080324
            public const int preview_recording_sel = 2131231524;
            public const int preview_recording_dis = 2131231524;
            
            // aapt resource value: 0x7F080325
            public const int preview_selection_bg = 2131231525;
            public const int preview_recording_sel = 2131231525;
            
            // aapt resource value: 0x7F080326
            public const int preview_stopplay_btn_dis = 2131231526;
            public const int preview_selection_bg = 2131231526;
            
            // aapt resource value: 0x7F080327
            public const int preview_unvoice_btn = 2131231527;
            public const int preview_stopplay_btn_dis = 2131231527;
            
            // aapt resource value: 0x7F080328
            public const int preview_unvoice_btn_sel = 2131231528;
            public const int preview_unvoice_btn = 2131231528;
            
            // aapt resource value: 0x7F080329
            public const int preview_video_selection = 2131231529;
            public const int preview_unvoice_btn_sel = 2131231529;
            
            // aapt resource value: 0x7F08032A
            public const int preview_video_selection_hover = 2131231530;
            public const int preview_video_selection = 2131231530;
            
            // aapt resource value: 0x7F08032B
            public const int preview_voice_btn = 2131231531;
            public const int preview_video_selection_hover = 2131231531;
            
            // aapt resource value: 0x7F08032C
            public const int preview_voice_btn_dis = 2131231532;
            public const int preview_voice_btn = 2131231532;
            
            // aapt resource value: 0x7F08032D
            public const int preview_voice_btn_sel = 2131231533;
            public const int preview_voice_btn_dis = 2131231533;
            
            // aapt resource value: 0x7F08032E
            public const int previously = 2131231534;
            public const int preview_voice_btn_sel = 2131231534;
            
            // aapt resource value: 0x7F08032F
            public const int previously_dis = 2131231535;
            public const int previously = 2131231535;
            
            // aapt resource value: 0x7F080330
            public const int previously_sel = 2131231536;
            public const int previously_dis = 2131231536;
            
            // aapt resource value: 0x7F080331
            public const int ptz_bg = 2131231537;
            public const int previously_sel = 2131231537;
            
            // aapt resource value: 0x7F080332
            public const int ptz_bottom_limit = 2131231538;
            public const int ptz_bg = 2131231538;
            
            // aapt resource value: 0x7F080333
            public const int ptz_bottom_sel = 2131231539;
            public const int ptz_bottom_limit = 2131231539;
            
            // aapt resource value: 0x7F080334
            public const int ptz_left_limit = 2131231540;
            public const int ptz_bottom_sel = 2131231540;
            
            // aapt resource value: 0x7F080335
            public const int ptz_left_sel = 2131231541;
            public const int ptz_left_limit = 2131231541;
            
            // aapt resource value: 0x7F080336
            public const int ptz_prompt = 2131231542;
            public const int ptz_left_sel = 2131231542;
            
            // aapt resource value: 0x7F080337
            public const int ptz_right_limit = 2131231543;
            public const int ptz_prompt = 2131231543;
            
            // aapt resource value: 0x7F080338
            public const int ptz_right_sel = 2131231544;
            public const int ptz_right_limit = 2131231544;
            
            // aapt resource value: 0x7F080339
            public const int ptz_top_limit = 2131231545;
            public const int ptz_right_sel = 2131231545;
            
            // aapt resource value: 0x7F08033A
            public const int ptz_turn = 2131231546;
            public const int ptz_top_limit = 2131231546;
            
            // aapt resource value: 0x7F08033B
            public const int ptz_turn_sel = 2131231547;
            public const int ptz_turn = 2131231547;
            
            // aapt resource value: 0x7F08033C
            public const int ptz_turn_selector = 2131231548;
            public const int ptz_turn_sel = 2131231548;
            
            // aapt resource value: 0x7F08033D
            public const int ptz_up_sel = 2131231549;
            public const int ptz_turn_selector = 2131231549;
            
            // aapt resource value: 0x7F08033E
            public const int push_close = 2131231550;
            public const int ptz_up_sel = 2131231550;
            
            // aapt resource value: 0x7F08033F
            public const int push_close_sel = 2131231551;
            public const int push_close = 2131231551;
            
            // aapt resource value: 0x7F080340
            public const int push_close_selector = 2131231552;
            public const int push_close_sel = 2131231552;
            
            // aapt resource value: 0x7F080341
            public const int put_ico = 2131231553;
            public const int push_close_selector = 2131231553;
            
            // aapt resource value: 0x7F080342
            public const int query_loding1 = 2131231554;
            public const int put_ico = 2131231554;
            
            // aapt resource value: 0x7F080343
            public const int query_loding2 = 2131231555;
            public const int query_loding1 = 2131231555;
            
            // aapt resource value: 0x7F080344
            public const int query_loding3 = 2131231556;
            public const int query_loding2 = 2131231556;
            
            // aapt resource value: 0x7F080345
            public const int query_loding4 = 2131231557;
            public const int query_loding3 = 2131231557;
            
            // aapt resource value: 0x7F080346
            public const int query_loding5 = 2131231558;
            public const int query_loding4 = 2131231558;
            
            // aapt resource value: 0x7F080347
            public const int radius_rect_bg_qq_group = 2131231559;
            public const int query_loding5 = 2131231559;
            
            // aapt resource value: 0x7F080348
            public const int read_button = 2131231560;
            public const int radius_rect_bg_qq_group = 2131231560;
            
            // aapt resource value: 0x7F080349
            public const int read_button_sel = 2131231561;
            public const int read_button = 2131231561;
            
            // aapt resource value: 0x7F08034A
            public const int read_button_selector = 2131231562;
            public const int read_button_sel = 2131231562;
            
            // aapt resource value: 0x7F08034B
            public const int refresh_selector = 2131231563;
            public const int read_button_selector = 2131231563;
            
            // aapt resource value: 0x7F08034C
            public const int register_server_bg = 2131231564;
            public const int refresh_selector = 2131231564;
            
            // aapt resource value: 0x7F08034D
            public const int remote_cal_selector = 2131231565;
            public const int register_server_bg = 2131231565;
            
            // aapt resource value: 0x7F08034E
            public const int remote_exit_btn_selector = 2131231566;
            public const int remote_cal_selector = 2131231566;
            
            // aapt resource value: 0x7F08034F
            public const int remote_list_pause_btn_selector = 2131231567;
            public const int remote_exit_btn_selector = 2131231567;
            
            // aapt resource value: 0x7F080350
            public const int remote_list_play_btn_selector = 2131231568;
            public const int remote_list_pause_btn_selector = 2131231568;
            
            // aapt resource value: 0x7F080351
            public const int remote_list_soundoff_btn_selector = 2131231569;
            public const int remote_list_play_btn_selector = 2131231569;
            
            // aapt resource value: 0x7F080352
            public const int remote_list_soundon_btn_selector = 2131231570;
            public const int remote_list_soundoff_btn_selector = 2131231570;
            
            // aapt resource value: 0x7F080353
            public const int remote_play = 2131231571;
            public const int remote_list_soundon_btn_selector = 2131231571;
            
            // aapt resource value: 0x7F080354
            public const int remote_play_sel = 2131231572;
            public const int remote_play = 2131231572;
            
            // aapt resource value: 0x7F080355
            public const int remote_seekbar_style = 2131231573;
            public const int remote_play_sel = 2131231573;
            
            // aapt resource value: 0x7F080356
            public const int remote_seekbar_thumb = 2131231574;
            public const int remote_seekbar_style = 2131231574;
            
            // aapt resource value: 0x7F080357
            public const int reset_deivce = 2131231575;
            // aapt resource value: 0x7F080364
            public const int results_4_dvr = 2131231588;
            // aapt resource value: 0x7F080365
            public const int results_8_16_nvr = 2131231589;
            // aapt resource value: 0x7F080366
            public const int results_8_nvr = 2131231590;
            // aapt resource value: 0x7F080367
            public const int results_c6p = 2131231591;
            // aapt resource value: 0x7F080368
            public const int results_mini_360_plus = 2131231592;
            // aapt resource value: 0x7F080369
            public const int results_mini_trooper = 2131231593;
            // aapt resource value: 0x7F08036A
            public const int results_pic_a1 = 2131231594;
            // aapt resource value: 0x7F08036B
            public const int results_pic_a1c = 2131231595;
            // aapt resource value: 0x7F08036C
            public const int results_pic_a1s = 2131231596;
            // aapt resource value: 0x7F08036D
            public const int results_pic_baidu_c2s = 2131231597;
            // aapt resource value: 0x7F08036E
            public const int results_pic_bg = 2131231598;
            // aapt resource value: 0x7F08036F
            public const int results_pic_c1 = 2131231599;
            // aapt resource value: 0x7F080370
            public const int results_pic_c2 = 2131231600;
            // aapt resource value: 0x7F080373
            public const int results_pic_c2c = 2131231603;
            // aapt resource value: 0x7F080374
            public const int results_pic_c2mini = 2131231604;
            // aapt resource value: 0x7F080375
            public const int results_pic_c2mini2 = 2131231605;
            // aapt resource value: 0x7F080376
            public const int results_pic_c2plus = 2131231606;
            // aapt resource value: 0x7F080377
            public const int results_pic_c2s = 2131231607;
            // aapt resource value: 0x7F080378
            public const int results_pic_c2w = 2131231608;
            // aapt resource value: 0x7F080371
            public const int results_pic_c2_2 = 2131231601;
            // aapt resource value: 0x7F080372
            public const int results_pic_c2_usa = 2131231602;
            // aapt resource value: 0x7F080379
            public const int results_pic_c3 = 2131231609;
            // aapt resource value: 0x7F08037A
            public const int results_pic_c3c = 2131231610;
            // aapt resource value: 0x7F08037B
            public const int results_pic_c3e = 2131231611;
            // aapt resource value: 0x7F08037C
            public const int results_pic_c3s = 2131231612;
            // aapt resource value: 0x7F08037D
            public const int results_pic_c4 = 2131231613;
            // aapt resource value: 0x7F08037E
            public const int results_pic_c4c = 2131231614;
            // aapt resource value: 0x7F08037F
            public const int results_pic_c4e = 2131231615;
            // aapt resource value: 0x7F080380
            public const int results_pic_c4s = 2131231616;
            // aapt resource value: 0x7F080381
            public const int results_pic_c6 = 2131231617;
            // aapt resource value: 0x7F080382
            public const int results_pic_c6c = 2131231618;
            // aapt resource value: 0x7F080383
            public const int results_pic_c6c_1 = 2131231619;
            // aapt resource value: 0x7F080384
            public const int results_pic_c6c_2 = 2131231620;
            // aapt resource value: 0x7F080385
            public const int results_pic_c6h = 2131231621;
            // aapt resource value: 0x7F080386
            public const int results_pic_co2 = 2131231622;
            // aapt resource value: 0x7F080387
            public const int results_pic_d1 = 2131231623;
            // aapt resource value: 0x7F080388
            public const int results_pic_default = 2131231624;
            // aapt resource value: 0x7F080389
            public const int results_pic_f1 = 2131231625;
            // aapt resource value: 0x7F08038A
            public const int results_pic_h2c = 2131231626;
            // aapt resource value: 0x7F08038B
            public const int results_pic_h2s = 2131231627;
            // aapt resource value: 0x7F08038C
            public const int results_pic_n1 = 2131231628;
            // aapt resource value: 0x7F08038D
            public const int results_pic_n1w = 2131231629;
            // aapt resource value: 0x7F08038E
            public const int results_pic_r1 = 2131231630;
            // aapt resource value: 0x7F08038F
            public const int results_pic_r2 = 2131231631;
            // aapt resource value: 0x7F080390
            public const int results_pic_w1 = 2131231632;
            // aapt resource value: 0x7F080391
            public const int results_pic_w3 = 2131231633;
            // aapt resource value: 0x7F080392
            public const int results_pic_x1 = 2131231634;
            // aapt resource value: 0x7F080393
            public const int results_pic_x2 = 2131231635;
            // aapt resource value: 0x7F080394
            public const int results_pic_x3 = 2131231636;
            // aapt resource value: 0x7F080395
            public const int results_pic_x3c = 2131231637;
            // aapt resource value: 0x7F080396
            public const int results_pic_x4 = 2131231638;
            // aapt resource value: 0x7F080397
            public const int results_pic_z1 = 2131231639;
            // aapt resource value: 0x7F080398
            public const int results_w2d = 2131231640;
            // aapt resource value: 0x7F080399
            public const int results_w2s = 2131231641;
            // aapt resource value: 0x7F08039A
            public const int results_wlb = 2131231642;
            // aapt resource value: 0x7F08039B
            public const int results_x5_108tp = 2131231643;
            public const int remote_seekbar_thumb = 2131231575;
            
            // aapt resource value: 0x7F080358
            public const int result_5k_vr104d = 2131231576;
            public const int reset_deivce = 2131231576;
            
            // aapt resource value: 0x7F080359
            public const int result_5k_vr116d = 2131231577;
            // aapt resource value: 0x7F080365
            public const int results_4_dvr = 2131231589;
            
            // aapt resource value: 0x7F08035A
            public const int result_8_16dvr = 2131231578;
            // aapt resource value: 0x7F080366
            public const int results_8_16_nvr = 2131231590;
            
            // aapt resource value: 0x7F08035B
            public const int result_cs_c3w = 2131231579;
            // aapt resource value: 0x7F080367
            public const int results_8_nvr = 2131231591;
            
            // aapt resource value: 0x7F08035C
            public const int result_cs_vr104d = 2131231580;
            // aapt resource value: 0x7F080368
            public const int results_c6p = 2131231592;
            
            // aapt resource value: 0x7F08035D
            public const int result_cs_vr108d = 2131231581;
            // aapt resource value: 0x7F080369
            public const int results_mini_360_plus = 2131231593;
            
            // aapt resource value: 0x7F08035E
            public const int result_cs_vr116d = 2131231582;
            // aapt resource value: 0x7F08036A
            public const int results_mini_trooper = 2131231594;
            
            // aapt resource value: 0x7F08035F
            public const int result_pic_dh1 = 2131231583;
            // aapt resource value: 0x7F08036B
            public const int results_pic_a1 = 2131231595;
            
            // aapt resource value: 0x7F080360
            public const int result_pic_doorbell = 2131231584;
            // aapt resource value: 0x7F08036C
            public const int results_pic_a1c = 2131231596;
            
            // aapt resource value: 0x7F080361
            public const int result_pic_doorbell_hik = 2131231585;
            // aapt resource value: 0x7F08036D
            public const int results_pic_a1s = 2131231597;
            
            // aapt resource value: 0x7F080362
            public const int result_pic_light = 2131231586;
            // aapt resource value: 0x7F08036E
            public const int results_pic_baidu_c2s = 2131231598;
            
            // aapt resource value: 0x7F080363
            public const int result_x5c = 2131231587;
            // aapt resource value: 0x7F08036F
            public const int results_pic_bg = 2131231599;
            // aapt resource value: 0x7F080370
            public const int results_pic_c1 = 2131231600;
            // aapt resource value: 0x7F080371
            public const int results_pic_c2 = 2131231601;
            // aapt resource value: 0x7F080374
            public const int results_pic_c2c = 2131231604;
            // aapt resource value: 0x7F080375
            public const int results_pic_c2mini = 2131231605;
            // aapt resource value: 0x7F080376
            public const int results_pic_c2mini2 = 2131231606;
            // aapt resource value: 0x7F080377
            public const int results_pic_c2plus = 2131231607;
            // aapt resource value: 0x7F080378
            public const int results_pic_c2s = 2131231608;
            // aapt resource value: 0x7F080379
            public const int results_pic_c2w = 2131231609;
            // aapt resource value: 0x7F080372
            public const int results_pic_c2_2 = 2131231602;
            // aapt resource value: 0x7F080373
            public const int results_pic_c2_usa = 2131231603;
            // aapt resource value: 0x7F08037A
            public const int results_pic_c3 = 2131231610;
            // aapt resource value: 0x7F08037B
            public const int results_pic_c3c = 2131231611;
            // aapt resource value: 0x7F08037C
            public const int results_pic_c3e = 2131231612;
            // aapt resource value: 0x7F08037D
            public const int results_pic_c3s = 2131231613;
            // aapt resource value: 0x7F08037E
            public const int results_pic_c4 = 2131231614;
            // aapt resource value: 0x7F08037F
            public const int results_pic_c4c = 2131231615;
            // aapt resource value: 0x7F080380
            public const int results_pic_c4e = 2131231616;
            // aapt resource value: 0x7F080381
            public const int results_pic_c4s = 2131231617;
            // aapt resource value: 0x7F080382
            public const int results_pic_c6 = 2131231618;
            // aapt resource value: 0x7F080383
            public const int results_pic_c6c = 2131231619;
            // aapt resource value: 0x7F080384
            public const int results_pic_c6c_1 = 2131231620;
            // aapt resource value: 0x7F080385
            public const int results_pic_c6c_2 = 2131231621;
            // aapt resource value: 0x7F080386
            public const int results_pic_c6h = 2131231622;
            // aapt resource value: 0x7F080387
            public const int results_pic_co2 = 2131231623;
            // aapt resource value: 0x7F080388
            public const int results_pic_d1 = 2131231624;
            // aapt resource value: 0x7F080389
            public const int results_pic_default = 2131231625;
            // aapt resource value: 0x7F08038A
            public const int results_pic_f1 = 2131231626;
            // aapt resource value: 0x7F08038B
            public const int results_pic_h2c = 2131231627;
            // aapt resource value: 0x7F08038C
            public const int results_pic_h2s = 2131231628;
            // aapt resource value: 0x7F08038D
            public const int results_pic_n1 = 2131231629;
            // aapt resource value: 0x7F08038E
            public const int results_pic_n1w = 2131231630;
            // aapt resource value: 0x7F08038F
            public const int results_pic_r1 = 2131231631;
            // aapt resource value: 0x7F080390
            public const int results_pic_r2 = 2131231632;
            // aapt resource value: 0x7F080391
            public const int results_pic_w1 = 2131231633;
            // aapt resource value: 0x7F080392
            public const int results_pic_w3 = 2131231634;
            // aapt resource value: 0x7F080393
            public const int results_pic_x1 = 2131231635;
            // aapt resource value: 0x7F080394
            public const int results_pic_x2 = 2131231636;
            // aapt resource value: 0x7F080395
            public const int results_pic_x3 = 2131231637;
            // aapt resource value: 0x7F080396
            public const int results_pic_x3c = 2131231638;
            // aapt resource value: 0x7F080397
            public const int results_pic_x4 = 2131231639;
            // aapt resource value: 0x7F080398
            public const int results_pic_z1 = 2131231640;
            // aapt resource value: 0x7F080399
            public const int results_w2d = 2131231641;
            // aapt resource value: 0x7F08039A
            public const int results_w2s = 2131231642;
            // aapt resource value: 0x7F08039B
            public const int results_wlb = 2131231643;
            
            // aapt resource value: 0x7F08039C
            public const int right_horizontal = 2131231644;
            public const int results_x5_108tp = 2131231644;
            // aapt resource value: 0x7F080359
            public const int result_5k_vr104d = 2131231577;
            // aapt resource value: 0x7F08035A
            public const int result_5k_vr116d = 2131231578;
            // aapt resource value: 0x7F08035B
            public const int result_8_16dvr = 2131231579;
            // aapt resource value: 0x7F08035C
            public const int result_cs_c3w = 2131231580;
            // aapt resource value: 0x7F08035D
            public const int result_cs_vr104d = 2131231581;
            // aapt resource value: 0x7F08035E
            public const int result_cs_vr108d = 2131231582;
            // aapt resource value: 0x7F08035F
            public const int result_cs_vr116d = 2131231583;
            // aapt resource value: 0x7F080360
            public const int result_pic_dh1 = 2131231584;
            // aapt resource value: 0x7F080361
            public const int result_pic_doorbell = 2131231585;
            // aapt resource value: 0x7F080362
            public const int result_pic_doorbell_hik = 2131231586;
            // aapt resource value: 0x7F080363
            public const int result_pic_light = 2131231587;
            // aapt resource value: 0x7F080364
            public const int result_x5c = 2131231588;
            
            // aapt resource value: 0x7F08039D
            public const int right_twinkle = 2131231645;
            public const int right_horizontal = 2131231645;
            
            // aapt resource value: 0x7F08039E
            public const int ring_off = 2131231646;
            public const int right_twinkle = 2131231646;
            
            // aapt resource value: 0x7F08039F
            public const int say_bg = 2131231647;
            public const int ring_off = 2131231647;
            
            // aapt resource value: 0x7F0803A0
            public const int screenshot = 2131231648;
            public const int say_bg = 2131231648;
            
            // aapt resource value: 0x7F0803A1
            public const int screenshot_def = 2131231649;
            public const int screenshot = 2131231649;
            
            // aapt resource value: 0x7F0803A2
            public const int screenshot_sel = 2131231650;
            public const int screenshot_def = 2131231650;
            
            // aapt resource value: 0x7F0803A3
            public const int search = 2131231651;
            public const int screenshot_sel = 2131231651;
            
            // aapt resource value: 0x7F0803A4
            public const int search_bnt = 2131231652;
            public const int search = 2131231652;
            
            // aapt resource value: 0x7F0803A5
            public const int search_bnt_sel = 2131231653;
            public const int search_bnt = 2131231653;
            
            // aapt resource value: 0x7F0803A6
            public const int search_button_selector = 2131231654;
            public const int search_bnt_sel = 2131231654;
            
            // aapt resource value: 0x7F0803A7
            public const int search_input = 2131231655;
            public const int search_button_selector = 2131231655;
            
            // aapt resource value: 0x7F0803A8
            public const int seekbar_thumb = 2131231656;
            // aapt resource value: 0x7F0803AA
            public const int selected_icon = 2131231658;
            // aapt resource value: 0x7F0803AB
            public const int selector_pickerview_btn = 2131231659;
            public const int search_input = 2131231656;
            
            // aapt resource value: 0x7F0803A9
            public const int select_icon = 2131231657;
            public const int seekbar_thumb = 2131231657;
            // aapt resource value: 0x7F0803AB
            public const int selected_icon = 2131231659;
            
            // aapt resource value: 0x7F0803AC
            public const int server1 = 2131231660;
            public const int selector_pickerview_btn = 2131231660;
            // aapt resource value: 0x7F0803AA
            public const int select_icon = 2131231658;
            
            // aapt resource value: 0x7F0803AD
            public const int server2 = 2131231661;
            public const int server1 = 2131231661;
            
            // aapt resource value: 0x7F0803AE
            public const int server3 = 2131231662;
            public const int server2 = 2131231662;
            
            // aapt resource value: 0x7F0803AF
            public const int server4 = 2131231663;
            public const int server3 = 2131231663;
            
            // aapt resource value: 0x7F0803B0
            public const int setup = 2131231664;
            public const int server4 = 2131231664;
            
            // aapt resource value: 0x7F0803B1
            public const int setup_sel = 2131231665;
            public const int setup = 2131231665;
            
            // aapt resource value: 0x7F0803B2
            public const int setup_wechat = 2131231666;
            public const int setup_sel = 2131231666;
            
            // aapt resource value: 0x7F0803B3
            public const int share_management_label_button = 2131231667;
            public const int setup_wechat = 2131231667;
            
            // aapt resource value: 0x7F0803B4
            public const int share_management_label_button_sel = 2131231668;
            public const int share_management_label_button = 2131231668;
            
            // aapt resource value: 0x7F0803B5
            public const int shipin7_alarm_msg_new = 2131231669;
            public const int share_management_label_button_sel = 2131231669;
            
            // aapt resource value: 0x7F0803B6
            public const int shrink_screen_normal = 2131231670;
            public const int shipin7_alarm_msg_new = 2131231670;
            
            // aapt resource value: 0x7F0803B7
            public const int shrink_screen_pressed = 2131231671;
            public const int shrink_screen_normal = 2131231671;
            
            // aapt resource value: 0x7F0803B8
            public const int small_button_cameralist = 2131231672;
            public const int shrink_screen_pressed = 2131231672;
            
            // aapt resource value: 0x7F0803B9
            public const int sound_off = 2131231673;
            public const int small_button_cameralist = 2131231673;
            
            // aapt resource value: 0x7F0803BA
            public const int sound_off_blue = 2131231674;
            public const int sound_off = 2131231674;
            
            // aapt resource value: 0x7F0803BB
            public const int sound_off_sel = 2131231675;
            public const int sound_off_blue = 2131231675;
            
            // aapt resource value: 0x7F0803BC
            public const int sound_off_sel_blue = 2131231676;
            public const int sound_off_sel = 2131231676;
            
            // aapt resource value: 0x7F0803BD
            public const int sound_on = 2131231677;
            public const int sound_off_sel_blue = 2131231677;
            
            // aapt resource value: 0x7F0803BE
            public const int sound_on_blue = 2131231678;
            public const int sound_on = 2131231678;
            
            // aapt resource value: 0x7F0803BF
            public const int sound_on_sel = 2131231679;
            public const int sound_on_blue = 2131231679;
            
            // aapt resource value: 0x7F0803C0
            public const int sound_on_sel_blue = 2131231680;
            public const int sound_on_sel = 2131231680;
            
            // aapt resource value: 0x7F0803C1
            public const int sound_source = 2131231681;
            public const int sound_on_sel_blue = 2131231681;
            
            // aapt resource value: 0x7F0803C2
            public const int sound_source_sel = 2131231682;
            public const int sound_source = 2131231682;
            
            // aapt resource value: 0x7F0803C3
            public const int speech = 2131231683;
            public const int sound_source_sel = 2131231683;
            
            // aapt resource value: 0x7F0803C4
            public const int speech_0 = 2131231684;
            public const int speech = 2131231684;
            
            // aapt resource value: 0x7F0803C5
            public const int speech_1 = 2131231685;
            public const int speech_0 = 2131231685;
            
            // aapt resource value: 0x7F0803C6
            public const int speech_2 = 2131231686;
            public const int speech_1 = 2131231686;
            
            // aapt resource value: 0x7F0803C7
            public const int speech_3 = 2131231687;
            public const int speech_2 = 2131231687;
            
            // aapt resource value: 0x7F0803C8
            public const int speech_4 = 2131231688;
            public const int speech_3 = 2131231688;
            
            // aapt resource value: 0x7F0803C9
            public const int speech_5 = 2131231689;
            public const int speech_4 = 2131231689;
            
            // aapt resource value: 0x7F0803CA
            public const int speech_full_selector = 2131231690;
            public const int speech_5 = 2131231690;
            
            // aapt resource value: 0x7F0803CB
            public const int stop = 2131231691;
            // aapt resource value: 0x7F0803CE
            public const int stopbtn_selector = 2131231694;
            // aapt resource value: 0x7F0803CF
            public const int stoplay_btn = 2131231695;
            // aapt resource value: 0x7F0803D0
            public const int stoplay_btn_sel = 2131231696;
            public const int speech_full_selector = 2131231691;
            
            // aapt resource value: 0x7F0803CC
            public const int stop_disable = 2131231692;
            public const int stop = 2131231692;
            
            // aapt resource value: 0x7F0803CD
            public const int stop_press = 2131231693;
            // aapt resource value: 0x7F0803CF
            public const int stopbtn_selector = 2131231695;
            // aapt resource value: 0x7F0803D0
            public const int stoplay_btn = 2131231696;
            
            // aapt resource value: 0x7F0803D1
            public const int success = 2131231697;
            public const int stoplay_btn_sel = 2131231697;
            // aapt resource value: 0x7F0803CD
            public const int stop_disable = 2131231693;
            // aapt resource value: 0x7F0803CE
            public const int stop_press = 2131231694;
            
            // aapt resource value: 0x7F0803D2
            public const int success_icon = 2131231698;
            public const int success = 2131231698;
            
            // aapt resource value: 0x7F0803D3
            public const int success_img = 2131231699;
            public const int success_icon = 2131231699;
            
            // aapt resource value: 0x7F0803D4
            public const int sure_background_def = 2131231700;
            public const int success_img = 2131231700;
            
            // aapt resource value: 0x7F0803D5
            public const int sure_background_sel = 2131231701;
            public const int sure_background_def = 2131231701;
            
            // aapt resource value: 0x7F0803D6
            public const int switch_camera = 2131231702;
            public const int sure_background_sel = 2131231702;
            
            // aapt resource value: 0x7F0803D7
            public const int tab_left = 2131231703;
            public const int switch_camera = 2131231703;
            
            // aapt resource value: 0x7F0803D8
            public const int tab_left_sel = 2131231704;
            public const int tab_left = 2131231704;
            
            // aapt resource value: 0x7F0803D9
            public const int tab_right = 2131231705;
            public const int tab_left_sel = 2131231705;
            
            // aapt resource value: 0x7F0803DA
            public const int tab_right_sel = 2131231706;
            public const int tab_right = 2131231706;
            
            // aapt resource value: 0x7F0803DB
            public const int tiltle_button_selector = 2131231707;
            public const int tab_right_sel = 2131231707;
            
            // aapt resource value: 0x7F0803DC
            public const int timeline = 2131231708;
            public const int tiltle_button_selector = 2131231708;
            
            // aapt resource value: 0x7F0803DD
            public const int timeline_sel = 2131231709;
            public const int timeline = 2131231709;
            
            // aapt resource value: 0x7F0803DE
            public const int tip_background = 2131231710;
            public const int timeline_sel = 2131231710;
            
            // aapt resource value: 0x7F0803DF
            public const int tip_textview_bg = 2131231711;
            public const int tip_background = 2131231711;
            
            // aapt resource value: 0x7F0803E0
            public const int title_down_bg = 2131231712;
            public const int tip_textview_bg = 2131231712;
            
            // aapt resource value: 0x7F0803E1
            public const int title_down_play = 2131231713;
            public const int title_down_bg = 2131231713;
            
            // aapt resource value: 0x7F0803E2
            public const int title_down_play_sel = 2131231714;
            public const int title_down_play = 2131231714;
            
            // aapt resource value: 0x7F0803E3
            public const int title_down_play_selector = 2131231715;
            public const int title_down_play_sel = 2131231715;
            
            // aapt resource value: 0x7F0803E4
            public const int title_menu_bg = 2131231716;
            public const int title_down_play_selector = 2131231716;
            
            // aapt resource value: 0x7F0803E5
            public const int tittel_button_bg = 2131231717;
            public const int title_menu_bg = 2131231717;
            
            // aapt resource value: 0x7F0803E6
            public const int tittel_button_press_bg = 2131231718;
            public const int tittel_button_bg = 2131231718;
            
            // aapt resource value: 0x7F0803E7
            public const int tooltip_frame_dark = 2131231719;
            public const int tittel_button_press_bg = 2131231719;
            
            // aapt resource value: 0x7F0803E8
            public const int tooltip_frame_light = 2131231720;
            public const int tooltip_frame_dark = 2131231720;
            
            // aapt resource value: 0x7F0803E9
            public const int top_bar_bg = 2131231721;
            public const int tooltip_frame_light = 2131231721;
            
            // aapt resource value: 0x7F0803EA
            public const int track_bar_bg = 2131231722;
            public const int top_bar_bg = 2131231722;
            
            // aapt resource value: 0x7F0803EB
            public const int translucent = 2131231723;
            public const int track_bar_bg = 2131231723;
            
            // aapt resource value: 0x7F0803EC
            public const int @unchecked = 2131231724;
            public const int translucent = 2131231724;
            
            // aapt resource value: 0x7F0803ED
            public const int unlock = 2131231725;
            public const int @unchecked = 2131231725;
            
            // aapt resource value: 0x7F0803EE
            public const int unlock_def = 2131231726;
            public const int unlock = 2131231726;
            
            // aapt resource value: 0x7F0803EF
            public const int unlock_sel = 2131231727;
            // aapt resource value: 0x7F0803F2
            public const int upgrade = 2131231730;
            public const int unlock_def = 2131231727;
            
            // aapt resource value: 0x7F0803F0
            public const int up_horizontal = 2131231728;
            // aapt resource value: 0x7F0803F1
            public const int up_twinkle = 2131231729;
            public const int unlock_sel = 2131231728;
            
            // aapt resource value: 0x7F0803F3
            public const int user = 2131231731;
            public const int upgrade = 2131231731;
            // aapt resource value: 0x7F0803F1
            public const int up_horizontal = 2131231729;
            // aapt resource value: 0x7F0803F2
            public const int up_twinkle = 2131231730;
            
            // aapt resource value: 0x7F0803F4
            public const int vertical_preview_sound_selector = 2131231732;
            public const int user = 2131231732;
            
            // aapt resource value: 0x7F0803F5
            public const int vertical_preview_stop_selector = 2131231733;
            // aapt resource value: 0x7F080405
            public const int videogo_icon = 2131231749;
            public const int vertical_preview_sound_selector = 2131231733;
            
            // aapt resource value: 0x7F0803F6
            public const int video_background = 2131231734;
            // aapt resource value: 0x7F0803F7
            public const int video_camera1_1 = 2131231735;
            // aapt resource value: 0x7F0803F8
            public const int video_camera1_2 = 2131231736;
            // aapt resource value: 0x7F0803F9
            public const int video_camera1_3 = 2131231737;
            // aapt resource value: 0x7F0803FA
            public const int video_file_watermark = 2131231738;
            // aapt resource value: 0x7F0803FB
            public const int video_quality_selector = 2131231739;
            // aapt resource value: 0x7F0803FC
            public const int video_talk_sdk_icn_watch = 2131231740;
            // aapt resource value: 0x7F0803FD
            public const int video_talk_sdk_placeholder_images_user = 2131231741;
            // aapt resource value: 0x7F0803FE
            public const int video_talk_sdk_video_answer = 2131231742;
            // aapt resource value: 0x7F0803FF
            public const int video_talk_sdk_video_hangup = 2131231743;
            // aapt resource value: 0x7F080400
            public const int video_talk_sdk_video_record_off = 2131231744;
            // aapt resource value: 0x7F080401
            public const int video_talk_sdk_video_record_on = 2131231745;
            // aapt resource value: 0x7F080402
            public const int video_talk_sdk_video_snap = 2131231746;
            // aapt resource value: 0x7F080403
            public const int video_talk_sdk_video_stop = 2131231747;
            // aapt resource value: 0x7F080404
            public const int video_talk_sdk_video_switch_camera = 2131231748;
            // aapt resource value: 0x7F08040F
            public const int waiting_bg = 2131231759;
            // aapt resource value: 0x7F080410
            public const int waiting_progressbar_bg = 2131231760;
            public const int vertical_preview_stop_selector = 2131231734;
            
            // aapt resource value: 0x7F080406
            public const int wait_1 = 2131231750;
            public const int videogo_icon = 2131231750;
            
            // aapt resource value: 0x7F080407
            public const int wait_2 = 2131231751;
            // aapt resource value: 0x7F0803F7
            public const int video_background = 2131231735;
            
            // aapt resource value: 0x7F080408
            public const int wait_3 = 2131231752;
            // aapt resource value: 0x7F0803F8
            public const int video_camera1_1 = 2131231736;
            
            // aapt resource value: 0x7F080409
            public const int wait_4 = 2131231753;
            // aapt resource value: 0x7F0803F9
            public const int video_camera1_2 = 2131231737;
            
            // aapt resource value: 0x7F08040A
            public const int wait_5 = 2131231754;
            // aapt resource value: 0x7F0803FA
            public const int video_camera1_3 = 2131231738;
            
            // aapt resource value: 0x7F08040B
            public const int wait_6 = 2131231755;
            // aapt resource value: 0x7F0803FB
            public const int video_file_watermark = 2131231739;
            
            // aapt resource value: 0x7F08040C
            public const int wait_7 = 2131231756;
            // aapt resource value: 0x7F0803FC
            public const int video_quality_selector = 2131231740;
            
            // aapt resource value: 0x7F08040D
            public const int wait_8 = 2131231757;
            // aapt resource value: 0x7F0803FD
            public const int video_talk_sdk_icn_watch = 2131231741;
            
            // aapt resource value: 0x7F08040E
            public const int wait_upload_img = 2131231758;
            // aapt resource value: 0x7F0803FE
            public const int video_talk_sdk_placeholder_images_user = 2131231742;
            // aapt resource value: 0x7F0803FF
            public const int video_talk_sdk_video_answer = 2131231743;
            // aapt resource value: 0x7F080400
            public const int video_talk_sdk_video_hangup = 2131231744;
            // aapt resource value: 0x7F080401
            public const int video_talk_sdk_video_record_off = 2131231745;
            // aapt resource value: 0x7F080402
            public const int video_talk_sdk_video_record_on = 2131231746;
            // aapt resource value: 0x7F080403
            public const int video_talk_sdk_video_snap = 2131231747;
            // aapt resource value: 0x7F080404
            public const int video_talk_sdk_video_stop = 2131231748;
            // aapt resource value: 0x7F080405
            public const int video_talk_sdk_video_switch_camera = 2131231749;
            // aapt resource value: 0x7F080410
            public const int waiting_bg = 2131231760;
            
            // aapt resource value: 0x7F080411
            public const int water_alarm = 2131231761;
            public const int waiting_progressbar_bg = 2131231761;
            // aapt resource value: 0x7F080407
            public const int wait_1 = 2131231751;
            // aapt resource value: 0x7F080408
            public const int wait_2 = 2131231752;
            // aapt resource value: 0x7F080409
            public const int wait_3 = 2131231753;
            // aapt resource value: 0x7F08040A
            public const int wait_4 = 2131231754;
            // aapt resource value: 0x7F08040B
            public const int wait_5 = 2131231755;
            // aapt resource value: 0x7F08040C
            public const int wait_6 = 2131231756;
            // aapt resource value: 0x7F08040D
            public const int wait_7 = 2131231757;
            // aapt resource value: 0x7F08040E
            public const int wait_8 = 2131231758;
            // aapt resource value: 0x7F08040F
            public const int wait_upload_img = 2131231759;
            
            // aapt resource value: 0x7F080412
            public const int wifi_config_bg = 2131231762;
            public const int water_alarm = 2131231762;
            
            // aapt resource value: 0x7F080413
            public const int wifi_connect_tip = 2131231763;
            public const int wifi_config_bg = 2131231763;
            
            // aapt resource value: 0x7F080414
            public const int yuntai_normal = 2131231764;
            public const int wifi_connect_tip = 2131231764;
            
            // aapt resource value: 0x7F080415
            public const int yuntai_pressed = 2131231765;
            public const int yuntai_normal = 2131231765;
            
            // aapt resource value: 0x7F080416
            public const int yxs_head = 2131231766;
            public const int yuntai_pressed = 2131231766;
            
            // aapt resource value: 0x7F080417
            public const int z1_bg = 2131231767;
            public const int yxs_head = 2131231767;
            // aapt resource value: 0x7F080418
            public const int z1_bg = 2131231768;
            
            static Drawable()
            {
HDL-ON_iOS/HDL-ON_iOS.csproj
@@ -55,7 +55,7 @@
        <MtouchExtraArgs>-gcc_flags="-dead_strip -ObjC"</MtouchExtraArgs>
        <MtouchEnableSGenConc>false</MtouchEnableSGenConc>
<CodesignEntitlements>Entitlements.plist</CodesignEntitlements>
<CodesignProvision>On+Dev-20210510-1</CodesignProvision>
<CodesignProvision>On+Dev-20210519-1</CodesignProvision>
    </PropertyGroup>
    <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|iPhone' ">
        <DebugType>none</DebugType>
@@ -647,7 +647,6 @@
      <BundleResource Include="Resources\Phone\FunctionIcon\Electrical\TV\PlusIcon.png" />
      <BundleResource Include="Resources\Phone\FunctionIcon\Electrical\TV\ReduceIcon.png" />
      <BundleResource Include="Resources\Phone\FunctionIcon\Electrical\TVThinIcon.png" />
      <BundleResource Include="Resources\Phone\FunctionIcon\Electrical\TVIcon.png" />
      <BundleResource Include="Resources\Phone\FunctionIcon\EnvironmentalScience\SmogIcon.png" />
      <BundleResource Include="Resources\Phone\FunctionIcon\EnvironmentalScience\LocationIcon.png" />
      <BundleResource Include="Resources\Phone\FunctionIcon\EnvironmentalScience\UpArrow.png" />
@@ -1239,6 +1238,13 @@
      <BundleResource Include="Resources\Phone\FunctionIcon\Curtain\CurtainUpIcon.png" />
      <BundleResource Include="Resources\Phone\FunctionIcon\Curtain\CurtainUpIconOn.png" />
      <BundleResource Include="Resources\Phone\PersonalCenter\SmartSpeaker.png" />
      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\HomeIcon\irpjt_blue.png" />
      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\HomeIcon\irpjt_white.png" />
      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\HomeIcon\irstb_blue.png" />
      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\HomeIcon\irstb_white.png" />
      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\irpjt.png" />
      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\irstb.png" />
      <BundleResource Include="Resources\Phone\FunctionIcon\Energy\EnergyDrodUpIcon.png" />
    </ItemGroup>
    <ItemGroup>
      <ITunesArtwork Include="iTunesArtwork" />
HDL-ON_iOS/Resources/Language.ini
@@ -440,7 +440,11 @@
453=Alarm mute
454=Deployment information
455=The name can not be blank.
456=Canvas
457=Energy consumption
458=Date
459=Real time energy consumption
460=Energy consumption of this month
1000=Room Humidity
1001=V-chip
@@ -1237,7 +1241,11 @@
453=报警静音
454=布防信息
455=名称不能为空。
456=画布
457=能耗
458=日期
459=实时能耗
460=本月能耗
1000=室内湿度
1001=童锁
HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/TVIcon.png
Binary files differ
HDL-ON_iOS/Resources/Phone/FunctionIcon/Energy/EnergyDrodUpIcon.png
HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/irpjt_blue.png
HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/irpjt_white.png
HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/irstb_blue.png
HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/irstb_white.png
HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/irpjt.png
HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/irstb.png
HDL_ON/Common/R.cs
@@ -4,7 +4,29 @@
{
    public static class StringId
    {
        /// <summary>
        /// 本月能耗
        /// </summary>
        public const int EnergyConsumptionOfThisMonth = 460;
        /// <summary>
        /// 实时能耗
        /// </summary>
        public const int RealTimeEnergyConsumption=459;
        /// <summary>
        /// 日期
        /// </summary>
        public const int Date = 458;
        /// <summary>
        /// 能耗
        /// </summary>
        public const int EnergyConsumption = 457;
        /// <summary>
        /// 画布
        /// </summary>
        public const int Canvas = 456;
        /// <summary>
        /// 名称不能为空
        /// </summary>
        public const int NameCannotBeEmpty = 455;
        /// <summary>
        /// 布防信息
HDL_ON/DAL/DriverLayer/Control.cs
@@ -561,7 +561,7 @@
            string sendDataString = topicString + lengthString + bodyDataString;
            byte[] sendDataBytes = Encoding.ASCII.GetBytes(sendDataString);
            //MainPage.Log($"转换HDL-Link数据\r\n{sendDataString}\r\n");
            MainPage.Log($"转换HDL-Link数据\r\n{sendDataString}\r\n");
            return sendDataBytes;
        }
@@ -635,7 +635,7 @@
                        {
                            Ins.GatewayId = device.device_mac;
                        }
                        reportIp = "239.0.168.188";// device.ip_address;
                        reportIp = "239.0.168.188";// device.ip_address;//主播地址也能控制设备
                    }
                }
                else if (receiveObj.Topic == CommunicationTopic.ct.ReadStatus + "_reply" ||
@@ -703,6 +703,9 @@
                        Function localObj = null;
                        switch (localFunction.spk)
                        {
                            case SPK.ElectricEnergy:
                                EnergyMainPage.UpdataStatus(localFunction);
                                break;
                            case SPK.LightSwitch:
                                RelayPage.UpdataState(localFunction);
                                break;
HDL_ON/DAL/DriverLayer/Control_Udp.cs
@@ -984,7 +984,7 @@
            try
            {
                //MainPage.Log("发送数据:" + SendFlag);
                MainPage.Log("发送数据:" + SendFlag);
                UdpSocket._BusSocket.AsyncBeginSend(packet);
                packet.HaveSendCount--;
@@ -1107,11 +1107,22 @@
                var sendBytes = Control.Ins.ConvertSendBodyData(CommunicationTopic.SearchLoaclGateway, bodyString);
                //组播发送
                packet = new Packet(sendBytes, new System.Net.IPEndPoint(System.Net.IPAddress.Parse("239.0.168.188"), 8585));
                packet.HaveSendCount = 4;//ps:没有重发,后期有时间可以增加重发判断
                packet.HaveSendCount = 4;
                System.Threading.Thread thread = new System.Threading.Thread(new System.Threading.ParameterizedThreadStart(managerSendCount));
                thread.IsBackground = true;
                thread.Start(packet);
                //wait();不需要等待
                //hjSocket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
                //hjSocket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Broadcast, true);
                //EndPoint ipep = new IPEndPoint(IPAddress.Parse(CsConst.myLocalIP), HDLUDP.UDPPort);
                //hjSocket.Bind(ipep);
            }
            catch (Exception ex)
            {
HDL_ON/DAL/DriverLayer/UdpSocket.cs
@@ -46,10 +46,9 @@
            busSocket = new Socket (AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
            busSocket.EnableBroadcast = true;
            try {
                //busSocket.Bind (new IPEndPoint (IPAddress.Any, 6000));
                busSocket.Bind(new IPEndPoint(IPAddress.Any, Port));
                busSocket.Bind(new IPEndPoint(IPAddress.Any, Port));
                busSocket.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.AddMembership, new MulticastOption(IPAddress.Parse("239.0.168.188")));
                busSocket.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.AddMembership, new MulticastOption(IPAddress.Parse("239.0.168.188")));
            }
            catch{
                busSocket = null;
HDL_ON/DAL/Mqtt/MqttClient.cs
@@ -133,7 +133,7 @@
                {
                    try
                    {
                        System.Threading.Thread.Sleep(500);
                        System.Threading.Thread.Sleep(2000);
                        //进入后台不处理
                        if (MainPage.IsEnterBackground) continue;
                        if (MqttInfoConfig.Current.HomeGatewayInfo == null)
@@ -485,6 +485,8 @@
                catch (Exception ex)
                {
                    Utlis.WriteLine($"error:" + ex.Message);
                    //mqtt连接异常,清空本地mqtt信息,可能需要重新获取:wxr
                    MqttInfoConfig.Current.Refresh();
                }
                finally
                {
@@ -626,6 +628,8 @@
                    //重新中心服务器获取参数标记
                    MqttInfoConfig.Current.IfGetMqttInfoSuccess = false;
                    Console.WriteLine("Connect error: " + ex.Message);
                    //mqtt连接异常,清空本地mqtt信息,可能需要重新获取:wxr
                    MqttInfoConfig.Current.Refresh();
                }
                finally
                {
HDL_ON/DAL/Mqtt/MqttInfoConfig.cs
@@ -67,7 +67,8 @@
        public void Refresh()
        {
            m_Current = null;
            Save();
            Common.FileUtlis.Files.DeleteFile(ConfigFile);
            //Save();
        }
        public void Save()
HDL_ON/DAL/Server/HttpServerRequest.cs
@@ -51,7 +51,7 @@
            d.Add("type", qType);
            d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id);
            d.Add("deviceId",  deviceId );
            d.Add("key",  "value" );
            d.Add("key",  deviceKey );
            var requestJson = HttpUtil.GetSignRequestJson(d);
            return HttpUtil.RequestHttpsPost(NewAPI.Api_Post_EnvironmentalSensorHistoricalData, requestJson);
@@ -74,8 +74,20 @@
            var requestJson = HttpUtil.GetSignRequestJson(d);
            return HttpUtil.RequestHttpsPost(NewAPI.Api_Post_ArmSensorHistoricalData, requestJson);
        }
        /// <summary>
        /// 读取最近一个月的数据
        /// </summary>
        /// <returns></returns>
        public ResponsePackNew GetLastMonthHistory(string deviceId,string key)
        {
            Dictionary<string, object> d = new Dictionary<string, object>();
            d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id);
            d.Add("deviceId", deviceId);
            d.Add("key", key);
            var requestJson = HttpUtil.GetSignRequestJson(d);
            return HttpUtil.RequestHttpsPost(NewAPI.Api_Post_ArmSensorHistoricalData, requestJson);
        }
        #endregion
HDL_ON/DAL/Server/NewAPI.cs
@@ -372,6 +372,10 @@
        /// 获取安防传感器历史数据
        /// </summary>
        public const string Api_Post_ArmSensorHistoricalData = "/home-wisdom/app/device/message";
        /// <summary>
        /// 读取最近一个月的数据
        /// </summary>
        public const string Api_Post_SensorLastMonthHistoricalData = "/home-wisdom/app/statistics/device/monthDiff";
        #endregion
        #region Kaede -- 场景接口____________________________
HDL_ON/Entity/Function/Function.cs
@@ -126,7 +126,6 @@
        /// <returns>修改结果</returns>
        public bool SetAttrState(string key, object value)
        {
            //var attrState = status.Find((s) => s.key == key.ToString());
            var attr = attributes.Find((s) => s.key == key);
            if (attr == null)
            {
@@ -877,6 +876,14 @@
        /// </summary>
        public const string TuyaWaterTime = "countdown_1";
        #endregion
        /// <summary>
        /// 功率
        /// </summary>
        public const string Power = "power";
        /// <summary>
        /// 总电量
        /// </summary>
        public const string TotalElectricity = "total_electricity";
    }
@@ -1075,6 +1082,11 @@
        /// 能源模块
        /// </summary>
        public const string EnergyStandard = "energy.standard";
        /// <summary>
        /// 能源-电能
        /// </summary>
        public const string ElectricEnergy = "energy.electric";
        /// <summary>
        /// 能源spk列表
        /// </summary>
@@ -1082,7 +1094,7 @@
        public static List<string> EnergySpkList()
        {
            var spkList = new List<string>();
            spkList.Add(EnergyStandard);
            spkList.Add(ElectricEnergy);
            return spkList;
        }
        #endregion
@@ -1291,6 +1303,8 @@
            spkList.Add(ElectricFan);
            spkList.Add(ClothesHanger);
            spkList.Add(IrLearn);
            spkList.Add(PjtIr);
            spkList.Add(StbIr);
            spkList.Add(ElectricTuyaAirCleaner);
            spkList.Add(ElectricTuyaFan);
            spkList.Add(ElectricTuyaWeepRobot);
@@ -1301,12 +1315,6 @@
        #endregion
        #region 能源
        /// <summary>
        /// 能源-电能
        /// </summary>
        public const string ElectricEnergy = "energy.electric";
        #endregion
        #region 设备类
        /// <summary>
HDL_ON/Entity/Function/Scene.cs
@@ -67,7 +67,7 @@
        /// </summary>
        public string delay = "0";
        /// <summary>
        /// 场景的最好一次执行时间
        /// 场景的最后一次执行时间
        /// </summary>
        public string LastExecutionTime = "";
@@ -348,6 +348,10 @@
        {
            var delayInt = 0;
            int.TryParse(delay,out delayInt);
            if(delayInt == 0)
            {
                return Language.StringByID(StringId.NoDelay);
            }
            string text = (delayInt / 60)+Language.StringByID(StringId.m)+(delayInt % 60)+Language.StringByID(StringId.s);
            return text;
            switch (delay)
HDL_ON/HDL_ON.projitems
@@ -389,7 +389,6 @@
    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\1ContorlPage\AcControlPage_AddIrButton.cs" />
    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Energy\EnergyMainPage.cs" />
    <Compile Include="$(MSBuildThisFileDirectory)DAL\ThirdPartySdk\ESOnVideo.cs" />
    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Energy\EchartsOption_Energy.cs" />
    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\1ContorlPage\AirFreshControlPage.cs" />
    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Video\VideoMethod.cs" />
    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Video\VideoSend.cs" />
@@ -408,6 +407,8 @@
    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\SmartSpeaker\SmartSpeakerSelectDevicesPage.cs" />
    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\SmartSpeaker\SmartSpeakerRoomListPage.cs" />
    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Electrical\DvdPage.cs" />
    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Electrical\PjtPage.cs" />
    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Electrical\StbPage.cs" />
  </ItemGroup>
  <ItemGroup>
    <Folder Include="$(MSBuildThisFileDirectory)DAL\" />
HDL_ON/UI/UI0-Public/PublicAssmebly.cs
@@ -586,7 +586,7 @@
            BottomTimeSelectControl timeControl = new BottomTimeSelectControl(mRange, sRange, 5, Language.StringByID(StringId.SceneDelay));
            timeControl.RowHeight = Application.GetRealHeight(50);
            timeControl.InitControl(0, 0, 262, false);
            timeControl.ChangePickerEvent2();
            //timeControl.ChangePickerEvent2();
            timeControl.FinishEvent = (type, hours, min) =>
            {
                if(type == 1)
HDL_ON/UI/UI0-Public/PublicAssmeblyBLL.cs
@@ -80,6 +80,18 @@
                        MainPage.BasePageView.AddChidren(tvView);
                        tvView.LoadPage(btnCollectionIcon, btnName, btnFromFloor);
                        MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
                        break;
                    case SPK.PjtIr://投影仪
                        var pjtView = new PjtPage(function);
                        MainPage.BasePageView.AddChidren(pjtView);
                        pjtView.LoadPage(btnCollectionIcon, btnName, btnFromFloor);
                        MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
                        break;
                    case SPK.StbIr://机顶盒
                        var stbView = new StbPage(function);
                        MainPage.BasePageView.AddChidren(stbView);
                        stbView.LoadPage(btnCollectionIcon, btnName, btnFromFloor);
                        MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
                        break;
                    case SPK.ElectricTuyaAirCleaner:
                        var airCleaner = new TuyaAirCleanerPage();
HDL_ON/UI/UI0-Stan/Controls/BottomControls/BottomTimeSelectControl.cs
@@ -188,7 +188,7 @@
                    value2 = 0;
                    pickerView.setCurrentItems(value1, value2, 0);
                }
                else
                //else
                {
                    //更改索引
                    selectHour = Convert.ToInt32(listHour[value1].Substring(0, 2));
@@ -196,32 +196,7 @@
                }
            };
        }
        /// <summary>
        /// 特殊的集合选择事件,场景时间设置使用
        /// </summary>
        public void ChangePickerEvent2()
        {
            pickerView.OnSelectChangeEvent = (value1, value2, value3) =>
            {
                if (value1 == 60 && value2 == 60)
                {
                    value2 = 0;
                    pickerView.setCurrentItems(value1, value2, 0);
                }
                //else if (value1 == 4 && value2 == 1)
                //{
                //    value2 = 0;
                //    pickerView.setCurrentItems(value1, value2, 0);
                //}
                //else
                //{
                //    //更改索引
                //    selectHour = Convert.ToInt32(listHour[value1].Substring(0, 2));
                //    selectMinute = Convert.ToInt32(listMinute[value2].Substring(0, 2));
                //}
            };
        }
        #endregion
        #region ■ 一般方法___________________________
HDL_ON/UI/UI2/1-HomePage/HomePage.cs
@@ -383,7 +383,86 @@
#if DEBUG
            //FunctionList.List.Functions.Add(new Function() { spk = SPK.ClothesHanger, name = "测试凉霸", attributes = new List<FunctionAttributes> { new FunctionAttributes { key = FunctionAttributeKey.HotDry } ,new FunctionAttributes { key = FunctionAttributeKey.HotDryTime } ,new FunctionAttributes { key = FunctionAttributeKey.HotDryTimeLeft } } });
            FunctionList.List.Functions.Add(new Function() { spk = SPK.PjtIr, name = "测试投影仪",
                                        attributes = new List<FunctionAttributes>() {
                                            new FunctionAttributes(){ key = "on_off",curValue= "on",state = "on" },
                                            new FunctionAttributes(){ key = "computer",value = new List<string>(){"电脑" } },
                                            new FunctionAttributes(){ key = "video",value = new List<string>(){"视频" } },
                                            new FunctionAttributes(){ key = "source",value = new List<string>(){"信号源" } },
                                            new FunctionAttributes(){ key = "zoom+",value = new List<string>(){"变焦+" } },
                                            new FunctionAttributes(){ key = "zoom-",value = new List<string>(){"变焦-" } },
                                            new FunctionAttributes(){ key = "page+",value = new List<string>(){"画面+" } },
                                            new FunctionAttributes(){ key = "page-",value = new List<string>(){"画面-" } },
                                            new FunctionAttributes(){ key = "menu",value = new List<string>(){"菜单" } },
                                            new FunctionAttributes(){ key = "ok",value = new List<string>(){"确认" } },
                                            new FunctionAttributes(){ key = "up",value = new List<string>(){"上" } },
                                            new FunctionAttributes(){ key = "left",value = new List<string>(){"左" } },
                                            new FunctionAttributes(){ key = "right",value = new List<string>(){"右" } },
                                            new FunctionAttributes(){ key = "down",value = new List<string>(){"下" } },
                                            new FunctionAttributes(){ key = "exit",value = new List<string>(){"退出" } },
                                            new FunctionAttributes(){ key = "volume+",value = new List<string>(){"音量+" } },
                                            new FunctionAttributes(){ key = "volume-",value = new List<string>(){"音量-" } },
                                            new FunctionAttributes(){ key = "mute",value = new List<string>(){"静音" } },
                                            new FunctionAttributes(){ key = "auto",value = new List<string>(){"自动" } },
                                            new FunctionAttributes(){ key = "pause",value = new List<string>(){"暂停" } },
                                        }
            });
            FunctionList.List.Functions.Add(new Function()
            {
                spk = SPK.StbIr,
                name = "测试机顶盒",
                attributes = new List<FunctionAttributes>() {
                                            new FunctionAttributes(){ key = "on_off",curValue= "on",state = "on" },
                                            new FunctionAttributes(){ key = "computer",value = new List<string>(){"电脑" } },
                                            new FunctionAttributes(){ key = "video",value = new List<string>(){"视频" } },
                                            new FunctionAttributes(){ key = "source",value = new List<string>(){"信号源" } },
                                            new FunctionAttributes(){ key = "zoom+",value = new List<string>(){"变焦+" } },
                                            new FunctionAttributes(){ key = "zoom-",value = new List<string>(){"变焦-" } },
                                            new FunctionAttributes(){ key = "page+",value = new List<string>(){"画面+" } },
                                            new FunctionAttributes(){ key = "page-",value = new List<string>(){"画面-" } },
                                            new FunctionAttributes(){ key = "menu",value = new List<string>(){"菜单" } },
                                            new FunctionAttributes(){ key = "ok",value = new List<string>(){"确认" } },
                                            new FunctionAttributes(){ key = "up",value = new List<string>(){"上" } },
                                            new FunctionAttributes(){ key = "left",value = new List<string>(){"左" } },
                                            new FunctionAttributes(){ key = "right",value = new List<string>(){"右" } },
                                            new FunctionAttributes(){ key = "down",value = new List<string>(){"下" } },
                                            new FunctionAttributes(){ key = "exit",value = new List<string>(){"退出" } },
                                            new FunctionAttributes(){ key = "volume+",value = new List<string>(){"音量+" } },
                                            new FunctionAttributes(){ key = "volume-",value = new List<string>(){"音量-" } },
                                            new FunctionAttributes(){ key = "mute",value = new List<string>(){"静音" } },
                                            new FunctionAttributes(){ key = "auto",value = new List<string>(){"自动" } },
                                            new FunctionAttributes(){ key = "pause",value = new List<string>(){"暂停" } },
                                        }
            });
            FunctionList.List.Functions.Add(new Function()
            {
                spk = SPK.TvIr,
                name = "测试电视",
                attributes = new List<FunctionAttributes>() {
                                            new FunctionAttributes(){ key = "on_off",curValue= "on",state = "on" },
                                            new FunctionAttributes(){ key = "computer",value = new List<string>(){"电脑" } },
                                            new FunctionAttributes(){ key = "video",value = new List<string>(){"视频" } },
                                            new FunctionAttributes(){ key = "source",value = new List<string>(){"信号源" } },
                                            new FunctionAttributes(){ key = "zoom+",value = new List<string>(){"变焦+" } },
                                            new FunctionAttributes(){ key = "zoom-",value = new List<string>(){"变焦-" } },
                                            new FunctionAttributes(){ key = "page+",value = new List<string>(){"画面+" } },
                                            new FunctionAttributes(){ key = "page-",value = new List<string>(){"画面-" } },
                                            new FunctionAttributes(){ key = "menu",value = new List<string>(){"菜单" } },
                                            new FunctionAttributes(){ key = "ok",value = new List<string>(){"确认" } },
                                            new FunctionAttributes(){ key = "up",value = new List<string>(){"上" } },
                                            new FunctionAttributes(){ key = "left",value = new List<string>(){"左" } },
                                            new FunctionAttributes(){ key = "right",value = new List<string>(){"右" } },
                                            new FunctionAttributes(){ key = "down",value = new List<string>(){"下" } },
                                            new FunctionAttributes(){ key = "exit",value = new List<string>(){"退出" } },
                                            new FunctionAttributes(){ key = "volume+",value = new List<string>(){"音量+" } },
                                            new FunctionAttributes(){ key = "volume-",value = new List<string>(){"音量-" } },
                                            new FunctionAttributes(){ key = "mute",value = new List<string>(){"静音" } },
                                            new FunctionAttributes(){ key = "auto",value = new List<string>(){"自动" } },
                                            new FunctionAttributes(){ key = "pause",value = new List<string>(){"暂停" } },
                                        }
            });
#endif
        }
@@ -683,6 +762,11 @@
                };
                view.AddChidren(btnIcon);
                btnIcon.UnSelectedImagePath = $"FunctionIcon/Icon/HomeIcon/{function.IconName}_blue.png";
                btnIcon.SelectedImagePath = $"FunctionIcon/Icon/HomeIcon/{function.IconName}_white.png";
                Button btnName;
                btnName = new Button()
                {
@@ -784,14 +868,18 @@
                    LoadEvent_ControlCurtain(function, btnCurtainClose, btnCurtainOpen);
                }
                else if (function.spk == SPK.ElectricTV || function.spk == SPK.TvIr)
                else if (function.spk == SPK.ElectricTV || function.spk == SPK.TvIr
                    ||function.spk == SPK.StbIr || function.spk == SPK.PjtIr)
                {
                    btnIcon.UnSelectedImagePath = "FunctionIcon/Electrical/TVIcon.png";
                    //btnIcon.UnSelectedImagePath = $"FunctionIcon/Icon/HomeIcon/{function.IconName}_blue.png";
                    //btnIcon.SelectedImagePath = $"FunctionIcon/Icon/HomeIcon/{function.IconName}_white.png";
                    Button btnPower;
                    btnPower = new Button()
                    {
                        X = Application.GetRealWidth(131),
                        Y = Application.GetRealHeight(70),
                        Y = Application.GetRealHeight(80),
                        Width = Application.GetRealWidth(32),
                        Height = Application.GetRealWidth(32),
                        UnSelectedImagePath = "Public/PowerClose.png",
@@ -971,7 +1059,7 @@
                btnIcon.MouseUpEventHandler = skipControlPageEvent;
                btnState.MouseUpEventHandler = skipControlPageEvent;
                //电视不需要更新状态
                if(function.spk!= SPK.ElectricTV)
                if(function.spk!= SPK.ElectricTV && function.spk != SPK.StbIr && function.spk != SPK.PjtIr)
                {
                    UpdataFunctionStates(function);
                }
HDL_ON/UI/UI2/2-Classification/ClassificationPage.cs
@@ -475,10 +475,9 @@
                        break;
                    case ShowFunction.EnergyMonitoring:
                        #region 能源
                        functionCount = FunctionList.List.GetElectricals().Count;
                        functionOnCount = FunctionList.List.GetElectricals().FindAll((obj) => obj.trait_on_off.curValue.ToString() == "on").Count;
                        functionCount = FunctionList.List.GetEnergyList().Count;
                        functionOnCount = FunctionList.List.GetEnergyList().FindAll((obj) => obj.trait_on_off.curValue.ToString() == "on").Count;
                        #endregion
                        //functionCount = 1;
                        break;
                    case ShowFunction.Environmental:
                        #region 环境数据
HDL_ON/UI/UI2/3-Intelligence/IntelligencePage.cs
@@ -412,12 +412,12 @@
                    SelectedImagePath = "Collection/CollectionIcon.png",
                    IsSelected = scene.collect,
                };
                //view.AddChidren(btnCollection);
                view.AddChidren(btnCollection);
                //2020-12-16 如果是成员隐藏收藏功能
                if (!DB_ResidenceData.Instance.CurrentRegion.isOtherShare)
                {
                    view.AddChidren(btnCollection);
                }
                //if (!DB_ResidenceData.Instance.CurrentRegion.isOtherShare)
                //{
                //    view.AddChidren(btnCollection);
                //}
                btnCollection.MouseUpEventHandler = (sender, e) => {
                    scene.collect = btnCollection.IsSelected = !btnCollection.IsSelected;
                    scene.CollectScene();
HDL_ON/UI/UI2/FuntionControlView/1ContorlPage/AcControlPage.cs
@@ -472,6 +472,7 @@
                };
            }
        }
        /// <summary>
        /// 加载额外对红外按钮界面
        /// </summary>
HDL_ON/UI/UI2/FuntionControlView/Electrical/PjtPage.cs
New file
@@ -0,0 +1,653 @@
using System;
using System.Collections.Generic;
using HDL_ON.DriverLayer;
using HDL_ON.Entity;
using HDL_ON.UI.CSS;
using Shared;
namespace HDL_ON.UI
{
    /// <summary>
    /// 投影仪页面
    /// </summary>
    public class PjtPage : FrameLayout
    {
        #region 控件集合
        FrameLayout bodyView;
        /// <summary>
        /// 功能名称按钮
        /// </summary>
        Button btnFunctionName;
        /// <summary>
        /// 房间楼层信息按钮
        /// </summary>
        Button btnFromFoorAndRoom;
        /// <summary>
        /// 收藏按钮
        /// </summary>
        Button btnCollection;
        FrameLayout topMenuView;
        Button btnTopMenuUp;
        Button btnTopMenuLeft;
        Button btnTopMenuRight;
        Button btnTopMenuDown;
        Button btnOk;
        FrameLayout channleView;
        Button btnChlReduce;
        Button btnChlPlus;
        FrameLayout volView;
        Button btnVolReduce;
        Button btnVolPlus;
        Button btnBack;
        Button btnMenu;
        Button btnMore;
        Button btnPower;
        #endregion
        #region 区域变量
        //TV tvTemp = new TV();
        Function device;
        Button btnCollection_Out;
        Button btnFunctionName_Out;
        Button btnFromFloor_Out;
        /// <summary>
        /// 刷新显示信息
        /// </summary>
        Action actionRefresh;
        #endregion
        public PjtPage(Function func)
        {
            bodyView = this;
            device = func;
        }
        public void LoadPage(Button btnCollectionIcon, Button btnFunctionNameOut, Button btnFromFloorOut)
        {
            bodyView.BackgroundColor = CSS_Color.BackgroundColor;
            btnCollection_Out = btnCollectionIcon;
            btnFunctionName_Out = btnFunctionNameOut;
            btnFromFloor_Out = btnFromFloorOut;
            FrameLayout controlView = new FrameLayout()
            {
                Gravity = Gravity.CenterHorizontal,
                Y = Application.GetRealHeight(88),
                Width = Application.GetRealWidth(327),
                Height = Application.GetRealHeight(526),
                BackgroundImagePath = "Public/Fragmentbg.png",
            };
            bodyView.AddChidren(controlView);
            btnFunctionName = new Button()
            {
                X = Application.GetRealWidth(16),
                Y = Application.GetRealHeight(14),
                Width = Application.GetRealWidth(270),
                Height = Application.GetRealHeight(37),
                TextColor = CSS_Color.FirstLevelTitleColor,
                TextAlignment = TextAlignment.CenterLeft,
                TextSize = CSS_FontSize.EmphasisFontSize_FirstLevel,
                Text = device.name,
            };
            controlView.AddChidren(btnFunctionName);
            btnFromFoorAndRoom = new Button()
            {
                X = Application.GetRealWidth(16),
                Y = btnFunctionName.Bottom,
                Width = Application.GetRealWidth(270),
                Height = Application.GetRealHeight(21),
                TextColor = CSS_Color.PromptingColor1,
                TextAlignment = TextAlignment.CenterLeft,
                TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
                Text = device.GetRoomListName()
            };
            controlView.AddChidren(btnFromFoorAndRoom);
            btnCollection = new Button()
            {
                X = Application.GetRealWidth(273),
                Y = Application.GetRealHeight(14),
                Width = Application.GetMinRealAverage(40),
                Height = Application.GetMinRealAverage(40),
                SelectedImagePath = "Collection/CollectionIcon.png",
                UnSelectedImagePath = "Collection/CollectionGrayIcon.png",
                IsSelected = device.collect
            };
            controlView.AddChidren(btnCollection);
            //2020-12-16 如果是成员隐藏收藏功能
            //if (!DB_ResidenceData.Instance.CurrentRegion.isOtherShare)
            //{
            //    controlView.AddChidren(btnCollection);
            //}
            #region 轮盘控制区域
            topMenuView = new FrameLayout()
            {
                Y = Application.GetRealHeight(88),
                Gravity = Gravity.CenterHorizontal,
                Width = Application.GetRealWidth(199),
                Height = Application.GetRealWidth(199),
                BackgroundImagePath = "FunctionIcon/Electrical/TV/TVOkIcon.png",
            };
            controlView.AddChidren(topMenuView);
            btnTopMenuUp = new Button()
            {
                Gravity = Gravity.CenterHorizontal,
                Width = Application.GetRealWidth(80),
                Height = Application.GetRealWidth(50),
            };
            topMenuView.AddChidren(btnTopMenuUp);
            btnTopMenuLeft = new Button()
            {
                Gravity = Gravity.CenterVertical,
                Width = Application.GetRealWidth(50),
                Height = Application.GetRealWidth(80),
            };
            topMenuView.AddChidren(btnTopMenuLeft);
            btnTopMenuRight = new Button()
            {
                X = Application.GetRealWidth(150),
                Gravity = Gravity.CenterVertical,
                Width = Application.GetRealWidth(50),
                Height = Application.GetRealWidth(80),
            };
            topMenuView.AddChidren(btnTopMenuRight);
            btnTopMenuDown = new Button()
            {
                Y = Application.GetRealWidth(150),
                Gravity = Gravity.CenterHorizontal,
                Width = Application.GetRealWidth(80),
                Height = Application.GetRealWidth(50),
            };
            topMenuView.AddChidren(btnTopMenuDown);
            btnOk = new Button()
            {
                Gravity = Gravity.Center,
                Width = Application.GetRealWidth(100),
                Height = Application.GetRealWidth(100),
            };
            topMenuView.AddChidren(btnOk);
            #endregion
            #region 频道音量调节
            channleView = new FrameLayout()
            {
                X = Application.GetRealWidth(26),
                Y = Application.GetRealHeight(246),
                Width = Application.GetRealWidth(44),
                Height = Application.GetRealWidth(102),
                BackgroundImagePath = "FunctionIcon/Electrical/TV/MenuBgIcon.png",
            };
            controlView.AddChidren(channleView);
            btnChlPlus = new Button()
            {
                Gravity = Gravity.CenterHorizontal,
                Y = Application.GetRealHeight(10),
                Width = Application.GetRealWidth(24),
                Height = Application.GetRealWidth(24),
                UnSelectedImagePath = "FunctionIcon/Electrical/TV/PlusIcon.png"
            };
            channleView.AddChidren(btnChlPlus);
            Button btnChlText;
            btnChlText = new Button()
            {
                Gravity = Gravity.CenterVertical,
                Height = Application.GetRealWidth(23),
                TextAlignment = TextAlignment.Center,
                TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
                TextColor = CSS_Color.FirstLevelTitleColor,
                TextID = StringId.Canvas,
            };
            channleView.AddChidren(btnChlText);
            btnChlReduce = new Button()
            {
                Gravity = Gravity.CenterHorizontal,
                Y = Application.GetRealWidth(66),
                Width = Application.GetRealWidth(24),
                Height = Application.GetRealWidth(24),
                UnSelectedImagePath = "FunctionIcon/Electrical/TV/ReduceIcon.png"
            };
            channleView.AddChidren(btnChlReduce);
            volView = new FrameLayout()
            {
                X = Application.GetRealWidth(257),
                Y = Application.GetRealHeight(246),
                Width = Application.GetRealWidth(44),
                Height = Application.GetRealWidth(102),
                BackgroundImagePath = "FunctionIcon/Electrical/TV/MenuBgIcon.png",
            };
            controlView.AddChidren(volView);
            btnVolPlus = new Button()
            {
                Gravity = Gravity.CenterHorizontal,
                Y = Application.GetRealHeight(10),
                Width = Application.GetRealWidth(24),
                Height = Application.GetRealWidth(24),
                UnSelectedImagePath = "FunctionIcon/Electrical/TV/PlusIcon.png"
            };
            volView.AddChidren(btnVolPlus);
            Button btnVolText;
            btnVolText = new Button()
            {
                Gravity = Gravity.CenterVertical,
                Height = Application.GetRealWidth(23),
                TextAlignment = TextAlignment.Center,
                TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
                TextColor = CSS_Color.FirstLevelTitleColor,
                TextID = StringId.Vol,
            };
            volView.AddChidren(btnVolText);
            btnVolReduce = new Button()
            {
                Gravity = Gravity.CenterHorizontal,
                Y = Application.GetRealWidth(66),
                Width = Application.GetRealWidth(24),
                Height = Application.GetRealWidth(24),
                UnSelectedImagePath = "FunctionIcon/Electrical/TV/ReduceIcon.png"
            };
            volView.AddChidren(btnVolReduce);
            #endregion
            #region 底部控制区域
            btnBack = new Button()
            {
                X = Application.GetRealWidth(52),
                Y = Application.GetRealHeight(466),
                Width = Application.GetRealWidth(32),
                Height = Application.GetRealWidth(32),
                UnSelectedImagePath = "FunctionIcon/Electrical/TV/TVBackIcon.png",
            };
            controlView.AddChidren(btnBack);
            btnMenu = new Button()
            {
                X = Application.GetRealWidth(116),
                Y = Application.GetRealHeight(466),
                Width = Application.GetRealWidth(32),
                Height = Application.GetRealWidth(32),
                UnSelectedImagePath = "FunctionIcon/Electrical/TV/TVMenuIcon.png",
            };
            controlView.AddChidren(btnMenu);
            btnMore = new Button()
            {
                X = Application.GetRealWidth(180),
                Y = Application.GetRealHeight(466),
                Width = Application.GetRealWidth(32),
                Height = Application.GetRealWidth(32),
                UnSelectedImagePath = "FunctionIcon/AC/More.png",
            };
            controlView.AddChidren(btnMore);
            btnMore.MouseUpEventHandler = (sender, e) => {
              LoadDialog_IrMoreView();
            };
            btnPower = new Button()
            {
                X = Application.GetRealWidth(244),
                Y = Application.GetRealHeight(466),
                Width = Application.GetRealWidth(32),
                Height = Application.GetRealWidth(32),
                UnSelectedImagePath = "FunctionIcon/Electrical/TV/TVPowerIcon.png",
            };
            controlView.AddChidren(btnPower);
            #endregion
            new TopViewDiv(bodyView, Language.StringByID(StringId.TV)).LoadTopView_FunctionTop(device, actionRefresh);
            DriverLayer.Control.Ins.SendReadCommand(device);
            LoadEventList();
        }
        /// <summary>
        /// 加载额外对红外按钮界面
        /// </summary>
        void LoadDialog_IrMoreView()
        {
            Dialog dialog = new Dialog();
            var div = new FrameLayout();
            dialog.AddChidren(div);
            div.MouseUpEventHandler = (sender, e) => {
                dialog.Close();
            };
            var bodyView = new FrameLayout()
            {
                Y = Application.GetRealHeight(427),//667
                Height = Application.GetRealHeight(240),
                BackgroundColor = CSS_Color.MainBackgroundColor,
            };
            div.AddChidren(bodyView);
            var contentView = new VerticalScrolViewLayout()
            {
                Y = Application.GetRealHeight(16),
                Gravity = Gravity.CenterHorizontal,
                Width = Application.GetRealWidth(296 + 200),
            };
            bodyView.AddChidren(contentView);
            var row = new FrameLayout()
            {
                Height = Application.GetRealHeight(60),
                Width = Application.GetRealWidth(296),
                Gravity = Gravity.CenterHorizontal,
            };
            contentView.AddChidren(row);
            int index = 0;
            List<FunctionAttributes> attrList = new List<FunctionAttributes>();
            attrList.AddRange(device.attributes);
            attrList.Add(new FunctionAttributes()
            {
                key = "+",
            });
            foreach (var attr in attrList)
            {
                if (attr.key == "up"
                    || attr.key == "down"
                    || attr.key == "right"
                    || attr.key == "left"
                    || attr.key == "zoom+"
                    || attr.key == "zoom-"
                    || attr.key == "volume+"
                    || attr.key == "volume-"
                    || attr.key == "back"
                    || attr.key == "menu"
                    || attr.key == FunctionAttributeKey.OnOff
                    )
                {
                    continue;
                }
                if (index != 0 && index % 3 == 0)
                {
                    row = new FrameLayout()
                    {
                        Height = Application.GetRealHeight(56),
                        Width = Application.GetRealWidth(296),
                        Gravity = Gravity.CenterHorizontal,
                    };
                    contentView.AddChidren(row);
                }
                if (attr.key == "+")
                {
                    var addView = new FrameLayout()
                    {
                        Gravity = Gravity.CenterVertical,
                        Width = Application.GetRealWidth(88),
                        Height = Application.GetRealHeight(40),
                        Radius = (uint)Application.GetRealHeight(18),
                        BorderColor = CSS_Color.PromptingColor1,
                        BorderWidth = (uint)Application.GetRealWidth(2),
                    };
                    if (index % 3 == 1)
                    {
                        addView.Gravity = Gravity.Center;
                    }
                    else if (index % 3 == 2)
                    {
                        addView.X = Application.GetRealWidth(208);
                    }
                    row.AddChidren(addView);
                    var btnAdd = new Button()
                    {
                        Gravity = Gravity.Center,
                        UnSelectedImagePath = "Public/PlusSignIcon.png",
                        Width = Application.GetRealWidth(32),
                        Height = Application.GetRealWidth(32),
                    };
                    addView.AddChidren(btnAdd);
                    btnAdd.MouseUpEventHandler = (sender, e) =>
                    {
                        dialog.Close();
                        Action action = () => {
                            LoadDialog_IrMoreView();
                        };
                        var addButton = new AcControlPage_AddIrButton(action);
                        MainPage.BasePageView.AddChidren(addButton);
                        addButton.Show(device);
                        MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
                    };
                }
                else
                {
                    var btn = new Button()
                    {
                        Gravity = Gravity.CenterVertical,
                        Width = Application.GetRealWidth(88),
                        Height = Application.GetRealHeight(40),
                        Radius = (uint)Application.GetRealHeight(18),
                        BorderColor = CSS_Color.PromptingColor1,
                        BorderWidth = (uint)Application.GetRealWidth(2),
                        TextAlignment = TextAlignment.Center,
                        TextSize = CSS_FontSize.TextFontSize,
                        TextColor = CSS_Color.FirstLevelTitleColor,
                        SelectedTextColor = CSS_Color.MainBackgroundColor,
                        SelectedBackgroundColor = CSS_Color.MainColor,
                    };
                    if (attr.value.Count > 0)
                    {
                        btn.Text = attr.value[0];
                    }
                    if (index % 3 == 1)
                    {
                        btn.Gravity = Gravity.Center;
                    }
                    else if (index % 3 == 2)
                    {
                        btn.X = Application.GetRealWidth(208);
                    }
                    row.AddChidren(btn);
                    btn.MouseUpEventHandler = (sender, e) =>
                    {
                        Dictionary<string, string> d = new Dictionary<string, string>();
                        d.Add(attr.key, "");
                        Control.Ins.SendWriteCommand(device, d);
                        new System.Threading.Thread(() =>
                        {
                            System.Threading.Thread.Sleep(2000);
                            Application.RunOnMainThread(() =>
                            {
                                btn.IsSelected = false;
                            });
                        })
                        { IsBackground = true }.Start();
                    };
                }
                index++;
            }
            dialog.Show();
        }
        /// <summary>
        /// 加载事件列表
        /// </summary>
        void LoadEventList()
        {
            LoadControlEvent();
            LoadCollectionEvent();
            //回退刷新信息事件
            actionRefresh = () => {
                btnFunctionName.Text = btnFunctionName_Out.Text = device.name;
                btnFromFloor_Out.Text = btnFromFoorAndRoom.Text = device.GetRoomListName();
                device.UpdataFuncitonInfo();
            };
        }
        /// <summary>
        /// 收藏功能按钮事件
        /// </summary>
        void LoadCollectionEvent()
        {
            btnCollection.MouseUpEventHandler += (sender, e) => {
                btnCollection.IsSelected = device.collect = btnCollection_Out.IsSelected = !btnCollection.IsSelected;
                device.CollectFunction();
            };
        }
        /// <summary>
        /// 加载控制事件
        /// </summary>
        void LoadControlEvent()
        {
            btnChlPlus.MouseUpEventHandler = (sender, e) =>
            {
                if (DB_ResidenceData.Instance.GatewayType == 1)
                {
                    Dictionary<string, string> d = new Dictionary<string, string>();
                    d.Add("ch+", "");
                    Control.Ins.SendWriteCommand(device, d);
                }
            };
            btnChlReduce.MouseUpEventHandler = (sender, e) =>
            {
                if (DB_ResidenceData.Instance.GatewayType == 1)
                {
                    Dictionary<string, string> d = new Dictionary<string, string>();
                    d.Add("ch-", "");
                    Control.Ins.SendWriteCommand(device, d);
                }
            };
            btnVolPlus.MouseUpEventHandler = (sender, e) =>
            {
                if (DB_ResidenceData.Instance.GatewayType == 1)
                {
                    Dictionary<string, string> d = new Dictionary<string, string>();
                    d.Add("volume+", "");
                    Control.Ins.SendWriteCommand(device, d);
                }
            };
            btnVolReduce.MouseUpEventHandler = (sender, e) =>
            {
                if (DB_ResidenceData.Instance.GatewayType == 1)
                {
                    Dictionary<string, string> d = new Dictionary<string, string>();
                    d.Add("volume-", "");
                    Control.Ins.SendWriteCommand(device, d);
                }
            };
            btnBack.MouseUpEventHandler = (sender, e) =>
            {
                if (DB_ResidenceData.Instance.GatewayType == 1)
                {
                    Dictionary<string, string> d = new Dictionary<string, string>();
                    d.Add("return", "");
                    Control.Ins.SendWriteCommand(device, d);
                }
            };
            btnMenu.MouseUpEventHandler = (sender, e) =>
            {
                if (DB_ResidenceData.Instance.GatewayType == 1)
                {
                    Dictionary<string, string> d = new Dictionary<string, string>();
                    d.Add("menu", "");
                    Control.Ins.SendWriteCommand(device, d);
                }
            };
            btnPower.MouseUpEventHandler = (sender, e) =>
            {
                if (DB_ResidenceData.Instance.GatewayType == 1)
                {
                    Dictionary<string, string> d = new Dictionary<string, string>();
                    d.Add("on_off", "");
                    Control.Ins.SendWriteCommand(device, d);
                }
            };
            btnTopMenuUp.MouseUpEventHandler = (sender, e) => {
                if (DB_ResidenceData.Instance.GatewayType == 1)
                {
                    Dictionary<string, string> d = new Dictionary<string, string>();
                    d.Add("up", "");
                    Control.Ins.SendWriteCommand(device, d);
                }
            };
            btnTopMenuLeft.MouseUpEventHandler = (sender, e) => {
                if (DB_ResidenceData.Instance.GatewayType == 1)
                {
                    Dictionary<string, string> d = new Dictionary<string, string>();
                    d.Add("left", "");
                    Control.Ins.SendWriteCommand(device, d);
                }
            };
            btnTopMenuRight.MouseUpEventHandler = (sender, e) => {
                if (DB_ResidenceData.Instance.GatewayType == 1)
                {
                    Dictionary<string, string> d = new Dictionary<string, string>();
                    d.Add("right", "");
                    Control.Ins.SendWriteCommand(device, d);
                }
            };
            btnTopMenuDown.MouseUpEventHandler = (sender, e) => {
                if (DB_ResidenceData.Instance.GatewayType == 1)
                {
                    Dictionary<string, string> d = new Dictionary<string, string>();
                    d.Add("down", "");
                    Control.Ins.SendWriteCommand(device, d);
                }
            };
            btnOk.MouseUpEventHandler = (sender, e) => {
                if (DB_ResidenceData.Instance.GatewayType == 1)
                {
                    Dictionary<string, string> d = new Dictionary<string, string>();
                    d.Add("ok", "");
                    Control.Ins.SendWriteCommand(device, d);
                }
            };
        }
    }
}
HDL_ON/UI/UI2/FuntionControlView/Electrical/StbPage.cs
New file
@@ -0,0 +1,604 @@
using System;
using Shared;
using HDL_ON.UI.CSS;
using HDL_ON.Entity;
using System.Collections.Generic;
using HDL_ON.DriverLayer;
namespace HDL_ON.UI
{
    public class StbPage : FrameLayout
    {
        #region 控件集合
        StbPage bodyView;
        /// <summary>
        /// 功能名称按钮
        /// </summary>
        Button btnFunctionName;
        /// <summary>
        /// 房间楼层信息按钮
        /// </summary>
        Button btnFromFoorAndRoom;
        /// <summary>
        /// 收藏按钮
        /// </summary>
        Button btnCollection;
        Button btnMenu;
        FrameLayout topMenuView;
        Button btnTopMenuUp;
        Button btnTopMenuLeft;
        Button btnTopMenuRight;
        Button btnTopMenuDown;
        Button btnOk;
        FrameLayout channleView;
        Button btnChlReduce;
        Button btnChlPlus;
        FrameLayout volView;
        Button btnVolReduce;
        Button btnVolPlus;
        Button btnBack;
        Button btnMore;
        Button btn123;
        Button btnMute;
        Button btnPower;
        #endregion
        #region 区域变量
        Function function;
        Button btnCollection_Out;
        Button btnFunctionName_Out;
        Button btnFromFloor_Out;
        /// <summary>
        /// 刷新显示信息
        /// </summary>
        Action actionRefresh;
        #endregion
        public StbPage(Function func)
        {
            bodyView = this;
            function = func;
        }
        public void LoadPage(Button btnCollectionIcon, Button btnFunctionNameOut, Button btnFromFloorOut)
        {
            bodyView.BackgroundColor = CSS_Color.BackgroundColor;
            btnCollection_Out = btnCollectionIcon;
            btnFunctionName_Out = btnFunctionNameOut;
            btnFromFloor_Out = btnFromFloorOut;
            FrameLayout controlView = new FrameLayout()
            {
                Gravity = Gravity.CenterHorizontal,
                Y = Application.GetRealHeight(88),
                Width = Application.GetRealWidth(327),
                Height = Application.GetRealHeight(526),
                BackgroundImagePath = "Public/Fragmentbg.png",
            };
            bodyView.AddChidren(controlView);
            btnFunctionName = new Button()
            {
                X = Application.GetRealWidth(16),
                Y = Application.GetRealHeight(14),
                Width = Application.GetRealWidth(270),
                Height = Application.GetRealHeight(37),
                TextColor = CSS_Color.FirstLevelTitleColor,
                TextAlignment = TextAlignment.CenterLeft,
                TextSize = CSS_FontSize.EmphasisFontSize_FirstLevel,
                Text = function.name,
            };
            controlView.AddChidren(btnFunctionName);
            btnFromFoorAndRoom = new Button()
            {
                X = Application.GetRealWidth(16),
                Y = btnFunctionName.Bottom,
                Width = Application.GetRealWidth(270),
                Height = Application.GetRealHeight(21),
                TextColor = CSS_Color.PromptingColor1,
                TextAlignment = TextAlignment.CenterLeft,
                TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
                Text = function.GetRoomListName()
            };
            controlView.AddChidren(btnFromFoorAndRoom);
            btnCollection = new Button()
            {
                X = Application.GetRealWidth(273),
                Y = Application.GetRealHeight(14),
                Width = Application.GetMinRealAverage(40),
                Height = Application.GetMinRealAverage(40),
                SelectedImagePath = "Collection/CollectionIcon.png",
                UnSelectedImagePath = "Collection/CollectionGrayIcon.png",
                IsSelected = function.collect
            };
            controlView.AddChidren(btnCollection);
            //2020-12-16 如果是成员隐藏收藏功能
            //if (!DB_ResidenceData.Instance.CurrentRegion.isOtherShare)
            //{
            //    controlView.AddChidren(btnCollection);
            //}
            #region 轮盘控制区域
            topMenuView = new FrameLayout()
            {
                Y = Application.GetRealHeight(88),
                Gravity = Gravity.CenterHorizontal,
                Width = Application.GetRealWidth(199),
                Height = Application.GetRealWidth(199),
                BackgroundImagePath = "FunctionIcon/Electrical/TV/TVOkIcon.png",
            };
            controlView.AddChidren(topMenuView);
            btnTopMenuUp = new Button()
            {
                Gravity = Gravity.CenterHorizontal,
                Width = Application.GetRealWidth(80),
                Height = Application.GetRealWidth(50),
            };
            topMenuView.AddChidren(btnTopMenuUp);
            btnTopMenuLeft = new Button()
            {
                Gravity = Gravity.CenterVertical,
                Width = Application.GetRealWidth(50),
                Height = Application.GetRealWidth(80),
            };
            topMenuView.AddChidren(btnTopMenuLeft);
            btnTopMenuRight = new Button()
            {
                X = Application.GetRealWidth(150),
                Gravity = Gravity.CenterVertical,
                Width = Application.GetRealWidth(50),
                Height = Application.GetRealWidth(80),
            };
            topMenuView.AddChidren(btnTopMenuRight);
            btnTopMenuDown = new Button()
            {
                Y = Application.GetRealWidth(150),
                Gravity = Gravity.CenterHorizontal,
                Width = Application.GetRealWidth(80),
                Height = Application.GetRealWidth(50),
            };
            topMenuView.AddChidren(btnTopMenuDown);
            btnOk = new Button()
            {
                Gravity = Gravity.Center,
                Width = Application.GetRealWidth(100),
                Height = Application.GetRealWidth(100),
            };
            topMenuView.AddChidren(btnOk);
            #endregion
            #region 频道音量调节
            channleView = new FrameLayout()
            {
                X = Application.GetRealWidth(26),
                Y = Application.GetRealHeight(246),
                Width = Application.GetRealWidth(44),
                Height = Application.GetRealWidth(102),
                BackgroundImagePath = "FunctionIcon/Electrical/TV/MenuBgIcon.png",
            };
            controlView.AddChidren(channleView);
            btnChlPlus = new Button()
            {
                Gravity = Gravity.CenterHorizontal,
                Y = Application.GetRealHeight(10),
                Width = Application.GetRealWidth(24),
                Height = Application.GetRealWidth(24),
                UnSelectedImagePath = "FunctionIcon/Electrical/TV/PlusIcon.png"
            };
            channleView.AddChidren(btnChlPlus);
            Button btnChlText;
            btnChlText = new Button()
            {
                Gravity = Gravity.CenterVertical,
                Height = Application.GetRealWidth(23),
                TextAlignment = TextAlignment.Center,
                TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
                TextColor = CSS_Color.FirstLevelTitleColor,
                TextID = StringId.Chl,
            };
            channleView.AddChidren(btnChlText);
            btnChlReduce = new Button()
            {
                Gravity = Gravity.CenterHorizontal,
                Y = Application.GetRealWidth(66),
                Width = Application.GetRealWidth(24),
                Height = Application.GetRealWidth(24),
                UnSelectedImagePath = "FunctionIcon/Electrical/TV/ReduceIcon.png"
            };
            channleView.AddChidren(btnChlReduce);
            volView = new FrameLayout()
            {
                X = Application.GetRealWidth(257),
                Y = Application.GetRealHeight(246),
                Width = Application.GetRealWidth(44),
                Height = Application.GetRealWidth(102),
                BackgroundImagePath = "FunctionIcon/Electrical/TV/MenuBgIcon.png",
            };
            controlView.AddChidren(volView);
            btnVolPlus = new Button()
            {
                Gravity = Gravity.CenterHorizontal,
                Y = Application.GetRealHeight(10),
                Width = Application.GetRealWidth(24),
                Height = Application.GetRealWidth(24),
                UnSelectedImagePath = "FunctionIcon/Electrical/TV/PlusIcon.png"
            };
            volView.AddChidren(btnVolPlus);
            Button btnVolText;
            btnVolText = new Button()
            {
                Gravity = Gravity.CenterVertical,
                Height = Application.GetRealWidth(23),
                TextAlignment = TextAlignment.Center,
                TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
                TextColor = CSS_Color.FirstLevelTitleColor,
                TextID = StringId.Vol,
            };
            volView.AddChidren(btnVolText);
            btnVolReduce = new Button()
            {
                Gravity = Gravity.CenterHorizontal,
                Y = Application.GetRealWidth(66),
                Width = Application.GetRealWidth(24),
                Height = Application.GetRealWidth(24),
                UnSelectedImagePath = "FunctionIcon/Electrical/TV/ReduceIcon.png"
            };
            volView.AddChidren(btnVolReduce);
            #endregion
            #region 底部控制区域
            btnBack = new Button()
            {
                X = Application.GetRealWidth(52),
                Y = Application.GetRealHeight(402),
                Width = Application.GetRealWidth(32),
                Height = Application.GetRealWidth(32),
                UnSelectedImagePath = "FunctionIcon/Electrical/TV/TVBackIcon.png",
            };
            controlView.AddChidren(btnBack);
            btnMenu = new Button()
            {
                X = Application.GetRealWidth(116),
                Y = Application.GetRealHeight(402),
                Width = Application.GetRealWidth(32),
                Height = Application.GetRealWidth(32),
                UnSelectedImagePath = "FunctionIcon/Electrical/TV/TVMenuIcon.png",
            };
            controlView.AddChidren(btnMenu);
            btn123 = new Button()
            {
                X = Application.GetRealWidth(180),
                Y = Application.GetRealHeight(402),
                Width = Application.GetRealWidth(40),
                Height = Application.GetRealWidth(40),
                UnSelectedImagePath = "FunctionIcon/Electrical/TV/TV123Icon.png",
            };
            controlView.AddChidren(btn123);
            btnMute = new Button()
            {
                X = Application.GetRealWidth(244),
                Y = Application.GetRealHeight(402),
                Width = Application.GetRealWidth(32),
                Height = Application.GetRealWidth(32),
                UnSelectedImagePath = "FunctionIcon/Electrical/TV/TVMuteIcon.png",
            };
            controlView.AddChidren(btnMute);
            btnMore = new Button()
            {
                X = Application.GetRealWidth(116),
                Y = Application.GetRealHeight(466),
                Width = Application.GetRealWidth(32),
                Height = Application.GetRealWidth(32),
                UnSelectedImagePath = "FunctionIcon/AC/More.png",
            };
            controlView.AddChidren(btnMore);
            btnPower = new Button()
            {
                X = Application.GetRealWidth(180),
                Y = Application.GetRealHeight(466),
                Width = Application.GetRealWidth(32),
                Height = Application.GetRealWidth(32),
                UnSelectedImagePath = "FunctionIcon/Electrical/TV/TVPowerIcon.png",
            };
            controlView.AddChidren(btnPower);
            #endregion
            LoadEventList();
            new TopViewDiv(bodyView, Language.StringByID(StringId.TV)).LoadTopView_FunctionTop(function, actionRefresh);
            DriverLayer.Control.Ins.SendReadCommand(function);
        }
        void ShowNumberView()
        {
            Dialog dialog = new Dialog();
            FrameLayout dialogView = new FrameLayout()
            {
                AnimateSpeed = 0.3f,
                Animate = Animate.DownToUp,
            };
            dialog.AddChidren(dialogView);
            dialogView.MouseUpEventHandler = (sender, e) =>
            {
                dialog.Close();
            };
            FrameLayout numberView = new FrameLayout()
            {
                Y = Application.GetRealHeight(403),
                Height = Application.GetRealHeight(264),
                BackgroundColor = CSS_Color.MainBackgroundColor,
            };
            dialogView.AddChidren(numberView);
            for (int i = 0; i < 10; i++)
            {
                Button btn = new Button()
                {
                    Width = Application.GetRealWidth(98),
                    Height = Application.GetRealHeight(44),
                    Radius = (uint)Application.GetRealWidth(8),
                    BorderWidth = (uint)Application.GetRealWidth(1),
                    BorderColor = CSS_Color.PromptingColor1,
                    BackgroundColor = CSS_Color.MainBackgroundColor,
                    SelectedBackgroundColor = CSS_Color.MainColor,
                    TextColor = CSS_Color.FirstLevelTitleColor,
                    SelectedTextColor = CSS_Color.MainBackgroundColor,
                    IsBold = true,
                    Text = i.ToString(),
                    TextAlignment = TextAlignment.Center,
                };
                if (i == 1 || i == 4 || i == 7)
                {
                    btn.X = Application.GetRealWidth(24);
                }
                else if (i == 2 || i == 5 || i == 8)
                {
                    btn.X = Application.GetRealWidth(138);
                }
                else if (i == 3 || i == 6 || i == 9)
                {
                    btn.X = Application.GetRealWidth(252);
                }
                else
                {
                    btn.X = Application.GetRealWidth(138);
                }
                if (i == 0)
                {
                    btn.Y = Application.GetRealHeight(204);
                }
                else if (i < 4)
                {
                    btn.Y = Application.GetRealHeight(24);
                }
                else if (i < 7)
                {
                    btn.Y = Application.GetRealHeight(84);
                }
                else
                {
                    btn.Y = Application.GetRealHeight(144);
                }
                numberView.AddChidren(btn);
                btn.MouseUpEventHandler = (sender, e) => {
                    string index = (sender as Button).Text;
                    btn.IsSelected = false;
                    if (DB_ResidenceData.Instance.GatewayType == 1)
                    {
                        Dictionary<string, string> d = new Dictionary<string, string>();
                        d.Add($"number_{index}", "");
                        Control.Ins.SendWriteCommand(function, d);
                    }
                };
                btn.MouseDownEventHandler = (sender, e) => {
                    btn.IsSelected = true;
                };
            }
            dialog.Show();
        }
        /// <summary>
        /// 加载事件列表
        /// </summary>
        void LoadEventList()
        {
            LoadControlEvent();
            LoadCollectionEvent();
            //回退刷新信息事件
            actionRefresh = () => {
                btnFunctionName.Text = btnFunctionName_Out.Text = function.name;
                btnFromFloor_Out.Text = btnFromFoorAndRoom.Text = function.GetRoomListName();
                function.UpdataFuncitonInfo();
            };
        }
        /// <summary>
        /// 收藏功能按钮事件
        /// </summary>
        void LoadCollectionEvent()
        {
            btnCollection.MouseUpEventHandler += (sender, e) => {
                btnCollection.IsSelected = function.collect = btnCollection_Out.IsSelected = !btnCollection.IsSelected;
                function.CollectFunction();
            };
        }
        /// <summary>
        /// 加载控制事件
        /// </summary>
        void LoadControlEvent()
        {
            btnMenu.MouseUpEventHandler = (sender, e) =>
            {
                if (DB_ResidenceData.Instance.GatewayType == 1)
                {
                    Dictionary<string, string> d = new Dictionary<string, string>();
                    d.Add("av_tv", "");
                    Control.Ins.SendWriteCommand(function, d);
                }
            };
            btnChlPlus.MouseUpEventHandler = (sender, e) =>
            {
                if (DB_ResidenceData.Instance.GatewayType == 1)
                {
                    Dictionary<string, string> d = new Dictionary<string, string>();
                    d.Add("ch+", "");
                    Control.Ins.SendWriteCommand(function, d);
                }
            };
            btnChlReduce.MouseUpEventHandler = (sender, e) =>
            {
                if (DB_ResidenceData.Instance.GatewayType == 1)
                {
                    Dictionary<string, string> d = new Dictionary<string, string>();
                    d.Add("ch-", "");
                    Control.Ins.SendWriteCommand(function, d);
                }
            };
            btnVolPlus.MouseUpEventHandler = (sender, e) =>
            {
                if (DB_ResidenceData.Instance.GatewayType == 1)
                {
                    Dictionary<string, string> d = new Dictionary<string, string>();
                    d.Add("volume+", "");
                    Control.Ins.SendWriteCommand(function, d);
                }
            };
            btnVolReduce.MouseUpEventHandler = (sender, e) =>
            {
                if (DB_ResidenceData.Instance.GatewayType == 1)
                {
                    Dictionary<string, string> d = new Dictionary<string, string>();
                    d.Add("volume-", "");
                    Control.Ins.SendWriteCommand(function, d);
                }
            };
            btnBack.MouseUpEventHandler = (sender, e) =>
            {
                if (DB_ResidenceData.Instance.GatewayType == 1)
                {
                    Dictionary<string, string> d = new Dictionary<string, string>();
                    d.Add("return", "");
                    Control.Ins.SendWriteCommand(function, d);
                }
            };
            btnMenu.MouseUpEventHandler = (sender, e) =>
            {
                if (DB_ResidenceData.Instance.GatewayType == 1)
                {
                    Dictionary<string, string> d = new Dictionary<string, string>();
                    d.Add("menu", "");
                    Control.Ins.SendWriteCommand(function, d);
                }
            };
            btn123.MouseUpEventHandler = (sender, e) =>
            {
                ShowNumberView();
            };
            btnMute.MouseUpEventHandler = (sender, e) =>
            {
                if (DB_ResidenceData.Instance.GatewayType == 1)
                {
                    Dictionary<string, string> d = new Dictionary<string, string>();
                    d.Add("mute", "");
                    Control.Ins.SendWriteCommand(function, d);
                }
            };
            btnPower.MouseUpEventHandler = (sender, e) =>
            {
                if (DB_ResidenceData.Instance.GatewayType == 1)
                {
                    Dictionary<string, string> d = new Dictionary<string, string>();
                    d.Add("on_off", "");
                    Control.Ins.SendWriteCommand(function, d);
                }
            };
            btnTopMenuUp.MouseUpEventHandler = (sender, e) => {
                if (DB_ResidenceData.Instance.GatewayType == 1)
                {
                    Dictionary<string, string> d = new Dictionary<string, string>();
                    d.Add("up", "");
                    Control.Ins.SendWriteCommand(function, d);
                }
            };
            btnTopMenuLeft.MouseUpEventHandler = (sender, e) => {
                if (DB_ResidenceData.Instance.GatewayType == 1)
                {
                    Dictionary<string, string> d = new Dictionary<string, string>();
                    d.Add("left", "");
                    Control.Ins.SendWriteCommand(function, d);
                }
            };
            btnTopMenuRight.MouseUpEventHandler = (sender, e) => {
                if (DB_ResidenceData.Instance.GatewayType == 1)
                {
                    Dictionary<string, string> d = new Dictionary<string, string>();
                    d.Add("right", "");
                    Control.Ins.SendWriteCommand(function, d);
                }
            };
            btnTopMenuDown.MouseUpEventHandler = (sender, e) => {
                if (DB_ResidenceData.Instance.GatewayType == 1)
                {
                    Dictionary<string, string> d = new Dictionary<string, string>();
                    d.Add("down", "");
                    Control.Ins.SendWriteCommand(function, d);
                }
            };
            btnOk.MouseUpEventHandler = (sender, e) => {
                if (DB_ResidenceData.Instance.GatewayType == 1)
                {
                    Dictionary<string, string> d = new Dictionary<string, string>();
                    d.Add("ok", "");
                    Control.Ins.SendWriteCommand(function, d);
                }
            };
        }
    }
}
HDL_ON/UI/UI2/FuntionControlView/Energy/EchartsOption_Energy.cs
File was deleted
HDL_ON/UI/UI2/FuntionControlView/Energy/EnergyMainPage.cs
@@ -1,25 +1,89 @@
using System;
using System.Collections.Generic;
using HDL_ON.DAL.Server;
using HDL_ON.DriverLayer;
using HDL_ON.Entity;
using HDL_ON.UI.CSS;
using HDL_ON.UI.UI2.EchartsOption_Energy;
using Shared;
namespace HDL_ON.UI
{
    public class EnergyMainPage : FrameLayout
    {
        FrameLayout bodyView;
        static EnergyMainPage bodyView;
        /// <summary>
        /// 顶部区域
        /// </summary>
        FrameLayout generalTableView;
        /// <summary>
        /// 实时功耗
        /// </summary>
        Button btnRealTimeData;
        /// <summary>
        /// 实时功耗单位
        /// </summary>
        Button btnTotalValueUint;
        /// <summary>
        /// 总功耗
        /// </summary>
        TextButton btnTotalValue;
        /// <summary>
        /// 历史数据区域
        /// </summary>
        FrameLayout diagramView;
        /// <summary>
        /// 曲线图
        /// </summary>
        MyEchartsViewOn myLineEchartsView;
        /// <summary>
        /// 曲线图数据string
        /// </summary>
        EchartsOption_BrokenLine brokenLine;
        /// <summary>
        /// 曲线图下拉按钮
        /// </summary>
        Button btnDrodDown;
        /// <summary>
        /// 插查询的能源列表
        /// </summary>
        List<Function> queryList = new List<Function>();
        /// <summary>
        /// 查询条件
        /// hour、week、month
        /// </summary>
        string curQueryType = "hour";
        /// <summary>
        /// 能源列表区域
        /// </summary>
        FrameLayout energyListView;
        /// <summary>
        /// 历史数据图表
        /// </summary>
        MyEchartsViewOn myEchartsView;
        /// <summary>
        /// 曲线图是否展开
        /// </summary>
        bool isUnfoldOrStow = false;
        List<Function> energyList = new List<Function>();
        List<uint> colorList = new List<uint>(){0xFF80AEFF, 0xFFFFD154, 0xFFFF9D54, 0xFFFE6A6A, 0xFFB183C3, 0xFFADE764,
                                        0xFFD7504B, 0xFFC6E579, 0xFFF4E001, 0xFFF0805A, 0xFF26C0C0};
        List<string> colorList2 = new List<string>() {
                                        "#80AEFF", "#FFD154", "#FF9D54", "#FE6A6A", "#B183C3", "#ADE764",
                                        "#D7504B", "#C6E579", "#F4E001", "#F0805A", "#26C0C0"};
        /// <summary>
        /// 主页
        /// </summary>
        public EnergyMainPage()
        {
            bodyView = this;
            energyList = FunctionList.List.GetEnergyList();
        }
        /// <summary>
@@ -38,18 +102,18 @@
            bodyView.AddChidren(contentView);
            #region 顶部view
            var generalTableView = new FrameLayout()
            generalTableView = new FrameLayout()
            {
                Gravity = Gravity.CenterHorizontal,
                Y = Application.GetRealHeight(16),
                Width = Application.GetRealWidth(343),
                Height = Application.GetRealWidth(148),
                Height = Application.GetRealWidth(148),//419//148
                Radius = (uint)Application.GetRealWidth(5),
                BackgroundColor = CSS_Color.MainBackgroundColor,
            };
            contentView.AddChidren(generalTableView);
            TextButton btnTotalValue = new TextButton()
            btnTotalValue = new TextButton()
            {
                X = Application.GetRealWidth(18),
                Y = Application.GetRealWidth(24),
@@ -63,9 +127,7 @@
            };
            generalTableView.AddChidren(btnTotalValue);
            btnTotalValue.Width = btnTotalValue.GetTextWidth();
            var btnTotalValueUint = new Button()
            btnTotalValueUint = new Button()
            {
                X = btnTotalValue.Right,
                Y = Application.GetRealWidth(24),
@@ -79,7 +141,7 @@
            };
            generalTableView.AddChidren(btnTotalValueUint);
            var btnRealTimeData = new Button()
            btnRealTimeData = new Button()
            {
                X = Application.GetRealWidth(18),
                Y = btnTotalValue.Bottom,
@@ -91,7 +153,9 @@
                TextID = StringId.RealTimePowerConsumption,
            };
            generalTableView.AddChidren(btnRealTimeData);
            btnRealTimeData.Text = Language.StringByID(StringId.RealTimePowerConsumption).Replace("{0}", "0");
            UpdataValue();
            var echartsView = new FrameLayout()
            {
@@ -101,7 +165,7 @@
                //Y = Application.GetRealWidth(16),
            };
            generalTableView.AddChidren(echartsView);
            MyEchartsViewOn myEchartsView = new MyEchartsViewOn()
            myEchartsView = new MyEchartsViewOn()
            {
                Width = Application.GetRealWidth(118),
                Height = Application.GetRealWidth(118),
@@ -109,34 +173,44 @@
            echartsView.AddChidren(myEchartsView);
            Dictionary<string, string> list = new Dictionary<string, string>();
            list.Add("电冰箱", "12");
            list.Add("电风扇", "2");
            list.Add("空调", "9");
            list.Add("洗衣机", "3");
            list.Add("电脑", "33");
            foreach(var ene in energyList)
            {
                double tt = 0;
                double.TryParse(ene.GetAttrState(FunctionAttributeKey.TotalElectricity), out tt);
                tt *= 100;//乘以100,小于1无法加载echart
                list.Add(ene.name, tt.ToString());
            }
            var echartsPie = new EchartsOption_Pie();
            var echartRootJson = echartsPie.InitDateJson(list);
            //var echartRootJsonString = Newtonsoft.Json.JsonConvert.SerializeObject(echartRootJson);
            myEchartsView.ShowWithOption(echartRootJson);
            var btnDrodDown = new Button()
            btnDrodDown = new Button()
            {
                Y = Application.GetRealWidth(118),
                Width = Application.GetRealWidth(343),
                Height = Application.GetRealWidth(30),
                UnSelectedImagePath = "FunctionIcon/Energy/EnergyDrodDownIcon.png",
                SelectedImagePath = "FunctionIcon/Energy/EnergyDrodUpIcon.png",
            };
            initDiagramView();
            generalTableView.AddChidren(btnDrodDown);
            btnDrodDown.MouseUpEventHandler = (sender, e) => {
                isUnfoldOrStow = btnDrodDown.IsSelected = !btnDrodDown.IsSelected;
                showDiagramView();
            };
            #endregion
            var energyList = FunctionList.List.GetEnergyList();
            var energyListView = new FrameLayout()
            energyListView = new FrameLayout()
            {
                Y = generalTableView.Bottom + Application.GetRealWidth(8),
                Height = Application.GetRealWidth(116 * energyList.Count),
                Height = Application.GetRealWidth(116 * energyList.Count + 50),
            };
            contentView.AddChidren(energyListView);
            int index = 0;
@@ -144,25 +218,54 @@
            {
                EnergyRow(energy, energyListView, index);
                index++;
                DriverLayer.Control.Ins.SendReadCommand(energy);
            }
        }
        FrameLayout diagramView;
        List<Function> queryList = new List<Function>();
        string curQueryType = "hour";
        void d1(FrameLayout contentView)
        }
        /// <summary>
        ///
        /// </summary>
        void showDiagramView()
        {
            if (isUnfoldOrStow)//展开
            {
                generalTableView.Height = Application.GetRealHeight(419);
                btnDrodDown.Y = Application.GetRealWidth(389);
                btnDrodDown.IsSelected = true;
            }
            else
            {
                generalTableView.Height = Application.GetRealHeight(148);
                btnDrodDown.Y = Application.GetRealWidth(118);
                btnDrodDown.IsSelected = false;
            }
            energyListView.Y = generalTableView.Bottom + Application.GetRealWidth(8);
        }
        /// <summary>
        /// 加载曲线图
        /// </summary>
        /// <param name="contentView"></param>
        void initDiagramView()
        {
            brokenLine = new EchartsOption_BrokenLine();
            diagramView = new FrameLayout()
            {
                Y = Application.GetRealHeight(136),
                Gravity = Gravity.CenterHorizontal,
                Width = Application.GetRealWidth(343),
                Height = Application.GetRealWidth(420),
                Height = Application.GetRealWidth(241),
                BackgroundColor = CSS_Color.MainBackgroundColor,
                Radius = (uint)Application.GetRealWidth(12),
                BorderColor = 0x00000000,
                BorderWidth = 0,
            };
            contentView.AddChidren(diagramView);
            generalTableView.AddChidren(diagramView);
            #region 选择数据日期范围
            var showDataTypeView = new FrameLayout()
@@ -219,26 +322,38 @@
                btnShowHistroyData_Month.IsSelected = false;
                btnShowHistroyData_Week.IsSelected = false;
                curQueryType = "hour";
                d2();
                brokenLine.YvalueText = "";
                foreach (var enery in queryList)
                {
                    LoadMothed_GetHistoryData(enery,false);
                }
            };
            btnShowHistroyData_Month.MouseUpEventHandler = (sender, e) =>
            {
                showDataTypeView.BackgroundImagePath = "FunctionIcon/EnvironmentalScience/SensorHistoryBg3.png";
                btnShowHistroyData_Day.IsSelected = false;
                btnShowHistroyData_Month.IsSelected = true;
                btnShowHistroyData_Week.IsSelected = false;
                curQueryType = "week";
                d2();
            };
            btnShowHistroyData_Week.MouseUpEventHandler = (sender, e) =>
            {
                showDataTypeView.BackgroundImagePath = "FunctionIcon/EnvironmentalScience/SensorHistoryBg2.png";
                btnShowHistroyData_Day.IsSelected = false;
                btnShowHistroyData_Month.IsSelected = false;
                btnShowHistroyData_Week.IsSelected = true;
                curQueryType = "week";
                brokenLine.YvalueText = "";
                foreach (var enery in queryList)
                {
                    LoadMothed_GetHistoryData(enery, false);
                }
            };
            btnShowHistroyData_Month.MouseUpEventHandler = (sender, e) =>
            {
                showDataTypeView.BackgroundImagePath = "FunctionIcon/EnvironmentalScience/SensorHistoryBg3.png";
                btnShowHistroyData_Day.IsSelected = false;
                btnShowHistroyData_Month.IsSelected = true;
                btnShowHistroyData_Week.IsSelected = false;
                curQueryType = "month";
                d2();
                brokenLine.YvalueText = "";
                foreach (var enery in queryList)
                {
                    LoadMothed_GetHistoryData(enery, false);
                }
            };
            #endregion
@@ -247,116 +362,115 @@
            {
                Gravity = Gravity.CenterHorizontal,
                Y = Application.GetRealHeight(52),
                Width = Application.GetRealWidth(343 - 32),
                Height = Application.GetRealHeight(270),
                //Width = Application.GetRealWidth(343 - 32),
                Height = Application.GetRealHeight(178),
            };
            diagramView.AddChidren(historyDataView);
            var myEchartsView = new MyEchartsViewOn();
            myEchartsView = new MyEchartsViewOn() {
                Y = Application.GetRealHeight(10),
                Height = Application.GetRealHeight(150),
            };
            historyDataView.AddChidren(myEchartsView);
        }
        void d2()
        /// <summary>
        /// 读取历史数据
        /// </summary>
        void LoadMothed_GetHistoryData(Function sr,bool isDel)
        {
            int index = 0;
            var echartRootJson = new EchartsOption_Energy();
            var seriesList = new List<EchartSeriesItem>();
            foreach (var function in queryList)
            if(isDel)//删除数据现实
            {
                var seriesItem = d3(function, index, echartRootJson.xAxis.data);
                seriesList.Add(seriesItem);
                brokenLine.YvalueText = "";
                foreach (var ene in queryList)
                {
                    brokenLine.YvalueText += ene.GetAttrState("ydata") + ",";
                }
                Application.RunOnMainThread(() =>
                {
                    myEchartsView.ShowWithOption(brokenLine.InitOption());
                });
                return;
            }
        }
        /// <summary>
        /// 查询列表
        /// </summary>
        /// <summary>
        /// 读取传感器历史数据
        /// </summary>
        EchartSeriesItem d3(Function function, int index, List<string> xAxisData)
        {
            EchartSeriesItem sItem = null;
            List<string> data = new List<string>();
            var loadPage = new Loading()
            {
                LodingBackgroundColor = 0x88888888,
            };
            diagramView.AddChidren(loadPage);
            try
            new System.Threading.Thread(() =>
            {
                Application.RunOnMainThread(() =>
                try
                {
                    loadPage.Start(Language.StringByID(StringId.PleaseWait));
                });
                var sensorType = function.spk.Split(".")[1];
                var revertObj = new HttpServerRequest().GetSensorHistory(curQueryType, function.deviceId, sensorType);
                if (revertObj != null)
                {
                    if (revertObj.Code == StateCode.SUCCESS)
                    Application.RunOnMainThread(() =>
                    {
                        var revertData = Newtonsoft.Json.JsonConvert.DeserializeObject<List<EnvironmentalSensorHistor>>(revertObj.Data.ToString());
                        loadPage.Start(Language.StringByID(StringId.PleaseWait));
                    });
                         sItem = new EchartSeriesItem
                    var sensorType = sr.spk.Split(".")[1];
                    var revertObj = new HttpServerRequest().GetSensorHistory(curQueryType, sr.deviceId, "total_electricity");
                    if (revertObj != null)
                    {
                        if (revertObj.Code == StateCode.SUCCESS)
                        {
                            data = new List<int>(),
                            lineStyle = new EchartLineStyle()
                            {
                                color = colorList2[index],
#if __IOS__
                                width = 5,
#elif __ANDROID__
                                        width = 2,
#endif
                            },
                        };
                            var revertData = Newtonsoft.Json.JsonConvert.DeserializeObject<List<EnvironmentalSensorHistor>>(revertObj.Data.ToString());
                        try
                        {
                            foreach (var d in revertData)
                            List<string> vs = new List<string>();
                            if (brokenLine.YvalueText == "")
                            {
                                if (xAxisData.Count == 0)
                                foreach (var data in revertData)
                                {
                                    data.Add(d.fieldName);
                                    vs.Add(data.fieldName);
                                }
                                sItem.data.Add(Convert.ToInt32(d.fieldValue));
                                brokenLine.InitXdataText(vs);
                                if (sr.GetAttribute("ydata") == null)
                                {
                                    sr.attributes.Add(new FunctionAttributes() { key = "ydata" });
                                }
                                sr.SetAttrState("ydata", brokenLine.InitYdataText(sr.name, revertData, sr.GetAttrState("color")) + ",");
                            }
                            xAxisData.AddRange(data);
                        }
                        catch (Exception ex)
                        {
                            MainPage.Log($"revertData:{ex.Message}");
                            else
                            {
                                if (sr.GetAttribute("ydata") == null)
                                {
                                    sr.attributes.Add(new FunctionAttributes() { key = "ydata" });
                                }
                                sr.SetAttrState("ydata", brokenLine.InitYdataText(sr.name, revertData, sr.GetAttrState("color"))+",");
                            }
                        }
                    }
                    else
                    brokenLine.yTitle = Language.StringByID(StringId.EnergyConsumption) + "(kW)";
                    brokenLine.xTitle = Language.StringByID(StringId.timeMode);
                    if(curQueryType != "hour")
                    {
                        Application.RunOnMainThread(() =>
                        {
                            IMessageCommon.Current.ShowErrorInfoAlter("", true, 2, Language.StringByID(StringId.GetSensorHistoryFailed), false);
                        });
                        brokenLine.xTitle = Language.StringByID(StringId.Date);
                    }
                    var opString = brokenLine.InitOption();
                    Application.RunOnMainThread(() =>
                    {
                        myEchartsView.ShowWithOption(opString);
                    });
                }
            }
            catch (Exception ex)
            {
                MainPage.Log($"sensor history error : {ex.Message}");
            }
            finally
            {
                Application.RunOnMainThread(() =>
                catch (Exception ex)
                {
                    loadPage.Hide();
                });
            }
            return sItem;
            //var echartRootJsonString = Newtonsoft.Json.JsonConvert.SerializeObject(echartRootJson);
            //myEchartsView.ShowWithOptionJsonString(echartRootJsonString);
                    MainPage.Log($"sensor history error : {ex.Message}");
                }
                finally
                {
                    Application.RunOnMainThread(() =>
                    {
                        loadPage.Hide();
                    });
                }
            })
            { IsBackground = true }.Start();
        }
        /// <summary>
        /// 
@@ -370,16 +484,119 @@
            };
            view.AddChidren(btnLine);
            var row = new FrameLayout()
            //定义代表色
            energy.attributes.Add(new FunctionAttributes() { key = "color", state = colorList2[index] });
            var row = new EnergyRow(energy, colorList[index]);
            row.SetHistory_Action = (isAdd) =>
            {
                Y = btnLine.Bottom,
                Gravity = Gravity.CenterHorizontal,
                Width = Application.GetRealWidth(343),
                Height = Application.GetRealWidth(100),
                Radius = (uint)Application.GetRealWidth(12),
                BackgroundColor = CSS_Color.MainBackgroundColor,
                if (isAdd)
                {
                    if(!isUnfoldOrStow)//如果曲线图没有加载出来,则自动加载出来
                    {
                        isUnfoldOrStow = true;
                        showDiagramView();
                    }
                    queryList.Add(row.function);
                    LoadMothed_GetHistoryData(row.function, false);
                }
                else
                {
                    queryList.Remove(row.function);
                    LoadMothed_GetHistoryData(row.function, true);
                    if (queryList.Count == 0)//如果查询列表为0,自动收起曲线图
                    {
                        isUnfoldOrStow = false;
                        showDiagramView();
                    }
                }
            };
            row.Y = btnLine.Bottom;
            view.AddChidren(row);
            listButton_value.Add(row.btnValue);
            Control.Ins.SendReadCommand(energy);
        }
        public List<Button> listButton_value = new List<Button>();
        /// <summary>
        /// 更新功能状态
        /// </summary>
        public static void UpdataStatus(Function updataTemp)
        {
            Application.RunOnMainThread(() =>
            {
                try
                {
                    if (bodyView == null)
                        return;
                    foreach (var btn in bodyView.listButton_value)
                    {
                        if (btn.Tag.ToString() == updataTemp.sid)
                        {
                            var newValue = updataTemp.GetAttrState(FunctionAttributeKey.Power);
                            //if (newValue != btn.Text)
                            {
                                btn.Text = newValue;
                                UpdataValue();
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    MainPage.Log($"{bodyView.GetType().Name } UpdataStates error : {ex.Message}");
                }
            });
        }
        /// <summary>
        /// 更新数据
        /// </summary>
        static void UpdataValue()
        {
            double totalValue = 0;
            double realtimeValue = 0;
            foreach (var ene in bodyView.energyList)
            {
                double power = 0;
                double.TryParse(ene.GetAttrState(FunctionAttributeKey.TotalElectricity), out power);
                totalValue += power;
                int realTimePower = 0;
                int.TryParse(ene.GetAttrState(FunctionAttributeKey.Power), out realTimePower);
                realtimeValue += realTimePower;
            }
            bodyView.btnTotalValue.Text = totalValue.ToString();
            realtimeValue /= 1000;
            bodyView.btnRealTimeData.Text = Language.StringByID(StringId.RealTimePowerConsumption).Replace("{0}", realtimeValue.ToString());
            ///动态获取文本宽度
            bodyView.btnTotalValue.Width = bodyView.btnTotalValue.GetTextWidth() + Application.GetRealWidth(5);
            bodyView.btnTotalValueUint.X = bodyView.btnTotalValue.Right;
        }
    }
    public class EnergyRow : FrameLayout
    {
        public Button btnValue;
        Button btnShowData;
        public Function function;
        public Action<bool> SetHistory_Action;
        public EnergyRow(Function energy, uint color)
        {
            function = energy;
            Gravity = Gravity.CenterHorizontal;
            Width = Application.GetRealWidth(343);
            Height = Application.GetRealWidth(100);
            Radius = (uint)Application.GetRealWidth(12);
            BackgroundColor = CSS_Color.MainBackgroundColor;
            Tag = energy.sid;
            var btnColorTip = new Button()
            {
@@ -387,13 +604,13 @@
                Y = Application.GetRealWidth(16),
                Width = Application.GetRealWidth(12),
                Height = Application.GetRealWidth(12),
                BackgroundColor = colorList[index],
                BackgroundColor = color
            };
            row.AddChidren(btnColorTip);
            AddChidren(btnColorTip);
            var btnName = new Button()
            {
                X = Application.GetRealWidth(8 + 10 + 32),
                X = Application.GetRealWidth(28),
                Y = Application.GetRealHeight(10),
                Width = Application.GetRealWidth(200),
                Height = Application.GetRealHeight(24),
@@ -402,11 +619,11 @@
                TextColor = CSS_Color.FirstLevelTitleColor,
                TextSize = CSS_FontSize.TextFontSize,
            };
            row.AddChidren(btnName);
            AddChidren(btnName);
            var btnFromFloor = new Button()
            {
                X = Application.GetRealWidth(8 + 10 + 32),
                X = Application.GetRealWidth(28),
                Y = Application.GetRealHeight(10 + 24),
                Width = Application.GetRealWidth(200),
                Height = Application.GetRealHeight(18),
@@ -415,9 +632,9 @@
                TextColor = CSS_Color.PromptingColor1,
                TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
            };
            row.AddChidren(btnFromFloor);
            AddChidren(btnFromFloor);
            var btnValue = new Button()
            btnValue = new Button()
            {
                X = Application.GetRealWidth(28),
                Y = Application.GetRealWidth(57),
@@ -426,9 +643,11 @@
                TextAlignment = TextAlignment.CenterLeft,
                TextSize = CSS_FontSize.HeadlineFontSize,
                TextColor = CSS_Color.FirstLevelTitleColor,
                Text = "---"
                Text = energy.GetAttrState(FunctionAttributeKey.Power),
                Tag = energy.sid,
                IsBold = true,
            };
            row.AddChidren(btnValue);
            AddChidren(btnValue);
            var btnSetting = new Button()
@@ -439,9 +658,9 @@
                Height = Application.GetMinRealAverage(32),
                UnSelectedImagePath = "Public/FuncInfoSetIcon.png",
            };
            row.AddChidren(btnSetting);
            AddChidren(btnSetting);
            Button btnSeltSensorValue = new Button()
            var btnSeltSensorValue = new Button()
            {
                X = Application.GetRealWidth(16),
                Y = Application.GetRealWidth(47),
@@ -452,9 +671,8 @@
                IsBold = true,
                TextSize = CSS_FontSize.HeadlineFontSize,
            };
            row.AddChidren(btnSeltSensorValue);
            AddChidren(btnSeltSensorValue);
            Button btnShowData;
            btnShowData = new Button()
            {
                X = Application.GetRealWidth(291),
@@ -463,9 +681,9 @@
                Height = Application.GetMinRealAverage(32),
                UnSelectedImagePath = "FunctionIcon/EnvironmentalScience/DiagramIcon.png",
                SelectedImagePath = "FunctionIcon/EnvironmentalScience/DiagramIconOn.png",
                IsSelected = true,
                IsSelected = false,
            };
            row.AddChidren(btnShowData);
            AddChidren(btnShowData);
            btnSetting.MouseUpEventHandler = (sender, e) =>
            {
@@ -479,6 +697,11 @@
                MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
            };
            btnShowData.MouseUpEventHandler = (sender, e) => {
                btnShowData.IsSelected = !btnShowData.IsSelected;
                SetHistory_Action(btnShowData.IsSelected);
            };
        }
    }
}
HDL_ON/UI/UI2/FuntionControlView/EnvironmentalScience/EchartsOption_BrokenLine.cs
@@ -4,71 +4,139 @@
namespace HDL_ON.UI
{
    /// <summary>
    /// 饼图
    /// 曲线图
    /// </summary>
    public class EchartsOption_BrokenLine
    {
        /// <summary>
        ///
        /// x轴数据
        /// </summary>
        /// <param name="xData"></param>
        public void InitXdata (List<string> xData)
        public string XvalueText = "";
        /// <summary>
        /// Y轴数据
        /// </summary>
        public string YvalueText = "";
        /// <summary>
        /// x轴标题
        /// </summary>
        public string xTitle = "";
        /// <summary>
        /// y轴标题
        /// </summary>
        public string yTitle = "";
        /// <summary>
        /// 组装Option数据
        /// </summary>
        /// <returns></returns>
        public string InitOption()
        {
            //组装Value
            string valueText = string.Empty;
            foreach (var data in xData)
            {
                valueText += "'" + data + "',";
            }
            optionString = optionString.Replace("{0}", valueText);
            var newstring = optionString.Replace("{0}", XvalueText);
            newstring = newstring.Replace("{1}", YvalueText);
            newstring = newstring.Replace("{10}", xTitle);
            newstring = newstring.Replace("{20}", yTitle);
            return newstring;
        }
        /// <summary>
        ///
        /// 组装x轴文本
        /// </summary>
        /// <param name="xData"></param>
        public void InitXdataText(List<string> xData)
        {
            XvalueText = "";
            foreach (var data in xData)
            {
                XvalueText += "'" + data + "',";
            }
        }
        /// <summary>
        /// 组装y轴文本
        /// </summary>
        /// <param name="yData"></param>
        public string GetYdata(string name, List<EnvironmentalSensorHistor> yData, string color)
        public string InitYdataText(string name, List<EnvironmentalSensorHistor> yData, string color)
        {
            //组装Value
            string valueText = string.Empty;
            var yAxisValue = @"{name:'{0}',
            var YvalueTextItem = @"{name:'{0}',
                            data:[{1}],
                            type:'line',
                            smooth:0.6,
                            symbol:'none',
                            color:'{2}'}
            ";
            yAxisValue = yAxisValue.Replace("{0}", name);
            YvalueTextItem = YvalueTextItem.Replace("{0}", name);
            foreach (var data in yData)
            {
                valueText += "'" + data.fieldValue + "',";
            }
            yAxisValue = yAxisValue.Replace("{1}", valueText);
            yAxisValue = yAxisValue.Replace("{2}", color);
            return yAxisValue;
        }
            YvalueTextItem = YvalueTextItem.Replace("{1}", valueText);
            YvalueTextItem = YvalueTextItem.Replace("{2}", color);
        public void InitYdataString(string yData)
        {
            //组装Value
            optionString = optionString.Replace("{1}", yData);
            if (YvalueText == "")
            {
                YvalueText = YvalueTextItem;
            }
            else
            {
                YvalueText += "," + YvalueTextItem;
            }
            return YvalueTextItem;
        }
        public string optionString =  @"{
#if __IOS__
        public string optionString = @"{
                 tooltip: {
                    trigger: 'axis'
                    },
                    grid: {
                        left: '3%',
                        right: '4%',
                        bottom: '3%',
                         top: '10%',
                        left: '10%',
                        right: '10%',
                        bottom: '10%',
                    },
                    xAxis: {
                        name: '{10}',
                        type: 'category',
                        boundaryGap: false,
                        data: [{0}],
                        axisLabel : {
                            fontSize:30,
                        },
                    },
                    yAxis: {
                        name: '{20}',
                        type: 'value',
                        axisLabel : {
                            fontSize:30,
                        },
                    },
                    series: [
                        {1}
                    ]
            }";
#else
 public string optionString = @"{
                 tooltip: {
                    trigger: 'axis'
                    },
                    grid: {
                         top: '10%',
                        left: '10%',
                        right: '10%',
                        bottom: '10%',
                    },
                    xAxis: {
                        type: 'category',
                        boundaryGap: false,
                        data: [{0}]
                        data: [{0}],
                    },
                    yAxis: {
                        type: 'value',
@@ -77,18 +145,17 @@
                        {1}
                    ]
            }";
#endif
        /// <summary>
        /// 颜色列表
        /// </summary>
        /// <returns></returns>
        public List<string> ColorList ()
        public List<string> ColorList()
        {
            var list = new List<string>();
            return list;
        }
    }
}
HDL_ON/UI/UI2/FuntionControlView/EnvironmentalScience/EnvironmentalSensorPage.cs
@@ -839,7 +839,7 @@
                        }
                        var sensorType = sr.spk.Split(".")[1];
                        var revertObj = new HttpServerRequest().GetSensorHistory(curQueryType, sr.deviceId,sensorType);
                        var revertObj = new HttpServerRequest().GetSensorHistory(curQueryType, sr.deviceId,"value");
                        if (revertObj != null)
                        {
                            if (revertObj.Code == StateCode.SUCCESS)
@@ -853,19 +853,18 @@
                                    {
                                        vs.Add(data.fieldName);
                                    }
                                    ebl.InitXdata(vs);
                                    ebl.InitXdataText(vs);
                                }
                                yDataString += ebl.GetYdata(sr.name, revertData, tipColorStringList[i]);
                                yDataString += ebl.InitYdataText(sr.name, revertData, tipColorStringList[i]);
                            }
                        }
                        i++;
                    }
                    ebl.InitYdataString(yDataString);
                    Application.RunOnMainThread(() =>
                    {
                        myEchartsView.ShowWithOption(ebl.optionString);
                        myEchartsView.ShowWithOption(ebl.InitOption());
                    });
                }
HDL_ON/UI/UI2/FuntionControlView/FoolHeating/FloorHeatingPage.cs
@@ -138,6 +138,11 @@
            //    controlView.AddChidren(btnCollection);
            //}
            var minValue = function.GetAttribute(FunctionAttributeKey.SetTemp).min;
            var maxValue = function.GetAttribute(FunctionAttributeKey.SetTemp).max;
            var progress = (int)Convert.ToDouble(function.GetAttrState(FunctionAttributeKey.SetTemp));
            arcBar = new DiyArcSeekBar()
            {
                Gravity = Gravity.CenterHorizontal,
@@ -147,10 +152,10 @@
                ProgressBarColor = CSS_Color.AuxiliaryColor1, // 0xFFFC9C04,
                OfflineProgressBarColor = CSS_Color.PromptingColor2,
                IsOffline = function.trait_on_off.curValue.ToString() == "off",
                MinValue = function.GetAttribute(FunctionAttributeKey.SetTemp).min,
                MaxValue = function.GetAttribute(FunctionAttributeKey.SetTemp).max,
                MinValue = minValue,//function.GetAttribute(FunctionAttributeKey.SetTemp).min,
                MaxValue = maxValue,// function.GetAttribute(FunctionAttributeKey.SetTemp).max,
                ArcColor = CSS_Color.BackgroundColor,
                Progress = Convert.ToInt32(function.GetAttrState(FunctionAttributeKey.SetTemp)),
                Progress = progress,
#if __IOS__
                Y = Application.GetRealHeight(120+25),
                Width = Application.GetRealWidth(260-40),
@@ -175,7 +180,7 @@
                TextColor = CSS_Color.FirstLevelTitleColor,
                TextSize = 56,
                IsBold = true,
                Text = function.GetAttrState(FunctionAttributeKey.SetTemp),
                Text = progress.ToString(),
                TextAlignment = TextAlignment.Center,
            };
            controlView.AddChidren(btnTemp);
HDL_ON/UI/UI2/FuntionControlView/FunctionBaseInfoSetPage.cs
@@ -1,6 +1,8 @@
using System;
using HDL_ON.DAL.Server;
using HDL_ON.Entity;
using HDL_ON.UI.CSS;
using Newtonsoft.Json.Linq;
using Shared;
namespace HDL_ON.UI
@@ -50,14 +52,21 @@
            bodyView.BackgroundColor = CSS_Color.BackgroundColor;
            new TopViewDiv(bodyView, Language.StringByID(StringId.Setting)).LoadTopView(actionRefresh);
            var contentView = new VerticalScrolViewLayout()
            {
                Y = Application.GetRealHeight(64),
                Height = Application.GetRealHeight(600),
                ScrollEnabled = false,
            };
            bodyView.AddChidren(contentView);
            #region name view
            var nameView = new FrameLayout()
            {
                Y = Application.GetRealHeight(64),
                Height = Application.GetRealHeight(50),
                BackgroundColor = CSS_Color.MainBackgroundColor,
            };
            bodyView.AddChidren(nameView);
            contentView.AddChidren(nameView);
            var btnNameText = new Button()
            {
@@ -106,11 +115,10 @@
            #region 位置管理
            var locationMagtView = new FrameLayout()
            {
                Y = nameView.Bottom,
                Height = Application.GetRealHeight(55),
                BackgroundColor = CSS_Color.MainBackgroundColor,
            };
            bodyView.AddChidren(locationMagtView);
            contentView.AddChidren(locationMagtView);
            var btnLocationMagtTitle = new Button()
            {
@@ -158,11 +166,10 @@
            #region 共享
            //var sharedView = new FrameLayout()
            //{
            //    Y = locationMagtView.Bottom,
            //    Height = Application.GetRealHeight(55),
            //    BackgroundColor = CSS_Color.MainBackgroundColor,
            //};
            //bodyView.AddChidren(sharedView);
            //contentView.AddChidren(sharedView);
            //var btnSharedText = new Button()
            //{
@@ -200,11 +207,10 @@
            #region 添加到桌面
            var addToDesktopView = new FrameLayout()
            {
                Y = locationMagtView.Bottom,
                Height = Application.GetRealHeight(55),
                BackgroundColor = CSS_Color.MainBackgroundColor,
            };
            bodyView.AddChidren(addToDesktopView);
            contentView.AddChidren(addToDesktopView);
            var btnAddToDesktopText = new Button()
            {
@@ -229,6 +235,111 @@
            #endregion
#endif
            if (function.spk == SPK.ElectricEnergy)
            {
                #region 能源数据
                var energyView1 = new FrameLayout()
                {
                    Height = Application.GetRealHeight(55),
                    BackgroundColor = CSS_Color.MainBackgroundColor,
                };
                contentView.AddChidren(energyView1);
                var btnEnergyText1 = new Button()
                {
                    X = Application.GetRealWidth(16),
                    Width = Application.GetRealWidth(160),
                    TextAlignment = TextAlignment.CenterLeft,
                    TextColor = CSS_Color.FirstLevelTitleColor,
                    TextSize = CSS_FontSize.SubheadingFontSize,
                    TextID = StringId.RealTimeEnergyConsumption,
                };
                energyView1.AddChidren(btnEnergyText1);
                var energyValue1 = new Button()
                {
                    Width = Application.GetRealWidth(355),
                    TextAlignment = TextAlignment.CenterRight,
                    TextSize = CSS_FontSize.TextFontSize,
                    TextColor = CSS_Color.PromptingColor1,
                    Text = function.GetAttrState(FunctionAttributeKey.Power) + "kW",
                };
                energyView1.AddChidren(energyValue1);
                energyView1.AddChidren(
                    new Button()
                    {
                        Gravity = Gravity.CenterHorizontal,
                        Y = Application.GetRealHeight(54),
                        BackgroundColor = CSS_Color.DividingLineColor,
                        Width = Application.GetRealWidth(343),
                        Height = Application.GetRealHeight(1)
                    });
                //-----------------
                var energyView2 = new FrameLayout()
                {
                    Height = Application.GetRealHeight(55),
                    BackgroundColor = CSS_Color.MainBackgroundColor,
                };
                contentView.AddChidren(energyView2);
                var btnEnergyText2 = new Button()
                {
                    X = Application.GetRealWidth(16),
                    Width = Application.GetRealWidth(160),
                    TextAlignment = TextAlignment.CenterLeft,
                    TextColor = CSS_Color.FirstLevelTitleColor,
                    TextSize = CSS_FontSize.SubheadingFontSize,
                    TextID = StringId.EnergyConsumptionOfThisMonth,
                };
                energyView2.AddChidren(btnEnergyText2);
                var energyValue2 = new Button()
                {
                    Width = Application.GetRealWidth(355),
                    TextAlignment = TextAlignment.CenterRight,
                    TextSize = CSS_FontSize.TextFontSize,
                    TextColor = CSS_Color.PromptingColor1,
                    Text = "--kW",
                };
                energyView2.AddChidren(energyValue2);
                energyView2.AddChidren(
                    new Button()
                    {
                        Gravity = Gravity.CenterHorizontal,
                        Y = Application.GetRealHeight(54),
                        BackgroundColor = CSS_Color.DividingLineColor,
                        Width = Application.GetRealWidth(343),
                        Height = Application.GetRealHeight(1)
                    });
                new System.Threading.Thread(() => {
                    var pm = new DAL.Server.HttpServerRequest();
                    var data = pm.GetLastMonthHistory(function.deviceId,FunctionAttributeKey.TotalElectricity);
                    if(data!= null)
                    {
                        if(data.Code == StateCode.SUCCESS)
                        {
                            var dataPack = Newtonsoft.Json.JsonConvert.DeserializeObject<JObject>(data.Data.ToString());
                            if(dataPack!=null)
                            {
                                var dataValue = dataPack.GetValue("property").ToString();
                                if(!string.IsNullOrEmpty(dataValue))
                                {
                                    btnEnergyText2.Text = dataValue + "kW";
                                }
                            }
                        }
                    }
                }) { IsBackground = true }.Start();
                #endregion
            }
            LoadEventList();
        }