70062c499991206394f2fee531ee17e05968fded..9b44e30275621a48335fbea7b32b5065a2859c9c
2021-03-16 wxr
Merge branch 'WJC' into temp-wxr
9b44e3 对比 | 目录
2021-03-16 陈嘉乐
2021-3-26-3
6b5f23 对比 | 目录
2021-03-16 wxr
Merge branch 'dev-tzy' into temp-wxr
fab434 对比 | 目录
2021-03-16 wei
3.
2d6787 对比 | 目录
2021-03-16 陈嘉乐
2021-3-16-2
7a1199 对比 | 目录
2021-03-16 陈嘉乐
2021-3-16-1
6a7a57 对比 | 目录
88个文件已添加
20个文件已修改
1728 ■■■■ 已修改文件
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/acstandard_blue.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/acstandard_white.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/airFreshstandard_blue.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/airFreshstandard_white.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/curtainroller_blue.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/curtainroller_white.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/curtainshades_blue.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/curtainshades_white.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/curtainswitch_blue.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/curtainswitch_white.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/curtaintrietex_blue.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/curtaintrietex_white.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricalQ1RsefNf91tIXyyQ_blue.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricalQ1RsefNf91tIXyyQ_white.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricalai6HtccKFIw3dxo3_blue.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricalai6HtccKFIw3dxo3_white.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricalfan_blue.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricalfan_white.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricalkoiGhMKwLf2ZP81g_blue.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricalkoiGhMKwLf2ZP81g_white.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricalracks_blue.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricalracks_white.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricalsocket_blue.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricalsocket_white.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricaltv_blue.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricaltv_white.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricaltyqborgovyzytytz_blue.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricaltyqborgovyzytytz_white.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/floorHeatstandard_blue.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/floorHeatstandard_white.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/irac_blue.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/irac_white.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/irlearn_blue.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/irlearn_white.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/irtv_blue.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/irtv_white.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/lightcct_blue.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/lightcct_white.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/lightdimming_blue.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/lightdimming_white.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/lightrgb_blue.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/lightrgb_white.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/lightrgbw_blue.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/lightrgbw_white.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/lightswitch_blue.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/lightswitch_white.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/musicstandard_blue.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/musicstandard_white.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/acstandard.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/airFreshstandard.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/curtainroller.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/curtainshades.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/curtainswitch.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/curtaintrietex.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/electricalQ1RsefNf91tIXyyQ.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/electricalai6HtccKFIw3dxo3.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/electricalfan.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/electricalkoiGhMKwLf2ZP81g.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/electricalracks.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/electricalsocket.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/electricaltv.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/electricaltyqborgovyzytytz.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/floorHeatstandard.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/irac.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/irlearn.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/irmodule.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/irtv.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/lightcct.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/lightdimming.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/lightrgb.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/lightrgbw.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/lightswitch.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/musicstandard.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/sensorco2.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/sensordoorwindow.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/sensorgas.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/sensorhumidity.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/sensorpir.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/sensorpm25.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/sensorsmoke.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/sensortemperature.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/sensortvoc.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/sensorwater.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/HDL-ON_Android.csproj 83 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_iOS/HDL-ON_iOS.csproj 83 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/irmodule.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/DAL/Mqtt/MqttClient.cs 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/DAL/Server/HttpServerRequest.cs 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/DAL/Server/NewAPI.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/Entity/Integratedbrand/IntegratedBrand.cs 81 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/HDL_ON.projitems 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/4-PersonalCenter/AddFunction/AddDevciePage.cs 144 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/4-PersonalCenter/AddFunction/AddThirdPartyBrandListpage.cs 21 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/4-PersonalCenter/AddFunction/BrandListPage.cs 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/4-PersonalCenter/AddFunction/DeviceListPage.cs 164 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/4-PersonalCenter/AddFunction/ThirdPartyBrandListPage.cs 166 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/AddButton.cs 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/AddControl.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/AddControlComplete.cs 70 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/BrandList.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/DeviceSet.cs 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/EditControl.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/Method.cs 201 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/Pir.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/PirMain.cs 332 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/PirSend.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/View/HeigthChangeView.cs 113 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/View/MainView.cs 143 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/acstandard_blue.png
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/acstandard_white.png
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/airFreshstandard_blue.png
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/airFreshstandard_white.png
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/curtainroller_blue.png
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/curtainroller_white.png
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/curtainshades_blue.png
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/curtainshades_white.png
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/curtainswitch_blue.png
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/curtainswitch_white.png
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/curtaintrietex_blue.png
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/curtaintrietex_white.png
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricalQ1RsefNf91tIXyyQ_blue.png
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricalQ1RsefNf91tIXyyQ_white.png
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricalai6HtccKFIw3dxo3_blue.png
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricalai6HtccKFIw3dxo3_white.png
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricalfan_blue.png
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricalfan_white.png
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricalkoiGhMKwLf2ZP81g_blue.png
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricalkoiGhMKwLf2ZP81g_white.png
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricalracks_blue.png
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricalracks_white.png
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricalsocket_blue.png
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricalsocket_white.png
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricaltv_blue.png
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricaltv_white.png
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricaltyqborgovyzytytz_blue.png
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricaltyqborgovyzytytz_white.png
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/floorHeatstandard_blue.png
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/floorHeatstandard_white.png
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/irac_blue.png
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/irac_white.png
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/irlearn_blue.png
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/irlearn_white.png
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/irtv_blue.png
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/irtv_white.png
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/lightcct_blue.png
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/lightcct_white.png
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/lightdimming_blue.png
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/lightdimming_white.png
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/lightrgb_blue.png
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/lightrgb_white.png
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/lightrgbw_blue.png
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/lightrgbw_white.png
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/lightswitch_blue.png
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/lightswitch_white.png
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/musicstandard_blue.png
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/musicstandard_white.png
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/acstandard.png
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/airFreshstandard.png
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/curtainroller.png
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/curtainshades.png
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/curtainswitch.png
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/curtaintrietex.png
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/electricalQ1RsefNf91tIXyyQ.png
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/electricalai6HtccKFIw3dxo3.png
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/electricalfan.png
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/electricalkoiGhMKwLf2ZP81g.png
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/electricalracks.png
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/electricalsocket.png
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/electricaltv.png
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/electricaltyqborgovyzytytz.png
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/floorHeatstandard.png
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/irac.png
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/irlearn.png
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/irmodule.png
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/irtv.png
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/lightcct.png
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/lightdimming.png
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/lightrgb.png
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/lightrgbw.png
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/lightswitch.png
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/musicstandard.png
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/sensorco2.png
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/sensordoorwindow.png
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/sensorgas.png
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/sensorhumidity.png
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/sensorpir.png
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/sensorpm25.png
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/sensorsmoke.png
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/sensortemperature.png
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/sensortvoc.png
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/sensorwater.png
HDL-ON_Android/HDL-ON_Android.csproj
@@ -842,6 +842,89 @@
    <AndroidAsset Include="Assets\Phone\PersonalCenter\AddDevice\UploadToCloundSelect.png" />
    <AndroidAsset Include="Assets\Phone\PersonalCenter\AddDevice\MiniRemoteControlMenuIcon.png" />
    <AndroidAsset Include="Assets\Phone\PersonalCenter\AddDevice\WifiAndPhoneConnect.png" />
    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\sensortvoc.png" />
    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\irmodule.png" />
    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\sensorpir.png" />
    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\electricalai6HtccKFIw3dxo3.png" />
    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\lightrgb.png" />
    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\airFreshstandard.png" />
    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\electricalracks.png" />
    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\electricalfan.png" />
    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\sensorpm25.png" />
    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\acstandard.png" />
    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\electricalsocket.png" />
    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\sensorgas.png" />
    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\sensorhumidity.png" />
    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\electricalkoiGhMKwLf2ZP81g.png" />
    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\lightcct.png" />
    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\curtainroller.png" />
    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\irlearn.png" />
    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\lightdimming.png" />
    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\sensorco2.png" />
    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\electricaltv.png" />
    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\floorHeatstandard.png" />
    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\curtainswitch.png" />
    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\curtainshades.png" />
    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\electricaltyqborgovyzytytz.png" />
    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\musicstandard.png" />
    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\sensordoorwindow.png" />
    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\lightrgbw.png" />
    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\sensortemperature.png" />
    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\curtaintrietex.png" />
    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\sensorsmoke.png" />
    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\electricalQ1RsefNf91tIXyyQ.png" />
    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\irac.png" />
    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\sensorwater.png" />
    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\lightswitch.png" />
    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\irtv.png" />
    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\HomeIcon\lightrgbw_blue.png" />
    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\HomeIcon\irac_white.png" />
    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\HomeIcon\electricaltv_white.png" />
    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\HomeIcon\electricalai6HtccKFIw3dxo3_white.png" />
    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\HomeIcon\curtaintrietex_white.png" />
    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\HomeIcon\floorHeatstandard_blue.png" />
    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\HomeIcon\musicstandard_blue.png" />
    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\HomeIcon\electricalfan_white.png" />
    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\HomeIcon\curtainswitch_blue.png" />
    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\HomeIcon\lightdimming_white.png" />
    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\HomeIcon\lightrgbw_white.png" />
    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\HomeIcon\electricaltyqborgovyzytytz_white.png" />
    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\HomeIcon\airFreshstandard_white.png" />
    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\HomeIcon\lightrgb_white.png" />
    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\HomeIcon\irtv_blue.png" />
    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\HomeIcon\irlearn_blue.png" />
    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\HomeIcon\musicstandard_white.png" />
    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\HomeIcon\electricalfan_blue.png" />
    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\HomeIcon\curtainshades_white.png" />
    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\HomeIcon\electricalkoiGhMKwLf2ZP81g_white.png" />
    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\HomeIcon\irac_blue.png" />
    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\HomeIcon\electricalkoiGhMKwLf2ZP81g_blue.png" />
    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\HomeIcon\acstandard_white.png" />
    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\HomeIcon\lightcct_white.png" />
    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\HomeIcon\electricalracks_blue.png" />
    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\HomeIcon\electricalai6HtccKFIw3dxo3_blue.png" />
    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\HomeIcon\lightswitch_blue.png" />
    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\HomeIcon\curtaintrietex_blue.png" />
    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\HomeIcon\airFreshstandard_blue.png" />
    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\HomeIcon\floorHeatstandard_white.png" />
    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\HomeIcon\curtainshades_blue.png" />
    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\HomeIcon\electricalQ1RsefNf91tIXyyQ_white.png" />
    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\HomeIcon\electricaltyqborgovyzytytz_blue.png" />
    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\HomeIcon\lightcct_blue.png" />
    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\HomeIcon\lightrgb_blue.png" />
    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\HomeIcon\curtainroller_white.png" />
    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\HomeIcon\curtainroller_blue.png" />
    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\HomeIcon\electricalQ1RsefNf91tIXyyQ_blue.png" />
    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\HomeIcon\irtv_white.png" />
    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\HomeIcon\electricalsocket_white.png" />
    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\HomeIcon\lightswitch_white.png" />
    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\HomeIcon\lightdimming_blue.png" />
    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\HomeIcon\electricaltv_blue.png" />
    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\HomeIcon\electricalsocket_blue.png" />
    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\HomeIcon\acstandard_blue.png" />
    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\HomeIcon\irlearn_white.png" />
    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\HomeIcon\curtainswitch_white.png" />
    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\HomeIcon\electricalracks_white.png" />
  </ItemGroup>
  <ItemGroup>
    <AndroidNativeLibrary Include="libs\armeabi-v7a\libelianjni.so" />
HDL-ON_iOS/HDL-ON_iOS.csproj
@@ -1066,6 +1066,89 @@
      <BundleResource Include="Resources\Phone\PersonalCenter\AddDevice\UploadToCloundSelect.png" />
      <BundleResource Include="Resources\Phone\PersonalCenter\AddDevice\MiniRemoteControlMenuIcon.png" />
      <BundleResource Include="Resources\Phone\PersonalCenter\AddDevice\WifiAndPhoneConnect.png" />
      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\sensortvoc.png" />
      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\sensorpir.png" />
      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\electricalai6HtccKFIw3dxo3.png" />
      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\lightrgb.png" />
      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\airFreshstandard.png" />
      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\electricalracks.png" />
      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\electricalfan.png" />
      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\sensorpm25.png" />
      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\acstandard.png" />
      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\electricalsocket.png" />
      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\sensorgas.png" />
      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\sensorhumidity.png" />
      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\electricalkoiGhMKwLf2ZP81g.png" />
      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\lightcct.png" />
      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\curtainroller.png" />
      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\irlearn.png" />
      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\lightdimming.png" />
      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\sensorco2.png" />
      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\electricaltv.png" />
      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\floorHeatstandard.png" />
      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\curtainswitch.png" />
      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\curtainshades.png" />
      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\electricaltyqborgovyzytytz.png" />
      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\musicstandard.png" />
      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\sensordoorwindow.png" />
      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\lightrgbw.png" />
      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\sensortemperature.png" />
      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\curtaintrietex.png" />
      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\sensorsmoke.png" />
      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\electricalQ1RsefNf91tIXyyQ.png" />
      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\irac.png" />
      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\sensorwater.png" />
      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\lightswitch.png" />
      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\irtv.png" />
      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\HomeIcon\lightrgbw_blue.png" />
      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\HomeIcon\irac_white.png" />
      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\HomeIcon\electricaltv_white.png" />
      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\HomeIcon\electricalai6HtccKFIw3dxo3_white.png" />
      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\HomeIcon\curtaintrietex_white.png" />
      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\HomeIcon\floorHeatstandard_blue.png" />
      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\HomeIcon\musicstandard_blue.png" />
      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\HomeIcon\electricalfan_white.png" />
      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\HomeIcon\curtainswitch_blue.png" />
      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\HomeIcon\lightdimming_white.png" />
      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\HomeIcon\lightrgbw_white.png" />
      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\HomeIcon\electricaltyqborgovyzytytz_white.png" />
      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\HomeIcon\airFreshstandard_white.png" />
      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\HomeIcon\lightrgb_white.png" />
      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\HomeIcon\irtv_blue.png" />
      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\HomeIcon\irlearn_blue.png" />
      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\HomeIcon\musicstandard_white.png" />
      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\HomeIcon\electricalfan_blue.png" />
      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\HomeIcon\curtainshades_white.png" />
      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\HomeIcon\electricalkoiGhMKwLf2ZP81g_white.png" />
      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\HomeIcon\irac_blue.png" />
      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\HomeIcon\electricalkoiGhMKwLf2ZP81g_blue.png" />
      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\HomeIcon\acstandard_white.png" />
      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\HomeIcon\lightcct_white.png" />
      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\HomeIcon\electricalracks_blue.png" />
      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\HomeIcon\electricalai6HtccKFIw3dxo3_blue.png" />
      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\HomeIcon\lightswitch_blue.png" />
      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\HomeIcon\curtaintrietex_blue.png" />
      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\HomeIcon\airFreshstandard_blue.png" />
      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\HomeIcon\floorHeatstandard_white.png" />
      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\HomeIcon\curtainshades_blue.png" />
      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\HomeIcon\electricalQ1RsefNf91tIXyyQ_white.png" />
      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\HomeIcon\electricaltyqborgovyzytytz_blue.png" />
      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\HomeIcon\lightcct_blue.png" />
      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\HomeIcon\lightrgb_blue.png" />
      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\HomeIcon\curtainroller_white.png" />
      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\HomeIcon\curtainroller_blue.png" />
      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\HomeIcon\electricalQ1RsefNf91tIXyyQ_blue.png" />
      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\HomeIcon\irtv_white.png" />
      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\HomeIcon\electricalsocket_white.png" />
      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\HomeIcon\lightswitch_white.png" />
      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\HomeIcon\lightdimming_blue.png" />
      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\HomeIcon\electricaltv_blue.png" />
      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\HomeIcon\electricalsocket_blue.png" />
      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\HomeIcon\acstandard_blue.png" />
      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\HomeIcon\irlearn_white.png" />
      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\HomeIcon\curtainswitch_white.png" />
      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\HomeIcon\electricalracks_white.png" />
      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\irmodule.png" />
    </ItemGroup>
    <ItemGroup>
      <ITunesArtwork Include="iTunesArtwork" />
HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/irmodule.png
HDL_ON/DAL/Mqtt/MqttClient.cs
@@ -330,7 +330,9 @@
                                {
                                    var bytes = Securitys.EncryptionService.AesDecryptPayload(e.ApplicationMessage.Payload, tuyaEncryptKey);
                                    var revString = Encoding.UTF8.GetString(bytes);
                                    UI.UI2.PersonalCenter.PirDevice.Method.mqttdata = revString;
                                    HDL_ON.UI.UI2.PersonalCenter.PirDevice.Method.controldata = revString;
                                    //ReceiveCheckGateway(ss);
                                    //return;
                                }
                                //App订阅遥控器自学按键学习成功通知
                                else if (topic == $"/user/{DB_ResidenceData.Instance.CurrentRegion.RegionID}/app/thing/event/irCodeStudyDone/up")
@@ -411,6 +413,9 @@
                                    {
                                        MainPage.Log($"读取云端设备数据失败:Code:{deviceResult.Code};  Msg:{deviceResult.message}");
                                    }
                                    HDL_ON.UI.UI2.PersonalCenter.PirDevice.Method.buttondata = revString;
                                    //ReceiveCheckGateway(ss);
                                    //return;
                                }
                                #endregion
                                //A网关设备状态-包含涂鸦设备
HDL_ON/DAL/Server/HttpServerRequest.cs
@@ -1781,6 +1781,41 @@
            return HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_GetDevcieList, requestJson);
        }
        /// <summary>
        /// 获取指定第三方品牌的绑定过的设备列表
        /// </summary>
        /// <param name="productPlatform"></param>
        /// <param name="productBrand"></param>
        /// <returns></returns>
        public ResponsePackNew Get3TyBrandBindDeviceList(string productPlatform, string productBrand)
        {
            Dictionary<string, object> d = new Dictionary<string, object>();
            d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.RegionID);
            d.Add("productPlatform", productPlatform);
            d.Add("productBrand", productBrand);
            var requestJson = HttpUtil.GetSignRequestJson(d);
            return HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_GetDevcieList, requestJson);
        }
        /// <summary>
        /// 获取指定第三方品牌的设备列表
        /// </summary>
        /// <param name="productPlatform"></param>
        /// <param name="productBrand"></param>
        /// <returns></returns>
        public ResponsePackNew Get3TyBrandDeviceList(string productPlatform,string productBrand)
        {
            Dictionary<string, object> d = new Dictionary<string, object>();
            d.Add("categoryType", 1);
            d.Add("productPlatform", productPlatform);
            d.Add("productBrand", productBrand);
            var requestJson = HttpUtil.GetSignRequestJson(d);
            return HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_Get3tyBrandDevcieList, requestJson);
        }
        /// <summary>
        /// 获取设备详情列表
        /// </summary>
        /// <returns></returns>
HDL_ON/DAL/Server/NewAPI.cs
@@ -322,6 +322,10 @@
        /// </summary>
        public const string Api_Post_GetDevcieList = "/home-wisdom/app/device/list";
        /// <summary>
        /// 获取第三方品牌设备列表
        /// </summary>
        public const string Api_Post_Get3tyBrandDevcieList = "/home-wisdom/app/product/list";
        /// <summary>
        /// 获取设备详情
        /// </summary>
        public const string Api_Post_GetDevcieInfoList = "/home-wisdom/app/device/info";
HDL_ON/Entity/Integratedbrand/IntegratedBrand.cs
@@ -25,9 +25,82 @@
        /// 平台标识
        /// </summary>
        public string productPlatform;
    }
    /// <summary>
    /// 第三方设备信息
    /// </summary>
    public class IntegratedBrandDevice
    {
        /// <summary>
        /// 产品唯一标识
        /// </summary>
        public string productId;
        /// <summary>
        /// 产品名称
        /// </summary>
        public string productName;
        /// <summary>
        /// 产品厂商
        /// </summary>
        public string productSupplier;
        /// <summary>
        /// 产品品牌(品牌标识)
        /// </summary>
        public string productBrand;
        /// <summary>
        /// 产品类型
        /// </summary>
        public string productType;
        /// <summary>
        /// 第二品类名
        /// </summary>
        public string categorySecondName;
        /// <summary>
        /// 第二品类code
        /// </summary>
        public string categorySecondCode;
        /// <summary>
        /// 第一品类code
        /// </summary>
        public string categoryFirstCode;
        /// <summary>
        /// 第一品类名称
        /// </summary>
        public string categoryFirstName;
        /// <summary>
        /// 产品型号
        /// </summary>
        public string productVersion;
        /// <summary>
        /// 产品平台(平台标识)
        /// </summary>
        public string productPlatform;
        /// <summary>
        /// 产品图片
        /// </summary>
        public string productPic;
        /// <summary>
        /// 功能类型Key
        /// </summary>
        public string spk;
        /// <summary>
        /// 设备绑定方式 WIFI、QRSCAN、ZIG_BEE、ETHERNET
        /// </summary>
        public string bindType;
    }
}
HDL_ON/HDL_ON.projitems
@@ -375,6 +375,10 @@
    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PirDevice\View\FrameLayout50.cs" />
    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PirDevice\View\PirView.cs" />
    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PirDevice\View\ControlView.cs" />
    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\AddFunction\AddDevciePage.cs" />
    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\AddFunction\DeviceListPage.cs" />
    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PirDevice\View\MainView.cs" />
    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PirDevice\View\HeigthChangeView.cs" />
  </ItemGroup>
  <ItemGroup>
    <Folder Include="$(MSBuildThisFileDirectory)DAL\" />
HDL_ON/UI/UI2/4-PersonalCenter/AddFunction/AddDevciePage.cs
New file
@@ -0,0 +1,144 @@
using System;
using System.Collections.Generic;
using HDL_ON.Entity;
using HDL_ON.UI.CSS;
using Shared;
namespace HDL_ON.UI
{
    public class AddDevciePage : FrameLayout
    {
        FrameLayout bodyView;
        IntegratedBrand brand;
        VerticalRefreshLayout contentView;
        public AddDevciePage(IntegratedBrand integratedBrand)
        {
            bodyView = this;
            brand = integratedBrand;
        }
        public void LoadPage()
        {
            new TopViewDiv(bodyView, Language.StringByID(StringId.AddDevice)).LoadTopView();
            bodyView.BackgroundColor = CSS_Color.BackgroundColor;
            contentView = new VerticalRefreshLayout()
            {
                Y = Application.GetRealHeight(64),
                Height = Application.GetRealHeight(667 - 64),
                VerticalScrollBarEnabled = false,
            };
            bodyView.AddChidren(contentView);
            Load3tyBrandDeviceList();
        }
        void Load3tyBrandDeviceList()
        {
            var waitPage = new Loading();
            waitPage.Start();
            new System.Threading.Thread(() => {
                try
                {
                    var pm = new DAL.Server.HttpServerRequest();
                    //var result = pm.Get3tyBindBrandList
                    var pack = pm.Get3TyBrandDeviceList(brand.productPlatform, brand.productBrand);
                    if (pack.Code == DAL.Server.StateCode.SUCCESS)
                    {
                        var revData = Newtonsoft.Json.JsonConvert.DeserializeObject<List<IntegratedBrandDevice>>(pack.Data.ToString());
                        Application.RunOnMainThread(() =>
                        {
                            LoadRow(revData);
                        });
                    }
                }
                catch (Exception ex)
                {
                    MainPage.Log("1--::" + ex.Message);
                }
                finally
                {
                    Application.RunOnMainThread(() => { waitPage.Hide(); });
                }
            })
            { IsBackground = true }.Start();
        }
        void LoadRow(List<IntegratedBrandDevice> deviceList)
        {
            contentView.RemoveAll();
            bool isFrist = true;
            foreach (var device in deviceList)
            {
                FrameLayout row = new FrameLayout()
                {
                    Height = Application.GetRealHeight(50),
                    BackgroundColor = CSS_Color.MainBackgroundColor,
                };
                contentView.AddChidren(row);
                if (isFrist)
                {
                    isFrist = false;
                }
                else
                {
                    Button btnLine = new Button()
                    {
                        X = Application.GetRealWidth(56),
                        Width = Application.GetRealWidth(303),
                        Height = 1,
                        BackgroundColor = CSS_Color.DividingLineColor,
                    };
                    row.AddChidren(btnLine);
                }
                var btnIcon = new Button()
                {
                    X = Application.GetRealWidth(12),
                    Gravity = Gravity.CenterVertical,
                    Width = Application.GetRealWidth(32),
                    Height = Application.GetRealWidth(32),
                    Radius = (uint)Application.GetRealWidth(4),
                    UnSelectedImagePath = $"FunctionIcon/Icon/{device.spk.Replace(".","")}.png",
                };
                row.AddChidren(btnIcon);
                Button btnRight = new Button()
                {
                    X = Application.GetRealWidth(339),
                    Gravity = Gravity.CenterVertical,
                    Width = Application.GetMinRealAverage(16),
                    Height = Application.GetMinRealAverage(16),
                    UnSelectedImagePath = "Public/Right.png",
                };
                row.AddChidren(btnRight);
                Button btnName = new Button()
                {
                    X = Application.GetRealWidth(56),
                    Width = Application.GetRealWidth(303),
                    TextAlignment = TextAlignment.CenterLeft,
                    TextColor = CSS_Color.FirstLevelTitleColor,
                    TextSize = CSS_FontSize.TextFontSize,
                    Text = device.productName,
                };
                row.AddChidren(btnName);
                btnName.MouseUpEventHandler = (sender, e) => {
                    switch (device.spk)
                    {
                        case SPK.IrModule:
                            var form = new AddMiniRemoteControlDirection1Page();
                            form.AddForm();
                            break;
                    }
                };
            }
        }
    }
}
HDL_ON/UI/UI2/4-PersonalCenter/AddFunction/AddThirdPartyBrandListpage.cs
@@ -10,10 +10,11 @@
    {
        FrameLayout bodyView;
        VerticalRefreshLayout contentView;
        List<IntegratedBrand> brandList = new List<IntegratedBrand>();
        public AddThirdPartyBrandListpage()
        List<IntegratedBrand> brandList;
        public AddThirdPartyBrandListpage(List<IntegratedBrand> list)
        {
            bodyView = this;
            brandList = list;
        }
        public void LoadPage()
@@ -61,7 +62,6 @@
                    Button btnLine = new Button()
                    {
                        X = Application.GetRealWidth(56),
                        Y = Application.GetRealHeight(49),
                        Width = Application.GetRealWidth(303),
                        Height = 1,
                        BackgroundColor = CSS_Color.DividingLineColor,
@@ -102,6 +102,13 @@
                row.AddChidren(btnName);
                //下载第三方品牌icon
                ImageUtlis.Current.Load3tyBrandIconImages(brand.brandName, brand.brandIcon, btnIcon);
                btnName.MouseUpEventHandler = (sender, e) => {
                    var page = new AddDevciePage(brand);
                    MainPage.BasePageView.AddChidren(page);
                    page.LoadPage();
                    MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
                };
            }
        }
@@ -134,5 +141,13 @@
                }
            }) { IsBackground = true }.Start();
        }
        /// <summary>
        /// 跳转添加设备界面
        /// </summary>
        /// <param name="bandType">品牌类型</param>
        void SkipPage_AddDevice()
        {
        }
    }
}
HDL_ON/UI/UI2/4-PersonalCenter/AddFunction/BrandListPage.cs
@@ -9,34 +9,36 @@
    {
        FrameLayout bodyView;
        FrameLayout contentView;
        VerticalScrolViewLayout contentView;
        List<IntegratedBrand> brandList;
        public BrandListPage()
        {
            bodyView = this;
            brandList = new List<IntegratedBrand>();
        }
        public void LoadPage()
        {
            Action<string,string> action = (s,a) => {
                var page = new AddThirdPartyBrandListpage();
                var page = new AddThirdPartyBrandListpage(brandList);
                MainPage.BasePageView.AddChidren(page);
                page.LoadPage();
                MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
                this.RemoveFromParent();
            };
            new TopViewDiv(bodyView, Language.StringByID(StringId.FunctionBrand)).LoadTopView_AddIcon("3ty",action);
            bodyView.BackgroundColor = CSS_Color.BackgroundColor;
            contentView = new FrameLayout()
            contentView = new  VerticalScrolViewLayout()
            {
                Y = Application.GetRealHeight(64),
                Height = Application.GetRealHeight(603),
            };
            bodyView.AddChidren(contentView);
            GetBindList();
        }
        /// <summary>
@@ -53,12 +55,12 @@
                    var pack = pm.Get3tyBrandList();
                    if (pack.Code == DAL.Server.StateCode.SUCCESS)
                    {
                        var revData = Newtonsoft.Json.JsonConvert.DeserializeObject<List<IntegratedBrand>>(pack.Data.ToString());
                        if (revData.Count > 0)
                        brandList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<IntegratedBrand>>(pack.Data.ToString());
                        if (brandList.Count > 0)
                        {
                            Application.RunOnMainThread(() =>
                            {
                                LoadRow(revData);
                                LoadRow();
                            });
                        }else
                        {
@@ -83,16 +85,17 @@
        }
        void LoadRow(List<IntegratedBrand> brandList)
        void LoadRow()
        {
            contentView.RemoveAll();
            bool isFrist = true;
            foreach (var brand in brandList)
            {
                FrameLayout row = new FrameLayout()
                var row = new RowLayout()
                {
                    Height = Application.GetRealHeight(50),
                    BackgroundColor = CSS_Color.MainBackgroundColor,
                    LineColor = 0x00000000,
                };
                contentView.AddChidren(row);
@@ -105,7 +108,6 @@
                    Button btnLine = new Button()
                    {
                        X = Application.GetRealWidth(56),
                        Y = Application.GetRealHeight(49),
                        Width = Application.GetRealWidth(303),
                        Height = 1,
                        BackgroundColor = CSS_Color.DividingLineColor,
@@ -121,7 +123,6 @@
                    Height = Application.GetRealWidth(32),
                    Radius = (uint)Application.GetRealWidth(4),
                    BackgroundColor = CSS_Color.PromptingColor1
                    //ImagePath = "tuya_logo.png"
                };
                row.AddChidren(btnIcon);
                Button btnRight = new Button()
@@ -146,10 +147,16 @@
                row.AddChidren(btnName);
                //下载第三方品牌icon
                ImageUtlis.Current.Load3tyBrandIconImages(brand.brandName, brand.brandIcon, btnIcon);
                btnName.MouseUpEventHandler = (sender, e) => {
                    var page = new DeviceListPage(brand);
                    MainPage.BasePageView.AddChidren(page);
                    page.LoadPage();
                    MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
                };
            }
        }
        void NotListTipView()
        {
@@ -206,7 +213,7 @@
            btnAdd.MouseUpEventHandler = (sender, e) => {
                var page = new AddThirdPartyBrandListpage();
                var page = new AddThirdPartyBrandListpage(brandList);
                MainPage.BasePageView.AddChidren(page);
                page.LoadPage();
                MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
HDL_ON/UI/UI2/4-PersonalCenter/AddFunction/DeviceListPage.cs
New file
@@ -0,0 +1,164 @@
using System;
using System.Collections.Generic;
using HDL_ON.Entity;
using HDL_ON.UI.CSS;
using Shared;
namespace HDL_ON.UI
{
    public class DeviceListPage  : FrameLayout
    {
        FrameLayout bodyView;
        VerticalRefreshLayout contentView;
        IntegratedBrand brand;
        public DeviceListPage(IntegratedBrand integratedBrand)
        {
            bodyView = this;
            brand = integratedBrand;
        }
        public void LoadPage()
        {
            new TopViewDiv(bodyView, Language.StringByID(StringId.AddDevice)).LoadTopView();
            bodyView.BackgroundColor = CSS_Color.BackgroundColor;
            contentView = new VerticalRefreshLayout()
            {
                Y = Application.GetRealHeight(64),
                Height = Application.GetRealHeight(667 - 64),
                VerticalScrollBarEnabled = false,
            };
            bodyView.AddChidren(contentView);
            Load3tyBrandDeviceList();
        }
        void Load3tyBrandDeviceList()
        {
            var waitPage = new Loading();
            waitPage.Start();
            new System.Threading.Thread(() => {
                try
                {
                    var pm = new DAL.Server.HttpServerRequest();
                    var pack = pm.Get3TyBrandBindDeviceList(brand.productPlatform, brand.productBrand);
                    if (pack.Code == DAL.Server.StateCode.SUCCESS)
                    {
                        var revData = Newtonsoft.Json.JsonConvert.DeserializeObject<Function3tyBrandObj>(pack.Data.ToString());
                        Application.RunOnMainThread(() =>
                        {
                            LoadRow(revData.list);
                        });
                    }
                }
                catch (Exception ex)
                {
                    MainPage.Log("1--::" + ex.Message);
                }
                finally
                {
                    Application.RunOnMainThread(() => { waitPage.Hide(); });
                }
            })
            { IsBackground = true }.Start();
        }
        void LoadRow(List<Function> deviceList)
        {
            deviceList.Add(new Function() { name ="测试红外宝",spk = SPK.IrModule});
            contentView.RemoveAll();
            bool isFrist = true;
            foreach (var device in deviceList)
            {
                FrameLayout row = new FrameLayout()
                {
                    Height = Application.GetRealHeight(50),
                    BackgroundColor = CSS_Color.MainBackgroundColor,
                };
                contentView.AddChidren(row);
                if (isFrist)
                {
                    isFrist = false;
                }
                else
                {
                    Button btnLine = new Button()
                    {
                        X = Application.GetRealWidth(56),
                        Width = Application.GetRealWidth(303),
                        Height = 1,
                        BackgroundColor = CSS_Color.DividingLineColor,
                    };
                    row.AddChidren(btnLine);
                }
                var btnIcon = new Button()
                {
                    X = Application.GetRealWidth(12),
                    Gravity = Gravity.CenterVertical,
                    Width = Application.GetRealWidth(32),
                    Height = Application.GetRealWidth(32),
                    Radius = (uint)Application.GetRealWidth(4),
                    UnSelectedImagePath = $"FunctionIcon/Icon/{device.spk.Replace(".", "")}.png",
                };
                row.AddChidren(btnIcon);
                Button btnRight = new Button()
                {
                    X = Application.GetRealWidth(339),
                    Gravity = Gravity.CenterVertical,
                    Width = Application.GetMinRealAverage(16),
                    Height = Application.GetMinRealAverage(16),
                    UnSelectedImagePath = "Public/Right.png",
                };
                row.AddChidren(btnRight);
                Button btnName = new Button()
                {
                    X = Application.GetRealWidth(56),
                    Width = Application.GetRealWidth(303),
                    TextAlignment = TextAlignment.CenterLeft,
                    TextColor = CSS_Color.FirstLevelTitleColor,
                    TextSize = CSS_FontSize.TextFontSize,
                    Text = device.name,
                };
                row.AddChidren(btnName);
                btnName.MouseUpEventHandler = (sender, e) => {
                    switch (device.spk)
                    {
                        case SPK.IrModule:
                            UI2.PersonalCenter.PirDevice.Method.GetPirDeviceList(this, () =>
                            {
                                Application.RunOnMainThread(() =>
                                {
                                    var page = new UI2.PersonalCenter.PirDevice.PirMain();
                                    MainPage.BasePageView.AddChidren(page);
                                    page.Show();
                                    MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
                                });
                            });
                            break;
                    }
                };
            }
        }
    }
    /// <summary>
    /// 云端返回的第三方设备列表数据
    /// </summary>
    public class Function3tyBrandObj
    {
        public List<Function> list = new List<Function>();
    }
}
HDL_ON/UI/UI2/4-PersonalCenter/AddFunction/ThirdPartyBrandListPage.cs
@@ -1,93 +1,93 @@
using System;
using System.Collections.Generic;
using HDL_ON.Entity;
using HDL_ON.UI.CSS;
using Shared;
namespace HDL_ON.UI
{
    public class ThirdPartyBrandListPage : FrameLayout
    {
//using System;
//using System.Collections.Generic;
//using HDL_ON.Entity;
//using HDL_ON.UI.CSS;
//using Shared;
//namespace HDL_ON.UI
//{
//    public class ThirdPartyBrandListPage : FrameLayout
//    {
        FrameLayout bodyView;
        FrameLayout contentView;
        Button btnAdd;
//        FrameLayout bodyView;
//        FrameLayout contentView;
//        Button btnAdd;
        public ThirdPartyBrandListPage()
        {
            bodyView = this;
        }
//        public ThirdPartyBrandListPage()
//        {
//            bodyView = this;
//        }
        public void LoadPage()
        {
            new TopViewDiv(bodyView, Language.StringByID(StringId.FunctionBrand)).LoadTopView();
//        public void LoadPage()
//        {
//            new TopViewDiv(bodyView, Language.StringByID(StringId.FunctionBrand)).LoadTopView();
            contentView = new FrameLayout()
            {
                Y = Application.GetRealHeight(64),
                Height = Application.GetRealHeight(667-64),
                BackgroundColor = CSS_Color.MainBackgroundColor,
            };
            bodyView.AddChidren(contentView);
//            contentView = new FrameLayout()
//            {
//                Y = Application.GetRealHeight(64),
//                Height = Application.GetRealHeight(667-64),
//                BackgroundColor = CSS_Color.MainBackgroundColor,
//            };
//            bodyView.AddChidren(contentView);
            AddEmptyTipView();
//            AddEmptyTipView();
            Button btnTipMsg = new Button()
            {
                Height = Application.GetRealHeight(17 + 24),
                Y = Application.GetRealHeight(535 - 12),
                TextColor = CSS_Color.TextualColor,
                TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
                TextAlignment = TextAlignment.Center,
                TextID = StringId.TipAddThirdPartyDeviceMsg,
            };
            bodyView.AddChidren(btnTipMsg);
//            Button btnTipMsg = new Button()
//            {
//                Height = Application.GetRealHeight(17 + 24),
//                Y = Application.GetRealHeight(535 - 12),
//                TextColor = CSS_Color.TextualColor,
//                TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
//                TextAlignment = TextAlignment.Center,
//                TextID = StringId.TipAddThirdPartyDeviceMsg,
//            };
//            bodyView.AddChidren(btnTipMsg);
            btnAdd = new Button()
            {
                Gravity = Gravity.CenterHorizontal,
                Y = Application.GetRealHeight(564),
                Width = Application.GetRealWidth(220),
                Height = Application.GetRealWidth(44),
                Radius = (uint)Application.GetRealWidth(22),
                BackgroundColor = CSS_Color.MainColor,
                TextAlignment = TextAlignment.Center,
                TextColor = CSS_Color.MainBackgroundColor,
                TextID = StringId.Add,
            };
            bodyView.AddChidren(btnAdd);
//            btnAdd = new Button()
//            {
//                Gravity = Gravity.CenterHorizontal,
//                Y = Application.GetRealHeight(564),
//                Width = Application.GetRealWidth(220),
//                Height = Application.GetRealWidth(44),
//                Radius = (uint)Application.GetRealWidth(22),
//                BackgroundColor = CSS_Color.MainColor,
//                TextAlignment = TextAlignment.Center,
//                TextColor = CSS_Color.MainBackgroundColor,
//                TextID = StringId.Add,
//            };
//            bodyView.AddChidren(btnAdd);
            LoadEvent_SikpAddBrand();
        }
//            LoadEvent_SikpAddBrand();
//        }
        /// <summary>
        /// 添加内容为空提示页面
        /// </summary>
        void AddEmptyTipView()
        {
           var emptyTipView = new FrameLayout()
            {
                Height =Application.GetRealWidth(470),
                Width = contentView.Width,
            };
            contentView.AddChidren(emptyTipView);
//        /// <summary>
//        /// 添加内容为空提示页面
//        /// </summary>
//        void AddEmptyTipView()
//        {
//           var emptyTipView = new FrameLayout()
//            {
//                Height =Application.GetRealWidth(470),
//                Width = contentView.Width,
//            };
//            contentView.AddChidren(emptyTipView);
            var tipView = new EmptyTipView(Language.StringByID(StringId.TipNotThirdPartyDevice))
            {
                Gravity = Gravity.Center
            };
            emptyTipView.AddChidren(tipView);
        }
        /// <summary>
        /// 跳转绑定第三方品牌界面
        /// </summary>
        void LoadEvent_SikpAddBrand()
        {
            btnAdd.MouseUpEventHandler = (sender, e) => {
                var page = new AddThirdPartyBrandListpage();
                MainPage.BasePageView.AddChidren(page);
                page.LoadPage();
                MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
            };
        }
    }
}
//            var tipView = new EmptyTipView(Language.StringByID(StringId.TipNotThirdPartyDevice))
//            {
//                Gravity = Gravity.Center
//            };
//            emptyTipView.AddChidren(tipView);
//        }
//        /// <summary>
//        /// 跳转绑定第三方品牌界面
//        /// </summary>
//        void LoadEvent_SikpAddBrand()
//        {
//            btnAdd.MouseUpEventHandler = (sender, e) => {
//                var page = new AddThirdPartyBrandListpage();
//                MainPage.BasePageView.AddChidren(page);
//                page.LoadPage();
//                MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
//            };
//        }
//    }
//}
HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/AddButton.cs
@@ -134,11 +134,12 @@
                    if (responsePackNew != null && responsePackNew.Code == "0" && responsePackNew.Data.ToString() != "")
                    {
                        Method method = new Method();
                        var mqttdate = method.MqttDate(control.sid, 25);
                        if (mqttdate !=null)
                        Method.buttondata = "";
                        var mqttdate = method.MqttDate("按键", control.sid, 25);
                        if (mqttdate != null)
                        {
                            //休眠是为显示引导界面
                           // System.Threading.Thread.Sleep(3000);
                            // System.Threading.Thread.Sleep(3000);
                            //移除添加按钮引导界面
                            replication.RemView();
                            var buttonName = control.status.Find((c) => c.value == buttonObj.value);
@@ -173,12 +174,12 @@
                            new TipPopView().FlashingBox(Language.StringByID(StringId.tianjiashibai));
                        }
                    }
                    else
                    {
                        Method method = new Method();
                        method.ErrorShow(responsePackNew);
                        method.ErrorShow(responsePackNew, "");
                    }
                });
HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/AddControl.cs
@@ -243,7 +243,6 @@
                                loading.Hide();
                                if (responsePackNew != null && responsePackNew.Code == "0" && responsePackNew.Data.ToString() != "")
                                {
                                    ///这里:监听MTTP推送下来主题,才知道是否添加成功
                                    var buttonObj = control.status.Find((c) => c.value == obj.value);
                                    if (buttonObj != null)
                                    {
@@ -253,7 +252,7 @@
                                }
                                else {
                                    Method method = new Method();
                                    method.ErrorShow(responsePackNew);
                                    method.ErrorShow(responsePackNew,"");
                                }
                            });
HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/AddControlComplete.cs
@@ -65,7 +65,7 @@
                TextAlignment = TextAlignment.Center,
            };
            fLayout.AddChidren(text1Btn);
            //可到分类-功能-电器操作使用
            //可到分类-功能-操作使用
            Button text2Btn = new Button
            {
                Width = Application.GetRealWidth(375 - 32),
@@ -90,13 +90,41 @@
            this.AddChidren(namePatchView.FLayoutView());
            namePatchView.btnText1.TextID = StringId.yaokongqimingcheng;
            namePatchView.btnText2.Text = control.name;
            namePatchView.btnClick.MouseUpEventHandler += (sender,e) => {
            //所属区域
            View.PatchView quyuPatchView = new View.PatchView();
            quyuPatchView.frameLayout.Y = namePatchView.frameLayout.Bottom;
            this.AddChidren(quyuPatchView.FLayoutView());
            quyuPatchView.btnText1.TextID = StringId.suoshuquyu;
            quyuPatchView.btnText2.Text=Intelligence.Automation.LogicMethod.GetGetRoomName(function);
            //继续添加
            Button addBtn = new Button
            {
                Y = quyuPatchView.frameLayout.Bottom + Application.GetRealHeight(125),
                X = Application.GetRealWidth(16),
                Width = Application.GetRealWidth(375 - 32),
                Height = Application.GetRealHeight(20),
                TextID = StringId.jixutianjia,
                TextSize = TextSize.text14,
                TextColor = CSS.CSS_Color.textConfirmColor,
                TextAlignment = TextAlignment.Center,
            };
            this.AddChidren(addBtn);
            //完成
            View.SaveView saveView = new View.SaveView();
            this.AddChidren(saveView.FLayoutView());
            saveView.frameLayout.SetCornerWithSameRadius(Application.GetRealHeight(24), HDLUtils.RectCornerTopLeft | HDLUtils.RectCornerTopRight);
            #endregion
            #region  界面点击事件
            //遥控器名称点击事件
            namePatchView.btnClick.MouseUpEventHandler += (sender, e) => {
                List<string> list = new List<string>();
                for (int i = 0; i < Pir.currPir.FunctioList.Count; i++)
                for (int i = 0; i < PirDevice.Pir.currPir.FunctioList.Count; i++)
                {
                    list.Add(Pir.currPir.FunctioList[i].name);
                    list.Add(PirDevice.Pir.currPir.FunctioList[i].name);
                }
                Method method = new Method();
                method.EditControlName(StringId.editName, list, control.name, (name, view) =>
@@ -127,7 +155,7 @@
                                else
                                {
                                    Method methodError = new Method();
                                    methodError.ErrorShow(responsePackNew);
                                    methodError.ErrorShow(responsePackNew, "");
                                }
                            });
@@ -139,12 +167,7 @@
                }, () => { });
            };
            //所属区域
            View.PatchView quyuPatchView = new View.PatchView();
            quyuPatchView.frameLayout.Y = namePatchView.frameLayout.Bottom;
            this.AddChidren(quyuPatchView.FLayoutView());
            quyuPatchView.btnText1.TextID = StringId.suoshuquyu;
            quyuPatchView.btnText2.Text=Intelligence.Automation.LogicMethod.GetGetRoomName(function);
            //所属区域点击事件
            quyuPatchView.btnClick.MouseUpEventHandler += (sender, e) =>
            {
                Method method = new Method();
@@ -154,31 +177,6 @@
                    quyuPatchView.btnText2.Text = Intelligence.Automation.LogicMethod.GetGetRoomName(function);
                });
            };
            //继续添加
            Button addBtn = new Button
            {
                Y = quyuPatchView.frameLayout.Bottom + Application.GetRealHeight(125),
                X = Application.GetRealWidth(16),
                Width = Application.GetRealWidth(375 - 32),
                Height = Application.GetRealHeight(20),
                TextID = StringId.jixutianjia,
                TextSize = TextSize.text14,
                TextColor = CSS.CSS_Color.textConfirmColor,
                TextAlignment = TextAlignment.Center,
            };
            this.AddChidren(addBtn);
            //完成
            View.SaveView saveView = new View.SaveView();
            this.AddChidren(saveView.FLayoutView());
            saveView.frameLayout.SetCornerWithSameRadius(Application.GetRealHeight(24), HDLUtils.RectCornerTopLeft | HDLUtils.RectCornerTopRight);
            #endregion
            #region  界面点击事件
            //遥控器名称点击事件
            namePatchView.btnClick.MouseUpEventHandler += (sender, e) => { };
            //所属区域点击事件
            quyuPatchView.btnClick.MouseUpEventHandler += (sender, e) => { };
            //继续添加点击事件
            addBtn.MouseUpEventHandler += (sender, e) =>
            {
HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/BrandList.cs
@@ -261,7 +261,7 @@
                else
                {
                    Method method = new Method();
                    method.ErrorShow(responsePackNew);
                    method.ErrorShow(responsePackNew,"");
                }
            }, id, "品牌红外码库列表");
        }
HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/DeviceSet.cs
@@ -177,9 +177,9 @@
                if (StringId.xiugaimingzi == intValue)
                {
                    List<string> list = new List<string>();
                    for (int b = 0; b < Pir.pirDeviceList.Count; b++)
                    for (int b = 0; b < PirDevice.Pir.pirDeviceList.Count; b++)
                    {
                        list.Add(Pir.pirDeviceList[b].name);
                        list.Add(PirDevice.Pir.pirDeviceList[b].name);
                    }
                    Method methodView = new Method();
                    methodView.EditControlName(StringId.xiugaimingzi, list, pirclick.name, (name, view) =>
@@ -202,12 +202,16 @@
                    TipPopView tipPopView = new TipPopView();
                    tipPopView.TipBox(StringId.tip, text, (dialog) =>
                    {
                        Thread(dialog, (responsePackNew) =>
                        {
                            dialog.Close();
                            UIView(vv);
                        }, "删除", pirclick.deviceId, "");
                                {
                                    var pir = Pir.pirDeviceList.Find((c) => c.deviceId == pirclick.deviceId);
                                    if (pir != null)
                                    {
                                        Pir.pirDeviceList.Remove(pirclick);
                                    }
                                    dialog.Close();
                                    UIView(vv);
                                }, "删除", pirclick.deviceId, "");
                    }, () =>
                    {
                        NewSwitchView(pirclick, vv);
@@ -258,7 +262,7 @@
                        else
                        {
                            Method method = new Method();
                            method.ErrorShow(responsePackNew);
                            method.ErrorShow(responsePackNew,"");
                        }
                    });
HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/EditControl.cs
@@ -84,7 +84,7 @@
                                else
                                {
                                    Method methodError = new Method(); 
                                    methodError.ErrorShow(responsePackNew);
                                    methodError.ErrorShow(responsePackNew,"");
                                }
                            });
HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/Method.cs
@@ -84,7 +84,8 @@
                    if (responsePackNew != null && responsePackNew.Code == "0" && responsePackNew.Data.ToString() != "")
                    {
                        string sid = responsePackNew.Data.ToString();
                        mqttdate = MqttDate(sid);
                        controldata = "";
                        mqttdate = MqttDate("遥控器", sid);
                        if (mqttdate != null)
                        {
                            control.sid = sid;
@@ -180,10 +181,24 @@
                                var pirJosn = Newtonsoft.Json.JsonConvert.DeserializeObject<Pir>(str);
                                if (pirJosn != null)
                                {
                                    if (null == Pir.pirDeviceList.Find((c) => c.deviceId == pirJosn.deviceId))
/* 项目“HDL-ON_iOS”的未合并的更改
在此之前:
                                    if (null == Pir.pirDeviceList.Find((c) => c.deviceId == pirJosn.deviceId))
在此之后:
                                    if (null == list.pirDeviceList.Find((c) => c.deviceId == pirJosn.deviceId))
*/
                                    if (null == PirDevice.Pir.pirDeviceList.Find((c) => c.deviceId == pirJosn.deviceId))
                                    {
                                        Pir.pirDeviceList.Add(pirJosn);
/* 项目“HDL-ON_iOS”的未合并的更改
在此之前:
                                        Pir.pirDeviceList.Add(pirJosn);
在此之后:
                                        list.pirDeviceList.Add(pirJosn);
*/
                                        PirDevice.Pir.pirDeviceList.Add(pirJosn);
                                    }
                                }
@@ -319,6 +334,7 @@
            })
            { IsBackground = true }.Start();
        }
        /// <summary>
        /// 发送命令线程
        /// </summary>
@@ -326,47 +342,159 @@
        /// <param name="action">回调函数</param>
        /// <param name="str">判断字符</param>
        /// <param name="frame">log父控件</param>
        /// <param name="dialog">log父控件</param>
        public void ThreadSend(Control control, Action<HDL_ON.DAL.Server.ResponsePackNew> action, string str, FrameLayout frame, Dialog dialog)
        public void ThreadSend(Control control, Action<ResponsePackNew> action, string str, FrameLayout frame)
        {
            //加载log
            Loading loading = new Loading();
            frame.AddChidren(loading);
            loading.Start();
            ResponsePackNew responsePackNew = null;
            new System.Threading.Thread(() =>
            {
                try
                {
                    if (str == "删除")
                    {
                        responsePackNew = PirSend.DeleteDevice(control.deviceId);
                    }
                    else if (str == "修改名称")
                    {
                        responsePackNew = PirSend.DeviceRename(control.deviceId, control.name);
                    }
                    else if (str == "删除按键") {
                       // responsePackNew = PirSend.CodeRemove(control.deviceId, control.name);
                    }
                }
                catch { }
                finally
                {
                    Application.RunOnMainThread(() =>
                    {
                        loading.Hide();
                        if (responsePackNew != null && responsePackNew.Code == "0" && responsePackNew.Data.ToString() != "")
                        {
                            action(responsePackNew);
                        }
                        else
                        {
                            Method method = new Method();
                            method.ErrorShow(responsePackNew, "");
                        }
                    });
                }
            })
            { IsBackground = true }.Start();
        }
        /// <summary>
        /// MQTT主题推送下来的数据
        /// 发送命令线程
        /// </summary>
        public static string mqttdata = "";
        /// <param name="control">发送数据对象</param>
        /// <param name="action">回调函数</param>
        /// <param name="str">判断字符</param>
        /// <param name="dialog">log父控件</param>
        public void ThreadSend(Control control, Action<ResponsePackNew> action, string str,Dialog dialog)
        {
            //加载log
            Loading loading = new Loading();
            dialog.AddChidren(loading);
            ResponsePackNew responsePackNew = null;
            loading.Start();
            new System.Threading.Thread(() =>
            {
                try
                {
                    if (str == "删除")
                    {
                        responsePackNew = PirSend.DeleteDevice(control.deviceId);
                    }
                    else if (str == "修改名称")
                    {
                        responsePackNew = PirSend.DeviceRename(control.deviceId, control.name);
                    }
                    else if (str == "删除按键")
                    {
                       // responsePackNew = PirSend.CodeRemove(control.deviceId, control.name);
                    }
                }
                catch { }
                finally
                {
                    Application.RunOnMainThread(() =>
                    {
                        loading.Hide();
                        if (responsePackNew != null && responsePackNew.Code == "0" && responsePackNew.Data.ToString() != "")
                        {
                            action(responsePackNew);
                        }
                        else
                        {
                            Method method = new Method();
                            method.ErrorShow(responsePackNew, "");
                        }
                    });
                }
            })
            { IsBackground = true }.Start();
        }
        /// <summary>
        /// MQTT主题推送下来的遥控器数据
        /// </summary>
        public static string controldata = "";
        /// <summary>
        /// MQTT主题推送下来按键的数据
        /// </summary>
        public static string buttondata = "";
        /// <summary>
        /// 判断这个主题是否是添加遥控器主题
        /// </summary>
        /// <param name="text">表示不同主题数据</param>
        /// <param name="sid">唯一标识</param>
        /// <param name="timeValue">等待时间值</param>
        /// <returns></returns>
        public Cloud MqttDate(string sid, int timeValue = 10)
        public Cloud MqttDate(string text, string sid, int timeValue = 10)
        {
            Cloud cloud = null;
            var dateTime = DateTime.Now;
            while ((DateTime.Now - dateTime).TotalMilliseconds < timeValue * 1000)
            {
                if (!string.IsNullOrEmpty(mqttdata))
                string str = "";
                if (text == "遥控器")
                {
                    str = controldata;
                }
                else if (text == "按键")
                {
                    str = buttondata;
                }
                if (!string.IsNullOrEmpty(controldata))
                {
                    try
                    {
                        var cloudjson = Newtonsoft.Json.JsonConvert.DeserializeObject<Cloud>(mqttdata);
                        var cloudjson = Newtonsoft.Json.JsonConvert.DeserializeObject<Cloud>(str);
                        for (int i = 0; i < cloudjson.objects.Count; i++)
                        {
                            var objects = cloudjson.objects[i];
                            if (sid == objects.sid)
                            {
                                cloud = cloudjson;
                                mqttdata = "";
                                break;
                            }
                        }
                        if (cloud!=null)
                        if (cloud != null)
                        {
                            break;
                        }
@@ -381,44 +509,63 @@
        /// 错误码提示
        /// </summary>
        /// <param name="responsePackNew"></param>
        /// <param name="str"></param>
        public void ErrorShow(ResponsePackNew responsePackNew=null, string str = "")
        /// <param name="text">自定义错误文本</param>
        /// <param name="popValue">弹框类型(1=闪烁弹框)</param>
        public void ErrorShow(ResponsePackNew responsePackNew, string text, int popValue = 1)
        {
            if (str == "删除遥控器")
            string str = "";
            if (text == "删除遥控器")
            {
                new Intelligence.Automation.LogicView.TipPopView().FlashingBox(Language.StringByID(StringId.delFail));
            } else if (str == "读取红外宝列表失败") {
                new Intelligence.Automation.LogicView.TipPopView().FlashingBox("读取红外宝列表失败");
                str = Language.StringByID(StringId.delFail);
            }
            else if (text == "读取红外宝列表失败")
            {
                str = "读取红外宝列表失败"; //Language.StringByID(StringId.delFail);
            }
            else
            {
                if (responsePackNew != null)
                {
                    switch (responsePackNew.Code)
                    {
                        case "14005":
                            {
                                new Intelligence.Automation.LogicView.TipPopView().FlashingBox(Language.StringByID(StringId.gatewayNotOnline));
                                str = Language.StringByID(StringId.gatewayNotOnline);
                            }
                            break;
                        case "10807":
                            {
                                //红外宝下遥控器超过最大(10个)数量限制
                                new Intelligence.Automation.LogicView.TipPopView().FlashingBox("红外宝下遥控器超过最大(10个)数量限制");
                                str = "红外宝下遥控器超过最大(10个)数量限制";// Language.StringByID(StringId.gatewayNotOnline);
                            }
                            break;
                        case "2":
                            {
                                str = "系统维护中~请稍后再试~";
                            }
                            break;
                        default:
                            {
                                new Intelligence.Automation.LogicView.TipPopView().FlashingBox(Language.StringByID(StringId.saveFail));
                                str ="获取数据失败" ;// Language.StringByID(StringId.saveFail);
                            }
                            break;
                    }
                }
            }
            switch (popValue)
            {
                case 1:
                    {
                        new Intelligence.Automation.LogicView.TipPopView().FlashingBox(str);
                    }
                    break;
                case 2: { } break;
                case 3: { } break;
            }
        }
HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/Pir.cs
@@ -5,7 +5,7 @@
namespace HDL_ON.UI.UI2.PersonalCenter.PirDevice
{
    [System.Serializable]
    public class Pir : Entity.Function
    public class Pir : Entity.Function
    {
        /// <summary>
        /// 红外宝列表
HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/PirMain.cs
@@ -10,7 +10,6 @@
        public PirMain()
        {
            Tag = "PirMain";
        }
        /// <summary>
        /// 临时储存设备类型列表
@@ -28,117 +27,10 @@
            middFLayout.Y = Application.GetRealHeight(64);
            middFLayout.Height = Application.GetRealHeight(667 - 64);
            this.AddChidren(middFLayout);
            FrameLayout pirDeviceFLayout = new FrameLayout();
            pirDeviceFLayout.Y = Application.GetRealHeight(12);
            pirDeviceFLayout.X = Application.GetRealWidth(16);
            pirDeviceFLayout.Width = Application.GetRealWidth(343);
            pirDeviceFLayout.Height = Application.GetRealHeight(187);
            pirDeviceFLayout.BackgroundColor = CSS.CSS_Color.view;
            pirDeviceFLayout.Radius = (uint)Application.GetRealHeight(12);
            middFLayout.AddChidren(pirDeviceFLayout);
            //设备管理
            Button text1Btn = new Button
            {
                Y = Application.GetRealHeight(11),
                X = Application.GetRealWidth(16),
                Width = Application.GetRealWidth(120),
                Height = Application.GetRealHeight(20),
                TextSize = TextSize.text14,
                TextColor = CSS.CSS_Color.textConfirmColor,
                TextAlignment = TextAlignment.CenterLeft,
                TextID = StringId.shebeigaunli,
                IsBold = true,
            };
            pirDeviceFLayout.AddChidren(text1Btn);
            Button pirIcon = new Button
            {
                Y = Application.GetRealHeight(47),
                X = Application.GetRealWidth(28),
                Width = Application.GetRealWidth(66),
                Height = Application.GetRealWidth(66),
                UnSelectedImagePath = "PirIcon/Infraredtreasure.png",
            };
            pirDeviceFLayout.AddChidren(pirIcon);
            //mini智能遥控器
            Button text2Btn = new Button
            {
                Y = Application.GetRealHeight(70),
                X = Application.GetRealWidth(112),
                Width = Application.GetRealWidth(120),
                Height = Application.GetRealHeight(20),
                TextSize = TextSize.text14,
                TextColor = CSS.CSS_Color.textTipColor,
                TextAlignment = TextAlignment.CenterLeft,
                Text = "mini智能遥控器",
            };
            pirDeviceFLayout.AddChidren(text2Btn);
            //
            Button numberDeviceBtn = new Button
            {
                Y = Application.GetRealHeight(137),
                X = Application.GetRealWidth(32),
                Width = Application.GetRealWidth(100),
                Height = Application.GetRealHeight(20),
                TextSize = TextSize.text14,
                TextColor = CSS.CSS_Color.textColor,
                TextAlignment = TextAlignment.CenterLeft,
                Text = "1" + Language.StringByID(StringId.ge),
                IsBold = true,
            };
            pirDeviceFLayout.AddChidren(numberDeviceBtn);
            //当前红外遥控设备
            Button numberDeviceTextBtn = new Button
            {
                Y = numberDeviceBtn.Bottom + Application.GetRealHeight(4),
                X = Application.GetRealWidth(32),
                Width = Application.GetRealWidth(100),
                Height = Application.GetRealHeight(14),
                TextSize = TextSize.text10,
                TextColor = CSS.CSS_Color.textCancelColor,
                TextAlignment = TextAlignment.CenterLeft,
                TextID = StringId.dangqianhongwaishebei,
            };
            pirDeviceFLayout.AddChidren(numberDeviceTextBtn);
            //
            Button currDeviceNumberControlBtn = new Button
            {
                Y = Application.GetRealHeight(137),
                X = Application.GetRealWidth(198),
                Width = Application.GetRealWidth(80),
                Height = Application.GetRealHeight(20),
                TextSize = TextSize.text14,
                TextColor = CSS.CSS_Color.textColor,
                TextAlignment = TextAlignment.CenterLeft,
                Text = "1" + Language.StringByID(StringId.ge),
                IsBold = true,
            };
            pirDeviceFLayout.AddChidren(currDeviceNumberControlBtn);
            //已添加遥控器
            Button currDeviceNumberControlTextBtn = new Button
            {
                Y = currDeviceNumberControlBtn.Bottom + Application.GetRealHeight(4),
                X = Application.GetRealWidth(198),
                Width = Application.GetRealWidth(80),
                Height = Application.GetRealHeight(14),
                TextSize = TextSize.text10,
                TextColor = CSS.CSS_Color.textCancelColor,
                TextAlignment = TextAlignment.CenterLeft,
                TextID = StringId.yitianjiayaokongqi,
            };
            pirDeviceFLayout.AddChidren(currDeviceNumberControlTextBtn);
            ///红外宝点击事件
            FrameLayout clickFLayout = new FrameLayout();
            pirDeviceFLayout.AddChidren(clickFLayout);
            View.MainView mainView = new View.MainView();
            mainView.Show(middFLayout);
            FrameLayout deviceListFLayout = new FrameLayout();
            deviceListFLayout.Y = pirDeviceFLayout.Bottom + Application.GetRealHeight(12);
            deviceListFLayout.Y = mainView.pirDeviceFLayout.Bottom + Application.GetRealHeight(12);
            deviceListFLayout.X = Application.GetRealWidth(16);
            deviceListFLayout.Width = Application.GetRealWidth(343);
            deviceListFLayout.Height = Application.GetRealHeight(328);
@@ -172,11 +64,6 @@
                Text = "mini智能遥控器",
            };
            deviceListFLayout.AddChidren(deviceNameBtn);
            if (Pir.pirDeviceList.Count != 0)
            {
                deviceNameBtn.Text = Pir.pirDeviceList[0].name;
                Pir.currPir = Pir.pirDeviceList[0];
            }
            //下拉图标
            var dropdownIconBtn = new Button
@@ -188,107 +75,57 @@
                UnSelectedImagePath = "PirIcon/dropdown.png",
            };
            deviceListFLayout.AddChidren(dropdownIconBtn);
            #endregion
            deviceNameBtn.MouseUpEventHandler += (sender, e) =>
            if (Pir.pirDeviceList.Count != 0)
            {
                #region 区域弹框界面
                FrameLayout fLayout = new FrameLayout
                {
                    BackgroundColor = CSS.CSS_Color.viewTrans60lucence,
                };
                this.AddChidren(fLayout);
                fLayout.MouseUpEventHandler += (sender1, e1) =>
                {
                    fLayout.RemoveFromParent();
                };
                FrameLayout iconFLyout = new FrameLayout
                {
                    X = Application.GetRealWidth(205),
                    Y = Application.GetRealHeight(314),
                    Width = Application.GetRealWidth(160),
                    Height = Application.GetRealHeight(21 + 44),
                    //BackgroundImagePath = "LogicIcon/bjicon.png",
                };
                fLayout.AddChidren(iconFLyout);
                FrameLayout textFLyout = new FrameLayout
                {
                    X = Application.GetRealWidth(8),
                    Y = Application.GetRealHeight(14),
                    Width = Application.GetRealWidth(144),
                    Height = Application.GetRealHeight(44),
                };
                VerticalScrolViewLayout vv = new VerticalScrolViewLayout
                {
                    X = Application.GetRealWidth(8),
                    Y = Application.GetRealHeight(14),
                    Width = Application.GetRealWidth(144),
                    Height = Application.GetRealHeight(44 * 4),
                };
                if (Pir.pirDeviceList.Count > 4)
                {
                    iconFLyout.Height = Application.GetRealHeight(21 + 44 * 4);
                    iconFLyout.AddChidren(vv);
                    iconFLyout.BackgroundImagePath = "PirIcon/4.png";
                }
                else
                {
                    iconFLyout.AddChidren(textFLyout);
                    iconFLyout.Height = Application.GetRealHeight(21 + 44 * Pir.pirDeviceList.Count);
                    textFLyout.Height = Application.GetRealHeight(44 * Pir.pirDeviceList.Count);
                    iconFLyout.BackgroundImagePath = $"PirIcon/{Pir.pirDeviceList.Count}.png";
                }
                #endregion
                //默认第一个红外宝
                Pir.currPir = Pir.pirDeviceList[0];
                int sum = 0;
                for (int i = 0; i < Pir.pirDeviceList.Count; i++)
                {
                    var pirJson = Pir.pirDeviceList[i];
                    View.PirNameView pirNameView = new View.PirNameView();
                    if (Pir.pirDeviceList.Count > 4)
                    {
                        vv.AddChidren(pirNameView.FLayoutView());
                    }
                    else
                    {
                        pirNameView.frameLayout.Y = Application.GetRealHeight(i * 44);
                        textFLyout.AddChidren(pirNameView.FLayoutView());
                    }
                    pirNameView.btnName.Text = pirJson.name;
                    pirNameView.btnClick.Tag = pirJson;
                    pirNameView.btnClick.MouseUpEventHandler += (sender2, e2) =>
                    {
                        fLayout.RemoveFromParent();
                        deviceNameBtn.Text = pirJson.name;
                        Pir.currPir = pirJson;
                    };
                    if (Pir.pirDeviceList.Count - 1 == i)
                    {
                        ///改变最后那条一个线的颜色,界面显示效果作用;
                        pirNameView.btnLine.BackgroundColor = CSS.CSS_Color.view;
                    }
                    //查找
                    sum += Pir.pirDeviceList[i].FunctioList.Count;
                }
            };
            clickFLayout.MouseUpEventHandler += (sender, e) =>
                deviceNameBtn.Text = Pir.pirDeviceList[0].name;
                mainView.numberDeviceBtn.Text = Pir.pirDeviceList.Count.ToString() + Language.StringByID(StringId.ge);
                mainView.currDeviceNumberControlBtn.Text = sum.ToString() + Language.StringByID(StringId.ge);
            }
            ///设备管理的点击事件
            mainView.clickBtn.MouseUpEventHandler += (sender, e) =>
            {
                DeviceSet deviceSet = new DeviceSet();
                MainPage.BasePageView.AddChidren(deviceSet);
                deviceSet.Show(() => {
                deviceSet.Show(() =>
                {
                    if (Pir.currPir != null)
                    {
                        deviceNameBtn.Text = Pir.currPir.name;
                        mainView.numberDeviceBtn.Text = Pir.pirDeviceList.Count.ToString() + Language.StringByID(StringId.ge);
                    }
                    int sum = 0;
                    for (int i = 0; i < Pir.pirDeviceList.Count; i++)
                    {
                        sum += Pir.pirDeviceList[i].FunctioList.Count;
                    }
                    mainView.currDeviceNumberControlBtn.Text = sum.ToString() + Language.StringByID(StringId.ge);
                });
                MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
            };
            #endregion
            ///红外名称的点击事件
            deviceNameBtn.MouseUpEventHandler += (sender, e) =>
            {
                View.HeigthChangeView heigthChangeView = new View.HeigthChangeView();
                heigthChangeView.Show(this, Pir.pirDeviceList, (pirJson) =>
                {
                    deviceNameBtn.Text = pirJson.name;
                    Pir.currPir = pirJson;
                });
            };
            int line = 0;
            for (int i = 1, j = 0; i <= 7; i++, j++)
            {
@@ -347,45 +184,60 @@
                    }
                    else
                    {
                        var strings = GetTypeString(if_value).Split('-');
                        var jobDeviceType = DeviceTypeList.Find((c) => c.deviceType == strings[0]);
                        if (jobDeviceType == null)
                        if (DeviceTypeList.Count == 0)
                        {
                            return;
                            GetDeviceTypeList(true, () =>
                             {
                                 DeviceTypeViewClick(if_value);
                             });
                        }
                        GetBrandList(jobDeviceType.id, (brandList) =>
                        else
                        {
                            var brandSupportStrList = GetBrandSupport(if_value);
                            var strList = new List<string>();
                            for (int str = 0; str < brandList.Count; str++)
                            {
                                string s = brandList[str].brandName;
                                var bool_if = brandSupportStrList.Find((c) => s.Contains(c));
                                if (bool_if != null)
                                {
                                    strList.Add(s);
                                }
                            }
                            Application.RunOnMainThread(() =>
                            {
                                BrandList brandObj = new BrandList();
                                MainPage.BasePageView.AddChidren(brandObj);
                                brandObj.Show(brandList, strList, strings[1]);
                                MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
                            });
                        });
                            DeviceTypeViewClick(if_value);
                        }
                    }
                };
            }
        }
        /// <summary>
        /// 设备进入下一级方法
        /// </summary>
        /// <param name="if_value"></param>
        private void DeviceTypeViewClick(int if_value)
        {
            var strings = GetTypeString(if_value).Split('-');
            var jobDeviceType = DeviceTypeList.Find((c) => c.deviceType == strings[0]);
            if (jobDeviceType == null)
            {
                return;
            }
            GetBrandList(jobDeviceType.id, (brandList) =>
            {
                var brandSupportStrList = GetBrandSupport(if_value);
                var strList = new List<string>();
                for (int str = 0; str < brandList.Count; str++)
                {
                    string s = brandList[str].brandName;
                    var bool_if = brandSupportStrList.Find((c) => s.Contains(c));
                    if (bool_if != null)
                    {
                        strList.Add(s);
                    }
                }
                Application.RunOnMainThread(() =>
                {
                    BrandList brandObj = new BrandList();
                    MainPage.BasePageView.AddChidren(brandObj);
                    brandObj.Show(brandList, strList, strings[1]);
                    MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
                });
                };
            }
            GetDeviceTypeList();
            });
        }
        /// <summary>
        /// 获取品牌支持
        /// </summary>
@@ -551,7 +403,9 @@
        /// <summary>
        /// 读取红外设备类型列表
        /// </summary>
        private void GetDeviceTypeList()
        /// <param name="tag">标识要不要提示(true=提示)</param>
        /// <param name="action">回调函数</param>
        public  void GetDeviceTypeList(bool tag, Action action)
        {
            PirSend.GetDeviceTypesList(this, (responsePackNew) =>
            {
@@ -574,18 +428,22 @@
                            }
                        }
                    }
                    action();
                }
                else
                {
                    Method method = new Method();
                    method.ErrorShow(responsePackNew);
                    if (tag)
                    {
                        Method method = new Method();
                        method.ErrorShow(responsePackNew, "");
                    }
                }
            }, "", "设备类型列表");
        }
        /// <summary>
        /// 读取红外设备类型的品牌列表
        /// </summary>
        private void GetBrandList(string id, Action<List<Brand>> actionBrand)
        public  void GetBrandList(string id, Action<List<Brand>> actionBrand)
        {
            List<Brand> brandList = new List<Brand>();
            PirSend.GetDeviceTypesList(this, (responsePackNew) =>
@@ -614,7 +472,7 @@
                else
                {
                    Method method = new Method();
                    method.ErrorShow(responsePackNew);
                    method.ErrorShow(responsePackNew, "");
                }
            }, id, "品牌列表");
        }
HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/PirSend.cs
@@ -247,7 +247,7 @@
                        url = "/smart-footstone/app/ir/code/list";
                        jObject.Add("brandId", id);
                    }
                    responsePackNew = RequestServerhomeId(jObject, url);
                    responsePackNew = RequestServerhomeId(jObject, url,5);
                }
                catch { }
                finally
HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/View/HeigthChangeView.cs
New file
@@ -0,0 +1,113 @@
using System;
using Shared;
using System.Collections.Generic;
namespace HDL_ON.UI.UI2.PersonalCenter.PirDevice.View
{
    public class HeigthChangeView
    {
        /// <summary>
        /// 背景
        /// </summary>
        FrameLayout fLayout = new FrameLayout
        {
            BackgroundColor = CSS.CSS_Color.viewTrans60lucence,
        };
        /// <summary>
        ///
        /// </summary>
        FrameLayout iconFLyout = new FrameLayout
        {
            X = Application.GetRealWidth(205),
            Y = Application.GetRealHeight(314),
            Width = Application.GetRealWidth(160),
            Height = Application.GetRealHeight(21 + 44),
            //BackgroundImagePath = "LogicIcon/bjicon.png",
        };
        /// <summary>
        ///
        /// </summary>
        FrameLayout textFLyout = new FrameLayout
        {
            X = Application.GetRealWidth(8),
            Y = Application.GetRealHeight(14),
            Width = Application.GetRealWidth(144),
            Height = Application.GetRealHeight(44),
        };
        /// <summary>
        ///
        /// </summary>
        VerticalScrolViewLayout vv = new VerticalScrolViewLayout
        {
            X = Application.GetRealWidth(8),
            Y = Application.GetRealHeight(14),
            Width = Application.GetRealWidth(144),
            Height = Application.GetRealHeight(44 * 4),
        };
        /// <summary>
        /// View方法
        /// </summary>
        /// <param name="frame"></param>
        /// <param name="list"></param>
        /// <param name="action"></param>
        public void Show(FrameLayout frame, List<Pir> list, Action<Pir> action)
        {
            frame.AddChidren(fLayout);
            fLayout.AddChidren(iconFLyout);
            fLayout.MouseUpEventHandler += (sender1, e1) =>
            {
                fLayout.RemoveFromParent();
            };
            if (list.Count > 4)
            {
                iconFLyout.Height = Application.GetRealHeight(21 + 44 * 4);
                iconFLyout.AddChidren(vv);
                iconFLyout.BackgroundImagePath = "PirIcon/4.png";
            }
            else
            {
                iconFLyout.AddChidren(textFLyout);
                iconFLyout.Height = Application.GetRealHeight(21 + 44 * list.Count);
                textFLyout.Height = Application.GetRealHeight(44 * list.Count);
                iconFLyout.BackgroundImagePath = $"PirIcon/{list.Count}.png";
            }
            for (int i = 0; i < list.Count; i++)
            {
                var pirJson = list[i];
                View.PirNameView pirNameView = new View.PirNameView();
                if (list.Count > 4)
                {
                    vv.AddChidren(pirNameView.FLayoutView());
                }
                else
                {
                    pirNameView.frameLayout.Y = Application.GetRealHeight(i * 44);
                    textFLyout.AddChidren(pirNameView.FLayoutView());
                }
                pirNameView.btnName.Text = pirJson.name;
                pirNameView.btnClick.Tag = pirJson;
                pirNameView.btnClick.MouseUpEventHandler += (sender2, e2) =>
                {
                    var pir = pirNameView.btnClick.Tag as Pir;
                    action(pir);
                    fLayout.RemoveFromParent();
                    //deviceNameBtn.Text = pirJson.name;
                    //Pir.currPir = pirJson;
                };
                if (list.Count - 1 == i)
                {
                    ///改变最后那条一个线的颜色,界面显示效果作用;
                    pirNameView.btnLine.BackgroundColor = CSS.CSS_Color.view;
                }
            }
        }
    }
}
HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/View/MainView.cs
New file
@@ -0,0 +1,143 @@
using System;
using HDL_ON.UI.UI2.Intelligence.Automation.LogicView;
using Shared;
namespace HDL_ON.UI.UI2.PersonalCenter.PirDevice.View
{
    public class MainView
    {
        /// <summary>
        /// 主空间
        /// </summary>
        public FrameLayout pirDeviceFLayout = new FrameLayout
        {
            Y = Application.GetRealHeight(12),
            X = Application.GetRealWidth(16),
            Width = Application.GetRealWidth(343),
            Height = Application.GetRealHeight(187),
            BackgroundColor = CSS.CSS_Color.view,
            Radius = (uint)Application.GetRealHeight(12),
        };
        /// <summary>
        /// 设备管理
        /// </summary>
        public Button text1Btn = new Button
        {
            Y = Application.GetRealHeight(11),
            X = Application.GetRealWidth(16),
            Width = Application.GetRealWidth(120),
            Height = Application.GetRealHeight(20),
            TextSize = TextSize.text14,
            TextColor = CSS.CSS_Color.textConfirmColor,
            TextAlignment = TextAlignment.CenterLeft,
            TextID = StringId.shebeigaunli,
            IsBold = true,
        };
        /// <summary>
        /// 图标
        /// </summary>
        public Button pirIcon = new Button
        {
            Y = Application.GetRealHeight(47),
            X = Application.GetRealWidth(28),
            Width = Application.GetRealWidth(66),
            Height = Application.GetRealWidth(66),
            UnSelectedImagePath = "PirIcon/Infraredtreasure.png",
        };
        /// <summary>
        /// mini智能遥控器
        /// </summary>
        public Button text2Btn = new Button
        {
            Y = Application.GetRealHeight(70),
            X = Application.GetRealWidth(112),
            Width = Application.GetRealWidth(120),
            Height = Application.GetRealHeight(20),
            TextSize = TextSize.text14,
            TextColor = CSS.CSS_Color.textTipColor,
            TextAlignment = TextAlignment.CenterLeft,
            Text = "mini智能遥控器",
        };
        /// <summary>
        /// 红外宝数量
        /// </summary>
        public Button numberDeviceBtn = new Button
        {
            Y = Application.GetRealHeight(137),
            X = Application.GetRealWidth(32),
            Width = Application.GetRealWidth(100),
            Height = Application.GetRealHeight(20),
            TextSize = TextSize.text14,
            TextColor = CSS.CSS_Color.textColor,
            TextAlignment = TextAlignment.CenterLeft,
            Text = "1" + Language.StringByID(StringId.ge),
            IsBold = true,
        };
        /// <summary>
        /// 当前红外遥控设备
        /// </summary>
        public Button numberDeviceTextBtn = new Button
        {
            Y = Application.GetRealHeight(137 + 20) + Application.GetRealHeight(4),
            X = Application.GetRealWidth(32),
            Width = Application.GetRealWidth(100),
            Height = Application.GetRealHeight(14),
            TextSize = TextSize.text10,
            TextColor = CSS.CSS_Color.textCancelColor,
            TextAlignment = TextAlignment.CenterLeft,
            TextID = StringId.dangqianhongwaishebei,
        };
        /// <summary>
        /// 所有红外宝的遥控器数量
        /// </summary>
        public Button currDeviceNumberControlBtn = new Button
        {
            Y = Application.GetRealHeight(137),
            X = Application.GetRealWidth(198),
            Width = Application.GetRealWidth(80),
            Height = Application.GetRealHeight(20),
            TextSize = TextSize.text14,
            TextColor = CSS.CSS_Color.textColor,
            TextAlignment = TextAlignment.CenterLeft,
            Text = "1" + Language.StringByID(StringId.ge),
            IsBold = true,
        };
        /// <summary>
        /// 已添加遥控器
        /// </summary>
        public Button currDeviceNumberControlTextBtn = new Button
        {
            Y = Application.GetRealHeight(137 + 20) + Application.GetRealHeight(4),
            X = Application.GetRealWidth(198),
            Width = Application.GetRealWidth(80),
            Height = Application.GetRealHeight(14),
            TextSize = TextSize.text10,
            TextColor = CSS.CSS_Color.textCancelColor,
            TextAlignment = TextAlignment.CenterLeft,
            TextID = StringId.yitianjiayaokongqi,
        };
        ///红外宝点击事件
        public Button clickBtn = new Button();
        public void Show(FrameLayout middFLayout)
        {
            middFLayout.AddChidren(pirDeviceFLayout);
            pirDeviceFLayout.AddChidren(text1Btn);
            pirDeviceFLayout.AddChidren(pirIcon);
            pirDeviceFLayout.AddChidren(text2Btn);
            pirDeviceFLayout.AddChidren(numberDeviceBtn);
            pirDeviceFLayout.AddChidren(numberDeviceTextBtn);
            pirDeviceFLayout.AddChidren(currDeviceNumberControlBtn);
            pirDeviceFLayout.AddChidren(currDeviceNumberControlTextBtn);
            pirDeviceFLayout.AddChidren(clickBtn);
        }
    }
}