5个文件已添加
35个文件已修改
558 ■■■■■ 已修改文件
.vs/HDL_APP_Project/xs/UserPrefs.xml 50 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Language.ini 77 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/HDL-ON_Android.csproj 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Properties/AndroidManifest.xml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Resources/Resource.designer.cs 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Resources/drawable/Loading.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Resources/mipmap-hdpi/Loading.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Resources/mipmap-mdpi/Loading.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Resources/mipmap-xhdpi/Loading.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Resources/mipmap-xxhdpi/Loading.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Resources/mipmap-xxxhdpi/Loading.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_iOS/Info.plist 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_iOS/Resources/Language.ini 77 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/Common/HDLCommon.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/Common/R.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/DAL/DriverLayer/Control.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/DAL/Mqtt/MqttClient.cs 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/DAL/Server/HttpServerRequest.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/DAL/Server/HttpUtil.cs 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/Entity/Function/Function.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/MainPage.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI0-Public/TopViewDiv.cs 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI1-Login/ForgetPasswordPage.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI1-Login/LoginPage.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI1-Login/RegisterPage.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/3-Intelligence/Automation/AddInputType.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/3-Intelligence/Automation/ConditionDeviceFunList.cs 44 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/3-Intelligence/Automation/InpOrOutLogicMethod.cs 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/3-Intelligence/Automation/LogicMethod.cs 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/3-Intelligence/Automation/MainView.cs 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/3-Intelligence/Automation/Send.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/3-Intelligence/Automation/Weather.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/4-PersonalCenter/AddDevice/SenesorMegahealth/AddSenesorMegahealthDirection1Page.cs 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/4-PersonalCenter/AddDevice/SenesorMegahealth/SenesorMegahealthManagerPage.cs 25 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/4-PersonalCenter/AddFunction/AddDevciePage.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/Matching.cs 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/FuntionControlView/Energy/EnergyMainPage.cs 80 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/FuntionControlView/EnvironmentalScience/EchartsOption_BrokenLine.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/FuntionControlView/EnvironmentalScience/EnvironmentalSensorPage.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/FuntionControlView/Video/VideoMainView.cs 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.vs/HDL_APP_Project/xs/UserPrefs.xml
@@ -1,48 +1,24 @@
<Properties StartupConfiguration="{D998E133-F0DD-4760-BE3C-461632F54DA4}|Default">
  <MonoDevelop.Ide.ItemProperties.HDL-ON__iOS automaticSigning="False" PreferredExecutionTarget="MonoDevelop.IPhone.IPhoneDeviceTarget.6242be7109c740c6cb8999a8904b6e0ea8d45192" />
  <MonoDevelop.Ide.Workbench ActiveDocument="HDL_ON/DAL/DriverLayer/Control.cs">
  <MonoDevelop.Ide.Workbench>
    <Files>
      <File FileName="HDL_ON/Common/R.cs" Line="9" Column="19" />
      <File FileName="HDL-ON_iOS/Resources/Language.ini" />
      <File FileName="HDL-ON_Android/Assets/Language.ini" />
      <File FileName="HDL_ON/UI/UI2/4-PersonalCenter/AddFunction/AddDevciePage.cs" />
      <File FileName="HDL_ON/UI/UI2/4-PersonalCenter/AddFunction/DeviceListPage.cs" />
      <File FileName="HDL_ON/DAL/Server/HttpUtil.cs" Line="8" Column="17" IsPinned="True" />
      <File FileName="HDL_ON/UI/UI2/FuntionControlView/Energy/EnergyMainPage.cs" Line="153" Column="59" />
      <File FileName="HDL_ON/UI/UI1-Login/LoginPage.cs" />
      <File FileName="HDL_ON/UI/MainPage.cs" />
      <File FileName="HDL_ON/Common/HDLCommon.cs" />
      <File FileName="HDL_ON/DAL/Mqtt/MqttClient.cs" />
      <File FileName="HDL_ON/UI/UI2/FuntionControlView/EnvironmentalScience/EchartsOption_BrokenLine.cs" />
      <File FileName="HDL-ON_iOS/Info.plist" />
      <File FileName="HDL_ON/DAL/Server/HttpUtil.cs" />
      <File FileName="HDL_ON/UI/UI0-Stan/Form/Base/EditorCommonForm.cs" />
      <File FileName="HDL_ON/UI/UI2/4-PersonalCenter/AddDevice/SenesorMegahealth/SenesorMegahealthManagerPage.cs" />
      <File FileName="HDL_ON/UI/UI0-Public/PublicAssmeblyBLL.cs" />
      <File FileName="HDL_ON/UI/UI2/2-Classification/FunctionControlZoneBLL.cs" />
      <File FileName="HDL_ON/UI/UI2/2-Classification/FunctionControlZone.cs" />
      <File FileName="HDL_ON/UI/UI2/FuntionControlView/ArmSensor/ArmSensorHistroyPaging.cs" />
      <File FileName="HDL_ON/UI/UI0-Stan/Form/DeviceFunctionCardCommonForm.cs" />
      <File FileName="HDL_ON/UI/UI2/FuntionControlView/ArmSensor/SenesorMegahealthPage.cs" />
      <File FileName="HDL_ON/DAL/DriverLayer/Control.cs" Line="675" Column="34" />
      <File FileName="HDL_ON/DAL/Server/NewApiRes.cs" />
      <File FileName="HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/PirSend.cs" />
      <File FileName="HDL_ON/UI/UI2/1-HomePage/HomePageBLL.cs" />
      <File FileName="HDL_ON/DAL/Server/HttpServerRequest.cs" />
      <File FileName="HDL_ON/DAL/Server/NewAPI.cs" />
      <File FileName="HDL_ON/DAL/Mqtt/MqttClient.cs" Line="424" Column="69" />
      <File FileName="HDL-ON_iOS/Resources/Language.ini" Line="421" Column="19" />
      <File FileName="HDL_ON/Common/R.cs" Line="118" Column="43" />
      <File FileName="HDL-ON_Android/Assets/Language.ini" Line="1928" Column="1" />
    </Files>
    <Pads>
      <Pad Id="ProjectPad">
        <State name="__root__">
          <Node name="HDL_APP_Project" expanded="True">
            <Node name="HDL_ON" expanded="True">
              <Node name="DAL" expanded="True">
                <Node name="DriverLayer" expanded="True">
                  <Node name="Control.cs" selected="True" />
                </Node>
                <Node name="Mqtt" expanded="True" />
                <Node name="Server" expanded="True" />
              </Node>
              <Node name="Entity" expanded="True">
                <Node name="Function" expanded="True" />
              </Node>
              <Node name="UI" expanded="True" />
            </Node>
            <Node name="HDL-ON_Android" selected="True" />
          </Node>
        </State>
      </Pad>
@@ -61,10 +37,6 @@
      <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/BindingResidence/BindingResidencePage.cs" relfile="HDL_ON/UI/BindingResidence/BindingResidencePage.cs" line="121" column="1" />
      <Breakpoint file="/Users/kaede/Desktop/HDL_APP_Project/HDL_ON/DAL/Server/HttpServerRequest.cs" relfile="HDL_ON/DAL/Server/HttpServerRequest.cs" line="1857" column="1" />
      <Breakpoint file="/Users/kaede/Desktop/HDL_APP_Project/HDL_ON/UI/UI2/4-PersonalCenter/AddDevice/SenesorMegahealth/AddSenesorMegahealthDirection1Page.cs" relfile="HDL_ON/UI/UI2/4-PersonalCenter/AddDevice/SenesorMegahealth/AddSenesorMegahealthDirection1Page.cs" line="119" column="1" />
      <Breakpoint file="/Users/kaede/Desktop/HDL_APP_Project/HDL_ON/DAL/Mqtt/MqttClient.cs" relfile="HDL_ON/DAL/Mqtt/MqttClient.cs" line="678" column="1" />
      <Breakpoint file="/Users/kaede/Desktop/HDL_APP_Project/HDL_ON/DAL/DriverLayer/Control.cs" relfile="HDL_ON/DAL/DriverLayer/Control.cs" line="673" column="1" />
    </BreakpointStore>
  </MonoDevelop.Ide.DebuggingService.Breakpoints>
  <MultiItemStartupConfigurations />
HDL-ON_Android/Assets/Language.ini
@@ -70,7 +70,7 @@
69=All
70=Curtain
71=Name
72=The address of the residence
72=Address
73=Floor Management
74=Room Management
75=Administrator migration
@@ -382,6 +382,7 @@
378=Transition time
379=Transition speed
380=This function is not available!
381=Reload
400=Welcome home
401=Invalid barcode, please try again
402=Try again
@@ -411,8 +412,6 @@
426=Air dry time
427=Disinfect time
428=Anion Time
429=Real time power consumption: {0}kw
429=H
430=Min
431=You are currently adding any platform devices to
@@ -423,7 +422,7 @@
436=Added Devices
437=Device List
438=humidity:{0}%    air:{1}    wind:{2}
439=Real time power consumption: {0} kw
439=Real time: {0} kw
440=Next step
441=Please select all areas of capture status
442=Generate Scene
@@ -458,7 +457,7 @@
'
470=Under protection
471=Millimeter wave sensor
1000=Room Humidity
1001=V-chip
1002=Anion
@@ -547,11 +546,11 @@
1084=1st Gear
1085=2nd Gear
1086=3rd Gear
4000=Video intercom
4001=Call record
4002=*Cloud photos are only kept for 30 days
@@ -567,11 +566,11 @@
4012=The configuration parameters are abnormal!
4013=Access Control QR Code
4014=Temporary password
5000=Music
5001=Group
5002=Setting
@@ -620,7 +619,7 @@
5045=General volume
5046=Adjust volume
5047="QQ music" has not installed in your cell phone, please proceed in App center.
6000=normal
6001=Device status
6002=pcs
@@ -742,8 +741,8 @@
7131=App push
7132=Automation
7133=Executed
6000=Rename
6001=Please enter a name
6002=Xiaodu
@@ -760,8 +759,8 @@
6013=Unbinding...
6014=transfer to third-party APP
6015=Add speakers
7000=Create automation
7001=Edit automation
7002=If
@@ -870,7 +869,7 @@
7105=Light pollution: 75 ~ 115ug/m3
7106=Moderate pollution: 115 ~ 150ug/m3
7107=Heavy pollution: > 150ug/m3
9000=Please sign in with new cell phone number.
9001=Please sign in with new email address.
9002=New cell phone number is revised.
@@ -941,7 +940,7 @@
9066=Remarks
9067=Remarks cannot be blank.
9068=Do you want to unbind?
10000=Invalid password, please log in again.
10001=Fail to request server, please try again later.
10002=System maintaining, please try again later.
@@ -976,9 +975,9 @@
10031=The device should not be blank.
10032=The user does not have permission.
10033=The device does not exist.
[Chinese]
1=登录
2=手机号登录
@@ -1370,7 +1369,7 @@
406=会客
407=阅读
408=确认添加
409=功能品牌
410=你当前还未添加任何平台设备
411=其他平台设备均由第三方服务商提供支持
@@ -1434,8 +1433,8 @@
469=有人进入
470=防护中
471=毫米波传感器
1000=室内湿度
1001=童锁
1002=负离子
@@ -1523,8 +1522,8 @@
1084=风速1档
1085=风速2档
1086=风速3档
4000=可视对讲
4001=通话记录
4002=*云端照片只保留30天
@@ -1540,7 +1539,7 @@
4012=配置参数有异常!
4013=门禁二维码
4014=临时密码
5000=音乐
5001=组合
5002=设置
@@ -1589,8 +1588,8 @@
5045=总音量
5046=调节音量
5047=你手机暂未安装"QQ音乐"{\r\n}请前往手机商场安装
6000=正常
6001=设备状态
6002=个
@@ -1684,9 +1683,9 @@
6092=设备不存在
6093=设备不在线
6094=网关设备不存在
7000=新建自动化
7001=编辑自动化
7002=如果
@@ -1821,7 +1820,7 @@
7131=App推送
7132=自动化
7133=已执行
9000=请使用新的手机账号登录APP
9001=请使用新的邮箱账号登录APP
9002=登录手机修改完成
@@ -1891,7 +1890,7 @@
9066=备注
9067=备注不能为空
9068=是否解除绑定?
10000=无效登录密钥,请重新登录!
10001=请求服务器失败,请稍后再试!
10002=系统维护中,请稍后再试!
@@ -1925,4 +1924,4 @@
10030=没有远程控制权限
10031=设备不能为空
10032=用户没有设备的权限
10033=设备不存在
10033=设备不存在
HDL-ON_Android/HDL-ON_Android.csproj
@@ -337,6 +337,26 @@
      <SubType></SubType>
      <Generator></Generator>
    </AndroidResource>
    <AndroidResource Include="Resources\mipmap-xhdpi\Loading.png">
      <SubType></SubType>
      <Generator></Generator>
    </AndroidResource>
    <AndroidResource Include="Resources\mipmap-hdpi\Loading.png">
      <SubType></SubType>
      <Generator></Generator>
    </AndroidResource>
    <AndroidResource Include="Resources\mipmap-mdpi\Loading.png">
      <SubType></SubType>
      <Generator></Generator>
    </AndroidResource>
    <AndroidResource Include="Resources\mipmap-xxhdpi\Loading.png">
      <SubType></SubType>
      <Generator></Generator>
    </AndroidResource>
    <AndroidResource Include="Resources\mipmap-xxxhdpi\Loading.png">
      <SubType></SubType>
      <Generator></Generator>
    </AndroidResource>
  </ItemGroup>
  <ItemGroup>
    <Folder Include="Resources\drawable\" />
HDL-ON_Android/Properties/AndroidManifest.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="202105255" android:versionName="1.2.202105255" package="com.hdl.onpro">
    <uses-sdk android:minSdkVersion="26" android:targetSdkVersion="29" />
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="202106081" android:versionName="1.2.202106081" package="com.hdl.onpro">
    <uses-sdk android:minSdkVersion="23" android:targetSdkVersion="29" />
    <!--  可视对讲权限-->
    <uses-permission android:name="android.permission.CAMERA" />
    <uses-feature android:name="android.hardware.camera" />
HDL-ON_Android/Resources/Resource.designer.cs
@@ -10428,7 +10428,10 @@
            public const int ic_launcher_round = 2131558401;
            
            // aapt resource value: 0x7F0D0003
            public const int videogo_icon = 2131558403;
            public const int Loading = 2131558403;
            // aapt resource value: 0x7F0D0004
            public const int videogo_icon = 2131558404;
            
            static Mipmap()
            {
HDL-ON_Android/Resources/drawable/Loading.png

HDL-ON_Android/Resources/mipmap-hdpi/Loading.png
HDL-ON_Android/Resources/mipmap-mdpi/Loading.png
HDL-ON_Android/Resources/mipmap-xhdpi/Loading.png
HDL-ON_Android/Resources/mipmap-xxhdpi/Loading.png
HDL-ON_Android/Resources/mipmap-xxxhdpi/Loading.png
HDL-ON_iOS/Info.plist
@@ -104,9 +104,9 @@
    <key>UIStatusBarStyle</key>
    <string>UIStatusBarStyleLightContent</string>
    <key>CFBundleShortVersionString</key>
    <string>1.2.202105255</string>
    <string>1.2.202106081</string>
    <key>CFBundleVersion</key>
    <string>1.2.05255</string>
    <string>1.2.06081</string>
    <key>NSLocationWhenInUseUsageDescription</key>
    <string>Use geographic location to provide services such as weather</string>
    <key>NSAppleMusicUsageDescription</key>
HDL-ON_iOS/Resources/Language.ini
@@ -70,7 +70,7 @@
69=All
70=Curtain
71=Name
72=The address of the residence
72=Address
73=Floor Management
74=Room Management
75=Administrator migration
@@ -382,6 +382,7 @@
378=Transition time
379=Transition speed
380=This function is not available!
381=Reload
400=Welcome home
401=Invalid barcode, please try again
402=Try again
@@ -411,8 +412,6 @@
426=Air dry time
427=Disinfect time
428=Anion Time
429=Real time power consumption: {0}kw
429=H
430=Min
431=You are currently adding any platform devices to
@@ -423,7 +422,7 @@
436=Added Devices
437=Device List
438=humidity:{0}%    air:{1}    wind:{2}
439=Real time power consumption: {0} kw
439=Real time: {0} kw
440=Next step
441=Please select all areas of capture status
442=Generate Scene
@@ -458,7 +457,7 @@
'
470=Under protection
471=Millimeter wave sensor
1000=Room Humidity
1001=V-chip
1002=Anion
@@ -547,11 +546,11 @@
1084=1st Gear
1085=2nd Gear
1086=3rd Gear
4000=Video intercom
4001=Call record
4002=*Cloud photos are only kept for 30 days
@@ -567,11 +566,11 @@
4012=The configuration parameters are abnormal!
4013=Access Control QR Code
4014=Temporary password
5000=Music
5001=Group
5002=Setting
@@ -620,7 +619,7 @@
5045=General volume
5046=Adjust volume
5047="QQ music" has not installed in your cell phone, please proceed in App center.
6000=normal
6001=Device status
6002=pcs
@@ -742,8 +741,8 @@
7131=App push
7132=Automation
7133=Executed
6000=Rename
6001=Please enter a name
6002=Xiaodu
@@ -760,8 +759,8 @@
6013=Unbinding...
6014=transfer to third-party APP
6015=Add speakers
7000=Create automation
7001=Edit automation
7002=If
@@ -870,7 +869,7 @@
7105=Light pollution: 75 ~ 115ug/m3
7106=Moderate pollution: 115 ~ 150ug/m3
7107=Heavy pollution: > 150ug/m3
9000=Please sign in with new cell phone number.
9001=Please sign in with new email address.
9002=New cell phone number is revised.
@@ -941,7 +940,7 @@
9066=Remarks
9067=Remarks cannot be blank.
9068=Do you want to unbind?
10000=Invalid password, please log in again.
10001=Fail to request server, please try again later.
10002=System maintaining, please try again later.
@@ -976,9 +975,9 @@
10031=The device should not be blank.
10032=The user does not have permission.
10033=The device does not exist.
[Chinese]
1=登录
2=手机号登录
@@ -1370,7 +1369,7 @@
406=会客
407=阅读
408=确认添加
409=功能品牌
410=你当前还未添加任何平台设备
411=其他平台设备均由第三方服务商提供支持
@@ -1434,8 +1433,8 @@
469=有人进入
470=防护中
471=毫米波传感器
1000=室内湿度
1001=童锁
1002=负离子
@@ -1523,8 +1522,8 @@
1084=风速1档
1085=风速2档
1086=风速3档
4000=可视对讲
4001=通话记录
4002=*云端照片只保留30天
@@ -1540,7 +1539,7 @@
4012=配置参数有异常!
4013=门禁二维码
4014=临时密码
5000=音乐
5001=组合
5002=设置
@@ -1589,8 +1588,8 @@
5045=总音量
5046=调节音量
5047=你手机暂未安装"QQ音乐"{\r\n}请前往手机商场安装
6000=正常
6001=设备状态
6002=个
@@ -1684,9 +1683,9 @@
6092=设备不存在
6093=设备不在线
6094=网关设备不存在
7000=新建自动化
7001=编辑自动化
7002=如果
@@ -1821,7 +1820,7 @@
7131=App推送
7132=自动化
7133=已执行
9000=请使用新的手机账号登录APP
9001=请使用新的邮箱账号登录APP
9002=登录手机修改完成
@@ -1891,7 +1890,7 @@
9066=备注
9067=备注不能为空
9068=是否解除绑定?
10000=无效登录密钥,请重新登录!
10001=请求服务器失败,请稍后再试!
10002=系统维护中,请稍后再试!
@@ -1925,4 +1924,4 @@
10030=没有远程控制权限
10031=设备不能为空
10032=用户没有设备的权限
10033=设备不存在
10033=设备不存在
HDL_ON/Common/HDLCommon.cs
@@ -349,6 +349,8 @@
                case "13602944661":
                case "18778381374":
                case "18316672920":
                case "15626203746":
                case "551775569@qq.com":
                    return;
            }
HDL_ON/Common/R.cs
@@ -1178,6 +1178,8 @@
        public const int apptuisong = 7131;
        public const int zidontghua = 7132;
        public const int yizhixing = 7133;
        public const int mubiaozhuangtai = 7134;
        public const int diedao = 7135;
        #region LE新增
        /// <summary>
HDL_ON/DAL/DriverLayer/Control.cs
@@ -283,6 +283,7 @@
        /// </summary>
        public void ControlScene(Scene scene)
        {
            //远程或者控制link网关场景
            if (!Ins.GatewayOnline_Local || DB_ResidenceData.Instance.GatewayType == 1)
            {
                new System.Threading.Thread(() =>
HDL_ON/DAL/Mqtt/MqttClient.cs
@@ -204,6 +204,7 @@
                        Topic = $"/user/{DB_ResidenceData.Instance.CurrentRegion.id}/app/thing/event/irCodeStudyDone/up",
                        QualityOfServiceLevel = MQTTnet.Protocol.MqttQualityOfServiceLevel.AtMostOnce
                    };
                    #region 数据更新推送主题
                    //appHomeRefresh:住宅数据刷新通知
                    var appHomeRefresh = new MqttTopicFilter()
@@ -223,6 +224,13 @@
                        Topic = $"/user/{DB_ResidenceData.Instance.CurrentRegion.id}/app/thing/event/appDeviceRefresh/up",
                        QualityOfServiceLevel = MQTTnet.Protocol.MqttQualityOfServiceLevel.AtMostOnce
                    };
                    //一端口密钥更新通知
                    var mqttkeyChange = new MqttTopicFilter()
                    {
                        Topic = $"/user/{MqttInfoConfig.Current.HomeGatewayInfo.gatewayId}/custom/mqtt/secret/change",
                        QualityOfServiceLevel = MQTTnet.Protocol.MqttQualityOfServiceLevel.AtMostOnce
                    };
                    #endregion
@@ -230,7 +238,7 @@
                    var result = await RemoteMqttClient.SubscribeAsync(new MqttTopicFilter[] {
                        pirStatus,pirStudy,
                        appDeviceRefresh,appHomeRefresh,appRoomRefresh,
                        topicFilterPush2, topicAlinkStatus });
                        topicFilterPush2, topicAlinkStatus ,mqttkeyChange});
                    if (result.Items[0].ResultCode == MQTTnet.Client.Subscribing.MqttClientSubscribeResultCode.GrantedQoS0)
                    {
                        isSubscribeSuccess = true;
@@ -415,6 +423,17 @@
                                        MainPage.Log($"读取云端设备数据失败:Code:{deviceResult.Code};  Msg:{deviceResult.message}");
                                    }
                                }
                                //网关密钥变化
                                else if (topic == $"/user/{DB_ResidenceData.Instance.CurrentRegion.id}/custom/mqtt/secret/change")
                                {
                                    var pm = new HttpServerRequest();
                                    pm.GetHomeGatewayList();
                                    MainPage.Log($"网关密钥变更");
                                    MainPage.Log($"旧密钥:{mqttEncryptKey}");
                                    mqttEncryptKey = MqttInfoConfig.Current.HomeGatewayInfo.aesKey;
                                    MainPage.Log($"新密钥:{mqttEncryptKey}");
                                }
                                #endregion
                                //A网关设备状态-包含涂鸦设备
                                else if (topic == $"/user/{DB_ResidenceData.Instance.CurrentRegion.id}/app/thing/property/send")
@@ -675,7 +694,7 @@
        {
            if (mMes == PushSignStr) return;//是自己的登录推送不处理//或者当前不是远程链接状态
            //测试账号,不挤下线
            switch (UserInfo.Current.AccountString)
            switch (UserInfo.Current.userMobileInfo)
            {
                case "13415629083":
                case "18316120654":
@@ -691,6 +710,7 @@
                case "18316672920":
                case "15971583093":
                case "15626203746":
                case "551775569@qq.com":
                    return;
            }
HDL_ON/DAL/Server/HttpServerRequest.cs
@@ -1851,12 +1851,13 @@
        /// <param name="productPlatform"></param>
        /// <param name="productBrand"></param>
        /// <returns></returns>
        public ResponsePackNew IndependentRegister3TyDevcie(string spk,string extDevId)
        public ResponsePackNew IndependentRegister3TyDevcie(string spk,string extDevId,string deviceName)
        {
            Dictionary<string, object> d = new Dictionary<string, object>();
            d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id);
            d.Add("spk", spk);
            d.Add("extDevId", extDevId);
            d.Add("name", deviceName);
            var requestJson = HttpUtil.GetSignRequestJson(d);
            return HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_IndependentRegister3TyDevcie, requestJson);
HDL_ON/DAL/Server/HttpUtil.cs
@@ -17,8 +17,8 @@
        /// 固定域名,正式环境
        /// 公共域名就近解析
        /// </summary>
        //public const string GlobalRequestHttpsHost = "https://nearest.hdlcontrol.com";
        public const string GlobalRequestHttpsHost = "https://test-gz.hdlcontrol.com";//mmmm
        public const string GlobalRequestHttpsHost = "https://nearest.hdlcontrol.com";
        //public const string GlobalRequestHttpsHost = "https://test-gz.hdlcontrol.com";//mmmm
        /// <summary>
        /// RegionMark
        /// </summary>
@@ -153,9 +153,7 @@
                {
                    urlHead = OnAppConfig.Instance.RequestHttpsHost;
                }
                //"https://test-gz.hdlcontrol.com";
                //"https://bahrain-gateway.hdlcontrol.com";
                //urlHead="https://china-gateway.hdlcontrol.com";
                string requestFullUrl = urlHead + apiPath;
HDL_ON/Entity/Function/Function.cs
@@ -1,4 +1,4 @@
using System;
using System;
using System.Collections.Generic;
using HDL_ON.Common;
using HDL_ON.DAL.Server;
@@ -1169,7 +1169,6 @@
        /// 毫米波传感器
        /// </summary>
        public const string SenesorMegahealth = "sensor.megahealth";
        /// <summary>
        /// 安防传感器spk列表
HDL_ON/UI/MainPage.cs
@@ -20,7 +20,7 @@
        /// <summary>
        /// 版本号
        /// </summary>
        public static string VersionString = "1.2.0525";
        public static string VersionString = "1.2.0608";
        ///// <summary>
        ///// 客户端类型
        ///// </summary>
HDL_ON/UI/UI0-Public/TopViewDiv.cs
@@ -98,12 +98,6 @@
            };
            contentView.AddChidren(btnBackIcon);
            btnBack = new Button()
            {
                Width = Application.GetRealWidth(100),
            };
            contentView.AddChidren(btnBack);
            Button btnTilte = new Button()
            {
                Gravity = Gravity.CenterHorizontal,
@@ -118,6 +112,12 @@
            contentView.AddChidren(btnTilte);
            btnBack = new Button()
            {
                Width = Application.GetRealWidth(70),
            };
            contentView.AddChidren(btnBack);
            LoadEventList();
        }
        /// <summary>
HDL_ON/UI/UI1-Login/ForgetPasswordPage.cs
@@ -350,6 +350,7 @@
                TextSize = CSS_FontSize.TextFontSize,
                PlaceholderTextColor = CSS_Color.PromptingColor1,
                PlaceholderText = Language.StringByID(StringId.PlsEntryVerificationCode),
                IsNumberKeyboardType = true
            };
            verificationCodeView.AddChidren(etVerificationCode);
HDL_ON/UI/UI1-Login/LoginPage.cs
@@ -216,7 +216,8 @@
                    //etAccount.Text = "BB01010101@evoyo.com";//可视对讲
                    //etAccount.Text = "13168123446";
                    //etAccount.Text = "13676202754";//巴林服务器
                    etAccount.Text = "13602944661";//kx
                    //etAccount.Text = "13602944661";//kx
                    etAccount.Text = "551775569@qq.com";//wcf
                    //etAccount.Text = "18666455392";//13375012446//13602944661//tzy 18778381374
                    //etAccount.Text = "15971583093";// gs//tzy 274116637@qq.com//Sumant.Bhatia@havells.com 国外服务器测试
                }
HDL_ON/UI/UI1-Login/RegisterPage.cs
@@ -607,6 +607,7 @@
                TextSize = CSS_FontSize.TextFontSize,
                PlaceholderTextColor = CSS_Color.PromptingColor1,
                PlaceholderText = Language.StringByID(StringId.PlsEntryVerificationCode),
                IsNumberKeyboardType = true
            };
            verificationCodeView.AddChidren(etVerificationCode);
HDL_ON/UI/UI2/3-Intelligence/Automation/AddInputType.cs
@@ -1,4 +1,5 @@
using System;
using System.Collections.Generic;
using Shared;
namespace HDL_ON.UI.UI2.Intelligence.Automation
{
@@ -58,6 +59,7 @@
            {
                viewLayout.AddChidren(shiwaiView.FLayoutView());
            }
            #endregion
            #region  所有点击事件
HDL_ON/UI/UI2/3-Intelligence/Automation/ConditionDeviceFunList.cs
@@ -175,6 +175,21 @@
                        }
                    }
                    break;
                case SPK.SenesorMegahealth:
                    {
                        LogicView.FunTypeView view = new LogicView.FunTypeView();
                        view.btnText.TextID = StringId.mubiaozhuangtai ;//目标状态
                        fLayout.AddChidren(view.FLayoutView());
                        view.btnClick.MouseUpEventHandler += (sender, e) =>
                        {
                            DeviceView(device, view.btnState, StringId.wuren, StringId.diedao);
                        };
                        if (edit)
                        {
                            GetEditState(device, index, view.btnState, null, null, null);
                        }
                    }
                    break;
            }
            #region  保存
@@ -268,6 +283,11 @@
                            keyVlaue = "status";
                        }
                        break;
                    case SPK.SenesorMegahealth:
                        {
                            keyVlaue = "action_state";
                        }
                        break;
                }
                switch (intValue)
@@ -294,12 +314,21 @@
                            value = "off";
                        }
                        break;
                    case StringId.youren: {
                    case StringId.youren:
                        {
                            value = "true";
                        }
                        break;
                    case StringId.wuren: {
                            value = "false";
                    case StringId.wuren:
                        {
                            if (device.spk == SPK.SenesorMegahealth)
                            {
                                value = "uninhabited";
                            }
                            else
                            {
                                value = "false";
                            }
                        }
                        break;
                    case StringId.kaiqi:
@@ -312,15 +341,20 @@
                            value = "close";
                        }
                        break;
                    case StringId.zaixian: {
                    case StringId.zaixian:
                        {
                            keyVlaue = "dismantle";
                            value = "true";
                        };break;
                        }; break;
                    case StringId.buzaixian:
                        {
                            keyVlaue = "dismantle";
                            value = "false";
                        }; break;
                    case StringId.diedao:
                        {
                            value = "fall";
                        }; break;
                }
                //显示文本
                button.TextID = intValue;
HDL_ON/UI/UI2/3-Intelligence/Automation/InpOrOutLogicMethod.cs
@@ -297,6 +297,22 @@
                                        inputView.btnState.Text = str;
                                    }
                                    break;
                                case SPK.SenesorMegahealth:
                                    {
                                        foreach (var dic in dicList)
                                        {
                                            string value = dic["value"];
                                            if (value == "fall")
                                            {
                                                inputView.btnState.Text = Language.StringByID(StringId.diedao);
                                            }
                                            else
                                            {
                                                inputView.btnState.Text = Language.StringByID(StringId.wuren);
                                            }
                                        }
                                    }
                                    break;
                            }
                        }
@@ -1371,6 +1387,22 @@
                        }
                    }
                    break;
                case SPK.SenesorMegahealth:
                    {
                        foreach (var dic in dicList)
                        {
                            string value = dic["value"];
                            if (value == "fall")
                            {
                                button1.Text = Language.StringByID(StringId.diedao);
                            }
                            else
                            {
                                button1.Text = Language.StringByID(StringId.wuren);
                            }
                        }
                    }
                    break;
            }
        }
        /// <summary>
HDL_ON/UI/UI2/3-Intelligence/Automation/LogicMethod.cs
@@ -308,6 +308,7 @@
                case SPK.SensorPir:
                case SPK.SensorDoorWindow:
                case SPK.SensoruUtrasonic:
                case SPK.SenesorMegahealth:
                    {
                        strPath = "LogicIcon/sensor.png";
                    }
@@ -365,6 +366,7 @@
            || device.spk == SPK.SensorPir
            || device.spk == SPK.SensorDoorWindow
            || device.spk == SPK.SensoruUtrasonic
            || device.spk == SPK.SenesorMegahealth
            );
            if (sensor != null)
            {
@@ -414,7 +416,8 @@
                functionTypeList.Add(SPK.SensorPir);
                functionTypeList.Add(SPK.SensorDoorWindow);
                functionTypeList.Add(SPK.SensoruUtrasonic);
                functionTypeList.Add(SPK.SenesorMegahealth);
            }
            return functionTypeList;
@@ -449,6 +452,7 @@
                        deviceTypeList.Add(SPK.SensorPir);
                        deviceTypeList.Add(SPK.SensorDoorWindow);
                        deviceTypeList.Add(SPK.SensoruUtrasonic);
                        deviceTypeList.Add(SPK.SenesorMegahealth);
                    }
                    break;
                case target_if:
HDL_ON/UI/UI2/3-Intelligence/Automation/MainView.cs
@@ -511,7 +511,7 @@
            }
        }
        /// <summary>
        /// 判断网关类型
        /// 判断网关类型(0:bus网关;1:A协议网关)
        /// </summary>
        /// <returns></returns>
        public static bool IsGatewayType
@@ -522,11 +522,7 @@
                {
                    return true;
                }
                else
                {
                    return false;
                }
                return false;
            }
        }
    }
HDL_ON/UI/UI2/3-Intelligence/Automation/Send.cs
@@ -164,14 +164,13 @@
                logicIfon.Add("pushConfigs", pushConfigsArray);
                logicjArray.Add(logicIfon);
                var jObject = new JObject { { "homeId", LogicMethod.HomeId }, { "logics", logicjArray } };
                responsePackNew = RequestServerhomeId(jObject, NewAPI.API_POST_Logic_Add);
                responsePackNew = RequestServerhomeId(jObject, NewAPI.API_POST_Logic_Add,5);
                //如果是token过期则刷新token
                if (responsePackNew.Code == StateCode.TOKEN_EXPIRED)
                {
                    RefreshToken();
                    AddLogic(logic);
                }
                Console.WriteLine("添加逻辑===" + logicjArray);
            }
            catch (Exception e)
            {
@@ -275,7 +274,7 @@
                logicjArray.Add(logicIfon);
                var jObject = new JObject { { "homeId", LogicMethod.HomeId }, { "logics", logicjArray } };
                responsePackNew = RequestServerhomeId(jObject, NewAPI.API_POST_Logic_Update);
                responsePackNew = RequestServerhomeId(jObject, NewAPI.API_POST_Logic_Update,5);
                //如果是token过期则刷新token
                if (responsePackNew.Code == StateCode.TOKEN_EXPIRED)
                {
HDL_ON/UI/UI2/3-Intelligence/Automation/Weather.cs
@@ -45,7 +45,6 @@
            weatherView.btnLine.Width = Application.GetRealWidth(375 - 16 - 16);
            weatherView.btnText.TextID = StringId.tianqibianhua;
            viewLayout.AddChidren(weatherView.FLayoutView());
            //空气质量
            LogicView.SelectTypeView kongqiViewk = new LogicView.SelectTypeView(); 
            kongqiViewk.frameLayout.Y = weatherView.frameLayout.Bottom;
@@ -56,7 +55,6 @@
            kongqiViewk.btnText.TextID = StringId.kongqizhiliang;
            viewLayout.AddChidren(kongqiViewk.FLayoutView());
            #endregion
            #region  所有点击事件
            //室外温、湿度、PM2.5变化
            airqualityView.btnClick.MouseUpEventHandler += (sen, e) => {
HDL_ON/UI/UI2/4-PersonalCenter/AddDevice/SenesorMegahealth/AddSenesorMegahealthDirection1Page.cs
@@ -115,18 +115,40 @@
                        try
                        {
                            var pm = new HttpServerRequest();
                            var pack = pm.IndependentRegister3TyDevcie(SPK.SenesorMegahealth, snCode);
                            var pack = pm.IndependentRegister3TyDevcie(SPK.SenesorMegahealth, snCode,Language.StringByID(StringId.SenesorMillimeterWave));
                            if (pack.Code == StateCode.SUCCESS)
                            {
                                var revData = Newtonsoft.Json.JsonConvert.DeserializeObject<List<IntegratedBrandDevice>>(pack.Data.ToString());
                                //var revData = Newtonsoft.Json.JsonConvert.DeserializeObject<List<IntegratedBrandDevice>>(pack.Data.ToString());
                                Application.RunOnMainThread(() =>
                                {
                                    waitPage.Hide();
                                    var tipDialog = new OperationResultDisPalyPage();
                                    tipDialog.LoadPage(true, Language.StringByID(StringId.AddSuccess), "", Language.StringByID(StringId.CanStartUsingZhaoguanMillimeterWave), Language.StringByID(StringId.Next));
                                    tipDialog.Show();
                                    AddDeviceEvent?.Invoke(new Function());
                                    this.CloseForm();
                                });
                            }else if(pack.Code == "10801")
                            {
                                var mes = "";
                                if (Language.CurrentLanguage == "Chinese")
                                {
                                    mes = "该设备已经被添加。";
                                }
                                else
                                {
                                    mes = "This device has been added.";
                                }
                                Application.RunOnMainThread(() =>
                                {
                                    var tip = new Tip()
                                    {
                                        Text = mes,
                                        CloseTime = 2,
                                        Direction = AMPopTipDirection.None
                                    };
                                    tip.Show(MainPage.BaseView);
                                });
                            }
                            else
                            {
HDL_ON/UI/UI2/4-PersonalCenter/AddDevice/SenesorMegahealth/SenesorMegahealthManagerPage.cs
@@ -67,11 +67,11 @@
            if (Language.CurrentLanguage == "Chinese")
            {
                btnTip.Text = "该设备已物拟到安防传感器类别可到对应类别查看使用";
                btnTip.Text = "该设备已添加到安防传感器类别,可到对应功能板块查看";
            }
            else
            {
                btnTip.Text = "The device is planned to be used in the corresponding category for security sensor.";
                btnTip.Text = "The device has been added to the security sensor category, which can be viewed in the corresponding function block.";
            }
            var btnDel = new Button() {
@@ -87,11 +87,28 @@
            btnDel.MouseUpEventHandler = (sender, e) => {
                var pack = PirSend.DeleteDevice(function.deviceId);
                if(pack.Code == StateCode.SUCCESS)
                if (pack.Code == StateCode.SUCCESS)
                {
                    DelDeviceEvent?.Invoke();
                    this.CloseForm();
                }else
                    var mes = "";
                    if (Language.CurrentLanguage == "Chinese")
                    {
                        mes = "设备删除成功。";
                    }
                    else
                    {
                        mes = "Device deleted successfully.";
                    }
                    var tip = new Tip()
                    {
                        Text = mes,
                        CloseTime = 2,
                        Direction = AMPopTipDirection.None
                    };
                    tip.Show(MainPage.BaseView);
                }
                else
                {
                    IMessageCommon.Current.ShowErrorInfoAlter(pack.Code);
                }
HDL_ON/UI/UI2/4-PersonalCenter/AddFunction/AddDevciePage.cs
@@ -151,6 +151,7 @@
                            form1.AddForm(device);
                            form1.AddDeviceEvent = (functionObj) => {
                                refreshView.BeginHeaderRefreshing();
                                this.RemoveFromParent();
                            };
                            break;
                    }
HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/Matching.cs
@@ -148,6 +148,7 @@
            };
            fLayout.AddChidren(succeedBtn);
            #endregion
            #region 点击事件
            //表示库列表索引值(目前只20个库)
            int index = 1; 
@@ -215,7 +216,6 @@
                {
                    var library = libraryList[index-1];
                    var control = GetControl(spk, testBtn.TextID, library);
                    if (spk == SPK.TvIr)
                    {
                        //备注:伟南要求小米电视换掉spk=ir.tvxm(听说是临时解决方案)
@@ -229,8 +229,6 @@
                            }
                        }
                    }
                    PirMethod method = new PirMethod();
                    //发送库添加遥控器命令
                    method.ThreadAddControl(control, this, (device) =>  
HDL_ON/UI/UI2/FuntionControlView/Energy/EnergyMainPage.cs
@@ -29,13 +29,13 @@
        /// </summary>
        TextButton btnTotalValue;
        /// <summary>
        /// 总功耗-饼图
        /// </summary>
        MyEchartsViewOn myEchartsView_Pie;
        /// <summary>
        /// 历史数据区域
        /// </summary>
        FrameLayout diagramView;
        /// <summary>
        /// 曲线图
        /// </summary>
        MyEchartsViewOn myLineEchartsView;
        /// <summary>
        /// 曲线图数据string
        /// </summary>
@@ -64,7 +64,7 @@
        /// <summary>
        /// 历史数据图表
        /// </summary>
        MyEchartsViewOn myEchartsView;
        MyEchartsViewOn myEchartsView_Line;
        /// <summary>
        /// 曲线图是否展开
        /// </summary>
@@ -105,7 +105,7 @@
            generalTableView = new FrameLayout()
            {
                Gravity = Gravity.CenterHorizontal,
                Y = Application.GetRealHeight(16),
                Y = Application.GetRealWidth(16),
                Width = Application.GetRealWidth(343),
                Height = Application.GetRealWidth(148),//419//148
                Radius = (uint)Application.GetRealWidth(5),
@@ -154,8 +154,6 @@
            };
            generalTableView.AddChidren(btnRealTimeData);
            UpdataValue();
            var echartsView = new FrameLayout()
            {
@@ -165,29 +163,22 @@
                //Y = Application.GetRealWidth(16),
            };
            generalTableView.AddChidren(echartsView);
            myEchartsView = new MyEchartsViewOn()
            myEchartsView_Pie = new MyEchartsViewOn()
            {
                Width = Application.GetRealWidth(118),
                Height = Application.GetRealWidth(118),
            };
            echartsView.AddChidren(myEchartsView_Pie);
            echartsView.AddChidren(myEchartsView);
            Dictionary<string, string> list = new Dictionary<string, string>();
            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);
            myEchartsView_Pie.ShowWithOption(new EchartsOption_Pie().InitDateJson(list));
            btnDrodDown = new Button()
            {
@@ -204,6 +195,7 @@
                showDiagramView();
            };
            UpdataValue();
            #endregion
@@ -218,7 +210,11 @@
            {
                EnergyRow(energy, energyListView, index);
                index++;
                Control.Ins.SendReadCommand(energy);
                new System.Threading.Thread(() =>
                {
                    Control.Ins.SendReadCommand(energy);
                })
                { IsBackground = true }.Start();
            }
@@ -231,13 +227,13 @@
        {
            if (isUnfoldOrStow)//展开
            {
                generalTableView.Height = Application.GetRealHeight(419);
                generalTableView.Height = Application.GetRealWidth(419);
                btnDrodDown.Y = Application.GetRealWidth(389);
                btnDrodDown.IsSelected = true;
            }
            else
            {
                generalTableView.Height = Application.GetRealHeight(148);
                generalTableView.Height = Application.GetRealWidth(148);
                btnDrodDown.Y = Application.GetRealWidth(118);
                btnDrodDown.IsSelected = false;
            }
@@ -256,10 +252,10 @@
            diagramView = new FrameLayout()
            {
                Y = Application.GetRealHeight(136),
                Y = Application.GetRealWidth(136),
                Gravity = Gravity.CenterHorizontal,
                Width = Application.GetRealWidth(343),
                Height = Application.GetRealWidth(241),
                Height = Application.GetRealWidth(281),
                BackgroundColor = CSS_Color.MainBackgroundColor,
                Radius = (uint)Application.GetRealWidth(12),
                BorderColor = 0x00000000,
@@ -361,19 +357,17 @@
            var historyDataView = new FrameLayout()
            {
                Gravity = Gravity.CenterHorizontal,
                Y = Application.GetRealHeight(52),
                //Width = Application.GetRealWidth(343 - 32),
                Height = Application.GetRealHeight(178),
                Y = Application.GetRealWidth(52),
                Height = Application.GetRealWidth(190),
            };
            diagramView.AddChidren(historyDataView);
            myEchartsView = new MyEchartsViewOn() {
                Y = Application.GetRealHeight(10),
                Height = Application.GetRealHeight(150),
            myEchartsView_Line = new MyEchartsViewOn()
            {
                Y = Application.GetRealWidth(10),
                Height = Application.GetRealWidth(180),
            };
            historyDataView.AddChidren(myEchartsView);
            historyDataView.AddChidren(myEchartsView_Line);
        }
        /// <summary>
@@ -392,7 +386,7 @@
                Application.RunOnMainThread(() =>
                {
                    myEchartsView.ShowWithOption(opString);
                    myEchartsView_Line.ShowWithOption(opString);
                });
                return;
@@ -435,11 +429,6 @@
                                sr.attributes.Add(new FunctionAttributes() { key = "ydata" });
                            }
                            sr.SetAttrState("ydata", brokenLine.InitYdataText(sr.name, revertData, sr.GetAttrState("color")) + ",");
                            //if (sr.GetAttribute("ydata") == null)
                            //{
                            //    sr.attributes.Add(new FunctionAttributes() { key = "ydata" });
                            //}
                            //sr.SetAttrState("ydata", brokenLine.InitYdataText(sr.name, revertData, sr.GetAttrState("color")) + ",");
                        }
                    }
                    brokenLine.yTitle = Language.StringByID(StringId.EnergyConsumption) + "(kW)";
@@ -452,7 +441,7 @@
                    Application.RunOnMainThread(() =>
                    {
                        myEchartsView.ShowWithOption(opString);
                        myEchartsView_Line.ShowWithOption(opString);
                    });
                }
                catch (Exception ex)
@@ -515,8 +504,6 @@
            row.Y = btnLine.Bottom;
            view.AddChidren(row);
            listButton_value.Add(row.btnValue);
            Control.Ins.SendReadCommand(energy);
        }
@@ -560,6 +547,7 @@
        {
            double totalValue = 0;
            double realtimeValue = 0;
            Dictionary<string, string> list = new Dictionary<string, string>();//饼图数据
            foreach (var ene in bodyView.energyList)
            {
                double power = 0;
@@ -569,6 +557,13 @@
                int realTimePower = 0;
                int.TryParse(ene.GetAttrState(FunctionAttributeKey.Power), out realTimePower);
                realtimeValue += realTimePower;
                #region 饼图数据
                double tt = 0;
                double.TryParse(ene.GetAttrState(FunctionAttributeKey.TotalElectricity), out tt);
                tt *= 100;//乘以100,小于1无法加载echart
                list.Add(ene.name, tt.ToString());
                #endregion
            }
            bodyView.btnTotalValue.Text = totalValue.ToString();
            realtimeValue /= 1000;
@@ -576,6 +571,9 @@
            ///动态获取文本宽度
            bodyView.btnTotalValue.Width = bodyView.btnTotalValue.GetTextWidth() + Application.GetRealWidth(5);
            bodyView.btnTotalValueUint.X = bodyView.btnTotalValue.Right;
            //刷新饼图
            bodyView.myEchartsView_Pie.ShowWithOption(new EchartsOption_Pie().InitDateJson(list));
        }
    }
HDL_ON/UI/UI2/FuntionControlView/EnvironmentalScience/EchartsOption_BrokenLine.cs
@@ -132,7 +132,7 @@
                         top: '10%',
                        left: '10%',
                        right: '10%',
                        bottom: '10%',
                        bottom: '15%',
                    },
                    xAxis: {
                        type: 'category',
HDL_ON/UI/UI2/FuntionControlView/EnvironmentalScience/EnvironmentalSensorPage.cs
@@ -128,7 +128,7 @@
                Gravity = Gravity.CenterHorizontal,
                Y = Application.GetRealHeight(52),
                Width = Application.GetRealWidth(343 - 32),
                Height = Application.GetRealHeight(270),
                Height = Application.GetRealWidth(270),
            };
            diagramView.AddChidren(historyDataView);
HDL_ON/UI/UI2/FuntionControlView/Video/VideoMainView.cs
@@ -35,8 +35,8 @@
            pageView.AddChidren(view1);
            var view2 = new FrameLayout();
            pageView.AddChidren(view2);
            View1(view1, listVideo, video);
            View2(view2, listCall, video);
            ViewFrameLayout1(view1, listVideo, video);
            ViewFrameLayout2(view2, listCall, video);
            Button btn11 = new Button
            {
                X = Application.GetRealWidth(170),
@@ -113,8 +113,10 @@
        /// <param name="view1">父控件</param>
        /// <param name="list">门口机列表</param>
        /// <param name="videoClouds">当前的可视对讲</param>
        void View1(FrameLayout view1, List<FlVideo> list, VideoClouds videoClouds)
        void ViewFrameLayout1(FrameLayout view1, List<FlVideo> list, VideoClouds videoClouds)
        {
            #region 布局界面
            var bjFl = new FrameLayout
            {
@@ -220,17 +222,16 @@
                #region
                var fLayout = new FrameLayout
                {
                    Width = Application.GetRealWidth(50),
                    Width = Application.GetRealWidth(96),
                    Height = Application.GetRealWidth(48),
                    X = Application.GetRealWidth(31 + (58 + 50) * j),
                    X = Application.GetRealWidth(20 + (26 + 28 + 42) * j),
                    Y = Application.GetRealHeight(20 + (48 + 24) * line),
                };
                fL.AddChidren(fLayout);
                var iconBtn = new Button
                {
                    X = Application.GetRealWidth(11),
                    Gravity=Gravity.CenterHorizontal,
                    Width = Application.GetRealWidth(28),
                    Height = Application.GetRealWidth(28),
                    UnSelectedImagePath = "VideoIcon/weiqiangji.png",
@@ -240,7 +241,8 @@
                var deviceNameBtn = new Button
                {
                    Y = iconBtn.Bottom + Application.GetRealHeight(6),
                    Width = Application.GetRealWidth(50),
                    X = Application.GetRealWidth(6),
                    Width = Application.GetRealWidth(96-12),
                    Height = Application.GetRealHeight(14),
                    TextSize = TextSize.Text10,
                    TextColor = CSS.CSS_Color.TextualColor,
@@ -306,7 +308,7 @@
        /// <param name="view2">父控件</param>
        /// <param name="listCall">通话记录列表</param>
        /// <param name="video">当前的可视对讲</param>
        void View2(FrameLayout view2, List<CallView> listCall, VideoClouds video)
        void ViewFrameLayout2(FrameLayout view2, List<CallView> listCall, VideoClouds video)
        {
            var bjFl = new FrameLayout