From 794b0967171bd975bb454287616aca170546f8e1 Mon Sep 17 00:00:00 2001
From: 陈嘉乐 <cjl@hdlchina.com.cn>
Date: 星期二, 16 三月 2021 17:15:09 +0800
Subject: [PATCH] Merge branch 'WJC' of http://172.16.1.23:6688/r/~wxr/HDL_APP_Project into WJC
---
HDL_ON/UI/UI2/4-PersonalCenter/AddFunction/BrandListPage.cs | 227 ++
HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/lightrgbw_blue.png | 0
HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/lightdimming_blue.png | 0
HDL-ON_Android/Assets/Language.ini | 183 +
HDL_ON/UI/UI0-Public/TopViewDivBLL.cs | 35
HDL_ON/Common/ApiUtlis.cs | 15
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/electricalracks.png | 0
HDL-ON_Android/Assets/Phone/PersonalCenter/AddDevice/UploadToClound.png | 0
HDL_ON/UI/UI2/4-PersonalCenter/AddFunction/DeviceListPage.cs | 164 +
HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricaltyqborgovyzytytz_white.png | 0
HDL-ON_iOS/Resources/Phone/PersonalCenter/AddDevice/MiniRemoteControlMenuIcon.png | 0
HDL_ON/HDL_ON.projitems | 17
HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/curtainroller_white.png | 0
HDL-ON_Android/Assets/Phone/PirIcon/projector.png | 0
HDL-ON_iOS/Resources/Phone/PirIcon/adddevice.png | 0
HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/sensortemperature.png | 0
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/irac.png | 0
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/irtv_white.png | 0
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/airFreshstandard.png | 0
HDL-ON_iOS/Resources/Phone/PirIcon/search.png | 0
HDL_ON/UI/UI2/4-PersonalCenter/PersonalCenterPageBLL.cs | 27
HDL_ON/UI/UI0-Stan/Controls/NormalControls/NormalViewControl.cs | 2
HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/lightcct_blue.png | 0
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/curtaintrietex_blue.png | 0
HDL_ON/UI/UI0-Public/TopViewDiv.cs | 28
HDL_ON/UI/UI0-Stan/Logic/HdlWifiLogic.cs | 99 +
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/curtaintrietex_white.png | 0
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/electricaltyqborgovyzytytz.png | 0
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/curtainswitch.png | 0
HDL-ON_Android/Assets/Phone/PirIcon/next.png | 0
HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/irmodule.png | 0
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/lightswitch_white.png | 0
DLL/IOS/HdlBluWi.dll | 0
HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/airFreshstandard.png | 0
HDL-ON_Android/Assets/Phone/PersonalCenter/AddDevice/MiniRemoteControlBigPictrue.png | 0
HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/curtainshades.png | 0
HDL_ON/UI/UI0-Stan/Form/Base/CommonFormBase.cs | 13
HDL_ON/UI/UI2/.DS_Store | 0
HDL-ON_Android/Assets/Phone/PirIcon/addlbuton.png | 0
HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/curtainswitch_white.png | 0
HDL_ON/UI/UI0-Stan/Controls/CompoundControls/ProgressRowBar.cs | 251 ++
HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricalfan_white.png | 0
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/sensorsmoke.png | 0
HDL-ON_iOS/.DS_Store | 0
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/irac_blue.png | 0
HDL_ON/UI/UI1-Login/ForgetPasswordPageBLL.cs | 1
HDL_ON/UI/UI2/4-PersonalCenter/AddFunction/AddDevciePage.cs | 144 +
HDL-ON_iOS/Resources/Language.ini | 184 +
HDL_ON/UI/UI0-Stan/Logic/HdlBluetoothIOSLogic.cs | 489 +++++
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricalQ1RsefNf91tIXyyQ_white.png | 0
HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/electricalkoiGhMKwLf2ZP81g.png | 0
HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricalQ1RsefNf91tIXyyQ_white.png | 0
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/electricalkoiGhMKwLf2ZP81g.png | 0
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/sensorgas.png | 0
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/electricalai6HtccKFIw3dxo3.png | 0
HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/musicstandard.png | 0
HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/irac.png | 0
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/electricalQ1RsefNf91tIXyyQ.png | 0
HDL_ON/UI/UI2/4-PersonalCenter/AddDevice/AddMiniRemoteControlDirection1Page.cs | 78
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricaltyqborgovyzytytz_white.png | 0
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/lightrgb_blue.png | 0
HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/electricalQ1RsefNf91tIXyyQ.png | 0
HDL_ON/Common/FileUtlis.cs | 7
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/irlearn.png | 0
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/lightrgbw_blue.png | 0
HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/curtainroller_blue.png | 0
HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/electricalai6HtccKFIw3dxo3.png | 0
HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/sensorwater.png | 0
HDL-ON_iOS/Resources/Phone/PersonalCenter/AddDevice/ConnectSuccess.png | 0
HDL_ON/.DS_Store | 0
HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/musicstandard_blue.png | 0
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/lightswitch.png | 0
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/acstandard_white.png | 0
HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/electricalsocket.png | 0
HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/floorHeatstandard_blue.png | 0
HDL-ON_iOS/Resources/Phone/PersonalCenter/AddDevice/ConnectSuccessSelect.png | 0
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/curtainshades_white.png | 0
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricalfan_blue.png | 0
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/irmodule.png | 0
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/lightrgb.png | 0
HDL_ON/UI/UI2/4-PersonalCenter/AddDevice/AddMiniRemoteControlDirection4Page.cs | 533 +++++
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/sensorhumidity.png | 0
HDL-ON_iOS/Info.plist | 6
HDL_ON/UI/UI2/FuntionControlView/Electrical/TuyaWeepRobotPage.cs | 84
HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/lightrgb_blue.png | 0
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/floorHeatstandard_blue.png | 0
HDL_ON/Common/HDLCommon.cs | 6
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricaltyqborgovyzytytz_blue.png | 0
HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/irac_blue.png | 0
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/curtainshades_blue.png | 0
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/curtainswitch_white.png | 0
HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/lightcct_white.png | 0
HDL_ON/UI/UI1-Login/LoginPage.cs | 2
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/lightcct.png | 0
HDL-ON_Android/Assets/Phone/PirIcon/icon1.png | 0
HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/lightrgb_white.png | 0
HDL_ON/UI/.DS_Store | 0
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/sensorpm25.png | 0
HDL-ON_iOS/Resources/Phone/FunctionIcon/AC/More.png | 0
HDL-ON_iOS/Resources/Phone/PirIcon/projector.png | 0
HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/sensorgas.png | 0
HDL-ON_Android/Assets/Phone/PersonalCenter/AddDevice/UploadToCloundSelect.png | 0
HDL-ON_iOS/Resources/Phone/PirIcon/addlbuton.png | 0
HDL_ON/Entity/Function/Function.cs | 69
HDL_ON/UI/UI2/2-Classification/FunctionControlZone.cs | 139
HDL_ON/UI/UI2/4-PersonalCenter/AddDevice/AddMiniRemoteControlDirection2Page.cs | 308 +++
HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/irtv.png | 0
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/lightdimming.png | 0
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/lightcct_blue.png | 0
HDL-ON_Android/Assets/Phone/PirIcon/del.png | 0
HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/sensorpm25.png | 0
HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/irlearn_blue.png | 0
HDL_ON/UI/UI2/FuntionControlView/AC/AcControlPage.cs | 142 +
HDL_ON/UI/UI0-Stan/Controls/BaseControl/TextInputBase.cs | 2
HDL-ON_Android/Assets/Phone/Public/ProgressMsg.png | 0
HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/airFreshstandard_blue.png | 0
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricalsocket_white.png | 0
HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/irtv_blue.png | 0
HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/lightrgbw_white.png | 0
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/airFreshstandard_white.png | 0
HDL_ON/UI/UI0-Public/PublicAssmeblyBLL.cs | 5
HDL_ON/UI/UI2/1-HomePage/HomePage.cs | 108
HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/lightswitch.png | 0
HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/lightdimming.png | 0
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/musicstandard_white.png | 0
HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/airFreshstandard_white.png | 0
HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/curtaintrietex_white.png | 0
HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricalracks_white.png | 0
HDL-ON_Android/Assets/Phone/PirIcon/tv.png | 0
HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/sensortvoc.png | 0
HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricalsocket_white.png | 0
HDL-ON_Android/Assets/Phone/PirIcon/fan.png | 0
HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/acstandard_blue.png | 0
HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/curtainshades_blue.png | 0
HDL_ON/UI/MainPage.cs | 10
HDL-ON_Android/Assets/Phone/PirIcon/STB.png | 0
HDL_ON/UI/UI0-Stan/Form/Base/EditorCommonForm.cs | 111 +
HDL_ON/UI/UI0-Stan/Logic/HdlCloudReceiveLogic.cs | 164 +
DLL/Android/AndriodBluetoothLibrary.dll | 0
HDL_ON/Entity/FunctionList.cs | 37
HDL-ON_iOS/Resources/Phone/PirIcon/dvd.png | 0
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/curtainroller.png | 0
HDL_ON/DAL/Server/NewAPI.cs | 4
HDL-ON_iOS/Resources/Phone/Public/ProgressMsg.png | 0
HDL-ON_Android/Assets/Phone/PirIcon/adddevice.png | 0
HDL_ON/Common/R.cs | 115 +
HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/lightrgb.png | 0
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/electricaltv.png | 0
HDL-ON_Android/Assets/Phone/PirIcon/air.png | 0
HDL-ON_iOS/Resources/Phone/PersonalCenter/AddDevice/UploadToCloundSelect.png | 0
HDL-ON_iOS/Resources/Phone/PirIcon/delbuton.png | 0
HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/irac_white.png | 0
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricalfan_white.png | 0
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/airFreshstandard_blue.png | 0
HDL-ON_iOS/HDL-ON_iOS.csproj | 114 +
HDL_ON/UI/UI0-Stan/Controls/BottomControls/BottomClickButton.cs | 3
HDL-ON_Android/Assets/Phone/PirIcon/search.png | 0
HDL_ON/UI/UI2/4-PersonalCenter/AddFunction/AddThirdPartyBrandListpage.cs | 22
HDL_ON/UI/UI2/1-HomePage/HomePageBLL.cs | 2
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/lightrgbw.png | 0
HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricalai6HtccKFIw3dxo3_white.png | 0
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/floorHeatstandard_white.png | 0
HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/electricalfan.png | 0
HDL-ON_Android/Assets/Phone/PirIcon/failed.png | 0
HDL-ON_Android/Resources/Resource.designer.cs | 3
HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/lightdimming_white.png | 0
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/sensordoorwindow.png | 0
HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/sensorhumidity.png | 0
DLL/IOS/libBlufi.a | 0
HDL-ON_iOS/Resources/Phone/PersonalCenter/AddDevice/NetConnectSelect.png | 0
HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/electricaltv.png | 0
HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/acstandard_white.png | 0
HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/lightswitch_blue.png | 0
HDL_ON/DAL/DriverLayer/Control_Udp.cs | 2
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/curtainroller_blue.png | 0
HDL-ON_Android/Assets/Phone/PirIcon/icon2.png | 0
HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/curtainswitch.png | 0
HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/irlearn_white.png | 0
HDL-ON_Android/Assets/Phone/PirIcon/offline.png | 0
HDL_ON/UI/UI2/4-PersonalCenter/PersonalCenterPage.cs | 2
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/lightrgbw_white.png | 0
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricalsocket_blue.png | 0
HDL-ON_Android/Assets/Phone/PirIcon/dropdown.png | 0
HDL-ON_iOS/BlueWifi.cs | 17
HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/lightswitch_white.png | 0
HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/acstandard.png | 0
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/sensortvoc.png | 0
HDL-ON_iOS/Resources/Phone/PirIcon/online.png | 0
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricalai6HtccKFIw3dxo3_white.png | 0
HDL_ON/UI/UI2/UserPage.cs | 38
HDL-ON_iOS/Resources/Phone/PirIcon/custom.png | 0
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/curtainswitch_blue.png | 0
HDL_ON/UI/UI0-Stan/Controls/BottomControls/BottomItemSelectControl.cs | 2
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/electricalsocket.png | 0
HDL_ON/UI/UI0-Stan/Logic/HdlBluetoothAndroidLogic.cs | 590 ++++++
HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/lightrgbw.png | 0
HDL-ON_Android/Assets/Phone/PersonalCenter/AddDevice/ConnectSuccess.png | 0
HDL_ON/UI/UI1-Login/RegisterPageBLL.cs | 3
HDL-ON_iOS/Resources/Phone/PersonalCenter/AddDevice/UploadToClound.png | 0
HDL-ON_Android/Assets/Phone/PersonalCenter/AddDevice/ConnectSuccessSelect.png | 0
HDL_ON/DAL/DriverLayer/Control.cs | 38
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/irtv.png | 0
HdlBluWi/.DS_Store | 0
HDL-ON_Android/Assets/Phone/PersonalCenter/AddDevice/NetConnectSelect.png | 0
HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/curtainswitch_blue.png | 0
HDL-ON_iOS/Resources/Phone/PirIcon/stb.png | 0
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/curtainshades.png | 0
HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/lightcct.png | 0
HDL-ON_iOS/Resources/Phone/PersonalCenter/AddDevice/MiniRemoteControlBigPictrue.png | 0
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/irtv_blue.png | 0
HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricalfan_blue.png | 0
HDL_ON/UI/UI2/FuntionControlView/Electrical/TuyaAirCleanerPage.cs | 29
HDL-ON_Android/Assets/Phone/FunctionIcon/AC/More.png | 0
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/curtainroller_white.png | 0
HDL_ON/DAL/Server/HttpServerRequest.cs | 35
HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/.DS_Store | 0
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/musicstandard.png | 0
HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/curtaintrietex_blue.png | 0
HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricalai6HtccKFIw3dxo3_blue.png | 0
HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricalracks_blue.png | 0
HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/sensorsmoke.png | 0
ys/Jars/app-release.aar | 0
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricalracks_blue.png | 0
HDL-ON_Android/Properties/AndroidManifest.xml | 2
HDL-ON_Android/Assets/Phone/.DS_Store | 0
HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/floorHeatstandard.png | 0
HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricaltyqborgovyzytytz_blue.png | 0
HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/sensorco2.png | 0
HDL_ON/DAL/Mqtt/MqttClient.cs | 120 +
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricalkoiGhMKwLf2ZP81g_white.png | 0
HDL-ON_Android/HDL-ON_Android.csproj | 101
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricalQ1RsefNf91tIXyyQ_blue.png | 0
HDL_ON/UI/UI2/FuntionControlView/Electrical/TuyaWaterValvePage.cs | 26
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/lightdimming_white.png | 0
HDL-ON_Android/Assets/Phone/PersonalCenter/AddDevice/MiniRemoteControlMenuIcon.png | 0
HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/irlearn.png | 0
HDL_ON/Entity/Integratedbrand/IntegratedBrand.cs | 81
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/irlearn_white.png | 0
HDL-ON_iOS/Resources/Phone/PirIcon/priequipment.png | 0
HDL-ON_iOS/Resources/Phone/PirIcon/del.png | 0
HDL_ON/UI/UI2/2-Classification/ClassificationPage.cs | 5
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/musicstandard_blue.png | 0
HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricalkoiGhMKwLf2ZP81g_blue.png | 0
HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/floorHeatstandard_white.png | 0
HDL-ON_iOS/Resources/Phone/PirIcon/next.png | 0
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/acstandard_blue.png | 0
HDL-ON_Android/Assets/Phone/PirIcon/succeed.png | 0
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricalkoiGhMKwLf2ZP81g_blue.png | 0
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/sensorwater.png | 0
HDL-ON_iOS/Resources/Phone/PirIcon/dropdown.png | 0
HDL-ON_Android/Assets/Phone/PirIcon/delbuton.png | 0
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/floorHeatstandard.png | 0
HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricalsocket_blue.png | 0
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/sensorco2.png | 0
HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/musicstandard_white.png | 0
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/lightdimming_blue.png | 0
HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/electricaltyqborgovyzytytz.png | 0
HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/sensorpir.png | 0
HDL-ON_Android/Assets/Phone/PirIcon/custom.png | 0
HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/electricalracks.png | 0
HDL-ON_iOS/Resources/Phone/PirIcon/tv.png | 0
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricalracks_white.png | 0
HDL-ON_Android/Assets/Phone/PirIcon/online.png | 0
HDL_ON/UI/UI2/FuntionControlView/Electrical/ClothesHangerPage.cs | 17
HDL-ON_Android/Assets/Phone/PersonalCenter/AddDevice/WifiAndPhoneConnect.png | 0
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/curtaintrietex.png | 0
HDL-ON_iOS/Resources/Phone/PersonalCenter/AddDevice/WifiAndPhoneConnect.png | 0
HDL_ON/DAL/DriverLayer/A_Protocol_Common.cs | 11
HDL_ON/UI/UI2/4-PersonalCenter/AddDevice/AddThirdPartyDeviceMenuListPage.cs | 92
HDL_ON/UI/UI2/4-PersonalCenter/AddFunction/ThirdPartyBrandListPage.cs | 166
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricaltv_white.png | 0
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/irac_white.png | 0
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/irlearn_blue.png | 0
HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/curtaintrietex.png | 0
HDL_ON/Common/Utlis.cs | 3
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/electricalfan.png | 0
HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/curtainshades_white.png | 0
HDL-ON_iOS/Resources/Phone/PirIcon/Infraredtreasure.png | 0
HDL-ON_Android/Assets/Phone/PirIcon/Infraredtreasure.png | 0
HDL-ON_iOS/Resources/Phone/PirIcon/offline.png | 0
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/lightcct_white.png | 0
HDL-ON_Android/Assets/Phone/PirIcon/dvd.png | 0
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricaltv_blue.png | 0
HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricaltv_white.png | 0
HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricaltv_blue.png | 0
HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricalkoiGhMKwLf2ZP81g_white.png | 0
HDL-ON_iOS/Resources/Phone/PirIcon/air.png | 0
HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricalQ1RsefNf91tIXyyQ_blue.png | 0
HDL_ON/UI/UI2/4-PersonalCenter/ResetAccountPassword/ResetPasswordPage.cs | 2
HDL_ON/UI/UI2/4-PersonalCenter/AddDevice/AddMiniRemoteControlDirection3Page.cs | 215 ++
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricalai6HtccKFIw3dxo3_blue.png | 0
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/lightrgb_white.png | 0
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/acstandard.png | 0
HDL-ON_iOS/Resources/Phone/PirIcon/fan.png | 0
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/sensorpir.png | 0
HDL_ON/UI/UI2/FuntionControlView/Electrical/IrLearnPage.cs | 146 +
HDL-ON_Android/Assets/Phone/PirIcon/priequipment.png | 0
HDL_ON/UI/UI0-Stan/Controls/MessageControls/ShowMsgControl.cs | 7
HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/irtv_white.png | 0
HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/sensordoorwindow.png | 0
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/sensortemperature.png | 0
HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/curtainroller.png | 0
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/lightswitch_blue.png | 0
303 files changed, 5,247 insertions(+), 456 deletions(-)
diff --git a/DLL/Android/AndriodBluetoothLibrary.dll b/DLL/Android/AndriodBluetoothLibrary.dll
new file mode 100644
index 0000000..606ade0
--- /dev/null
+++ b/DLL/Android/AndriodBluetoothLibrary.dll
Binary files differ
diff --git a/DLL/IOS/HdlBluWi.dll b/DLL/IOS/HdlBluWi.dll
index 0380e71..8a88050 100644
--- a/DLL/IOS/HdlBluWi.dll
+++ b/DLL/IOS/HdlBluWi.dll
Binary files differ
diff --git a/DLL/IOS/libBlufi.a b/DLL/IOS/libBlufi.a
index bcbd9d0..eeaebd4 100644
--- a/DLL/IOS/libBlufi.a
+++ b/DLL/IOS/libBlufi.a
Binary files differ
diff --git a/HDL-ON_Android/Assets/Language.ini b/HDL-ON_Android/Assets/Language.ini
index 5d5d311..a042891 100644
--- a/HDL-ON_Android/Assets/Language.ini
+++ b/HDL-ON_Android/Assets/Language.ini
@@ -411,10 +411,92 @@
426=Air dry time
427=Disinfect time
428=Anion Time
+429=H
+430=Min
+431=You are currently adding any platform devices to
+432=Other platform equipment is supported by third party service provider
+433=Water valve
+434=Time switch
+435=Remote control
+1000=Indoor Humidity
+1001=V-chip
+1002=Anion
+1003=Sterilization
+1004=Humidification
+1005=Filter Element Reset
+1006=Lighting
+1007=Automatic
+1008=Manual
+1009=Strong
+1010=Sleep
+1011=Timing
+1012=Wind Speed
+1013=Gear
+1014=Please confirm whether the filter element has been reset and operate the equipment according to the instruction manual for the filter element life to be timed again
+1015=Low Gear
+1016=Mid Gear
+1017=High Gear
+1018=Timing Setting
+1019=Hour
+1020=Filter Element Time锛�
+1021=Air Cleaner
+1022=Current wind speed
+1023=Cancel Timing
+1024=Floor Sweeping Robot
+1025=Suction
+1026=1st Gear
+1027=2nd Gear
+1028=3rd Gear
+1029=Charge
+1030=Voice
+1031=Mute
+1032=Cleaning Mode
+1033=Consumables Management
+1034=History
+1035=Automatic
+1036=Random
+1037=Wall
+1038=Spiral
+1039=Total Clean Area
+1040=Total Clean Time
+1041=Remaining life of side brush
+1042=Residual life of roller brush
+1043=Remaining life of filter screen
+1044=Reset edge brush
+1045=Reset roll brush
+1046=Reset screen
+1047=Confirm to Reset edge brush?
+1048=Confirm to Reset roll brush?
+1049=Confirm to Reset screen?
+1050=Add Device
+1051=Mini Intelligent Remote Control
+1052=Add Infrared Remote Control
+1053=Press the infrared remote control button{0}for 10 seconds and the indicator light{0}flashes blue quickly
+1054=Please make sure your Bluetooth{0}is on and searchable
+1055=Next Step
+1056=Device searching...
+1057=No infrared remote control found
+1058=1.Please check whether the device is{0} powered on normally{0}2.Please check whether the Bluetooth{0} function is turned on normally{0}3.Please check whether the indicator{0} light is flashing blue
+1059=Search Again
+1060=Connect WiFi
+1061=At present,it only supports 2.4G WiFi network{0}and does not support WiFi names{0}with Chinese characters
+1062=Password
+1063=Connecting...
+1064=Please make infrared remote control{0}as close as possible to WiFi router
+1065=Network Link
+1066=Upload to cloud
+1067=Connect success
+1068=1.Please check whether the device is{0} powered on normally{0}2.Please turn on the Bluetooth function{0}3.Press the button for 10s and the indicator{0} light will be on
+1069=Add Fail
+1070=Add Success
+1071=You can start using the infrared{0}remote control!
+1072=Start using
+1073=Please turn on Bluetooth
+1074=Location information(GBS) unavailable
+1075=Network unavailable
+1076=Select infrared remote control
-1002=Anion
-
5000=Music
5001=Group
5002=Setting
@@ -1089,6 +1171,13 @@
426=椋庡共鏃堕棿
427=娑堟瘨鏃堕棿
428=璐熺瀛愭椂闂�
+429=灏忔椂
+430=鍒嗛挓
+431=浣犲綋鍓嶈繕涓烘坊鍔犱换浣曞钩鍙拌澶�
+432=鍏朵粬骞冲彴璁惧鍧囩敱绗笁鏂规湇鍔″晢鎻愪緵鏀寔
+433=姘撮榾
+434=瀹氭椂寮�鍏�
+435=閬ユ帶鍣�
1000=瀹ゅ唴婀垮害
@@ -1138,9 +1227,36 @@
1044=閲嶇疆杈瑰埛
1045=閲嶇疆婊氬埛
1046=閲嶇疆婊ょ綉
-1047=鏄惁閲嶇疆杈瑰埛
-1048=鏄惁閲嶇疆婊氬埛
-1049=鏄惁閲嶇疆婊ょ綉
+1047=鏄惁閲嶇疆杈瑰埛?
+1048=鏄惁閲嶇疆婊氬埛?
+1049=鏄惁閲嶇疆婊ょ綉?
+1050=娣诲姞璁惧
+1051=mini鏅鸿兘閬ユ帶鍣�
+1052=娣诲姞绾㈠閬ユ帶
+1053=闀挎寜绾㈠閬ユ帶鍣ㄦ寜閽�10绉掞紝鎸囩ず鐏摑鑹插揩闂�
+1054=璇风‘淇濇偍鐨勮摑鐗欏凡寮�鍚苟澶勪簬鍙互琚悳绱㈢姸鎬�
+1055=涓嬩竴姝�
+1056=璁惧鎼滅储涓�...
+1057=娌℃湁鍙戠幇绾㈠閬ユ帶鍣�
+1058=1銆佽妫�鏌ヨ澶囨槸鍚︽甯搁�氱數{0}2銆佽妫�鏌ヨ摑鐗欏姛鑳芥槸鍚︽甯稿紑鍚瘂0}3銆佽妫�鏌ユ寚绀虹伅鏄惁钃濊壊蹇棯鐘舵��
+1059=閲嶆柊鎼滅储
+1060=杩炴帴WiFi
+1061=鐩墠鍙敮鎸�2.4G WiFi缃戠粶{0}鏆備笉鏀寔甯︽湁涓枃瀛楃鐨刉iFi鍚嶇О
+1062=瀵嗙爜
+1063=姝e湪杩炴帴涓�...
+1064=璇疯绾㈠閬ユ帶灏介噺鎺ヨ繎WIFI璺敱鍣�
+1065=缃戠粶閾炬帴涓�
+1066=涓婁紶鍒颁簯
+1067=杩炴帴鎴愬姛
+1068=1銆佽妫�鏌ヨ澶囨槸鍚︽甯搁�氱數{0}2銆佽寮�鍚摑鐗欏姛鑳絳0}3銆佸苟闀挎寜鎸夐挳10s锛屾寚绀虹伅甯镐寒
+1069=娣诲姞澶辫触
+1070=娣诲姞鎴愬姛
+1071=鍙互寮�濮嬩娇鐢ㄧ孩澶栭仴鎺у姛鑳斤紒
+1072=寮�濮嬩娇鐢�
+1073=璇锋墦寮�钃濈墮
+1074=浣嶇疆淇℃伅(GBS)涓嶅彲鐢�
+1075=缃戠粶涓嶅彲鐢�
+1076=閫夋嫨绾㈠閬ユ帶鍣�
5000=闊充箰
5001=缁勫悎
@@ -1269,6 +1385,63 @@
6076=缂栬緫淇℃伅
+6015=鍦ㄧ嚎
+6016=绂荤嚎
+6017=鐗堟湰鍙�
+6018=璇疯緭鍏ラ仴鎺у櫒鍚嶇О
+6019=鎻愮ず锛氶仴鎺у櫒鍒涘缓鍚庡彲鍦ㄥ姛鑳�-鐢靛櫒鍒嗙被{\r\n}鏌ユ壘浣跨敤
+6020=鎺ㄨ崘鎸夐敭
+6021=璇疯緭鍏ユ寜閿悕绉�
+6022=涓嬩竴姝�
+6023=鐢垫簮
+6024=闊抽噺+
+6025=闊抽噺-
+6026=棰戦亾+
+6027=棰戦亾-
+6028=涓�
+6029=涓�
+6030=宸�
+6031=鍙�
+6032=闈欓煶
+6034=纭
+6035=鎾斁
+6037=閫�鍑�
+6038=鑿滃崟
+6039=鏆傚仠
+6040=杩斿洖
+6041=鍋滄
+6042=涓婚〉
+6043=蹇繘
+6044=蹇��
+6045=瀹氭椂
+6046=澶嶅埗閬ユ帶鍔熻兘
+6047=瀵瑰噯閬ユ帶鍣ㄤ腑蹇冩寜涓嬬浉鍚屾寜閿�
+6048=鏅鸿兘閬ユ帶鍣�
+6049=娣诲姞鎸夐敭
+6050=*闀挎寜鍙繘琛岃嚜瀹氫箟鎺掑簭
+6051=瀹屾垚
+6052=娣诲姞鎴愬姛
+6053=鍙埌鍒嗙被-鍔熻兘-鐢靛櫒鎿嶄綔浣跨敤
+6054=鎵�灞炲垎绫�
+6055=閬ユ帶鍣ㄥ悕绉�
+6056=鎵�灞炲尯鍩�
+6057=缁х画娣诲姞
+6058=鐢靛櫒
+6059=娣诲姞澶辫触
+6060=閲嶈瘯
+6061=鍖归厤閬ユ帶鍣�
+6062=璇风偣鍑讳互涓嬫寜閽�
+6063=纭璁惧鏄惁鏈夊搷搴�
+6064=鎺у埗澶辫触
+6065=鎺у埗鎴愬姛
+6066=鐢垫簮寮�
+6067=妯″紡鍒跺喎
+6068=椋庨�熶腑椋�
+6069=娓╁害26鈩�
+6070=鍒犻櫎璁惧
+6071=淇敼鍚嶅瓧
+6072=纭鍒犻櫎
+6073=鍙栨秷
7000=鏂板缓鑷姩鍖�
7001=缂栬緫鑷姩鍖�
diff --git a/HDL-ON_Android/Assets/Phone/.DS_Store b/HDL-ON_Android/Assets/Phone/.DS_Store
index 48a1486..b0674c8 100644
--- a/HDL-ON_Android/Assets/Phone/.DS_Store
+++ b/HDL-ON_Android/Assets/Phone/.DS_Store
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/AC/More.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/AC/More.png
new file mode 100644
index 0000000..bc89ac6
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/AC/More.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/acstandard_blue.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/acstandard_blue.png
new file mode 100644
index 0000000..66155c5
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/acstandard_blue.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/acstandard_white.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/acstandard_white.png
new file mode 100644
index 0000000..32e354e
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/acstandard_white.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/airFreshstandard_blue.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/airFreshstandard_blue.png
new file mode 100644
index 0000000..23f6005
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/airFreshstandard_blue.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/airFreshstandard_white.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/airFreshstandard_white.png
new file mode 100644
index 0000000..9a40fd6
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/airFreshstandard_white.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/curtainroller_blue.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/curtainroller_blue.png
new file mode 100644
index 0000000..5ae946e
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/curtainroller_blue.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/curtainroller_white.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/curtainroller_white.png
new file mode 100644
index 0000000..1ff8d10
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/curtainroller_white.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/curtainshades_blue.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/curtainshades_blue.png
new file mode 100644
index 0000000..9053f13
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/curtainshades_blue.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/curtainshades_white.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/curtainshades_white.png
new file mode 100644
index 0000000..01a5a48
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/curtainshades_white.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/curtainswitch_blue.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/curtainswitch_blue.png
new file mode 100644
index 0000000..220ff6e
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/curtainswitch_blue.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/curtainswitch_white.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/curtainswitch_white.png
new file mode 100644
index 0000000..f74c97d
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/curtainswitch_white.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/curtaintrietex_blue.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/curtaintrietex_blue.png
new file mode 100644
index 0000000..e3671a2
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/curtaintrietex_blue.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/curtaintrietex_white.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/curtaintrietex_white.png
new file mode 100644
index 0000000..259e176
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/curtaintrietex_white.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricalQ1RsefNf91tIXyyQ_blue.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricalQ1RsefNf91tIXyyQ_blue.png
new file mode 100644
index 0000000..3caf309
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricalQ1RsefNf91tIXyyQ_blue.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricalQ1RsefNf91tIXyyQ_white.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricalQ1RsefNf91tIXyyQ_white.png
new file mode 100644
index 0000000..58dbb2d
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricalQ1RsefNf91tIXyyQ_white.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricalai6HtccKFIw3dxo3_blue.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricalai6HtccKFIw3dxo3_blue.png
new file mode 100644
index 0000000..aab3b24
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricalai6HtccKFIw3dxo3_blue.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricalai6HtccKFIw3dxo3_white.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricalai6HtccKFIw3dxo3_white.png
new file mode 100644
index 0000000..48e6784
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricalai6HtccKFIw3dxo3_white.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricalfan_blue.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricalfan_blue.png
new file mode 100644
index 0000000..c59a2e5
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricalfan_blue.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricalfan_white.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricalfan_white.png
new file mode 100644
index 0000000..8c5ead5
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricalfan_white.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricalkoiGhMKwLf2ZP81g_blue.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricalkoiGhMKwLf2ZP81g_blue.png
new file mode 100644
index 0000000..e25af0b
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricalkoiGhMKwLf2ZP81g_blue.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricalkoiGhMKwLf2ZP81g_white.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricalkoiGhMKwLf2ZP81g_white.png
new file mode 100644
index 0000000..4e2f1df
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricalkoiGhMKwLf2ZP81g_white.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricalracks_blue.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricalracks_blue.png
new file mode 100644
index 0000000..0e89579
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricalracks_blue.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricalracks_white.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricalracks_white.png
new file mode 100644
index 0000000..4845fa2
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricalracks_white.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricalsocket_blue.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricalsocket_blue.png
new file mode 100644
index 0000000..84ff63d
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricalsocket_blue.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricalsocket_white.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricalsocket_white.png
new file mode 100644
index 0000000..1fd6e8e
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricalsocket_white.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricaltv_blue.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricaltv_blue.png
new file mode 100644
index 0000000..d28c4af
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricaltv_blue.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricaltv_white.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricaltv_white.png
new file mode 100644
index 0000000..1f42e9f
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricaltv_white.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricaltyqborgovyzytytz_blue.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricaltyqborgovyzytytz_blue.png
new file mode 100644
index 0000000..c59a2e5
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricaltyqborgovyzytytz_blue.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricaltyqborgovyzytytz_white.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricaltyqborgovyzytytz_white.png
new file mode 100644
index 0000000..8c5ead5
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/electricaltyqborgovyzytytz_white.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/floorHeatstandard_blue.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/floorHeatstandard_blue.png
new file mode 100644
index 0000000..d44a273
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/floorHeatstandard_blue.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/floorHeatstandard_white.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/floorHeatstandard_white.png
new file mode 100644
index 0000000..06e28c0
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/floorHeatstandard_white.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/irac_blue.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/irac_blue.png
new file mode 100644
index 0000000..66155c5
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/irac_blue.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/irac_white.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/irac_white.png
new file mode 100644
index 0000000..32e354e
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/irac_white.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/irlearn_blue.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/irlearn_blue.png
new file mode 100644
index 0000000..50f52ea
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/irlearn_blue.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/irlearn_white.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/irlearn_white.png
new file mode 100644
index 0000000..80addfe
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/irlearn_white.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/irtv_blue.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/irtv_blue.png
new file mode 100644
index 0000000..d28c4af
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/irtv_blue.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/irtv_white.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/irtv_white.png
new file mode 100644
index 0000000..1f42e9f
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/irtv_white.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/lightcct_blue.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/lightcct_blue.png
new file mode 100644
index 0000000..5e07518
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/lightcct_blue.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/lightcct_white.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/lightcct_white.png
new file mode 100644
index 0000000..cb36722
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/lightcct_white.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/lightdimming_blue.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/lightdimming_blue.png
new file mode 100644
index 0000000..b40b6d9
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/lightdimming_blue.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/lightdimming_white.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/lightdimming_white.png
new file mode 100644
index 0000000..f18a303
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/lightdimming_white.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/lightrgb_blue.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/lightrgb_blue.png
new file mode 100644
index 0000000..5e07518
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/lightrgb_blue.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/lightrgb_white.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/lightrgb_white.png
new file mode 100644
index 0000000..cb36722
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/lightrgb_white.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/lightrgbw_blue.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/lightrgbw_blue.png
new file mode 100644
index 0000000..5e07518
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/lightrgbw_blue.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/lightrgbw_white.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/lightrgbw_white.png
new file mode 100644
index 0000000..cb36722
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/lightrgbw_white.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/lightswitch_blue.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/lightswitch_blue.png
new file mode 100644
index 0000000..9df7593
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/lightswitch_blue.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/lightswitch_white.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/lightswitch_white.png
new file mode 100644
index 0000000..79b5a76
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/lightswitch_white.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/musicstandard_blue.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/musicstandard_blue.png
new file mode 100644
index 0000000..512f3eb
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/musicstandard_blue.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/musicstandard_white.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/musicstandard_white.png
new file mode 100644
index 0000000..85065ec
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/musicstandard_white.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/acstandard.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/acstandard.png
new file mode 100644
index 0000000..6d7221b
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/acstandard.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/airFreshstandard.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/airFreshstandard.png
new file mode 100644
index 0000000..6657bae
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/airFreshstandard.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/curtainroller.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/curtainroller.png
new file mode 100644
index 0000000..10bdb27
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/curtainroller.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/curtainshades.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/curtainshades.png
new file mode 100644
index 0000000..abeae75
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/curtainshades.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/curtainswitch.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/curtainswitch.png
new file mode 100644
index 0000000..8ce4669
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/curtainswitch.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/curtaintrietex.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/curtaintrietex.png
new file mode 100644
index 0000000..0eeb3a0
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/curtaintrietex.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/electricalQ1RsefNf91tIXyyQ.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/electricalQ1RsefNf91tIXyyQ.png
new file mode 100644
index 0000000..f299156
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/electricalQ1RsefNf91tIXyyQ.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/electricalai6HtccKFIw3dxo3.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/electricalai6HtccKFIw3dxo3.png
new file mode 100644
index 0000000..8486852
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/electricalai6HtccKFIw3dxo3.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/electricalfan.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/electricalfan.png
new file mode 100644
index 0000000..0447c4d
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/electricalfan.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/electricalkoiGhMKwLf2ZP81g.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/electricalkoiGhMKwLf2ZP81g.png
new file mode 100644
index 0000000..ed0735d
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/electricalkoiGhMKwLf2ZP81g.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/electricalracks.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/electricalracks.png
new file mode 100644
index 0000000..6f10d54
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/electricalracks.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/electricalsocket.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/electricalsocket.png
new file mode 100644
index 0000000..6a324db
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/electricalsocket.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/electricaltv.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/electricaltv.png
new file mode 100644
index 0000000..7f9045f
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/electricaltv.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/electricaltyqborgovyzytytz.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/electricaltyqborgovyzytytz.png
new file mode 100644
index 0000000..0447c4d
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/electricaltyqborgovyzytytz.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/floorHeatstandard.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/floorHeatstandard.png
new file mode 100644
index 0000000..c067812
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/floorHeatstandard.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/irac.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/irac.png
new file mode 100644
index 0000000..6d7221b
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/irac.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/irlearn.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/irlearn.png
new file mode 100644
index 0000000..f6654d9
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/irlearn.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/irmodule.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/irmodule.png
new file mode 100644
index 0000000..5bb5bb2
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/irmodule.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/irtv.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/irtv.png
new file mode 100644
index 0000000..7f9045f
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/irtv.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/lightcct.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/lightcct.png
new file mode 100644
index 0000000..9fabb8e
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/lightcct.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/lightdimming.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/lightdimming.png
new file mode 100644
index 0000000..6fd97b5
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/lightdimming.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/lightrgb.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/lightrgb.png
new file mode 100644
index 0000000..9fabb8e
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/lightrgb.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/lightrgbw.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/lightrgbw.png
new file mode 100644
index 0000000..9fabb8e
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/lightrgbw.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/lightswitch.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/lightswitch.png
new file mode 100644
index 0000000..0aa1f98
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/lightswitch.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/musicstandard.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/musicstandard.png
new file mode 100644
index 0000000..d522bf3
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/musicstandard.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/sensorco2.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/sensorco2.png
new file mode 100644
index 0000000..4d52fc1
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/sensorco2.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/sensordoorwindow.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/sensordoorwindow.png
new file mode 100644
index 0000000..6f82b1f
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/sensordoorwindow.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/sensorgas.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/sensorgas.png
new file mode 100644
index 0000000..6e05b01
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/sensorgas.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/sensorhumidity.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/sensorhumidity.png
new file mode 100644
index 0000000..3549ac7
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/sensorhumidity.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/sensorpir.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/sensorpir.png
new file mode 100644
index 0000000..5afa201
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/sensorpir.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/sensorpm25.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/sensorpm25.png
new file mode 100644
index 0000000..2f07a0b
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/sensorpm25.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/sensorsmoke.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/sensorsmoke.png
new file mode 100644
index 0000000..245f9de
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/sensorsmoke.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/sensortemperature.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/sensortemperature.png
new file mode 100644
index 0000000..d852749
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/sensortemperature.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/sensortvoc.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/sensortvoc.png
new file mode 100644
index 0000000..a37cc0e
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/sensortvoc.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/sensorwater.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/sensorwater.png
new file mode 100644
index 0000000..57b566a
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/sensorwater.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/PersonalCenter/AddDevice/ConnectSuccess.png b/HDL-ON_Android/Assets/Phone/PersonalCenter/AddDevice/ConnectSuccess.png
new file mode 100644
index 0000000..8c6b86e
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/PersonalCenter/AddDevice/ConnectSuccess.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/PersonalCenter/AddDevice/ConnectSuccessSelect.png b/HDL-ON_Android/Assets/Phone/PersonalCenter/AddDevice/ConnectSuccessSelect.png
new file mode 100644
index 0000000..224fd3f
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/PersonalCenter/AddDevice/ConnectSuccessSelect.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/PersonalCenter/AddDevice/MiniRemoteControlBigPictrue.png b/HDL-ON_Android/Assets/Phone/PersonalCenter/AddDevice/MiniRemoteControlBigPictrue.png
new file mode 100644
index 0000000..a6ccf0a
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/PersonalCenter/AddDevice/MiniRemoteControlBigPictrue.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/PersonalCenter/AddDevice/MiniRemoteControlMenuIcon.png b/HDL-ON_Android/Assets/Phone/PersonalCenter/AddDevice/MiniRemoteControlMenuIcon.png
new file mode 100644
index 0000000..be9906d
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/PersonalCenter/AddDevice/MiniRemoteControlMenuIcon.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/PersonalCenter/AddDevice/NetConnectSelect.png b/HDL-ON_Android/Assets/Phone/PersonalCenter/AddDevice/NetConnectSelect.png
new file mode 100644
index 0000000..1c6cbfe
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/PersonalCenter/AddDevice/NetConnectSelect.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/PersonalCenter/AddDevice/UploadToClound.png b/HDL-ON_Android/Assets/Phone/PersonalCenter/AddDevice/UploadToClound.png
new file mode 100644
index 0000000..ffef099
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/PersonalCenter/AddDevice/UploadToClound.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/PersonalCenter/AddDevice/UploadToCloundSelect.png b/HDL-ON_Android/Assets/Phone/PersonalCenter/AddDevice/UploadToCloundSelect.png
new file mode 100644
index 0000000..fe57fe5
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/PersonalCenter/AddDevice/UploadToCloundSelect.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/PersonalCenter/AddDevice/WifiAndPhoneConnect.png b/HDL-ON_Android/Assets/Phone/PersonalCenter/AddDevice/WifiAndPhoneConnect.png
new file mode 100644
index 0000000..4039574
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/PersonalCenter/AddDevice/WifiAndPhoneConnect.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/PirIcon/Infraredtreasure.png b/HDL-ON_Android/Assets/Phone/PirIcon/Infraredtreasure.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/PirIcon/STB.png b/HDL-ON_Android/Assets/Phone/PirIcon/STB.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/PirIcon/adddevice.png b/HDL-ON_Android/Assets/Phone/PirIcon/adddevice.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/PirIcon/addlbuton.png b/HDL-ON_Android/Assets/Phone/PirIcon/addlbuton.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/PirIcon/air.png b/HDL-ON_Android/Assets/Phone/PirIcon/air.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/PirIcon/custom.png b/HDL-ON_Android/Assets/Phone/PirIcon/custom.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/PirIcon/del.png b/HDL-ON_Android/Assets/Phone/PirIcon/del.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/PirIcon/delbuton.png b/HDL-ON_Android/Assets/Phone/PirIcon/delbuton.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/PirIcon/dropdown.png b/HDL-ON_Android/Assets/Phone/PirIcon/dropdown.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/PirIcon/dvd.png b/HDL-ON_Android/Assets/Phone/PirIcon/dvd.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/PirIcon/failed.png b/HDL-ON_Android/Assets/Phone/PirIcon/failed.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/PirIcon/fan.png b/HDL-ON_Android/Assets/Phone/PirIcon/fan.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/PirIcon/icon1.png b/HDL-ON_Android/Assets/Phone/PirIcon/icon1.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/PirIcon/icon2.png b/HDL-ON_Android/Assets/Phone/PirIcon/icon2.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/PirIcon/next.png b/HDL-ON_Android/Assets/Phone/PirIcon/next.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/PirIcon/offline.png b/HDL-ON_Android/Assets/Phone/PirIcon/offline.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/PirIcon/online.png b/HDL-ON_Android/Assets/Phone/PirIcon/online.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/PirIcon/priequipment.png b/HDL-ON_Android/Assets/Phone/PirIcon/priequipment.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/PirIcon/projector.png b/HDL-ON_Android/Assets/Phone/PirIcon/projector.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/PirIcon/search.png b/HDL-ON_Android/Assets/Phone/PirIcon/search.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/PirIcon/succeed.png b/HDL-ON_Android/Assets/Phone/PirIcon/succeed.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/PirIcon/tv.png b/HDL-ON_Android/Assets/Phone/PirIcon/tv.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/Public/ProgressMsg.png b/HDL-ON_Android/Assets/Phone/Public/ProgressMsg.png
new file mode 100644
index 0000000..e0255b8
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/Public/ProgressMsg.png
Binary files differ
diff --git a/HDL-ON_Android/HDL-ON_Android.csproj b/HDL-ON_Android/HDL-ON_Android.csproj
index 75f234a..c8c0871 100644
--- a/HDL-ON_Android/HDL-ON_Android.csproj
+++ b/HDL-ON_Android/HDL-ON_Android.csproj
@@ -125,6 +125,9 @@
<Reference Include="Shared.Droid.JLCountryCode">
<HintPath>..\DLL\Android\Shared.Droid.JLCountryCode.dll</HintPath>
</Reference>
+ <Reference Include="AndriodBluetoothLibrary">
+ <HintPath>..\DLL\Android\AndriodBluetoothLibrary.dll</HintPath>
+ </Reference>
</ItemGroup>
<ItemGroup>
<Compile Include="MainActivity.cs" />
@@ -830,12 +833,98 @@
<AndroidAsset Include="Assets\Phone\PirIcon\icon2.png" />
<AndroidAsset Include="Assets\Phone\PirIcon\succeed.png" />
<AndroidAsset Include="Assets\Phone\LogicIcon\selected+.png" />
- <AndroidAsset Include="Assets\Phone\PirIcon\1.png" />
- <AndroidAsset Include="Assets\Phone\PirIcon\2.png" />
- <AndroidAsset Include="Assets\Phone\PirIcon\3.png" />
- <AndroidAsset Include="Assets\Phone\PirIcon\4.png" />
- <AndroidAsset Include="Assets\Phone\PirIcon\left.png" />
- <AndroidAsset Include="Assets\Phone\PirIcon\right.png" />
+ <AndroidAsset Include="Assets\Phone\Public\ProgressMsg.png" />
+ <AndroidAsset Include="Assets\Phone\PersonalCenter\AddDevice\UploadToClound.png" />
+ <AndroidAsset Include="Assets\Phone\PersonalCenter\AddDevice\NetConnectSelect.png" />
+ <AndroidAsset Include="Assets\Phone\PersonalCenter\AddDevice\ConnectSuccess.png" />
+ <AndroidAsset Include="Assets\Phone\PersonalCenter\AddDevice\ConnectSuccessSelect.png" />
+ <AndroidAsset Include="Assets\Phone\PersonalCenter\AddDevice\MiniRemoteControlBigPictrue.png" />
+ <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" />
diff --git a/HDL-ON_Android/Properties/AndroidManifest.xml b/HDL-ON_Android/Properties/AndroidManifest.xml
index 00724b4..b63337c 100644
--- a/HDL-ON_Android/Properties/AndroidManifest.xml
+++ b/HDL-ON_Android/Properties/AndroidManifest.xml
@@ -1,5 +1,5 @@
锘�<?xml version="1.0" encoding="utf-8"?>
-<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="202103051" android:versionName="1.1.202103051" package="com.hdl.onpro">
+<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="202103101" android:versionName="1.1.202103101" package="com.hdl.onpro">
<uses-sdk android:minSdkVersion="26" android:targetSdkVersion="26" />
<!-- 瀹氫綅鏉冮檺-->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
diff --git a/HDL-ON_Android/Resources/Resource.designer.cs b/HDL-ON_Android/Resources/Resource.designer.cs
index ade11c4..5d2ca39 100644
--- a/HDL-ON_Android/Resources/Resource.designer.cs
+++ b/HDL-ON_Android/Resources/Resource.designer.cs
@@ -2,7 +2,6 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
-// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
@@ -15,7 +14,7 @@
{
- [System.CodeDom.Compiler.GeneratedCodeAttribute("Xamarin.Android.Build.Tasks", "1.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Xamarin.Android.Build.Tasks", "1.0.0.0")]
public partial class Resource
{
diff --git a/HDL-ON_iOS/.DS_Store b/HDL-ON_iOS/.DS_Store
index 6ebc3fa..96513b5 100644
--- a/HDL-ON_iOS/.DS_Store
+++ b/HDL-ON_iOS/.DS_Store
Binary files differ
diff --git a/HDL-ON_iOS/BlueWifi.cs b/HDL-ON_iOS/BlueWifi.cs
index e5eeff6..aad7a0c 100644
--- a/HDL-ON_iOS/BlueWifi.cs
+++ b/HDL-ON_iOS/BlueWifi.cs
@@ -6,7 +6,7 @@
namespace HDL_ON
{
- public class MyBlufiClient
+ public class MyBlufiClient
{
HdlBluWi share;
@@ -29,7 +29,7 @@
//public string GetPer()
//{
- //share.
+ //share.
//}
@@ -40,11 +40,12 @@
/// <summary>
/// 璁惧鎼滅储鍒拌摑鐗欒澶囦箣鍚庡埌浠g悊浜嬩欢
/// </summary>
- public void SetBlufiDeviceDelegate(Action<string,string> action)
+ public void SetBlufiDeviceDelegate(Action<string, string> action)
{
- getBlufiDeviceDelegate = new FBYBleDeviceBackBlock((arg0) => {
- action?.Invoke(arg0.Name,arg0.Uuid.ToString());
- if (!string.IsNullOrEmpty(arg0.Name)&& arg0.Name.Contains("BLU"))
+ getBlufiDeviceDelegate = new FBYBleDeviceBackBlock((arg0) =>
+ {
+ action?.Invoke(arg0.Name, arg0.Uuid.ToString());
+ if (!string.IsNullOrEmpty(arg0.Name) && arg0.Name.Contains("BLU"))
{
Console.WriteLine($"{arg0.Name} : {arg0.Uuid}");
}
@@ -179,7 +180,7 @@
public override void Blufi_gattPrepared(HdlBlufi.BlufiClient client, BlufiStatusCode status, CBService service, CBCharacteristic writeChar, CBCharacteristic notifyChar)
{
- if(status == BlufiStatusCode.Success)
+ if (status == BlufiStatusCode.Success)
{
MainPage.Log("钃濈墮杩炴帴鎴愬姛");
}
@@ -195,7 +196,7 @@
{
public override void UpdatedState(CBCentralManager central)
{
-
+
//throw new NotImplementedException();
}
//public override void
diff --git a/HDL-ON_iOS/HDL-ON_iOS.csproj b/HDL-ON_iOS/HDL-ON_iOS.csproj
index e375828..eb0fd00 100644
--- a/HDL-ON_iOS/HDL-ON_iOS.csproj
+++ b/HDL-ON_iOS/HDL-ON_iOS.csproj
@@ -1057,26 +1057,102 @@
<BundleResource Include="Resources\Phone\PirIcon\adddevice.png" />
<BundleResource Include="Resources\Phone\PirIcon\next.png" />
<BundleResource Include="Resources\Phone\LogicIcon\selected+.png" />
- <BundleResource Include="Resources\Phone\PirIcon\1.png" />
- <BundleResource Include="Resources\Phone\PirIcon\2.png" />
- <BundleResource Include="Resources\Phone\PirIcon\3.png" />
- <BundleResource Include="Resources\Phone\PirIcon\4.png" />
- <BundleResource Include="Resources\Phone\PirIcon\failed.png" />
- <BundleResource Include="Resources\Phone\PirIcon\icon1.png" />
- <BundleResource Include="Resources\Phone\PirIcon\icon2.png" />
- <BundleResource Include="Resources\Phone\PirIcon\left.png" />
- <BundleResource Include="Resources\Phone\PirIcon\right.png" />
- <BundleResource Include="Resources\Phone\PirIcon\succeed.png" />
+ <BundleResource Include="Resources\Phone\Public\ProgressMsg.png" />
+ <BundleResource Include="Resources\Phone\PersonalCenter\AddDevice\UploadToClound.png" />
+ <BundleResource Include="Resources\Phone\PersonalCenter\AddDevice\NetConnectSelect.png" />
+ <BundleResource Include="Resources\Phone\PersonalCenter\AddDevice\ConnectSuccess.png" />
+ <BundleResource Include="Resources\Phone\PersonalCenter\AddDevice\ConnectSuccessSelect.png" />
+ <BundleResource Include="Resources\Phone\PersonalCenter\AddDevice\MiniRemoteControlBigPictrue.png" />
+ <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" />
<ITunesArtwork Include="iTunesArtwork%402x" />
- </ItemGroup>
- <ItemGroup>
- <ProjectReference Include="..\HdlBluWi\Blufi.csproj">
- <Project>{2DDF4C3C-6998-432E-9F43-6786D82F0630}</Project>
- <Name>Blufi</Name>
- </ProjectReference>
</ItemGroup>
<ItemGroup>
<ImageAsset Include="Assets.xcassets\AppIcon.appiconset\Contents.json" />
@@ -1112,6 +1188,12 @@
<ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\640960-1.png" />
<ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\6401136-1.png" />
</ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\HdlBluWi\Blufi.csproj">
+ <Project>{2DDF4C3C-6998-432E-9F43-6786D82F0630}</Project>
+ <Name>Blufi</Name>
+ </ProjectReference>
+ </ItemGroup>
<Import Project="..\HDL_ON\HDL_ON.projitems" Label="Shared" Condition="Exists('..\HDL_ON\HDL_ON.projitems')" />
<Import Project="$(MSBuildExtensionsPath)\Xamarin\iOS\Xamarin.iOS.CSharp.targets" />
<ProjectExtensions>
diff --git a/HDL-ON_iOS/Info.plist b/HDL-ON_iOS/Info.plist
index d5aace1..52e5b75 100644
--- a/HDL-ON_iOS/Info.plist
+++ b/HDL-ON_iOS/Info.plist
@@ -70,6 +70,8 @@
<key>UISupportedInterfaceOrientations</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
+ <string>UIInterfaceOrientationLandscapeLeft</string>
+ <string>UIInterfaceOrientationLandscapeRight</string>
</array>
<key>UIAppFonts</key>
<array>
@@ -102,9 +104,9 @@
<key>UIStatusBarStyle</key>
<string>UIStatusBarStyleLightContent</string>
<key>CFBundleShortVersionString</key>
- <string>1.1.202103051</string>
+ <string>1.1.202103101</string>
<key>CFBundleVersion</key>
- <string>202103051</string>
+ <string>202103101</string>
<key>NSLocationWhenInUseUsageDescription</key>
<string>Use geographic location to provide services such as weather</string>
<key>NSAppleMusicUsageDescription</key>
diff --git a/HDL-ON_iOS/Resources/Language.ini b/HDL-ON_iOS/Resources/Language.ini
index b52d360..765e310 100644
--- a/HDL-ON_iOS/Resources/Language.ini
+++ b/HDL-ON_iOS/Resources/Language.ini
@@ -411,12 +411,93 @@
426=Air dry time
427=Disinfect time
428=Anion Time
-429=h
-430=m
+429=H
+430=Min
+431=You are currently adding any platform devices to
+432=Other platform equipment is supported by third party service provider
+433=Water valve
+434=Time switch
+435=Remote control
-1002=Anion
-
+1000=Indoor Humidity
+1001=V-chip
+1002=Anion
+1003=Sterilization
+1004=Humidification
+1005=Filter Element Reset
+1006=Lighting
+1007=Automatic
+1008=Manual
+1009=Strong
+1010=Sleep
+1011=Timing
+1012=Wind Speed
+1013=Gear
+1014=Please confirm whether the filter element has been reset and operate the equipment according to the instruction manual for the filter element life to be timed again
+1015=Low Gear
+1016=Mid Gear
+1017=High Gear
+1018=Timing Setting
+1019=Hour
+1020=Filter Element Time锛�
+1021=Air Cleaner
+1022=Current wind speed
+1023=Cancel Timing
+1024=Floor Sweeping Robot
+1025=Suction
+1026=1st Gear
+1027=2nd Gear
+1028=3rd Gear
+1029=Charge
+1030=Voice
+1031=Mute
+1032=Cleaning Mode
+1033=Consumables Management
+1034=History
+1035=Automatic
+1036=Random
+1037=Wall
+1038=Spiral
+1039=Total Clean Area
+1040=Total Clean Time
+1041=Remaining life of side brush
+1042=Residual life of roller brush
+1043=Remaining life of filter screen
+1044=Reset edge brush
+1045=Reset roll brush
+1046=Reset screen
+1047=Confirm to Reset edge brush?
+1048=Confirm to Reset roll brush?
+1049=Confirm to Reset screen?
+1050=Add Device
+1051=Mini Intelligent Remote Control
+1052=Add Infrared Remote Control
+1053=Press the infrared remote control button{0}for 10 seconds and the indicator light{0}flashes blue quickly
+1054=Please make sure your Bluetooth{0}is on and searchable
+1055=Next Step
+1056=Device searching...
+1057=No infrared remote control found
+1058=1.Please check whether the device is{0} powered on normally{0}2.Please check whether the Bluetooth{0} function is turned on normally{0}3.Please check whether the indicator{0} light is flashing blue
+1059=Search Again
+1060=Connect WiFi
+1061=At present,it only supports 2.4G WiFi network{0}and does not support WiFi names{0}with Chinese characters
+1062=Password
+1063=Connecting...
+1064=Please make infrared remote control{0}as close as possible to WiFi router
+1065=Network Link
+1066=Upload to cloud
+1067=Connect success
+1068=1.Please check whether the device is{0} powered on normally{0}2.Please turn on the Bluetooth function{0}3.Press the button for 10s and the indicator{0} light will be on
+1069=Add Fail
+1070=Add Success
+1071=You can start using the infrared{0}remote control!
+1072=Start using
+1073=Please turn on Bluetooth
+1074=Location information(GBS) unavailable
+1075=Network unavailable
+1076=Select infrared remote control
+
5000=Music
5001=Group
5002=Setting
@@ -1093,6 +1174,11 @@
428=璐熺瀛愭椂闂�
429=灏忔椂
430=鍒嗛挓
+431=浣犲綋鍓嶈繕涓烘坊鍔犱换浣曞钩鍙拌澶�
+432=鍏朵粬骞冲彴璁惧鍧囩敱绗笁鏂规湇鍔″晢鎻愪緵鏀寔
+433=姘撮榾
+434=瀹氭椂寮�鍏�
+435=閬ユ帶鍣�
1000=瀹ゅ唴婀垮害
@@ -1142,9 +1228,36 @@
1044=閲嶇疆杈瑰埛
1045=閲嶇疆婊氬埛
1046=閲嶇疆婊ょ綉
-1047=鏄惁閲嶇疆杈瑰埛
-1048=鏄惁閲嶇疆婊氬埛
-1049=鏄惁閲嶇疆婊ょ綉
+1047=鏄惁閲嶇疆杈瑰埛?
+1048=鏄惁閲嶇疆婊氬埛?
+1049=鏄惁閲嶇疆婊ょ綉?
+1050=娣诲姞璁惧
+1051=mini鏅鸿兘閬ユ帶鍣�
+1052=娣诲姞绾㈠閬ユ帶
+1053=闀挎寜绾㈠閬ユ帶鍣ㄦ寜閽�10绉掞紝鎸囩ず鐏摑鑹插揩闂�
+1054=璇风‘淇濇偍鐨勮摑鐗欏凡寮�鍚苟澶勪簬鍙互琚悳绱㈢姸鎬�
+1055=涓嬩竴姝�
+1056=璁惧鎼滅储涓�...
+1057=娌℃湁鍙戠幇绾㈠閬ユ帶鍣�
+1058=1銆佽妫�鏌ヨ澶囨槸鍚︽甯搁�氱數{0}2銆佽妫�鏌ヨ摑鐗欏姛鑳芥槸鍚︽甯稿紑鍚瘂0}3銆佽妫�鏌ユ寚绀虹伅鏄惁钃濊壊蹇棯鐘舵��
+1059=閲嶆柊鎼滅储
+1060=杩炴帴WiFi
+1061=鐩墠鍙敮鎸�2.4G WiFi缃戠粶{0}鏆備笉鏀寔甯︽湁涓枃瀛楃鐨刉iFi鍚嶇О
+1062=瀵嗙爜
+1063=姝e湪杩炴帴涓�...
+1064=璇疯绾㈠閬ユ帶灏介噺鎺ヨ繎WIFI璺敱鍣�
+1065=缃戠粶閾炬帴涓�
+1066=涓婁紶鍒颁簯
+1067=杩炴帴鎴愬姛
+1068=1銆佽妫�鏌ヨ澶囨槸鍚︽甯搁�氱數{0}2銆佽寮�鍚摑鐗欏姛鑳絳0}3銆佸苟闀挎寜鎸夐挳10s锛屾寚绀虹伅甯镐寒
+1069=娣诲姞澶辫触
+1070=娣诲姞鎴愬姛
+1071=鍙互寮�濮嬩娇鐢ㄧ孩澶栭仴鎺у姛鑳斤紒
+1072=寮�濮嬩娇鐢�
+1073=璇锋墦寮�钃濈墮
+1074=浣嶇疆淇℃伅(GBS)涓嶅彲鐢�
+1075=缃戠粶涓嶅彲鐢�
+1076=閫夋嫨绾㈠閬ユ帶鍣�
5000=闊充箰
5001=缁勫悎
@@ -1273,6 +1386,63 @@
6076=缂栬緫淇℃伅
+6015=鍦ㄧ嚎
+6016=绂荤嚎
+6017=鐗堟湰鍙�
+6018=璇疯緭鍏ラ仴鎺у櫒鍚嶇О
+6019=鎻愮ず锛氶仴鎺у櫒鍒涘缓鍚庡彲鍦ㄥ姛鑳�-鐢靛櫒鍒嗙被{\r\n}鏌ユ壘浣跨敤
+6020=鎺ㄨ崘鎸夐敭
+6021=璇疯緭鍏ユ寜閿悕绉�
+6022=涓嬩竴姝�
+6023=鐢垫簮
+6024=闊抽噺+
+6025=闊抽噺-
+6026=棰戦亾+
+6027=棰戦亾-
+6028=涓�
+6029=涓�
+6030=宸�
+6031=鍙�
+6032=闈欓煶
+6034=纭
+6035=鎾斁
+6037=閫�鍑�
+6038=鑿滃崟
+6039=鏆傚仠
+6040=杩斿洖
+6041=鍋滄
+6042=涓婚〉
+6043=蹇繘
+6044=蹇��
+6045=瀹氭椂
+6046=澶嶅埗閬ユ帶鍔熻兘
+6047=瀵瑰噯閬ユ帶鍣ㄤ腑蹇冩寜涓嬬浉鍚屾寜閿�
+6048=鏅鸿兘閬ユ帶鍣�
+6049=娣诲姞鎸夐敭
+6050=*闀挎寜鍙繘琛岃嚜瀹氫箟鎺掑簭
+6051=瀹屾垚
+6052=娣诲姞鎴愬姛
+6053=鍙埌鍒嗙被-鍔熻兘-鐢靛櫒鎿嶄綔浣跨敤
+6054=鎵�灞炲垎绫�
+6055=閬ユ帶鍣ㄥ悕绉�
+6056=鎵�灞炲尯鍩�
+6057=缁х画娣诲姞
+6058=鐢靛櫒
+6059=娣诲姞澶辫触
+6060=閲嶈瘯
+6061=鍖归厤閬ユ帶鍣�
+6062=璇风偣鍑讳互涓嬫寜閽�
+6063=纭璁惧鏄惁鏈夊搷搴�
+6064=鎺у埗澶辫触
+6065=鎺у埗鎴愬姛
+6066=鐢垫簮寮�
+6067=妯″紡鍒跺喎
+6068=椋庨�熶腑椋�
+6069=娓╁害26鈩�
+6070=鍒犻櫎璁惧
+6071=淇敼鍚嶅瓧
+6072=纭鍒犻櫎
+6073=鍙栨秷
7000=鏂板缓鑷姩鍖�
7001=缂栬緫鑷姩鍖�
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/AC/More.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/AC/More.png
new file mode 100644
index 0000000..bc89ac6
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/AC/More.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/.DS_Store b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/.DS_Store
index 3f51231..76483dd 100644
--- a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/.DS_Store
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Electrical/.DS_Store
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/acstandard_blue.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/acstandard_blue.png
new file mode 100644
index 0000000..66155c5
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/acstandard_blue.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/acstandard_white.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/acstandard_white.png
new file mode 100644
index 0000000..32e354e
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/acstandard_white.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/airFreshstandard_blue.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/airFreshstandard_blue.png
new file mode 100644
index 0000000..23f6005
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/airFreshstandard_blue.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/airFreshstandard_white.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/airFreshstandard_white.png
new file mode 100644
index 0000000..9a40fd6
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/airFreshstandard_white.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/curtainroller_blue.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/curtainroller_blue.png
new file mode 100644
index 0000000..5ae946e
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/curtainroller_blue.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/curtainroller_white.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/curtainroller_white.png
new file mode 100644
index 0000000..1ff8d10
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/curtainroller_white.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/curtainshades_blue.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/curtainshades_blue.png
new file mode 100644
index 0000000..9053f13
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/curtainshades_blue.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/curtainshades_white.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/curtainshades_white.png
new file mode 100644
index 0000000..01a5a48
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/curtainshades_white.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/curtainswitch_blue.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/curtainswitch_blue.png
new file mode 100644
index 0000000..220ff6e
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/curtainswitch_blue.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/curtainswitch_white.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/curtainswitch_white.png
new file mode 100644
index 0000000..f74c97d
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/curtainswitch_white.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/curtaintrietex_blue.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/curtaintrietex_blue.png
new file mode 100644
index 0000000..e3671a2
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/curtaintrietex_blue.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/curtaintrietex_white.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/curtaintrietex_white.png
new file mode 100644
index 0000000..259e176
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/curtaintrietex_white.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricalQ1RsefNf91tIXyyQ_blue.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricalQ1RsefNf91tIXyyQ_blue.png
new file mode 100644
index 0000000..3caf309
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricalQ1RsefNf91tIXyyQ_blue.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricalQ1RsefNf91tIXyyQ_white.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricalQ1RsefNf91tIXyyQ_white.png
new file mode 100644
index 0000000..58dbb2d
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricalQ1RsefNf91tIXyyQ_white.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricalai6HtccKFIw3dxo3_blue.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricalai6HtccKFIw3dxo3_blue.png
new file mode 100644
index 0000000..aab3b24
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricalai6HtccKFIw3dxo3_blue.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricalai6HtccKFIw3dxo3_white.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricalai6HtccKFIw3dxo3_white.png
new file mode 100644
index 0000000..48e6784
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricalai6HtccKFIw3dxo3_white.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricalfan_blue.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricalfan_blue.png
new file mode 100644
index 0000000..c59a2e5
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricalfan_blue.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricalfan_white.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricalfan_white.png
new file mode 100644
index 0000000..8c5ead5
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricalfan_white.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricalkoiGhMKwLf2ZP81g_blue.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricalkoiGhMKwLf2ZP81g_blue.png
new file mode 100644
index 0000000..e25af0b
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricalkoiGhMKwLf2ZP81g_blue.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricalkoiGhMKwLf2ZP81g_white.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricalkoiGhMKwLf2ZP81g_white.png
new file mode 100644
index 0000000..4e2f1df
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricalkoiGhMKwLf2ZP81g_white.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricalracks_blue.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricalracks_blue.png
new file mode 100644
index 0000000..0e89579
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricalracks_blue.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricalracks_white.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricalracks_white.png
new file mode 100644
index 0000000..4845fa2
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricalracks_white.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricalsocket_blue.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricalsocket_blue.png
new file mode 100644
index 0000000..84ff63d
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricalsocket_blue.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricalsocket_white.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricalsocket_white.png
new file mode 100644
index 0000000..1fd6e8e
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricalsocket_white.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricaltv_blue.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricaltv_blue.png
new file mode 100644
index 0000000..d28c4af
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricaltv_blue.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricaltv_white.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricaltv_white.png
new file mode 100644
index 0000000..1f42e9f
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricaltv_white.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricaltyqborgovyzytytz_blue.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricaltyqborgovyzytytz_blue.png
new file mode 100644
index 0000000..c59a2e5
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricaltyqborgovyzytytz_blue.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricaltyqborgovyzytytz_white.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricaltyqborgovyzytytz_white.png
new file mode 100644
index 0000000..8c5ead5
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/electricaltyqborgovyzytytz_white.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/floorHeatstandard_blue.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/floorHeatstandard_blue.png
new file mode 100644
index 0000000..d44a273
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/floorHeatstandard_blue.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/floorHeatstandard_white.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/floorHeatstandard_white.png
new file mode 100644
index 0000000..06e28c0
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/floorHeatstandard_white.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/irac_blue.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/irac_blue.png
new file mode 100644
index 0000000..66155c5
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/irac_blue.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/irac_white.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/irac_white.png
new file mode 100644
index 0000000..32e354e
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/irac_white.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/irlearn_blue.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/irlearn_blue.png
new file mode 100644
index 0000000..50f52ea
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/irlearn_blue.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/irlearn_white.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/irlearn_white.png
new file mode 100644
index 0000000..80addfe
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/irlearn_white.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/irtv_blue.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/irtv_blue.png
new file mode 100644
index 0000000..d28c4af
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/irtv_blue.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/irtv_white.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/irtv_white.png
new file mode 100644
index 0000000..1f42e9f
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/irtv_white.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/lightcct_blue.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/lightcct_blue.png
new file mode 100644
index 0000000..5e07518
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/lightcct_blue.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/lightcct_white.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/lightcct_white.png
new file mode 100644
index 0000000..cb36722
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/lightcct_white.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/lightdimming_blue.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/lightdimming_blue.png
new file mode 100644
index 0000000..b40b6d9
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/lightdimming_blue.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/lightdimming_white.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/lightdimming_white.png
new file mode 100644
index 0000000..f18a303
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/lightdimming_white.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/lightrgb_blue.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/lightrgb_blue.png
new file mode 100644
index 0000000..5e07518
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/lightrgb_blue.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/lightrgb_white.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/lightrgb_white.png
new file mode 100644
index 0000000..cb36722
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/lightrgb_white.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/lightrgbw_blue.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/lightrgbw_blue.png
new file mode 100644
index 0000000..5e07518
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/lightrgbw_blue.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/lightrgbw_white.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/lightrgbw_white.png
new file mode 100644
index 0000000..cb36722
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/lightrgbw_white.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/lightswitch_blue.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/lightswitch_blue.png
new file mode 100644
index 0000000..9df7593
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/lightswitch_blue.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/lightswitch_white.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/lightswitch_white.png
new file mode 100644
index 0000000..79b5a76
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/lightswitch_white.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/musicstandard_blue.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/musicstandard_blue.png
new file mode 100644
index 0000000..512f3eb
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/musicstandard_blue.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/musicstandard_white.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/musicstandard_white.png
new file mode 100644
index 0000000..85065ec
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/musicstandard_white.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/acstandard.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/acstandard.png
new file mode 100644
index 0000000..6d7221b
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/acstandard.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/airFreshstandard.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/airFreshstandard.png
new file mode 100644
index 0000000..6657bae
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/airFreshstandard.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/curtainroller.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/curtainroller.png
new file mode 100644
index 0000000..10bdb27
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/curtainroller.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/curtainshades.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/curtainshades.png
new file mode 100644
index 0000000..abeae75
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/curtainshades.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/curtainswitch.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/curtainswitch.png
new file mode 100644
index 0000000..8ce4669
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/curtainswitch.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/curtaintrietex.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/curtaintrietex.png
new file mode 100644
index 0000000..0eeb3a0
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/curtaintrietex.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/electricalQ1RsefNf91tIXyyQ.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/electricalQ1RsefNf91tIXyyQ.png
new file mode 100644
index 0000000..f299156
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/electricalQ1RsefNf91tIXyyQ.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/electricalai6HtccKFIw3dxo3.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/electricalai6HtccKFIw3dxo3.png
new file mode 100644
index 0000000..8486852
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/electricalai6HtccKFIw3dxo3.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/electricalfan.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/electricalfan.png
new file mode 100644
index 0000000..0447c4d
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/electricalfan.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/electricalkoiGhMKwLf2ZP81g.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/electricalkoiGhMKwLf2ZP81g.png
new file mode 100644
index 0000000..ed0735d
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/electricalkoiGhMKwLf2ZP81g.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/electricalracks.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/electricalracks.png
new file mode 100644
index 0000000..6f10d54
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/electricalracks.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/electricalsocket.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/electricalsocket.png
new file mode 100644
index 0000000..6a324db
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/electricalsocket.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/electricaltv.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/electricaltv.png
new file mode 100644
index 0000000..7f9045f
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/electricaltv.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/electricaltyqborgovyzytytz.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/electricaltyqborgovyzytytz.png
new file mode 100644
index 0000000..0447c4d
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/electricaltyqborgovyzytytz.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/floorHeatstandard.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/floorHeatstandard.png
new file mode 100644
index 0000000..c067812
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/floorHeatstandard.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/irac.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/irac.png
new file mode 100644
index 0000000..6d7221b
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/irac.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/irlearn.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/irlearn.png
new file mode 100644
index 0000000..f6654d9
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/irlearn.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/irmodule.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/irmodule.png
new file mode 100644
index 0000000..5bb5bb2
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/irmodule.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/irtv.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/irtv.png
new file mode 100644
index 0000000..7f9045f
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/irtv.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/lightcct.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/lightcct.png
new file mode 100644
index 0000000..9fabb8e
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/lightcct.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/lightdimming.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/lightdimming.png
new file mode 100644
index 0000000..6fd97b5
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/lightdimming.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/lightrgb.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/lightrgb.png
new file mode 100644
index 0000000..9fabb8e
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/lightrgb.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/lightrgbw.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/lightrgbw.png
new file mode 100644
index 0000000..9fabb8e
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/lightrgbw.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/lightswitch.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/lightswitch.png
new file mode 100644
index 0000000..0aa1f98
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/lightswitch.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/musicstandard.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/musicstandard.png
new file mode 100644
index 0000000..d522bf3
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/musicstandard.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/sensorco2.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/sensorco2.png
new file mode 100644
index 0000000..4d52fc1
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/sensorco2.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/sensordoorwindow.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/sensordoorwindow.png
new file mode 100644
index 0000000..6f82b1f
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/sensordoorwindow.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/sensorgas.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/sensorgas.png
new file mode 100644
index 0000000..6e05b01
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/sensorgas.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/sensorhumidity.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/sensorhumidity.png
new file mode 100644
index 0000000..3549ac7
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/sensorhumidity.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/sensorpir.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/sensorpir.png
new file mode 100644
index 0000000..5afa201
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/sensorpir.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/sensorpm25.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/sensorpm25.png
new file mode 100644
index 0000000..2f07a0b
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/sensorpm25.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/sensorsmoke.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/sensorsmoke.png
new file mode 100644
index 0000000..245f9de
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/sensorsmoke.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/sensortemperature.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/sensortemperature.png
new file mode 100644
index 0000000..d852749
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/sensortemperature.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/sensortvoc.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/sensortvoc.png
new file mode 100644
index 0000000..a37cc0e
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/sensortvoc.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/sensorwater.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/sensorwater.png
new file mode 100644
index 0000000..57b566a
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/sensorwater.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/PersonalCenter/AddDevice/ConnectSuccess.png b/HDL-ON_iOS/Resources/Phone/PersonalCenter/AddDevice/ConnectSuccess.png
new file mode 100644
index 0000000..8c6b86e
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/PersonalCenter/AddDevice/ConnectSuccess.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/PersonalCenter/AddDevice/ConnectSuccessSelect.png b/HDL-ON_iOS/Resources/Phone/PersonalCenter/AddDevice/ConnectSuccessSelect.png
new file mode 100644
index 0000000..224fd3f
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/PersonalCenter/AddDevice/ConnectSuccessSelect.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/PersonalCenter/AddDevice/MiniRemoteControlBigPictrue.png b/HDL-ON_iOS/Resources/Phone/PersonalCenter/AddDevice/MiniRemoteControlBigPictrue.png
new file mode 100644
index 0000000..a6ccf0a
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/PersonalCenter/AddDevice/MiniRemoteControlBigPictrue.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/PersonalCenter/AddDevice/MiniRemoteControlMenuIcon.png b/HDL-ON_iOS/Resources/Phone/PersonalCenter/AddDevice/MiniRemoteControlMenuIcon.png
new file mode 100644
index 0000000..be9906d
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/PersonalCenter/AddDevice/MiniRemoteControlMenuIcon.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/PersonalCenter/AddDevice/NetConnectSelect.png b/HDL-ON_iOS/Resources/Phone/PersonalCenter/AddDevice/NetConnectSelect.png
new file mode 100644
index 0000000..1c6cbfe
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/PersonalCenter/AddDevice/NetConnectSelect.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/PersonalCenter/AddDevice/UploadToClound.png b/HDL-ON_iOS/Resources/Phone/PersonalCenter/AddDevice/UploadToClound.png
new file mode 100644
index 0000000..ffef099
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/PersonalCenter/AddDevice/UploadToClound.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/PersonalCenter/AddDevice/UploadToCloundSelect.png b/HDL-ON_iOS/Resources/Phone/PersonalCenter/AddDevice/UploadToCloundSelect.png
new file mode 100644
index 0000000..fe57fe5
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/PersonalCenter/AddDevice/UploadToCloundSelect.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/PersonalCenter/AddDevice/WifiAndPhoneConnect.png b/HDL-ON_iOS/Resources/Phone/PersonalCenter/AddDevice/WifiAndPhoneConnect.png
new file mode 100644
index 0000000..4039574
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/PersonalCenter/AddDevice/WifiAndPhoneConnect.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/PirIcon/Infraredtreasure.png b/HDL-ON_iOS/Resources/Phone/PirIcon/Infraredtreasure.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/PirIcon/adddevice.png b/HDL-ON_iOS/Resources/Phone/PirIcon/adddevice.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/PirIcon/addlbuton.png b/HDL-ON_iOS/Resources/Phone/PirIcon/addlbuton.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/PirIcon/air.png b/HDL-ON_iOS/Resources/Phone/PirIcon/air.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/PirIcon/custom.png b/HDL-ON_iOS/Resources/Phone/PirIcon/custom.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/PirIcon/del.png b/HDL-ON_iOS/Resources/Phone/PirIcon/del.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/PirIcon/delbuton.png b/HDL-ON_iOS/Resources/Phone/PirIcon/delbuton.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/PirIcon/dropdown.png b/HDL-ON_iOS/Resources/Phone/PirIcon/dropdown.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/PirIcon/dvd.png b/HDL-ON_iOS/Resources/Phone/PirIcon/dvd.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/PirIcon/fan.png b/HDL-ON_iOS/Resources/Phone/PirIcon/fan.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/PirIcon/next.png b/HDL-ON_iOS/Resources/Phone/PirIcon/next.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/PirIcon/offline.png b/HDL-ON_iOS/Resources/Phone/PirIcon/offline.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/PirIcon/online.png b/HDL-ON_iOS/Resources/Phone/PirIcon/online.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/PirIcon/priequipment.png b/HDL-ON_iOS/Resources/Phone/PirIcon/priequipment.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/PirIcon/projector.png b/HDL-ON_iOS/Resources/Phone/PirIcon/projector.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/PirIcon/search.png b/HDL-ON_iOS/Resources/Phone/PirIcon/search.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/PirIcon/stb.png b/HDL-ON_iOS/Resources/Phone/PirIcon/stb.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/PirIcon/tv.png b/HDL-ON_iOS/Resources/Phone/PirIcon/tv.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/Public/ProgressMsg.png b/HDL-ON_iOS/Resources/Phone/Public/ProgressMsg.png
new file mode 100644
index 0000000..e0255b8
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/Public/ProgressMsg.png
Binary files differ
diff --git a/HDL_ON/.DS_Store b/HDL_ON/.DS_Store
index 369c06c..b92307c 100644
--- a/HDL_ON/.DS_Store
+++ b/HDL_ON/.DS_Store
Binary files differ
diff --git a/HDL_ON/Common/ApiUtlis.cs b/HDL_ON/Common/ApiUtlis.cs
index 3141f5d..1517a67 100644
--- a/HDL_ON/Common/ApiUtlis.cs
+++ b/HDL_ON/Common/ApiUtlis.cs
@@ -356,12 +356,15 @@
catch { }
finally
{
- #region 璇诲彇鏈湴鏁版嵁
- //璇诲彇闊充箰淇℃伅
- UI.Music.A31MusicModel.ReadMusicStates();
- //鎼滅储缃戝叧
- DriverLayer.Control.Ins.SearchLoaclGateway();
- #endregion
+ if (DB_ResidenceData.Instance.CurrentRegion != null)
+ {
+ #region 璇诲彇鏈湴鏁版嵁
+ //璇诲彇闊充箰淇℃伅
+ UI.Music.A31MusicModel.ReadMusicStates();
+ //鎼滅储缃戝叧
+ DriverLayer.Control.Ins.SearchLoaclGateway();
+ #endregion
+ }
}
})
{ IsBackground = true }.Start();
diff --git a/HDL_ON/Common/FileUtlis.cs b/HDL_ON/Common/FileUtlis.cs
index 0d3e2f2..63a3e07 100644
--- a/HDL_ON/Common/FileUtlis.cs
+++ b/HDL_ON/Common/FileUtlis.cs
@@ -48,6 +48,10 @@
{
get
{
+ if(DB_ResidenceData.Instance.CurrentRegion == null || DB_ResidenceData.Instance.CurrentRegion.RegionID == null)
+ {
+ return AccountPath;
+ }
if (string.IsNullOrEmpty(regionPath) || !regionPath.Contains(DB_ResidenceData.Instance.CurrentRegion.RegionID ))
{
regionPath = Path.Combine(AccountPath, DB_ResidenceData.Instance.CurrentRegion.RegionID);
@@ -305,6 +309,9 @@
}
}
});
+ }else
+ {
+ action?.Invoke();
}
}
diff --git a/HDL_ON/Common/HDLCommon.cs b/HDL_ON/Common/HDLCommon.cs
index a19d240..70b5864 100644
--- a/HDL_ON/Common/HDLCommon.cs
+++ b/HDL_ON/Common/HDLCommon.cs
@@ -537,6 +537,12 @@
if (b)
{
Android.Content.Intent intent = new Android.Content.Intent();
+ var bundle = new Android.OS.Bundle();
+ //浼犻�抧ame鍙傛暟涓簍inyphp
+ bundle.PutString("Token", ezChildAccessToken.accessToken);
+ bundle.PutString("HdlToken", UserInfo.Current.LoginTokenString);
+ bundle.PutString("Url", OnAppConfig.Instance.RequestHttpsHost);
+ intent.PutExtras(bundle);
intent.SetComponent(new Android.Content.ComponentName(Shared.Application.Activity, "com.videogo.MainActivity"));
Shared.Application.Activity.StartActivity(intent);
}
diff --git a/HDL_ON/Common/R.cs b/HDL_ON/Common/R.cs
index ab3559c..3d2d9c9 100644
--- a/HDL_ON/Common/R.cs
+++ b/HDL_ON/Common/R.cs
@@ -4,6 +4,11 @@
{
public static class StringId
{
+ public const int RemoteControl = 435;
+ public const int TimeSwitch = 434;
+ public const int WaterValve = 433;
+ public const int Use3tyBrandListTip = 432;
+ public const int Not3tyBrandListTip = 431;
public const int MinuteUint = 430;
public const int HourUint = 429;
public const int AnionTime = 428;
@@ -622,7 +627,115 @@
/// <summary>
/// 鏄惁閲嶇疆婊ょ綉
/// </summary>
- public const int ResetFilterScreenMsg = 1049;
+ public const int ResetFilterScreenMsg = 1049;
+ /// <summary>
+ /// 娣诲姞璁惧
+ /// </summary>
+ public const int AddDevice = 1050;
+ /// <summary>
+ /// mini鏅鸿兘閬ユ帶鍣�
+ /// </summary>
+ public const int MiniIntelligentRemoteControl = 1051;
+ /// <summary>
+ /// 娣诲姞绾㈠閬ユ帶
+ /// </summary>
+ public const int AddInfraredRemoteControl = 1052;
+ /// <summary>
+ /// 闀挎寜绾㈠閬ユ帶鍣ㄦ寜閽�10绉掞紝鎸囩ず鐏摑鑹插揩闂�
+ /// </summary>
+ public const int AddInfraredRemoteControlMsg1 = 1053;
+ /// <summary>
+ /// 璇风‘淇濇偍鐨勮摑鐗欏凡寮�鍚苟澶勪簬鍙互琚悳绱㈢姸鎬�
+ /// </summary>
+ public const int AddInfraredRemoteControlMsg2 = 1054;
+ /// <summary>
+ /// 涓嬩竴姝�
+ /// </summary>
+ public const int Next = 1055;
+ /// <summary>
+ /// 璁惧鎼滅储涓�...
+ /// </summary>
+ public const int SearchingDevice = 1056;
+ /// <summary>
+ /// 娌℃湁鍙戠幇绾㈠閬ユ帶鍣�
+ /// </summary>
+ public const int NoInfraredRemoteControlFound = 1057;
+ /// <summary>
+ /// 1銆佽妫�鏌ヨ澶囨槸鍚︽甯搁�氱數{0}2銆佽妫�鏌ヨ摑鐗欏姛鑳芥槸鍚︽甯稿紑鍚瘂0}3銆佽妫�鏌ユ寚绀虹伅鏄惁钃濊壊蹇棯鐘舵��
+ /// </summary>
+ public const int AddInfraredRemoteControlMsg3 = 1058;
+ /// <summary>
+ /// 閲嶆柊鎼滅储
+ /// </summary>
+ public const int ReSearch = 1059;
+ /// <summary>
+ /// 杩炴帴WiFi
+ /// </summary>
+ public const int ConnectWiFi = 1060;
+ /// <summary>
+ /// 鐩墠鍙敮鎸�2.4G WiFi缃戠粶{0}鏆備笉鏀寔甯︽湁涓枃瀛楃鐨刉iFi鍚嶇О
+ /// </summary>
+ public const int AddInfraredRemoteControlMsg4 = 1061;
+ /// <summary>
+ /// 瀵嗙爜
+ /// </summary>
+ public const int Password = 1062;
+ /// <summary>
+ /// 姝e湪杩炴帴涓�...
+ /// </summary>
+ public const int NowConnectting = 1063;
+ /// <summary>
+ /// 璇疯绾㈠閬ユ帶灏介噺鎺ヨ繎WIFI璺敱鍣�
+ /// </summary>
+ public const int AddInfraredRemoteControlMsg5 = 1064;
+ /// <summary>
+ /// 缃戠粶閾炬帴涓�
+ /// </summary>
+ public const int InTheNetworkLink = 1065;
+ /// <summary>
+ /// 涓婁紶鍒颁簯
+ /// </summary>
+ public const int UploadToCloud = 1066;
+ /// <summary>
+ /// 杩炴帴鎴愬姛
+ /// </summary>
+ public const int ConnectSuccess = 1067;
+ /// <summary>
+ /// 1銆佽妫�鏌ヨ澶囨槸鍚︽甯搁�氱數{0}2銆佽寮�鍚摑鐗欏姛鑳絳0}3銆佸苟闀挎寜鎸夐挳10s锛屾寚绀虹伅甯镐寒
+ /// </summary>
+ public const int AddInfraredRemoteControlMsg6 = 1068;
+ /// <summary>
+ /// 娣诲姞澶辫触
+ /// </summary>
+ public const int AddFail = 1069;
+ /// <summary>
+ /// 娣诲姞鎴愬姛
+ /// </summary>
+ public const int AddSuccess = 1070;
+ /// <summary>
+ /// 鍙互寮�濮嬩娇鐢ㄧ孩澶栭仴鎺у姛鑳斤紒
+ /// </summary>
+ public const int AddInfraredRemoteControlMsg7 = 1071;
+ /// <summary>
+ /// 寮�濮嬩娇鐢�
+ /// </summary>
+ public const int StartUse = 1072;
+ /// <summary>
+ /// 璇锋墦寮�钃濈墮
+ /// </summary>
+ public const int PleaseTurnOnBluetooth = 1073;
+ /// <summary>
+ /// 浣嶇疆淇℃伅(GBS)涓嶅彲鐢�
+ /// </summary>
+ public const int GbsIsNotAvailable = 1074;
+ /// <summary>
+ /// 缃戠粶涓嶅彲鐢�
+ /// </summary>
+ public const int NetworkIsNotAvailable = 1075;
+ /// <summary>
+ /// 閫夋嫨绾㈠閬ユ帶鍣�
+ /// </summary>
+ public const int ChooseInfraredRemoteControl = 1076;
diff --git a/HDL_ON/Common/Utlis.cs b/HDL_ON/Common/Utlis.cs
index e2c5604..37e1aa8 100644
--- a/HDL_ON/Common/Utlis.cs
+++ b/HDL_ON/Common/Utlis.cs
@@ -42,6 +42,7 @@
{
Text = mes,
CloseTime = closeTime,
+ MaxWidth = Application.GetRealWidth(300),
Direction = AMPopTipDirection.None
};
tip.Show(MainPage.BaseView);
@@ -273,7 +274,7 @@
}
/// <summary>
- ///
+ /// 鏃堕棿鎴宠浆鏃堕棿瀛楃涓�
/// </summary>
/// <param name="unixTimeStamp"></param>
/// <param name="format"></param>
diff --git a/HDL_ON/DAL/DriverLayer/A_Protocol_Common.cs b/HDL_ON/DAL/DriverLayer/A_Protocol_Common.cs
index be70231..ecd149d 100644
--- a/HDL_ON/DAL/DriverLayer/A_Protocol_Common.cs
+++ b/HDL_ON/DAL/DriverLayer/A_Protocol_Common.cs
@@ -86,6 +86,17 @@
}
}
/// <summary>
+ /// 鏈湴鎺у埗绾㈠璁惧鍔熻兘涓婚
+ /// </summary>
+ public string ControlIrFunctionTopic
+ {
+ get
+ {
+ return $"/base/${Control.Ins.GatewayId}/thing/property/down";
+ }
+ }
+
+ /// <summary>
/// 璇诲彇鍔熻兘鐘舵��
/// </summary>
public string ReadStatus
diff --git a/HDL_ON/DAL/DriverLayer/Control.cs b/HDL_ON/DAL/DriverLayer/Control.cs
index 106ed8e..de9a955 100644
--- a/HDL_ON/DAL/DriverLayer/Control.cs
+++ b/HDL_ON/DAL/DriverLayer/Control.cs
@@ -50,15 +50,15 @@
return _msg_id++;
}
}
- /// <summary>
- /// 鑾峰彇13浣嶆椂闂存埑
- /// </summary>
- /// <returns></returns>
- public string Get_TimeStamp()
- {
- long t = DateTime.Now.Ticks / 10000;
- return t.ToString();
- }
+ ///// <summary>
+ ///// 鑾峰彇13浣嶆椂闂存埑
+ ///// </summary>
+ ///// <returns></returns>
+ //public string Get_TimeStamp()
+ //{
+ // long t = DateTime.Now.Ticks / 10000;
+ // return t.ToString();
+ //}
/// <summary>
/// 鏄惁鎼滅储鏈湴缃戝叧鎴愬姛
@@ -229,7 +229,7 @@
public void SearchLoaclGateway()
{
//2021-01-15 : 浣忓畢娌℃湁缁戝畾缃戝叧鐨勬椂鍊欎笉鐢ㄦ悳绱紝骞朵笖涓嶈兘閾炬帴mqtt
- if(DB_ResidenceData.Instance.HomeGateway == null)
+ if(DB_ResidenceData.Instance.HomeGateway == null || string.IsNullOrEmpty(DB_ResidenceData.Instance.HomeGateway.gatewayId))
{
return;
}
@@ -603,6 +603,7 @@
}
MainPage.Log($"灞�鍩熺綉淇℃伅: {receiveObj.Topic}");
+ MainPage.Log($"鍐呭: {res[1]}");
//楠岃瘉鏈夋晥鏁版嵁闀垮害
@@ -613,13 +614,14 @@
//}
receiveObj.BodyDataString = res[1];
- var bodyJObj = Newtonsoft.Json.JsonConvert.DeserializeObject<ResponsePack>(res[1]);
- if (bodyJObj == null)
- {
- return receiveObj;
- }
if (receiveObj.Topic == CommunicationTopic.SearchLoaclGatewayReply)
{
+ var bodyJObj = Newtonsoft.Json.JsonConvert.DeserializeObject<ResponsePack>(res[1]);
+ if (bodyJObj == null)
+ {
+ return receiveObj;
+ }
+
var device = Newtonsoft.Json.JsonConvert.DeserializeObject<DeviceModule>(bodyJObj.objects.ToString());
if (device.device_mac == DB_ResidenceData.Instance.residenceGatewayMAC)
{
@@ -643,6 +645,11 @@
{
//TODO 鏆傛椂涓嶄紶姝g‘鐨勬暟鎹笂鍘伙紝濡傛灉鍚庨潰瑕佷紭鍖栧墠闈㈣繖浜涗唬鐮�
UpdataFunctionStatus(receiveObj.BodyDataString, null);
+ }
+ else
+ {
+ //涓�浜涚壒娈婄殑涓婚澶勭悊(涓轰簡鎵ц閫熷害,灏藉彲鑳界殑鍒姞鑰楁椂鐨勬搷浣�)
+ Stan.HdlCloudReceiveLogic.Current.CloudOverallMsgReceiveEx(receiveObj.Topic, receiveObj.BodyDataString);
}
}
return receiveObj;
@@ -689,6 +696,7 @@
MainPage.Log($"A鍗忚鏇存柊鐘舵��:{revString}");
foreach (var attr in updateTemp.status)
{
+ localFunction.time_stamp = temp.time_stamp;
localFunction.SetAttrState(attr.key, attr.value);
}
diff --git a/HDL_ON/DAL/DriverLayer/Control_Udp.cs b/HDL_ON/DAL/DriverLayer/Control_Udp.cs
index d4762a2..35e8539 100644
--- a/HDL_ON/DAL/DriverLayer/Control_Udp.cs
+++ b/HDL_ON/DAL/DriverLayer/Control_Udp.cs
@@ -957,7 +957,7 @@
{
try
{
- var sendJob = new JObject { { "id", Control.Ins.msg_id.ToString() }, { "time_stamp", (DateTime.Now.Ticks / 100000).ToString() } };
+ var sendJob = new JObject { { "id", Control.Ins.msg_id.ToString() }, { "time_stamp", Utlis.GetTimestamp ()} };
var bodyString = JsonConvert.SerializeObject(sendJob);
var sendBytes = Control.Ins.ConvertSendBodyData(CommunicationTopic.SearchLoaclGateway, bodyString);
diff --git a/HDL_ON/DAL/Mqtt/MqttClient.cs b/HDL_ON/DAL/Mqtt/MqttClient.cs
index a3fe1fe..61ca982 100644
--- a/HDL_ON/DAL/Mqtt/MqttClient.cs
+++ b/HDL_ON/DAL/Mqtt/MqttClient.cs
@@ -11,6 +11,7 @@
using HDL_ON.DriverLayer;
using HDL_ON.Entity;
using HDL_ON.UI;
+using HDL_ON.DAL.Server;
namespace HDL_ON.DAL.Mqtt
{
@@ -198,16 +199,37 @@
QualityOfServiceLevel = MQTTnet.Protocol.MqttQualityOfServiceLevel.AtMostOnce
};
//App璁㈤槄閬ユ帶鍣ㄨ嚜瀛︽寜閿涔犳垚鍔熼�氱煡
- var study = new MqttTopicFilter()
+ var pirStudy = new MqttTopicFilter()
{
Topic = $"/user/{DB_ResidenceData.Instance.CurrentRegion.RegionID}/app/thing/event/irCodeStudyDone/up",
QualityOfServiceLevel = MQTTnet.Protocol.MqttQualityOfServiceLevel.AtMostOnce
};
+ #region 鏁版嵁鏇存柊鎺ㄩ�佷富棰�
+ //appHomeRefresh锛氫綇瀹呮暟鎹埛鏂伴�氱煡
+ var appHomeRefresh = new MqttTopicFilter()
+ {
+ Topic = $"/user/{DB_ResidenceData.Instance.CurrentRegion.RegionID}/app/thing/event/appHomeRefresh/up",
+ QualityOfServiceLevel = MQTTnet.Protocol.MqttQualityOfServiceLevel.AtMostOnce
+ };
+ //appRoomRefresh锛氭埧闂存暟鎹埛鏂伴�氱煡
+ var appRoomRefresh = new MqttTopicFilter()
+ {
+ Topic = $"/user/{DB_ResidenceData.Instance.CurrentRegion.RegionID}/app/thing/event/appRoomRefresh/up",
+ QualityOfServiceLevel = MQTTnet.Protocol.MqttQualityOfServiceLevel.AtMostOnce
+ };
+ //appDeviceRefresh锛氳澶囨暟鎹埛鏂伴�氱煡
+ var appDeviceRefresh = new MqttTopicFilter()
+ {
+ Topic = $"/user/{DB_ResidenceData.Instance.CurrentRegion.RegionID}/app/thing/event/appDeviceRefresh/up",
+ QualityOfServiceLevel = MQTTnet.Protocol.MqttQualityOfServiceLevel.AtMostOnce
+ };
+ #endregion
+
Utlis.WriteLine("寮�濮嬭闃咃紒");
var result = await RemoteMqttClient.SubscribeAsync(new MqttTopicFilter[] {
- pirStatus,
- study,
+ pirStatus,pirStudy,
+ appDeviceRefresh,appHomeRefresh,appRoomRefresh,
topicFilterPush2, topicAlinkStatus });
if (result.Items[0].ResultCode == MQTTnet.Client.Subscribing.MqttClientSubscribeResultCode.GrantedQoS0)
{
@@ -233,6 +255,10 @@
}
if (!UserInfo.Current.IsLogin)
+ {
+ return;
+ }
+ if(DB_ResidenceData.Instance.CurrentRegion == null || DB_ResidenceData.Instance.CurrentRegion.RegionID == null)
{
return;
}
@@ -287,6 +313,12 @@
}
}
+ //涓�浜涚壒娈婄殑涓婚澶勭悊(涓轰簡鎵ц閫熷害,灏藉彲鑳界殑鍒姞鑰楁椂鐨勬搷浣� true:鎵ц浜嗙壒娈婂鐞� false:娌℃湁鎵ц鐗规畩澶勭悊)
+ if (Stan.HdlCloudReceiveLogic.Current.CloudOverallMsgReceiveEx(topic, e.ApplicationMessage.Payload, mqttEncryptKey, tuyaEncryptKey) == true)
+ {
+ return;
+ }
+
if (topic == $"/BusGateWayToClient/{UserInfo.Current.ID}" + PushNotifySqueeze)
{
var mMes = Encoding.UTF8.GetString(e.ApplicationMessage.Payload);
@@ -299,18 +331,88 @@
var bytes = Securitys.EncryptionService.AesDecryptPayload(e.ApplicationMessage.Payload, tuyaEncryptKey);
var revString = Encoding.UTF8.GetString(bytes);
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")
{
var bytes = Securitys.EncryptionService.AesDecryptPayload(e.ApplicationMessage.Payload, tuyaEncryptKey);
var revString = Encoding.UTF8.GetString(bytes);
- HDL_ON.UI.UI2.PersonalCenter.PirDevice.Method.buttondata = revString;
- //ReceiveCheckGateway(ss);
- //return;
+ UI.UI2.PersonalCenter.PirDevice.Method.controldata = revString;
}
+ #region 鏁版嵁鏇存柊鎺ㄩ�佷富棰�
+ //appHomeRefresh锛氫綇瀹呮暟鎹埛鏂伴�氱煡
+ else if (topic == $"/user/{DB_ResidenceData.Instance.CurrentRegion.RegionID}/app/thing/event/appHomeRefresh/up") {
+ MainPage.Log("浣忓畢鏁版嵁鍒锋柊閫氱煡");
+ new HttpServerRequest().GetHomePager();
+ }
+ //appRoomRefresh锛氭埧闂存暟鎹埛鏂伴�氱煡
+ else if (topic == $"/user/{DB_ResidenceData.Instance.CurrentRegion.RegionID}/app/thing/event/appRoomRefresh/up"){
+ MainPage.Log("鎴块棿鏁版嵁鍒锋柊閫氱煡");
+ var roomResult = new HttpServerRequest().GetRoomList();
+ if (roomResult.Code == StateCode.SUCCESS)
+ {
+ MainPage.Log($"璇诲彇鎴块棿淇℃伅鎴愬姛");
+ var revData = Newtonsoft.Json.JsonConvert.DeserializeObject<SpatialApiPack>(roomResult.Data.ToString());
+ if (revData == null)
+ {
+ revData = new SpatialApiPack();
+ }
+ {
+ SpatialInfo.CurrentSpatial.UpdateSpatialList(revData.list);
+ }
+ }
+ else
+ {
+ MainPage.Log($"璇诲彇鎴块棿鏁版嵁澶辫触:Code:{roomResult.Code}; msg:{roomResult.message}");
+ }
+ }
+ //appDeviceRefresh锛氳澶囨暟鎹埛鏂伴�氱煡
+ else if (topic == $"/user/{DB_ResidenceData.Instance.CurrentRegion.RegionID}/app/thing/event/appDeviceRefresh/up") {
+ MainPage.Log("璁惧鏁版嵁鍒锋柊閫氱煡");
+ var deviceResult = new HttpServerRequest().GetDeviceList();
+ if (deviceResult.Code == StateCode.SUCCESS)
+ {
+ MainPage.Log($"璇诲彇璁惧淇℃伅鎴愬姛");
+ var deviceList = Newtonsoft.Json.JsonConvert.DeserializeObject<DevcieApiPack>(deviceResult.Data.ToString());
+ if (deviceList == null)
+ {
+ deviceList = new DevcieApiPack();
+ }
+ string delFile = "";
+ if (FunctionList.List.GetDeviceFunctionList().Count > 0)
+ {
+ for (int i = 0; i < FunctionList.List.GetDeviceFunctionList().Count;)
+ {
+ var localFunction = FunctionList.List.GetDeviceFunctionList()[i];
+ if (localFunction.Spk_Prefix == FunctionCategory.Music || string.IsNullOrEmpty(localFunction.Spk_Prefix))
+ {
+ i++;
+ continue;
+ }
+ var newFunction = deviceList.list.Find((obj) => obj.deviceId == localFunction.deviceId);
+
+ if (delFile == localFunction.savePath)
+ {
+ i++;
+ continue;
+ }
+ delFile = localFunction.savePath;
+ FunctionList.List.DeleteFunction(localFunction);
+ }
+ }
+ //澶勭悊鍓╀笅鐨勬柊澧炲姛鑳�
+ foreach (var newFunction in deviceList.list)
+ {
+ newFunction.SaveFunctionFile();
+ FunctionList.List.IniFunctionList(newFunction.savePath);
+ }
+ }
+ else
+ {
+ MainPage.Log($"璇诲彇浜戠璁惧鏁版嵁澶辫触:Code:{deviceResult.Code}; Msg:{deviceResult.message}");
+ }
+ }
+ #endregion
//A缃戝叧璁惧鐘舵��-鍖呭惈娑傞甫璁惧
else if (topic == $"/user/{DB_ResidenceData.Instance.CurrentRegion.RegionID}/app/thing/property/send")
{
@@ -322,7 +424,7 @@
else
{
//SetGatewayOnlineResetCheck();
- var bytes = Securitys.EncryptionService.AesDecryptPayload(e.ApplicationMessage.Payload, mqttEncryptKey);
+ //var bytes = Securitys.EncryptionService.AesDecryptPayload(e.ApplicationMessage.Payload, mqttEncryptKey);
//bus鏁版嵁瑙f瀽
var packet = new Packet();
diff --git a/HDL_ON/DAL/Server/HttpServerRequest.cs b/HDL_ON/DAL/Server/HttpServerRequest.cs
index 55f94be..7dd8e14 100644
--- a/HDL_ON/DAL/Server/HttpServerRequest.cs
+++ b/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>
diff --git a/HDL_ON/DAL/Server/NewAPI.cs b/HDL_ON/DAL/Server/NewAPI.cs
index 86fce77..e016870 100644
--- a/HDL_ON/DAL/Server/NewAPI.cs
+++ b/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";
diff --git a/HDL_ON/Entity/Function/Function.cs b/HDL_ON/Entity/Function/Function.cs
index 0216ac5..0997ffa 100644
--- a/HDL_ON/Entity/Function/Function.cs
+++ b/HDL_ON/Entity/Function/Function.cs
@@ -65,6 +65,22 @@
#region 浼樺寲鍖哄煙 2021-02-25
/// <summary>
+ /// 鏇存柊鐨勬渶鍚庢椂闂�
+ /// </summary>
+ public string time_stamp = "1615261019796";
+
+ public string GeteTime()
+ {
+ try
+ {
+ DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1)); // 褰撳湴鏃跺尯
+ return startTime.AddMilliseconds(Convert.ToDouble(time_stamp)).ToString("s");
+ }
+ catch {
+ return DateTime.MinValue.ToString("s");
+ }
+ }
+ /// <summary>
/// 鑾峰彇灞炴�у垪琛�
/// </summary>
/// <returns></returns>
@@ -124,8 +140,16 @@
return true;
}
-
-
+ /// <summary>
+ /// icon鏂囦欢鍚嶇О
+ /// </summary>
+ public string IconName
+ {
+ get
+ {
+ return spk.Replace(".","");
+ }
+ }
/// <summary>
/// 涓婁竴娆℃墦寮�鐨勪寒搴�
@@ -512,9 +536,7 @@
{
var sendDataObj = new AlinkFunctionStatusObj();
sendDataObj.id = Control.Ins.msg_id.ToString();
- sendDataObj.time_stamp = Control.Ins.Get_TimeStamp();
-
-
+ sendDataObj.time_stamp = Utlis.GetTimestamp();
var acd = new AlinkStatusData();
acd.sid = sid;
foreach (var dic in commandDictionary)
@@ -524,9 +546,7 @@
aca.value = dic.Value;
acd.status.Add(aca);
}
-
sendDataObj.objects.Add(acd);
-
return sendDataObj;
}
/// <summary>
@@ -701,9 +721,22 @@
/// </summary>
public const string FanSpeed = "fan";
/// <summary>
+ /// 鎵嬪姩椋庡悜
+ /// </summary>
+ public const string FanManual = "fan_manual";
+ /// <summary>
+ /// 鑷姩椋庡悜
+ /// </summary>
+ public const string FanAuto = "fan_auto";
+
+ /// <summary>
/// 璁剧疆娓╁害
/// </summary>
public const string SetTemp = "set_temp";
+ /// <summary>
+ /// 娓╁害鍔犲噺
+ /// </summary>
+ public const string SetTempStep = "set_temp_step";
/// <summary>
/// 娓╁害妯″紡
/// 绌鸿皟銆佸湴鐑�//app鑷姞
@@ -802,6 +835,10 @@
/// 鎵撳紑鐧昏(椋庢墖)
/// </summary>
public const string OpenLevel = "openLevel";
+ /// <summary>
+ /// 绾㈠鎸夐敭
+ /// </summary>
+ public const string Key = "key";
#region tuya
@@ -988,9 +1025,13 @@
/// </summary>
public const string ElectricTV = "electrical.tv";
/// <summary>
+ /// 绾㈠銆佺數瑙�
+ /// </summary>
+ public const string TvIr = "ir.tv";
+ /// <summary>
/// 瀹剁數銆侀鎵�
/// </summary>
- public const string ElectricFan = "electrical.fan";
+ public const string ElectricFan = "electrical.fan";
/// <summary>
/// 瀹剁數銆佹秱楦︾┖姘斿噣鍖栧櫒
/// </summary>
@@ -998,7 +1039,7 @@
/// <summary>
/// 瀹剁數銆佹秱楦︾數椋庢墖
/// </summary>
- public const string ElectricTuyaFan = "electrical.tyqborgovyzytytz";
+ public const string ElectricTuyaFan = "electrical.tyqborgovyzytytz";
/// <summary>
/// 瀹剁數銆佹秱楦︽壂鍦版満鍣ㄤ汉
/// </summary>
@@ -1016,9 +1057,9 @@
/// </summary>
public const string IrModule = "ir.module";
/// <summary>
- /// 绾㈠鐢佃
+ /// 绾㈠閬ユ帶鍣�
/// </summary>
- public const string TvIr = "ir.tv";
+ public const string IrLearn = "ir.learn";
/// <summary>
@@ -1100,8 +1141,12 @@
/// 瀹剁數
/// </summary>
public const string Electric = "electrical";
+ /// <summary>
+ /// 绾㈠璁惧
+ /// </summary>
+ public const string IR = "ir";
- //Music = 0x09,
+
}
diff --git a/HDL_ON/Entity/FunctionList.cs b/HDL_ON/Entity/FunctionList.cs
index 8d83075..0d05bdb 100644
--- a/HDL_ON/Entity/FunctionList.cs
+++ b/HDL_ON/Entity/FunctionList.cs
@@ -41,7 +41,7 @@
/// <returns></returns>
public List<Function> GetAcList()
{
- return Functions.FindAll((obj) => obj.spk == SPK.AcStandard);
+ return Functions.FindAll((obj) => obj.spk == SPK.AcStandard || obj.spk == SPK.AcIr);
}
/// <summary>
@@ -97,11 +97,21 @@
return Functions.FindAll((obj) => obj.spk == SPK.ElectricFan || obj.spk == SPK.ElectricTuyaFan
|| obj.spk == SPK.ElectricSocket
+ || obj.spk == SPK.IrLearn
+ || obj.spk == SPK.TvIr
|| obj.spk == SPK.ElectricTV
|| obj.spk == SPK.ElectricTuyaAirCleaner
|| obj.spk == SPK.ElectricTuyaWeepRobot
|| obj.spk == SPK.ElectricTuyaWaterValve
|| obj.spk == SPK.ClothesHanger);
+ }
+ /// <summary>
+ /// 閬ユ帶鍣ㄥ垪琛�
+ /// </summary>
+ /// <returns></returns>
+ public List<Function> GetIrLearinList()
+ {
+ return Functions.FindAll((obj) => obj.spk == SPK.IrLearn);
}
/// <summary>
/// 椋庢墖鍒楄〃
@@ -115,7 +125,7 @@
/// </summary>
public List<Function> GetTVList()
{
- return Functions.FindAll((obj) => obj.spk == SPK.ElectricTV);
+ return Functions.FindAll((obj) => obj.spk == SPK.ElectricTV || obj.spk == SPK.TvIr);
}
/// <summary>
/// 瀹剁數鎻掑骇鍒楄〃
@@ -191,7 +201,11 @@
/// 鍔犺浇鍔熻兘鍒楄〃
/// </summary>
/// <param name="filePath"></param>
- public void IniFunctionList(string filePath)
+ /// <param name="checkRepeat">
+ /// <para>鑰冭檻鍒版�ц兘闂杩藉姞姝ゅ彉閲�,鏄惁妫�娴嬮噸澶�,鍙function鏈夋晥</para>
+ /// <para>true:褰撻噸澶嶅瓨鍦ㄦ椂,鏇挎崲鎺�</para>
+ /// <para>false:鐩存帴鏃犳潯浠舵坊鍔�</para></param>
+ public void IniFunctionList(string filePath, bool checkRepeat = false)
{
// todo 澧炲姞璁惧锛屽鍔犲姛鑳借繘鍔熻兘鍒楄〃
if (filePath.StartsWith("FunctionData_"))
@@ -204,10 +218,21 @@
FileUtlis.Files.DeleteFile(filePath);
return;
}
-
-
+ if (checkRepeat == true)
+ {
+ //妫�娴嬮噸澶�
+ for (int i = 0; i < Functions.Count; i++)
+ {
+ if (Functions[i].deviceId == tempFunction.deviceId)
+ {
+ //鍏堢Щ闄ゆ帀鍐嶅姞
+ Functions.RemoveAt(i);
+ Functions.Add(tempFunction);
+ return;
+ }
+ }
+ }
Functions.Add(tempFunction);
-
}
if (filePath.StartsWith("SceneData_"))
{
diff --git a/HDL_ON/Entity/Integratedbrand/IntegratedBrand.cs b/HDL_ON/Entity/Integratedbrand/IntegratedBrand.cs
index 70be6aa..ca7519b 100644
--- a/HDL_ON/Entity/Integratedbrand/IntegratedBrand.cs
+++ b/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銆丵RSCAN銆乑IG_BEE銆丒THERNET
+ /// </summary>
+ public string bindType;
+ }
+
}
diff --git a/HDL_ON/HDL_ON.projitems b/HDL_ON/HDL_ON.projitems
index 7518066..b64ad47 100644
--- a/HDL_ON/HDL_ON.projitems
+++ b/HDL_ON/HDL_ON.projitems
@@ -26,6 +26,8 @@
<Compile Include="$(MSBuildThisFileDirectory)Entity\Function\Function.cs" />
<Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Public\PublicAssmebly.cs" />
<Compile Include="$(MSBuildThisFileDirectory)UI\CSS\CSS.cs" />
+ <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Stan\Logic\HdlBluetoothAndroidLogic.cs" />
+ <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Stan\Logic\HdlBluetoothIOSLogic.cs" />
<Compile Include="$(MSBuildThisFileDirectory)UI\UI2\UserPageBLL.cs" />
<Compile Include="$(MSBuildThisFileDirectory)UI\UI2\UserPage.cs" />
<Compile Include="$(MSBuildThisFileDirectory)UI\UI2\2-Classification\ClassificationPage.cs" />
@@ -357,17 +359,28 @@
<Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Electrical\ClothesHangerSetTimePage.cs" />
<Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\ArmSensor\ArmSensorHistroyPaging.cs" />
<Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\AC\AcControlPage.cs" />
+ <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Stan\Logic\HdlCloudReceiveLogic.cs" />
+ <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Stan\Logic\HdlWifiLogic.cs" />
+ <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Stan\Controls\CompoundControls\ProgressRowBar.cs" />
+ <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\AddDevice\AddMiniRemoteControlDirection3Page.cs" />
+ <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\AddDevice\AddMiniRemoteControlDirection1Page.cs" />
+ <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\AddDevice\AddMiniRemoteControlDirection2Page.cs" />
+ <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\AddDevice\AddMiniRemoteControlDirection4Page.cs" />
+ <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\AddDevice\AddThirdPartyDeviceMenuListPage.cs" />
<Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PirDevice\Matching.cs" />
<Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PirDevice\View\PirNameView.cs" />
+ <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\AddFunction\BrandListPage.cs" />
+ <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Electrical\IrLearnPage.cs" />
<Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PirDevice\EditControl.cs" />
<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)UI\" />
<Folder Include="$(MSBuildThisFileDirectory)DAL\" />
<Folder Include="$(MSBuildThisFileDirectory)DAL\Mqtt\" />
<Folder Include="$(MSBuildThisFileDirectory)Common\" />
@@ -405,4 +418,4 @@
<Folder Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PirDevice\" />
<Folder Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PirDevice\View\" />
</ItemGroup>
-</Project>
+</Project>
\ No newline at end of file
diff --git a/HDL_ON/UI/.DS_Store b/HDL_ON/UI/.DS_Store
index bdfddd3..aa35eb6 100644
--- a/HDL_ON/UI/.DS_Store
+++ b/HDL_ON/UI/.DS_Store
Binary files differ
diff --git a/HDL_ON/UI/MainPage.cs b/HDL_ON/UI/MainPage.cs
index 7ee9323..1850d6b 100644
--- a/HDL_ON/UI/MainPage.cs
+++ b/HDL_ON/UI/MainPage.cs
@@ -26,7 +26,7 @@
/// <summary>
/// 鐗堟湰鍙�
/// </summary>
- public static string VersionString = "1.1.0305";
+ public static string VersionString = "1.1.0310";
///// <summary>
///// 瀹㈡埛绔被鍨�
///// </summary>
@@ -53,6 +53,14 @@
/// 鏄惁杩涘叆鍚庡彴
/// </summary>
public static bool IsEnterBackground = false;
+ /// <summary>
+ /// 褰撳墠鍒嗛〉绱㈠紩
+ /// 0:鏀惰棌
+ /// 1:鍒嗙被
+ /// 2:鏅鸿兘
+ /// 3:涓汉
+ /// </summary>
+ public static int CurPageIndex = 9999;
///// <summary>
///// 鍏徃浠g爜
diff --git a/HDL_ON/UI/UI0-Public/PublicAssmeblyBLL.cs b/HDL_ON/UI/UI0-Public/PublicAssmeblyBLL.cs
index 564ed4d..f8dae98 100644
--- a/HDL_ON/UI/UI0-Public/PublicAssmeblyBLL.cs
+++ b/HDL_ON/UI/UI0-Public/PublicAssmeblyBLL.cs
@@ -75,6 +75,7 @@
MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
break;
case SPK.ElectricTV:
+ case SPK.TvIr:
var tvView = new TVPage(function);
MainPage.BasePageView.AddChidren(tvView);
tvView.LoadPage(btnCollectionIcon, btnName, btnFromFloor);
@@ -138,6 +139,10 @@
var acPage = new AcControlPage();
acPage.AddForm(function, btnCollectionIcon, btnName, btnFromFloor);
break;
+ case SPK.IrLearn:
+ var irLearinPage = new IrLearnPage();
+ irLearinPage.AddForm(function, btnCollectionIcon, btnName, btnFromFloor);
+ break;
}
};
return eventHandler;
diff --git a/HDL_ON/UI/UI0-Public/TopViewDiv.cs b/HDL_ON/UI/UI0-Public/TopViewDiv.cs
index 556ac0f..080a209 100644
--- a/HDL_ON/UI/UI0-Public/TopViewDiv.cs
+++ b/HDL_ON/UI/UI0-Public/TopViewDiv.cs
@@ -242,7 +242,33 @@
btnAddIcon.MouseUpEventHandler += (sender, e) =>
{
- LoadEvent_AddEvent(type, callBack);
+ if (type == "floors")
+ {
+ Action<string> callBackAction = (floorName) =>
+ {
+ callBack("add", floorName);
+ };
+ string newFloorName = "1F";
+ for (int i = 0; i < SpatialInfo.CurrentSpatial.FloorList.Count + 1;)
+ {
+ newFloorName = ++i + "F";
+ if (null == SpatialInfo.CurrentSpatial.FloorList.Find((obj) => obj.roomName == newFloorName))
+ {
+ break;
+ }
+ }
+ var fs = new List<string>();
+ foreach (var f in SpatialInfo.CurrentSpatial.FloorList)
+ {
+ fs.Add(f.roomName);
+ }
+ new PublicAssmebly().LoadDialog_EditParater(StringId.AddFloors, newFloorName, callBackAction, StringId.FloorNameCannotBeEmpty,
+ StringId.AddFloorFailed_FloorAlreadyExist, fs);
+ }
+ else
+ {
+ callBack("", "");
+ }
};
}
diff --git a/HDL_ON/UI/UI0-Public/TopViewDivBLL.cs b/HDL_ON/UI/UI0-Public/TopViewDivBLL.cs
index 4620b7a..00106dd 100644
--- a/HDL_ON/UI/UI0-Public/TopViewDivBLL.cs
+++ b/HDL_ON/UI/UI0-Public/TopViewDivBLL.cs
@@ -36,38 +36,11 @@
/// <param name="type">娣诲姞鎸夐挳鐨勫姛鑳界被鍨�</param>
void LoadEvent_AddEvent(string type,Action <string,string> callBack)
{
- switch (type)
- {
- case "floors":
- Action<string> callBackAction = (floorName) =>
- {
- callBack("add", floorName);
- };
- string newFloorName = "1F";
- for (int i = 0; i < SpatialInfo.CurrentSpatial.FloorList.Count + 1; )
- {
- newFloorName = ++i + "F";
- if (null == SpatialInfo.CurrentSpatial.FloorList.Find((obj)=>obj.roomName == newFloorName))
- {
- break;
- }
- }
- var fs = new List<string>();
- foreach(var f in SpatialInfo.CurrentSpatial.FloorList)
- {
- fs.Add(f.roomName);
- }
- new PublicAssmebly().LoadDialog_EditParater(StringId.AddFloors,newFloorName , callBackAction,StringId.FloorNameCannotBeEmpty,
- StringId.AddFloorFailed_FloorAlreadyExist,fs);
- break;
- case "rooms":
- callBack("", "");
- break;
- case "Member":
- callBack("","");
- break;
+ //switch (type)
+ //{
- }
+
+ //}
}
}
diff --git a/HDL_ON/UI/UI0-Stan/Controls/BaseControl/TextInputBase.cs b/HDL_ON/UI/UI0-Stan/Controls/BaseControl/TextInputBase.cs
index 29d8059..b377db9 100644
--- a/HDL_ON/UI/UI0-Stan/Controls/BaseControl/TextInputBase.cs
+++ b/HDL_ON/UI/UI0-Stan/Controls/BaseControl/TextInputBase.cs
@@ -7,7 +7,7 @@
namespace HDL_ON.Stan
{
/// <summary>
- /// 杈撳叆妗嗘帶浠剁殑鏈�鍒濆師鍨�(涓嶅缓璁慨鏀瑰拰鐩存帴浣跨敤):鏍囧噯瀛椾綋棰滆壊锛屾枃瀛楀悜宸﹂潬榻�,14鍙峰瓧
+ /// 杈撳叆妗嗘帶浠剁殑鏈�鍒濆師鍨�(涓嶅缓璁慨鏀瑰拰鐩存帴浣跨敤):鏍囧噯瀛椾綋棰滆壊(0xFF798394)锛屾枃瀛楀悜宸﹂潬榻�,14鍙峰瓧
/// </summary>
public class TextInputBase : EditText
{
diff --git a/HDL_ON/UI/UI0-Stan/Controls/BottomControls/BottomClickButton.cs b/HDL_ON/UI/UI0-Stan/Controls/BottomControls/BottomClickButton.cs
index d1ec836..1476dd3 100644
--- a/HDL_ON/UI/UI0-Stan/Controls/BottomControls/BottomClickButton.cs
+++ b/HDL_ON/UI/UI0-Stan/Controls/BottomControls/BottomClickButton.cs
@@ -22,7 +22,7 @@
/// <param name="i_width">鏈変簺鐣岄潰寰堢壒娈�,涓嶇粺涓�鎸夐敭瀹藉害,鎵�浠ラ鐣欐鍙傛暟</param>
public BottomClickButton(int i_width = 188)
{
- this.Yaxis = Application.GetRealHeight(539);
+ this.Yaxis = Application.GetRealHeight(543);
//杩欎釜鏄竴鑸綅缃�
this.Y = this.Yaxis;
@@ -33,6 +33,7 @@
this.Gravity = Gravity.CenterHorizontal;
this.Radius = (uint)Application.GetRealHeight(44) / 2;
this.TextSize = CSS_FontSize.SubheadingFontSize;
+ this.BackgroundColor = CSS_Color.MainColor;
this.IsBold = true;
}
}
diff --git a/HDL_ON/UI/UI0-Stan/Controls/BottomControls/BottomItemSelectControl.cs b/HDL_ON/UI/UI0-Stan/Controls/BottomControls/BottomItemSelectControl.cs
index aaff1c0..ec3f199 100644
--- a/HDL_ON/UI/UI0-Stan/Controls/BottomControls/BottomItemSelectControl.cs
+++ b/HDL_ON/UI/UI0-Stan/Controls/BottomControls/BottomItemSelectControl.cs
@@ -100,7 +100,7 @@
/// 娣诲姞鑿滃崟琛�
/// </summary>
/// <param name="i_listText">鏄剧ず鐨勫垪琛ㄦ枃瀛�</param>
- /// <param name="i_listSelect">榛樿閫夋嫨</param>
+ /// <param name="i_listSelect">榛樿閫夋嫨(璇峰嬁璁剧疆涓簄ull)</param>
public void AddRowMenu(List<string> i_listText, List<int> i_listSelect)
{
foreach (var index in i_listSelect)
diff --git a/HDL_ON/UI/UI0-Stan/Controls/CompoundControls/ProgressRowBar.cs b/HDL_ON/UI/UI0-Stan/Controls/CompoundControls/ProgressRowBar.cs
new file mode 100644
index 0000000..f110e78
--- /dev/null
+++ b/HDL_ON/UI/UI0-Stan/Controls/CompoundControls/ProgressRowBar.cs
@@ -0,0 +1,251 @@
+锘縰sing HDL_ON.Stan;
+using Shared;
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace HDL_ON.UI
+{
+ /// <summary>
+ /// 琛屾潯绫诲瀷鐨勮繘搴︽潯鎺т欢
+ /// </summary>
+ public class ProgressRowBar : FrameLayout
+ {
+ #region 鈻� 鍙橀噺澹版槑___________________________
+
+ /// <summary>
+ /// 杩涘害鏉¤兘鍚﹀線鍥炶蛋(榛樿涓嶅彲浠�)
+ /// </summary>
+ public bool ProgressBarGoback = false;
+ /// <summary>
+ /// 浼氱Щ鍔ㄧ殑杩涘害鏉�
+ /// </summary>
+ private FrameLayout btnProgressBar = null;
+ /// <summary>
+ /// 鏄剧ず鏁板�肩櫨鍒嗘瘮鐨勬帶浠�
+ /// </summary>
+ private NormalViewControl btnProgressTextView = null;
+ /// <summary>
+ /// 绾跨▼鏄惁杩愯
+ /// </summary>
+ private bool isThreadAction = false;
+ /// <summary>
+ /// 妯″紡鍖哄垎
+ /// </summary>
+ private int m_ModeDiv = -1;
+
+ /// <summary>
+ /// 杩涘害鏉℃槸鍚﹀彲瑙�
+ /// </summary>
+ public new bool Visible
+ {
+ get { return base.Visible; }
+ set
+ {
+ if (this.btnProgressTextView != null)
+ {
+ this.btnProgressTextView.Visible = value;
+ }
+ base.Visible = value;
+ }
+ }
+
+ #endregion
+
+ #region 鈻� 鍒濆鍖朹____________________________
+
+ /// <summary>
+ /// 琛屾潯绫诲瀷鐨勮繘搴︽潯鎺т欢
+ /// </summary>
+ /// <param name="width">
+ /// <para>妯″紡1:浼氬姩鐨勯偅涓繘搴︽潯鐨勫搴�(闈炵湡瀹炲��)</para>
+ /// <para>妯″紡2:杩涘害鏉″湪鎸佺画鏃犻檺鐨勬潵鍥炵Щ鍔ㄧ殑鍖哄煙瀹藉害(闈炵湡瀹炲��)</para>
+ /// </param>
+ /// <param name="height">
+ /// <para>妯″紡1:浼氬姩鐨勯偅涓繘搴︽潯鐨勯珮搴�(闈炵湡瀹炲��)</para>
+ /// <para>妯″紡2:杩涘害鏉″湪鎸佺画鏃犻檺鐨勬潵鍥炵Щ鍔ㄧ殑楂樺害(闈炵湡瀹炲��)</para>
+ /// </param>
+ public ProgressRowBar(int width, int height)
+ {
+ this.Height = Application.GetRealHeight(height);
+ this.Width = Application.GetRealWidth(width);
+ this.BackgroundColor = UI.CSS.CSS_Color.BackgroundColor;
+ this.Radius = (uint)Application.GetRealHeight(height) / 2;
+ }
+
+ #endregion
+
+ #region 鈻� 妯″紡1______________________________
+
+ /// <summary>
+ /// 妯″紡1 璇ユā寮忎负锛氭墜鍔ㄥ~鍐欒繘搴﹀��
+ /// </summary>
+ /// <param name="showText">
+ /// <para>鏄惁鍦ㄨ繘搴︽潯涓婃柟鏄剧ず鏁板�肩櫨鍒嗘瘮</para>
+ /// <para>璇风‘淇濇帶浠剁殑涓婃柟鏈夎冻澶熺殑鍖哄煙(娉�:璇蜂笉瑕佹墿澶ф鎺т欢鐨勯珮搴�)</para>
+ /// </param>
+ public void StartMode1(bool showText = false)
+ {
+ if (m_ModeDiv != -1) { return; }
+ this.m_ModeDiv = 1;
+
+ //浼氱Щ鍔ㄧ殑杩涘害鏉�
+ this.btnProgressBar = new FrameLayout();
+ btnProgressBar.Width = 0;
+ btnProgressBar.Height = this.Height;
+ btnProgressBar.BackgroundColor = UI.CSS.CSS_Color.MainColor;
+ btnProgressBar.Radius = (uint)this.Height / 2;
+ this.AddChidren(btnProgressBar);
+
+ if (showText == true)
+ {
+ //杩涘害鍊兼枃鏈�
+ this.btnProgressTextView = new NormalViewControl(32, 22, true);
+ btnProgressTextView.Y = this.Y - Application.GetRealHeight(22 + 10);//10:瀹冧笌杩涘害鏉$殑闂磋窛
+ btnProgressTextView.X = this.X - Application.GetRealWidth(32) / 2;
+ btnProgressTextView.UnSelectedImagePath = "Public/ProgressMsg.png";
+ btnProgressTextView.TextSize = CSS.CSS_FontSize.PromptFontSize_SecondaryLevel;
+ btnProgressTextView.TextColor= CSS.CSS_Color.FirstLevelTitleColor;
+ btnProgressTextView.TextAlignment = TextAlignment.Center;
+ btnProgressTextView.Text = "0%";
+ this.Parent.AddChidren(btnProgressTextView);
+ }
+ }
+
+ /// <summary>
+ /// 閲嶇疆杩涘害鏉�(鍙妯″紡1鏈夋晥)
+ /// </summary>
+ public void ResetProgressBar()
+ {
+ if (this.m_ModeDiv == 1 && this.btnProgressBar != null)
+ {
+ this.btnProgressBar.Width = 0;
+ }
+ }
+
+ /// <summary>
+ /// 璁剧疆杩涘害鍊�
+ /// </summary>
+ /// <param name="value">姝ゅ�间负鐧惧垎姣斿��(涔熷氨鏄皬浜庢垨鑰呯瓑浜�1鐨�)</param>
+ public void SetValue(decimal value)
+ {
+ this.SetValueEx(value);
+ }
+
+ /// <summary>
+ /// 璁剧疆杩涘害鍊�
+ /// </summary>
+ /// <param name="value">杩涘害鍊�,鍐呴儴浼氶櫎浠axValue</param>
+ /// <param name="maxValue">鏈�澶у��</param>
+ public void SetValue(decimal value, decimal maxValue)
+ {
+ decimal result = value / maxValue;
+ this.SetValueEx(result);
+ }
+
+ /// <summary>
+ /// 璁剧疆杩涘害鍊�
+ /// </summary>
+ /// <param name="value"></param>
+ private void SetValueEx(decimal value)
+ {
+ if (btnProgressBar == null || this.m_ModeDiv != 1)
+ {
+ return;
+ }
+ if (value > 1) { value = 1; }
+
+ HdlThreadLogic.Current.RunMain(() =>
+ {
+ int width = (int)(value * this.Width);
+ if (this.ProgressBarGoback == false && btnProgressBar.Width >= width)
+ {
+ //涓嶈兘璁╄繘搴︽潯寰�鍥炶蛋
+ return;
+ }
+ btnProgressBar.Width = width;
+ if (this.btnProgressTextView != null)
+ {
+ //鏂囨湰鏄剧ず
+ btnProgressTextView.Text = ((int)(value * 100)) + "%";
+ //鏂囨湰鏄剧ず鐨勯偅涓浘鐗囨绉诲姩
+ this.btnProgressTextView.X = this.X + btnProgressBar.Right - btnProgressTextView.Width / 2;
+ }
+ });
+ }
+
+ #endregion
+
+ #region 鈻� 妯″紡2______________________________
+
+ /// <summary>
+ /// 妯″紡2 璇ユā寮忎负锛氫笉鑳芥墜鍔ㄦ寚瀹氳繘搴﹀��,鐢卞唴閮ㄧ嚎绋嬪鐞�,杩涘害鏉″湪鎸佺画鏃犻檺鐨勬潵鍥炵Щ鍔�
+ /// </summary>
+ /// <param name="proWidth">鎸佺画鏃犻檺鐨勬潵鍥炵Щ鍔ㄧ殑杩涘害鏉$殑瀹藉害(闈炵湡瀹炲��)</param>
+ public void StartMode2(int proWidth = 100)
+ {
+ if (m_ModeDiv != -1) { return; }
+ this.m_ModeDiv = 2;
+
+ //浼氱Щ鍔ㄧ殑杩涘害鏉�
+ this.btnProgressBar = new FrameLayout();
+ btnProgressBar.Width = Application.GetRealWidth(proWidth);
+ btnProgressBar.Height = this.Height;
+ btnProgressBar.BackgroundColor = 0xfffb744a;
+ btnProgressBar.Radius = (uint)this.Height / 2;
+ this.AddChidren(btnProgressBar);
+
+ //寮�鍚ā寮�2鐨勭嚎绋�
+ this.StartMode2Thread();
+ }
+
+ /// <summary>
+ /// 閲嶆柊寮�鍚ā寮�2
+ /// </summary>
+ public void ReStartMode2()
+ {
+ //寮�鍚ā寮�2鐨勭嚎绋�
+ this.StartMode2Thread();
+ }
+
+ /// <summary>
+ /// 鏆傚仠妯″紡2
+ /// </summary>
+ public void StopMode2()
+ {
+ this.isThreadAction = false;
+ }
+
+ /// <summary>
+ /// 寮�鍚ā寮�2鐨勭嚎绋�
+ /// </summary>
+ private void StartMode2Thread()
+ {
+ if (this.isThreadAction == true)
+ {
+ return;
+ }
+ this.isThreadAction = true;
+ int moveLength = Application.GetRealWidth(30);
+ HdlThreadLogic.Current.RunThread(() =>
+ {
+ while (this.Parent != null && isThreadAction == true)
+ {
+ HdlThreadLogic.Current.RunMain(() =>
+ {
+ if (this.btnProgressBar.X >= this.Width)
+ {
+ //瓒呭嚭鍙宠竟涔嬪悗,鍐嶆浠庡乏杈瑰惊鐜�
+ this.btnProgressBar.X = -this.btnProgressBar.Width;
+ return;
+ }
+ this.btnProgressBar.X += moveLength;
+ }, ShowErrorMode.NO);
+ System.Threading.Thread.Sleep(150);
+ }
+ });
+ }
+
+ #endregion
+ }
+}
diff --git a/HDL_ON/UI/UI0-Stan/Controls/MessageControls/ShowMsgControl.cs b/HDL_ON/UI/UI0-Stan/Controls/MessageControls/ShowMsgControl.cs
index 521bfb9..3081f6f 100644
--- a/HDL_ON/UI/UI0-Stan/Controls/MessageControls/ShowMsgControl.cs
+++ b/HDL_ON/UI/UI0-Stan/Controls/MessageControls/ShowMsgControl.cs
@@ -120,6 +120,13 @@
btnTemp.Text = msgText.Replace("\r\n", string.Empty);
//鑾峰彇杩欎釜鏄剧ず鐨勫唴瀹圭殑楂樺害
int rowCount = btnTemp.GetRealRowCountByText();
+ //鍐嶇湅鐪嬪畠鍘熸潵鎸夋崲琛岀鍒嗗壊涓哄嚑琛�
+ var myArry = msgText.Split(new string[] { "\r\n" }, StringSplitOptions.RemoveEmptyEntries);
+ //鐪嬬湅璋佺殑琛屾暟澶�,灏辩敤璋佺殑
+ if (myArry.Length > rowCount)
+ {
+ rowCount = myArry.Length;
+ }
int contentHeight = rowCount * Application.GetRealHeight(18);
if (rowCount <= 2)
{
diff --git a/HDL_ON/UI/UI0-Stan/Controls/NormalControls/NormalViewControl.cs b/HDL_ON/UI/UI0-Stan/Controls/NormalControls/NormalViewControl.cs
index 7ebb328..b16a121 100644
--- a/HDL_ON/UI/UI0-Stan/Controls/NormalControls/NormalViewControl.cs
+++ b/HDL_ON/UI/UI0-Stan/Controls/NormalControls/NormalViewControl.cs
@@ -11,7 +11,7 @@
public class NormalViewControl : ButtonCtrBase
{
/// <summary>
- /// 骞冲嚒鏅�氱殑鎺т欢,鍩烘湰鍙槸鐢ㄦ潵鏄剧ず(姝e父鏂囨湰瀛椾綋棰滆壊,鏂囧瓧鍚戝乏闈犻綈)
+ /// 骞冲嚒鏅�氱殑鎺т欢,鍩烘湰鍙槸鐢ㄦ潵鏄剧ず(姝e父鏂囨湰瀛椾綋棰滆壊(0xFF798394),鏂囧瓧鍚戝乏闈犻綈)
/// </summary>
/// <param name="i_Width">瀹藉害</param>
/// <param name="i_Height">楂樺害</param>
diff --git a/HDL_ON/UI/UI0-Stan/Form/Base/CommonFormBase.cs b/HDL_ON/UI/UI0-Stan/Form/Base/CommonFormBase.cs
index 86e2b4e..814f7d7 100644
--- a/HDL_ON/UI/UI0-Stan/Form/Base/CommonFormBase.cs
+++ b/HDL_ON/UI/UI0-Stan/Form/Base/CommonFormBase.cs
@@ -53,19 +53,6 @@
return;
}
- /// <summary>
- /// 娣诲姞鎸囧畾鐢婚潰锛屽苟绉婚櫎褰撳墠鐢婚潰锛屽惎鍔ㄥ弬鏁扮敱鎸囧畾鐢婚潰鐨凷howForm鍑芥暟鎵�鎸囧畾
- /// </summary>
- /// <param name="form">鐩爣鐣岄潰</param>
- /// <param name="parameter">鍚姩鍙傛暟锛氬弬鏁扮敱鎸囧畾鐢婚潰鐨凷howForm鍑芥暟鎵�鎸囧畾</param>
- public void AddFormAndCloseNowForm(CommonFormBase form, params object[] parameter)
- {
- //绉婚櫎褰撳墠鐢婚潰
- this.CloseForm();
- //娣诲姞鐢婚潰
- form.AddForm(parameter);
- }
-
#endregion
#region 鈻� 鍏抽棴鐣岄潰___________________________
diff --git a/HDL_ON/UI/UI0-Stan/Form/Base/EditorCommonForm.cs b/HDL_ON/UI/UI0-Stan/Form/Base/EditorCommonForm.cs
index 0f0e916..31bdbe3 100644
--- a/HDL_ON/UI/UI0-Stan/Form/Base/EditorCommonForm.cs
+++ b/HDL_ON/UI/UI0-Stan/Form/Base/EditorCommonForm.cs
@@ -287,6 +287,117 @@
#endregion
+ #region 鈻� 娣诲姞鍒楄〃娑堟伅鏄剧ず鎺т欢_______________
+
+ /// <summary>
+ /// 娣诲姞鍒楄〃娑堟伅鏄剧ず鎺т欢,杩斿洖鐨勬槸鏈�鍚庝竴涓帶浠剁殑搴曢儴鍧愭爣
+ /// </summary>
+ /// <param name="frameTable">妗屽竷瀹瑰櫒鎺т欢</param>
+ /// <param name="i_msg">鏄剧ず鐨勬秷鎭�(鎹㈣璇蜂娇鐢ㄣ�恵0}銆戣繘琛屽垎鍓�)</param>
+ /// <param name="i_fontSize">瀛椾綋澶у皬</param>
+ /// <param name="i_fontColor">瀛椾綋棰滆壊</param>
+ /// <param name="i_height">鎺т欢楂樺害(鐪熷疄鍊�)</param>
+ /// <param name="i_yy">Y杞村垵濮嬪潗鏍�(鐪熷疄鍊�)</param>
+ /// <param name="alignment">鏂囧瓧瀵归綈鏂瑰紡</param>
+ /// <param name="special">
+ /// <para>娉細闄や簡鏂板缓杩欎釜鍑芥暟鐨勫紑鍙戣�呬互澶栵紝閮戒笉寤鸿鎶婅繖涓�间笉璁剧疆涓簍rue</para>
+ /// <para>璇存槑锛氫互鏈�闀跨殑鎺т欢鐨刋杞翠负鍩哄噯,鎵�鏈夋帶浠剁殑X杞撮兘鍙樻垚涓�鑷�</para>
+ /// </param>
+ /// <returns></returns>
+ public int AddListMsgControls(FrameLayout frameTable, string i_msg, int i_fontSize, uint i_fontColor, int i_height,
+ int i_yy, TextAlignment alignment = TextAlignment.Center, bool special = false)
+ {
+ var listMsg = i_msg.Split(new string[] { "{0}" }, StringSplitOptions.RemoveEmptyEntries);
+ int defultWidth = this.bodyFrameLayout.Width - HdlControlResourse.XXLeft * 2;
+
+ var listContr = new List<NormalViewControl>();
+ int minXX = 10086;//鎺т欢闆嗗悎鏈�灏忕殑X杞�
+ foreach (var strMsg in listMsg)
+ {
+ //娑堟伅鏄剧ず鎺т欢
+ var btnMsg = new NormalViewControl(defultWidth, i_height, false);
+ btnMsg.Y = i_yy;
+ btnMsg.Gravity = Gravity.CenterHorizontal;
+ btnMsg.TextAlignment = alignment;
+ btnMsg.TextColor = i_fontColor;
+ btnMsg.TextSize = i_fontSize;
+ btnMsg.Text = strMsg;
+
+ //鐗规畩澶勭悊
+ if (special == true && alignment == TextAlignment.Center)
+ {
+ //璁剧疆瀹冪殑鐪熷疄瀹藉害(瀵箂pecial鍙橀噺鏈夌敤)
+ int realWidth = btnMsg.GetRealWidthByText();
+ btnMsg.Width = realWidth > defultWidth ? defultWidth : realWidth;
+ }
+ frameTable.AddChidren(btnMsg);
+
+ //鏀堕泦鎺т欢
+ listContr.Add(btnMsg);
+
+ //璁板綍鎺т欢闆嗗悎X杞存渶灏忕殑鍊�
+ if (btnMsg.X < minXX) { minXX = btnMsg.X; }
+
+ //涓よ涔嬮棿鐨勯棿璺濅负4
+ i_yy = btnMsg.Bottom + Application.GetRealHeight(4);
+ }
+ //鐗规畩澶勭悊
+ if (special == true && alignment == TextAlignment.Center)
+ {
+ foreach (var contr in listContr)
+ {
+ //浠ユ渶闀跨殑鎺т欢鐨刋杞翠负鍩哄噯,鎵�鏈夋帶浠剁殑X杞撮兘鍙樻垚涓�鑷�
+ contr.X = minXX;
+ }
+ }
+
+ return i_yy - Application.GetRealHeight(4);
+ }
+
+ #endregion
+
+ #region 鈻� 娣诲姞搴曢儴鐐瑰嚮鎸夐挳鎺т欢_______________
+
+ /// <summary>
+ /// 娣诲姞搴曢儴鐐瑰嚮鎸夐挳鎺т欢
+ /// </summary>
+ /// <param name="i_text">鏄剧ず鐨勬枃鏈�</param>
+ /// <returns></returns>
+ public BottomClickButton AddBottomClickButton(string i_text)
+ {
+ //瀹瑰櫒鎺т欢
+ var frameBack = new FrameLayout();
+ frameBack.Height = Application.GetRealHeight(76);
+ frameBack.Gravity = Gravity.BottomCenter;
+ bodyFrameLayout.AddChidren(frameBack);
+ //鐒跺悗鍦ㄩ《閮ㄦ坊鍔犱竴涓湁杈规鐨勪笢瑗�
+ var frameLine = new FrameLayout();
+ frameLine.Height = Application.GetRealHeight(50);
+ frameLine.BorderWidth = 1;
+ frameLine.BackgroundColor = UI.CSS.CSS_Color.MainBackgroundColor;
+ frameLine.BorderColor = UI.CSS.CSS_Color.DividingLineColor;
+ frameLine.SetCornerWithSameRadius(Application.GetRealHeight(24), HDLUtils.RectCornerTopLeft | HDLUtils.RectCornerTopRight);
+ frameBack.AddChidren(frameLine);
+ //鏈�鍚庡啀鏁翠釜鐧借壊鐨勪笢瑗块伄浣忓畠鐨勪笅閮�
+ var frameWite = new FrameLayout();
+ frameWite.Height = frameBack.Height - Application.GetRealHeight(24 - 10);//闇�瑕佽秴杩囧畠
+ frameWite.Width = frameBack.Width + Application.GetRealWidth(6);
+ frameWite.X = -Application.GetRealWidth(3);
+ frameWite.Y = Application.GetRealHeight(24);
+ frameWite.BackgroundColor = UI.CSS.CSS_Color.MainBackgroundColor;
+ frameBack.AddChidren(frameWite);
+
+ //鎸夐挳
+ var btnOk = new BottomClickButton(220);
+ btnOk.Gravity = Gravity.Center;
+ btnOk.Text = i_text;
+ frameBack.AddChidren(btnOk);
+
+ return btnOk;
+ }
+
+ #endregion
+
#region 鈻� 涓�鑸殑鏂规硶_________________________
/// <summary>
diff --git a/HDL_ON/UI/UI0-Stan/Logic/HdlBluetoothAndroidLogic.cs b/HDL_ON/UI/UI0-Stan/Logic/HdlBluetoothAndroidLogic.cs
new file mode 100644
index 0000000..b416038
--- /dev/null
+++ b/HDL_ON/UI/UI0-Stan/Logic/HdlBluetoothAndroidLogic.cs
@@ -0,0 +1,590 @@
+锘縰sing Shared;
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace HDL_ON.Stan
+{
+#if __Android__
+ public class HdlBluetoothLogic
+ {
+ #region 鈻� 鍙橀噺澹版槑___________________________
+
+ /// <summary>
+ /// 瀹夊崜钃濈墮鐨勯�昏緫
+ /// </summary>
+ private static HdlBluetoothLogic m_Current = null;
+ /// <summary>
+ /// 瀹夊崜钃濈墮鐨勯�昏緫
+ /// </summary>
+ public static HdlBluetoothLogic Current
+ {
+ get
+ {
+ if (m_Current == null)
+ {
+ m_Current = new HdlBluetoothLogic();
+ }
+ return m_Current;
+ }
+ }
+
+ /// <summary>
+ /// 褰撳墠钃濈墮瀹㈡埛绔�
+ /// </summary>
+ private Blufi.Espressif.BlufiClient nowBlufiClient = null;
+ /// <summary>
+ /// 鎺ユ敹浜嬩欢
+ /// </summary>
+ private Action<string> ReceiveEvent = null;
+ /// <summary>
+ /// 鍙戦�佺姸鎬�(0:鍙戦�佸け璐� 1:鍙戦�佹垚鍔�)
+ /// </summary>
+ private int sendStatuValue = -1;
+
+ #endregion
+
+ #region 鈻� 钃濈墮鎵�闇�鍔熻兘妫�娴媉__________________
+
+ /// <summary>
+ /// 妫�娴嬫槸鍚﹁兘澶熸悳绱㈣摑鐗�(鍐呴儴浼氬脊鍑篗sg妗�,鍥犱负鍐呴儴闇�瑕佹娴嬬郴缁熸潈闄�,鎵�浠ュ弬鏁伴噰鐢ㄥ洖璋冪殑鏂瑰紡)
+ /// </summary>
+ /// <param name="resultEvent">妫�娴嬬粨鏋滀簨浠�</param>
+ public void CheckCanScanBluetooth(Action<bool> resultEvent)
+ {
+ var adapter = Android.Bluetooth.BluetoothAdapter.DefaultAdapter;
+ var scanner = adapter.BluetoothLeScanner;
+ if (adapter.IsEnabled == false || scanner == null)
+ {
+ HdlMessageLogic.Current.ShowMassage(ShowMsgType.Tip, Language.StringByID(StringId.PleaseTurnOnBluetooth));
+ resultEvent?.Invoke(false);
+ return;
+ }
+ //妫�娴嬫槸鍚︽墦寮�浜嗙郴缁熷姛鑳�
+ if (Android.OS.Build.VERSION.SdkInt >= Android.OS.BuildVersionCodes.M)
+ {
+ var locationManager = (Android.Locations.LocationManager)Application.Activity.GetSystemService(Android.Content.Context.LocationService);
+ if (locationManager == null)
+ {
+ //浣嶇疆淇℃伅(GBS)涓嶅彲鐢�
+ HdlMessageLogic.Current.ShowMassage(ShowMsgType.Tip, Language.StringByID(StringId.GbsIsNotAvailable));
+ resultEvent?.Invoke(false);
+ return;
+ }
+ if (locationManager.IsProviderEnabled("network") == false)
+ {
+ HdlMessageLogic.Current.ShowMassage(ShowMsgType.Tip, Language.StringByID(StringId.NetworkIsNotAvailable));
+ resultEvent?.Invoke(false);
+ return;
+ }
+ if (locationManager.IsProviderEnabled("gps") == false)
+ {
+ //浣嶇疆淇℃伅(GBS)涓嶅彲鐢�
+ HdlMessageLogic.Current.ShowMassage(ShowMsgType.Tip, Language.StringByID(StringId.GbsIsNotAvailable));
+ resultEvent?.Invoke(false);
+ return;
+ }
+ }
+ //妫�娴嬭摑鐗欓渶瑕佺殑鏉冮檺
+ ((BaseActivity)Application.Activity).SetPermission((result1) =>
+ {
+ if (result1 == false)
+ {
+ resultEvent?.Invoke(false);
+ return;
+ }
+ ((BaseActivity)Application.Activity).SetPermission((result2) =>
+ {
+ if (result2 == false)
+ {
+ resultEvent?.Invoke(false);
+ return;
+ }
+ //鍏ㄩ儴閫氳繃
+ resultEvent?.Invoke(true);
+
+ }, "android.permission.ACCESS_FINE_LOCATION");
+
+ }, "android.permission.ACCESS_COARSE_LOCATION");
+ }
+
+ #endregion
+
+ #region 鈻� 钃濈墮鎵弿___________________________
+
+ /// <summary>
+ /// 鎼滅储钃濈墮
+ /// </summary>
+ /// <param name="waitTime">鎼滅储鏃堕棿(绉�)</param>
+ /// <param name="FinishEvent">鎼滅储缁撴潫鐨勪簨浠�</param>
+ public void ScanBluetooth(int waitTime, Action<List<BluetoothInfo>> FinishEvent)
+ {
+ HdlThreadLogic.Current.RunMain(() =>
+ {
+ //鍐嶆妫�娴嬫槸鍚﹁兘澶熸悳绱㈣摑鐗�
+ this.CheckCanScanBluetooth((result) =>
+ {
+ if (result == true)
+ {
+ HdlThreadLogic.Current.RunThread(() =>
+ {
+ //寮�濮嬫悳绱㈣摑鐗�
+ this.DoScanBluetooth(waitTime, FinishEvent);
+ });
+ }
+ });
+ });
+ }
+
+ /// <summary>
+ /// 寮�濮嬫悳绱㈣摑鐗�
+ /// </summary>
+ /// <param name="waitTime">鎼滅储鏃堕棿(绉�)</param>
+ /// <param name="FinishEvent">鎼滅储缁撴潫鐨勪簨浠�</param>
+ private void DoScanBluetooth(int waitTime, Action<List<BluetoothInfo>> FinishEvent)
+ {
+ var listBluetoothInfo = new List<BluetoothInfo>();
+
+ BluetoothScanCallback scanCallback = null;
+ Android.Bluetooth.BluetoothAdapter adapter = null;
+ Android.Bluetooth.LE.BluetoothLeScanner scanner = null;
+
+ //浠ラ槻涓囦竴,钃濈墮閮戒涪鍦ㄤ富绾跨▼涓繍琛�
+ HdlThreadLogic.Current.RunMain(() =>
+ {
+ adapter = Android.Bluetooth.BluetoothAdapter.DefaultAdapter;
+ scanner = adapter.BluetoothLeScanner;
+
+ scanCallback = new BluetoothScanCallback();
+ scanner.StartScan(null, new Android.Bluetooth.LE.ScanSettings.Builder().SetScanMode(Android.Bluetooth.LE.ScanMode.LowLatency).Build(), scanCallback);
+ }, ShowErrorMode.NO);
+
+ //绛夊緟
+ System.Threading.Thread.Sleep(waitTime * 1000);
+
+ HdlThreadLogic.Current.RunMain(() =>
+ {
+ scanner.StopScan(scanCallback);
+ adapter.Dispose();
+
+ foreach (var data in scanCallback.listData)
+ {
+ listBluetoothInfo.Add(data);
+ }
+ scanCallback.listData.Clear();
+
+ FinishEvent?.Invoke(listBluetoothInfo);
+ });
+ }
+
+ /// <summary>
+ /// 钃濈墮鐨勫洖璋冨璞�
+ /// </summary>
+ private class BluetoothScanCallback : Android.Bluetooth.LE.ScanCallback
+ {
+ /// <summary>
+ /// 钃濈墮鍒楄〃
+ /// </summary>
+ public List<BluetoothInfo> listData = new List<BluetoothInfo>();
+ /// <summary>
+ /// 閲嶅妫�娴�
+ /// </summary>
+ private List<string> listCheck = new List<string>();
+
+ /// <summary>
+ /// 钃濈墮缁撴灉鎺ユ敹
+ /// </summary>
+ /// <param name="listResult"></param>
+ public override void OnBatchScanResults(IList<Android.Bluetooth.LE.ScanResult> listResult)
+ {
+ foreach (var result in listResult)
+ {
+ this.AddBluetoothResult(result);
+ }
+ }
+
+ /// <summary>
+ /// 钃濈墮缁撴灉鎺ユ敹
+ /// </summary>
+ /// <param name="callbackType"></param>
+ /// <param name="result"></param>
+ public override void OnScanResult(Android.Bluetooth.LE.ScanCallbackType callbackType, Android.Bluetooth.LE.ScanResult result)
+ {
+ this.AddBluetoothResult(result);
+ }
+
+ /// <summary>
+ /// 娣诲姞钃濈墮缂撳瓨
+ /// </summary>
+ /// <param name="result"></param>
+ private void AddBluetoothResult(Android.Bluetooth.LE.ScanResult result)
+ {
+ var device = result.Device;
+ if (device == null || listCheck.Contains(device.Address) == true)
+ {
+ return;
+ }
+ listCheck.Add(device.Address);
+
+ var data = new BluetoothInfo();
+ data.Name = device.Name;
+ if (data.Name == null) { data.Name = string.Empty; }
+ data.Address = device.Address;
+ data.Device = device;
+ listData.Add(data);
+ }
+ }
+
+ #endregion
+
+ #region 鈻� 钃濈墮閾炬帴___________________________
+
+ /// <summary>
+ /// 钃濈墮閾炬帴(false:杩炴帴澶辫触 true:杩炴帴鎴愬姛)
+ /// </summary>
+ /// <param name="bluetooth">闇�瑕侀摼鎺ョ殑钃濈墮瀵硅薄</param>
+ /// <param name="connectEvent">鍥犱负闇�瑕佸鏂瑰弽棣�,鎵�浠ヤ娇鐢ㄥ洖璋�(閾炬帴缁撴灉 false:杩炴帴澶辫触 true:杩炴帴鎴愬姛)</param>
+ public void ContectBluetooth(BluetoothInfo bluetooth, Action<bool> connectEvent)
+ {
+ HdlThreadLogic.Current.RunMain(() =>
+ {
+ try
+ {
+ this.nowBlufiClient = new Blufi.Espressif.BlufiClient(Application.Activity, bluetooth.Device);
+
+ //涓�涓洖璋冧簨浠�
+ var callback = new InnerGattCallback();
+ callback.ConnectionStateEvent += (div, newState) =>
+ {
+ if (div == 1)
+ {
+ if (newState == Android.Bluetooth.ProfileState.Connected)
+ {
+ //閾炬帴寤虹珛鎴愬姛
+ connectEvent?.Invoke(true);
+ //鍙�氱煡涓�娆�
+ connectEvent = null;
+ }
+ else if (newState == Android.Bluetooth.ProfileState.Disconnected)
+ {
+ //鍏抽棴閾炬帴
+ this.DisContectBluetooth();
+ connectEvent?.Invoke(false);
+ //鍙�氱煡涓�娆�
+ connectEvent = null;
+ }
+ }
+ else if (div == -1)
+ {
+ //鍏抽棴閾炬帴
+ this.DisContectBluetooth();
+ connectEvent?.Invoke(false);
+ //鍙�氱煡涓�娆�
+ connectEvent = null;
+ }
+ };
+ nowBlufiClient.SetGattCallback(callback);
+
+ //鍙﹀涓�涓洖璋冧簨浠�
+ var blufiCall = new BlufiCallbackMain();
+ blufiCall.StateEvent += (div, data) =>
+ {
+ //-1:寮傚父 1:姝e父 2:鍙戦�佹暟鎹垚鍔� 3:鍙戦�佹暟鎹け璐�
+ if (div == StatuEnum.A寮傚父)
+ {
+ //鍏抽棴閾炬帴
+ this.DisContectBluetooth();
+ connectEvent?.Invoke(false);
+ //鍙�氱煡涓�娆�
+ connectEvent = null;
+ }
+ else if (div == StatuEnum.A鍙戦�佹垚鍔� || div == StatuEnum.A鍙戦�佸け璐�)
+ {
+ sendStatuValue = div == StatuEnum.A鍙戦�佹垚鍔� ? 1 : 0;
+ }
+ else if (div == StatuEnum.A钃濈墮鍙嶉)
+ {
+ //钃濈墮杩斿洖鐨勭粨鏋�
+ this.ReceiveEvent?.Invoke(data);
+ }
+ };
+ nowBlufiClient.SetBlufiCallback(blufiCall);
+ //鎵ц閾炬帴
+ nowBlufiClient.Connect();
+ }
+ catch
+ {
+ connectEvent?.Invoke(false);
+ connectEvent = null;
+ }
+ });
+ }
+
+ /// <summary>
+ /// 鍏堣繖涔堝畾涔変竴涓┖鐨勭户鎵�
+ /// </summary>
+ private class InnerGattCallback : Android.Bluetooth.BluetoothGattCallback
+ {
+ /// <summary>
+ /// 鐘舵�佷簨浠跺洖璋�(-1:寮傚父 1:OnConnectionStateChange)
+ /// </summary>
+ public Action<int,Android.Bluetooth.ProfileState> ConnectionStateEvent = null;
+ /// <summary>
+ /// 閾炬帴鐘舵�佹敼鍙�
+ /// </summary>
+ /// <param name="gatt"></param>
+ /// <param name="status"></param>
+ /// <param name="newState"></param>
+ public override void OnConnectionStateChange(Android.Bluetooth.BluetoothGatt gatt, Android.Bluetooth.GattStatus status, Android.Bluetooth.ProfileState newState)
+ {
+ if (status == Android.Bluetooth.GattStatus.Success)
+ {
+ //鍥炶皟浜嬩欢
+ this.ConnectionStateEvent?.Invoke(1, newState);
+ }
+ else
+ {
+ //鍥炶皟浜嬩欢
+ this.ConnectionStateEvent?.Invoke(-1, 0);
+ }
+ }
+
+ /// <summary>
+ /// 鎴愬姛鍙戠幇璁惧鐨剆ervices鏃讹紝璋冪敤姝ゆ柟娉�
+ /// </summary>
+ /// <param name="gatt"></param>
+ /// <param name="status"></param>
+ public override void OnServicesDiscovered(Android.Bluetooth.BluetoothGatt gatt, Android.Bluetooth.GattStatus status)
+ {
+ if (status != Android.Bluetooth.GattStatus.Success)
+ {
+ //鍥炶皟浜嬩欢
+ this.ConnectionStateEvent?.Invoke(-1, 0);
+ }
+ }
+
+ /// <summary>
+ /// 搴旇鏄啓鍏ヤ簨浠跺惂
+ /// </summary>
+ /// <param name="gatt"></param>
+ /// <param name="characteristic"></param>
+ /// <param name="status"></param>
+ public override void OnCharacteristicWrite(Android.Bluetooth.BluetoothGatt gatt, Android.Bluetooth.BluetoothGattCharacteristic characteristic, Android.Bluetooth.GattStatus status)
+ {
+ if (status != Android.Bluetooth.GattStatus.Success)
+ {
+ //鍥炶皟浜嬩欢
+ this.ConnectionStateEvent?.Invoke(-1, 0);
+ }
+ }
+ }
+
+ /// <summary>
+ /// 鎶凷DK鐨勶紝鎴戜篃涓嶇煡閬撹繖涓槸浠�涔�
+ /// </summary>
+ private class BlufiCallbackMain : Blufi.Espressif.BlufiCallback
+ {
+ /// <summary>
+ /// 鐘舵�佷簨浠跺洖璋� 褰撶涓�涓弬鏁颁负"A钃濈墮鍙嶉"鏃�,绗簩涓弬鏁颁负钃濈墮杩斿洖鐨勪俊鎭�
+ /// </summary>
+ public Action<StatuEnum, string> StateEvent = null;
+
+ /// <summary>
+ /// 鎶凷DK鐨勶紝鎴戜篃涓嶇煡閬撹繖涓槸浠�涔�
+ /// </summary>
+ /// <param name="client"></param>
+ /// <param name="gatt"></param>
+ /// <param name="service"></param>
+ /// <param name="writeChar"></param>
+ /// <param name="notifyChar"></param>
+ public override void OnGattPrepared(Blufi.Espressif.BlufiClient client, Android.Bluetooth.BluetoothGatt gatt, Android.Bluetooth.BluetoothGattService service,
+ Android.Bluetooth.BluetoothGattCharacteristic writeChar, Android.Bluetooth.BluetoothGattCharacteristic notifyChar)
+ {
+ if (service == null || writeChar == null || notifyChar == null)
+ {
+ StateEvent?.Invoke(StatuEnum.A寮傚父, null);
+ return;
+ }
+
+ try
+ {
+ int mtu = 128;
+ if ((int)Android.OS.Build.VERSION.SdkInt == 29
+ && Android.OS.Build.Manufacturer.ToLower().StartsWith("samsung") == true)
+ {
+ mtu = 23;
+ }
+
+ var requestMtu = gatt.RequestMtu(mtu);
+ if (!requestMtu)
+ {
+ //Request mtu failed
+ client.SetPostPackageLengthLimit(20);
+ }
+ StateEvent?.Invoke(StatuEnum.A姝e父, null); ;
+ }
+ catch
+ {
+ StateEvent?.Invoke(StatuEnum.A寮傚父, null);
+ return;
+ }
+ }
+
+ /// <summary>
+ /// 鎵嬫満绔彂閫佹暟鎹埌钃濈墮鐨勭粨鏋�
+ /// </summary>
+ /// <param name="client"></param>
+ /// <param name="status">0:鎴愬姛 鍏朵粬閮芥槸澶辫触</param>
+ /// <param name="data">鎵嬫満绔彂閫佺殑鏁版嵁</param>
+ public override void OnPostCustomDataResult(Blufi.Espressif.BlufiClient client, int status, byte[] data)
+ {
+ StateEvent?.Invoke(status == 0 ? StatuEnum.A鍙戦�佹垚鍔� : StatuEnum.A鍙戦�佸け璐�, null);
+ }
+
+ /// <summary>
+ /// 钃濈墮鍥炲鐨勭粨鏋�
+ /// </summary>
+ /// <param name="client"></param>
+ /// <param name="status">0:鎴愬姛 鍏朵粬閮芥槸澶辫触</param>
+ /// <param name="data">钃濈墮鍥炲鐨勬暟鎹�</param>
+ public override void OnReceiveCustomData(Blufi.Espressif.BlufiClient client, int status, byte[] data)
+ {
+ if (status == 0)
+ {
+ var receiveData = System.Text.Encoding.UTF8.GetString(data);
+ StateEvent?.Invoke(StatuEnum.A钃濈墮鍙嶉, receiveData);
+ }
+ }
+ }
+
+ #endregion
+
+ #region 鈻� 钃濈墮鍏抽棴___________________________
+
+ /// <summary>
+ /// 鍏抽棴钃濈墮閾炬帴
+ /// </summary>
+ public void DisContectBluetooth()
+ {
+ HdlThreadLogic.Current.RunMain(() =>
+ {
+ this.nowBlufiClient?.RequestCloseConnection();
+ this.nowBlufiClient = null;
+
+ m_Current = null;
+
+ }, ShowErrorMode.NO);
+ }
+
+ /// <summary>
+ /// 鎽ф瘉
+ /// </summary>
+ public void Dispone()
+ {
+ //鍏抽棴钃濈墮閾炬帴
+ this.DisContectBluetooth();
+ this.ReceiveEvent = null;
+ m_Current = null;
+ }
+
+ #endregion
+
+ #region 鈻� 鍙戦�佹暟鎹甠__________________________
+
+ /// <summary>
+ /// 鍙戦�佹暟鎹粰钃濈墮
+ /// </summary>
+ /// <param name="i_data">鍙戦�佺殑鏁版嵁</param>
+ /// <param name="waiTime">绛夊緟鏃堕棿(绉�),濡傛灉璁剧疆涓�0,鍒欏彧瑕佸彂閫佷笉鍑虹幇寮傚父,鐩存帴鍒ゅ畾涓烘垚鍔�</param>
+ public bool SendData(string i_data, int waiTime = 0)
+ {
+ if (this.nowBlufiClient == null)
+ {
+ return false;
+ }
+
+ try
+ {
+ this.sendStatuValue = -1;
+ HdlThreadLogic.Current.RunMain(() =>
+ {
+ //鍙戦�佹暟鎹�
+ var byteData = System.Text.Encoding.UTF8.GetBytes(i_data);
+ this.nowBlufiClient.PostCustomData(byteData);
+
+ }, ShowErrorMode.NO);
+
+ if (waiTime == 0) { return true; }
+
+ waiTime *= 5;
+ while (this.sendStatuValue == -1 && waiTime > 0)
+ {
+ System.Threading.Thread.Sleep(200);
+ waiTime--;
+ }
+ return this.sendStatuValue == 1;
+ }
+ catch { return false; }
+ }
+
+ #endregion
+
+ #region 鈻� 涓�鑸柟娉昣__________________________
+
+ /// <summary>
+ /// 娣诲姞钃濈墮鐨勬帴鏀朵簨浠�
+ /// </summary>
+ /// <param name="i_ReceiveEvent">钃濈墮鎺ユ敹浜嬩欢</param>
+ public void AddReceiveEvent(Action<string> i_ReceiveEvent)
+ {
+ this.ReceiveEvent = i_ReceiveEvent;
+ }
+
+ /// <summary>
+ /// 绉婚櫎钃濈墮鐨勬帴鏀朵簨浠�
+ /// </summary>
+ public void RemoveReceiveEvent()
+ {
+ this.ReceiveEvent = null;
+ }
+
+ #endregion
+
+ #region 鈻� 缁撴瀯浣揰____________________________
+
+ /// <summary>
+ /// 钃濈墮杩斿洖鐨勪俊鎭�
+ /// </summary>
+ public class BluetoothInfo
+ {
+ /// <summary>
+ /// 鍚嶅瓧(姝ゅ悕瀛椾笉浼歯ull,濡傛灉瀹冩湰韬槸null,鍙細鏄痵tring.empty)
+ /// </summary>
+ public string Name = string.Empty;
+ /// <summary>
+ /// 鍦板潃
+ /// </summary>
+ public string Address = string.Empty;
+ /// <summary>
+ /// 钃濈墮璁惧
+ /// </summary>
+ public Android.Bluetooth.BluetoothDevice Device = null;
+ }
+
+ /// <summary>
+ /// 鐘舵�佹灇涓�
+ /// </summary>
+ private enum StatuEnum
+ {
+ A寮傚父 = -1,
+ A姝e父 = 1,
+ A鍙戦�佹垚鍔� = 2,
+ A鍙戦�佸け璐� = 3,
+ A钃濈墮鍙嶉 = 4
+ }
+
+ #endregion
+ }
+#endif
+}
+
diff --git a/HDL_ON/UI/UI0-Stan/Logic/HdlBluetoothIOSLogic.cs b/HDL_ON/UI/UI0-Stan/Logic/HdlBluetoothIOSLogic.cs
new file mode 100644
index 0000000..8900504
--- /dev/null
+++ b/HDL_ON/UI/UI0-Stan/Logic/HdlBluetoothIOSLogic.cs
@@ -0,0 +1,489 @@
+锘縰sing System;
+using System.Collections.Generic;
+
+namespace HDL_ON.Stan
+{
+#if __IOS__
+ /// <summary>
+ /// IOS钃濈墮鐨勯�昏緫
+ /// </summary>
+ public class HdlBluetoothLogic
+ {
+ #region 鈻� 鍙橀噺澹版槑___________________________
+
+ /// <summary>
+ /// 瀹夊崜钃濈墮鐨勯�昏緫
+ /// </summary>
+ private static HdlBluetoothLogic m_Current = null;
+ /// <summary>
+ /// 瀹夊崜钃濈墮鐨勯�昏緫
+ /// </summary>
+ public static HdlBluetoothLogic Current
+ {
+ get
+ {
+ if (m_Current == null)
+ {
+ m_Current = new HdlBluetoothLogic();
+ }
+ return m_Current;
+ }
+ }
+ /// <summary>
+ /// 鎴戜篃涓嶇煡閬撹繖鏄粈涔堜笢瑗�
+ /// </summary>
+ private HdlBlufi.HdlBluWi hdlBluWiShare;
+ /// <summary>
+ /// 鎴戜篃涓嶇煡閬撹繖鏄粈涔堜笢瑗�
+ /// </summary>
+ private HdlBlufi.BlufiClient blufiClient;
+ /// <summary>
+ /// 鎺ユ敹浜嬩欢
+ /// </summary>
+ private Action<string> ReceiveEvent = null;
+ /// <summary>
+ /// 鍙戦�佺姸鎬�(0:鍙戦�佸け璐� 1:鍙戦�佹垚鍔�)
+ /// </summary>
+ private int sendStatuValue = -1;
+ /// <summary>
+ /// 钃濈墮鏄惁鎵撳紑
+ /// </summary>
+ private bool IsBlufiOpen = false;
+
+ #endregion
+
+ #region 鈻� 鍒濆鍖朹__________________________
+
+ /// <summary>
+ /// 鍒濆鍖�
+ /// </summary>
+ private bool InitHdlBlufi()
+ {
+ if (hdlBluWiShare != null) { return true; }
+
+ try
+ {
+ this.hdlBluWiShare = HdlBlufi.HdlBluWi.Share();
+ this.blufiClient = new HdlBlufi.BlufiClient();
+
+ blufiClient.CentralManagerDelete = new BlueCBCentralManagerDelegate();
+ //娣诲姞鍥炶皟浜嬩欢
+ ((BlueCBCentralManagerDelegate)blufiClient.CentralManagerDelete).StateEvent += (div, data) =>
+ {
+ //-1:寮傚父 1:姝e父
+ if (div == StatuEnum.A寮傚父)
+ {
+ //钃濈墮娌℃湁鎵撳紑
+ this.IsBlufiOpen = false;
+ }
+ else if (div == StatuEnum.A姝e父)
+ {
+ //钃濈墮鎵撳紑鐫�
+ this.IsBlufiOpen = true;
+ }
+ };
+
+ blufiClient.BlufiDelegate = new BlueWifiDelegate();
+ return true;
+ }
+ catch { return false; }
+ }
+
+ #endregion
+
+ #region 鈻� 钃濈墮鎵�闇�鍔熻兘妫�娴媉__________________
+
+ /// <summary>
+ /// 妫�娴嬫槸鍚﹁兘澶熸悳绱㈣摑鐗�(鍐呴儴浼氬脊鍑篗sg妗�,鍥犱负鍐呴儴闇�瑕佹娴嬬郴缁熸潈闄�,鎵�浠ュ弬鏁伴噰鐢ㄥ洖璋冪殑鏂瑰紡)
+ /// </summary>
+ /// <param name="resultEvent">妫�娴嬬粨鏋滀簨浠�</param>
+ public void CheckCanScanBluetooth(Action<bool> resultEvent)
+ {
+ try聽
+ {
+ //鍏堝垵濮嬪寲
+ if (this.InitHdlBlufi() == false)
+ {
+ resultEvent?.Invoke(false);
+ //璇锋墦寮�钃濈墮
+ HdlMessageLogic.Current.ShowMassage(ShowMsgType.Tip, Shared.Language.StringByID(StringId.PleaseTurnOnBluetooth));
+ return;
+ }
+
+ if (this.IsBlufiOpen == true)
+ {
+ //鍥犱负鏄竴鐩寸洃鍚潃锛屾墍浠ュ鏋滄槸true锛岀洿鎺ヨ繑鍥�
+ resultEvent?.Invoke(this.IsBlufiOpen);
+ return;
+ }
+
+ HdlThreadLogic.Current.RunThread(() =>
+ {
+ //ios闇�瑕佺洃鍚墠鑳藉鑾峰緱钃濈墮鐨勭姸鎬�
+ System.Threading.Thread.Sleep(500);
+ if (this.IsBlufiOpen == false)
+ {
+ //璇锋墦寮�钃濈墮
+ HdlMessageLogic.Current.ShowMassage(ShowMsgType.Tip, Shared.Language.StringByID(StringId.PleaseTurnOnBluetooth));
+ }
+ HdlThreadLogic.Current.RunMain(() =>
+ {
+ resultEvent?.Invoke(this.IsBlufiOpen);
+ });
+ }, ShowErrorMode.NO);
+ }
+ catch
+ {
+ resultEvent?.Invoke(false);
+ //璇锋墦寮�钃濈墮
+ HdlMessageLogic.Current.ShowMassage(ShowMsgType.Tip, Shared.Language.StringByID(StringId.PleaseTurnOnBluetooth));
+ }
+ }
+
+ #endregion
+
+ #region 鈻� 钃濈墮鎵弿___________________________
+
+ /// <summary>
+ /// 鎼滅储钃濈墮
+ /// </summary>
+ /// <param name="waitTime">鎼滅储鏃堕棿(绉�)</param>
+ /// <param name="FinishEvent">鎼滅储缁撴潫鐨勪簨浠�</param>
+ public void ScanBluetooth(int waitTime, Action<List<BluetoothInfo>> FinishEvent)
+ {
+ HdlThreadLogic.Current.RunMain(() =>
+ {
+ //鍐嶆妫�娴嬫槸鍚﹁兘澶熸悳绱㈣摑鐗�
+ this.CheckCanScanBluetooth((result) =>
+ {
+ if (result == true)
+ {
+ HdlThreadLogic.Current.RunThread(() =>
+ {
+ //寮�濮嬫悳绱㈣摑鐗�
+ this.DoScanBluetooth(waitTime, FinishEvent);
+ });
+ }
+ });
+ });
+ }
+
+ /// <summary>
+ /// 寮�濮嬫悳绱㈣摑鐗�
+ /// </summary>
+ /// <param name="waitTime">鎼滅储鏃堕棿(绉�)</param>
+ /// <param name="FinishEvent">鎼滅储缁撴潫鐨勪簨浠�</param>
+ private void DoScanBluetooth(int waitTime, Action<List<BluetoothInfo>> FinishEvent)
+ {
+ //钃濈墮鍒楄〃
+ var listData = new List<BluetoothInfo>();
+ //閲嶅妫�娴�
+ var listCheck = new List<string>();
+ //瀹炵幇钃濈墮鎺ユ敹浜嬩欢
+ var ReceiveBlufiDeviceEvent = new HdlBlufi.FBYBleDeviceBackBlock((arg0) =>
+ {
+ var address = arg0.Uuid.ToString();
+ if (listCheck.Contains(address) == false)
+ {
+ listCheck.Add(address);
+ var data = new BluetoothInfo();
+ data.Address = address;
+ data.Name = arg0.Name == null ? string.Empty : arg0.Name;
+ listData.Add(data);
+ }
+ });
+ HdlThreadLogic.Current.RunMain(() =>
+ {
+ //寮�鍚摑鐗欐悳绱�
+ this.hdlBluWiShare.StartScan(ReceiveBlufiDeviceEvent);
+ }, ShowErrorMode.NO);
+ System.Threading.Thread.Sleep(waitTime * 1000);
+
+ HdlThreadLogic.Current.RunMain(() =>
+ {
+ //鍏抽棴钃濈墮鎼滅储
+ this.hdlBluWiShare.StopScan();
+ ReceiveBlufiDeviceEvent = null;
+
+ }, ShowErrorMode.NO);
+ //鍥炶皟浜嬩欢
+ FinishEvent?.Invoke(listData);
+ }
+
+ #endregion
+
+ #region 鈻� 钃濈墮閾炬帴___________________________
+
+ /// <summary>
+ /// 钃濈墮閾炬帴(false:杩炴帴澶辫触 true:杩炴帴鎴愬姛)
+ /// </summary>
+ /// <param name="bluetooth">闇�瑕侀摼鎺ョ殑钃濈墮瀵硅薄</param>
+ /// <param name="connectEvent">鍥犱负闇�瑕佸鏂瑰弽棣�,鎵�浠ヤ娇鐢ㄥ洖璋�(閾炬帴缁撴灉 false:杩炴帴澶辫触 true:杩炴帴鎴愬姛)</param>
+ public void ContectBluetooth(BluetoothInfo bluetooth, Action<bool> connectEvent)
+ {
+ HdlThreadLogic.Current.RunMain(() =>
+ {
+ try
+ {
+ //娣诲姞浜嬩欢
+ ((BlueWifiDelegate)blufiClient.BlufiDelegate).StateEvent += (div, data) =>
+ {
+ //-1:寮傚父 1:姝e父 2:鍙戦�佹暟鎹垚鍔� 3:鍙戦�佹暟鎹け璐�
+ if (div == StatuEnum.A寮傚父)
+ {
+ //鍏抽棴閾炬帴
+ this.DisContectBluetooth();
+ connectEvent?.Invoke(false);
+ //鍙�氱煡涓�娆�
+ connectEvent = null;
+ }
+ else if (div == StatuEnum.A姝e父)
+ {
+ //閾炬帴寤虹珛鎴愬姛
+ connectEvent?.Invoke(true);
+ //鍙�氱煡涓�娆�
+ connectEvent = null;
+ }
+ else if (div == StatuEnum.A鍙戦�佹垚鍔� || div == StatuEnum.A鍙戦�佸け璐�)
+ {
+ sendStatuValue = div == StatuEnum.A鍙戦�佹垚鍔� ? 1 : 0;
+ }
+ else if (div == StatuEnum.A钃濈墮鍙嶉)
+ {
+ //钃濈墮杩斿洖鐨勭粨鏋�
+ this.ReceiveEvent?.Invoke(data);
+ }
+ };
+ //鎵ц閾炬帴
+ this.blufiClient.Connect(bluetooth.Address);
+ }
+ catch
+ {
+ connectEvent?.Invoke(false);
+ connectEvent = null;
+ }
+ });
+ }
+
+ #endregion
+
+ #region 鈻� 钃濈墮鍏抽棴___________________________
+
+ /// <summary>
+ /// 鍏抽棴钃濈墮閾炬帴
+ /// </summary>
+ public void DisContectBluetooth()
+ {
+ HdlThreadLogic.Current.RunMain(() =>
+ {
+ this.blufiClient?.Close();
+ this.blufiClient = null;
+ this.hdlBluWiShare = null;
+
+ }, ShowErrorMode.NO);
+ }
+
+ /// <summary>
+ /// 鎽ф瘉
+ /// </summary>
+ public void Dispone()
+ {
+ //鍏抽棴钃濈墮閾炬帴
+ this.DisContectBluetooth();
+ this.ReceiveEvent = null;
+ m_Current = null;
+ }
+
+ #endregion
+
+ #region 鈻� 鍙戦�佹暟鎹甠__________________________
+
+ /// <summary>
+ /// 鍙戦�佹暟鎹粰钃濈墮
+ /// </summary>
+ /// <param name="i_data">鍙戦�佺殑鏁版嵁</param>
+ /// <param name="waiTime">绛夊緟鏃堕棿(绉�),濡傛灉璁剧疆涓�0,鍒欏彧瑕佸彂閫佷笉鍑虹幇寮傚父,鐩存帴鍒ゅ畾涓烘垚鍔�</param>
+ public bool SendData(string i_data, int waiTime = 0)
+ {
+ if (this.blufiClient == null)
+ {
+ return false;
+ }
+
+ try
+ {
+ this.sendStatuValue = -1;
+ HdlThreadLogic.Current.RunMain(() =>
+ {
+ //鍙戦�佹暟鎹�
+ var data = new Foundation.NSData();
+ data = i_data;
+ blufiClient.PostCustomData(data);
+
+ }, ShowErrorMode.NO);
+
+ if (waiTime == 0) { return true; }
+
+ waiTime *= 5;
+ while (this.sendStatuValue == -1 && waiTime > 0)
+ {
+ System.Threading.Thread.Sleep(200);
+ waiTime--;
+ }
+ return this.sendStatuValue == 1;
+ }
+ catch { return false; }
+ }
+
+ #endregion
+
+ #region 鈻� 涓�鑸柟娉昣__________________________
+
+ /// <summary>
+ /// 娣诲姞钃濈墮鐨勬帴鏀朵簨浠�
+ /// </summary>
+ /// <param name="i_ReceiveEvent">钃濈墮鎺ユ敹浜嬩欢</param>
+ public void AddReceiveEvent(Action<string> i_ReceiveEvent)
+ {
+ this.ReceiveEvent = i_ReceiveEvent;
+ }
+
+ /// <summary>
+ /// 绉婚櫎钃濈墮鐨勬帴鏀朵簨浠�
+ /// </summary>
+ public void RemoveReceiveEvent()
+ {
+ this.ReceiveEvent = null;
+ }
+
+ #endregion
+
+ #region 鈻� 绯荤粺钃濈墮鍥炶皟_______________________
+
+ private class BlueWifiDelegate : HdlBlufi.BlufiDelegate
+ {
+ /// <summary>
+ /// 鐘舵�佷簨浠跺洖璋� 褰撶涓�涓弬鏁颁负"A钃濈墮鍙嶉"鏃�,绗簩涓弬鏁颁负钃濈墮杩斿洖鐨勪俊鎭�
+ /// </summary>
+ public Action<StatuEnum, string> StateEvent = null;
+
+ public override void Blufi_didNegotiateSecurity(HdlBlufi.BlufiClient client, HdlBlufi.BlufiStatusCode status)
+ {
+ //Console.WriteLine("Blufi_didNegotiateSecurity");
+ }
+
+ public override void Blufi_didPostCustomData(HdlBlufi.BlufiClient client, Foundation.NSData data, HdlBlufi.BlufiStatusCode status)
+ {
+ if (status == HdlBlufi.BlufiStatusCode.Success)
+ {
+ //鍙戦�佽摑鐗欐暟鎹垚鍔�
+ StateEvent?.Invoke(StatuEnum.A鍙戦�佹垚鍔�, null);
+ }
+ else
+ {
+ //鍙戦�佽摑鐗欐暟鎹け璐�
+ StateEvent?.Invoke(StatuEnum.A鍙戦�佸け璐�, null);
+ }
+ }
+
+ public override void Blufi_didReceiveDeviceScanResponse(HdlBlufi.BlufiClient client, HdlBlufi.BlufiScanResponse[] scanResults, HdlBlufi.BlufiStatusCode status)
+ {
+ //Console.WriteLine("Blufi_didReceiveDeviceScanResponse");
+ }
+
+ public override void Blufi_didReceiveDeviceVersionResponse(HdlBlufi.BlufiClient client, HdlBlufi.BlufiVersionResponse response, HdlBlufi.BlufiStatusCode status)
+ {
+ //Console.WriteLine("Blufi_didReceiveDeviceVersionResponse");
+ }
+
+ public override void Blufi_didPostConfigureParams(HdlBlufi.BlufiClient client, HdlBlufi.BlufiStatusCode status)
+ {
+ //Console.WriteLine("Blufi_didPostConfigureParams");
+ }
+
+ public override void Blufi_didReceiveCustomData(HdlBlufi.BlufiClient client, Foundation.NSData data, HdlBlufi.BlufiStatusCode status)
+ {
+ //鎺ユ敹钃濈墮鍙戦�佽繃鏉ョ殑鏁版嵁
+ StateEvent?.Invoke(StatuEnum.A钃濈墮鍙嶉, data.ToString());
+ }
+
+ public override void Blufi_didReceiveDeviceStatusResponse(HdlBlufi.BlufiClient client, HdlBlufi.BlufiStatusResponse response, HdlBlufi.BlufiStatusCode status)
+ {
+ //Console.WriteLine("Blufi_didReceiveDeviceStatusResponse");
+ }
+
+ public override void Blufi_didReceiveError(HdlBlufi.BlufiClient client, nint errCode)
+ {
+ //Console.WriteLine("Blufi_didReceiveError");
+ }
+
+ public override void Blufi_gattPrepared(HdlBlufi.BlufiClient client, HdlBlufi.BlufiStatusCode status, CoreBluetooth.CBService service, CoreBluetooth.CBCharacteristic writeChar, CoreBluetooth.CBCharacteristic notifyChar)
+ {
+ if (status == HdlBlufi.BlufiStatusCode.Success)
+ {
+ //钃濈墮杩炴帴鎴愬姛
+ StateEvent?.Invoke(StatuEnum.A姝e父, null);
+ }
+ else
+ {
+ //钃濈墮杩炴帴澶辫触
+ StateEvent?.Invoke(StatuEnum.A寮傚父, null);
+ }
+ }
+ }
+
+ private class BlueCBCentralManagerDelegate : CoreBluetooth.CBCentralManagerDelegate
+ {
+ /// <summary>
+ /// 鐘舵�佷簨浠跺洖璋�
+ /// </summary>
+ public Action<StatuEnum, string> StateEvent = null;
+
+ public override void UpdatedState(CoreBluetooth.CBCentralManager central)
+ {
+ //鍙娌℃湁鎵撳紑钃濈墮锛岄兘绠楀紓甯稿鐞�
+ if (central.State == CoreBluetooth.CBCentralManagerState.PoweredOn)
+ {
+ StateEvent?.Invoke(StatuEnum.A姝e父, null);
+ }
+ else
+ {
+ StateEvent?.Invoke(StatuEnum.A寮傚父, null);
+ }
+ }
+ }
+ #endregion
+
+ #region 鈻� 缁撴瀯浣揰____________________________
+
+ /// <summary>
+ /// 钃濈墮杩斿洖鐨勪俊鎭�
+ /// </summary>
+ public class BluetoothInfo
+ {
+ /// <summary>
+ /// 鍚嶅瓧(姝ゅ悕瀛椾笉浼歯ull,濡傛灉瀹冩湰韬槸null,鍙細鏄痵tring.empty)
+ /// </summary>
+ public string Name = string.Empty;
+ /// <summary>
+ /// 鍦板潃
+ /// </summary>
+ public string Address = string.Empty;
+ }
+
+ /// <summary>
+ /// 鐘舵�佹灇涓�
+ /// </summary>
+ private enum StatuEnum
+ {
+ A寮傚父 = -1,
+ A姝e父 = 1,
+ A鍙戦�佹垚鍔� = 2,
+ A鍙戦�佸け璐� = 3,
+ A钃濈墮鍙嶉 = 4
+ }
+
+ #endregion
+ }
+#endif
+}
diff --git a/HDL_ON/UI/UI0-Stan/Logic/HdlCloudReceiveLogic.cs b/HDL_ON/UI/UI0-Stan/Logic/HdlCloudReceiveLogic.cs
new file mode 100644
index 0000000..81c4959
--- /dev/null
+++ b/HDL_ON/UI/UI0-Stan/Logic/HdlCloudReceiveLogic.cs
@@ -0,0 +1,164 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace HDL_ON.Stan
+{
+ //搴旇涔熶笉澶�,灏卞啓鍦ㄨ繖閲屼簡
+
+ /// <summary>
+ /// 浜戠鎺ㄩ�佹灇涓�
+ /// </summary>
+ public enum CloudPushEnum
+ {
+ A鏂拌澶囦笂鎶� = 1,
+ }
+
+ /// <summary>
+ /// 鍏ㄥ眬鎺ユ敹浜戠鎺ㄩ�佺殑鐨勯�昏緫(涓轰簡鎵ц閫熷害,灏藉彲鑳界殑鍒姞鑰楁椂鐨勬搷浣�)
+ /// </summary>
+ public class HdlCloudReceiveLogic
+ {
+ #region 鈻� 鍙橀噺澹版槑___________________________
+
+ /// <summary>
+ /// 鍏ㄥ眬鎺ユ敹浜戠鎺ㄩ�佺殑鐨勯�昏緫
+ /// </summary>
+ private static HdlCloudReceiveLogic m_Current = null;
+ /// <summary>
+ /// 鍏ㄥ眬鎺ユ敹浜戠鎺ㄩ�佺殑鐨勯�昏緫
+ /// </summary>
+ public static HdlCloudReceiveLogic Current
+ {
+ get
+ {
+ if (m_Current == null)
+ {
+ m_Current = new HdlCloudReceiveLogic();
+ }
+ return m_Current;
+ }
+ }
+
+ /// <summary>
+ /// 浜戠鎺ユ敹浜嬩欢闆嗗悎
+ /// </summary>
+ private List<CloudReceiveEventClass> ListCloudEvent = new List<CloudReceiveEventClass>();
+
+ #endregion
+
+ #region 鈻� 鍏ㄥ眬鎺ユ敹___________________________
+
+ /// <summary>
+ /// 鐗规畩鍏ㄥ眬鎺ユ敹浜戠鎺ㄩ�佺殑鐨勯�昏緫(涓轰簡鎵ц閫熷害,灏藉彲鑳界殑鍒姞鑰楁椂鐨勬搷浣� true:鎵ц浜嗙壒娈婂鐞� false:娌℃湁鎵ц鐗规畩澶勭悊)
+ /// </summary>
+ /// <param name="topic">鏁翠釜涓婚</param>
+ /// <param name="byteData">鎺ユ敹鐨勬暟鎹�</param>
+ /// <param name="mqttEncryptKey">Mqtt鐨勮В瀵嗗瘑閽�</param>
+ /// <param name="homeIdEncryptKey">浣忓畢鍊掑簭鐨勮В瀵嗗瘑閽�</param>
+ public bool CloudOverallMsgReceiveEx(string topic, byte[] byteData, string mqttEncryptKey, string homeIdEncryptKey)
+ {
+ //璁惧鍏ョ綉涓婃姤涓婚
+ if (topic == $"/user/{Entity.DB_ResidenceData.Instance.CurrentRegion.RegionID}/app/thing/topo/found")
+ {
+ if (string.IsNullOrEmpty(homeIdEncryptKey) == false)
+ {
+ //瑙e瘑
+ byteData = Securitys.EncryptionService.AesDecryptPayload(byteData, homeIdEncryptKey);
+ }
+ string msgData = Encoding.UTF8.GetString(byteData);
+ //杩欓噷鐗规畩,鍒�ョ潃杞瓧绗︿覆,鍏堝垽鏂富棰樺啀杞�
+ return this.CloudOverallMsgReceiveEx(topic, msgData);
+ }
+ return false;
+ }
+
+ /// <summary>
+ /// 鐗规畩鍏ㄥ眬鎺ユ敹浜戠鎺ㄩ�佺殑鐨勯�昏緫(涓轰簡鎵ц閫熷害,灏藉彲鑳界殑鍒姞鑰楁椂鐨勬搷浣� true:鎵ц浜嗙壒娈婂鐞� false:娌℃湁鎵ц鐗规畩澶勭悊)
+ /// </summary>
+ /// <param name="topic">鏁翠釜涓婚</param>
+ /// <param name="msgData">鎺ユ敹鐨勬暟鎹�</param>
+ public bool CloudOverallMsgReceiveEx(string topic, string msgData)
+ {
+ //娌℃湁浠讳綍鐩戝惉
+ if (ListCloudEvent.Count == 0) { return false; }
+
+ //璁惧鍏ョ綉涓婃姤涓婚(鐩墠鍙湁绾㈠瀹�)
+ if (topic == $"/user/{Entity.DB_ResidenceData.Instance.CurrentRegion.RegionID}/app/thing/topo/found")
+ {
+ for (int i = 0; i < this.ListCloudEvent.Count; i++)
+ {
+ //鍥炶皟浜嬩欢
+ this.ListCloudEvent[i].CloudReceiveEvent(CloudPushEnum.A鏂拌澶囦笂鎶�, msgData);
+ }
+ return true;
+ }
+ return false;
+ }
+
+ #endregion
+
+ #region 鈻� 娣诲姞浜戠鐩戝惉_______________________
+
+ /// <summary>
+ /// 娣诲姞浜戠鎺ユ敹浜嬩欢
+ /// </summary>
+ /// <param name="i_mainKey">鏍囪瘑浜嬩欢鐨勪富閿�(鍙互闅忎究濉�,涓昏鏄拡瀵瑰涓晫闈竴璧蜂娇鐢ㄧ殑鎯呭喌)</param>
+ /// <param name="action">(鍙傛暟1:鏋氫妇 鍙傛暟2:鎺ㄩ�佹秷鎭�)</param>
+ public void AddCloudReceiveEvent(string i_mainKey, Action<CloudPushEnum, string> action)
+ {
+ try
+ {
+ var eventClass = new CloudReceiveEventClass();
+ eventClass.MainKey = i_mainKey;
+ eventClass.CloudReceiveEvent = action;
+ this.ListCloudEvent.Add(eventClass);
+ }
+ catch { }
+ }
+ #endregion
+
+ #region 鈻� 绉婚櫎浜戠鐩戝惉_______________________
+
+ /// <summary>
+ /// 绉婚櫎浜戠鎺ユ敹浜嬩欢
+ /// </summary>
+ /// <param name="i_mainKey">鏍囪瘑浜嬩欢鐨勪富閿�(鍙互闅忎究濉�,涓昏鏄拡瀵瑰涓晫闈竴璧蜂娇鐢ㄧ殑鎯呭喌)</param>
+ public void RemoveCloudReceiveEvent(string i_mainKey)
+ {
+ try
+ {
+ for (int i = 0; i < this.ListCloudEvent.Count; i++)
+ {
+ if (this.ListCloudEvent[i].MainKey == i_mainKey)
+ {
+ this.ListCloudEvent.RemoveAt(i);
+ i--;
+ }
+ }
+ }
+ catch { }
+ }
+
+ #endregion
+
+ #region 鈻� 缁撴瀯浣揰____________________________
+
+ /// <summary>
+ /// 浜戠鎺ユ敹浜嬩欢绫�
+ /// </summary>
+ private class CloudReceiveEventClass
+ {
+ /// <summary>
+ /// 鏍囪瘑浜嬩欢鐨勪富閿�(鍙互闅忎究濉�,涓昏鏄拡瀵瑰涓晫闈竴璧蜂娇鐢ㄧ殑鎯呭喌)
+ /// </summary>
+ public string MainKey = string.Empty;
+ /// <summary>
+ /// 浜戠鎺ユ敹浜嬩欢(鍙傛暟1:鏋氫妇 鍙傛暟2:鎺ㄩ�佹秷鎭�)
+ /// </summary>
+ public Action<CloudPushEnum, string> CloudReceiveEvent = null;
+ }
+
+ #endregion
+ }
+}
diff --git a/HDL_ON/UI/UI0-Stan/Logic/HdlWifiLogic.cs b/HDL_ON/UI/UI0-Stan/Logic/HdlWifiLogic.cs
new file mode 100644
index 0000000..b4af0db
--- /dev/null
+++ b/HDL_ON/UI/UI0-Stan/Logic/HdlWifiLogic.cs
@@ -0,0 +1,99 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace HDL_ON.Stan
+{
+ /// <summary>
+ /// WiFi鐨勯�昏緫
+ /// </summary>
+ public class HdlWifiLogic
+ {
+ #region 鈻� 鍙橀噺澹版槑___________________________
+
+ /// <summary>
+ /// WiFi鐨勯�昏緫
+ /// </summary>
+ private static HdlWifiLogic m_Current = null;
+ /// <summary>
+ /// WiFi鐨勯�昏緫
+ /// </summary>
+ public static HdlWifiLogic Current
+ {
+ get
+ {
+ if (m_Current == null)
+ {
+ m_Current = new HdlWifiLogic();
+ }
+ return m_Current;
+ }
+ }
+
+ /// <summary>
+ /// 褰撳墠wifi鐨凷SID,涔熷彨Wifi鐨勫悕瀛�(鍙栦笉鍒版椂,浼氳繑鍥瀗ull)
+ /// </summary>
+ public string SSID
+ {
+ get
+ {
+#if __IOS__
+ string ssiD = Shared.WiimuUPnP.SSID;
+ if (string.IsNullOrEmpty(ssiD) == false && ssiD.StartsWith("\"") && ssiD.EndsWith("\""))
+ {
+ ssiD = ssiD.Substring(1, ssiD.Length - 2);
+ }
+ return ssiD;
+#endif
+#if __Android__
+ string ssiD = null;
+ HdlThreadLogic.Current.RunThread(() =>
+ {
+ Shared.Net.NetWiFi.GetWIFISSID((strId) =>
+ {
+ ssiD = strId;
+ });
+ }, ShowErrorMode.NO);
+ int count = 0;
+ while (ssiD == null)
+ {
+ System.Threading.Thread.Sleep(50);
+ count++;
+ if (count == 20)
+ {
+ //1绉掕秴鏃�
+ return null;
+ }
+ }
+ if (string.IsNullOrEmpty(ssiD) == false && ssiD.StartsWith("\"") && ssiD.EndsWith("\""))
+ {
+ ssiD = ssiD.Substring(1, ssiD.Length - 2);
+ }
+ return ssiD;
+#endif
+ }
+ }
+
+ #endregion
+
+ #region 鈻� 涓�鑸柟娉昣__________________________
+
+ /// <summary>
+ /// 鎵撳紑鎵嬫満wifi璁剧疆鐣岄潰
+ /// </summary>
+ public void OpenAppWifiSettion()
+ {
+ if (Shared.Application.DeviceType == Shared.Device.Android)
+ {
+ ///鎵撳紑WI-IF鐣岄潰
+ Shared.CommonClass.OpenAction("android.settings.WIFI_SETTINGS");
+ }
+ else
+ {
+ Shared.CommonClass.OpenAction("App-Prefs:root=WIFI");
+ }
+ }
+
+ #endregion
+ }
+}
diff --git a/HDL_ON/UI/UI1-Login/ForgetPasswordPageBLL.cs b/HDL_ON/UI/UI1-Login/ForgetPasswordPageBLL.cs
index 04f312e..79dced0 100644
--- a/HDL_ON/UI/UI1-Login/ForgetPasswordPageBLL.cs
+++ b/HDL_ON/UI/UI1-Login/ForgetPasswordPageBLL.cs
@@ -271,6 +271,7 @@
{
CloseTime = 1,
Direction = AMPopTipDirection.None,
+ MaxWidth = Application.GetRealWidth(300),
Text = Language.StringByID(StringId.IncorrectRepeatPassword)
}.Show(bodyView);
}
diff --git a/HDL_ON/UI/UI1-Login/LoginPage.cs b/HDL_ON/UI/UI1-Login/LoginPage.cs
index 06ff41a..1110798 100644
--- a/HDL_ON/UI/UI1-Login/LoginPage.cs
+++ b/HDL_ON/UI/UI1-Login/LoginPage.cs
@@ -197,7 +197,7 @@
}
else
{
- etAccount.Text = "15971583093";//鍑夐湼"18666455392";//13375012446//13602944661//tzy 18778381374
+ etAccount.Text = "15622703419";//鍑夐湼"18666455392";//13375012446//13602944661//tzy 18778381374
//15971583093 gs
}
b = !b;
diff --git a/HDL_ON/UI/UI1-Login/RegisterPageBLL.cs b/HDL_ON/UI/UI1-Login/RegisterPageBLL.cs
index 9dbc24a..4e2b8ce 100644
--- a/HDL_ON/UI/UI1-Login/RegisterPageBLL.cs
+++ b/HDL_ON/UI/UI1-Login/RegisterPageBLL.cs
@@ -299,7 +299,8 @@
{
CloseTime = 1,
Direction = AMPopTipDirection.None,
- Text = Language.StringByID(StringId.IncorrectRepeatPassword)
+ Text = Language.StringByID(StringId.IncorrectRepeatPassword),
+ MaxWidth = Application.GetRealWidth(300),
}.Show(bodyView);
}
else
diff --git a/HDL_ON/UI/UI2/.DS_Store b/HDL_ON/UI/UI2/.DS_Store
index 249ba1d..1f6e40e 100644
--- a/HDL_ON/UI/UI2/.DS_Store
+++ b/HDL_ON/UI/UI2/.DS_Store
Binary files differ
diff --git a/HDL_ON/UI/UI2/1-HomePage/HomePage.cs b/HDL_ON/UI/UI2/1-HomePage/HomePage.cs
index 265043e..9366529 100644
--- a/HDL_ON/UI/UI2/1-HomePage/HomePage.cs
+++ b/HDL_ON/UI/UI2/1-HomePage/HomePage.cs
@@ -877,58 +877,62 @@
};
view.AddChidren(btnSwitch);
- switch (function.Spk_Prefix)
- {
- //todo 澧炲姞璁惧锛屼富椤垫敹钘忓浘鏍�
- case FunctionCategory.Light:
- #region 鐏厜 Light
- btnIcon.UnSelectedImagePath = "FunctionIcon/Light/LightIcon.png";
- btnIcon.SelectedImagePath = "FunctionIcon/Light/LightOnIcon.png";
- UpdataFunctionStates(function);
- #endregion
- break;
- case FunctionCategory.AC:
- #region 绌鸿皟 AC
- btnIcon.UnSelectedImagePath = "FunctionIcon/AC/AcIcon.png";
- btnIcon.SelectedImagePath = "FunctionIcon/AC/AcOnIcon.png";
- #endregion
- break;
- case FunctionCategory.FloorHeat:
- #region 鍦扮儹
- btnIcon.UnSelectedImagePath = "FunctionIcon/FloorHeating/FloorHeatingIcon.png";
- btnIcon.SelectedImagePath = "FunctionIcon/FloorHeating/FloorHeatingOnIcon.png";
- #endregion
- break;
- case FunctionCategory.Electric:
- switch (function.spk)
- {
- case SPK.ElectricSocket:
- btnIcon.UnSelectedImagePath = "FunctionIcon/Socket/SocketIcon.png";
- btnIcon.SelectedImagePath = "FunctionIcon/Socket/SocketOnIcon.png";
- break;
- case SPK.ElectricFan:
- btnIcon.UnSelectedImagePath = "FunctionIcon/Electrical/FanIcon.png";
- btnIcon.SelectedImagePath = "FunctionIcon/Electrical/FanOnIcon.png";
- break;
- case SPK.ElectricTuyaAirCleaner:
- btnIcon.SelectedImagePath = "FunctionIcon/HomePageIcon/AirCleanerIcon.png";
- btnIcon.UnSelectedImagePath = "FunctionIcon/HomePageIcon/AirCleanerIconOn.png";
- break;
- case SPK.ElectricTuyaFan:
- btnIcon.SelectedImagePath = "FunctionIcon/HomePageIcon/FanIcon.png";
- btnIcon.UnSelectedImagePath = "FunctionIcon/HomePageIcon/FanIconOn.png";
- break;
- case SPK.ElectricTuyaWaterValve:
- btnIcon.SelectedImagePath = "FunctionIcon/HomePageIcon/WaterValveIcon.png";
- btnIcon.UnSelectedImagePath = "FunctionIcon/HomePageIcon/WaterValveIconOn.png";
- break;
- case SPK.ElectricTuyaWeepRobot:
- btnIcon.SelectedImagePath = "FunctionIcon/HomePageIcon/WeepRobotIcon.png";
- btnIcon.UnSelectedImagePath = "FunctionIcon/HomePageIcon/WeepRobotIconOn.png";
- break;
- }
- break;
- }
+
+ btnIcon.UnSelectedImagePath = $"FunctionIcon/Icon/HomeIcon/{function.IconName}_blue.png";
+ btnIcon.SelectedImagePath = $"FunctionIcon/Icon/HomeIcon/{function.IconName}_white.png";
+
+ //switch (function.Spk_Prefix)
+ //{
+ // //todo 澧炲姞璁惧锛屼富椤垫敹钘忓浘鏍�
+ // case FunctionCategory.Light:
+ // #region 鐏厜 Light
+ // btnIcon.UnSelectedImagePath = "FunctionIcon/Light/LightIcon.png";
+ // btnIcon.SelectedImagePath = "FunctionIcon/Light/LightOnIcon.png";
+ // UpdataFunctionStates(function);
+ // #endregion
+ // break;
+ // case FunctionCategory.AC:
+ // #region 绌鸿皟 AC
+ // btnIcon.UnSelectedImagePath = "FunctionIcon/AC/AcIcon.png";
+ // btnIcon.SelectedImagePath = "FunctionIcon/AC/AcOnIcon.png";
+ // #endregion
+ // break;
+ // case FunctionCategory.FloorHeat:
+ // #region 鍦扮儹
+ // btnIcon.UnSelectedImagePath = "FunctionIcon/FloorHeating/FloorHeatingIcon.png";
+ // btnIcon.SelectedImagePath = "FunctionIcon/FloorHeating/FloorHeatingOnIcon.png";
+ // #endregion
+ // break;
+ // case FunctionCategory.Electric:
+ // switch (function.spk)
+ // {
+ // case SPK.ElectricSocket:
+ // btnIcon.UnSelectedImagePath = "FunctionIcon/Socket/SocketIcon.png";
+ // btnIcon.SelectedImagePath = "FunctionIcon/Socket/SocketOnIcon.png";
+ // break;
+ // case SPK.ElectricFan:
+ // btnIcon.UnSelectedImagePath = "FunctionIcon/Electrical/FanIcon.png";
+ // btnIcon.SelectedImagePath = "FunctionIcon/Electrical/FanOnIcon.png";
+ // break;
+ // case SPK.ElectricTuyaAirCleaner:
+ // btnIcon.SelectedImagePath = "FunctionIcon/HomePageIcon/AirCleanerIcon.png";
+ // btnIcon.UnSelectedImagePath = "FunctionIcon/HomePageIcon/AirCleanerIconOn.png";
+ // break;
+ // case SPK.ElectricTuyaFan:
+ // btnIcon.SelectedImagePath = "FunctionIcon/HomePageIcon/FanIcon.png";
+ // btnIcon.UnSelectedImagePath = "FunctionIcon/HomePageIcon/FanIconOn.png";
+ // break;
+ // case SPK.ElectricTuyaWaterValve:
+ // btnIcon.SelectedImagePath = "FunctionIcon/HomePageIcon/WaterValveIcon.png";
+ // btnIcon.UnSelectedImagePath = "FunctionIcon/HomePageIcon/WaterValveIconOn.png";
+ // break;
+ // case SPK.ElectricTuyaWeepRobot:
+ // btnIcon.SelectedImagePath = "FunctionIcon/HomePageIcon/WeepRobotIcon.png";
+ // btnIcon.UnSelectedImagePath = "FunctionIcon/HomePageIcon/WeepRobotIconOn.png";
+ // break;
+ // }
+ // break;
+ //}
LoadEvent_SwitchFunction(function, btnSwitch);
}
//鍙栨秷鏀惰棌浜嬩欢
diff --git a/HDL_ON/UI/UI2/1-HomePage/HomePageBLL.cs b/HDL_ON/UI/UI2/1-HomePage/HomePageBLL.cs
index f2c7f27..f18f109 100644
--- a/HDL_ON/UI/UI2/1-HomePage/HomePageBLL.cs
+++ b/HDL_ON/UI/UI2/1-HomePage/HomePageBLL.cs
@@ -26,7 +26,7 @@
/// </summary>
public static void RefreshFunctionView()
{
- if (bodyView != null)
+ if (bodyView != null && MainPage.CurPageIndex==0)
{
bodyView.LoadDeviceFunctionControlZone();
}
diff --git a/HDL_ON/UI/UI2/2-Classification/ClassificationPage.cs b/HDL_ON/UI/UI2/2-Classification/ClassificationPage.cs
index 63256f0..2290c5f 100644
--- a/HDL_ON/UI/UI2/2-Classification/ClassificationPage.cs
+++ b/HDL_ON/UI/UI2/2-Classification/ClassificationPage.cs
@@ -755,12 +755,7 @@
btnName.TextID = StringId.SecurityMonitoring;
btnFunctionViewBg.MouseUpEventHandler = (sender, e) =>
{
-
-#if __IOS__
- EZSDK.IOS.EZSDK.Go2EZvizMonitor();
-#else //瀹夊崜鎽勫儚澶�
HDLCommon.Current.Go2EZvizMonitor(bodyView);
-#endif
};
break;
case ShowFunction.Sensor:
diff --git a/HDL_ON/UI/UI2/2-Classification/FunctionControlZone.cs b/HDL_ON/UI/UI2/2-Classification/FunctionControlZone.cs
index 4727b80..c8b1509 100644
--- a/HDL_ON/UI/UI2/2-Classification/FunctionControlZone.cs
+++ b/HDL_ON/UI/UI2/2-Classification/FunctionControlZone.cs
@@ -61,6 +61,69 @@
}
LoadDiv();
+ //switch (function.spk)
+ //{
+ // case SPK.CurtainSwitch:
+ // btnIcon.UnSelectedImagePath = "FunctionIcon/Curtain/CurtainThinIcon.png";
+ // break;
+ // case SPK.CurtainTrietex:
+ // btnIcon.UnSelectedImagePath = "FunctionIcon/Curtain/MotorCurtainIcon.png";
+ // break;
+ // case SPK.CurtainRoller:
+ // btnIcon.UnSelectedImagePath = "FunctionIcon/Curtain/RollingShutterIcon.png";
+ // break;
+ // case SPK.SensorPir:
+ // btnIcon.UnSelectedImagePath = "FunctionIcon/ArmSensor/ArmSensorPirIcon.png";
+ // break;
+ // case SPK.SensorWater:
+ // btnIcon.UnSelectedImagePath = "FunctionIcon/ArmSensor/ArmSensorWaterImmersionIcon.png";
+ // break;
+ // case SPK.SensorSmoke:
+ // btnIcon.UnSelectedImagePath = "FunctionIcon/ArmSensor/ArmSensorSmokeIcon.png";
+ // break;
+ // case SPK.SensorDoorWindow:
+ // btnIcon.UnSelectedImagePath = "FunctionIcon/ArmSensor/ArmSensorDoorIcon.png";
+ // break;
+ // case SPK.MusicStandard:
+ // btnIcon.UnSelectedImagePath = "FunctionIcon/Music/MusicThinIcon.png";
+ // break;
+ // case SPK.ClothesHanger:
+ // btnIcon.UnSelectedImagePath = "FunctionIcon/Electrical/ClothesHanger/ClothesHangerGrayIcon.png";
+ // break;
+ // case SPK.ElectricSocket:
+ // btnIcon.UnSelectedImagePath = "FunctionIcon/Socket/SocketThinIcon.png";
+ // break;
+ // case SPK.ElectricFan:
+ // case SPK.ElectricTuyaFan:
+ // btnIcon.UnSelectedImagePath = "FunctionIcon/Electrical/FanThinIcon.png";
+ // break;
+ // case SPK.ElectricTV:
+ // btnIcon.UnSelectedImagePath = "FunctionIcon/Electrical/TVThinIcon.png";
+ // break;
+ // case SPK.ElectricTuyaAirCleaner:
+ // btnIcon.UnSelectedImagePath = "FunctionIcon/Electrical/AirCleanerThiinIcon.png";
+ // break;
+ // case SPK.ElectricTuyaWeepRobot:
+ // btnIcon.UnSelectedImagePath = "FunctionIcon/Electrical/WeepRobotThinIcon.png";
+ // break;
+ // case SPK.ElectricTuyaWaterValve:
+ // btnIcon.UnSelectedImagePath = "FunctionIcon/Electrical/WaterValve/WaterValveIcon.png";
+ // break;
+ // case SPK.AcStandard:
+ // btnIcon.UnSelectedImagePath = "FunctionIcon/AC/AcThinIcon1.png";
+ // break;
+ // case SPK.AcIr:
+ // btnIcon.UnSelectedImagePath = "FunctionIcon/AC/AcThinIcon1.png";
+ // break;
+ // case SPK.FloorHeatStandard:
+ // btnIcon.UnSelectedImagePath = "FunctionIcon/FloorHeating/FloorHeatingThinIcon.png";
+ // break;
+ // default:
+ // btnIcon.UnSelectedImagePath = $"FunctionIcon/Icon/{function.IconName}.png";
+ // break;
+ //}
+ btnIcon.UnSelectedImagePath = $"FunctionIcon/Icon/{function.IconName}.png";
+
if (function.Spk_Prefix == FunctionCategory.Curtain//绐楀笜娌℃湁寮�鍏虫寜閽�
|| function.Spk_Prefix == FunctionCategory.Music//闊充箰娌℃湁寮�鍏虫寜閽�
|| function.Spk_Prefix == FunctionCategory.Sensor//浼犳劅鍣ㄦ病鏈夊紑鍏虫寜閽�
@@ -69,39 +132,10 @@
switch (function.Spk_Prefix)
{
case FunctionCategory.Curtain:
- switch (function.spk)
- {
- case SPK.CurtainSwitch:
- btnIcon.UnSelectedImagePath = "FunctionIcon/Curtain/CurtainThinIcon.png";
- break;
- case SPK.CurtainTrietex:
- btnIcon.UnSelectedImagePath = "FunctionIcon/Curtain/MotorCurtainIcon.png";
- break;
- case SPK.CurtainRoller:
- btnIcon.UnSelectedImagePath = "FunctionIcon/Curtain/RollingShutterIcon.png";
- break;
- }
+
CurtainFragment();
break;
case FunctionCategory.Sensor:
- switch (function.spk)
- {
- case SPK.SensorPir:
- btnIcon.UnSelectedImagePath = "FunctionIcon/ArmSensor/ArmSensorPirIcon.png";
- break;
- case SPK.SensorWater:
- btnIcon.UnSelectedImagePath = "FunctionIcon/ArmSensor/ArmSensorWaterImmersionIcon.png";
- break;
- case SPK.SensorSmoke:
- btnIcon.UnSelectedImagePath = "FunctionIcon/ArmSensor/ArmSensorSmokeIcon.png";
- break;
- case SPK.SensorDoorWindow:
- btnIcon.UnSelectedImagePath = "FunctionIcon/ArmSensor/ArmSensorDoorIcon.png";
- break;
- default:
-
- break;
- }
var powerLowTipAttr = function.attributes.Find((obj) => obj.key == FunctionAttributeKey.BatteryState);
if (powerLowTipAttr != null)
{
@@ -122,7 +156,6 @@
break;
case FunctionCategory.Music:
- btnIcon.UnSelectedImagePath = "FunctionIcon/Music/MusicThinIcon.png";
MusicFragment();
break;
@@ -132,7 +165,6 @@
{
if (function.spk == SPK.ClothesHanger)//鏅捐。鏋�
{
- btnIcon.UnSelectedImagePath = "FunctionIcon/Electrical/ClothesHanger/ClothesHangerGrayIcon.png";
ClothesHangerFragment();
}
else
@@ -181,51 +213,20 @@
switch (function.Spk_Prefix)
{
case FunctionCategory.AC:
- switch (function.spk)
- {
- case SPK.AcStandard:
- btnIcon.UnSelectedImagePath = "FunctionIcon/AC/AcThinIcon1.png";
- LoadLastStatesButton();
- break;
- }
+ LoadLastStatesButton();
+ break;
+ case FunctionCategory.IR:
+ LoadLastStatesButton();
break;
case FunctionCategory.FloorHeat:
- switch (function.spk)
- {
- case SPK.FloorHeatStandard:
- btnIcon.UnSelectedImagePath = "FunctionIcon/FloorHeating/FloorHeatingThinIcon.png";
- LoadLastStatesButton();
- break;
- }
+ LoadLastStatesButton();
break;
case FunctionCategory.Light:
- btnIcon.UnSelectedImagePath = "FunctionIcon/Light/LightThinIcon.png";
+ //btnIcon.UnSelectedImagePath = "FunctionIcon/Light/LightThinIcon.png";
btnSwitch.IsSelected = function.trait_on_off.curValue.ToString() == "on";
LoadLightControl();
break;
case FunctionCategory.Electric:
- switch (function.spk)
- {
- case SPK.ElectricSocket:
- btnIcon.UnSelectedImagePath = "FunctionIcon/Socket/SocketThinIcon.png";
- break;
- case SPK.ElectricFan:
- case SPK.ElectricTuyaFan:
- btnIcon.UnSelectedImagePath = "FunctionIcon/Electrical/FanThinIcon.png";
- break;
- case SPK.ElectricTV:
- btnIcon.UnSelectedImagePath = "FunctionIcon/Electrical/TVThinIcon.png";
- break;
- case SPK.ElectricTuyaAirCleaner:
- btnIcon.UnSelectedImagePath = "FunctionIcon/Electrical/AirCleanerThiinIcon.png";
- break;
- case SPK.ElectricTuyaWeepRobot:
- btnIcon.UnSelectedImagePath = "FunctionIcon/Electrical/WeepRobotThinIcon.png";
- break;
- case SPK.ElectricTuyaWaterValve:
- btnIcon.UnSelectedImagePath = "FunctionIcon/Electrical/WaterValve/WaterValveIcon.png";
- break;
- }
btnSwitch.IsSelected = function.trait_on_off.curValue.ToString() == "on";
break;
}
diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/AddDevice/AddMiniRemoteControlDirection1Page.cs b/HDL_ON/UI/UI2/4-PersonalCenter/AddDevice/AddMiniRemoteControlDirection1Page.cs
new file mode 100644
index 0000000..17c9dc1
--- /dev/null
+++ b/HDL_ON/UI/UI2/4-PersonalCenter/AddDevice/AddMiniRemoteControlDirection1Page.cs
@@ -0,0 +1,78 @@
+锘縰sing HDL_ON.Stan;
+using Shared;
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace HDL_ON.UI
+{
+ /// <summary>
+ /// 娣诲姞Evoyo鐨凪ini鏅鸿兘閬ユ帶鍣ㄦ楠�1鐣岄潰
+ /// </summary>
+ public class AddMiniRemoteControlDirection1Page : EditorCommonForm
+ {
+ #region 鈻� 鍙橀噺澹版槑___________________________
+
+ #endregion
+
+ #region 鈻� 鍒濆鍖朹____________________________
+
+ /// <summary>
+ /// 鐢婚潰鏄剧ず(搴曞眰浼氬浐瀹氳皟鐢ㄦ鏂规硶锛屽�熶互瀹屾垚鐢婚潰鍒涘缓)
+ /// </summary>
+ public void ShowForm()
+ {
+ //璁剧疆澶撮儴淇℃伅
+ base.SetTitleText(Language.StringByID(StringId.AddInfraredRemoteControl));
+ //杩欎釜鐣岄潰鐨勮儗鏅渶瑕佺櫧鑹�
+ bodyFrameLayout.BackgroundColor = UI.CSS.CSS_Color.MainBackgroundColor;
+
+ //鍒濆鍖栦腑閮ㄤ俊鎭�
+ this.InitMiddleFrame();
+ }
+
+ /// <summary>
+ /// 鍒濆鍖栦腑閮ㄤ俊鎭�
+ /// </summary>
+ private void InitMiddleFrame()
+ {
+ //鍥剧墖
+ var btnPic = new PicViewControl(149, 95);
+ btnPic.Y = Application.GetRealHeight(99);
+ btnPic.Gravity = Gravity.CenterHorizontal;
+ btnPic.UnSelectedImagePath = "PersonalCenter/AddDevice/MiniRemoteControlBigPictrue.png";
+ bodyFrameLayout.AddChidren(btnPic);
+
+ //闀挎寜绾㈠閬ユ帶鍣ㄦ寜閽�10绉掞紝鎸囩ず鐏摑鑹插揩闂�
+ var strMsg = Language.StringByID(StringId.AddInfraredRemoteControlMsg1);
+ var intYY = this.AddListMsgControls(bodyFrameLayout, strMsg, CSS.CSS_FontSize.TextFontSize,
+ CSS.CSS_Color.FirstLevelTitleColor, Application.GetRealHeight(20), Application.GetRealHeight(408));
+
+ //璇风‘淇濇偍鐨勮摑鐗欏凡寮�鍚苟澶勪簬鍙互琚悳绱㈢姸鎬�
+ strMsg = Language.StringByID(StringId.AddInfraredRemoteControlMsg2);
+ this.AddListMsgControls(bodyFrameLayout, strMsg, CSS.CSS_FontSize.PromptFontSize_FirstLevel,
+ CSS.CSS_Color.PromptingColor1, Application.GetRealHeight(18), intYY + Application.GetRealHeight(4));
+
+ //涓嬩竴姝�
+ var btnNext = this.AddBottomClickButton(Language.StringByID(StringId.Next));
+ btnNext.ButtonClickEvent += (sender, e) =>
+ {
+ //妫�娴嬭摑鐗欓渶瑕佺殑涓滆タ
+ btnNext.CanClick = false;
+ HdlBluetoothLogic.Current.CheckCanScanBluetooth((result) =>
+ {
+ btnNext.CanClick = true;
+ if (result == true)
+ {
+ this.CloseForm();
+ var form = new AddMiniRemoteControlDirection2Page();
+ //鍒濆wifi鍜屽瘑鐮佷负绌�
+ form.AddForm(string.Empty, string.Empty);
+ }
+ });
+ };
+ }
+
+ #endregion
+ }
+}
diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/AddDevice/AddMiniRemoteControlDirection2Page.cs b/HDL_ON/UI/UI2/4-PersonalCenter/AddDevice/AddMiniRemoteControlDirection2Page.cs
new file mode 100644
index 0000000..8f46dd9
--- /dev/null
+++ b/HDL_ON/UI/UI2/4-PersonalCenter/AddDevice/AddMiniRemoteControlDirection2Page.cs
@@ -0,0 +1,308 @@
+锘縰sing HDL_ON.Stan;
+using Shared;
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace HDL_ON.UI
+{
+ /// <summary>
+ /// 娣诲姞Evoyo鐨凪ini鏅鸿兘閬ユ帶鍣ㄦ楠�2鐣岄潰
+ /// </summary>
+ public class AddMiniRemoteControlDirection2Page : EditorCommonForm
+ {
+ #region 鈻� 鍙橀噺澹版槑___________________________
+
+ /// <summary>
+ /// wifi鍚�
+ /// </summary>
+ private string wifiName = string.Empty;
+ /// <summary>
+ /// wifi瀵嗙爜
+ /// </summary>
+ private string wifiPassword = string.Empty;
+ /// <summary>
+ /// 钃濈墮璁惧
+ /// </summary>
+ private List<HdlBluetoothLogic.BluetoothInfo> listDevice = new List<HdlBluetoothLogic.BluetoothInfo>();
+
+ #endregion
+
+ #region 鈻� 鍒濆鍖朹____________________________
+
+ /// <summary>
+ /// 鐢婚潰鏄剧ず(搴曞眰浼氬浐瀹氳皟鐢ㄦ鏂规硶锛屽�熶互瀹屾垚鐢婚潰鍒涘缓)
+ /// </summary>
+ /// <param name="i_wifiName">wifi鍚�(鍒殑鐣岄潰浼犺繃鏉ョ殑)</param>
+ /// <param name="i_wifiPassword">(鍒殑鐣岄潰浼犺繃鏉ョ殑)</param>
+ public void ShowForm(string i_wifiName, string i_wifiPassword)
+ {
+ this.wifiName = i_wifiName;
+ this.wifiPassword = i_wifiPassword;
+
+ //璁剧疆澶撮儴淇℃伅
+ base.SetTitleText(Language.StringByID(StringId.AddInfraredRemoteControl));
+ //杩欎釜鐣岄潰鐨勮儗鏅渶瑕佺櫧鑹�
+ bodyFrameLayout.BackgroundColor = UI.CSS.CSS_Color.MainBackgroundColor;
+
+ //鍒濆鍖栦腑閮ㄤ俊鎭�
+ this.InitMiddleFrame();
+ }
+
+ /// <summary>
+ /// 鍒濆鍖栦腑閮ㄤ俊鎭�
+ /// </summary>
+ private void InitMiddleFrame()
+ {
+ //娓呯┖body
+ this.ClearBodyFrame();
+
+ //杩涘害鏉�
+ var btnProgress = new ProgressRowBar(180, 6);
+ btnProgress.Y = Application.GetRealHeight(218);
+ btnProgress.Gravity = Gravity.CenterHorizontal;
+ bodyFrameLayout.AddChidren(btnProgress);
+ btnProgress.StartMode1(true);
+
+ //璁惧鎼滅储涓�...
+ var btnSearch = new NormalViewControl(bodyFrameLayout.Width, Application.GetRealHeight(20), false);
+ btnSearch.Y = btnProgress.Bottom + Application.GetRealHeight(40);
+ btnSearch.TextColor = CSS.CSS_Color.FirstLevelTitleColor;
+ btnSearch.TextID = StringId.SearchingDevice;
+ btnSearch.TextAlignment = TextAlignment.Center;
+ bodyFrameLayout.AddChidren(btnSearch);
+
+ //璇风‘淇濇偍鐨勮摑鐗欏凡寮�鍚苟澶勪簬鍙互琚悳绱㈢姸鎬�
+ var strMsg = Language.StringByID(StringId.AddInfraredRemoteControlMsg2);
+ this.AddListMsgControls(bodyFrameLayout, strMsg, CSS.CSS_FontSize.TextFontSize,
+ CSS.CSS_Color.FirstLevelTitleColor, Application.GetRealHeight(20), btnSearch.Bottom + Application.GetRealHeight(4));
+
+ //寮�鍚繘搴︽潯鐗规晥
+ this.StartProgressSpecialEffects(btnProgress);
+ }
+
+ #endregion
+
+ #region 鈻� 鎼滅储钃濈墮___________________________
+
+ /// <summary>
+ /// 鎼滅储钃濈墮
+ /// </summary>
+ private void StartSearchBluetooth()
+ {
+ //寮�濮嬫悳绱㈣摑鐗�
+ HdlBluetoothLogic.Current.ScanBluetooth(2, (listBluetooth) =>
+ {
+ foreach (var device in listBluetooth)
+ {
+ //鍙湁杩欎釜鏍囪瘑,鎵嶆槸绾㈠瀹�
+ if (device.Name.StartsWith("MIR01R-LK.10") == true)
+ {
+ //鏄寚瀹氱殑绾㈠瀹濊澶�
+ listDevice.Add(device);
+ }
+ }
+ if (listDevice.Count == 0)
+ {
+ //鎽ф瘉钃濈墮缂撳瓨
+ HdlBluetoothLogic.Current.Dispone();
+ }
+ else if (listDevice.Count == 1)
+ {
+ //濡傛灉鍙娴嬪埌涓�涓�,鍒欑洿鎺ヨ繛鎺�
+ HdlBluetoothLogic.Current.ContectBluetooth(listDevice[0], (result) =>
+ {
+ if (result == true && this.Parent != null)
+ {
+ //杩炴帴鎴愬姛,鍒欒烦杞埌涓嬩竴涓晫闈�
+ HdlThreadLogic.Current.RunMain(() =>
+ {
+ this.CloseForm();
+ var form = new AddMiniRemoteControlDirection3Page();
+ form.AddForm(this.wifiName, this.wifiPassword);
+ });
+ }
+ else
+ {
+ HdlBluetoothLogic.Current.Dispone();
+ }
+ });
+ }
+ else
+ {
+ var listName = new List<string>();
+ foreach (var device in listDevice)
+ {
+ listName.Add(device.Name);
+ }
+ //鏄剧ず閫夋嫨钃濈墮鍒楄〃鐨勭晫闈�(褰撳尮閰嶅埌澶氫釜钃濈墮鐨勬椂鍊欎娇鐢�)
+ this.ShowBluetoothListView(listName, (index) =>
+ {
+ //濡傛灉鍙娴嬪埌涓�涓�,鍒欑洿鎺ヨ繛鎺�
+ HdlBluetoothLogic.Current.ContectBluetooth(listDevice[index], (result) =>
+ {
+ if (result == true)
+ {
+ //杩炴帴鎴愬姛,鍒欒烦杞埌涓嬩竴涓晫闈�
+ HdlThreadLogic.Current.RunMain(() =>
+ {
+ this.CloseForm();
+ var form = new AddMiniRemoteControlDirection3Page();
+ form.AddForm(this.wifiName, this.wifiPassword);
+ });
+ }
+ else
+ {
+ HdlBluetoothLogic.Current.Dispone();
+ }
+ });
+ });
+ }
+ });
+ }
+
+ /// <summary>
+ /// 寮�鍚繘搴︽潯鐗规晥
+ /// </summary>
+ private void StartProgressSpecialEffects(ProgressRowBar btnProgress)
+ {
+ //鎼滅储鏃堕棿(绉�)
+ int searchTime = 180;
+ HdlThreadLogic.Current.RunThread(() =>
+ {
+ //杩涘害鏉$壒鏁�
+ for (int i = 1; i <= searchTime; i++)
+ {
+ System.Threading.Thread.Sleep(1000);
+ HdlThreadLogic.Current.RunMain(() =>
+ {
+ //杩涘害鏉$壒鏁�
+ btnProgress.SetValue(i, searchTime);
+ });
+
+ //鐣岄潰鍏抽棴
+ if (this.Parent == null)
+ {
+ break;
+ }
+ //濡傛灉宸茬粡鎼滅储鍒拌摑鐗�,鍒欑洿鎺ュ埌100%
+ if (listDevice.Count > 0)
+ {
+ HdlThreadLogic.Current.RunMain(() =>
+ {
+ btnProgress.SetValue(searchTime, searchTime);
+ });
+ break;
+ }
+ if (i % 5 == 1)
+ {
+ //姣�5绉掓悳绱竴娆�
+ this.StartSearchBluetooth();
+ }
+ //瓒呮椂
+ if (i >= searchTime)
+ {
+ System.Threading.Thread.Sleep(3000);
+ //鏈�鍚庣殑鏃堕棿杩樻槸鎼滀笉鍒扮殑璇�
+ if (listDevice.Count == 0)
+ {
+ //鏄剧ず澶辫触鐣岄潰
+ HdlThreadLogic.Current.RunMain(() =>
+ {
+ this.ShowFailView();
+ });
+ }
+ break;
+ }
+ }
+ });
+ }
+
+ #endregion
+
+ #region 鈻� 鏄剧ず閫夋嫨钃濈墮鍒楄〃鐨勭晫闈____________
+
+ /// <summary>
+ /// 鏄剧ず閫夋嫨钃濈墮鍒楄〃鐨勭晫闈�(褰撳尮閰嶅埌澶氫釜钃濈墮鐨勬椂鍊欎娇鐢�)
+ /// </summary>
+ /// <param name="listName">钃濈墮鍚嶅瓧鍒楄〃</param>
+ /// <param name="selectEvent">閫夋嫨浜嬩欢(鑰冭檻鍒癐os鍜屽畨鍗�,鎵�浠ヨ繖鏍峰畾鍙傛暟)</param>
+ private void ShowBluetoothListView(List<string> listName, Action<int> selectEvent)
+ {
+ if (this.Parent == null) { return; }
+
+ HdlThreadLogic.Current.RunMain(() =>
+ {
+ var contr = new BottomItemSelectControl(listName.Count, Language.StringByID(StringId.ChooseInfraredRemoteControl), false);
+ //鍒濆鍖�
+ contr.AddRowMenu(listName, new List<int>());
+ contr.FinishOnlyEvent += (div, value) =>
+ {
+ if (div == 0)
+ {
+ //濡傛灉鐐瑰嚮浜嗗彇娑�,鍒欏叧闂繖涓晫闈�,涓嶇浜�
+ this.CloseForm();
+ }
+ else
+ {
+ //璋冪敤鍥炶皟鍑芥暟
+ selectEvent?.Invoke(value);
+ }
+ };
+ });
+ }
+
+ #endregion
+
+ #region 鈻� 鏄剧ず澶辫触鐣岄潰_______________________
+
+ /// <summary>
+ /// 鏄剧ず澶辫触鐣岄潰
+ /// </summary>
+ private void ShowFailView()
+ {
+ //娓呯┖body
+ this.ClearBodyFrame();
+ //鍥剧墖
+ var btnPic = new PicViewControl(180, 180);
+ btnPic.Y = Application.GetRealHeight(48);
+ btnPic.Gravity = Gravity.CenterHorizontal;
+ btnPic.UnSelectedImagePath = "Public/TipIcon_Failed.png";
+ bodyFrameLayout.AddChidren(btnPic);
+ //娌℃湁鍙戠幇绾㈠閬ユ帶鍣�
+ var btnMsgNot = new NormalViewControl(bodyFrameLayout.Width, Application.GetRealHeight(22), false);
+ btnMsgNot.Y = btnPic.Bottom + Application.GetRealHeight(16);
+ btnMsgNot.TextAlignment = TextAlignment.Center;
+ btnMsgNot.TextColor = CSS.CSS_Color.AuxiliaryColor2;
+ btnMsgNot.TextSize = CSS.CSS_FontSize.SubheadingFontSize;
+ btnMsgNot.TextID = StringId.NoInfraredRemoteControlFound;
+ bodyFrameLayout.AddChidren(btnMsgNot);
+ //1銆佽妫�鏌ヨ澶囨槸鍚︽甯搁�氱數
+ //2銆佽妫�鏌ヨ摑鐗欏姛鑳芥槸鍚︽甯稿紑鍚�
+ //3銆佽妫�鏌ユ寚绀虹伅鏄惁钃濊壊蹇棯鐘舵��
+ var strMsg = Language.StringByID(StringId.AddInfraredRemoteControlMsg3);
+ this.AddListMsgControls(bodyFrameLayout, strMsg, CSS.CSS_FontSize.TextFontSize,
+ CSS.CSS_Color.TextualColor, Application.GetRealHeight(20), btnMsgNot.Bottom + Application.GetRealHeight(8),
+ TextAlignment.Center, true);
+
+ //閲嶆柊鎼滅储
+ var btnReSearch = this.AddBottomClickButton(Language.StringByID(StringId.ReSearch));
+ btnReSearch.ButtonClickEvent += (sender, e) =>
+ {
+ //妫�娴嬭摑鐗欓渶瑕佺殑涓滆タ
+ btnReSearch.CanClick = false;
+ HdlBluetoothLogic.Current.CheckCanScanBluetooth((result) =>
+ {
+ btnReSearch.CanClick = true;
+ if (result == true)
+ {
+ //鍒濆鍖栦腑閮ㄤ俊鎭�
+ this.InitMiddleFrame();
+ }
+ });
+ };
+ }
+
+ #endregion
+ }
+}
diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/AddDevice/AddMiniRemoteControlDirection3Page.cs b/HDL_ON/UI/UI2/4-PersonalCenter/AddDevice/AddMiniRemoteControlDirection3Page.cs
new file mode 100644
index 0000000..3d08125
--- /dev/null
+++ b/HDL_ON/UI/UI2/4-PersonalCenter/AddDevice/AddMiniRemoteControlDirection3Page.cs
@@ -0,0 +1,215 @@
+锘縰sing HDL_ON.Stan;
+using Shared;
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace HDL_ON.UI
+{
+ /// <summary>
+ /// 娣诲姞Evoyo鐨凪ini鏅鸿兘閬ユ帶鍣ㄦ楠�3鐣岄潰
+ /// </summary>
+ public class AddMiniRemoteControlDirection3Page : EditorCommonForm
+ {
+ #region 鈻� 鍙橀噺澹版槑___________________________
+
+ /// <summary>
+ /// 褰撳墠wifi鐨勫悕瀛�
+ /// </summary>
+ private string NowWifiName = string.Empty;
+ /// <summary>
+ /// wifi鐨勭嚎绋嬫槸鍚﹀惎鍔�
+ /// </summary>
+ private bool WifiThreadAction = false;
+ /// <summary>
+ /// wifi鍚�(鍒殑鐣岄潰浼犺繃鏉ョ殑)
+ /// </summary>
+ private string wifiName = string.Empty;
+ /// <summary>
+ /// wifi瀵嗙爜(鍒殑鐣岄潰浼犺繃鏉ョ殑)
+ /// </summary>
+ private string wifiPassword = string.Empty;
+
+ #endregion
+
+ #region 鈻� 鍒濆鍖朹____________________________
+
+ /// <summary>
+ /// 鐢婚潰鏄剧ず(搴曞眰浼氬浐瀹氳皟鐢ㄦ鏂规硶锛屽�熶互瀹屾垚鐢婚潰鍒涘缓)
+ /// </summary>
+ /// <param name="i_wifiName">wifi鍚�(鍒殑鐣岄潰浼犺繃鏉ョ殑)</param>
+ /// <param name="i_wifiPassword">(鍒殑鐣岄潰浼犺繃鏉ョ殑)</param>
+ public void ShowForm(string i_wifiName, string i_wifiPassword)
+ {
+ this.wifiName = i_wifiName;
+ this.wifiPassword = i_wifiPassword;
+
+ //璁剧疆澶撮儴淇℃伅
+ base.SetTitleText(Language.StringByID(StringId.AddInfraredRemoteControl));
+ //杩欎釜鐣岄潰鐨勮儗鏅渶瑕佺櫧鑹�
+ bodyFrameLayout.BackgroundColor = UI.CSS.CSS_Color.MainBackgroundColor;
+
+ //鍒濆鍖栦腑閮ㄤ俊鎭�
+ this.InitMiddleFrame();
+
+ //閲嶅啓搴曞眰鐨勮繑鍥炴寜閿�
+ this.BackButtonClickEvent += () =>
+ {
+ //鍏虫帀钃濈墮
+ HdlBluetoothLogic.Current.Dispone();
+ this.CloseForm();
+ };
+ }
+
+ /// <summary>
+ /// 鍒濆鍖栦腑閮ㄤ俊鎭�
+ /// </summary>
+ private void InitMiddleFrame()
+ {
+ //杩炴帴WiFi
+ var btnWifi = new NormalViewControl(200, 28, true);
+ btnWifi.X = HdlControlResourse.XXLeft;
+ btnWifi.Y = Application.GetRealHeight(16);
+ btnWifi.IsBold = true;
+ btnWifi.TextColor = CSS.CSS_Color.FirstLevelTitleColor;
+ btnWifi.TextSize = CSS.CSS_FontSize.EmphasisFontSize_Secondary;
+ btnWifi.TextID = StringId.ConnectWiFi;
+ bodyFrameLayout.AddChidren(btnWifi);
+ //鐩墠鍙敮鎸�2.4G WiFi缃戠粶
+ //鏆備笉鏀寔甯︽湁涓枃瀛楃鐨刉iFi鍚嶇О
+ var strMsg = Language.StringByID(StringId.AddInfraredRemoteControlMsg4);
+ int yy = this.AddListMsgControls(bodyFrameLayout, strMsg, CSS.CSS_FontSize.TextFontSize, CSS.CSS_Color.TextualColor,
+ Application.GetRealHeight(20), btnWifi.Bottom + Application.GetRealHeight(16), TextAlignment.CenterLeft);
+
+ //wifi琛�
+ var rowWifi = new RowLayoutControl();
+ rowWifi.Y = yy + Application.GetRealHeight(32);
+ bodyFrameLayout.AddChidren(rowWifi);
+ //wifi鍚嶅瓧
+ var txtWifi = rowWifi.frameTable.AddLeftInput(wifiName, 200);
+ txtWifi.TextColor = CSS.CSS_Color.FirstLevelTitleColor;
+ //搴曠嚎
+ rowWifi.frameTable.AddBottomLine();
+ //鍚戝彸鍥炬爣
+ var btnRight = rowWifi.frameTable.AddMostRightEmptyIcon(24, 24);
+ btnRight.UnSelectedImagePath = "Public/Right.png";
+ btnRight.ButtonClickEvent += (sender, e) =>
+ {
+ //鎵撳紑鎵嬫満wifi璁剧疆鐣岄潰
+ HdlWifiLogic.Current.OpenAppWifiSettion();
+ //鍒锋柊wifi鍚嶅瓧
+ this.RefreshWifiName(txtWifi);
+ };
+ if (this.wifiName != string.Empty)
+ {
+ //杩欎釜鏃跺�欐槸閲嶈瘯妯″紡,涓嶅厑璁哥偣鍑�
+ btnRight.CanClick = false;
+ }
+
+ //瀵嗙爜琛�
+ var rowPsw = new RowLayoutControl();
+ rowPsw.Y = rowWifi.Bottom;
+ bodyFrameLayout.AddChidren(rowPsw);
+ //瀵嗙爜
+ var txtPsw = rowPsw.frameTable.AddLeftInput(wifiPassword, 200);
+ txtPsw.TextColor = CSS.CSS_Color.FirstLevelTitleColor;
+ txtPsw.PlaceholderText = Language.StringByID(StringId.Password);
+ txtPsw.SecureTextEntry = true;
+ //搴曠嚎
+ rowPsw.frameTable.AddBottomLine();
+ //鐪肩潧鍥炬爣
+ var btnView = rowPsw.frameTable.AddMostRightEmptyIcon(24, 24);
+ btnView.UnSelectedImagePath = "LoginIcon/HidePasswordIcon.png";
+ btnView.SelectedImagePath = "LoginIcon/ShowPasswordIcon.png";
+ btnView.ButtonClickEvent += (sender, e) =>
+ {
+ btnView.IsSelected = !btnView.IsSelected;
+ txtPsw.SecureTextEntry = !btnView.IsSelected;
+ };
+ if (this.wifiName != string.Empty)
+ {
+ //杩欎釜鏃跺�欐槸閲嶈瘯妯″紡,涓嶉渶瑕佺偣鍑�
+ HdlThreadLogic.Current.RunThread(() =>
+ {
+ System.Threading.Thread.Sleep(1000);
+ HdlThreadLogic.Current.RunMain(() =>
+ {
+ //杩涘叆涓嬩竴涓晫闈�
+ this.CloseForm();
+ var form = new AddMiniRemoteControlDirection4Page();
+ form.AddForm(wifiName, wifiPassword);
+ });
+ });
+ return;
+ }
+
+ //涓嬩竴姝�
+ var btnNext = this.AddBottomClickButton(Language.StringByID(StringId.Next));
+ btnNext.ButtonClickEvent += (sender, e) =>
+ {
+ if (txtWifi.Text.Trim() == string.Empty || txtPsw.Text.Trim() == string.Empty)
+ {
+ return;
+ }
+
+ //杩涘叆涓嬩竴涓晫闈�
+ this.CloseForm();
+ var form = new AddMiniRemoteControlDirection4Page();
+ form.AddForm(txtWifi.Text.Trim(), txtPsw.Text);
+ };
+
+ HdlThreadLogic.Current.RunThread(() =>
+ {
+ //鎵撳紑杩涘害鏉�,鍗″畠涓�涓�
+ this.ShowProgressBar();
+ //鑾峰彇褰撳墠wifi鍚嶅瓧(閲岄潰鍙兘浼氬崱)
+ this.NowWifiName = HdlWifiLogic.Current.SSID;
+ HdlThreadLogic.Current.RunMain(() =>
+ {
+ txtWifi.Text = NowWifiName;
+ });
+
+ this.CloseProgressBar();
+ });
+ }
+
+ #endregion
+
+ #region 鈻� 涓�鑸柟娉昣__________________________
+
+ /// <summary>
+ /// 鍒锋柊wifi鍚嶅瓧
+ /// </summary>
+ private void RefreshWifiName(TextInputControl textInput)
+ {
+ if (this.WifiThreadAction == true) { return; }
+ this.WifiThreadAction = true;
+
+ HdlThreadLogic.Current.RunThread(() =>
+ {
+ //杩欎釜绾跨▼涓嶄細琚腑鏂�
+ while (this.Parent != null)
+ {
+ System.Threading.Thread.Sleep(1500);
+ string wifiName = string.Empty;
+ try
+ {
+ //鑾峰彇褰撳墠wifi鍚嶅瓧(閲岄潰鍙兘浼氬崱)
+ wifiName = HdlWifiLogic.Current.SSID;
+ }
+ catch { continue; }
+ if (wifiName != this.NowWifiName)
+ {
+ this.NowWifiName = wifiName;
+ HdlThreadLogic.Current.RunMain(() =>
+ {
+ textInput.Text = this.NowWifiName;
+ });
+ }
+ }
+ });
+ }
+
+ #endregion
+ }
+}
diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/AddDevice/AddMiniRemoteControlDirection4Page.cs b/HDL_ON/UI/UI2/4-PersonalCenter/AddDevice/AddMiniRemoteControlDirection4Page.cs
new file mode 100644
index 0000000..3d66b86
--- /dev/null
+++ b/HDL_ON/UI/UI2/4-PersonalCenter/AddDevice/AddMiniRemoteControlDirection4Page.cs
@@ -0,0 +1,533 @@
+锘縰sing HDL_ON.Stan;
+using Shared;
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace HDL_ON.UI
+{
+ /// <summary>
+ /// 娣诲姞Evoyo鐨凪ini鏅鸿兘閬ユ帶鍣ㄦ楠�4鐣岄潰
+ /// </summary>
+ public class AddMiniRemoteControlDirection4Page : EditorCommonForm
+ {
+ #region 鈻� 鍙橀噺澹版槑___________________________
+
+ /// <summary>
+ /// wifi鍚嶅瓧
+ /// </summary>
+ private string wifiName = string.Empty;
+ /// <summary>
+ /// wifi瀵嗙爜
+ /// </summary>
+ private string wifiPsw = string.Empty;
+ /// <summary>
+ /// 瓒呮椂绾跨▼鏄惁杩愯
+ /// </summary>
+ private bool timeoutThreadActivity = false;
+ /// <summary>
+ /// 涓婁紶鍒颁簯鐨勫浘鏍�
+ /// </summary>
+ private IconViewControl btnClound = null;
+ /// <summary>
+ /// 涓婁紶鍒颁簯
+ /// </summary>
+ private NormalViewControl btnCloundView = null;
+ /// <summary>
+ /// 杩炴帴鎴愬姛鐨勫浘鏍�
+ /// </summary>
+ private IconViewControl btnConnect = null;
+ /// <summary>
+ /// 杩炴帴鎴愬姛
+ /// </summary>
+ private NormalViewControl btnConnetView = null;
+
+ #endregion
+
+ #region 鈻� 鍒濆鍖朹____________________________
+
+ /// <summary>
+ /// 鐢婚潰鏄剧ず(搴曞眰浼氬浐瀹氳皟鐢ㄦ鏂规硶锛屽�熶互瀹屾垚鐢婚潰鍒涘缓)
+ /// </summary>
+ /// <param name="i_wifiName">wifi鍚嶅瓧</param>
+ /// <param name="i_wifiPsw">wifi瀵嗙爜</param>
+ public void ShowForm(string i_wifiName, string i_wifiPsw)
+ {
+ this.wifiName = i_wifiName;
+ this.wifiPsw = i_wifiPsw;
+
+ //璁剧疆澶撮儴淇℃伅
+ base.SetTitleText(Language.StringByID(StringId.AddInfraredRemoteControl));
+ //杩欎釜鐣岄潰鐨勮儗鏅渶瑕佺櫧鑹�
+ bodyFrameLayout.BackgroundColor = UI.CSS.CSS_Color.MainBackgroundColor;
+
+ //娣诲姞鎺ユ敹钃濈墮鍙嶉鐨勪簨浠�
+ HdlBluetoothLogic.Current.AddReceiveEvent(this.BluetoothReceiveEvent);
+
+ //娣诲姞浜戠鍙嶉浜嬩欢
+ HdlCloudReceiveLogic.Current.AddCloudReceiveEvent("AddMiniRemoteControlDirection4Page", this.CloudReceiveEvent);
+
+ //鍒濆鍖栦腑閮ㄤ俊鎭�
+ this.InitMiddleFrame();
+ }
+
+ /// <summary>
+ /// 鍒濆鍖栦腑閮ㄤ俊鎭�
+ /// </summary>
+ private void InitMiddleFrame()
+ {
+ //娓呯┖body
+ this.ClearBodyFrame();
+ //鍥剧墖
+ var btnPic = new PicViewControl(282, 121);
+ btnPic.Y = Application.GetRealHeight(122);
+ btnPic.Gravity = Gravity.CenterHorizontal;
+ btnPic.UnSelectedImagePath = "PersonalCenter/AddDevice/WifiAndPhoneConnect.png";
+ bodyFrameLayout.AddChidren(btnPic);
+ //姝e湪杩炴帴涓�...
+ var btnSearch = new NormalViewControl(bodyFrameLayout.Width, Application.GetRealHeight(20), false);
+ btnSearch.Y = btnPic.Bottom + Application.GetRealHeight(40);
+ btnSearch.TextColor = CSS.CSS_Color.FirstLevelTitleColor;
+ btnSearch.TextID = StringId.NowConnectting;
+ btnSearch.TextAlignment = TextAlignment.Center;
+ bodyFrameLayout.AddChidren(btnSearch);
+ //璇疯绾㈠閬ユ帶灏介噺鎺ヨ繎WIFI璺敱鍣�
+ var strMsg = Language.StringByID(StringId.AddInfraredRemoteControlMsg5);
+ this.AddListMsgControls(bodyFrameLayout, strMsg, CSS.CSS_FontSize.TextFontSize,
+ CSS.CSS_Color.PromptingColor1, Application.GetRealHeight(20), btnSearch.Bottom + Application.GetRealHeight(4));
+
+ //缃戠粶杩炴帴涓�
+ var btnNetIcon = new IconViewControl(20);
+ btnNetIcon.X = Application.GetRealWidth(60);
+ btnNetIcon.Y = btnPic.Bottom + Application.GetRealHeight(265);
+ btnNetIcon.UnSelectedImagePath = "PersonalCenter/AddDevice/NetConnectSelect.png";
+ bodyFrameLayout.AddChidren(btnNetIcon);
+ var btnNetView = new NormalViewControl(140, 18, true);//宸﹀彸闂磋窛40鍐嶅姞鏂囨湰60
+ btnNetView.Y = btnNetIcon.Bottom + Application.GetRealHeight(16);
+ btnNetView.TextSize = CSS.CSS_FontSize.PromptFontSize_FirstLevel;
+ btnNetView.TextColor = CSS.CSS_Color.FirstLevelTitleColor;
+ btnNetView.TextAlignment = TextAlignment.Center;
+ btnNetView.TextID = StringId.InTheNetworkLink;
+ bodyFrameLayout.AddChidren(btnNetView);
+
+ //涓�鏉℃í绾�
+ var btnLine1 = new NormalViewControl(Application.GetRealWidth(92), 2, false);
+ btnLine1.X = btnNetIcon.Right + Application.GetRealWidth(3);
+ btnLine1.Y = btnNetIcon.Y + (btnNetIcon.Height + 2) / 2;
+ btnLine1.BackgroundColor = CSS.CSS_Color.PromptingColor1;
+ bodyFrameLayout.AddChidren(btnLine1);
+
+ //涓婁紶鍒颁簯
+ this.btnClound = new IconViewControl(20);
+ btnClound.Gravity = Gravity.CenterHorizontal;
+ btnClound.Y = btnNetIcon.Y;
+ btnClound.UnSelectedImagePath = "PersonalCenter/AddDevice/UploadToClound.png";
+ btnClound.SelectedImagePath = "PersonalCenter/AddDevice/UploadToCloundSelect.png";
+ bodyFrameLayout.AddChidren(btnClound);
+ this.btnCloundView = new NormalViewControl(btnNetView.Width, btnNetView.Height, false);
+ btnCloundView.Y = btnNetView.Y;
+ btnCloundView.Gravity = Gravity.CenterHorizontal;
+ btnCloundView.TextSize = CSS.CSS_FontSize.PromptFontSize_FirstLevel;
+ btnCloundView.TextColor = CSS.CSS_Color.PromptingColor1;
+ btnCloundView.TextAlignment = TextAlignment.Center;
+ btnCloundView.TextID = StringId.UploadToCloud;
+ bodyFrameLayout.AddChidren(btnCloundView);
+
+ //涓�鏉℃í绾�
+ var btnLine2 = new NormalViewControl(btnLine1.Width, btnLine1.Height, false);
+ btnLine2.X = btnClound.Right + Application.GetRealWidth(3);
+ btnLine2.Y = btnLine1.Y;
+ btnLine2.BackgroundColor = CSS.CSS_Color.PromptingColor1;
+ bodyFrameLayout.AddChidren(btnLine2);
+
+ //杩炴帴鎴愬姛
+ this.btnConnect = new IconViewControl(20);
+ btnConnect.X = bodyFrameLayout.Width - btnNetIcon.X - btnConnect.IconSize;
+ btnConnect.Y = btnNetIcon.Y;
+ btnConnect.UnSelectedImagePath = "PersonalCenter/AddDevice/ConnectSuccess.png";
+ btnConnect.SelectedImagePath = "PersonalCenter/AddDevice/ConnectSuccessSelect.png";
+ bodyFrameLayout.AddChidren(btnConnect);
+ this.btnConnetView = new NormalViewControl(btnNetView.Width, btnNetView.Height, false);
+ btnConnetView.X = bodyFrameLayout.Width - btnNetView.Width - btnNetView.X;
+ btnConnetView.Y = btnNetView.Y;
+ btnConnetView.TextSize = CSS.CSS_FontSize.PromptFontSize_FirstLevel;
+ btnConnetView.TextColor = CSS.CSS_Color.PromptingColor1;
+ btnConnetView.TextAlignment = TextAlignment.Center;
+ btnConnetView.TextID = StringId.ConnectSuccess;
+ bodyFrameLayout.AddChidren(btnConnetView);
+
+ HdlThreadLogic.Current.RunThread(() =>
+ {
+ System.Threading.Thread.Sleep(2000);
+ HdlThreadLogic.Current.RunMain(() =>
+ {
+ //鍙戦�佽处鍙峰拰瀵嗙爜缁欒摑鐗�
+ this.SendAccountAndPswToBluetooth();
+ });
+ //鍚姩瓒呮椂绾跨▼
+ this.StartTimeoutThread();
+ });
+ }
+
+ #endregion
+
+ #region 鈻� 鏄剧ず鎴愬姛鐣岄潰_______________________
+
+ /// <summary>
+ /// 鏄剧ず鎴愬姛鐣岄潰
+ /// </summary>
+ private void ShowSuccessView()
+ {
+ //娓呯┖body
+ this.ClearBodyFrame();
+
+ //鍥剧墖
+ var btnPic = new PicViewControl(180, 180);
+ btnPic.Y = Application.GetRealHeight(48);
+ btnPic.Gravity = Gravity.CenterHorizontal;
+ btnPic.UnSelectedImagePath = "Public/TipIcon_Successfully.png";
+ bodyFrameLayout.AddChidren(btnPic);
+
+ //娣诲姞鎴愬姛
+ var btnFail = new NormalViewControl(bodyFrameLayout.Width, Application.GetRealHeight(22), false);
+ btnFail.Y = btnPic.Bottom + Application.GetRealHeight(16);
+ btnFail.TextSize = CSS.CSS_FontSize.SubheadingFontSize;
+ btnFail.TextColor = CSS.CSS_Color.MainColor;
+ btnFail.TextAlignment = TextAlignment.Center;
+ btnFail.TextID = StringId.AddSuccess;
+ bodyFrameLayout.AddChidren(btnFail);
+
+ //鍙互寮�濮嬩娇鐢ㄧ孩澶栭仴鎺у姛鑳斤紒
+ var strMsg = Language.StringByID(StringId.AddInfraredRemoteControlMsg7);
+ int yy = this.AddListMsgControls(bodyFrameLayout, strMsg, CSS.CSS_FontSize.TextFontSize, CSS.CSS_Color.TextualColor,
+ Application.GetRealHeight(20), btnFail.Bottom + Application.GetRealHeight(8));
+
+ //寮�濮嬩娇鐢�
+ var btnUse = new BottomClickButton(220);
+ btnUse.Y = yy + Application.GetRealHeight(60);
+ btnUse.TextID = StringId.StartUse;
+ bodyFrameLayout.AddChidren(btnUse);
+ btnUse.ButtonClickEvent += (sender, e) =>
+ {
+ //鍏虫帀鐣岄潰
+ this.CloseForm();
+ HdlFormLogic.Current.CloseFormByFormName("AddThirdPartyDeviceMenuListPage");
+ HDL_ON.UI.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;
+ });
+ });
+ };
+ }
+
+ #endregion
+
+ #region 鈻� 鏄剧ず澶辫触鐣岄潰_______________________
+
+ /// <summary>
+ /// 鏄剧ず澶辫触鐣岄潰
+ /// </summary>
+ private void ShowFailView()
+ {
+ //娓呯┖body
+ this.ClearBodyFrame();
+
+ //鍥剧墖
+ var btnPic = new PicViewControl(180, 180);
+ btnPic.Y = Application.GetRealHeight(48);
+ btnPic.Gravity = Gravity.CenterHorizontal;
+ btnPic.UnSelectedImagePath = "Public/TipIcon_Failed.png";
+ bodyFrameLayout.AddChidren(btnPic);
+
+ //娣诲姞澶辫触
+ var btnFail = new NormalViewControl(bodyFrameLayout.Width, Application.GetRealHeight(22), false);
+ btnFail.Y = btnPic.Bottom + Application.GetRealHeight(16);
+ btnFail.TextSize = CSS.CSS_FontSize.SubheadingFontSize;
+ btnFail.TextColor = CSS.CSS_Color.AuxiliaryColor2;
+ btnFail.TextAlignment = TextAlignment.Center;
+ btnFail.TextID = StringId.AddFail;
+ bodyFrameLayout.AddChidren(btnFail);
+ //1銆佽妫�鏌ヨ澶囨槸鍚︽甯搁�氱數
+ //2銆佽寮�鍚摑鐗欏姛鑳�
+ //3銆佸苟闀挎寜鎸夐挳10s锛屾寚绀虹伅甯镐寒
+ var strMsg = Language.StringByID(StringId.AddInfraredRemoteControlMsg6);
+ this.AddListMsgControls(bodyFrameLayout, strMsg, CSS.CSS_FontSize.TextFontSize, CSS.CSS_Color.TextualColor,
+ Application.GetRealHeight(20), btnFail.Bottom + Application.GetRealHeight(8),
+ TextAlignment.Center, true);
+
+ //閲嶈瘯
+ var btnReDo = this.AddBottomClickButton(Language.StringByID(StringId.Retry));
+ btnReDo.ButtonClickEvent += (sender, e) =>
+ {
+ //閲嶆柊鍒濆鍖栦腑閮ㄤ俊鎭�
+ this.CloseForm();
+ var form = new AddMiniRemoteControlDirection2Page();
+ form.AddForm(this.wifiName, this.wifiPsw);
+ };
+ }
+
+ #endregion
+
+ #region 鈻� 鍙戦�佽处鍙峰拰瀵嗙爜缁欒摑鐗檁______________
+
+ /// <summary>
+ /// 鍙戦�佽处鍙峰拰瀵嗙爜缁欒摑鐗�
+ /// </summary>
+ private void SendAccountAndPswToBluetooth()
+ {
+ //鑾峰彇鍙戦�佸埌钃濈墮鐨勬暟鎹�
+ var sendData = this.GetSendToBluetoothData();
+ //涓嶇瓑寰�
+ HdlBluetoothLogic.Current.SendData(sendData);
+ }
+
+ #endregion
+
+ #region 鈻� 绾㈠瀹濈浉鍏虫柟娉昣____________________
+
+ /// <summary>
+ /// 妫�娴嬫槸鍚︽槸鏂扮殑绾㈠瀹�
+ /// </summary>
+ /// <param name="pushEnum">鎺ㄩ�佹灇涓�</param>
+ /// <param name="i_data">鎺ㄩ�佺殑鏁版嵁</param>
+ /// <returns></returns>
+ private bool CheckIsNewMiniRemoteControl(CloudPushEnum pushEnum, string i_data)
+ {
+ if (pushEnum != CloudPushEnum.A鏂拌澶囦笂鎶�) { return false; }
+
+ try
+ {
+ var strSpk = string.Empty;
+ //杞负json
+ var json = Newtonsoft.Json.Linq.JObject.Parse(i_data);
+ var linqArry = json["objects"] as Newtonsoft.Json.Linq.JArray;
+ if (linqArry != null)
+ {
+ //鏁扮粍绫诲瀷
+ if (linqArry.Count == 0) { return false; }
+ strSpk = linqArry[0]["spk"].ToString();
+ }
+ else
+ {
+ //闈炴暟缁勭被鍨�
+ strSpk = json["objects"]["spk"].ToString();
+ }
+ if (strSpk != Entity.SPK.IrModule)
+ {
+ //濡傛灉涓嶆槸绾㈠瀹濈殑璇�
+ return false;
+ }
+ return true;
+ }
+ catch { return false; }
+ }
+
+ /// <summary>
+ /// 鍒锋柊绾㈠瀹濅俊鎭�
+ /// </summary>
+ /// <param name="successEvent">鎴愬姛鐨勫洖璋冧簨浠�</param>
+ private void RefreshMiniRemoteControlInfo(Action successEvent)
+ {
+ var pra = new Dictionary<string, object>();
+ pra.Add("homeId", Entity.DB_ResidenceData.Instance.CurrentRegion.RegionID);
+ pra.Add("spk", Entity.SPK.IrModule);
+
+ var requestJson = DAL.Server.HttpUtil.GetSignRequestJson(pra);
+ HdlThreadLogic.Current.RunThread(() =>
+ {
+ int count = 0;
+ while (this.Parent != null)
+ {
+ try
+ {
+ //瓒呰繃5娆¢兘涓嶆垚鍔�,鐪熶笉澶勭悊浜�
+ count++;
+ if (count > 5) { return; }
+
+ //鑾峰彇鍏ㄩ儴绾㈠瀹濆垪琛�
+ var result = DAL.Server.HttpUtil.RequestHttpsPostFroHome(DAL.Server.NewAPI.Api_Post_GetDevcieList, requestJson);
+ if (result == null || result.Code != DAL.Server.StateCode.SUCCESS)
+ {
+ System.Threading.Thread.Sleep(3000);
+ continue;
+ }
+ var listDevice = Newtonsoft.Json.JsonConvert.DeserializeObject<Entity.DevcieApiPack>(result.Data.ToString());
+ foreach (var newFunction in listDevice.list)
+ {
+ //娣诲姞鍒扮紦瀛樺綋涓�
+ newFunction.SaveFunctionFile();
+ Entity.FunctionList.List.IniFunctionList(newFunction.savePath, true);
+ }
+ //璋冪敤鍥炶皟鍑芥暟
+ successEvent?.Invoke();
+ return;
+ }
+ catch
+ {
+ System.Threading.Thread.Sleep(3000);
+ }
+ }
+ });
+ }
+
+ #endregion
+
+ #region 鈻� 浜戠鍙嶉___________________________
+
+ /// <summary>
+ /// 浜戠鍙嶉
+ /// </summary>
+ /// <param name="pushEnum">鏋氫妇</param>
+ /// <param name="i_data">鎺ㄩ�佺殑鍐呭</param>
+ private void CloudReceiveEvent(CloudPushEnum pushEnum, string i_data)
+ {
+ //妫�娴嬫槸鍚︽槸鏂扮殑绾㈠瀹�
+ if (this.CheckIsNewMiniRemoteControl(pushEnum, i_data) == false)
+ {
+ return;
+ }
+ //鍒锋柊绾㈠瀹濅俊鎭�
+ this.RefreshMiniRemoteControlInfo(() =>
+ {
+ //绉婚櫎杩欎釜浜嬩欢
+ HdlCloudReceiveLogic.Current.RemoveCloudReceiveEvent("AddMiniRemoteControlDirection4Page");
+ //鍋滄绾跨▼
+ this.timeoutThreadActivity = false;
+
+ //娣诲姞璁惧鎴愬姛涔嬪悗,澶勭悊涓�浜涗笢瑗�
+ this.DoSomethingAfterAddDeviceSuccess();
+ });
+ }
+
+ /// <summary>
+ /// 娣诲姞璁惧鎴愬姛涔嬪悗,澶勭悊涓�浜涗笢瑗�
+ /// </summary>
+ private void DoSomethingAfterAddDeviceSuccess()
+ {
+ HdlThreadLogic.Current.RunThread(() =>
+ {
+ //鏁寸偣鐗规晥鑰屽凡
+ for (int i = 1; i <= 6; i++)
+ {
+ System.Threading.Thread.Sleep(1000);
+ if (i == 1)
+ {
+ HdlThreadLogic.Current.RunMain(() =>
+ {
+ //鏁寸偣鐗规晥鑰屽凡
+ this.btnClound.IsSelected = true;
+ this.btnCloundView.TextColor = CSS.CSS_Color.FirstLevelTitleColor;
+ });
+ }
+ else if (i == 4)
+ {
+ HdlThreadLogic.Current.RunMain(() =>
+ {
+ //鏁寸偣鐗规晥鑰屽凡
+ this.btnConnect.IsSelected = true;
+ this.btnConnetView.TextColor = CSS.CSS_Color.FirstLevelTitleColor;
+ });
+ }
+ else if (i == 6)
+ {
+ HdlThreadLogic.Current.RunMain(() =>
+ {
+ //鏄剧ず鎴愬姛鐣岄潰
+ this.ShowSuccessView();
+ });
+ }
+ }
+ });
+ }
+
+ #endregion
+
+ #region 鈻� 钃濈墮鍙嶉___________________________
+
+ /// <summary>
+ /// 钃濈墮鍙嶉
+ /// </summary>
+ /// <param name="i_receviceData">钃濈墮鍙嶉鐨勬暟鎹�</param>
+ private void BluetoothReceiveEvent(string i_receviceData)
+ {
+#if DEBUG
+ System.Console.WriteLine("钃濈墮杩斿洖锛�" + i_receviceData);
+#endif
+ }
+
+ #endregion
+
+ #region 鈻� 瓒呮椂绾跨▼___________________________
+
+ /// <summary>
+ /// 鍚姩瓒呮椂绾跨▼
+ /// </summary>
+ private void StartTimeoutThread()
+ {
+ HdlThreadLogic.Current.RunThread(() =>
+ {
+ //360绉掕秴鏃�
+ int timeout = 360;
+ while (this.timeoutThreadActivity == false && this.Parent != null)
+ {
+ System.Threading.Thread.Sleep(1000);
+ timeout--;
+ if (timeout == 0)
+ {
+ break;
+ }
+ }
+ if (timeout <= 0)
+ {
+ //鏄剧ず澶辫触鐣岄潰
+ HdlThreadLogic.Current.RunMain(() =>
+ {
+ this.ShowFailView();
+ });
+ }
+ });
+ }
+
+ #endregion
+
+ #region 鈻� 鐣岄潰鍏抽棴___________________________
+
+ /// <summary>
+ /// 鐣岄潰鍏抽棴
+ /// </summary>
+ public override void CloseFormBefore()
+ {
+ //鎽ф瘉钃濈墮
+ HdlBluetoothLogic.Current.Dispone();
+ HdlCloudReceiveLogic.Current.RemoveCloudReceiveEvent("AddMiniRemoteControlDirection4Page");
+
+ base.CloseFormBefore();
+ }
+
+ #endregion
+
+ #region 鈻� 涓�鑸柟娉昣__________________________
+
+ /// <summary>
+ /// 鑾峰彇鍙戦�佸埌钃濈墮鐨勬暟鎹�
+ /// </summary>
+ /// <returns></returns>
+ private string GetSendToBluetoothData()
+ {
+ var pra = new { id = "id010203", ssid = this.wifiName, password = this.wifiPsw };
+ var praData = Newtonsoft.Json.JsonConvert.SerializeObject(pra);
+
+ var sendData = "Topic:/user/id/custom/wifi/set\r\n";
+ sendData += "Length:" + praData.Length + "\r\n\r\n";
+ sendData += praData;
+ return sendData;
+ }
+
+ #endregion
+ }
+}
diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/AddDevice/AddThirdPartyDeviceMenuListPage.cs b/HDL_ON/UI/UI2/4-PersonalCenter/AddDevice/AddThirdPartyDeviceMenuListPage.cs
new file mode 100644
index 0000000..58b0c30
--- /dev/null
+++ b/HDL_ON/UI/UI2/4-PersonalCenter/AddDevice/AddThirdPartyDeviceMenuListPage.cs
@@ -0,0 +1,92 @@
+锘縰sing HDL_ON.Stan;
+using Shared;
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace HDL_ON.UI
+{
+ /// <summary>
+ /// 娣诲姞绗笁鏂硅澶囩殑鑿滃崟鍒楄〃鐣岄潰
+ /// </summary>
+ public class AddThirdPartyDeviceMenuListPage : EditorCommonForm
+ {
+ #region 鈻� 鍙橀噺澹版槑___________________________
+
+ #endregion
+
+ #region 鈻� 鍒濆鍖朹____________________________
+
+ /// <summary>
+ /// 鐢婚潰鏄剧ず(搴曞眰浼氬浐瀹氳皟鐢ㄦ鏂规硶锛屽�熶互瀹屾垚鐢婚潰鍒涘缓)
+ /// </summary>
+ /// <param name="i_div">
+ /// <para>Evoyo:Evoyo鐨勮澶�</para>
+ /// <para>Yingshi:钀ょ煶璁惧</para>
+ /// <para>Tuya:娑傞甫璁惧</para></param>
+ public void ShowForm(string i_div)
+ {
+ //璁剧疆澶撮儴淇℃伅
+ base.SetTitleText(Language.StringByID(StringId.AddDevice));
+
+ //鍒濆鍖栦腑閮ㄤ俊鎭�
+ this.InitMiddleFrame(i_div);
+ }
+
+ /// <summary>
+ /// 鍒濆鍖栦腑閮ㄤ俊鎭�
+ /// </summary>
+ private void InitMiddleFrame(string i_div)
+ {
+ //鍒楄〃瀹瑰櫒
+ var listView = new VerticalListControl();
+ listView.BackgroundColor = CSS.CSS_Color.MainBackgroundColor;
+ listView.Height = bodyFrameLayout.Height;
+ bodyFrameLayout.AddChidren(listView);
+
+ //Evoyo鐨勮澶�
+ if (i_div == "Evoyo")
+ {
+ //鍒濆鍖朎voyo璁惧鑿滃崟
+ this.InitEvoyoDeviceListMenu(listView);
+ }
+ //钀ょ煶璁惧
+ else if (i_div == "Yingshi")
+ {
+ }
+ //娑傞甫璁惧
+ else if (i_div == "Tuya")
+ {
+ }
+ }
+
+ #endregion
+
+ #region 鈻� 鍒濆鍖朎voyo璁惧鑿滃崟________________
+
+ /// <summary>
+ /// 鍒濆鍖朎voyo璁惧鑿滃崟
+ /// </summary>
+ /// <param name="listView"></param>
+ private void InitEvoyoDeviceListMenu(VerticalListControl listView)
+ {
+ //mini鏅鸿兘閬ユ帶鍣�
+ var rowMini = new RowLayoutControl();
+ listView.AddChidren(rowMini);
+ rowMini.frameTable.AddLeftIcon(32, "PersonalCenter/AddDevice/MiniRemoteControlMenuIcon.png");
+ var btnMiniView = rowMini.frameTable.AddLeftCaption(Language.StringByID(StringId.MiniIntelligentRemoteControl), 250);
+ btnMiniView.TextColor = CSS.CSS_Color.FirstLevelTitleColor;
+ rowMini.frameTable.AddRightArrow();
+ rowMini.frameTable.ButtonClickEvent += (sender, e) =>
+ {
+ var form = new AddMiniRemoteControlDirection1Page();
+ form.AddForm();
+ };
+
+ //璋冩暣妗屽竷鐪熷疄楂樺害
+ listView.AdjustRealHeight(0);
+ }
+
+ #endregion
+ }
+}
diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/AddFunction/AddDevciePage.cs b/HDL_ON/UI/UI2/4-PersonalCenter/AddFunction/AddDevciePage.cs
new file mode 100644
index 0000000..a876af9
--- /dev/null
+++ b/HDL_ON/UI/UI2/4-PersonalCenter/AddFunction/AddDevciePage.cs
@@ -0,0 +1,144 @@
+锘縰sing 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;
+ }
+ };
+ }
+
+ }
+
+ }
+}
diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/AddFunction/AddThirdPartyBrandListpage.cs b/HDL_ON/UI/UI2/4-PersonalCenter/AddFunction/AddThirdPartyBrandListpage.cs
index c66cb3f..f73971c 100644
--- a/HDL_ON/UI/UI2/4-PersonalCenter/AddFunction/AddThirdPartyBrandListpage.cs
+++ b/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()
@@ -26,6 +27,7 @@
{
Y = Application.GetRealHeight(64),
Height = Application.GetRealHeight(667 - 64),
+ VerticalScrollBarEnabled = false,
};
bodyView.AddChidren(contentView);
@@ -60,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,
@@ -101,6 +102,13 @@
row.AddChidren(btnName);
//涓嬭浇绗笁鏂瑰搧鐗宨con
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;
+ };
}
}
@@ -133,5 +141,13 @@
}
}) { IsBackground = true }.Start();
}
+ /// <summary>
+ /// 璺宠浆娣诲姞璁惧鐣岄潰
+ /// </summary>
+ /// <param name="bandType">鍝佺墝绫诲瀷</param>
+ void SkipPage_AddDevice()
+ {
+
+ }
}
}
\ No newline at end of file
diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/AddFunction/BrandListPage.cs b/HDL_ON/UI/UI2/4-PersonalCenter/AddFunction/BrandListPage.cs
new file mode 100644
index 0000000..ae8c28d
--- /dev/null
+++ b/HDL_ON/UI/UI2/4-PersonalCenter/AddFunction/BrandListPage.cs
@@ -0,0 +1,227 @@
+锘縰sing System;
+using System.Collections.Generic;
+using HDL_ON.Entity;
+using HDL_ON.UI.CSS;
+using Shared;
+namespace HDL_ON.UI
+{
+ public class BrandListPage : FrameLayout
+ {
+ FrameLayout bodyView;
+
+ 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(brandList);
+ MainPage.BasePageView.AddChidren(page);
+ page.LoadPage();
+ MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
+ };
+ new TopViewDiv(bodyView, Language.StringByID(StringId.FunctionBrand)).LoadTopView_AddIcon("3ty",action);
+
+ bodyView.BackgroundColor = CSS_Color.BackgroundColor;
+
+ contentView = new VerticalScrolViewLayout()
+ {
+ Y = Application.GetRealHeight(64),
+ Height = Application.GetRealHeight(603),
+ };
+ bodyView.AddChidren(contentView);
+
+ GetBindList();
+
+ }
+ /// <summary>
+ /// 鑾峰彇缁戝畾鍒楄〃
+ /// </summary>
+ void GetBindList()
+ {
+ var waitPage = new Loading();
+ waitPage.Start();
+ new System.Threading.Thread(() => {
+ try
+ {
+ var pm = new DAL.Server.HttpServerRequest();
+ var pack = pm.Get3tyBrandList();
+ if (pack.Code == DAL.Server.StateCode.SUCCESS)
+ {
+ brandList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<IntegratedBrand>>(pack.Data.ToString());
+ if (brandList.Count > 0)
+ {
+ Application.RunOnMainThread(() =>
+ {
+ LoadRow();
+ });
+ }else
+ {
+ Application.RunOnMainThread(() =>
+ {
+ NotListTipView();
+
+ });
+ }
+ }
+ }
+ catch (Exception ex)
+ {
+ MainPage.Log("2--::" + ex.Message);
+ }
+ finally
+ {
+ Application.RunOnMainThread(() => { waitPage.Hide(); });
+ }
+ })
+ { IsBackground = true }.Start();
+ }
+
+
+ void LoadRow()
+ {
+ contentView.RemoveAll();
+ bool isFrist = true;
+ foreach (var brand in brandList)
+ {
+ var row = new RowLayout()
+ {
+ Height = Application.GetRealHeight(50),
+ BackgroundColor = CSS_Color.MainBackgroundColor,
+ LineColor = 0x00000000,
+ };
+ 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);
+ }
+
+ ImageView btnIcon = new ImageView()
+ {
+ X = Application.GetRealWidth(12),
+ Gravity = Gravity.CenterVertical,
+ Width = Application.GetRealWidth(32),
+ Height = Application.GetRealWidth(32),
+ Radius = (uint)Application.GetRealWidth(4),
+ BackgroundColor = CSS_Color.PromptingColor1
+ };
+ 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 = brand.brandName,
+ };
+ row.AddChidren(btnName);
+ //涓嬭浇绗笁鏂瑰搧鐗宨con
+ 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()
+ {
+ contentView.RemoveAll();
+ var btnTip = new Button()
+ {
+ Gravity = Gravity.CenterHorizontal,
+ Y = Application.GetRealHeight(108),
+ Width = Application.GetRealWidth(180),
+ Height = Application.GetRealWidth(180),
+ UnSelectedImagePath = "TipNot.png",
+ };
+ contentView.AddChidren(btnTip);
+
+ var btnTipText = new Button()
+ {
+ Y = Application.GetRealHeight(292),
+ Height = Application.GetRealHeight(52),
+ TextSize = CSS_FontSize.TextFontSize,
+ TextColor = CSS_Color.FirstLevelTitleColor,
+ TextAlignment = TextAlignment.Center,
+ TextID = StringId.Not3tyBrandListTip,
+ };
+ contentView.AddChidren(btnTipText);
+
+ var btnTipText1 = new Button()
+ {
+ Y = Application.GetRealHeight(459),
+ Height = Application.GetRealHeight(41),
+ TextSize = CSS_FontSize.TextFontSize,
+ TextColor = CSS_Color.FirstLevelTitleColor,
+ TextAlignment = TextAlignment.Center,
+ TextID = StringId.Use3tyBrandListTip,
+ };
+ contentView.AddChidren(btnTipText1);
+
+ var btnAdd = new Button()
+ {
+ Y = Application.GetRealHeight(500),
+ Gravity = Gravity.CenterHorizontal,
+ Width = Application.GetRealWidth(220),
+ Height = Application.GetRealWidth(44),
+ BackgroundColor = CSS_Color.MainColor,
+ TextAlignment = TextAlignment.Center,
+ TextColor = CSS_Color.MainBackgroundColor,
+ TextSize = CSS_FontSize.SubheadingFontSize,
+ IsBold = true,
+ Radius = (uint)Application.GetRealWidth(22),
+ BorderColor = 0x00000000,
+ BorderWidth = 0,
+ TextID = StringId.Add,
+ };
+ contentView.AddChidren(btnAdd);
+
+
+ btnAdd.MouseUpEventHandler = (sender, e) => {
+ var page = new AddThirdPartyBrandListpage(brandList);
+ MainPage.BasePageView.AddChidren(page);
+ page.LoadPage();
+ MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
+ this.RemoveFromParent();
+ };
+
+
+
+ }
+ }
+}
diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/AddFunction/DeviceListPage.cs b/HDL_ON/UI/UI2/4-PersonalCenter/AddFunction/DeviceListPage.cs
new file mode 100644
index 0000000..df95071
--- /dev/null
+++ b/HDL_ON/UI/UI2/4-PersonalCenter/AddFunction/DeviceListPage.cs
@@ -0,0 +1,164 @@
+锘縰sing 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>();
+ }
+
+}
diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/AddFunction/ThirdPartyBrandListPage.cs b/HDL_ON/UI/UI2/4-PersonalCenter/AddFunction/ThirdPartyBrandListPage.cs
index bc6f542..b292e9d 100644
--- a/HDL_ON/UI/UI2/4-PersonalCenter/AddFunction/ThirdPartyBrandListPage.cs
+++ b/HDL_ON/UI/UI2/4-PersonalCenter/AddFunction/ThirdPartyBrandListPage.cs
@@ -1,93 +1,93 @@
-锘縰sing 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;
+// };
+// }
+// }
+//}
diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/PersonalCenterPage.cs b/HDL_ON/UI/UI2/4-PersonalCenter/PersonalCenterPage.cs
index 15e23fb..c73aa4f 100644
--- a/HDL_ON/UI/UI2/4-PersonalCenter/PersonalCenterPage.cs
+++ b/HDL_ON/UI/UI2/4-PersonalCenter/PersonalCenterPage.cs
@@ -339,7 +339,7 @@
userTypeView.AddChidren(btnUserTypeName);
#endregion
#region 浣忓畢绠$悊
-
+
if (!DB_ResidenceData.Instance.CurrentRegion.IsOthreShare)
{
#region ---浣忓畢绠$悊鍖哄煙
diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/PersonalCenterPageBLL.cs b/HDL_ON/UI/UI2/4-PersonalCenter/PersonalCenterPageBLL.cs
index 17453a7..7a96fac 100644
--- a/HDL_ON/UI/UI2/4-PersonalCenter/PersonalCenterPageBLL.cs
+++ b/HDL_ON/UI/UI2/4-PersonalCenter/PersonalCenterPageBLL.cs
@@ -260,20 +260,21 @@
{
EventHandler<MouseEventArgs> eventHandler = (sender, e) =>
{
- // var page = new ThirdPartyBrandListPage();
- // MainPage.BasePageView.AddChidren(page);
- // page.LoadPage();
+ var page = new BrandListPage();// AddThirdPartyBrandListpage(); // BrandListPage();
+ MainPage.BasePageView.AddChidren(page);
+ page.LoadPage();
+ MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
//鑾峰彇鍒楄〃
- HDL_ON.UI.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;
- });
- });
+ //HDL_ON.UI.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;
+ // });
+ //});
};
btnResidenceAddFunctionIcon.MouseUpEventHandler = eventHandler;
btnResidenceAddFunctionText.MouseUpEventHandler = eventHandler;
diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/ResetAccountPassword/ResetPasswordPage.cs b/HDL_ON/UI/UI2/4-PersonalCenter/ResetAccountPassword/ResetPasswordPage.cs
index 54bad8f..61fff82 100644
--- a/HDL_ON/UI/UI2/4-PersonalCenter/ResetAccountPassword/ResetPasswordPage.cs
+++ b/HDL_ON/UI/UI2/4-PersonalCenter/ResetAccountPassword/ResetPasswordPage.cs
@@ -195,6 +195,7 @@
{
CloseTime = 1,
Direction = AMPopTipDirection.None,
+ MaxWidth = Application.GetRealWidth(300),
Text = Language.StringByID(StringId.IncorrectRepeatPassword)
}.Show(bodyView);
@@ -310,6 +311,7 @@
{
CloseTime = 1,
Direction = AMPopTipDirection.None,
+ MaxWidth = Application.GetRealWidth(300),
Text = Language.StringByID(StringId.IncorrectRepeatPassword)
}.Show(bodyView);
}
diff --git a/HDL_ON/UI/UI2/FuntionControlView/AC/AcControlPage.cs b/HDL_ON/UI/UI2/FuntionControlView/AC/AcControlPage.cs
index 629a706..4874520 100644
--- a/HDL_ON/UI/UI2/FuntionControlView/AC/AcControlPage.cs
+++ b/HDL_ON/UI/UI2/FuntionControlView/AC/AcControlPage.cs
@@ -206,6 +206,8 @@
LoadEvent_TempChange();
LoadEvent_AcStatesChange();
+
+ LoadDiv_IrView();
}
/// <summary>
@@ -445,6 +447,146 @@
dialog.Show();
}
+ /// <summary>
+ /// 鍔犺浇绾㈠閬ユ帶鍣紝棰濆鎸夐挳
+ /// </summary>
+ void LoadDiv_IrView()
+ {
+ if (device.spk == SPK.AcIr)
+ {
+ var btnMore = new Button()
+ {
+ Gravity = Gravity.CenterHorizontal,
+ Y = Application.GetRealHeight(334),
+ Width = Application.GetRealWidth(30),
+ Height = Application.GetRealWidth(30),
+ UnSelectedImagePath = "FunctionIcon/AC/More.png",
+ };
+ FrameWhiteCentet1.AddChidren(btnMore);
+
+ btnMore.MouseUpEventHandler = (sender, e) => {
+ LoadDialog_IrMoreView();
+ };
+ }
+ }
+ /// <summary>
+ /// 鍔犺浇棰濆瀵圭孩澶栨寜閽晫闈�
+ /// </summary>
+ void LoadDialog_IrMoreView()
+ {
+ Dialog dialog = new Dialog();
+
+ var div = new FrameLayout();
+ dialog.AddChidren(div);
+ div.MouseUpEventHandler = (sender, e) => {
+ dialog.Close();
+ };
+
+ var bodyView = new FrameLayout()
+ {
+ Y = Application.GetRealHeight(463),
+ Height = Application.GetRealHeight(375),
+ BackgroundColor = CSS_Color.MainBackgroundColor,
+ };
+ div.AddChidren(bodyView);
+
+ var contentView = new FrameLayout()
+ {
+ Y = Application.GetRealHeight(16),
+ Gravity = Gravity.CenterHorizontal,
+ Width = Application.GetRealWidth(296),
+ };
+ bodyView.AddChidren(contentView);
+
+ var row = new FrameLayout()
+ {
+ Height = Application.GetRealHeight(60),
+ };
+ contentView.AddChidren(row);
+
+ int index = 0;
+ foreach (var attr in device.attributes)
+ {
+ if (attr.key == FunctionAttributeKey.Mode
+ || attr.key == FunctionAttributeKey.OnOff
+ || attr.key == FunctionAttributeKey.SetTemp
+ || attr.key == FunctionAttributeKey.SetTempStep
+ || attr.key == FunctionAttributeKey.FanSpeed
+ || attr.key == FunctionAttributeKey.FanManual
+ || attr.key == FunctionAttributeKey.FanAuto
+ )
+ {
+ continue;
+ }
+ if (index != 0 && index % 3 == 0)
+ {
+ row = new FrameLayout()
+ {
+ Width = Application.GetRealWidth(200),
+ Height = Application.GetRealHeight(56),
+ };
+ contentView.AddChidren(row);
+ }
+
+ var btn = new Button()
+ {
+ Gravity = Gravity.CenterVertical,
+ Width = Application.GetRealWidth(88),
+ Height = Application.GetRealHeight(40),
+ Radius = (uint)Application.GetRealHeight(18),
+ BorderColor = CSS_Color.PromptingColor1,
+ BorderWidth = (uint)Application.GetRealWidth(2),
+ TextAlignment = TextAlignment.Center,
+ TextSize = CSS_FontSize.TextFontSize,
+ TextColor = CSS_Color.FirstLevelTitleColor,
+ SelectedTextColor = CSS_Color.MainBackgroundColor,
+ SelectedBackgroundColor = CSS_Color.MainColor,
+ };
+ if (attr.value.Count > 0)
+ {
+ btn.Text = attr.value[0];
+ }
+ if (index % 3 == 1)
+ {
+ btn.Gravity = Gravity.Center;
+ }
+ else if (index % 3 == 2)
+ {
+ btn.X = Application.GetRealWidth(208);
+ }
+ row.AddChidren(btn);
+
+ btn.MouseUpEventHandler = (sender, e) =>
+ {
+ System.Collections.Generic.Dictionary<string, string> d = new System.Collections.Generic.Dictionary<string, string>();
+ d.Add(FunctionAttributeKey.Key, attr.key);
+ Control.Ins.SendWriteCommand(device, d);
+
+ new System.Threading.Thread(() =>
+ {
+ System.Threading.Thread.Sleep(2000);
+ Application.RunOnMainThread(() =>
+ {
+ btn.IsSelected = false;
+ });
+ })
+ { IsBackground = true }.Start();
+ };
+
+
+
+ index++;
+ }
+
+
+
+
+
+
+ dialog.Show();
+ }
+
+
#endregion
#region 鈻� 璁惧鐘舵�佸弽棣坃______________________
diff --git a/HDL_ON/UI/UI2/FuntionControlView/Electrical/ClothesHangerPage.cs b/HDL_ON/UI/UI2/FuntionControlView/Electrical/ClothesHangerPage.cs
index 57119a2..aa73f74 100644
--- a/HDL_ON/UI/UI2/FuntionControlView/Electrical/ClothesHangerPage.cs
+++ b/HDL_ON/UI/UI2/FuntionControlView/Electrical/ClothesHangerPage.cs
@@ -405,6 +405,7 @@
{
lightingView.SetViewStatus(lightTemp.state == "on");
}
+ Console.WriteLine($"鏃堕棿鎴筹細{device.time_stamp} 鏃堕棿锛歿device.GeteTime()} 鐑樺共:{hotDryTemp.state} 椋庡共:{windDryTemp.state} 娑堟瘨:{disinfectTemp.state} 鐏厜鐘舵�侊細{lightTemp.state}");
#endregion
#region 淇敼鏃堕棿
@@ -492,10 +493,26 @@
public void ChangeTime(string newTime)
{
int.TryParse(newTime, out leftTime);
+ if (leftTime > 0)
+ {
+ Application.RunOnMainThread(() =>
+ {
+ btnTime.Text = new TimeSpan(0, leftTime, 0).ToString().Remove(5, 3);
+ });
+ leftTime--;
+ }
+ else if (leftTime == 0)
+ {
+ Application.RunOnMainThread(() =>
+ {
+ btnTime.Text = "";
+ });
+ }
if (countdownThread == null)
{
countdownThread = new System.Threading.Thread(() =>
{
+
while (true)
{
if (leftTime > 0)
diff --git a/HDL_ON/UI/UI2/FuntionControlView/Electrical/IrLearnPage.cs b/HDL_ON/UI/UI2/FuntionControlView/Electrical/IrLearnPage.cs
new file mode 100644
index 0000000..aef5a45
--- /dev/null
+++ b/HDL_ON/UI/UI2/FuntionControlView/Electrical/IrLearnPage.cs
@@ -0,0 +1,146 @@
+锘縰sing System;
+using HDL_ON.DriverLayer;
+using HDL_ON.Entity;
+using HDL_ON.Stan;
+using HDL_ON.UI.CSS;
+using Shared;
+
+namespace HDL_ON.UI
+{
+ public class IrLearnPage : DeviceFunctionCardCommonForm
+ {
+ #region 鈻� 鍙橀噺澹版槑___________________________
+
+ #endregion
+
+ #region 鈻� 鍒濆鍖朹____________________________
+
+ /// <summary>
+ /// 鍒濆鍖栫櫧鑹插尯鍩熺殑鍐呭
+ /// </summary>
+ public override void InitFrameWhiteContent()
+ {
+
+ base.ShowColltionButton = false;
+ base.SetTitleText(Language.StringByID(StringId.RemoteControl));
+
+ //鍒濆鍖栫涓�涓储寮曢〉鐨勫唴瀹�
+ this.InitFrameWhiteContent1();
+
+ }
+
+ /// <summary>
+ /// 鍒濆鍖栫涓�涓储寮曢〉鐨勫唴瀹�
+ /// </summary>
+ private void InitFrameWhiteContent1()
+ {
+ var contentView = new VerticalScrolViewLayout()
+ {
+ Y = Application.GetRealHeight(94),
+ Gravity = Gravity.CenterHorizontal,
+ Width = Application.GetRealWidth(296),
+ Height = Application.GetRealHeight(376),
+ };
+ FrameWhiteCentet1.AddChidren(contentView);
+
+ var row = new FrameLayout()
+ {
+ //Width = Application.GetRealWidth(200),
+ Height = Application.GetRealHeight(56),
+ };
+ contentView.AddChidren(row);
+
+ int index = 0;
+ foreach(var attr in device.attributes)
+ {
+ if(index != 0 && index%3==0)
+ {
+ row = new FrameLayout()
+ {
+ Width = Application.GetRealWidth(200),
+ Height = Application.GetRealHeight(56),
+ };
+ contentView.AddChidren(row);
+ }
+
+ var btn = new Button()
+ {
+ Width = Application.GetRealWidth(88),
+ Height = Application.GetRealHeight(40),
+ Radius = (uint)Application.GetRealHeight(18),
+ BorderColor = CSS_Color.PromptingColor1,
+ BorderWidth = (uint)Application.GetRealWidth(2),
+ TextAlignment = TextAlignment.Center,
+ TextSize = CSS_FontSize.TextFontSize,
+ TextColor = CSS_Color.FirstLevelTitleColor,
+ SelectedTextColor = CSS_Color.MainBackgroundColor,
+ SelectedBackgroundColor = CSS_Color.MainColor,
+ };
+ if (attr.value.Count > 0)
+ {
+ btn.Text = attr.value[0];
+ }
+ if (index % 3 == 1)
+ {
+ btn.Gravity = Gravity.CenterHorizontal;
+ }
+ else if (index % 3 == 2)
+ {
+ btn.X = Application.GetRealWidth(208);
+ }
+ row.AddChidren(btn);
+
+ btn.MouseUpEventHandler = (sender, e) => {
+ System.Collections.Generic.Dictionary<string, string> d = new System.Collections.Generic.Dictionary<string, string>();
+ d.Add(attr.key, "");
+ Control.Ins.SendWriteCommand(device, d);
+
+ new System.Threading.Thread(() => {
+ System.Threading.Thread.Sleep(2000);
+ Application.RunOnMainThread(() => {
+ btn.IsSelected = false;
+ });
+ }) { IsBackground = true }.Start();
+ };
+
+
+
+ index++;
+ }
+
+ }
+
+
+ #endregion
+
+ #region 鈻� 璁惧鐘舵�佸弽棣坃______________________
+
+ /// <summary>
+ /// 璁惧鐘舵�佸弽棣�
+ /// </summary>
+ /// <param name="i_LocalDevice"></param>
+ public override void DeviceStatuPush(Function i_LocalDevice)
+ {
+ return;
+ }
+
+ #endregion
+
+ #region 鈻� 鍙戦�佸悇绉嶅懡浠______________________
+
+ #endregion
+
+ #region 鈻� 鍒锋柊鐣岄潰鐘舵�乢______________________
+
+ /// <summary>
+ /// 鍒锋柊鐣岄潰鐘舵��
+ /// </summary>
+ private void RefreshFormStatu()
+ {
+ return;
+ }
+
+ #endregion
+
+ }
+}
diff --git a/HDL_ON/UI/UI2/FuntionControlView/Electrical/TuyaAirCleanerPage.cs b/HDL_ON/UI/UI2/FuntionControlView/Electrical/TuyaAirCleanerPage.cs
index 171e369..d0199bb 100644
--- a/HDL_ON/UI/UI2/FuntionControlView/Electrical/TuyaAirCleanerPage.cs
+++ b/HDL_ON/UI/UI2/FuntionControlView/Electrical/TuyaAirCleanerPage.cs
@@ -73,9 +73,9 @@
/// </summary>
private MostRightIconControl btnAnionSwitch = null;
/// <summary>
- /// 婊よ姱澶嶄綅寮�鍏虫帶浠�
+ /// 婊よ姱澶嶄綅寮�鍏虫帶浠� 2021.03.09鎺т欢鍙樻洿
/// </summary>
- private MostRightIconControl btnResetSwitch = null;
+ //private MostRightIconControl btnResetSwitch = null;
/// <summary>
/// 绌烘皵璐ㄩ噺鏁版嵁
/// </summary>
@@ -328,12 +328,11 @@
rowReset.Height = Application.GetRealHeight(50);
rowReset.Width = FrameWhiteCentet2.Width;
rowReset.Y = rowAnion.Bottom;
- FrameWhiteCentet2.AddChidren(rowReset);
+ //FrameWhiteCentet2.AddChidren(rowReset);
rowReset.AddLeftCaption(Language.StringByID(StringId.FilterElementReset), 200);
rowReset.AddBottomLine();
- this.btnResetSwitch = rowReset.AddMostRightSwitchIcon();
- btnResetSwitch.IsSelected = this.airCleanerData.FilterReset;
- btnResetSwitch.ButtonClickEvent += (sender, e) =>
+ rowReset.AddRightArrow();
+ rowReset.ButtonClickEvent += (sender, e) =>
{
if (this.btnSwitch.IsSelected == false)
{
@@ -345,7 +344,7 @@
this.ShowMassage(ShowMsgType.Confirm, msg, () =>
{
//鍙戦�佷娇鑳藉懡浠�
- this.SendEnableComand(btnResetSwitch, "filter_reset", btnResetSwitch.IsSelected == true ? "false" : "true");
+ this.SendEnableComand(null, "filter_reset", "true");
});
};
}
@@ -624,12 +623,18 @@
/// </summary>
private void SendEnableComand(MostRightIconControl btnSwitch, string sendKey, string value)
{
- btnSwitch.CanClick = false;
+ if (btnSwitch != null)
+ {
+ btnSwitch.CanClick = false;
+ }
HdlThreadLogic.Current.RunThread(() =>
{
var dic = new Dictionary<string, string>();
dic.Add(sendKey, value);
Control.Ins.SendWriteCommand(this.device, dic, true);
+
+ if (btnSwitch == null) { return; }
+
HdlThreadLogic.Current.RunMain(() =>
{
btnSwitch.CanClick = true;
@@ -769,10 +774,10 @@
this.btnAnionSwitch.IsSelected = this.airCleanerData.Anion;
}
//婊よ姱澶嶄綅
- if (this.btnResetSwitch.IsSelected != this.airCleanerData.FilterReset)
- {
- this.btnResetSwitch.IsSelected = this.airCleanerData.FilterReset;
- }
+ //if (this.btnResetSwitch.IsSelected != this.airCleanerData.FilterReset)
+ //{
+ // this.btnResetSwitch.IsSelected = this.airCleanerData.FilterReset;
+ //}
}
#endregion
diff --git a/HDL_ON/UI/UI2/FuntionControlView/Electrical/TuyaWaterValvePage.cs b/HDL_ON/UI/UI2/FuntionControlView/Electrical/TuyaWaterValvePage.cs
index 89d188b..73e6c7a 100644
--- a/HDL_ON/UI/UI2/FuntionControlView/Electrical/TuyaWaterValvePage.cs
+++ b/HDL_ON/UI/UI2/FuntionControlView/Electrical/TuyaWaterValvePage.cs
@@ -42,12 +42,18 @@
/// </summary>
public override void InitFrameWhiteContent()
{
- base.SetTitleText(Language.StringByID(StringId.AirCleaner));
+ base.SetTitleText(Language.StringByID(StringId.WaterValve));
//鍒濆鍖栫涓�涓储寮曢〉鐨勫唴瀹�
this.InitFrameWhiteContent1();
//鍒锋柊鐣岄潰鐘舵��
this.RefreshFormStatu();
+ //璇诲彇鐘舵��
+ new System.Threading.Thread(() =>
+ {
+ Control.Ins.ReadFunctionsInfo(new List<string>() { device.deviceId});
+ })
+ { IsBackground = true }.Start();
}
/// <summary>
@@ -104,6 +110,21 @@
btnTimeSet.ButtonClickEvent = (sender, e) => {
SetControlTime();
};
+
+
+ var btnTimeSetTip = new NormalViewControl(300, 30, true)
+ {
+ Y = btnTimeSet.Bottom ,
+ Gravity = Gravity.CenterHorizontal,
+ TextAlignment = TextAlignment.Center,
+ TextSize = CSS_FontSize.TextFontSize,
+ //TextColor = 0x00000000,
+ SelectedTextColor = CSS_Color.TextualColor,
+ TextColor = CSS_Color.TextualColor,
+ TextID = StringId.TimeSwitch,
+ };
+ FrameWhiteCentet1.AddChidren(btnTimeSetTip);
+
//寮�鍏冲浘鏍�
this.btnSwitch = new IconViewControl(40);
@@ -187,7 +208,7 @@
{
btnControlTip.TextID = StringId.ControllerNotOn;
}
- this.btnSwitch.IsSelected = this.btnPictrue.IsSelected = onoffStatu.value.ToString() == "on";
+ this.btnSwitch.IsSelected = this.btnPictrue.IsSelected = onoffStatu.state.ToString() == "on";
}
if (timeStatu != null)
{
@@ -252,6 +273,7 @@
private void SetControlTime()
{
var timeControl = new BottomTimeSelectControl();
+ timeControl.RowCount = 5;
timeControl.InitControl(0,0);
timeControl.FinishEvent = (type,hours,min) => {
if (type == 1)//0:鍙栨秷锛�1:纭畾
diff --git a/HDL_ON/UI/UI2/FuntionControlView/Electrical/TuyaWeepRobotPage.cs b/HDL_ON/UI/UI2/FuntionControlView/Electrical/TuyaWeepRobotPage.cs
index f5028ec..2368509 100644
--- a/HDL_ON/UI/UI2/FuntionControlView/Electrical/TuyaWeepRobotPage.cs
+++ b/HDL_ON/UI/UI2/FuntionControlView/Electrical/TuyaWeepRobotPage.cs
@@ -127,7 +127,7 @@
//鍚稿姏璋冭妭
this.btnSuctionIcon = new IconViewControl(28);
btnSuctionIcon.Y = ImageControl.Bottom + Application.GetRealHeight(64);
- btnSuctionIcon.X = Application.GetRealWidth(33);
+ //btnSuctionIcon.X = Application.GetRealWidth(33);
btnSuctionIcon.UnSelectedImagePath = "FunctionIcon/Electrical/WeepRobot/Suction.png";
btnSuctionIcon.SelectedImagePath = "FunctionIcon/Electrical/WeepRobot/SuctionSelect.png";
FrameWhiteCentet1.AddChidren(btnSuctionIcon);
@@ -138,7 +138,7 @@
};
this.btnSuctionView = new NormalViewControl(80, 54, true);
btnSuctionView.Y = btnSuctionIcon.Bottom + Application.GetRealHeight(10);
- btnSuctionView.X = btnSuctionIcon.X - (Application.GetRealWidth(80) - btnSuctionIcon.Width) / 2;
+ //btnSuctionView.X = btnSuctionIcon.X - (Application.GetRealWidth(80) - btnSuctionIcon.Width) / 2;
btnSuctionView.TextAlignment = TextAlignment.TopCenter;
btnSuctionView.TextSize = CSS_FontSize.PromptFontSize_FirstLevel;
btnSuctionView.Text = Language.StringByID(StringId.SuctionAdjustment);
@@ -149,7 +149,8 @@
this.btnChargeIcon = new IconViewControl(28);
btnChargeIcon.UnSelectedImagePath = "FunctionIcon/Electrical/WeepRobot/ChargeSelect.png";
btnChargeIcon.Y = btnSuctionIcon.Y;
- btnChargeIcon.X = btnSuctionIcon.Right + Application.GetRealWidth(50);
+ //btnChargeIcon.X = btnSuctionIcon.Right + Application.GetRealWidth(50);
+ btnChargeIcon.Gravity = Gravity.CenterHorizontal;
FrameWhiteCentet1.AddChidren(btnChargeIcon);
btnChargeIcon.ButtonClickEvent += (sender, e) =>
{
@@ -164,6 +165,10 @@
btnChargeView.TextID = StringId.Charge;
FrameWhiteCentet1.AddChidren(btnChargeView);
+ //2021.03.09 鑸嶅純鎺夐潤闊冲姛鑳�
+ btnSuctionIcon.X = btnChargeIcon.X - btnSuctionIcon.IconSize - Application.GetRealWidth(50);
+ btnSuctionView.X = btnSuctionIcon.X - (Application.GetRealWidth(80) - btnSuctionIcon.Width) / 2;
+
//澹伴煶鍥炬爣
this.btnVoiceIcon = new IconViewControl(28);
btnVoiceIcon.Y = btnSuctionIcon.Y;
@@ -171,7 +176,7 @@
btnVoiceIcon.UnSelectedImagePath = "FunctionIcon/Electrical/WeepRobot/Voice.png";
btnVoiceIcon.SelectedImagePath = "FunctionIcon/Electrical/WeepRobot/VoiceSelect.png";
btnVoiceIcon.IsSelected = true;
- FrameWhiteCentet1.AddChidren(btnVoiceIcon);
+ //FrameWhiteCentet1.AddChidren(btnVoiceIcon);
btnVoiceIcon.ButtonClickEvent += (sender, e) =>
{
//鍙戦�侀潤闊冲懡浠�
@@ -183,12 +188,13 @@
btnVoiceView.TextAlignment = TextAlignment.TopCenter;
btnVoiceView.TextSize = CSS_FontSize.PromptFontSize_FirstLevel;
btnVoiceView.TextID = StringId.Mute;
- FrameWhiteCentet1.AddChidren(btnVoiceView);
+ //FrameWhiteCentet1.AddChidren(btnVoiceView);
//娓呮壂妯″紡鍥炬爣
this.btnModeIcon = new IconViewControl(28);
btnModeIcon.Y = btnSuctionIcon.Y;
- btnModeIcon.X = btnVoiceIcon.Right + Application.GetRealWidth(50);
+ //btnModeIcon.X = btnVoiceIcon.Right + Application.GetRealWidth(50);
+ btnModeIcon.X = btnChargeIcon.Right + Application.GetRealWidth(50);
btnModeIcon.UnSelectedImagePath = "FunctionIcon/Electrical/WeepRobot/Clean.png";
FrameWhiteCentet1.AddChidren(btnModeIcon);
btnModeIcon.ButtonClickEvent += (sender, e) =>
@@ -220,26 +226,28 @@
btnTitleName.TextID = StringId.WeepRobot;
FrameWhiteCentet2.AddChidren(btnTitleName);
+ //2021.03.09 鑸嶅純鑰楁潗绠$悊
//鑰楁潗绠$悊
- var rowManment = new FrameRowControl();
- rowManment.Height = Application.GetRealHeight(50);
- rowManment.Width = FrameWhiteCentet2.Width;
- rowManment.Y = Application.GetRealHeight(75);
- FrameWhiteCentet2.AddChidren(rowManment);
- rowManment.AddLeftCaption(Language.StringByID(StringId.ConsumablesManagement), 200);
- rowManment.AddBottomLine();
- rowManment.AddRightArrow();
- rowManment.ButtonClickEvent += (sender, e) =>
- {
- var form = new TuyaWeepRobotConsumablesMagPage();
- form.AddForm(this.device, this.weepRobotData);
- };
+ //var rowManment = new FrameRowControl();
+ //rowManment.Height = Application.GetRealHeight(50);
+ //rowManment.Width = FrameWhiteCentet2.Width;
+ //rowManment.Y = Application.GetRealHeight(75);
+ //FrameWhiteCentet2.AddChidren(rowManment);
+ //rowManment.AddLeftCaption(Language.StringByID(StringId.ConsumablesManagement), 200);
+ //rowManment.AddBottomLine();
+ //rowManment.AddRightArrow();
+ //rowManment.ButtonClickEvent += (sender, e) =>
+ //{
+ // var form = new TuyaWeepRobotConsumablesMagPage();
+ // form.AddForm(this.device, this.weepRobotData);
+ //};
//鍘嗗彶璁板綍
var rowHistory = new FrameRowControl();
rowHistory.Height = Application.GetRealHeight(50);
rowHistory.Width = FrameWhiteCentet2.Width;
- rowHistory.Y = rowManment.Bottom;
+ //rowHistory.Y = rowManment.Bottom;
+ rowHistory.Y = Application.GetRealHeight(75);
FrameWhiteCentet2.AddChidren(rowHistory);
rowHistory.AddLeftCaption(Language.StringByID(StringId.HistoryLog), 200);
rowHistory.AddBottomLine();
@@ -327,12 +335,15 @@
};
frameBack.Show();
+ //2021.03.09 鑸嶅純闅忔満娓呮壂
//鑿滃崟鎺т欢(娓呮壂妯″紡)
- var menuContr = new DialogTitleMenuControl(4, Language.StringByID(StringId.CleanMode));
+ //var menuContr = new DialogTitleMenuControl(4, Language.StringByID(StringId.CleanMode));
+ var menuContr = new DialogTitleMenuControl(3, Language.StringByID(StringId.CleanMode));
menuContr.X = Application.GetRealWidth(210);
menuContr.Y = Application.GetRealHeight(197);
menuContr.Width = Application.GetRealWidth(160);
- menuContr.Height = Application.GetRealHeight(243);
+ //menuContr.Height = Application.GetRealHeight(243);
+ menuContr.Height = Application.GetRealHeight(203);
dialogBody.AddChidren(menuContr);
//鑷姩娓呮壂
@@ -345,13 +356,13 @@
});
//闅忔満娓呮壂
- iconPath = this.weepRobotData.Mode == "random" ? "FunctionIcon/Electrical/WeepRobot/FixedPointModeSelect.png" : "FunctionIcon/Electrical/WeepRobot/FixedPointMode.png";
- menuContr.AddRowMenu(Language.StringByID(StringId.RandomClean), iconPath, this.weepRobotData.Mode == "random", () =>
- {
- frameBack.Close();
- //鍙戦�佹ā寮忓懡浠�
- this.SendComand("mode", "random");
- });
+ //iconPath = this.weepRobotData.Mode == "random" ? "FunctionIcon/Electrical/WeepRobot/FixedPointModeSelect.png" : "FunctionIcon/Electrical/WeepRobot/FixedPointMode.png";
+ //menuContr.AddRowMenu(Language.StringByID(StringId.RandomClean), iconPath, this.weepRobotData.Mode == "random", () =>
+ //{
+ // frameBack.Close();
+ // //鍙戦�佹ā寮忓懡浠�
+ // this.SendComand("mode", "random");
+ //});
//铻烘棆娓呮壂
iconPath = this.weepRobotData.Mode == "spiral" ? "FunctionIcon/Electrical/WeepRobot/AreaModeSelect.png" : "FunctionIcon/Electrical/WeepRobot/AreaMode.png";
@@ -520,13 +531,14 @@
this.btnModeIcon.SelectedImagePath = "FunctionIcon/Electrical/WeepRobot/AutoModeSelect.png";
this.btnModeView.TextID = StringId.AutoClean;
}
- else if (this.weepRobotData.Mode == "smart")
- {
- //闅忔満娓呮壂
- this.btnModeIcon.UnSelectedImagePath = "FunctionIcon/Electrical/WeepRobot/FixedPointMode.png";
- this.btnModeIcon.SelectedImagePath = "FunctionIcon/Electrical/WeepRobot/FixedPointModeSelect.png";
- this.btnModeView.TextID = StringId.RandomClean;
- }
+ //2021.03.09 鑸嶅純闅忔満娓呮壂
+ //else if (this.weepRobotData.Mode == "smart")
+ //{
+ // //闅忔満娓呮壂
+ // this.btnModeIcon.UnSelectedImagePath = "FunctionIcon/Electrical/WeepRobot/FixedPointMode.png";
+ // this.btnModeIcon.SelectedImagePath = "FunctionIcon/Electrical/WeepRobot/FixedPointModeSelect.png";
+ // this.btnModeView.TextID = StringId.RandomClean;
+ //}
else if (this.weepRobotData.Mode == "wall_follow")
{
//娌垮娓呮壂
diff --git a/HDL_ON/UI/UI2/UserPage.cs b/HDL_ON/UI/UI2/UserPage.cs
index 51a7e42..4397173 100644
--- a/HDL_ON/UI/UI2/UserPage.cs
+++ b/HDL_ON/UI/UI2/UserPage.cs
@@ -86,14 +86,6 @@
#endregion
#endregion
- /// <summary>
- /// 褰撳墠鍔ㄧ敾鏁堟灉
- /// 0:鏀惰棌
- /// 1:鍒嗙被
- /// 2:鏅鸿兘
- /// 3:涓汉
- /// </summary>
- int CurAnimationEffect = 0;
public void LoadPage()
{
@@ -307,9 +299,9 @@
/// <summary>
/// 鍒囨崲鍒版敹钘忕晫闈�
/// </summary>
- void ChooseCollection(bool qiangzhishuaxin = false)
+ void ChooseCollection()
{
- if (CurAnimationEffect == 0 || qiangzhishuaxin)
+ if (MainPage.CurPageIndex == 0)
{
return;
}
@@ -337,10 +329,10 @@
distance /= total;
new System.Threading.Thread(() => {
int index = 0;
- CurAnimationEffect = 0;
+ MainPage.CurPageIndex = 0;
while (index < total+1)
{
- if (CurAnimationEffect != 0)
+ if (MainPage.CurPageIndex != 0)
{
break;
}
@@ -391,7 +383,7 @@
/// </summary>
void ChooseClassification()
{
- if (CurAnimationEffect == 1)
+ if (MainPage.CurPageIndex == 1)
{
return;
}
@@ -413,15 +405,15 @@
distance /= total;
new System.Threading.Thread(() =>
{
- if (CurAnimationEffect == 1)
+ if (MainPage.CurPageIndex == 1)
{
return;
}
- CurAnimationEffect = 1;
+ MainPage.CurPageIndex = 1;
int index = 0;
while (index < total+1)
{
- if (CurAnimationEffect != 1)
+ if (MainPage.CurPageIndex != 1)
{
break;
}
@@ -482,7 +474,7 @@
/// </summary>
void ChooseIntellectualization()
{
- if (CurAnimationEffect == 2)
+ if (MainPage.CurPageIndex == 2)
{
return;
}
@@ -503,15 +495,15 @@
}
distance /= total;
new System.Threading.Thread(() => {
- if (CurAnimationEffect == 2)
+ if (MainPage.CurPageIndex == 2)
{
return;
}
- CurAnimationEffect = 2;
+ MainPage.CurPageIndex = 2;
int index = 0;
while (index < total+1)
{
- if(CurAnimationEffect!=2)
+ if(MainPage.CurPageIndex!=2)
{
break;
}
@@ -579,7 +571,7 @@
return;
}
#endif
- if (CurAnimationEffect == 3)
+ if (MainPage.CurPageIndex == 3)
{
return;
}
@@ -605,11 +597,11 @@
}
distance /= total;
new System.Threading.Thread(() => {
- CurAnimationEffect = 3;
+ MainPage.CurPageIndex = 3;
int index = 0;
while (index < total+1)
{
- if (CurAnimationEffect != 3)
+ if (MainPage.CurPageIndex != 3)
{
break;
}
diff --git a/HdlBluWi/.DS_Store b/HdlBluWi/.DS_Store
index 39659c2..8752578 100644
--- a/HdlBluWi/.DS_Store
+++ b/HdlBluWi/.DS_Store
Binary files differ
diff --git a/ys/Jars/app-release.aar b/ys/Jars/app-release.aar
index 3479f41..f612de8 100644
--- a/ys/Jars/app-release.aar
+++ b/ys/Jars/app-release.aar
Binary files differ
--
Gitblit v1.8.0