xm
2020-07-31 ecba45c93391066bc30c7bd602c3a7683fbb99a7
临时备份
28个文件已添加
37个文件已删除
105个文件已修改
17017 ■■■■■ 已修改文件
ZigbeeApp/GateWay.Droid/Assets/DeviceName.ini 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/GateWay.Droid/Assets/Language.ini 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/GateWay.Droid/Assets/Phone/Instruct/PanelFourButton.png 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/GateWay.Droid/Assets/Phone/Instruct/PanelThreeButton.png 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/GateWay.Droid/Assets/Phone/Instruct/PanelTwoButton.png 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/GateWay.Droid/Assets/Phone/ZigeeLogic/iconBackgroundColor1.png 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/GateWay.Droid/Assets/Phone/ZigeeLogic/iconSelectedBackgroundColor1.png 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/GateWay.Droid/GateWay.Droid.csproj 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/GateWay.Droid/Properties/AndroidManifest.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/GateWay.Droid/Resources/Resource.designer.cs 10137 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/GateWay.Droid/Resources/drawable/Loading.png 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Home.Ios/Assets.xcassets/LaunchImage.launchimage/1024_748-1.png 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Home.Ios/Assets.xcassets/LaunchImage.launchimage/1024_768-2.png 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Home.Ios/Assets.xcassets/LaunchImage.launchimage/1024_768-3.png 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Home.Ios/Assets.xcassets/LaunchImage.launchimage/1125_2436-1.png 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Home.Ios/Assets.xcassets/LaunchImage.launchimage/1242_2208.png 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Home.Ios/Assets.xcassets/LaunchImage.launchimage/1242_2688_XS Max-1.png 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Home.Ios/Assets.xcassets/LaunchImage.launchimage/1536_2008-1.png 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Home.Ios/Assets.xcassets/LaunchImage.launchimage/1536_2048-2.png 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Home.Ios/Assets.xcassets/LaunchImage.launchimage/1536_2048-3.png 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Home.Ios/Assets.xcassets/LaunchImage.launchimage/1792_828-1.png 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Home.Ios/Assets.xcassets/LaunchImage.launchimage/2048_1496-1.png 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Home.Ios/Assets.xcassets/LaunchImage.launchimage/2048_1536-2.png 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Home.Ios/Assets.xcassets/LaunchImage.launchimage/2048_1536-3.png 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Home.Ios/Assets.xcassets/LaunchImage.launchimage/2048_2732.png 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Home.Ios/Assets.xcassets/LaunchImage.launchimage/2208_1242-1.png 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Home.Ios/Assets.xcassets/LaunchImage.launchimage/2436_1125-1.png 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Home.Ios/Assets.xcassets/LaunchImage.launchimage/2688_1242-1.png 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Home.Ios/Assets.xcassets/LaunchImage.launchimage/320_480-1.png 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Home.Ios/Assets.xcassets/LaunchImage.launchimage/640_1136-2.png 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Home.Ios/Assets.xcassets/LaunchImage.launchimage/640_1136-3.png 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Home.Ios/Assets.xcassets/LaunchImage.launchimage/640_960-2.png 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Home.Ios/Assets.xcassets/LaunchImage.launchimage/640_960-3.png 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Home.Ios/Assets.xcassets/LaunchImage.launchimage/750_1334-1.png 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Home.Ios/Assets.xcassets/LaunchImage.launchimage/768_1004-1.png 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Home.Ios/Assets.xcassets/LaunchImage.launchimage/768_1024-2.png 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Home.Ios/Assets.xcassets/LaunchImage.launchimage/768_1024-3.png 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Home.Ios/Assets.xcassets/LaunchImage.launchimage/828_1792_XR-1.png 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Home.Ios/Assets.xcassets/LaunchImage.launchimage/Contents.json 56 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Home.Ios/Assets.xcassets/LaunchImage.launchimage/易欧1024*768.png 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Home.Ios/Assets.xcassets/LaunchImage.launchimage/易欧1024_748备份.png 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Home.Ios/Assets.xcassets/LaunchImage.launchimage/易欧1024_768备份.png 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Home.Ios/Assets.xcassets/LaunchImage.launchimage/易欧1125*2436.png 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Home.Ios/Assets.xcassets/LaunchImage.launchimage/易欧1242*2208.png 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Home.Ios/Assets.xcassets/LaunchImage.launchimage/易欧1242*2688.png 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Home.Ios/Assets.xcassets/LaunchImage.launchimage/易欧1536*2048.png 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Home.Ios/Assets.xcassets/LaunchImage.launchimage/易欧1536_2008备份.png 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Home.Ios/Assets.xcassets/LaunchImage.launchimage/易欧1536_2048备份.png 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Home.Ios/Assets.xcassets/LaunchImage.launchimage/易欧1792*828.png 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Home.Ios/Assets.xcassets/LaunchImage.launchimage/易欧2048*1536.png 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Home.Ios/Assets.xcassets/LaunchImage.launchimage/易欧2048*2732.png 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Home.Ios/Assets.xcassets/LaunchImage.launchimage/易欧2048_1496备份.png 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Home.Ios/Assets.xcassets/LaunchImage.launchimage/易欧2048_1536备份.png 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Home.Ios/Assets.xcassets/LaunchImage.launchimage/易欧2208*1242.png 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Home.Ios/Assets.xcassets/LaunchImage.launchimage/易欧2436*1125.png 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Home.Ios/Assets.xcassets/LaunchImage.launchimage/易欧2688*1242.png 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Home.Ios/Assets.xcassets/LaunchImage.launchimage/易欧320_480备份.png 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Home.Ios/Assets.xcassets/LaunchImage.launchimage/易欧640_1136备份-1.png 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Home.Ios/Assets.xcassets/LaunchImage.launchimage/易欧640_1136备份.png 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Home.Ios/Assets.xcassets/LaunchImage.launchimage/易欧640_960备份-1.png 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Home.Ios/Assets.xcassets/LaunchImage.launchimage/易欧640_960备份.png 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Home.Ios/Assets.xcassets/LaunchImage.launchimage/易欧750_1334备份.png 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Home.Ios/Assets.xcassets/LaunchImage.launchimage/易欧768*1024.png 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Home.Ios/Assets.xcassets/LaunchImage.launchimage/易欧768_1004备份.png 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Home.Ios/Assets.xcassets/LaunchImage.launchimage/易欧768_1024备份.png 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Home.Ios/Assets.xcassets/LaunchImage.launchimage/易欧828*1792.png 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Home.Ios/Home.IOS.csproj 58 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Home.Ios/Info.plist 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Home.Ios/Resources/DeviceName.ini 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Home.Ios/Resources/Language.ini 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Home.Ios/Resources/Phone/Instruct/PanelFourButton.png 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Home.Ios/Resources/Phone/Instruct/PanelThreeButton.png 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Home.Ios/Resources/Phone/Instruct/PanelTwoButton.png 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Home.Ios/Resources/Phone/ZigeeLogic/iconBackgroundColor1.png 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Home.Ios/Resources/Phone/ZigeeLogic/iconSelectedBackgroundColor1.png 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Common/CommonPage.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Common/Device.cs 129 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Common/House.cs 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/DLL/Android/Shared.Droid.HDLWidget.dll 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/DLL/Android/Shared.Droid.dll 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/Category/AddOrEditorSceneForm.cs 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/Category/CategoryMainForm.cs 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/Category/Controls/DeviceRow/DeviceColorLightRowControl.cs 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/Category/Controls/DeviceRow/DeviceColorTemperatureRowControl.cs 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/Device/Logic/AddScenePage.cs 80 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/Device/Logic/CurrentDeviceState.cs 136 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/Device/Logic/LogicDveiceStatus.cs 86 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/Device/Logic/LogicIfon.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/Device/Logic/LogicView/RoomClickView.cs 51 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/Device/Logic/Method.cs 34 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/Device/Logic/RoomAndDeviceView.cs 190 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/Device/Logic/Send.cs 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/Device/Logic/SkipView.cs 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/Device/VideoIntercom/VideoMachine.cs 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/Login/AccountLoginForm.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/Login/AccountRegisterSuccess.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/MainPage/ControlForm/DeviceAcDetailCardForm.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/MainPage/ControlForm/DeviceMiniLightDetailCardForm.cs 53 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/MainPage/Controls/DeviceCard/DeviceColorLightCardControl.cs 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/MainPage/Controls/DeviceCard/DeviceColorTemperatureCardControl.cs 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/MainPage/HomeMainPageForm.cs 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/SmartSound/Forms/SmartSoundContentForDevice.cs 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/TemplateData/TemplateCommonLogic.cs 1846 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/TemplateData/TemplateDataCommon.cs 738 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/TemplateData/TemplateDeviceDataLogic.cs 890 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Common/IMessageCommon.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Common/UserCenterCommon.cs 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/BaseCommonControl/Base/TextInputBase.cs 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/SeekBarControl.cs 23 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/NormalControls/MessageManagementControl.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlBackupLogic.cs 34 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlDeviceAirConditionerLogic.cs 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlDeviceAttributeLogic.cs 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlDeviceBindLogic.cs 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlDeviceCommonLogic.cs 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlDeviceCurtainLogic.cs 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlDeviceOtherLogic.cs 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlDevicePanelLogic.cs 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlDevicePirSensorLogic.cs 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlFileLogic.cs 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlFirmwareUpdateLogic.cs 298 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayLogic.cs 151 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayReceiveLogic.cs 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlResidenceLogic.cs 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlRoomLogic.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlSafeguardLogic.cs 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlSceneLogic.cs 47 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlWifiLogic.cs 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/UserCenterLogic.cs 83 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Resourse/DirectoryFileNameResourse.cs 77 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Resourse/UserCenterResourse.cs 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/MutilfunctionPanelMethod.cs 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceListMainForm.cs 39 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/UserCenter/Device/Direction/PanelFourButtonDirectionForm.cs 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/UserCenter/Device/Direction/PanelThreeButtonDirectionForm.cs 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/UserCenter/Device/Direction/PanelTwoButtonDirectionForm.cs 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelColorSelectForm.cs 182 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelSimpleMutilfunctionAddTargetsForm.cs 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelSimpleMutilfunctionTargetsForm.cs 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/UserCenter/Gateway/Add/MiniGatewaySearchForm.cs 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/UserCenter/Gateway/Add/MiniGatewaySelectNetworkForm.cs 88 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/UserCenter/Gateway/Add/WiredGatewaySearchForm.cs 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/UserCenter/Gateway/Add/WirelessApSearchForm.cs 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/UserCenter/Gateway/Add/WirelessApSelectNetworkForm.cs 94 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/UserCenter/Gateway/Add/WirelessUdpSearchForm.cs 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/UserCenter/Gateway/Manage/GatewayInfoEditorForm.cs 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/UserCenter/Gateway/Manage/GatewayListForm.cs 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/UserCenter/Gateway/Manage/GatewayRebindForm.cs 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/UserCenter/Gateway/Manage/GatewaySearchListForm.cs 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/UserCenter/HideOption/HideOptionDirectoryListForm.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/UserCenter/HideOption/HideOptionFileContentForm.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/UserCenter/HideOption/HideOptionFileListForm.cs 167 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/UserCenter/HideOption/HideOptionGatewayInfoMenuForm.cs 78 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/UserCenter/HideOption/HideOptionGatewayListFileForm.cs 203 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/UserCenter/HideOption/HideOptionGatewayListForm.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/UserCenter/HideOption/HideOptionMainForm.cs 99 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/UserCenter/HideOption/HideOptionSearchAllFile.cs 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/UserCenter/Member/MemberListForm.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/UserCenter/Member/MemberManagementForm.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/UserCenter/Residence/ResidenceListForm.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/UserCenter/Residence/ResidenceManagementForm.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/UserCenter/Safety/GarrisonAreaSettionMenuForm.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/UserView/HomePage.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/ZigBee/Common/Application.cs 73 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/ZigBee/Device/ColorTemperatureLight.cs 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/ZigBee/Device/CommonDevice.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/ZigBee/Device/Safeguard.cs 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/ZigBee/Device/ZbGatewayData.cs 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/R.cs 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Shared.projitems 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/GateWay.Droid/Assets/DeviceName.ini
@@ -105,9 +105,6 @@
MGCD01/M-ZB.10 = 1306 / å¸é¡¶å¼ç‡ƒæ°”传感器 / å¸é¡¶å¼ç‡ƒæ°”传感器 / 1200 / ä¼ æ„Ÿå™¨ / ä¼ æ„Ÿå™¨
;PM2.5空气质量传感器 
MSPM25/M-ZB.10 = 1307 / PM2.5空气质量传感器 / PM2.5空气质量传感器 / 1307 / ç©ºæ°”质量 / ä¼ æ„Ÿå™¨
;温湿度传感器(这个东西好像有两个)
MTH01/M-ZB.10 = 1308 / æ¸©æ¹¿åº¦ä¼ æ„Ÿå™¨ / æ¸©æ¹¿åº¦ä¼ æ„Ÿå™¨ / 1200 / ä¼ æ„Ÿå™¨ / ä¼ æ„Ÿå™¨
MSHIM01/M-ZB.10 = 1308 / æ¸©æ¹¿åº¦ä¼ æ„Ÿå™¨ / æ¸©æ¹¿åº¦ä¼ æ„Ÿå™¨ / 1200 / ä¼ æ„Ÿå™¨ / ä¼ æ„Ÿå™¨
;***************************************************************
;                           ç»§ç”µå™¨è®¾å¤‡
ZigbeeApp/GateWay.Droid/Assets/Language.ini
@@ -1880,8 +1880,6 @@
16141=紧急按钮
16142=门窗传感器
16143=钥匙扣
16144=色值号为6位(由任意数字+字母组合)
16145=长按此按键
;★★★★下面这些是接口的返回信息翻译,从18000开始★★★★
18004=指定网关已经被绑定
ZigbeeApp/GateWay.Droid/Assets/Phone/Instruct/PanelFourButton.png

ZigbeeApp/GateWay.Droid/Assets/Phone/Instruct/PanelThreeButton.png

ZigbeeApp/GateWay.Droid/Assets/Phone/Instruct/PanelTwoButton.png

ZigbeeApp/GateWay.Droid/Assets/Phone/ZigeeLogic/iconBackgroundColor1.png
Binary files differ
ZigbeeApp/GateWay.Droid/Assets/Phone/ZigeeLogic/iconSelectedBackgroundColor1.png
Binary files differ
ZigbeeApp/GateWay.Droid/GateWay.Droid.csproj
@@ -37,10 +37,11 @@
    <MandroidI18n>CJK</MandroidI18n>
    <AndroidTlsProvider>btls</AndroidTlsProvider>
    <AndroidEnableSGenConcurrent>true</AndroidEnableSGenConcurrent>
    <EmbedAssembliesIntoApk>true</EmbedAssembliesIntoApk>
    <AndroidSupportedAbis />
    <AndroidDexTool>d8</AndroidDexTool>
    <CheckForOverflowUnderflow>true</CheckForOverflowUnderflow>
<AndroidKeyStore>True</AndroidKeyStore>
<AndroidSigningKeyStore>/Users/hdl/Desktop/Keystore/HDL Home/HDL Home.keystore</AndroidSigningKeyStore>
<EmbedAssembliesIntoApk>true</EmbedAssembliesIntoApk>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
    <DebugSymbols>true</DebugSymbols>
@@ -56,6 +57,8 @@
    <CheckForOverflowUnderflow>true</CheckForOverflowUnderflow>
    <AndroidDexTool>d8</AndroidDexTool>
    <AndroidUseAapt2>false</AndroidUseAapt2>
    <AndroidKeyStore></AndroidKeyStore>
    <AndroidSigningKeyStore>/Users/hdl/Desktop/Keystore/HDL\ Home/HDL\ Home.keystore</AndroidSigningKeyStore>
  </PropertyGroup>
  <ItemGroup>
    <Reference Include="BouncyCastle.Crypto, Version=1.8.1.0, Culture=neutral, PublicKeyToken=0e99375e54769942">
@@ -2329,12 +2332,6 @@
  </ItemGroup>
  <ItemGroup>
    <AndroidAsset Include="Assets\Phone\Item\SynchronizationSelected.png" />
  </ItemGroup>
  <ItemGroup>
    <AndroidAsset Include="Assets\Phone\ZigeeLogic\iconBackgroundColor1.png" />
  </ItemGroup>
  <ItemGroup>
    <AndroidAsset Include="Assets\Phone\ZigeeLogic\iconSelectedBackgroundColor1.png" />
  </ItemGroup>
  <Import Project="..\Shared\Shared.projitems" Label="Shared" Condition="Exists('..\Shared\Shared.projitems')" />
  <Import Project="$(MSBuildExtensionsPath)\Xamarin\Android\Xamarin.Android.CSharp.targets" />
ZigbeeApp/GateWay.Droid/Properties/AndroidManifest.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.hdl.home" android:versionCode="0120072403" android:installLocation="auto" android:versionName="1.1.0120072403">
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.hdl.home" android:versionCode="0120072401" android:installLocation="auto" android:versionName="1.1.0120072401">
    <uses-sdk android:minSdkVersion="23" android:targetSdkVersion="26" />
    <permission android:name="com.hdl.home.permission.JPUSH_MESSAGE" android:protectionLevel="signature" />
    <uses-permission android:name="android.permission.WAKE_LOCK" />
ZigbeeApp/GateWay.Droid/Resources/Resource.designer.cs
Diff too large
ZigbeeApp/GateWay.Droid/Resources/drawable/Loading.png

ZigbeeApp/Home.Ios/Assets.xcassets/LaunchImage.launchimage/1024_748-1.png
ZigbeeApp/Home.Ios/Assets.xcassets/LaunchImage.launchimage/1024_768-2.png
ZigbeeApp/Home.Ios/Assets.xcassets/LaunchImage.launchimage/1024_768-3.png
ZigbeeApp/Home.Ios/Assets.xcassets/LaunchImage.launchimage/1125_2436-1.png
ZigbeeApp/Home.Ios/Assets.xcassets/LaunchImage.launchimage/1242_2208.png
ZigbeeApp/Home.Ios/Assets.xcassets/LaunchImage.launchimage/1242_2688_XS Max-1.png
ZigbeeApp/Home.Ios/Assets.xcassets/LaunchImage.launchimage/1536_2008-1.png
ZigbeeApp/Home.Ios/Assets.xcassets/LaunchImage.launchimage/1536_2048-2.png
ZigbeeApp/Home.Ios/Assets.xcassets/LaunchImage.launchimage/1536_2048-3.png
ZigbeeApp/Home.Ios/Assets.xcassets/LaunchImage.launchimage/1792_828-1.png
ZigbeeApp/Home.Ios/Assets.xcassets/LaunchImage.launchimage/2048_1496-1.png
ZigbeeApp/Home.Ios/Assets.xcassets/LaunchImage.launchimage/2048_1536-2.png
ZigbeeApp/Home.Ios/Assets.xcassets/LaunchImage.launchimage/2048_1536-3.png
ZigbeeApp/Home.Ios/Assets.xcassets/LaunchImage.launchimage/2048_2732.png
ZigbeeApp/Home.Ios/Assets.xcassets/LaunchImage.launchimage/2208_1242-1.png
ZigbeeApp/Home.Ios/Assets.xcassets/LaunchImage.launchimage/2436_1125-1.png
ZigbeeApp/Home.Ios/Assets.xcassets/LaunchImage.launchimage/2688_1242-1.png
ZigbeeApp/Home.Ios/Assets.xcassets/LaunchImage.launchimage/320_480-1.png
ZigbeeApp/Home.Ios/Assets.xcassets/LaunchImage.launchimage/640_1136-2.png
ZigbeeApp/Home.Ios/Assets.xcassets/LaunchImage.launchimage/640_1136-3.png
ZigbeeApp/Home.Ios/Assets.xcassets/LaunchImage.launchimage/640_960-2.png
ZigbeeApp/Home.Ios/Assets.xcassets/LaunchImage.launchimage/640_960-3.png
ZigbeeApp/Home.Ios/Assets.xcassets/LaunchImage.launchimage/750_1334-1.png
ZigbeeApp/Home.Ios/Assets.xcassets/LaunchImage.launchimage/768_1004-1.png
ZigbeeApp/Home.Ios/Assets.xcassets/LaunchImage.launchimage/768_1024-2.png
ZigbeeApp/Home.Ios/Assets.xcassets/LaunchImage.launchimage/768_1024-3.png
ZigbeeApp/Home.Ios/Assets.xcassets/LaunchImage.launchimage/828_1792_XR-1.png
ZigbeeApp/Home.Ios/Assets.xcassets/LaunchImage.launchimage/Contents.json
@@ -3,6 +3,7 @@
    {
      "orientation": "landscape",
      "extent": "full-screen",
      "filename": "1920_1080-1.png",
      "size": "1920x1080",
      "scale": "1x",
      "idiom": "tv",
@@ -11,6 +12,7 @@
    {
      "orientation": "landscape",
      "extent": "full-screen",
      "filename": "3840_2160-1.png",
      "size": "1920x1080",
      "scale": "2x",
      "idiom": "tv",
@@ -20,7 +22,7 @@
      "minimum-system-version": "12.0",
      "orientation": "portrait",
      "extent": "full-screen",
      "filename": "易欧1242*2688.png",
      "filename": "1242_2688_XS Max-1.png",
      "size": "414x896",
      "subtype": "1792",
      "scale": "3x",
@@ -30,7 +32,7 @@
      "minimum-system-version": "12.0",
      "orientation": "portrait",
      "extent": "full-screen",
      "filename": "易欧828*1792.png",
      "filename": "828_1792_XR-1.png",
      "size": "276x597.3",
      "subtype": "2688",
      "scale": "3x",
@@ -40,7 +42,7 @@
      "minimum-system-version": "12.0",
      "orientation": "landscape",
      "extent": "full-screen",
      "filename": "易欧2688*1242.png",
      "filename": "2688_1242-1.png",
      "size": "896x414",
      "subtype": "1792",
      "scale": "3x",
@@ -50,7 +52,7 @@
      "minimum-system-version": "12.0",
      "orientation": "landscape",
      "extent": "full-screen",
      "filename": "易欧1792*828.png",
      "filename": "1792_828-1.png",
      "size": "597.3x276",
      "subtype": "2688",
      "scale": "3x",
@@ -60,7 +62,7 @@
      "minimum-system-version": "11.0",
      "orientation": "portrait",
      "extent": "full-screen",
      "filename": "易欧1125*2436.png",
      "filename": "1125_2436-1.png",
      "size": "375x812",
      "subtype": "2436h",
      "scale": "3x",
@@ -70,7 +72,7 @@
      "minimum-system-version": "11.0",
      "orientation": "landscape",
      "extent": "full-screen",
      "filename": "易欧2436*1125.png",
      "filename": "2436_1125-1.png",
      "size": "812x375",
      "subtype": "2436h",
      "scale": "3x",
@@ -80,7 +82,7 @@
      "minimum-system-version": "8.0",
      "orientation": "portrait",
      "extent": "full-screen",
      "filename": "易欧1242*2208.png",
      "filename": "1242_2208.png",
      "size": "414x736",
      "subtype": "736h",
      "scale": "3x",
@@ -90,7 +92,7 @@
      "minimum-system-version": "8.0",
      "orientation": "portrait",
      "extent": "full-screen",
      "filename": "易欧750_1334备份.png",
      "filename": "750_1334-1.png",
      "size": "375x667",
      "subtype": "667h",
      "scale": "2x",
@@ -100,7 +102,7 @@
      "minimum-system-version": "8.0",
      "orientation": "landscape",
      "extent": "full-screen",
      "filename": "易欧2208*1242.png",
      "filename": "2208_1242-1.png",
      "size": "736x414",
      "subtype": "736h",
      "scale": "3x",
@@ -110,7 +112,7 @@
      "minimum-system-version": "7.0",
      "orientation": "portrait",
      "extent": "full-screen",
      "filename": "易欧2048*2732.png",
      "filename": "2048_2732.png",
      "size": "1024x1366",
      "scale": "2x",
      "idiom": "ipad"
@@ -119,7 +121,7 @@
      "minimum-system-version": "7.0",
      "orientation": "portrait",
      "extent": "full-screen",
      "filename": "易欧640_960备份.png",
      "filename": "640_960-2.png",
      "size": "320x480",
      "scale": "2x",
      "idiom": "iphone"
@@ -128,7 +130,7 @@
      "minimum-system-version": "7.0",
      "orientation": "portrait",
      "extent": "full-screen",
      "filename": "易欧640_1136备份.png",
      "filename": "640_1136-2.png",
      "size": "320x568",
      "subtype": "retina4",
      "scale": "2x",
@@ -138,7 +140,7 @@
      "minimum-system-version": "7.0",
      "orientation": "portrait",
      "extent": "full-screen",
      "filename": "易欧768*1024.png",
      "filename": "768_1024-2.png",
      "size": "768x1024",
      "scale": "1x",
      "idiom": "ipad"
@@ -147,7 +149,7 @@
      "minimum-system-version": "7.0",
      "orientation": "portrait",
      "extent": "full-screen",
      "filename": "易欧1536*2048.png",
      "filename": "1536_2048-2.png",
      "size": "768x1024",
      "scale": "2x",
      "idiom": "ipad"
@@ -156,7 +158,7 @@
      "minimum-system-version": "7.0",
      "orientation": "landscape",
      "extent": "full-screen",
      "filename": "易欧1024*768.png",
      "filename": "1024_768-2.png",
      "size": "1024x768",
      "scale": "1x",
      "idiom": "ipad"
@@ -165,7 +167,7 @@
      "minimum-system-version": "7.0",
      "orientation": "landscape",
      "extent": "full-screen",
      "filename": "易欧2048*1536.png",
      "filename": "2048_1536-2.png",
      "size": "1024x768",
      "scale": "2x",
      "idiom": "ipad"
@@ -173,7 +175,7 @@
    {
      "orientation": "portrait",
      "extent": "full-screen",
      "filename": "易欧320_480备份.png",
      "filename": "320_480-1.png",
      "size": "320x480",
      "scale": "1x",
      "idiom": "iphone"
@@ -181,7 +183,7 @@
    {
      "orientation": "portrait",
      "extent": "full-screen",
      "filename": "易欧640_960备份-1.png",
      "filename": "640_960-3.png",
      "size": "320x480",
      "scale": "2x",
      "idiom": "iphone"
@@ -189,7 +191,7 @@
    {
      "orientation": "portrait",
      "extent": "full-screen",
      "filename": "易欧640_1136备份-1.png",
      "filename": "640_1136-3.png",
      "size": "320x568",
      "subtype": "retina4",
      "scale": "2x",
@@ -198,7 +200,7 @@
    {
      "orientation": "portrait",
      "extent": "to-status-bar",
      "filename": "易欧768_1004备份.png",
      "filename": "768_1004-1.png",
      "size": "768x1004",
      "scale": "1x",
      "idiom": "ipad"
@@ -206,7 +208,7 @@
    {
      "orientation": "portrait",
      "extent": "to-status-bar",
      "filename": "易欧1536_2008备份.png",
      "filename": "1536_2008-1.png",
      "size": "768x1004",
      "scale": "2x",
      "idiom": "ipad"
@@ -214,7 +216,7 @@
    {
      "orientation": "portrait",
      "extent": "full-screen",
      "filename": "易欧768_1024备份.png",
      "filename": "768_1024-3.png",
      "size": "768x1024",
      "scale": "1x",
      "idiom": "ipad"
@@ -222,7 +224,7 @@
    {
      "orientation": "portrait",
      "extent": "full-screen",
      "filename": "易欧1536_2048备份.png",
      "filename": "1536_2048-3.png",
      "size": "768x1024",
      "scale": "2x",
      "idiom": "ipad"
@@ -230,7 +232,7 @@
    {
      "orientation": "landscape",
      "extent": "to-status-bar",
      "filename": "易欧1024_748备份.png",
      "filename": "1024_748-1.png",
      "size": "1024x748",
      "scale": "1x",
      "idiom": "ipad"
@@ -238,7 +240,7 @@
    {
      "orientation": "landscape",
      "extent": "to-status-bar",
      "filename": "易欧2048_1496备份.png",
      "filename": "2048_1496-1.png",
      "size": "1024x748",
      "scale": "2x",
      "idiom": "ipad"
@@ -246,7 +248,7 @@
    {
      "orientation": "landscape",
      "extent": "full-screen",
      "filename": "易欧1024_768备份.png",
      "filename": "1024_768-3.png",
      "size": "1024x768",
      "scale": "1x",
      "idiom": "ipad"
@@ -254,7 +256,7 @@
    {
      "orientation": "landscape",
      "extent": "full-screen",
      "filename": "易欧2048_1536备份.png",
      "filename": "2048_1536-3.png",
      "size": "1024x768",
      "scale": "2x",
      "idiom": "ipad"
ZigbeeApp/Home.Ios/Assets.xcassets/LaunchImage.launchimage/Ò×Å·1024*768.png
Binary files differ
ZigbeeApp/Home.Ios/Assets.xcassets/LaunchImage.launchimage/Ò×Å·1024_748±¸·Ý.png
Binary files differ
ZigbeeApp/Home.Ios/Assets.xcassets/LaunchImage.launchimage/Ò×Å·1024_768±¸·Ý.png
Binary files differ
ZigbeeApp/Home.Ios/Assets.xcassets/LaunchImage.launchimage/Ò×Å·1125*2436.png
Binary files differ
ZigbeeApp/Home.Ios/Assets.xcassets/LaunchImage.launchimage/Ò×Å·1242*2208.png
Binary files differ
ZigbeeApp/Home.Ios/Assets.xcassets/LaunchImage.launchimage/Ò×Å·1242*2688.png
Binary files differ
ZigbeeApp/Home.Ios/Assets.xcassets/LaunchImage.launchimage/Ò×Å·1536*2048.png
Binary files differ
ZigbeeApp/Home.Ios/Assets.xcassets/LaunchImage.launchimage/Ò×Å·1536_2008±¸·Ý.png
Binary files differ
ZigbeeApp/Home.Ios/Assets.xcassets/LaunchImage.launchimage/Ò×Å·1536_2048±¸·Ý.png
Binary files differ
ZigbeeApp/Home.Ios/Assets.xcassets/LaunchImage.launchimage/Ò×Å·1792*828.png
Binary files differ
ZigbeeApp/Home.Ios/Assets.xcassets/LaunchImage.launchimage/Ò×Å·2048*1536.png
Binary files differ
ZigbeeApp/Home.Ios/Assets.xcassets/LaunchImage.launchimage/Ò×Å·2048*2732.png
Binary files differ
ZigbeeApp/Home.Ios/Assets.xcassets/LaunchImage.launchimage/Ò×Å·2048_1496±¸·Ý.png
Binary files differ
ZigbeeApp/Home.Ios/Assets.xcassets/LaunchImage.launchimage/Ò×Å·2048_1536±¸·Ý.png
Binary files differ
ZigbeeApp/Home.Ios/Assets.xcassets/LaunchImage.launchimage/Ò×Å·2208*1242.png
Binary files differ
ZigbeeApp/Home.Ios/Assets.xcassets/LaunchImage.launchimage/Ò×Å·2436*1125.png
Binary files differ
ZigbeeApp/Home.Ios/Assets.xcassets/LaunchImage.launchimage/Ò×Å·2688*1242.png
Binary files differ
ZigbeeApp/Home.Ios/Assets.xcassets/LaunchImage.launchimage/Ò×Å·320_480±¸·Ý.png
Binary files differ
ZigbeeApp/Home.Ios/Assets.xcassets/LaunchImage.launchimage/Ò×Å·640_1136±¸·Ý-1.png
Binary files differ
ZigbeeApp/Home.Ios/Assets.xcassets/LaunchImage.launchimage/Ò×Å·640_1136±¸·Ý.png
Binary files differ
ZigbeeApp/Home.Ios/Assets.xcassets/LaunchImage.launchimage/Ò×Å·640_960±¸·Ý-1.png
Binary files differ
ZigbeeApp/Home.Ios/Assets.xcassets/LaunchImage.launchimage/Ò×Å·640_960±¸·Ý.png
Binary files differ
ZigbeeApp/Home.Ios/Assets.xcassets/LaunchImage.launchimage/Ò×Å·750_1334±¸·Ý.png
Binary files differ
ZigbeeApp/Home.Ios/Assets.xcassets/LaunchImage.launchimage/Ò×Å·768*1024.png
Binary files differ
ZigbeeApp/Home.Ios/Assets.xcassets/LaunchImage.launchimage/Ò×Å·768_1004±¸·Ý.png
Binary files differ
ZigbeeApp/Home.Ios/Assets.xcassets/LaunchImage.launchimage/Ò×Å·768_1024±¸·Ý.png
Binary files differ
ZigbeeApp/Home.Ios/Assets.xcassets/LaunchImage.launchimage/Ò×Å·828*1792.png
Binary files differ
ZigbeeApp/Home.Ios/Home.IOS.csproj
@@ -199,6 +199,33 @@
      <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\2048*1536-1.png" />
      <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\1920_1080-1.png" />
      <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\3840_2160-1.png" />
      <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\1242_2688_XS Max-1.png" />
      <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\828_1792_XR-1.png" />
      <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\2688_1242-1.png" />
      <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\1792_828-1.png" />
      <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\1125_2436-1.png" />
      <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\2436_1125-1.png" />
      <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\1242_2208.png" />
      <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\750_1334-1.png" />
      <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\2208_1242-1.png" />
      <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\2048_2732.png" />
      <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\640_960-2.png" />
      <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\640_1136-2.png" />
      <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\768_1024-2.png" />
      <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\1536_2048-2.png" />
      <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\1024_768-2.png" />
      <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\2048_1536-2.png" />
      <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\320_480-1.png" />
      <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\640_960-3.png" />
      <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\640_1136-3.png" />
      <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\768_1004-1.png" />
      <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\1536_2008-1.png" />
      <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\768_1024-3.png" />
      <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\1536_2048-3.png" />
      <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\1024_748-1.png" />
      <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\2048_1496-1.png" />
      <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\1024_768-3.png" />
      <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\2048_1536-3.png" />
      <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\40_40-3.png" />
      <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\60_60-1.png" />
      <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\58_58-2.png" />
@@ -223,37 +250,9 @@
      <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\87_87-2.png" />
      <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\80_80-4.png" />
      <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\1024_1024-2.png" />
      <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\易欧1242*2688.png" />
      <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\易欧828*1792.png" />
      <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\易欧2688*1242.png" />
      <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\易欧1792*828.png" />
      <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\易欧1125*2436.png" />
      <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\易欧2436*1125.png" />
      <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\易欧1242*2208.png" />
      <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\易欧2208*1242.png" />
      <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\易欧2048*2732.png" />
      <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\易欧768*1024.png" />
      <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\易欧1536*2048.png" />
      <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\易欧1024*768.png" />
      <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\易欧2048*1536.png" />
      <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\易欧750_1334备份.png" />
      <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\易欧640_960备份.png" />
      <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\易欧640_1136备份.png" />
      <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\易欧320_480备份.png" />
      <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\易欧640_960备份-1.png" />
      <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\易欧640_1136备份-1.png" />
      <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\易欧768_1004备份.png" />
      <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\易欧1536_2008备份.png" />
      <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\易欧768_1024备份.png" />
      <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\易欧1536_2048备份.png" />
      <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\易欧1024_748备份.png" />
      <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\易欧2048_1496备份.png" />
      <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\易欧1024_768备份.png" />
      <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\易欧2048_1536备份.png" />
    </ItemGroup>
    <ItemGroup>
      <BundleResource Include="Resources\Language.ini" />
      <BundleResource Include="Resources\DeviceName.ini" />
      <BundleResource Include="Resources\Phone\Guide\RightIcon.png" />
      <BundleResource Include="Resources\Phone\Guide\LeftIcon.png" />
      <BundleResource Include="Resources\Phone\Guide\Finger.png" />
@@ -706,7 +705,6 @@
      <BundleResource Include="Resources\Phone\ZigeeLogic\withdrawal.png" />
      <BundleResource Include="Resources\Phone\ZigeeLogic\logicaddcolor.png" />
      <BundleResource Include="Resources\Phone\ZigeeLogic\sensor13.png" />
      <BundleResource Include="Resources\Phone\ZigeeLogic\iconSelectedBackgroundColor1.png" />
      <BundleResource Include="Resources\Phone\ZigeeLogic\nightLight.png" />
      <BundleResource Include="Resources\Phone\ZigeeLogic\logicclose.png" />
      <BundleResource Include="Resources\Phone\ZigeeLogic\function.png" />
@@ -750,7 +748,6 @@
      <BundleResource Include="Resources\Phone\ZigeeLogic\sensor21.png" />
      <BundleResource Include="Resources\Phone\ZigeeLogic\selectedsensor0.png" />
      <BundleResource Include="Resources\Phone\ZigeeLogic\next.png" />
      <BundleResource Include="Resources\Phone\ZigeeLogic\iconBackgroundColor1.png" />
      <BundleResource Include="Resources\Phone\ZigeeLogic\iconSelectedBackgroundColor.png" />
      <BundleResource Include="Resources\Phone\ZigeeLogic\security.png" />
      <BundleResource Include="Resources\Phone\ZigeeLogic\sensor44.png" />
@@ -1144,6 +1141,7 @@
      <BundleResource Include="Resources\Phone\Gateway\WiredGateway.png" />
      <BundleResource Include="Resources\Phone\Gateway\WirelessGateway.png" />
      <BundleResource Include="Resources\Phone\Gateway\AddGatewaySuccess.png" />
      <BundleResource Include="Resources\DeviceName.ini" />
    </ItemGroup>
    <Import Project="..\Shared\Shared.projitems" Label="Shared" Condition="Exists('..\Shared\Shared.projitems')" />
    <Import Project="$(MSBuildExtensionsPath)\Xamarin\iOS\Xamarin.iOS.CSharp.targets" />
ZigbeeApp/Home.Ios/Info.plist
@@ -54,9 +54,9 @@
    <key>aps-environment</key>
    <string>development</string>
    <key>CFBundleShortVersionString</key>
    <string>1.1.0120072301</string>
    <string>1.1.012007061</string>
    <key>CFBundleVersion</key>
    <string>2020072301</string>
    <string>202007061</string>
    <key>CFBundleURLTypes</key>
    <array>
        <dict>
ZigbeeApp/Home.Ios/Resources/DeviceName.ini
@@ -105,9 +105,6 @@
MGCD01/M-ZB.10 = 1306 / å¸é¡¶å¼ç‡ƒæ°”传感器 / å¸é¡¶å¼ç‡ƒæ°”传感器 / 1200 / ä¼ æ„Ÿå™¨ / ä¼ æ„Ÿå™¨
;PM2.5空气质量传感器 
MSPM25/M-ZB.10 = 1307 / PM2.5空气质量传感器 / PM2.5空气质量传感器 / 1307 / ç©ºæ°”质量 / ä¼ æ„Ÿå™¨
;温湿度传感器(这个东西好像有两个)
MTH01/M-ZB.10 = 1308 / æ¸©æ¹¿åº¦ä¼ æ„Ÿå™¨ / æ¸©æ¹¿åº¦ä¼ æ„Ÿå™¨ / 1200 / ä¼ æ„Ÿå™¨ / ä¼ æ„Ÿå™¨
MSHIM01/M-ZB.10 = 1308 / æ¸©æ¹¿åº¦ä¼ æ„Ÿå™¨ / æ¸©æ¹¿åº¦ä¼ æ„Ÿå™¨ / 1200 / ä¼ æ„Ÿå™¨ / ä¼ æ„Ÿå™¨
;***************************************************************
;                           ç»§ç”µå™¨è®¾å¤‡
ZigbeeApp/Home.Ios/Resources/Language.ini
@@ -1880,8 +1880,6 @@
16141=紧急按钮
16142=门窗传感器
16143=钥匙扣
16144=色值号为6位(由任意数字+字母组合)
16145=长按此按键
;★★★★下面这些是接口的返回信息翻译,从18000开始★★★★
18004=指定网关已经被绑定
ZigbeeApp/Home.Ios/Resources/Phone/Instruct/PanelFourButton.png

ZigbeeApp/Home.Ios/Resources/Phone/Instruct/PanelThreeButton.png

ZigbeeApp/Home.Ios/Resources/Phone/Instruct/PanelTwoButton.png

ZigbeeApp/Home.Ios/Resources/Phone/ZigeeLogic/iconBackgroundColor1.png
Binary files differ
ZigbeeApp/Home.Ios/Resources/Phone/ZigeeLogic/iconSelectedBackgroundColor1.png
Binary files differ
ZigbeeApp/Shared/Common/CommonPage.cs
old mode 100755 new mode 100644
@@ -42,7 +42,7 @@
        /// <summary>
        /// ç‰ˆæœ¬å·
        /// </summary>
        public static string CodeIDString = "1.1.0120072403";
        public static string CodeIDString = "1.1.0120072401";
        /// <summary>
        /// æ³¨å†Œæ¥æº(0:HDL On 1:Zigbee)
        /// </summary>
@@ -378,7 +378,7 @@
                    DeviceType = deviceType
                };
                var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject(RegIDObj);
                var reverObj = CommonPage.Instance.RequestHttpsZigbeeAsync("ZigbeeUsers/SignZigbeeNeedPushRegID", System.Text.Encoding.UTF8.GetBytes(requestJson), 4);
                var reverObj = CommonPage.Instance.RequestHttpsZigbeeAsync("ZigbeeUsers/SignZigbeeNeedPushRegID", System.Text.Encoding.UTF8.GetBytes(requestJson));
                if (reverObj == null)
                {
                    //调试:记录极光ID
ZigbeeApp/Shared/Common/Device.cs
@@ -99,7 +99,7 @@
            this.dicDeviceEpoint.Clear();
            //初始化设备枚举
            this.InitDeviceModelIdEnum();
            this.InitDeviceModelIdEnum();
            //获取本地全部的设备文件
            List<string> listFile = this.GetAllDeviceFile();
@@ -267,8 +267,22 @@
                    listDriveDevice.Add(device);
                }
            }
            //设置虚拟设备的默认名字
            this.SetDriveDeviceDefultName(listDriveDevice);
            if (listDriveDevice.Count > 0)
            {
                //如果虚拟设备还没有名字的话
                HdlThreadLogic.Current.RunThread(() =>
                {
                    //如果不这样放在一个线程里,有可能对Dictionary产生影响
                    foreach (var myDevice in listDriveDevice)
                    {
                        //根据设备类型获取名称
                        var dName = this.GetDeviceObjectText(new List<CommonDevice>() { myDevice }, false);
                        //在端点名字的后面附加【回路】字样
                        dName += "(" + myDevice.DeviceEpoint + Language.StringByID(R.MyInternationalizationString.uDeviceCircuit) + ")";
                        this.ReName(myDevice, dName, ShowErrorMode.NO);
                    }
                });
            }
            //只有完全获取的时候,才会去处理删除的问题
            if (statu != 1)
@@ -520,42 +534,6 @@
            return true;
        }
        /// <summary>
        /// è®¾ç½®è™šæ‹Ÿè®¾å¤‡çš„默认名字
        /// </summary>
        /// <param name="listDriveDevice">虚拟设备列表</param>
        private void SetDriveDeviceDefultName(List<CommonDevice> listDriveDevice)
        {
            if (listDriveDevice.Count == 0)
            {
                return;
            }
            //如果虚拟设备还没有名字的话
            HdlThreadLogic.Current.RunThread(() =>
            {
                //如果不这样放在一个线程里,有可能对Dictionary产生影响
                foreach (var myDevice in listDriveDevice)
                {
                    string dName = string.Empty;
                    if (this.IsMiniLight(myDevice) == true)
                    {
                        //Mini夜灯
                        dName = Language.StringByID(R.MyInternationalizationString.uMiniNightLight);
                    }
                    else
                    {
                        //根据设备类型获取名称
                        dName = this.GetDeviceObjectText(new List<CommonDevice>() { myDevice }, false);
                        //在端点名字的后面附加【回路】字样
                        dName += "(" + myDevice.DeviceEpoint + Language.StringByID(R.MyInternationalizationString.uDeviceCircuit) + ")";
                    }
                    this.ReName(myDevice, dName, ShowErrorMode.NO);
                    System.Threading.Thread.Sleep(100);
                }
            });
        }
        ///<summary >
        /// ä¿®æ”¹è®¾å¤‡mac名称
        /// <para>macName:设备名称</para>
@@ -565,7 +543,7 @@
            //如果当前是虚拟住宅
            if (Common.Config.Instance.Home.IsVirtually == true)
            {
                return Phone.TemplateData.TemplateDeviceDataLogic.Current.ReDeviceMacName(device, macName);
                return Phone.ModelData.DeviceModelDataLogic.Current.ReDeviceMacName(device, macName, "MacRename");
            }
            //获取编辑设备Mac名字的命令字符
@@ -576,7 +554,7 @@
                return null;
            }
            //加缓存
            Phone.TemplateData.TemplateDeviceDataLogic.Current.ReDeviceMacName(device, macName);
            Phone.ModelData.DeviceModelDataLogic.Current.ReDeviceMacName(device, macName, "MacRename");
            var tempData = Newtonsoft.Json.JsonConvert.DeserializeObject<CommonDevice.RenameDeviceMacNameData>(result.ReceiptData);
            return new CommonDevice.RenameDeviceMacNameAllData { renameDeviceMacNameData = tempData };
@@ -593,7 +571,7 @@
            //如果当前是虚拟住宅
            if (Common.Config.Instance.Home.IsVirtually == true)
            {
                return Phone.TemplateData.TemplateDeviceDataLogic.Current.ReDeviceEpointName(device, deviceName);
                return Phone.ModelData.DeviceModelDataLogic.Current.ReDeviceEpointName(device, deviceName, "DeviceRename");
            }
            //获取编辑设备端点名字的命令字符
            var sendData = this.GetReDeviceEpointNameCommandText(device.DeviceAddr, device.DeviceEpoint, deviceName);
@@ -603,7 +581,7 @@
                return null;
            }
            //加缓存
            Phone.TemplateData.TemplateDeviceDataLogic.Current.ReDeviceEpointName(device, deviceName);
            Phone.ModelData.DeviceModelDataLogic.Current.ReDeviceEpointName(device, deviceName, "DeviceRename");
            var tempData = Newtonsoft.Json.JsonConvert.DeserializeObject<CommonDevice.DeviceRenameResponseData>(result.ReceiptData);
            return new CommonDevice.DeviceRenameAllData { deviceRenameData = tempData };
@@ -869,9 +847,9 @@
                //门锁没有定位功能
                return false;
            }
            var myTypeInfo = this.GetMyDeviceEnumInfo(new List<CommonDevice>() { device });
            if (device.Type == DeviceType.IASZone)
            {
                var myTypeInfo = this.GetMyDeviceEnumInfo(new List<CommonDevice>() { device });
                if (myTypeInfo.ConcreteType == DeviceConcreteType.Sensor_Pir)
                {
                    //传感器除了Pir都没有定位功能
@@ -882,11 +860,6 @@
                    //球型移动传感器虽然是电池设备,但是它有定位功能
                    return true;
                }
                return false;
            }
            //温湿度传感器没有定位功能
            if (myTypeInfo.ConcreteType == DeviceConcreteType.Sensor_TemperatureHumidity)
            {
                return false;
            }
@@ -1386,16 +1359,6 @@
                    //面板的温度探头叫  é¢æ¿åå­—+温度
                    return deviceInfoType.DeviceDefultName + Language.StringByID(R.MyInternationalizationString.uTemperature);
                }
                else if (((TemperatureSensor)device).SensorDiv == 1)
                {
                    //温度传感器
                    return Language.StringByID(R.MyInternationalizationString.TemperatureSensor);
                }
                else if (((TemperatureSensor)device).SensorDiv == 2)
                {
                    //湿度传感器
                    return Language.StringByID(R.MyInternationalizationString.HumiditySensor);
                }
            }
            //其他情况,使用它的默认名称
            return deviceInfoType.DeviceDefultName + epointNo;
@@ -1430,7 +1393,7 @@
        /// <param name="device">设备对象</param>
        /// <param name="macName">Mac名字</param>
        /// <returns></returns>
        public void SetMacName(CommonDevice device, string macName)
        private void SetMacName(CommonDevice device, string macName)
        {
            device.DeviceName = macName;
        }
@@ -1441,7 +1404,7 @@
        /// <param name="device">设备对象</param>
        /// <param name="epointName">端点名字</param>
        /// <returns></returns>
        public void SetEpointName(CommonDevice device, string epointName)
        private void SetEpointName(CommonDevice device, string epointName)
        {
            device.DeviceEpointName = epointName;
        }
@@ -1891,8 +1854,7 @@
                info.ObjectTypeName = this.dicDeviceModelIdEnum["A418"].A类型名字;//调光模块
            }
            else if (info.BeloneType == DeviceBeloneType.A传感器
                || device.Type == DeviceType.TemperatureSensor
                || device.Type == DeviceType.FreshAirHumiditySensor)
                || device.Type == DeviceType.TemperatureSensor)
            {
                //传感器合并
                info.ConcreteType = DeviceConcreteType.Sensor;
@@ -2197,6 +2159,12 @@
                //门窗传感器
                info.ConcreteType = DeviceConcreteType.Sensor_DoorWindow;
                info.ConcreteText = Language.StringByID(R.MyInternationalizationString.uSensorDoorWindow);
            }
            else if (iasZone.IasDeviceType == 541)
            {
                //球型移动传感器
                info.ConcreteType = DeviceConcreteType.Sensor_SphericalMotion;
                info.ConcreteText = this.dicDeviceModelIdEnum["MSPIRB-ZB.10"].A官方名字;
            }
        }
@@ -2739,14 +2707,15 @@
                                    listCheck.Add(mainkeys);
                                    //刷新一下本地缓存
                                    var localDevice = this.GetDevice(mainkeys);
                                    var tempDevice = localDevice == null ? device : localDevice;
                                    //刷新属性
                                    this.SetDeviceInfoToMain(tempDevice, device);
                                    if (this.RefreshDeviceFunctionType(tempDevice, device, false) == true)
                                    if (localDevice != null)
                                    {
                                        //需要发送功能类型给网关
                                        listFucDevice.Add(tempDevice);
                                        //刷新属性
                                        this.SetDeviceInfoToMain(localDevice, device);
                                        if (this.RefreshDeviceFunctionType(localDevice, device, false) == true)
                                        {
                                            //需要发送功能类型给网关
                                            listFucDevice.Add(localDevice);
                                        }
                                    }
                                }
                            }
@@ -2881,8 +2850,14 @@
        /// <param name="device">设置源设备对象</param>
        public void SetDeviceInfoToMain(CommonDevice mainDevice, CommonDevice device)
        {
            mainDevice.DeviceName = device.DeviceInfo.MacName;
            mainDevice.DeviceEpointName = device.DeviceInfo.DeviceName;
            if (string.IsNullOrEmpty(device.DeviceInfo.MacName) == false)
            {
                mainDevice.DeviceName = device.DeviceInfo.MacName;
            }
            if (string.IsNullOrEmpty(device.DeviceInfo.DeviceName) == false)
            {
                mainDevice.DeviceEpointName = device.DeviceInfo.DeviceName;
            }
            mainDevice.CurrentGateWayId = device.CurrentGateWayId;
            mainDevice.ZigbeeType = device.DeviceInfo.ZigbeeType;
            mainDevice.IsOnline = device.DeviceInfo.IsOnline;
@@ -3396,10 +3371,6 @@
        /// PM2.5空气质量传感器
        /// </summary>
        Sensor_PMTwoPointFive = 1307,
        /// <summary>
        /// æ¸©æ¹¿åº¦ä¼ æ„Ÿå™¨(这个单词拼错了,但是错了就错了呗,就这样了)
        /// </summary>
        Sensor_TemperatureHumidity = 1308,
        /// <summary>
        /// è¿åŠ¨ä¼ æ„Ÿå™¨
@@ -3410,7 +3381,11 @@
        /// </summary>
        Sensor_Keyfob = -1307,
        /// <summary>
        /// æ¸©åº¦ä¼ æ„Ÿå™¨(这个单词拼错了,但是错了就错了呗,就这样了)
        /// æ¸©æ¹¿åº¦ä¼ æ„Ÿå™¨
        /// </summary>
        Sensor_TemperatureHumidity = -1308,
        /// <summary>
        /// æ¸©åº¦ä¼ æ„Ÿå™¨
        /// </summary>
        Sensor_Temperature = -1309,
        /// <summary>
ZigbeeApp/Shared/Common/House.cs
@@ -65,58 +65,6 @@
        /// value:FloorName
        /// </summary>
        public Dictionary<string,string> FloorDics = new Dictionary<string,string> { };
        /// <summary>
        /// -1:未配置(需要重新选择) 1:无模板有设备  2:有模板有设备  3:无模板无设备(请无视这个变量)
        /// </summary>
        public int TemplateMode = -1;
        /// <summary>
        /// è¯¥ä½å®…是否是展示模板(此变量是给查看模板数据时使用的,请无视这个变量)
        /// </summary>
        [Newtonsoft.Json.JsonIgnore]
        public bool IsShowTemplate = false;
        /// <summary>
        /// å½“前住宅选择的模板名字(请无视这个变量)
        /// </summary>
        public string SelectTemplate = string.Empty;
        /// <summary>
        /// è‡ªå®šä¹‰å•元的标题名称(与ListUintContent个数匹配,请无视这个变量)
        /// </summary>
        public List<string> ListUintName = new List<string>();
        /// <summary>
        /// è‡ªå®šä¹‰å•元的内容(与ListUintName个数匹配,请无视这个变量)
        /// </summary>
        public List<string> ListUintContent = new List<string>();
        /// <summary>
        /// æœ€åŽç¼–辑的事件(2020.05.26追加) 1970/12/31 23:59格式
        /// </summary>
        public string LastEditorTime = "1970/12/31 23:59";
        /// <summary>
        /// æ ‡è¯†æ­¤ä½å®…的数据是否已经发送过模板数据给网关(只针对TemplateMode=2,请无视这个变量)
        /// </summary>
        public bool SendTemplateSuccess = false;
        /// <summary>
        /// è¿™ä¸ªä½å®…下所拥有的网关id(2020.05.26追加,null代表没有处理过,请无视这个变量)
        /// </summary>
        [Newtonsoft.Json.JsonIgnore]
        public List<string> listGatewayId = null;
        /// <summary>
        /// <para>标识住宅数据的区分(文件读取时配置,请无视这个变量):</para>
        /// <para>1:本身自己的数据(文件夹名字为住宅id)</para>
        /// <para>2:自己手动创建的保存在本机的备份(文件夹名字以【BackupResidenceData】开头)</para>
        /// <para>3:此数据从云端下载而来(文件夹名字以【DownLoadResidenceData】开头)</para>
        /// </summary>
        [Newtonsoft.Json.JsonIgnore]
        public int HouseDataDiv = 1;
        /// <summary>
        /// å½“前住宅的在线状态 -1:虚拟 0:离线 1:本地 2:远程 3:读取中(请无视这个变量)
        /// </summary>
        [Newtonsoft.Json.JsonIgnore]
        public string NowHomeOnlineStatu = "3";
        /// <summary>
        /// å½“前存放住宅数据的文件夹名字(此变量是给本机备份,或者云端下载备份使用的,请无视这个变量)
        /// </summary>
        [Newtonsoft.Json.JsonIgnore]
        public string SaveDirctoryName = string.Empty;
        #endregion
@@ -150,8 +98,6 @@
        /// <param name="autoBackup">是否备份</param>
        public void Save(bool autoBackup = true)
        {
            //修改时间
            this.LastEditorTime = DateTime.Now.ToString("yyyy/MM/dd HH:mm");
            var path = System.IO.Path.Combine(Shared.IO.FileUtils.RootPath, Config.Instance.Guid, Id);
            //如果没有存在住宅目录,先创建
            if (!System.IO.Directory.Exists(path))
ZigbeeApp/Shared/DLL/Android/Shared.Droid.HDLWidget.dll
Binary files differ
ZigbeeApp/Shared/DLL/Android/Shared.Droid.dll
Binary files differ
ZigbeeApp/Shared/Phone/Category/AddOrEditorSceneForm.cs
@@ -844,8 +844,6 @@
                var result = await HdlSceneLogic.Current.EditorSceneNameFromGateway(this.editorScene, this.cloneScene.Name);
                if (result == false)
                {
                    //关闭进度条
                    this.CloseProgressBar();
                    return;
                }
            }
@@ -853,10 +851,10 @@
            {
                //修改场景
                var result = await HdlSceneLogic.Current.EditorSceneFromGateway(this.editorScene, this.listAdjustTarget);
                //关闭进度条
                this.CloseProgressBar();
                if (result == false)
                {
                    //关闭进度条
                    this.CloseProgressBar();
                    return;
                }
            }
@@ -905,9 +903,6 @@
            //编辑场景,主页需要重新刷新
            UserView.UserPage.Instance.RefreshAllForm = true;
            //关闭进度条
            this.CloseProgressBar();
            HdlThreadLogic.Current.RunMain(() =>
            {
ZigbeeApp/Shared/Phone/Category/CategoryMainForm.cs
@@ -78,8 +78,6 @@
            this.AddNormalDeviceReportEvent();
            //添加传感器状态上报事件
            this.AddSensorDeviceReportEvent();
            //开启传感器状态还原的线程
            this.StartRecoverSenorStatuThread();
        }
        /// <summary>
@@ -462,7 +460,6 @@
        {
            //先清空
            listView.RemoveAll();
            this.dicDeviceRowControl = new Dictionary<string, Controls.DeviceRowCommon>();
            var listDevice = new List<CommonDevice>();
            for (int i = 0; i < rowInfo.listDeviceKeys.Count; i++)
@@ -886,44 +883,6 @@
                    }
                }, ShowErrorMode.NO);
            });
        }
        #endregion
        #region â–  ä¼ æ„Ÿå™¨çŠ¶æ€è¿˜åŽŸ_____________________
        /// <summary>
        /// å¼€å¯ä¼ æ„Ÿå™¨çŠ¶æ€è¿˜åŽŸçš„çº¿ç¨‹
        /// </summary>
        private void StartRecoverSenorStatuThread()
        {
            HdlThreadLogic.Current.RunThread(() =>
            {
                while (this.Parent != null)
                {
                    try
                    {
                        var dicControl = this.dicDeviceRowControl;
                        foreach (var contr in dicControl.Values)
                        {
                            //如果是传感器,则刷新状态
                            if (contr.device.Type == DeviceType.IASZone && contr.Parent != null
                              && ((IASZone)contr.device).iASInfo == null)
                            {
                                HdlThreadLogic.Current.RunMain(() =>
                                {
                                    //设备状态必须刷新
                                    string statuText = HdlDeviceOtherLogic.Current.GetDeviceStatu(contr.device);
                                    contr.SetDeviceStatuText(statuText);
                                }, ShowErrorMode.NO);
                            }
                        }
                        System.Threading.Thread.Sleep(8000);
                    }
                    catch { System.Threading.Thread.Sleep(3000); }
                }
            });
        }
ZigbeeApp/Shared/Phone/Category/Controls/DeviceRow/DeviceColorLightRowControl.cs
@@ -47,12 +47,6 @@
                    //打开
                    this.SetDeviceStatuText(Language.StringByID(R.MyInternationalizationString.uOpen1));
                    i_device.SwitchControl(1);
                    HdlThreadLogic.Current.RunThread(() =>
                    {
                        //获取灯光亮度
                        System.Threading.Thread.Sleep(300);
                        HdlDeviceAttributeLogic.Current.SendLevelStatuComand(i_device);
                    });
                }
                else
                {
ZigbeeApp/Shared/Phone/Category/Controls/DeviceRow/DeviceColorTemperatureRowControl.cs
@@ -47,12 +47,6 @@
                    //打开
                    this.SetDeviceStatuText(Language.StringByID(R.MyInternationalizationString.uOpen1));
                    i_device.SwitchControl(1);
                    HdlThreadLogic.Current.RunThread(() =>
                    {
                        //获取灯光亮度
                        System.Threading.Thread.Sleep(300);
                        HdlDeviceAttributeLogic.Current.SendLevelStatuComand(i_device);
                    });
                }
                else
                {
ZigbeeApp/Shared/Phone/Device/Logic/AddScenePage.cs
@@ -21,14 +21,14 @@
        public HorizontalScrolViewLayout roomhorizontalScrol = new HorizontalScrolViewLayout
        {
            Width = Application.GetRealWidth(1080 - 58),
            Height = Application.GetRealHeight(204),
            Height = Application.GetRealHeight(200),
            Y = Application.GetRealHeight(184),
            X = Application.GetRealWidth(58),
        };
        public VerticalScrolViewLayout middle = new VerticalScrolViewLayout
        {
            Width = Application.GetRealWidth(1080),
            Height = Application.GetRealHeight(Method.H - 260 - 204 - 184),
            Height = Application.GetRealHeight(Method.H - 260 - 200 - 184),
            BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor,
        };
@@ -228,31 +228,49 @@
            for (int i = 0; i < RoomList.Count; i++)
            {
                var room = RoomList[i];
                var fra = new FrameLayout
                {
                    Height = Application.GetRealHeight(200),
                    Width = Application.GetRealWidth(255),
                };
                roomhorizontalScrol.AddChidren(fra);
                LogicView.RoomClickView roomClickView = new LogicView.RoomClickView();
                roomClickView.Show(roomhorizontalScrol);
                roomClickView.roomnameBtn.Text =room.Name;
                var roombjBtn = new Button
                {
                    Height = Application.GetRealHeight(158),
                    Width = Application.GetRealWidth(255),
                    UnSelectedImagePath = "ZigeeLogic/iconBackgroundColor.png",
                    SelectedImagePath = "ZigeeLogic/iconSelectedBackgroundColor.png",
                    Y = Application.GetRealHeight(21),
                };
                fra.AddChidren(roombjBtn);
                var roomnameBtn = new Button
                {
                    Height = Application.GetRealHeight(152 - 26 - 20),
                    Width = Application.GetRealWidth(255 - 20 - 50),
                    Text = room.Name,
                    TextColor = ZigbeeColor.Current.LogicBtnCancelColor,
                    SelectedTextColor = ZigbeeColor.Current.LogicBlankBackgroundColor,
                    Y = Application.GetRealHeight(21 + 13 + 10),
                    X = Application.GetRealWidth(10 + 25),
                };
                fra.AddChidren(roomnameBtn);
                if (i == 0)
                {
                    roombjButton.IsSelected = false;
                    roomClickView.roombjBtn.Height = Application.GetRealHeight(135);
                    roomClickView.roombjBtn.Width = Application.GetRealWidth(245);
                    roomClickView.roombjBtn.Y = Application.GetRealHeight(40);
                    roomClickView.roombjBtn.X = Application.GetRealWidth(0);
                    roombjButton = roomClickView.roombjBtn;
                    roomClickView.roombjBtn.IsSelected = true;
                    roomTextButton.IsSelected = false;
                    roomClickView.roomnameBtn.Width = Application.GetRealWidth(245 - 60 * 2);
                    roomClickView.roomnameBtn.X = Application.GetRealWidth(60);
                    roomTextButton = roomClickView.roomnameBtn;
                    roomClickView.roomnameBtn.IsSelected = true;
                    roombjButton = roombjBtn;
                    roombjBtn.IsSelected = true;
                    roomTextButton.IsSelected = false;
                    roomTextButton = roomnameBtn;
                    roomnameBtn.IsSelected = true;
                    SceneView(room.ListSceneId);
                }
                EventHandler<MouseEventArgs> roomclick = (sender, e) =>
                {
@@ -261,31 +279,17 @@
                    clickbutton = null;
                    clickbutton = new Button();
                    roombjButton.Height = Application.GetRealHeight(72);
                    roombjButton.Width = Application.GetRealWidth(170);
                    roombjButton.Y = Application.GetRealHeight(60);
                    roombjButton.X = Application.GetRealWidth(26);
                    roombjButton.IsSelected = false;
                    roombjButton = roombjBtn;
                    roombjBtn.IsSelected = true;
                    roomClickView.roombjBtn.Height = Application.GetRealHeight(135);
                    roomClickView.roombjBtn.Width = Application.GetRealWidth(245);
                    roomClickView.roombjBtn.Y = Application.GetRealHeight(40);
                    roomClickView.roombjBtn.X = Application.GetRealWidth(0);
                    roombjButton = roomClickView.roombjBtn;
                    roomClickView.roombjBtn.IsSelected = true;
                    roomTextButton.Width = Application.GetRealWidth(125);
                    roomTextButton.X = Application.GetRealWidth(26 + 22);
                    roomTextButton.IsSelected = false;
                    roomClickView.roomnameBtn.Width = Application.GetRealWidth(245 - 60 * 2);
                    roomClickView.roomnameBtn.X = Application.GetRealWidth(60);
                    roomTextButton = roomClickView.roomnameBtn;
                    roomClickView.roomnameBtn.IsSelected = true;
                    roomTextButton = roomnameBtn;
                    roomnameBtn.IsSelected = true;
                    SceneView(room.ListSceneId);
                };
                roomClickView.roomnameBtn.MouseUpEventHandler += roomclick;
                roomClickView.roombjBtn.MouseUpEventHandler += roomclick;
                roomnameBtn.MouseUpEventHandler += roomclick;
                roombjBtn.MouseUpEventHandler += roomclick;
            }
        }
ZigbeeApp/Shared/Phone/Device/Logic/CurrentDeviceState.cs
@@ -22,7 +22,7 @@
            completeView.Btntitle.Text = LocalDevice.Current.GetDeviceEpointName(common);
            EventHandler<MouseEventArgs> clickcancel = (sender, e) =>
            {
                if (edit)
                if (!edit)
                {
                    UserView.HomePage.Instance.ScrollEnabled = true;
                }
@@ -323,9 +323,8 @@
                            closeView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnNotSelectedColor;
                            openView.selectedIconBtn.Visible = true;
                            closeView.selectedIconBtn.Visible = false;
                            if (iASZonedevice.IasDeviceType == 13)
                            if (iASZonedevice.IasDeviceType == 13||iASZonedevice.IasDeviceType == 541)
                            {
                                closeView.selectedIconBtn.Visible = true;
                            }
                            Send.dictionary(deviceConditionsInfo, "Range", "5");
@@ -356,74 +355,13 @@
                        {
                            case 13:
                                {
                                    if (common.ModelIdentifier == "MSPIRB-ZB.10")
                                    {
                                        int _height = 3;
                                        if (edit)
                                        {
                                            _height = 2;
                                        }
                                        var view = completeView.Show(_height);
                                        openView.titleBtn.TextID = MyInternationalizationString.someone;
                                        closeView.titleBtn.TextID = MyInternationalizationString.unattendedtime1;
                                        closeView.selectedIconBtn.UnSelectedImagePath = "ZigeeLogic/next.png";
                                        closeView.selectedIconBtn.Visible = true;
                                        view.AddChidren(openView.Show());
                                        view.AddChidren(closeView.Show());
                                        takebackView.lineBtn.BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor;
                                        takebackView.selectedIconBtn.Visible = true;
                                        takebackView.titleBtn.TextID = MyInternationalizationString.ambientLight;
                                        takebackView.selectedIconBtn.UnSelectedImagePath = "ZigeeLogic/next.png";
                                        if (edit)
                                        {
                                            if (devices["Cluster_ID"] == "1024")
                                            {
                                                flMain.RemoveFromParent();
                                                var illumination = new Illumination();
                                                UserView.HomePage.Instance.AddChidren(illumination);
                                                UserView.HomePage.Instance.PageIndex += 1;
                                                illumination.Show(common, takebackView.titleBtn.Text, int.Parse(devices["AttriButeData1"]), true);
                                            }
                                            else
                                            {
                                                closeView.lineBtn.BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor;
                                            }
                                        }
                                        else
                                        {
                                            view.AddChidren(takebackView.Show());
                                        }
                                        takebackView.clickviewBtn.MouseUpEventHandler += (sender, e) =>
                                        {
                                            SelectedDeviceStatus = "";
                                            openView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnNotSelectedColor;
                                            openView.selectedIconBtn.Visible = false;
                                            var illumination = new Illumination();
                                            UserView.HomePage.Instance.AddChidren(illumination);
                                            UserView.HomePage.Instance.PageIndex += 1;
                                            illumination.Show(common, takebackView.titleBtn.Text, 0, false);
                                        };
                                    }
                                    else
                                    {
                                        openView.titleBtn.TextID = MyInternationalizationString.someone;
                                        closeView.titleBtn.TextID = MyInternationalizationString.unattendedtime1;
                                        closeView.lineBtn.BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor;
                                        closeView.selectedIconBtn.UnSelectedImagePath = "ZigeeLogic/next.png";
                                        closeView.selectedIconBtn.Visible = true;
                                        completeView.Show(2).AddChidren(openView.Show());
                                        completeView.Show(2).AddChidren(closeView.Show());
                                    }
                                    openView.titleBtn.TextID = MyInternationalizationString.someone;
                                    closeView.titleBtn.TextID = MyInternationalizationString.unattendedtime1;
                                    closeView.lineBtn.BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor;
                                    closeView.selectedIconBtn.UnSelectedImagePath = "ZigeeLogic/next.png";
                                    closeView.selectedIconBtn.Visible = true;
                                    completeView.Show(2).AddChidren(openView.Show());
                                    completeView.Show(2).AddChidren(closeView.Show());
                                }
                                break;
                            case 21:
@@ -497,6 +435,61 @@
                                    completeView.Show(1).AddChidren(openView.Show());
                                }
                                break;
                            case 541:
                                {
                                    int _height = 3;
                                    if (edit)
                                    {
                                        _height = 2;
                                    }
                                    var view = completeView.Show(_height);
                                    openView.titleBtn.TextID = MyInternationalizationString.someone;
                                    closeView.titleBtn.TextID = MyInternationalizationString.unattendedtime1;
                                    closeView.selectedIconBtn.UnSelectedImagePath = "ZigeeLogic/next.png";
                                    closeView.selectedIconBtn.Visible = true;
                                    view.AddChidren(openView.Show());
                                    view.AddChidren(closeView.Show());
                                    takebackView.lineBtn.BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor;
                                    takebackView.selectedIconBtn.Visible = true;
                                    takebackView.titleBtn.TextID = MyInternationalizationString.ambientLight;
                                    takebackView.selectedIconBtn.UnSelectedImagePath = "ZigeeLogic/next.png";
                                    if (edit)
                                    {
                                        if (devices["Cluster_ID"] == "1024")
                                        {
                                            flMain.RemoveFromParent();
                                            var illumination = new Illumination();
                                            UserView.HomePage.Instance.AddChidren(illumination);
                                            UserView.HomePage.Instance.PageIndex += 1;
                                            illumination.Show(common, takebackView.titleBtn.Text, int.Parse(devices["AttriButeData1"]), true);
                                        }
                                        else
                                        {
                                            closeView.lineBtn.BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor;
                                        }
                                    }
                                    else
                                    {
                                        view.AddChidren(takebackView.Show());
                                    }
                                    takebackView.clickviewBtn.MouseUpEventHandler += (sender, e) =>
                                    {
                                        SelectedDeviceStatus = "";
                                        openView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnNotSelectedColor;
                                        openView.selectedIconBtn.Visible = false;
                                        var illumination = new Illumination();
                                        UserView.HomePage.Instance.AddChidren(illumination);
                                        UserView.HomePage.Instance.PageIndex += 1;
                                        illumination.Show(common,takebackView.titleBtn.Text, 0, false);
                                    };
                                }
                                break;
                            default:
                                {
                                    openView.titleBtn.TextID = MyInternationalizationString.callthepolice;
@@ -551,7 +544,6 @@
                        completeView.Show(l).AddChidren(openView.Show());
                        openView.titleBtn.Text = LocalDevice.Current.GetDeviceEpointName(common);
                        //openView.titleBtn.Text =Language.StringByID(MyInternationalizationString.OnOffSwitch) + common.DeviceEpoint.ToString();
                        openView.lineBtn.BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor;
                        openView.clickviewBtn.MouseUpEventHandler += (sender, e) =>
                        {
ZigbeeApp/Shared/Phone/Device/Logic/LogicDveiceStatus.cs
@@ -177,40 +177,33 @@
                                            {
                                                case 13:
                                                    {
                                                        if (conditions["Cluster_ID"] == "1024")
                                                        if (conditions.ContainsKey("IgnoreTime"))
                                                        {
                                                            state = Language.StringByID(MyInternationalizationString.ambientLight) + "<" + conditions["AttriButeData1"] + "lux" + Language.StringByID(MyInternationalizationString.hour1);
                                                        }
                                                        else
                                                        {
                                                            if (conditions.ContainsKey("IgnoreTime"))
                                                            int minute = int.Parse(conditions["IgnoreTime"]) / 60;
                                                            int second = int.Parse(conditions["IgnoreTime"]) % 60;
                                                            if (minute != 0 && second != 0)
                                                            {
                                                                int minute = int.Parse(conditions["IgnoreTime"]) / 60;
                                                                int second = int.Parse(conditions["IgnoreTime"]) % 60;
                                                                if (minute != 0 && second != 0)
                                                                {
                                                                    state = minute.ToString() + Language.StringByID(MyInternationalizationString.minute) + second.ToString() + Language.StringByID(MyInternationalizationString.second) + Language.StringByID(MyInternationalizationString.unattendedtime1);
                                                                state = minute.ToString() + Language.StringByID(MyInternationalizationString.minute) + second.ToString() + Language.StringByID(MyInternationalizationString.second) + Language.StringByID(MyInternationalizationString.unattendedtime1);
                                                                }
                                                                else
                                                                {
                                                                    if (minute == 0 && second != 0)
                                                                    {
                                                                        state = second.ToString() + Language.StringByID(MyInternationalizationString.second) + Language.StringByID(MyInternationalizationString.unattendedtime1);
                                                                    }
                                                                    if (minute != 0 && second == 0)
                                                                    {
                                                                        state = minute.ToString() + Language.StringByID(MyInternationalizationString.Minute) + Language.StringByID(MyInternationalizationString.unattendedtime1);
                                                                    }
                                                                }
                                                            }
                                                            else
                                                            {
                                                                state = Language.StringByID(MyInternationalizationString.someone);
                                                                if (minute == 0 && second != 0)
                                                                {
                                                                    state = second.ToString() + Language.StringByID(MyInternationalizationString.second) + Language.StringByID(MyInternationalizationString.unattendedtime1);
                                                                }
                                                                if (minute != 0 && second == 0)
                                                                {
                                                                    state = minute.ToString() + Language.StringByID(MyInternationalizationString.Minute) + Language.StringByID(MyInternationalizationString.unattendedtime1);
                                                                }
                                                            }
                                                        }
                                                        else
                                                        {
                                                            state = Language.StringByID(MyInternationalizationString.someone);
                                                        }
                                                    }
@@ -298,7 +291,44 @@
                                                    }
                                                    break;
                                                case 541:
                                                    {
                                                        if (conditions["Cluster_ID"] == "1024") {
                                                            state = Language.StringByID(MyInternationalizationString.ambientLight)+"<"+conditions["AttriButeData1"]+"lux"+ Language.StringByID(MyInternationalizationString.hour1);
                                                        }
                                                        else
                                                        {
                                                            if (conditions.ContainsKey("IgnoreTime"))
                                                            {
                                                                int minute = int.Parse(conditions["IgnoreTime"]) / 60;
                                                                int second = int.Parse(conditions["IgnoreTime"]) % 60;
                                                                if (minute != 0 && second != 0)
                                                                {
                                                                    state = minute.ToString() + Language.StringByID(MyInternationalizationString.minute) + second.ToString() + Language.StringByID(MyInternationalizationString.second) + Language.StringByID(MyInternationalizationString.unattendedtime1);
                                                                }
                                                                else
                                                                {
                                                                    if (minute == 0 && second != 0)
                                                                    {
                                                                        state = second.ToString() + Language.StringByID(MyInternationalizationString.second) + Language.StringByID(MyInternationalizationString.unattendedtime1);
                                                                    }
                                                                    if (minute != 0 && second == 0)
                                                                    {
                                                                        state = minute.ToString() + Language.StringByID(MyInternationalizationString.Minute) + Language.StringByID(MyInternationalizationString.unattendedtime1);
                                                                    }
                                                                }
                                                            }
                                                            else
                                                            {
                                                                state = Language.StringByID(MyInternationalizationString.someone);
                                                            }
                                                        }
                                                    }
                                                    break;
                                                default:
                                                    {
                                                        if (intvalue == "1")
ZigbeeApp/Shared/Phone/Device/Logic/LogicIfon.cs
@@ -44,7 +44,7 @@
                        else if (common.Type == DeviceType.IASZone)
                        {
                            var iASZonedevice = common as IASZone;
                            if (iASZonedevice.ModelIdentifier == "MSPIRB-ZB.10")
                            if (iASZonedevice.IasDeviceType == 541)
                            {//球形移动传感器
                                if (Common.Logic.CurrentLogic.Conditions[i]["Cluster_ID"] == objecttype["Cluster_ID"])
                                {
ZigbeeApp/Shared/Phone/Device/Logic/LogicView/RoomClickView.cs
File was deleted
ZigbeeApp/Shared/Phone/Device/Logic/Method.cs
@@ -46,7 +46,7 @@
                {
                    ///区分出输入条件和输出目标设备
                    var listdevicetype = GetDevice(type);
                    var listdevice = GetDeviceUIList(listAllRoom[i], listdevicetype, type);
                    var listdevice = GetDeviceUIList(listAllRoom[i], listdevicetype);
                    if (listdevice.Count == 0)
                    {
                        ///过滤掉没有设备的房间
@@ -68,9 +68,8 @@
        /// </summary>
        /// <param name="room">当前房间</param>
        /// <param name="deviceTypelist">设备类型</param>
        ///  /// <param name="type">逻辑类型</param>
        /// <returns></returns>
        public static List<CommonDevice> GetDeviceUIList(Common.Room room, List<DeviceType> deviceTypelist,string type)
        public static List<CommonDevice> GetDeviceUIList(Common.Room room, List<DeviceType> deviceTypelist)
        {
            var deviceUIlist = new List<CommonDevice>();
            foreach (var deviceKey in room.ListDevice)
@@ -93,22 +92,6 @@
                        //暂时不支持S-one门锁;
                        //过滤掉不支持S-one门锁设备;
                        continue;
                    }
                }
                if (type == "condition_mould")
                {
                    if (device.Type == DeviceType.IASZone)
                    {
                        if (device.IasDeviceType != 13)
                        {//自动化模板只支持红外传感器
                            continue;
                        }
                        if (device.ModelIdentifier == "MSPIRB-ZB.10")
                        {
                            //自动化模板不支持光照度
                            continue;
                        }
                    }
                }
                deviceUIlist.Add(device);
@@ -278,17 +261,8 @@
                        {
                            break;
                        }
                        if (device.ModelIdentifier == "MSPIRB-ZB.10")
                        {
                            patm = $"ZigeeLogic/sensor541.png";
                            selectedpatm = $"ZigeeLogic/selectedsensor541.png";
                        }
                        else
                        {
                            patm = $"ZigeeLogic/sensor{iASZonedevice.IasDeviceType}.png";
                            selectedpatm = $"ZigeeLogic/selectedsensor{iASZonedevice.IasDeviceType}.png";
                        }
                        patm = $"ZigeeLogic/sensor{iASZonedevice.IasDeviceType}.png";
                        selectedpatm = $"ZigeeLogic/selectedsensor{iASZonedevice.IasDeviceType}.png";
                    }
                    break;
                case DeviceType.TemperatureSensor:
ZigbeeApp/Shared/Phone/Device/Logic/RoomAndDeviceView.cs
@@ -12,22 +12,9 @@
        {
            Tag = "Logic";
        }
        /// <summary>
        /// è®°å½•点击房间
        /// </summary>
        Button roombjButton = new Button();
        /// <summary>
        /// è®°å½•点击房间名称
        /// </summary>
        Button roomTextButton = new Button();
        /// <summary>
        /// è®°å½•点击设备
        /// </summary>
        Button deviceTypeBjButton = new Button();
        /// <summary>
        /// è®°å½•点击设备类型
        /// </summary>
        Button deviceTypeTextButton = new Button();
        Button devicetypeButton = new Button();
        FrameLayout clickframeLayout = new FrameLayout();
        Button clickbutton = new Button();
        Button clicktextcolcrbutton = new Button();
@@ -40,33 +27,21 @@
        /// </summary>
        public HorizontalScrolViewLayout roomhorizontalScrol = new HorizontalScrolViewLayout
        {
            Width = Application.GetRealWidth(1080 - 29),
            Height = Application.GetRealHeight(204),
            X = Application.GetRealWidth(29),
            Width = Application.GetRealWidth(1080 - 58),
            Height = Application.GetRealHeight(200),
            X = Application.GetRealWidth(58),
            Y = Application.GetRealHeight(184),
        };
        /// <summary>
        /// åœ†è§’17
        /// </summary>
        public HorizontalScrolViewLayout devicetypehorizontalScrol1 = new HorizontalScrolViewLayout
        {
            Width = Application.GetRealWidth(1080 - 52),
            Height = Application.GetRealHeight(50),
            Y = Application.GetRealHeight(184 + 204),
            BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor,
            X = Application.GetRealWidth(52),
        };
        /// <summary>
        /// è®¾å¤‡ç±»åž‹æ»‘动的控件
        /// </summary>
        public HorizontalScrolViewLayout devicetypehorizontalScrol = new HorizontalScrolViewLayout
        {
            Width = Application.GetRealWidth(1080 - 52),
            Width = Application.GetRealWidth(1080 - 58),
            Height = Application.GetRealHeight(280),
            Y = Application.GetRealHeight(184 + 204),
            Y = Application.GetRealHeight(184 + 200),
            BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor,
            X = Application.GetRealWidth(52),
            X = Application.GetRealWidth(58),
            // Radius = (uint)Application.GetRealHeight(50),
        };
@@ -76,8 +51,8 @@
        public VerticalScrolViewLayout middle = new VerticalScrolViewLayout
        {
            X = Application.GetRealWidth(58),
            Y = Application.GetRealHeight(184 + 204 + 280 + 40),
            Height = Application.GetRealHeight(Method.H - 40 - 184 - 280 - 204),
            Y = Application.GetRealHeight(184 + 200 + 280 + 40),
            Height = Application.GetRealHeight(Method.H - 40 - 184 - 280 - 200),
            BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor,
        };
@@ -113,18 +88,15 @@
            if (roomlists.Count == 0)
            {
                //返回没有房间隐藏下面整块;
                devicetypehorizontalScrol1.Height = 0;
                devicetypehorizontalScrol.Height = 0;
                middle.Height = 0;
            }
            /// è®¾å¤‡ç±»åž‹åˆ—表
            var deviceTypeList = Method.GetDevice(IfType);
            this.AddChidren(roomhorizontalScrol);
            this.AddChidren(devicetypehorizontalScrol1);
            this.AddChidren(devicetypehorizontalScrol);
            this.AddChidren(middle);
            devicetypehorizontalScrol1.SetCornerWithSameRadius(Application.GetRealHeight(17), HDLUtils.RectCornerTopLeft);
            devicetypehorizontalScrol.SetCornerWithSameRadius(Application.GetRealHeight(50), HDLUtils.RectCornerBottomLeft|HDLUtils.RectCornerTopLeft);
            devicetypehorizontalScrol.SetCornerWithSameRadius(Application.GetRealHeight(50), HDLUtils.RectCornerBottomLeft);
            middle.SetCornerWithSameRadius(Application.GetRealHeight(50), HDLUtils.RectCornerTopLeft);
            ///楼层点击事件
            view.foolrclickBtn.MouseUpEventHandler += (sender, e) =>
@@ -215,13 +187,11 @@
                          var list = Method.GetRoomList(IfType, btnfoolrname.Tag.ToString());
                          if (list.Count == 0)
                          {
                              devicetypehorizontalScrol1.Height = 0;
                              devicetypehorizontalScrol.Height = 0;
                              middle.Height = 0;
                          }
                          else
                          {
                              devicetypehorizontalScrol1.Height = 50;
                              devicetypehorizontalScrol.Height = Application.GetRealHeight(280);
                              middle.Height = Application.GetRealHeight(1920 - 40 - 184 - 280 - 200);
                          }
@@ -244,64 +214,70 @@
            {
                var room = roomlist[i];
                LogicView.RoomClickView roomClickView = new LogicView.RoomClickView();
                roomClickView.Show(roomhorizontalScrol);
                roomClickView.roomnameBtn.Text = room.Name;
                var fra = new FrameLayout
                {
                    Height = Application.GetRealHeight(200),
                    Width = Application.GetRealWidth(255),
                };
                roomhorizontalScrol.AddChidren(fra);
                var roombjBtn = new Button
                {
                    Height = Application.GetRealHeight(158),
                    Width = Application.GetRealWidth(255),
                    UnSelectedImagePath = "ZigeeLogic/iconBackgroundColor.png",
                    SelectedImagePath = "ZigeeLogic/iconSelectedBackgroundColor.png",
                    Y = Application.GetRealHeight(21),
                };
                fra.AddChidren(roombjBtn);
                var roomnameBtn = new Button
                {
                    Height = Application.GetRealHeight(152 - 26 - 20),
                    Width = Application.GetRealWidth(255 - 20 - 50),
                    Text = room.Name,
                    TextColor = ZigbeeColor.Current.LogicBtnCancelColor,
                    SelectedTextColor = ZigbeeColor.Current.LogicBlankBackgroundColor,
                    Y = Application.GetRealHeight(21 + 13 + 10),
                    X = Application.GetRealWidth(10 + 25),
                };
                fra.AddChidren(roomnameBtn);
                if (i == 0)//默认选中第一个房间
                {
                    roombjButton.IsSelected = false;
                    roomClickView.roombjBtn.Height = Application.GetRealHeight(135);
                    roomClickView.roombjBtn.Width = Application.GetRealWidth(245);
                    roomClickView.roombjBtn.Y = Application.GetRealHeight(40);
                    roomClickView.roombjBtn.X = Application.GetRealWidth(0);
                    roombjButton = roomClickView.roombjBtn;
                    roomClickView.roombjBtn.IsSelected = true;
                    roomTextButton.IsSelected = false;
                    roomClickView.roomnameBtn.Width = Application.GetRealWidth(245 - 60 * 2);
                    roomClickView.roomnameBtn.X = Application.GetRealWidth(60);
                    roomTextButton = roomClickView.roomnameBtn;
                    roomClickView.roomnameBtn.IsSelected = true;
                    roombjButton = roombjBtn;
                    roombjBtn.IsSelected = true;
                    var list = Method.GetDeviceUIList(room, deviceTypeList, IfType);
                    roomTextButton.IsSelected = false;
                    roomTextButton = roomnameBtn;
                    roomnameBtn.IsSelected = true;
                    roombjBtn.IsSelected = true;
                    roomnameBtn.IsSelected = true;
                    var list = Method.GetDeviceUIList(room, deviceTypeList);
                    AllDeviceTypeView(list);
                }
                EventHandler<MouseEventArgs> roomclick = (sender, e) =>
                {
                    roombjButton.Height = Application.GetRealHeight(72);
                    roombjButton.Width = Application.GetRealWidth(170);
                    roombjButton.Y = Application.GetRealHeight(60);
                    roombjButton.X = Application.GetRealWidth(26);
                    roombjButton.IsSelected = false;
                    roombjButton = roombjBtn;
                    roombjBtn.IsSelected = true;
                    roombjButton.Height = Application.GetRealHeight(72);
                    roombjButton.Width = Application.GetRealWidth(170);
                    roombjButton.Y = Application.GetRealHeight(60);
                    roombjButton.X = Application.GetRealWidth(26);
                    roombjButton.IsSelected = false;
                    roomClickView.roombjBtn.Height = Application.GetRealHeight(135);
                    roomClickView.roombjBtn.Width = Application.GetRealWidth(245);
                    roomClickView.roombjBtn.Y = Application.GetRealHeight(40);
                    roomClickView.roombjBtn.X = Application.GetRealWidth(0);
                    roombjButton = roomClickView.roombjBtn;
                    roomClickView.roombjBtn.IsSelected = true;
                    roomTextButton.Width = Application.GetRealWidth(125);
                    roomTextButton.X = Application.GetRealWidth(26 + 22);
                    roomTextButton.IsSelected = false;
                    roomClickView.roomnameBtn.Width = Application.GetRealWidth(245 - 60 * 2);
                    roomClickView.roomnameBtn.X = Application.GetRealWidth(60);
                    roomTextButton = roomClickView.roomnameBtn;
                    roomClickView.roomnameBtn.IsSelected = true;
                    roomTextButton = roomnameBtn;
                    roomnameBtn.IsSelected = true;
                    var list = Method.GetDeviceUIList(room, deviceTypeList, IfType);
                    var list = Method.GetDeviceUIList(room, deviceTypeList);
                    AllDeviceTypeView(list);
                };
                roomClickView.roomnameBtn.MouseUpEventHandler += roomclick;
                roomClickView.roombjBtn.MouseUpEventHandler += roomclick;
                roomnameBtn.MouseUpEventHandler += roomclick;
                roombjBtn.MouseUpEventHandler += roomclick;
            }
        }
@@ -316,27 +292,30 @@
            for (int i = 0; i < devicetypelist.Count; i++)
            {
                var devicetype = devicetypelist[i];
                var spaceRowLayout = new FrameLayout();
                devicetypehorizontalScrol.AddChidren(spaceRowLayout);
                if (i == 0)
                {
                    var spaceRowLayout = new FrameLayout();
                    devicetypehorizontalScrol.AddChidren(spaceRowLayout);
                    spaceRowLayout.Width = Application.GetRealWidth(37);
                }
                else
                {
                    spaceRowLayout.Width = Application.GetRealWidth(80);
                }
                var deviceRowLayout = new FrameLayout
                {
                    Width = Application.GetRealWidth(150+75),
                    Height = Application.GetRealHeight(173+52),
                    Y = Application.GetRealHeight(35),
                    Width = Application.GetRealWidth(156 + 20),
                    Height = Application.GetRealHeight(280 - 30),
                    Y = Application.GetRealHeight(30),
                };
                devicetypehorizontalScrol.AddChidren(deviceRowLayout);
                var backgroundColor = new Button
                {
                    Width = Application.GetMinRealAverage(150),
                    Height = Application.GetMinRealAverage(173),
                    Width = Application.GetMinRealAverage(156),
                    Height = Application.GetMinRealAverage(180),
                    X = Application.GetRealWidth(10),
                    UnSelectedImagePath = "ZigeeLogic/deviceunselectedbackgroundcolor.png",
                    SelectedImagePath = "ZigeeLogic/deviceselectedbackgroundcolor.png",
                };
@@ -347,22 +326,21 @@
                {
                    Width = Application.GetMinRealAverage(84),
                    Height = Application.GetMinRealAverage(84),
                    X = Application.GetRealWidth(35),
                    Y = Application.GetRealHeight(29),
                    X = Application.GetRealWidth(46),
                    Y = Application.GetRealHeight(30),
                    UnSelectedImagePath =Method.GetDeviceTypeIcon(devicetype),
                };
                deviceRowLayout.AddChidren(devicetypeicon);
                var devicetypename = new Button
                {
                    Width = Application.GetRealWidth(150),
                    Height = Application.GetRealHeight(52),
                    Width = Application.GetRealWidth(176),
                    Height = Application.GetRealHeight(40),
                    Text = devicetype,
                    TextAlignment = TextAlignment.Center,
                    Y = backgroundColor.Bottom,
                    TextColor = ZigbeeColor.Current.LogicAddColor,
                    TextSize = 10,
                    TextColor =ZigbeeColor.Current.LogicBtnSelectedColor,
                    SelectedTextColor =ZigbeeColor.Current.LogicAddColor,
                };
                deviceRowLayout.AddChidren(devicetypename);
@@ -378,18 +356,13 @@
                EventHandler<MouseEventArgs> devicetypeclick = (sender13, e13) =>
                {
                    deviceTypeBjButton.IsSelected = false;
                    deviceTypeBjButton = backgroundColor;
                    devicetypeButton.IsSelected = false;
                    devicetypeButton = backgroundColor;
                    backgroundColor.IsSelected = true;
                    deviceTypeTextButton.IsSelected = false;
                    deviceTypeTextButton = devicetypename;
                    devicetypename.IsSelected = true;
                    var list = Method.GetDeviceType(devicetypename.Text);
                    ConditionDeviceView(list, devicelist);
                };
                deviceRowLayout.MouseUpEventHandler += devicetypeclick;
                devicetypename.MouseUpEventHandler += devicetypeclick;
                devicetypeicon.MouseUpEventHandler += devicetypeclick;
                backgroundColor.MouseUpEventHandler += devicetypeclick;
@@ -415,6 +388,13 @@
                {
                    continue;
                }
                if (IfType == "condition_mould")
                {
                    if (common.IasDeviceType != 13)
                    {//自动化模板只支持红外传感器
                        continue;
                    }
                }
                var deviceFramelayout = new FrameLayout
                {
                    Height = Application.GetRealHeight(160),
ZigbeeApp/Shared/Phone/Device/Logic/Send.cs
@@ -1361,8 +1361,8 @@
        /// åˆ¤æ–­å­—典是否存在的方法
        /// </summary>
        /// <param name="deviceConditionsInfo"></param>
        /// <param name="Key">键</param>
        /// <param name="Value">键值</param>
        /// <param name="Key"></param>
        /// <param name="Value"></param>
        public static void dictionary(Dictionary<string, string> deviceConditionsInfo, string Key, string Value)
        {
            if (deviceConditionsInfo.ContainsKey(Key))
@@ -1372,6 +1372,6 @@
            deviceConditionsInfo.Add(Key, Value);
        }
    }
}
ZigbeeApp/Shared/Phone/Device/Logic/SkipView.cs
@@ -10,7 +10,6 @@
{
    public class SkipView:FrameLayout
    {
        /// <summary>
        /// å…¶å®ƒç•Œé¢è·³è¿›æ¥çš„入口
        /// </summary>
@@ -74,19 +73,6 @@
            //functionSceneAutoBodyView.BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor;
            #region   ---推荐模板的组件
            //推荐模板背景控件
            var bjFrameLayout1 = new FrameLayout
            {
                Width = Application.GetRealWidth(1080 - 58),
                Height = Application.GetRealHeight(50),
                BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor,
                X = Application.GetRealWidth(58),
                //Radius = (uint)Application.GetRealHeight(50),
                Y = Application.GetRealHeight(30),
            };
            functionSceneAutoBodyView.AddChidren(bjFrameLayout1);
            var bjFrameLayout = new FrameLayout
            {
                Width = Application.GetRealWidth(1080 - 58),
@@ -95,10 +81,10 @@
                X = Application.GetRealWidth(58),
                //Radius = (uint)Application.GetRealHeight(50),
                Y = Application.GetRealHeight(30),
            };
            functionSceneAutoBodyView.AddChidren(bjFrameLayout);
            bjFrameLayout1.SetCornerWithSameRadius(Application.GetRealHeight(17), HDLUtils.RectCornerTopLeft);
            bjFrameLayout.SetCornerWithSameRadius(Application.GetRealHeight(58), HDLUtils.RectCornerTopLeft|HDLUtils.RectCornerBottomLeft);
            bjFrameLayout.SetCornerWithSameRadius(Application.GetRealHeight(58), HDLUtils.RectCornerBottomLeft);
            //图标控件
            var sigBtn = new Button
            {
@@ -255,7 +241,7 @@
            {
                if (!Config.Instance.Home.IsVirtually)
                {//虚拟的不获取网关逻辑列表
                 //重新刷新logic列表
                    //重新刷新logic列表
                    If_once = true;
                    Common.Logic.LogicList.Clear();
                    Read(logicScrolView, no);
@@ -320,7 +306,6 @@
                                    Common.Logic.LogicList.Add(logic);
                                }
                            }
                        }
                    }
                }
@@ -334,7 +319,6 @@
            CommonPage.Loading.Hide();
        }
        static RowLayout selectedRow = new RowLayout() { Tag = "0" };//记录左滑状态
        /// <summary>
        /// åŠ è½½è‡ªåŠ¨åŒ–åˆ—è¡¨ç•Œé¢
        /// </summary>
@@ -883,8 +867,6 @@
            }
            return false;
        }
    }
}
ZigbeeApp/Shared/Phone/Device/VideoIntercom/VideoMachine.cs
@@ -115,7 +115,7 @@
        /// <summary>
        /// åˆ¤æ–­è´¦å·æ˜¯å¦æ”¯æŒå¯è§†å¯¹è®²
        /// </summary>
        /// <param name="topFrameLayout">可视对讲图标的父控件</param>
        /// <param name="topFrameLayout"></param>
        public async static void AccountSupportVideo(FrameLayout topFrameLayout)
        {
            var jobject = new JObject();
@@ -166,6 +166,9 @@
                }
                catch { }
            }
        }
        /// <summary>
        /// èŽ·å–å¯è§†å¯¹è®²åˆ—è¡¨
ZigbeeApp/Shared/Phone/Login/AccountLoginForm.cs
@@ -842,7 +842,7 @@
                            HomePage.Instance.ShowLoginLoadView();
                        });
                        var resultRegID = Shared.Common.CommonPage.Instance.PushRegID();
                        var homes = HdlResidenceLogic.Current.GetHomeListsFromDb(false);
                        var homes = HdlResidenceLogic.Current.GetHomeListsFromDb();
                        //刷新个人中心的内存及线程
                        UserCenterLogic.InitUserCenterMenmoryAndThread();
                        //启动ZigBee
@@ -1111,7 +1111,7 @@
                Config.Instance.Save();
                var resultRegID = CommonPage.Instance.PushRegID();
                var homes = HdlResidenceLogic.Current.GetHomeListsFromDb(false);
                var homes = HdlResidenceLogic.Current.GetHomeListsFromDb();
                //刷新个人中心的内存及线程
                UserCenterLogic.InitUserCenterMenmoryAndThread();
                //启动ZigBee
ZigbeeApp/Shared/Phone/Login/AccountRegisterSuccess.cs
@@ -112,7 +112,7 @@
                            //绑定第三方
                            BindAuthUser(Config.Instance.Guid, OpenID);
                        }
                        var homes = HdlResidenceLogic.Current.GetHomeListsFromDb(false);
                        var homes = HdlResidenceLogic.Current.GetHomeListsFromDb();
                        //刷新个人中心的内存及线程
                        UserCenterLogic.InitUserCenterMenmoryAndThread();
ZigbeeApp/Shared/Phone/MainPage/ControlForm/DeviceAcDetailCardForm.cs
@@ -1052,8 +1052,8 @@
                                        this.listControl[1].IsSelected = false;
                                        this.listControl[2].IsSelected = false;
                                        this.listControl[3].IsSelected = false;
                                        arcScaleSeekBar.SetProgressBarColors(ZigbeeColor.Current.GXCWaveSeekBarUnSelectedColor, ZigbeeColor.Current.GXCWaveSeekBarUnSelectedColor);
                                    }
                                    arcScaleSeekBar.SetProgressBarColors(ZigbeeColor.Current.GXCWaveSeekBarUnSelectedColor, ZigbeeColor.Current.GXCWaveSeekBarUnSelectedColor);
                                    //设置状态文字 å…³é—­
                                    this.SetStatuText(Language.StringByID(R.MyInternationalizationString.Close));
                                    return;
@@ -1068,8 +1068,8 @@
                                        this.listControl[1].IsSelected = true;
                                        this.listControl[2].IsSelected = true;
                                        this.listControl[3].IsSelected = true;
                                        arcScaleSeekBar.SetProgressBarColors(ZigbeeColor.Current.GXCArcScaleSeekBarStartColor, ZigbeeColor.Current.GXCArcScaleSeekBarEndColor);
                                    }
                                    arcScaleSeekBar.SetProgressBarColors(ZigbeeColor.Current.GXCArcScaleSeekBarStartColor, ZigbeeColor.Current.GXCArcScaleSeekBarEndColor);
                                }
                                this.listControl[1].SelectedImagePath = DeviceAcDetailCardMethord.GetModeSelectedImagePathByModeId(deviceAc.currentSystemMode);
                                this.listControl[1].UnSelectedImagePath = DeviceAcDetailCardMethord.GetModeUnSelectedImagePathByModeId(deviceAc.currentSystemMode);
ZigbeeApp/Shared/Phone/MainPage/ControlForm/DeviceMiniLightDetailCardForm.cs
@@ -132,7 +132,6 @@
            seekBarColor.SeekBarPadding = Application.GetRealWidth(60);
            seekBarColor.IsProgressTextShow = true;
            seekBarColor.ProgressBarColor = UserCenterColor.Current.Transparent;
            seekBarColor.ProgressBarUnEnableColor = UserCenterColor.Current.Transparent;
            seekBarColor.SeekBarBackgroundColor = UserCenterColor.Current.Transparent;
            seekBarColor.ProgressTextSize = 14;
            seekBarColor.ProgressTextColor = UserCenterColor.Current.TextGrayColor2;
@@ -162,7 +161,6 @@
            this.btnBuzzerSwitch = new IconBigViewControl(81, 81);
            btnBuzzerSwitch.UnSelectedImagePath = "Item/Switch.png";
            btnBuzzerSwitch.SelectedImagePath = "Item/SwitchSelected.png";
            btnBuzzerSwitch.IsSelected = ((ColorTemperatureLight)this.device).IsBuzzerRing;
            frameWhiteBack.AddChidren(btnBuzzerSwitch);
            btnBuzzerSwitch.InitControl();
            btnBuzzerSwitch.UseClickStatu = false;
@@ -202,12 +200,6 @@
            };
            btnMiniSwitch.IsSelected = ((LightBase)this.device).OnOffStatus == 1;
            this.canSetProgressValue = btnMiniSwitch.IsSelected;
            if (btnMiniSwitch.IsSelected == false)
            {
                //在没有打开夜灯开关之前,不允许滑动
                seekBarLight.Enable = false;
                seekBarColor.Enable = false;
            }
            //亮度开始滑动的事件
            seekBarLight.OnStartTrackingTouchEvent += (sender, e) =>
@@ -355,13 +347,7 @@
                         {
                             //当是打开状态时,网关说它会默认把亮度变成100%
                             //以防万一,这里再次读取一下
                             HdlThreadLogic.Current.RunThread(() =>
                             {
                                 ((ColorTemperatureLight)device).ReadLevel();
                                 System.Threading.Thread.Sleep(300);
                                 ((ColorTemperatureLight)device).ReadColorTemperature();
                             });
                             ((ColorTemperatureLight)device).ReadLevel();
                         }
                     }
                 });
@@ -393,23 +379,24 @@
            //如果住宅是虚拟住宅
            if (Common.Config.Instance.Home.IsVirtually == true)
            {
                ((ColorTemperatureLight)this.device).IsBuzzerRing = isOpen;
                //刷新开关状态
                this.RefreshSwitchStatu(isOpen);
                //((LightBase)this.device).OnOffStatus = isOpen == true ? 1 : 0;
                ////刷新开关状态
                //this.RefreshSwitchStatu(isOpen);
                return;
            }
            //检测是否获取网关反馈的结果,如果网关没有回复,则会弹出消息
            this.btnBuzzerSwitch.CanClick = false;
            this.StartCheckResponeResult(new List<ButtonBase>(), (result) =>
            this.StartCheckResponeResult(new List<ButtonBase> { this.btnBuzzerSwitch.btnIcon }, (result) =>
            {
                HdlThreadLogic.Current.RunMain(() =>
                {
                    //接收到网关回复
                    this.btnBuzzerSwitch.CanClick = true;
                    if (result == true)
                    {
                        this.btnBuzzerSwitch.IsSelected = isOpen;
                        //bool statu = ((LightBase)this.device).OnOffStatus == 1;
                        ////刷新开关状态
                        //this.RefreshSwitchStatu(statu);
                    }
                });
            });
@@ -476,13 +463,11 @@
        /// <param name="isOpen">打开状态</param>
        private void RefreshSwitchStatu(bool isOpen)
        {
            //刷新蜂鸣器开关状态
            bool isBuzzerRing = ((ColorTemperatureLight)this.device).IsBuzzerRing;
            if (this.btnBuzzerSwitch.IsSelected != isBuzzerRing)
            if (this.isColorProgressing == true)
            {
                this.btnBuzzerSwitch.IsSelected = isBuzzerRing;
                //如果是色温滑动的话,不需要刷新界面
                return;
            }
            if (isOpen == true)
            {
                //亮度是必须要刷新的  äº®åº¦ XX
@@ -497,25 +482,13 @@
                    //当进度值在手动变更中时,不接收推送
                    seekBarColor.Progress = (int)(((ColorTemperatureLight)this.device).ColorTemperature / 100);
                }
                if (this.btnMiniSwitch.IsSelected == false)
                {
                    this.btnMiniSwitch.IsSelected = true;
                }
                //滑动条可以滑动
                seekBarLight.Enable = true;
                seekBarColor.Enable = true;
                this.btnMiniSwitch.IsSelected = true;
            }
            else
            {
                //变更字样:关闭
                this.SetStatuText(Language.StringByID(R.MyInternationalizationString.Close));
                if (this.btnMiniSwitch.IsSelected == true)
                {
                    this.btnMiniSwitch.IsSelected = false;
                }
                //滑动条不可以滑动
                seekBarLight.Enable = false;
                seekBarColor.Enable = false;
                this.btnMiniSwitch.IsSelected = false;
            }
            //回复的结果说,处于打开状态才能发送
ZigbeeApp/Shared/Phone/MainPage/Controls/DeviceCard/DeviceColorLightCardControl.cs
@@ -47,12 +47,6 @@
                    //打开
                    this.SetDeviceStatuText(Language.StringByID(R.MyInternationalizationString.uOpen1));
                    i_device.SwitchControl(1);
                    HdlThreadLogic.Current.RunThread(() =>
                    {
                        //获取灯光亮度
                        System.Threading.Thread.Sleep(300);
                        HdlDeviceAttributeLogic.Current.SendLevelStatuComand(i_device);
                    });
                }
                else
                {
ZigbeeApp/Shared/Phone/MainPage/Controls/DeviceCard/DeviceColorTemperatureCardControl.cs
@@ -47,12 +47,6 @@
                    //打开
                    this.SetDeviceStatuText(Language.StringByID(R.MyInternationalizationString.uOpen1));
                    i_device.SwitchControl(1);
                    HdlThreadLogic.Current.RunThread(() =>
                    {
                        //获取灯光亮度
                        System.Threading.Thread.Sleep(300);
                        HdlDeviceAttributeLogic.Current.SendLevelStatuComand(i_device);
                    });
                }
                else
                {
ZigbeeApp/Shared/Phone/MainPage/HomeMainPageForm.cs
@@ -85,8 +85,6 @@
            this.AddNormalDeviceReportEvent();
            //添加传感器状态上报事件
            this.AddSensorDeviceReportEvent();
            //开启传感器状态还原的线程
            this.StartRecoverSenorStatuThread();
        }
        /// <summary>
@@ -546,8 +544,8 @@
            bodyFrameLayout.RemoveAll();
            bodyFrameLayout.Height = Application.GetRealHeight(750);
            this.listBodyContr.RecoverTableHeight();
            this.dicSceneCardControl = new Dictionary<int, Controls.SceneCardControl>();
            this.dicDeviceCardControl = new Dictionary<string, Controls.DeviceCardCommon>();
            this.dicSceneCardControl.Clear();
            this.dicDeviceCardControl.Clear();
            var listDevice = new List<CommonDevice>();
            foreach (var mainkeys in HdlRoomLogic.Current.NowMainPageRoom.ListDevice)
@@ -806,8 +804,8 @@
            bodyFrameLayout.RemoveAll();
            bodyFrameLayout.Height = Application.GetRealHeight(750);
            this.listBodyContr.RecoverTableHeight();
            this.dicSceneCardControl = new Dictionary<int, Controls.SceneCardControl>();
            this.dicDeviceCardControl = new Dictionary<string, Controls.DeviceCardCommon>();
            this.dicSceneCardControl.Clear();
            this.dicDeviceCardControl.Clear();
            var listScene = new List<SceneUI>();
            foreach (int sceneId in HdlRoomLogic.Current.NowMainPageRoom.ListSceneId)
@@ -1158,44 +1156,6 @@
                    }
                }, ShowErrorMode.NO);
            });
        }
        #endregion
        #region â–  ä¼ æ„Ÿå™¨çŠ¶æ€è¿˜åŽŸ_____________________
        /// <summary>
        /// å¼€å¯ä¼ æ„Ÿå™¨çŠ¶æ€è¿˜åŽŸçš„çº¿ç¨‹
        /// </summary>
        private void StartRecoverSenorStatuThread()
        {
            HdlThreadLogic.Current.RunThread(() =>
            {
                while (this.Parent != null)
                {
                    try
                    {
                        var dicControl = this.dicDeviceCardControl;
                        foreach (var contr in dicControl.Values)
                        {
                            //如果是传感器,则刷新状态
                            if (contr.device.Type == DeviceType.IASZone && contr.Parent != null
                              && ((IASZone)contr.device).iASInfo == null)
                            {
                                HdlThreadLogic.Current.RunMain(() =>
                                {
                                    //设备状态必须刷新
                                    string statuText = HdlDeviceOtherLogic.Current.GetDeviceStatu(contr.device);
                                    contr.SetDeviceStatuText(statuText);
                                }, ShowErrorMode.NO);
                            }
                        }
                        System.Threading.Thread.Sleep(8000);
                    }
                    catch { System.Threading.Thread.Sleep(3000); }
                }
            });
        }
ZigbeeApp/Shared/Phone/SmartSound/Forms/SmartSoundContentForDevice.cs
@@ -135,13 +135,6 @@
                else
                {
                    tipLayout.Visible = false;
                }
                if (listView.ChildrenCount > 5)
                {
                    TextView textView = new TextView();
                    textView.Height = Application.GetRealHeight(127 * 3);
                    listView.AddChidren(textView);
                }
            }
            catch (Exception ex)
ZigbeeApp/Shared/Phone/TemplateData/TemplateCommonLogic.cs
File was deleted
ZigbeeApp/Shared/Phone/TemplateData/TemplateDataCommon.cs
File was deleted
ZigbeeApp/Shared/Phone/TemplateData/TemplateDeviceDataLogic.cs
File was deleted
ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Common/IMessageCommon.cs
@@ -676,7 +676,7 @@
                //在册的Msg
                return Language.StringByID(dicMsg[requestName][statuCode]);
            }
            return null;
            return "Error:" + statuCode;
        }
    }
}
ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Common/UserCenterCommon.cs
@@ -1400,17 +1400,13 @@
        /// </summary>
        public int ErrorMsgDiv = 1;
        /// <summary>
        /// æŽ¥æ”¶çš„Data数据
        /// æŽ¥æ”¶çš„æ•°æ®
        /// </summary>
        public string ReceiptData = null;
        /// <summary>
        /// æŽ¥æ”¶çš„æ•°æ®(多个返回主题专用)
        /// </summary>
        public string[] listReceiptData = null;
        /// <summary>
        /// è¿™ä¸ªæ˜¯ç½‘关回复的整个json数据,个数与listReceiptData一致
        /// </summary>
        public string[] JsonData = null;
    }
    #endregion
ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/BaseCommonControl/Base/TextInputBase.cs
@@ -16,27 +16,13 @@
        /// </summary>
        private NormalViewControl btnLineTemp = null;
        /// <summary>
        /// è”动底线(光标进来之后,线的颜色会变)
        /// è”动底线(值输入之后,线的颜色会变)
        /// </summary>
        public NormalViewControl btnLine
        {
            set
            {
                this.btnLineTemp = value;
            }
        }
        /// <summary>
        /// è”动外框
        /// </summary>
        private NormalFrameLayout frameBorder = null;
        /// <summary>
        /// è”动外框(光标进来之后,外框的颜色会变)
        /// </summary>
        public NormalFrameLayout FrameBorder
        {
            set
            {
                this.frameBorder = value;
            }
        }
@@ -191,10 +177,6 @@
                {
                    btnLineTemp.BackgroundColor = UserCenterColor.Current.ButtomLine;
                }
                if (frameBorder != null)
                {
                    frameBorder.BorderColor = 0xffcccccc;
                }
                if (m_UseFocusColor == true)
                {
                    //灰色字体
@@ -206,10 +188,6 @@
                if (btnLineTemp != null)
                {
                    btnLineTemp.BackgroundColor = UserCenterColor.Current.TextFrameSelectColor;
                }
                if (frameBorder != null)
                {
                    frameBorder.BorderColor = UserCenterColor.Current.TextFrameSelectColor;
                }
                if (m_UseFocusColor == true)
                {
ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/SeekBarControl.cs
@@ -11,18 +11,7 @@
    {
        #region â–  å˜é‡å£°æ˜Ž___________________________
        /// <summary>
        /// è¿›åº¦æ¡å¯ç”¨æ—¶çš„背景色
        /// </summary>
        private uint ProgressBarEnableColor = 0;
        /// <summary>
        /// è¿›åº¦æ¡ä¸å¯ç”¨æ—¶çš„背景色(默认灰色)
        /// </summary>
        public uint ProgressBarUnEnableColor = 0xffe8e8e8;
        /// <summary>
        /// å½“前可用状态
        /// </summary>
        private bool nowEnable = true;
        private uint nowProgressBarColor = 0;
        /// <summary>
        /// æŽ§ä»¶èƒ½å¦ä½¿ç”¨
        /// </summary>
@@ -30,20 +19,16 @@
        {
            set
            {
                //状态没有改变
                if (nowEnable == value) { return; }
                nowEnable = value;
                this.IsClickable = value;
                if (value == true)
                {
                    //原来的颜色
                    base.ProgressBarColor = ProgressBarEnableColor;
                    base.ProgressBarColor = nowProgressBarColor;
                }
                else
                {
                    //灰色
                    base.ProgressBarColor = ProgressBarUnEnableColor;
                    base.ProgressBarColor = 0xffe8e8e8;
                }
            }
        }
@@ -55,7 +40,7 @@
        {
            set
            {
                ProgressBarEnableColor = value;
                nowProgressBarColor = value;
                base.ProgressBarColor = value;
            }
        }
ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/NormalControls/MessageManagementControl.cs
@@ -69,7 +69,7 @@
                var pra = new MessageInfoPra();
                pra.LoginAccessToken = UserCenterLogic.GetConnectMainToken();
                var result = UserCenterLogic.GetResponseDataByRequestHttps("MessageCenter/GetMessageCenterPagger", false, pra, new List<string>() { "NotCheck" }, false);
                var result = UserCenterLogic.GetResponseDataByRequestHttps("MessageCenter/GetMessageCenterPagger", false, pra, new List<string>() { "NotCheck" });
                if (string.IsNullOrEmpty(result) == true)
                {
                    //出错,需要重新读取
ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlBackupLogic.cs
@@ -244,14 +244,6 @@
            string fullDir = string.Empty;
            if (upPath == string.Empty)
            {
                //将模板数据保存到到指定的文件夹中
                var templateName = TemplateData.TemplateCommonLogic.Current.GetNewTemplateFileName();
                var templateFile = TemplateData.TemplateCommonLogic.Current.SaveTemplateDataToFile(templateName, "HomeTemplate");
                //将模板bin文件移动到备份文件夹中
                try { System.IO.File.Move(templateFile, System.IO.Path.Combine(Config.Instance.FullPath, templateName)); }
                catch (Exception ex) { HdlLogLogic.Current.WriteLog(ex, "移动模板失败"); }
                //获取本地文件
                listAllFile = HdlFileLogic.Current.GetRootPathListFile();
                fullDir = Common.Config.Instance.FullPath;
@@ -273,11 +265,6 @@
            foreach (string fileName in listAllFile)
            {
                //判断指定文件是否需要上传(根目录的才判断)
                if (upPath == string.Empty && this.IsNotUpLoadFile(fileName) == true)
                {
                    continue;
                }
                if (fileName.EndsWith(".png") == true
                    || fileName.EndsWith(".bin") == true)
                {
@@ -315,6 +302,11 @@
                    Shared.Common.CommonPage.BackKeyCanClick = true;
                    UserCenterResourse.AccountOption.AppCanSignout = true;
                    return false;
                }
                //判断是否是应该上传的文件
                if (IsNotUpLoadFile(file) == true && upPath == string.Empty)
                {
                    continue;
                }
                //整理数据
                var datainfo = new FileInfoData();
@@ -792,15 +784,8 @@
            //关闭进度条
            ProgressFormBar.Current.Close();
            //清空全部房间
            HdlRoomLogic.Current.DeleteAllRoom();
            //清空本地全部的场景数据
            HdlSceneLogic.Current.DeleteAllLocalScene();
            //如果读取到的文件完全没有问题,则清理本地的文件
            HdlFileLogic.Current.DeleteAllLocationFile(false);
            //清理本地的模板文件
            TemplateData.TemplateCommonLogic.Current.DeleteAllLocalFile();
            //没有错误的话,则移动到当前住宅文件夹下面
            HdlFileLogic.Current.MoveDirectoryFileToHomeDirectory(tempDirectory, true);
@@ -844,14 +829,11 @@
        /// </summary>
        /// <param name="file"></param>
        /// <returns></returns>
        private bool IsNotUpLoadFile(string file)
        public bool IsNotUpLoadFile(string file)
        {
            if (file.StartsWith("Device_") == true
               || file.StartsWith("Gateway_") == true
               || file.StartsWith("Room_") == true
               || file.StartsWith("Scene_") == true)
            if (file == "Config.json")
            {
                //设备,网关,房间,场景文件不需要上传,它已经保存在bin模板文件中
                //不能覆盖Config文件
                return true;
            }
            return false;
ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlDeviceAirConditionerLogic.cs
@@ -125,7 +125,7 @@
            if (Common.Config.Instance.Home.IsVirtually == true)
            {
                //直接添加缓存
                TemplateData.TemplateDeviceDataLogic.Current.SetAcModeSupport(device, data, null);
                ModelData.DeviceModelDataLogic.Current.SetAcModeSupport(device, data, "SetWritableValue");
                return true;
            }
            //发送数据
@@ -155,9 +155,6 @@
                return false;
            }
            //添加缓存
            TemplateData.TemplateDeviceDataLogic.Current.SetAcModeSupport(device, data, result.JsonData[0]);
            return true;
        }
@@ -177,7 +174,7 @@
            if (Common.Config.Instance.Home.IsVirtually == true)
            {
                //直接添加缓存
                TemplateData.TemplateDeviceDataLogic.Current.SetAcSwingModeSupport(device, data, null);
                ModelData.DeviceModelDataLogic.Current.SetAcSwingModeSupport(device, data, "SetWritableValue");
                return true;
            }
            //发送数据
@@ -206,9 +203,6 @@
                this.ShowTipMsg(msg);
                return false;
            }
            //添加缓存
            TemplateData.TemplateDeviceDataLogic.Current.SetAcSwingModeSupport(device, data, result.JsonData[0]);
            return true;
        }
ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlDeviceAttributeLogic.cs
@@ -375,7 +375,7 @@
        /// å‘送获取灯光状态命令
        /// </summary>
        /// <param name="device">窗帘</param>
        public void SendLevelStatuComand(CommonDevice device)
        private void SendLevelStatuComand(CommonDevice device)
        {
            if (device == null)
            {
@@ -422,12 +422,6 @@
                colorDevice.ReadLevel();
                System.Threading.Thread.Sleep(300);
                colorDevice.ReadColorTemperature();
                if (LocalDevice.Current.IsMiniLight(device) == true)
                {
                    //mini夜灯需要读取蜂鸣器状态
                    System.Threading.Thread.Sleep(300);
                    colorDevice.ReadBuzzerStatu();
                }
            })
            { IsBackground = true }.Start();
        }
ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlDeviceBindLogic.cs
@@ -76,7 +76,7 @@
            //如果当前住宅是虚拟住宅
            if (Common.Config.Instance.Home.IsVirtually == true)
            {
                var listBind = TemplateData.TemplateDeviceDataLogic.Current.GetDeviceBindList(device);
                var listBind = ModelData.DeviceModelDataLogic.Current.GetDeviceBindList(device, "Bind/GetDeviceBind");
                return new BindObj.GetDeviceBindResponseAllData()
                {
                    getAllBindResponseData = new BindObj.GetDeviceBindResponseData
@@ -177,7 +177,7 @@
            //如果当前住宅是虚拟住宅
            if (Common.Config.Instance.Home.IsVirtually == true)
            {
                return TemplateData.TemplateDeviceDataLogic.Current.AddDeviceBindList(addBindData, null);
                return ModelData.DeviceModelDataLogic.Current.AddDeviceBindList(addBindData, "Bind/GetDeviceBind");
            }
            var device = Common.LocalDevice.Current.GetDevice(addBindData.DeviceAddr, addBindData.Epoint);
@@ -191,7 +191,7 @@
            }
            //修改缓存
            TemplateData.TemplateDeviceDataLogic.Current.AddDeviceBindList(addBindData, result.JsonData[0]);
            ModelData.DeviceModelDataLogic.Current.AddDeviceBindList(addBindData, "Bind/GetDeviceBind");
            var tempData = Newtonsoft.Json.JsonConvert.DeserializeObject<BindObj.AddedDeviceBindResponseData>(result.ReceiptData);
            return new BindObj.AddedDeviceBindResponseAllData() { addedDeviceBindResponseData = tempData };
@@ -420,7 +420,7 @@
            //如果当前住宅是虚拟住宅
            if (Common.Config.Instance.Home.IsVirtually == true)
            {
                return TemplateData.TemplateDeviceDataLogic.Current.DeleteDeviceBindList(delDeviceBindData);
                return ModelData.DeviceModelDataLogic.Current.DeleteDeviceBindList(delDeviceBindData);
            }
            var device = Common.LocalDevice.Current.GetDevice(delDeviceBindData.DeviceAddr, delDeviceBindData.Epoint);
            //获取需要发送的数据
@@ -447,7 +447,7 @@
            }
            //修改缓存
            TemplateData.TemplateDeviceDataLogic.Current.DeleteDeviceBindList(delDeviceBindData);
            ModelData.DeviceModelDataLogic.Current.DeleteDeviceBindList(delDeviceBindData);
            return responseData;
        }
@@ -460,7 +460,7 @@
            //如果当前住宅是虚拟住宅
            if (Common.Config.Instance.Home.IsVirtually == true)
            {
                return TemplateData.TemplateDeviceDataLogic.Current.ClearDeviceAllBind(device);
                return ModelData.DeviceModelDataLogic.Current.ClearDeviceAllBind(device);
            }
            var jObject = new JObject { { "DeviceAddr", device.DeviceAddr }, { "Epoint", device.DeviceEpoint }, { "Cluster_ID", 0 }, { "Command", 5006 } };
@@ -472,7 +472,7 @@
            }
            //修改缓存
            TemplateData.TemplateDeviceDataLogic.Current.ClearDeviceAllBind(device);
            ModelData.DeviceModelDataLogic.Current.ClearDeviceAllBind(device);
            var tempData = Newtonsoft.Json.JsonConvert.DeserializeObject<BindObj.ClearBindInfoResponseData>(result.ReceiptData);
            return new BindObj.ClearBindInfoResponseAllData { clearBindInfoResponseData = tempData };
@@ -660,7 +660,7 @@
            //如果当前住宅是虚拟住宅
            if (Common.Config.Instance.Home.IsVirtually == true)
            {
                return TemplateData.TemplateDeviceDataLogic.Current.ConfigurePanelKeyModel(device, value, clusterID, null);
                return ModelData.DeviceModelDataLogic.Current.ConfigurePanelKeyModel(device, value, clusterID, "SetWritableValue");
            }
            //获取发送数据
            var sendData = this.GetConfigureHdlKeyCommandText(device.DeviceAddr, device.DeviceEpoint, value, clusterID);
@@ -671,7 +671,7 @@
            }
            //修改缓存
            TemplateData.TemplateDeviceDataLogic.Current.ConfigurePanelKeyModel(device, value, clusterID, result.JsonData[0]);
            ModelData.DeviceModelDataLogic.Current.ConfigurePanelKeyModel(device, value, clusterID, "SetWritableValue");
            var tempData = Newtonsoft.Json.JsonConvert.DeserializeObject<CommonDevice.SetWritableValueResponData>(result.ReceiptData);
            return new CommonDevice.SetWritableValueResponAllData { setWritableValueResponData = tempData };
@@ -685,7 +685,7 @@
            //如果当前住宅是虚拟住宅
            if (Common.Config.Instance.Home.IsVirtually == true)
            {
                return TemplateData.TemplateDeviceDataLogic.Current.ReadPanelConfigureKeyModel(device);
                return ModelData.DeviceModelDataLogic.Current.ReadPanelConfigureKeyModel(device);
            }
            var JObject = new JObject {{ "DeviceAddr",device.DeviceAddr },{ "Epoint", device.DeviceEpoint },
ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlDeviceCommonLogic.cs
@@ -67,8 +67,6 @@
        {
            var reResult = new ReceiptGatewayResult();
            reResult.listReceiptData = new string[listReceiptTopic.Count];
            reResult.JsonData = new string[listReceiptTopic.Count];
            var myGateway = device.Gateway;
            if (myGateway == null)
            {
@@ -122,12 +120,6 @@
                            return;
                        }
                        reResult.listReceiptData[i] = jobject["Data"].ToString();
                        if (jobject.Property("Time") != null)
                        {
                            //需要移除time这个字段
                            jobject.Remove("Time");
                        }
                        reResult.JsonData[i] = jobject.ToString();
                        receiptCount++;
                    }
                }
@@ -159,6 +151,7 @@
                {
                    //如果只有一个主题,则替换变量
                    reResult.ReceiptData = reResult.listReceiptData[0];
                    reResult.listReceiptData = null;
                }
            }
@@ -249,13 +242,6 @@
                    if (command == receiptCommand)
                    {
                        reResult.ReceiptData = responseData.PassData;
                        reResult.JsonData = new string[1];
                        if (jobject.Property("Time") != null)
                        {
                            //需要移除time这个字段
                            jobject.Remove("Time");
                        }
                        reResult.JsonData[0] = jobject.ToString();
                    }
                }
            };
ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlDeviceCurtainLogic.cs
@@ -1,6 +1,6 @@
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using Shared.Phone.TemplateData;
using Shared.Phone.ModelData;
using System;
using System.Collections.Generic;
using System.Text;
@@ -51,7 +51,7 @@
            if (Common.Config.Instance.Home.IsVirtually == true)
            {
                //添加缓存
                TemplateDeviceDataLogic.Current.SetCurtainHandPullControl(device, bolStatu, null);
                DeviceModelDataLogic.Current.SetCurtainHandPullControl(device, bolStatu, "SetWritableValue");
                return true;
            }
            //获取发送的命令字符
@@ -81,9 +81,6 @@
                this.ShowTipMsg(msg);
                return false;
            }
            //添加缓存
            TemplateDeviceDataLogic.Current.SetCurtainHandPullControl(device, bolStatu, result.JsonData[0]);
            return true;
        }
@@ -153,7 +150,7 @@
            //如果当前是虚拟住宅
            if (Common.Config.Instance.Home.IsVirtually == true)
            {
                return TemplateDeviceDataLogic.Current.SetCurtainDirection(device, isDirectionReversed, null);
                return ModelData.DeviceModelDataLogic.Current.SetCurtainDirection(device, isDirectionReversed, "SetWritableValue");
            }
            //获取编辑窗帘方向的命令字符
            var sendData = this.GetCurtainDirectionCommadText(device.DeviceAddr, device.DeviceEpoint, isDirectionReversed);
@@ -162,9 +159,6 @@
            {
                return null;
            }
            //添加缓存
            TemplateDeviceDataLogic.Current.SetCurtainDirection(device, isDirectionReversed, result.JsonData[0]);
            var tempData = JsonConvert.DeserializeObject<CommonDevice.SetWritableValueResponData>(result.ReceiptData);
            return new CommonDevice.SetWritableValueResponAllData { setWritableValueResponData = tempData };
@@ -205,7 +199,7 @@
            //如果当前是虚拟住宅
            if (Common.Config.Instance.Home.IsVirtually == true)
            {
                return TemplateData.TemplateDeviceDataLogic.Current.SetCurtainLimitPoint(rollershade, upLimit, downLimit, curtainLength, null);
                return ModelData.DeviceModelDataLogic.Current.SetCurtainLimitPoint(rollershade, upLimit, downLimit, curtainLength, "SetWritableValue");
            }
            //获取编辑开合帘限位的命令字符
            var sendData = this.GetAutoOpenCurtainLimitPointCommandText(rollershade.DeviceAddr, rollershade.DeviceEpoint, upLimit, downLimit);
@@ -227,9 +221,6 @@
                this.ShowTipMsg(msg);
                return false;
            }
            //添加缓存
            TemplateDeviceDataLogic.Current.SetCurtainLimitPoint(rollershade, upLimit, downLimit, curtainLength, result.JsonData[0]);
            return true;
        }
ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlDeviceOtherLogic.cs
@@ -313,7 +313,7 @@
                    //烟雾
                    if (ias.iASInfo?.Alarm1 == 1)
                    {
                        return Language.StringByID(R.MyInternationalizationString.uSmogAlarm);
                        return Language.StringByID(R.MyInternationalizationString.IASZone_Statu_Alarm);
                    }
                    return Language.StringByID(R.MyInternationalizationString.IASZone_Statu_Safe);
                }
@@ -322,9 +322,9 @@
                    //pir
                    if (ias.iASInfo?.Alarm1 == 1)
                    {
                        return Language.StringByID(R.MyInternationalizationString.IASZone_Statu_HavePerson);
                        return Language.StringByID(R.MyInternationalizationString.IASZone_Statu_Alarm);
                    }
                    return Language.StringByID(R.MyInternationalizationString.IASZone_Statu_NoPerson);
                    return Language.StringByID(R.MyInternationalizationString.IASZone_Statu_Safe);
                }
                else if (info.ConcreteType == DeviceConcreteType.Sensor_Keyfob)
                {
@@ -340,9 +340,9 @@
                    //运动传感器
                    if (ias.iASInfo?.Alarm1 == 1)
                    {
                        return Language.StringByID(R.MyInternationalizationString.IASZone_Statu_HavePerson);
                        return Language.StringByID(R.MyInternationalizationString.IASZone_Statu_Alarm);
                    }
                    return Language.StringByID(R.MyInternationalizationString.IASZone_Statu_NoPerson);
                    return Language.StringByID(R.MyInternationalizationString.IASZone_Statu_Normal);
                }
                else if (info.ConcreteType == DeviceConcreteType.Sensor_EmergencyButton)
                {
ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlDevicePanelLogic.cs
@@ -118,7 +118,7 @@
            //如果当前是虚拟住宅
            if (Common.Config.Instance.Home.IsVirtually == true)
            {
                return TemplateData.TemplateDeviceDataLogic.Current.GetPanelColorInfo(device, keyNum);
                return ModelData.DeviceModelDataLogic.Current.GetPanelColorInfo(device, keyNum);
            }
            //发送数据 keyNum转为16进制 èŒƒå›´ï¼š01~10
            var passData = "0504040101" + Convert.ToString((int)keyNum, 16).ToUpper().PadLeft(2, '0');
@@ -215,7 +215,7 @@
            //如果当前是虚拟住宅
            if (Common.Config.Instance.Home.IsVirtually == true)
            {
                return TemplateData.TemplateDeviceDataLogic.Current.SetPanelColorInfo(device, keyColorData, keyNumStatus, null);
                return ModelData.DeviceModelDataLogic.Current.SetPanelColorInfo(device, keyColorData, keyNumStatus, "ZbDataPassthrough");
            }
            //获取配置按键指示灯颜色的命令字符
            var sendData = this.GetPanelColorCommandText(device.DeviceAddr, keyColorData, keyNumStatus);
@@ -228,10 +228,6 @@
            var tempD = new CommonDevice.ResponseData();
            tempD.command = data[12].ToString() + data[13].ToString() + data[10].ToString() + data[11].ToString();
            tempD.status = Convert.ToInt32(data[14].ToString() + data[15].ToString(), 16);
            //添加缓存
            TemplateData.TemplateDeviceDataLogic.Current.SetPanelColorInfo(device, keyColorData, keyNumStatus, result.JsonData[0]);
            return new CommonDevice.ResponseAllData { responseData = tempD };
        }
@@ -390,7 +386,7 @@
            //如果当前是虚拟住宅
            if (Common.Config.Instance.Home.IsVirtually == true)
            {
                return TemplateData.TemplateDeviceDataLogic.Current.GetDeviceLightSettion(device);
                return ModelData.DeviceModelDataLogic.Current.GetDeviceLightSettion(device);
            }
            //获取发送的命令字符
            var passData = "050604010101";
@@ -426,7 +422,7 @@
            //如果当前是虚拟住宅
            if (Common.Config.Instance.Home.IsVirtually == true)
            {
                return TemplateData.TemplateDeviceDataLogic.Current.SetDeviceLightSettion(device, directionsLevel, backlightLevel, null);
                return ModelData.DeviceModelDataLogic.Current.SetDeviceLightSettion(device, directionsLevel, backlightLevel, "ZbDataPassthrough");
            }
            //获取修改面板的亮度调节的命令字符
            var sendData = this.GetPanelLevelCommadText(device.DeviceAddr, directionsLevel, backlightLevel);
@@ -460,7 +456,7 @@
            }
            //修改缓存
            TemplateData.TemplateDeviceDataLogic.Current.SetDeviceLightSettion(device, directionsLevel, backlightLevel, result.JsonData[0]);
            ModelData.DeviceModelDataLogic.Current.SetDeviceLightSettion(device, directionsLevel, backlightLevel, "ZbDataPassthrough");
            return true;
        }
@@ -615,7 +611,7 @@
            //如果当前住宅是虚拟住宅
            if (Common.Config.Instance.Home.IsVirtually == true)
            {
                return TemplateData.TemplateDeviceDataLogic.Current.GetDeviceEnergyConservationMode(device);
                return ModelData.DeviceModelDataLogic.Current.GetDeviceEnergyConservationMode(device);
            }
            //发送命令
            string passData = "050804010101";
@@ -681,7 +677,7 @@
            //如果当前是虚拟住宅
            if (Common.Config.Instance.Home.IsVirtually == true)
            {
                return TemplateData.TemplateDeviceDataLogic.Current.SetDeviceEnergyConservationMode(device, modeEnable, modeTime, level, null);
                return ModelData.DeviceModelDataLogic.Current.SetDeviceEnergyConservationMode(device, modeEnable, modeTime, level, "ZbDataPassthrough");
            }
            //获取设置设备的节能模式的命令字符
            var sendData = this.GetDeviceEnergyConservationModeCommandText(device.DeviceAddr, modeEnable, modeTime, level);
@@ -711,7 +707,7 @@
            }
            //修改缓存
            TemplateData.TemplateDeviceDataLogic.Current.SetDeviceEnergyConservationMode(device, modeEnable, modeTime, level, result.JsonData[0]);
            ModelData.DeviceModelDataLogic.Current.SetDeviceEnergyConservationMode(device, modeEnable, modeTime, level, "ZbDataPassthrough");
            return true;
        }
@@ -1052,7 +1048,7 @@
            //如果是虚拟住宅
            if (Common.Config.Instance.Home.IsVirtually == true)
            {
                return TemplateData.TemplateDeviceDataLogic.Current.GetPanelVibrationInfo(device);
                return ModelData.DeviceModelDataLogic.Current.GetPanelVibrationInfo(device);
            }
            //发送数据
            var jObject = new Newtonsoft.Json.Linq.JObject { { "DeviceAddr", device.DeviceAddr }, { "Epoint", 200 }, { "Cluster_ID", 64513 }, { "Command", 0 } };
@@ -1087,7 +1083,7 @@
            //如果是虚拟住宅
            if (Common.Config.Instance.Home.IsVirtually == true)
            {
                return TemplateData.TemplateDeviceDataLogic.Current.SetPanelVibrationInfo(device, datainfo, null);
                return ModelData.DeviceModelDataLogic.Current.SetPanelVibrationInfo(device, datainfo, "ClientDataPassthrough");
            }
            //获取编辑面板震动功能的命令字符
            var sendData = this.GetPanelVibrationCommandText(device.DeviceAddr, datainfo);
@@ -1100,9 +1096,6 @@
                this.ShowTipMsg(errorMsg);
                return false;
            }
            //添加缓存
            TemplateData.TemplateDeviceDataLogic.Current.SetPanelVibrationInfo(device, datainfo, result.JsonData[0]);
            return true;
        }
@@ -1265,6 +1258,7 @@
        private void LoadDryContactFunctionFromLocaltion()
        {
            this.dicDryContactFunction = new Dictionary<string, DryContactFunctionInfo>();
            byte[] filebyte = HdlFileLogic.Current.ReadFileByteContent(DirNameResourse.DryContactFunctionFile);
            if (filebyte == null)
            {
ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlDevicePirSensorLogic.cs
@@ -133,7 +133,7 @@
            //如果当前住宅是虚拟住宅
            if (Common.Config.Instance.Home.IsVirtually == true)
            {
                return TemplateData.TemplateDeviceDataLogic.Current.GetPirSensorLightSettion(device);
                return ModelData.DeviceModelDataLogic.Current.GetPirSensorLightSettion(device);
            }
            var sendData = this.GetPirSensorParamateCommadText(device.DeviceAddr);
            var result = HdlDeviceCommonLogic.Current.SendJobjectDataToGateway2(device, sendData, "0302", 34, 9);
@@ -225,7 +225,7 @@
            //如果是虚拟住宅
            if (Common.Config.Instance.Home.IsVirtually == true)
            {
                return TemplateData.TemplateDeviceDataLogic.Current.SetPirSensorLightSettion(device, configureParamates, null);
                return ModelData.DeviceModelDataLogic.Current.SetPirSensorLightSettion(device, configureParamates, "ClientDataPassthrough");
            }
            //发送数据
            var sendData = this.GetPirSensorSettionCommandText(device.DeviceAddr, configureParamates);
@@ -238,9 +238,6 @@
            var tempD = new IASZone.ResponseData();
            tempD.command = data[12].ToString() + data[13].ToString() + data[10].ToString() + data[11].ToString();
            tempD.status = Convert.ToInt32(data[14].ToString() + data[15].ToString(), 16);
            //添加缓存
            TemplateData.TemplateDeviceDataLogic.Current.SetPirSensorLightSettion(device, configureParamates, result.JsonData[0]);
            return new CommonDevice.ResponseAllData { responseData = tempD };
        }
@@ -261,10 +258,10 @@
            return jObject.ToString();
        }
        /// <summary>
        /// èŽ·å–ä¿®æ”¹PIR传感器配置的命令字符
        /// </summary>
        private string GetPIRSensorSettionPassData(IASZone.ConfigureParamates configureParamates)
    /// <summary>
    /// èŽ·å–ä¿®æ”¹PIR传感器配置的命令字符
    /// </summary>
    private string GetPIRSensorSettionPassData(IASZone.ConfigureParamates configureParamates)
        {
            string data = "";
            string dataLength = "10";
ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlFileLogic.cs
@@ -60,10 +60,6 @@
            //LOG出力【文件夹】
            this.CreateDirectory(DirNameResourse.LogDirectory);
            //模板缓存存放的【文件夹】
            this.CreateDirectory(DirNameResourse.LocalTemplateDirectory);
            this.CreateDirectory(DirNameResourse.AllResidenceTemplateDirectory);
            //用户图片目录路径【文件夹】
            if (UserCenterResourse.AccountOption.UserPictruePath != string.Empty)
            {
@@ -280,12 +276,6 @@
            var rootPath = Common.Config.Instance.FullPath;
            foreach (var file in listFile)
            {
                if (file.StartsWith("ModelData_") == true)
                {
                    //复制模板数据文件到指定文件夹
                    TemplateData.TemplateCommonLogic.Current.CopyTemplateFileToLocalDirectory2(System.IO.Path.Combine(fulldirectory, file));
                    continue;
                }
                string oldFile = System.IO.Path.Combine(fulldirectory, file);
                string newFile = System.IO.Path.Combine(rootPath, file);
                //移动文件
ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlFirmwareUpdateLogic.cs
@@ -1,7 +1,6 @@
using System;
using System.Collections.Generic;
using System.Text;
using ZigBee.Device;
namespace Shared.Phone.UserCenter
{
@@ -134,7 +133,7 @@
        private static int GetFirmwareVersionAndSetToMemmory(FirmwareLevelType levelType, GetFirmwareVersionPra pra)
        {
            var listCheck = new List<string> { "NotCheck" };
            string resultValue = UserCenterLogic.GetResponseDataByRequestHttps("FirmwareMana/DetectionPlatformUploadFirmware", false, pra, listCheck, false);
            string resultValue = UserCenterLogic.GetResponseDataByRequestHttps("FirmwareMana/DetectionPlatformUploadFirmware", false, pra, listCheck);
            if (string.IsNullOrEmpty(resultValue) == true)
            {
                return -1;
@@ -311,45 +310,6 @@
        #endregion
        #region â–  èŽ·å–æŒ‡å®šå›ºä»¶ç‰ˆæœ¬ä¿¡æ¯_______________
        /// <summary>
        /// èŽ·å–æŒ‡å®šå›ºä»¶çš„ç‰ˆæœ¬ä¿¡æ¯(如果返回Null,则表示没有这个固件)
        /// </summary>
        /// <param name="levelType">固件阶级分类</param>
        /// <param name="HardwareVersion">硬件版本</param>
        /// <param name="imgType">镜像类型</param>
        /// <param name="nowVersion">现在的版本</param>
        /// <returns></returns>
        public static FirmwareVersionInfo GetFirmwareVersionInfo(FirmwareLevelType levelType, string HardwareVersion, string imgType, int nowVersion)
        {
            //镜像类型
            var listdata = GetFirmwareVersionListInfo(levelType, HardwareVersion, imgType);
            foreach (var verInfo in listdata)
            {
                if (verInfo.Name.EndsWith(".bin") == true)
                {
                    //它不是升级固件,  .bin是特殊的
                    continue;
                }
                int testVersion = Convert.ToInt32(verInfo.FirmwareVersion.ToString().PadLeft(6, '0').Substring(2, 2));
                if (testVersion % 2 != 0)
                {
                    //中间那个byte为奇数时,代表是测试版本,在显示最新版本时,不需要显示,但是在历史版本那里可以显示
                    //中间那个byte为偶数时,代表是正式版本
                    continue;
                }
                if (verInfo.FirmwareVersion == nowVersion)
                {
                    return verInfo;
                }
            }
            return null; ;
        }
        #endregion
        #region â–  å›ºä»¶å­˜åœ¨æ£€æµ‹_______________________
        /// <summary>
@@ -377,262 +337,6 @@
                return false;
            }
            return true;
        }
        /// <summary>
        /// æ£€æµ‹è¯¥Ota设备的升级固件是否存在
        /// </summary>
        /// <param name="device">设备对象</param>
        /// <returns></returns>
        public static bool IsEsixtDeviceFirmwareFile(OTADevice device)
        {
            var fileFullName = GetDeviceFirmwareFile(device);
            return System.IO.File.Exists(fileFullName);
        }
        /// <summary>
        /// èŽ·å–ota指定的升级固件名字(全路径)
        /// </summary>
        /// <param name="device">设备对象</param>
        /// <returns></returns>
        public static string GetDeviceFirmwareFile(OTADevice device)
        {
            //硬件版本_镜像ID_固件版本
            string fileName = device.HwVersion + "_" + device.ImgTypeId + "_" + device.ImgVersion;
            return System.IO.Path.Combine(DirNameResourse.FirmwareUpdateDirectory, "Device_" + fileName + ".ota");
        }
        /// <summary>
        /// èŽ·å–ç½‘å…³Linux的升级固件名字(全路径)
        /// </summary>
        /// <param name="zbGateway">网关对象</param>
        /// <returns></returns>
        public static string GetGatewayLinuxFirmwareFile(ZbGateway zbGateway)
        {
            string fileName = zbGateway.LinuxHardVersion + "_" + zbGateway.LinuxImageType + "_" + zbGateway.LinuxFirmwareVersion;
            return System.IO.Path.Combine(DirNameResourse.FirmwareUpdateDirectory, "Linux_" + fileName + ".ota");
        }
        /// <summary>
        /// èŽ·å–ç½‘å…³åè°ƒå™¨çš„å‡çº§å›ºä»¶åå­—(全路径)
        /// </summary>
        /// <param name="zbGateway">网关对象</param>
        /// <returns></returns>
        public static string GetGatewayCoordinatorFirmwareFile(ZbGateway zbGateway)
        {
            string fileName = zbGateway.CoordinatorHardVersion + "_" + zbGateway.CoordinatorImageId + "_" + zbGateway.CoordinatorFirmwareVersion;
            return System.IO.Path.Combine(DirNameResourse.FirmwareUpdateDirectory, "Coordinator_" + fileName + ".ota");
        }
        /// <summary>
        /// èŽ·å–ç½‘å…³è™šæ‹Ÿé©±åŠ¨çš„å‡çº§å›ºä»¶åå­—(全路径)
        /// </summary>
        /// <param name="codeObj">虚拟驱动数据</param>
        /// <returns></returns>
        public static string GetGatewayDriveCodeFirmwareFile(ZbGatewayData.DriveCodeObj codeObj)
        {
            string fileName = codeObj.DriveHwVersion + "_" + codeObj.DriveImageType + "_" + codeObj.DriveFwVersion;
            return System.IO.Path.Combine(DirNameResourse.FirmwareUpdateDirectory, "DriveCode_" + fileName + ".ota");
        }
        #endregion
        #region â–  ä¸‹è½½æ¨¡æ¿å›ºä»¶_______________________
        /// <summary>
        /// ä¸‹è½½æ¨¡æ¿ä¸­ç½‘关和设备的固件
        /// </summary>
        /// <param name="fullFileName"></param>
        /// <param name="i_Msg"></param>
        public static int DownLoadTemplateDeviceFirmware(string fullFileName, string i_Msg)
        {
            //从模板当中获取设备和网关对象
            var listTempDevice = new List<OTADevice>();
            var listTempGateway = new List<ZbGateway>();
            TemplateData.TemplateCommonLogic.Current.GetDeviceObjectFromTemplate(fullFileName, ref listTempDevice, ref listTempGateway);
            //获取需要下载的固件数据
            var listVersion = GetNeedToDownLoadVersionData(listTempDevice, listTempGateway);
            if (listVersion.Count == 0)
            {
                return 0;
            }
            //打开进度条
            ProgressFormBar.Current.Start();
            ProgressFormBar.Current.SetMsg(i_Msg);
            ProgressFormBar.Current.SetValue(0, 1);
            System.Threading.Thread.Sleep(1000);
            var dicFirmwareName = new Dictionary<string, string>();
            var fileData = HdlFileLogic.Current.ReadFileTextContent(DirNameResourse.FirmwareUpdateList);
            if (fileData != null)
            {
                //本地存放的固件原来的名字(因为设备升级时,它需要识别文件名字里面包含的特殊字符)
                //key:硬件版本_镜像ID_固件版本  value:固件原来的名字
                dicFirmwareName = Newtonsoft.Json.JsonConvert.DeserializeObject<Dictionary<string, string>>(fileData);
            }
            //固件存储路径
            string firmwareDir = DirNameResourse.FirmwareUpdateDirectory;
            int nowCount = 0;
            foreach (var versionData in listVersion)
            {
                nowCount++;
                //获取升级固件信息
                var result = AddFirmwareVersionInfo(versionData.levelType, versionData.HwVersion, versionData.ImageType);
                if (result == -1)
                {
                    ProgressFormBar.Current.Close();
                    return -1;
                }
                //获取当前这个版本的固件信息
                var versionFirmware = GetFirmwareVersionInfo(versionData.levelType, versionData.HwVersion, versionData.ImageType, versionData.FirmwareVersion);
                if (versionFirmware == null)
                {
                    //云端没有这个版本  è¿›åº¦å€¼
                    ProgressFormBar.Current.SetValue(nowCount, listVersion.Count);
                    continue;
                }
                //去下载这个固件
                var pra = new { RequestVersion = Common.CommonPage.RequestVersion, DistributedMark = versionFirmware.DistributedMark };
                var byteData = UserCenterLogic.GetByteResponseDataByRequestHttps("FirmwareMana/DownloadPlatformUploadFirmware", false, pra, null, true);
                if (byteData == null)
                {
                    ProgressFormBar.Current.Close();
                    return -1;
                }
                //保存固件
                var saveFile = System.IO.Path.Combine(firmwareDir, versionData.FileDiv + versionData.HwVersion + "_" + versionData.ImageType + "_" + versionData.FirmwareVersion + ".ota");
                HdlFileLogic.Current.SaveTextToFile(saveFile, Encoding.UTF8.GetString(byteData));
                dicFirmwareName[saveFile] = versionFirmware.Name;
                //进度值
                ProgressFormBar.Current.SetValue(nowCount, listVersion.Count);
            }
            //保存列表名字
            HdlFileLogic.Current.SaveFileContent(DirNameResourse.FirmwareUpdateList, dicFirmwareName);
            ProgressFormBar.Current.Close();
            return 1;
        }
        /// <summary>
        /// èŽ·å–éœ€è¦ä¸‹è½½çš„å›ºä»¶æ•°æ®
        /// </summary>
        /// <param name="listDevice">设备列表</param>
        /// <param name="listGateway">网关列表</param>
        /// <returns></returns>
        private static List<TemplateDeviceVersion> GetNeedToDownLoadVersionData(List<OTADevice> listDevice, List<ZbGateway> listGateway)
        {
            //存储路径
            string firmwareDir = DirNameResourse.FirmwareUpdateDirectory;
            HdlFileLogic.Current.CreateDirectory(firmwareDir);
            var listVersion = new List<TemplateDeviceVersion>();
            var listCheck = new HashSet<string>();
            foreach (var device in listDevice)
            {
                //设备的升级固件名字
                var fileFullName = GetDeviceFirmwareFile(device);
                if (System.IO.File.Exists(fileFullName) == false && listCheck.Contains(fileFullName) == false)
                {
                    listCheck.Add(fileFullName);
                    //设备
                    listVersion.Add(new TemplateDeviceVersion
                    {
                        FileDiv = "Device_",
                        levelType = FirmwareLevelType.ZigbeeDevice,
                        HwVersion = device.HwVersion.ToString(),
                        ImageType = device.ImgTypeId.ToString(),
                        FirmwareVersion = device.ImgVersion
                    });
                }
            }
            foreach (var gateway in listGateway)
            {
                //Linux的升级固件名字
                var fileFullName = GetGatewayLinuxFirmwareFile(gateway);
                if (System.IO.File.Exists(fileFullName) == false && listCheck.Contains(fileFullName) == false)
                {
                    listCheck.Add(fileFullName);
                    //Linux
                    listVersion.Add(new TemplateDeviceVersion
                    {
                        FileDiv = "Linux_",
                        levelType = FirmwareLevelType.Linux,
                        HwVersion = gateway.LinuxHardVersion.ToString(),
                        ImageType = gateway.LinuxImageType.ToString(),
                        FirmwareVersion = gateway.LinuxFirmwareVersion
                    });
                }
                //协调器的升级固件名字
                fileFullName = GetGatewayCoordinatorFirmwareFile(gateway);
                if (System.IO.File.Exists(fileFullName) == false && listCheck.Contains(fileFullName) == false)
                {
                    listCheck.Add(fileFullName);
                    //协调器
                    listVersion.Add(new TemplateDeviceVersion
                    {
                        FileDiv = "Coordinator_",
                        levelType = FirmwareLevelType.Coordinator,
                        HwVersion = gateway.CoordinatorHardVersion.ToString(),
                        ImageType = gateway.CoordinatorImageId.ToString(),
                        FirmwareVersion = gateway.CoordinatorFirmwareVersion
                    });
                }
                //这个网关需要有虚拟驱动这个东西才行
                if (gateway.LinuxImageType != 6)
                {
                    //虚拟驱动号
                    foreach (var data in gateway.DriveCodeList)
                    {
                        //虚拟驱动号的升级固件名字
                        fileFullName = GetGatewayDriveCodeFirmwareFile(data);
                        if (System.IO.File.Exists(fileFullName) == false && listCheck.Contains(fileFullName) == false)
                        {
                            listCheck.Add(fileFullName);
                            //虚拟驱动号
                            listVersion.Add(new TemplateDeviceVersion
                            {
                                FileDiv = "DriveCode_",
                                levelType = FirmwareLevelType.VirtualDevice,
                                HwVersion = data.DriveHwVersion.ToString(),
                                ImageType = data.DriveImageType.ToString(),
                                FirmwareVersion = data.DriveFwVersion
                            });
                        }
                    }
                }
            }
            return listVersion;
        }
        /// <summary>
        /// æ¨¡æ¿è®¾å¤‡çš„版本信息
        /// </summary>
        private class TemplateDeviceVersion
        {
            /// <summary>
            /// æ–‡ä»¶åŒºåˆ†
            /// </summary>
            public string FileDiv = string.Empty;
            /// <summary>
            /// å›ºä»¶é˜¶çº§åŒºåˆ†
            /// </summary>
            public FirmwareLevelType levelType;
            /// <summary>
            /// ç¡¬ä»¶ç‰ˆæœ¬
            /// </summary>
            public string HwVersion = string.Empty;
            /// <summary>
            /// é•œåƒID
            /// </summary>
            public string ImageType = string.Empty;
            /// <summary>
            /// å›ºä»¶ç‰ˆæœ¬
            /// </summary>
            public int FirmwareVersion = 0;
        }
        #endregion
ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayLogic.cs
@@ -196,7 +196,7 @@
        /// </summary>
        /// <param name="zbGateway">网关</param>
        /// <param name="mode">是否显示错误</param>
        public bool AddNewGateway(ZbGateway zbGateway, ShowErrorMode mode)
        public async Task<bool> AddNewGateway(ZbGateway zbGateway, ShowErrorMode mode)
        {
            //设置网关的经纬度
            bool falge = this.SetGatewaySite(zbGateway, Common.Config.Instance.Home.Longitude, Common.Config.Instance.Home.Latitude, ShowErrorMode.NO);
@@ -205,7 +205,7 @@
                return falge;
            }
            //执行添加网关到内存
            var result = this.DoAddGatewayToMemory(zbGateway, mode);
            var result = await this.DoAddGatewayToMemory(zbGateway, mode);
            //前的网关绑定在了当前账号下的不同住宅里面
            if (result == 0)
            {
@@ -250,7 +250,7 @@
        /// <param name="zbGateway">网关对象</param>
        /// <param name="mode">是否显示错误</param>
        /// <returns></returns>
        private int DoAddGatewayToMemory(ZbGateway zbGateway, ShowErrorMode mode)
        private async Task<int> DoAddGatewayToMemory(ZbGateway zbGateway, ShowErrorMode mode)
        {
            if (zbGateway == null)
            {
@@ -278,7 +278,7 @@
            //设置住宅ID到网关
            if (result.HomeId != Common.Config.Instance.HomeId)
            {
                bool flage2 = this.SetHomeIdToGateway(zbGateway, Common.Config.Instance.HomeId, mode);
                bool flage2 = await this.SetHomeIdToGateway(zbGateway, Common.Config.Instance.HomeId, mode);
                if (flage2 == false)
                {
                    if (mode == ShowErrorMode.YES)
@@ -337,28 +337,10 @@
        /// <param name="zbGateway"></param>
        /// <param name="HomeId"></param>
        /// <returns></returns>
        public bool SetHomeIdToGateway(ZbGateway zbGateway, string HomeId, ShowErrorMode mode)
        public async Task<bool> SetHomeIdToGateway(ZbGateway zbGateway, string HomeId, ShowErrorMode mode)
        {
            //账号ID
            string accountId = string.Empty;
            if (HomeId != string.Empty)
            {
                if (UserCenterResourse.UserInfo.AuthorityNo == 1)
                {
                    //主账号
                    accountId = Config.Instance.Guid;
                }
                else
                {
                    accountId = Config.Instance.Home.MainUserDistributedMark;
                }
            }
            var jObject = new Newtonsoft.Json.Linq.JObject { { "Cluster_ID", 0 }, { "Command", 82 } };
            var data = new Newtonsoft.Json.Linq.JObject { { "HomeId", HomeId }, { "AccountId", accountId } };
            jObject.Add("Data", data);
            //住宅ID的设置,固定使用局域网,不存在远程的说法
            var result = this.SendJobjectDataToGateway(zbGateway, "GwSetHomeId", jObject.ToString(), "GwSetHomeId_Respon", 5, true);
            if (result.ErrorMsgDiv == -1)
            ZbGateway realWay = null;
            if (this.GetRealGateway(ref realWay, zbGateway) == false)
            {
                if (mode == ShowErrorMode.YES)
                {
@@ -368,11 +350,13 @@
                }
                return false;
            }
            if (result.ErrorMsgDiv == 0)
            var info = await realWay.GwSetHomeIdAsync(HomeId);
            if (info != null && info.gwSetHomeIdData != null)
            {
                return false;
                return true;
            }
            return true;
            return false;
        }
        /// <summary>
@@ -388,7 +372,7 @@
            //获取控制主人账号的Token
            bindGateway.LoginAccessToken = UserCenterLogic.GetConnectMainToken();
            var result = UserCenterLogic.GetResultCodeByRequestHttps("App/BindGatewayToHome", true, bindGateway, new List<string> { "NotCheck" }, false);
            var result = UserCenterLogic.GetResultCodeByRequestHttps("App/BindGatewayToHome", true, bindGateway, new List<string> { "NotCheck" });
            if (result == "Error")
            {
                return -1;
@@ -434,7 +418,7 @@
        /// </summary>
        /// <param name="zbGateway">网关</param>
        /// <param name="btnMsg">消息控件</param>
        public int ReBindNewGateway(ZbGateway zbGateway, NormalViewControl btnMsg = null)
        public async Task<int> ReBindNewGateway(ZbGateway zbGateway, NormalViewControl btnMsg = null)
        {
            if (zbGateway == null)
            {
@@ -451,7 +435,7 @@
            }
            //设置住宅ID到网关
            bool flage2 = this.SetHomeIdToGateway(zbGateway, Common.Config.Instance.HomeId, ShowErrorMode.YES);
            bool flage2 = await this.SetHomeIdToGateway(zbGateway, Common.Config.Instance.HomeId, ShowErrorMode.YES);
            if (flage2 == false)
            {
                //向网关设置住宅ID失败
@@ -486,7 +470,7 @@
                    btnMsg.TextID = R.MyInternationalizationString.uGatewayDataIsChangingPleaseWhait;
                });
            }
            System.Threading.Thread.Sleep(8000);
            await Task.Delay(8000);
            //获取网关的信息
            ZbGatewayData.GetGwData result = null;
@@ -500,7 +484,7 @@
                }
                count--;
                //最多再等20秒
                System.Threading.Thread.Sleep(4000);
                await Task.Delay(4000);
            }
            if (result == null)
            {
@@ -595,10 +579,12 @@
        /// æ‰§è¡Œåˆ‡æ¢ç½‘关操作
        /// </summary>
        /// <param name="gatewayId"></param>
        public bool DoSwitchGateway(string gatewayId)
        public async Task<bool> DoSwitchGateway(string gatewayId)
        {
            var zbGateway = this.GetLocalGateway(gatewayId);
            //重新获取在线网关的信息
            var result = this.GetOnlineGatewayInfo(gatewayId);
            var result = await this.GetOnlineGatewayInfo(gatewayId);
            if (result == false)
            {
                return false;
@@ -617,7 +603,7 @@
        /// </summary>
        /// <param name="gatewayId"></param>
        /// <returns></returns>
        private bool GetOnlineGatewayInfo(string gatewayId)
        private async Task<bool> GetOnlineGatewayInfo(string gatewayId)
        {
            //显示进度条
            ProgressBar.Show();
@@ -630,7 +616,7 @@
                //重新设置住宅ID(这个应该是不经过APP,直接把网关恢复了出厂设置)
                if (this.HomeIdIsEmpty(realWay.HomeId) == true)
                {
                    int result2 = this.ReBindNewGateway(realWay);
                    int result2 = await this.ReBindNewGateway(realWay);
                    if (result2 == 0)
                    {
                        //出现未知错误,请稍后再试
@@ -659,11 +645,6 @@
                    ProgressBar.Close();
                    return false;
                }
            }
            //刷新全部场景
            if (this.IsMainGateway(realWay) == 1)
            {
                HdlSceneLogic.Current.RefreshSceneUIList(false);
            }
            //获取全部设备
@@ -694,15 +675,25 @@
        /// <summary>
        /// åˆ é™¤ç½‘关,包括云端和本地(失败时不会显示信息,并且会返回true)
        /// </summary>
        /// <param name="zbGateway"></param>
        public async Task<bool> DeleteGateway(ZbGateway zbGateway)
        {
            //移除本地网关信息
            return await this.DeleteGateway(zbGateway.GwId);
        }
        /// <summary>
        /// åˆ é™¤ç½‘关,包括云端和本地(失败时不会显示信息,并且会返回true)
        /// </summary>
        /// <param name="zbGatewayID"></param>
        public bool DeleteGateway(string zbGatewayID)
        public async Task<bool> DeleteGateway(string zbGatewayID)
        {
            ZbGateway realWay = null;
            this.GetRealGateway(ref realWay, zbGatewayID);
            //清空网关的住宅ID ç½‘关解绑失败  ä¸ç†å®ƒ,因为网关可以按按键强制搜索得到
            if (realWay != null)
            {
                this.SetHomeIdToGateway(realWay, string.Empty, ShowErrorMode.NO);
                await this.SetHomeIdToGateway(realWay, string.Empty, ShowErrorMode.NO);
            }
            //删除云端的网关
@@ -1496,39 +1487,24 @@
        #endregion
        #region â–  æ¸…空真实网关链接___________________
        #region â–  æ¸…空真实网关列表___________________
        /// <summary>
        /// æ¸…空全部的真实物理网关的链接
        /// æ¸…空全部的真实物理网关对象
        /// </summary>
        /// <param name="roadGateway">是否加载本地的网关对象到真实列表中</param>
        public void ClearAllRealGatewayConection(bool roadGateway)
        public void ClearAllRealGateway()
        {
            //断开mqtt连接(即使保存在内存当中也没问题,因为如果广播不到,则它不会建立链接)
            for (int i = 0; i < ZbGateway.GateWayList.Count; i++)
            //因为那一瞬间,有可能mqtt会加回来,所以先加缓存
            var list = new List<ZbGateway>();
            list.AddRange(ZbGateway.GateWayList);
            //然后清空掉
            ZbGateway.GateWayList.Clear();
            //最后再断开mqtt连接
            for (int i = 0; i < list.Count; i++)
            {
                ZbGateway.GateWayList[i].DisConnectLocalMqttClient("G");
                list[i].DisConnectLocalMqttClient("G");
            }
            //加载本地网关对象
            if (roadGateway == true)
            {
                List<string> listFile = this.GetAllGatewayFile();
                //反序列化添加到缓存
                foreach (string file in listFile)
                {
                    //从文件中反序列化出网关对象
                    var gateway = this.GetGatewayFromFile(file);
                    if (gateway == null)
                    {
                        continue;
                    }
                    var tempWay = ZbGateway.GateWayList.Find(obj => (obj != null) && (obj.GwId == gateway.GwId));
                    if (tempWay == null)
                    {
                        ZbGateway.GateWayList.Add(tempWay);
                    }
                }
            }
            list.Clear();
        }
        #endregion
@@ -1543,11 +1519,6 @@
        /// <returns></returns>
        public List<FirmwareVersionInfo> GetGatewayAllNewVersion(ZbGateway zbGateway, ShowErrorMode mode = ShowErrorMode.YES)
        {
            //如果是展示模板,或者是虚拟住宅的话,没有什么新版本的说法
            if (Common.Config.Instance.Home.IsVirtually == true || Common.Config.Instance.Home.IsShowTemplate == true)
            {
                return new List<FirmwareVersionInfo> { null, null, null };
            }
            //获取网关版本信息
            var result = this.GetGatewayInfo(zbGateway, false, mode);
            if (result == null)
@@ -1633,13 +1604,6 @@
        /// <returns></returns>
        public List<ZbGatewayData.DriveCodeObj> GetListVDDriveCode(ZbGateway zbGateway)
        {
            //如果是展示模板,或者是虚拟住宅的话,直接取缓存
            if (Common.Config.Instance.Home.IsVirtually == true || Common.Config.Instance.Home.IsShowTemplate == true)
            {
                //取本地对象
                var localgw = this.GetLocalGateway(zbGateway.GwId);
                return localgw != null ? zbGateway.DriveCodeList : zbGateway.DriveCodeList;
            }
            var jObject = new Newtonsoft.Json.Linq.JObject { { "Cluster_ID", 0 }, { "Command", 505 } };
            var result = this.SendJobjectDataToGateway(zbGateway, "VirtualDrive/CatDriveCode", jObject.ToString(), "VirtualDrive/CatDriveCode_Respon");
            if (result.ErrorMsg != null)
@@ -1675,16 +1639,12 @@
        /// <returns></returns>
        public int IsMainGateway(string waiID)
        {
            var realWay = ZbGateway.GateWayList.Find((obj) =>
            {
                return obj.GwId == waiID;
            });
            //虚拟网关也返回 0
            if (realWay == null || realWay.IsVirtual == true)
            ZbGateway zbGateway = null;
            if (this.GetRealGateway(ref zbGateway, waiID) == false)
            {
                return 0;
            }
            return realWay.IsMainGateWay == true ? 1 : 2;
            return zbGateway.IsMainGateWay == true ? 1 : 2;
        }
        #endregion
@@ -1851,7 +1811,7 @@
                //获取控制主人账号的Token
                pra.ReqDto.LoginAccessToken = UserCenterLogic.GetConnectMainToken();
                var result = UserCenterLogic.GetResponseDataByRequestHttps("App/GetSingleHomeGatewayPagger", true, pra, list, false);
                var result = UserCenterLogic.GetResponseDataByRequestHttps("App/GetSingleHomeGatewayPagger", true, pra, list);
                if (string.IsNullOrEmpty(result) == true)
                {
                    canBreak = true;
@@ -1907,11 +1867,6 @@
                    this.ShowTipMsg(msg);
                }
                return false;
            }
            if (((decimal)Longitude) == 0 && ((decimal)Latitude) == 0)
            {
                //没有配置过经纬度
                return true;
            }
            int result = -1;
@@ -1988,7 +1943,7 @@
            List<string> listNotShowError = new List<string>() { "NoExist", "NoBind", "NoRecord", "NotCheck" };
            bool result = UserCenterLogic.GetResultStatuByRequestHttps("App/ReleaseGatewayToHome", true, Pra, listNotShowError, false);
            bool result = UserCenterLogic.GetResultStatuByRequestHttps("App/ReleaseGatewayToHome", true, Pra, listNotShowError);
            if (result == false)
            {
                return false;
@@ -2041,7 +1996,7 @@
                {
                    bindGateway.BindGateways.Clear();
                    bindGateway.BindGateways.Add(gwId);
                    var result = UserCenterLogic.GetResultCodeByRequestHttps("App/BindGatewayToHome", true, bindGateway, new List<string> { "NotCheck" }, false);
                    var result = UserCenterLogic.GetResultCodeByRequestHttps("App/BindGatewayToHome", true, bindGateway, new List<string> { "NotCheck" });
                    if (result == "Success")
                    {
                        this.listBackupGwId.Remove(gwId);
ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayReceiveLogic.cs
@@ -277,25 +277,6 @@
                #endregion
                #region â–  èœ‚鸣器推送
                //蜂鸣器数据
                else if (report.DeviceStatusReport.CluterID == 1282)
                {
                    //mini夜灯
                    if (Common.LocalDevice.Current.IsMiniLight(locadevice) == true)
                    {
                        foreach (var attData in report.DeviceStatusReport.AttriBute)
                        {
                            if (attData.AttributeId == 0)
                            {
                                //这个是报警持续时间(大于2秒时,标记为还在响着)
                                ((ColorTemperatureLight)locadevice).IsBuzzerRing = attData.AttriButeData > 2 ? true : false;
                            }
                        }
                    }
                }
                #endregion
                #region â–  çª—帘数据
                //窗帘数据
                else if (report.DeviceStatusReport.CluterID == 258)
ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlResidenceLogic.cs
@@ -206,11 +206,9 @@
        /// <summary>
        /// èŽ·å–äº‘ç«¯ä½å®…åˆ—è¡¨
        /// </summary>
        /// <param name="checkNetwork">是否检测网络,如果设置检测的话,当不能联网时,直接返回本地住宅</param>
        /// <returns></returns>
        public List<string> GetHomeListsFromDb(bool checkNetwork)
        public List<string> GetHomeListsFromDb()
        {
            if (checkNetwork == true && HdlWifiLogic.Current.CanAccessHttp == false)
            if (HdlWifiLogic.Current.CanAccessHttp == false)
            {
                //当前无法联网
                return Config.Instance.HomeFilePathList;
ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlRoomLogic.cs
@@ -298,6 +298,7 @@
            Common.LocalDevice.Current.DeleteRealDeviceByRoomId(roomId);
            if (refreshLeftView == true)
            {
                //HdlAutoBackupLogic.DeleteFile(roomFilePath);
                //刷新房间视图列表
                this.RefreshRoomListView();
            }
ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlSafeguardLogic.cs
@@ -231,9 +231,6 @@
            zoneInfo.ZoneId = allData.ZoneId;
            zoneInfo.ZoneName = allData.ZoneName;
            //信息推送
            zoneInfo.InformationPush = allData.IsDisablePushMessage;
            //处理设备
            foreach (var data2 in allData.DeviceList)
            {
@@ -288,6 +285,9 @@
            zoneInfo.dicAlarmDevice.Clear();
            zoneInfo.dicScenes.Clear();
            //信息推送
            zoneInfo.InformationPush = resData.IsDisablePushMessage;
            foreach (var data in resData.Actions)
            {
@@ -1708,6 +1708,11 @@
            {
                return false;
            }
            if (zoneId > 3)
            {
                zoneId = 3;
            }
            //状态变更
            var result = await Safeguard.DisablePushMessageAsync(zoneId, statu);
            if (result == null || result.disablePushMessageResponseData == null || result.disablePushMessageResponseData.Result == 1)
@@ -1737,6 +1742,10 @@
        /// <returns>0:推送  1:不推送</returns>
        public int GetGarrisonInformationPushStatu(int zoneId)
        {
            if (zoneId > 3)
            {
                zoneId = 3;
            }
            if (this.dicAllZoneInfo.ContainsKey(zoneId) == false)
            {
                return 1;
@@ -2331,7 +2340,7 @@
            /// </summary>
            public string ZoneName;
            /// <summary>
            /// ä¿¡æ¯æŽ¨é€ 0:推送  1:不推送
            /// ä¿¡æ¯æŽ¨é€ 0:推送  1:不推送 (只有防区ID:1,2,3才会有。4,5的都归为3,因为它是以防区模式ID(ActionType)为单位的)
            /// </summary>
            public int InformationPush = 1;
            /// <summary>
ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlSceneLogic.cs
@@ -178,11 +178,7 @@
                if (topic == gatewayID + "/" + "Scene/GetAllInfo_Respon")
                {
                    var sceneGetAllInfo = Newtonsoft.Json.JsonConvert.DeserializeObject<Scene.GetSceneAllInfo>(jobject["Data"].ToString());
                    if (sceneGetAllInfo.ScenesSum != 0)
                    {
                        //如果网关里面没有场景的话,它也会推这个东西过来
                        listScene.Add(sceneGetAllInfo);
                    }
                    listScene.Add(sceneGetAllInfo);
                    //更够接收得到场景
                    canReceve = true;
@@ -363,15 +359,12 @@
        /// <summary>
        /// èŽ·å–æ·»åŠ æ‰§è¡Œç›®æ ‡åˆ°åœºæ™¯çš„å‘½ä»¤
        /// </summary>
        /// <param name="sceneId">场景id</param>
        /// <param name="listAdjustTarget">执行目标</param>
        /// <param name="dicChangedMac">交换mac key:listAdjustTarget当前的Mac value:转换的mac</param>
        /// <param name="sceneName">场景名称(特殊用途,请勿设置)</param>
        /// <param name="sceneId"></param>
        /// <param name="listAdjustTarget"></param>
        /// <returns></returns>
        public List<string> GetAddTargetToSceneCommand(int sceneId, List<Scene.DeviceListData> listAdjustTarget, Dictionary<string, string> dicChangedMac = null, string sceneName = null)
        public List<string> GetAddTargetToSceneCommand(int sceneId, List<Scene.DeviceListData> listAdjustTarget)
        {
            var listCommand = new List<string>();
            int index = 1;
            for (int i = 0; i < listAdjustTarget.Count; i++)
            {
                var jObject = new Newtonsoft.Json.Linq.JObject { { "Cluster_ID", 0 }, { "Command", 820 } };
@@ -379,17 +372,6 @@
                //设备
                if (data.Type == 0)
                {
                    string deviceAddr = data.DeviceAddr;
                    if (dicChangedMac != null)
                    {
                        //如果不包含,则不作为处理对象
                        if (dicChangedMac.ContainsKey(deviceAddr) == false)
                        {
                            continue;
                        }
                        deviceAddr = dicChangedMac[deviceAddr];
                    }
                    var taskList = new Newtonsoft.Json.Linq.JArray { };
                    foreach (var taskInfo in data.TaskList)
                    {
@@ -397,38 +379,25 @@
                            { "Data1", taskInfo.Data1},{ "Data2",taskInfo.Data2}};
                        taskList.Add(tInfo);
                    }
                    var data2 = new Newtonsoft.Json.Linq.JObject {{ "ScenesId",sceneId},{ "Type", 0} ,{ "DeviceAddr",deviceAddr} ,
                         { "Epoint", data.Epoint} ,{ "TaskList", taskList },{ "DelayTime", 0} ,{ "MemberNumber",index}};
                    if (sceneName != null)
                    {
                        data2.Add(new Newtonsoft.Json.Linq.JProperty("ScenesName", sceneName));
                    }
                    var data2 = new Newtonsoft.Json.Linq.JObject {{ "ScenesId",sceneId},{ "Type", 0} ,{ "DeviceAddr",data.DeviceAddr} ,
                         { "Epoint", data.Epoint} ,{ "TaskList", taskList },{ "DelayTime", 0} ,{ "MemberNumber",i + 1}};
                    jObject.Add("Data", data2);
                }
                //场景
                else if (data.Type == 1)
                {
                    var data2 = new Newtonsoft.Json.Linq.JObject {{ "ScenesId",sceneId},{ "Type", 1} ,
                         { "ElseScenesId", data.ElseScenesId },{ "DelayTime", 0} ,{ "MemberNumber",index} };
                    if (sceneName != null)
                    {
                        data2.Add(new Newtonsoft.Json.Linq.JProperty("ScenesName", sceneName));
                    }
                         { "ElseScenesId", data.ElseScenesId },{ "DelayTime", 0} ,{ "MemberNumber",i + 1} };
                    jObject.Add("Data", data2);
                }
                //延时
                else
                {
                    var data2 = new Newtonsoft.Json.Linq.JObject {{ "Type", 2} ,{ "ScenesId",sceneId},
                         { "DelayTime", data.DelayTime} ,{ "MemberNumber",index}};
                    if (sceneName != null)
                    {
                        data2.Add(new Newtonsoft.Json.Linq.JProperty("ScenesName", sceneName));
                    }
                         { "DelayTime", data.DelayTime} ,{ "MemberNumber",i + 1}};
                    jObject.Add("Data", data2);
                }
                listCommand.Add(jObject.ToString());
                index++;
            }
            return listCommand;
        }
ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlWifiLogic.cs
@@ -411,14 +411,11 @@
                    }
                    //重新初始化Socket
                    ZigBee.Common.Application.FindGateWaySocket.Stop();
                    System.Threading.Thread.Sleep(100);
                    //断掉本地连接
                    HdlGatewayLogic.Current.ClearAllRealGatewayConection(true);
                    HdlGatewayLogic.Current.ClearAllRealGateway();
                    //断掉远程
                    ZigBee.Device.ZbGateway.DisConnectRemoteMqttClient();
                    //如果是wifi
                    if (value == 2)
                    {
                        ZigBee.Common.Application.FindGateWaySocket.Start();
ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/UserCenterLogic.cs
@@ -22,19 +22,24 @@
        /// <param name="checkAuthority">是否检测权限,该参数不能省略</param>
        /// <param name="obj">一个类</param>
        /// <param name="listNotShowError">不需要显示错误的错误类别(接口返回的错误类别),如果包含,则会返回【true】</param>
        /// <param name="setAgain">当发送失败时,是否重发,默认重发</param>
        public static bool GetResultStatuByRequestHttps(string RequestName, bool checkAuthority, object obj, List<string> listNotShowError = null, bool setAgain = true)
        /// <param name="setAgain">当发送失败时,是否重发,默认不重发</param>
        public static bool GetResultStatuByRequestHttps(string RequestName, bool checkAuthority, object obj, List<string> listNotShowError = null, bool setAgain = false)
        {
            if (HdlWifiLogic.Current.CanAccessHttp == false && setAgain == false)
            {
                //当前无法访问网络(当需要重新发送时,跳过这个判断)
                ShowNotNetMsg(listNotShowError);
                return false;
            }
            //获取接口的连接模式
            var connectMode = GetHttpConnectMode(checkAuthority);
            //获取从接口那里取到的比特数据
            var byteData = GettByteResponsePack(RequestName, connectMode, obj);
            if (byteData == null)
            if (byteData == null && setAgain == true)
            {
                if (setAgain == false)
                {
                    //当前无法访问网络
                    ShowNotNetMsg(RequestName, listNotShowError);
                    //不指定重发
                    return false;
                }
                byteData = ResetByteRequestHttps(RequestName, checkAuthority, obj);
@@ -56,10 +61,17 @@
        /// <param name="checkAuthority">是否检测权限,该参数不能省略</param>
        /// <param name="obj">一个类</param>
        /// <param name="listNotShowError">不需要显示错误的错误类别(接口返回的错误类别),如果包含,则会返回【true】</param>
        /// <param name="setAgain">当发送失败时,是否重发,默认重发</param>
        /// <param name="setAgain">当发送失败时,是否重发,默认不重发</param>
        /// </param>
        public static string GetResultCodeByRequestHttps(string RequestName, bool checkAuthority, object obj, List<string> listNotShowError = null, bool setAgain = true)
        public static string GetResultCodeByRequestHttps(string RequestName, bool checkAuthority, object obj, List<string> listNotShowError = null, bool setAgain = false)
        {
            if (HdlWifiLogic.Current.CanAccessHttp == false && setAgain == false)
            {
                //当前无法访问网络(当需要重新发送时,跳过这个判断)
                ShowNotNetMsg(listNotShowError);
                return "Error";
            }
            //获取接口的连接模式
            var connectMode = GetHttpConnectMode(checkAuthority);
            //获取从接口那里取到的比特数据
@@ -68,8 +80,7 @@
            {
                if (setAgain == false)
                {
                    //当前无法访问网络
                    ShowNotNetMsg(RequestName, listNotShowError);
                    //不指定重发
                    return "Error";
                }
                byteData = ResetByteRequestHttps(RequestName, checkAuthority, obj);
@@ -94,10 +105,16 @@
        /// <param name="checkAuthority">是否检测权限,该参数不能省略</param>
        /// <param name="obj">一个类</param>
        /// <param name="listNotShowError">不需要显示错误的错误类别(接口返回的错误类别),如果包含,则会返回【true】</param>
        /// <param name="setAgain">当发送失败时,是否重发,默认重发</param>
        /// <param name="setAgain">当发送失败时,是否重发,默认不重发</param>
        /// </param>
        public static string GetResponseDataByRequestHttps(string RequestName, bool checkAuthority, object obj, List<string> listNotShowError = null, bool setAgain = true)
        public static string GetResponseDataByRequestHttps(string RequestName, bool checkAuthority, object obj, List<string> listNotShowError = null, bool setAgain = false)
        {
            if (HdlWifiLogic.Current.CanAccessHttp == false && setAgain == false)
            {
                //当前无法访问网络(当需要重新发送时,跳过这个判断)
                ShowNotNetMsg(listNotShowError);
                return null;
            }
            //获取接口的连接模式
            var connectMode = GetHttpConnectMode(checkAuthority);
            //获取从接口那里取到的比特数据
@@ -106,8 +123,7 @@
            {
                if (setAgain == false)
                {
                    //当前无法访问网络
                    ShowNotNetMsg(RequestName, listNotShowError);
                    //不指定重发
                    return null;
                }
                byteData = ResetByteRequestHttps(RequestName, checkAuthority, obj);
@@ -138,9 +154,15 @@
        /// <param name="checkAuthority">是否检测权限,该参数不能省略</param>
        /// <param name="obj">一个类</param>
        /// <param name="listNotShowError">不需要显示错误的错误类别(接口返回的错误类别),如果包含,则会返回【true】</param>
        /// <param name="setAgain">当发送失败时,是否重发,默认重发</param>
        public static byte[] GetByteResponseDataByRequestHttps(string RequestName, bool checkAuthority, object obj, List<string> listNotShowError = null, bool setAgain = true)
        /// <param name="setAgain">当发送失败时,是否重发,默认不重发</param>
        public static byte[] GetByteResponseDataByRequestHttps(string RequestName, bool checkAuthority, object obj, List<string> listNotShowError = null, bool setAgain = false)
        {
            if (HdlWifiLogic.Current.CanAccessHttp == false && setAgain == false)
            {
                //当前无法访问网络(当需要重新发送时,跳过这个判断)
                ShowNotNetMsg(listNotShowError);
                return null;
            }
            //获取接口的连接模式
            var connectMode = GetHttpConnectMode(checkAuthority);
            //获取从接口那里取到的比特数据
@@ -150,8 +172,7 @@
            {
                if (setAgain == false)
                {
                    //当前无法访问网络
                    ShowNotNetMsg(RequestName, listNotShowError);
                    //不指定重发
                    return null;
                }
                revertObj = ResetByteRequestHttps(RequestName, checkAuthority, obj);
@@ -206,7 +227,7 @@
                if (count == 3)
                {
                    //显示没有网络的Msg
                    ShowNotNetMsg(RequestName, null);
                    ShowNotNetMsg(null);
                    break;
                }
            }
@@ -328,15 +349,13 @@
        /// <summary>
        /// æ˜¾ç¤ºæ²¡æœ‰ç½‘络的Msg
        /// </summary>
        private static void ShowNotNetMsg(string RequestName, List<string> listNotShowError)
        private static void ShowNotNetMsg(List<string> listNotShowError)
        {
            if (listNotShowError != null && listNotShowError.Contains("NotCheck") == true)
            {
                //不检测
                return;
            }
            //HdlLogLogic.Current.WriteLog(-1, "当前无网络连接:" + RequestName);
            HdlThreadLogic.Current.RunMain(() =>
            {
                // å½“前无网络连接,请确认网络
@@ -500,18 +519,13 @@
        #endregion
        #region â–  åˆ·æ–°æœ¬åœ°ç¼“å­˜_______________________
        /// <summary>
        /// åˆ·æ–°æœ¬åœ°æ‰€æœ‰ç¼“å­˜(目前此方法只提供给恢复备份数据使用)
        /// åˆ·æ–°æœ¬åœ°æ‰€æœ‰ç¼“å­˜
        /// </summary>
        public static void RefreshAllMemory()
        {
            //刷新住宅对象
            RefreshHomeObject();
            //根据模板文件,恢复数据
            TemplateData.TemplateCommonLogic.Current.RecoverDataByTemplateBinFile();
            //强制生成设备和网关文件
            TemplateData.TemplateCommonLogic.Current.CreatDeviceAndGatewayFileFromMemoryByForce();
            //刷新本地网关文件
            HdlGatewayLogic.Current.ReFreshByLocal();
            //刷新本地设备
@@ -523,7 +537,7 @@
            //断开远程Mqtt连接,重新连接
            HdlThreadLogic.Current.RunThread(async () =>
            {
                HdlGatewayLogic.Current.ClearAllRealGatewayConection(true);
                HdlGatewayLogic.Current.ClearAllRealGateway();
                await ZigBee.Device.ZbGateway.DisConnectRemoteMqttClient();
            }, ShowErrorMode.NO);
        }
@@ -604,7 +618,7 @@
                //清空当前住宅id
                Config.Instance.HomeId = string.Empty;
                HdlGatewayLogic.Current.ClearAllRealGatewayConection(false);
                HdlGatewayLogic.Current.ClearAllRealGateway();
                //断开远程Mqtt连接
                HdlThreadLogic.Current.RunThread(async () =>
@@ -660,8 +674,8 @@
                }
                else if (view is UserView.UserPage)
                {
                    //刷新主页
                    UserView.UserPage.Instance.ReFreshControl();
                    var form = ((UserView.UserPage)view).GetNowActionForm();
                    form?.FormActionAgainEvent();
                    return;
                }
                else
@@ -847,15 +861,12 @@
                //断开远程Mqtt连接,重新连接
                HdlThreadLogic.Current.RunThread(async () =>
                {
                    HdlGatewayLogic.Current.ClearAllRealGatewayConection(true);
                    HdlGatewayLogic.Current.ClearAllRealGateway();
                    await ZigBee.Device.ZbGateway.DisConnectRemoteMqttClient();
                }, ShowErrorMode.NO);
                //刷新APP前一次选择的网关ID(可以反复调用,需要在网关初始化完了之后才能调用)
                HdlGatewayLogic.Current.RefreshAppOldSelectGatewayId();
                //加载模板缓存
                //TemplateData.TemplateCommonLogic.Current.LoadLocalTemplateMemoryData();
                //0:已经同步过,不需要同步,这个时候需要提示备份
                if (result == 0 && ShowPrompted == true)
@@ -922,8 +933,6 @@
            HdlRoomLogic.Current.RefreshAllRoomByLocation();
            //刷新左边刷新房间视图列表
            HdlRoomLogic.Current.RefreshRoomListView();
            //加载模板缓存
            //TemplateData.TemplateCommonLogic.Current.LoadLocalTemplateMemoryData();
        }
        /// <summary>
ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Resourse/DirectoryFileNameResourse.cs
@@ -151,48 +151,6 @@
            get { return System.IO.Path.Combine(Common.Config.Instance.FullPath, "020945dd7966a7550090d3c04a04d93cd2278eb4e6aebcf6"); }
        }
        /// <summary>
        /// æœ¬åœ°æ¨¡æ¿ç¼“存存放的【文件夹】
        /// </summary>
        public static string LocalTemplateDirectory
        {
            get { return System.IO.Path.Combine(LocalMemoryDirectory, "1180648b252f370b18565d54115f2bece19fcc9985dd1f70"); }
        }
        /// <summary>
        /// æ‰€æœ‰ä½å®…的模板缓存存放的【文件夹】
        /// </summary>
        public static string AllResidenceTemplateDirectory
        {
            get { return System.IO.Path.Combine(IO.FileUtils.RootPath, Common.Config.Instance.Guid, "f8e712a42227d8f6a8208b076c7e132fe9869f7f0aff3d37"); }
        }
        /// <summary>
        /// ä¿å­˜è®¾å¤‡é€‰æ‹©çš„æ¨¡æ¿çš„【文件】
        /// </summary>
        public static string DeviceTemplateSelectFile
        {
            get { return System.IO.Path.Combine(LocalMemoryDirectory, "76d54eaedfd2124c4629cf8c4b8ae60f423c10556dfe50cb9de193a83c5653ef"); }
        }
        /// <summary>
        /// ä¿å­˜ç½‘关选择的模板的【文件】
        /// </summary>
        public static string GatewayTemplateSelectFile
        {
            get { return System.IO.Path.Combine(LocalMemoryDirectory, "fdac0d1dd857d946a524feb8ae4e69ecb048333261cb41f5fcc9932b35b09c2f"); }
        }
        /// <summary>
        /// ä¸´æ—¶ä¿å­˜å½“前本地全部文件的【文件夹】
        /// </summary>
        public static string TemporaryBackupLocalFileDirectory
        {
            get { return System.IO.Path.Combine(Common.Config.Instance.FullPath, "eaa527389defe69899beb6df9a83228b281b4e57a63a654de1ad6d01ab956907"); }
        }
        /// <summary>
        /// ä¸´æ—¶ä¿å­˜æœ¬åœ°å½“前全部模板文件的【文件夹】
        /// </summary>
        public static string TemporaryBackupTemplateFileDirectory
        {
            get { return System.IO.Path.Combine(TemporaryBackupLocalFileDirectory, "f8e712a42227d8f6df0aa223fe0a1eda"); }
        }
        /// <summary>
        /// ä¿å­˜æ„è§åé¦ˆæ¬¡æ•°çš„【文件】
        /// </summary>
        public static string SuggestionFile
@@ -207,6 +165,13 @@
            get { return System.IO.Path.Combine(Shared.IO.FileUtils.RootPath, "cad1afb384fb482de753fc37ebe84f9e"); }
        }
        /// <summary>
        /// è°ƒè¯•极光发送ID的【文件】
        /// </summary>
        public static string JiguangFile
        {
            get { return System.IO.Path.Combine(Shared.IO.FileUtils.RootPath, "e509ddd21100cb994f509fb28c2e4dd6"); }
        }
        /// <summary>
        /// è®°å½•发送和接收的数据Log
        /// </summary>
        public static string SendAndReceveDataLog
@@ -219,34 +184,6 @@
        public static string SocketReceiveDataLog
        {
            get { return System.IO.Path.Combine(Common.Config.Instance.FullPath, LocalMemoryDirectory, "SocketReceiveDataLog.log"); }
        }
        /// <summary>
        /// å­˜æ”¾å‡çº§å›ºä»¶çš„【文件夹】
        /// </summary>
        public static string FirmwareUpdateDirectory
        {
            get { return System.IO.Path.Combine(Shared.IO.FileUtils.RootPath, "5b78084db39091e2f9144bc6209e3001e0328e968d16adbc"); }
        }
        /// <summary>
        /// å­˜æ”¾å‡çº§å›ºä»¶åˆ—表名字的【文件】
        /// </summary>
        public static string FirmwareUpdateList
        {
            get { return System.IO.Path.Combine(FirmwareUpdateDirectory, "5b78084db39091e2ee87891aa45d2c1ffc005ce4b9d67f51"); }
        }
        /// <summary>
        /// è°ƒè¯•极光发送ID的【文件】
        /// </summary>
        public static string JiguangFile
        {
            get { return System.IO.Path.Combine(Shared.IO.FileUtils.RootPath, "e509ddd21100cb994f509fb28c2e4dd6"); }
        }
        /// <summary>
        /// å­˜æ”¾ç”Ÿæˆå‘送给网关的各种模板数据的【文件夹】
        /// </summary>
        public static string CreatSendToGwTemplateDirectory
        {
            get { return System.IO.Path.Combine(Common.Config.Instance.FullPath, "96048b35f1d3d43725b1b2d7240878f804c003969e26330cd5afe42f509b63c7"); }
        }
        /// <summary>
        /// åˆ†äº«æ¥¼å±‚的【文件名】
ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Resourse/UserCenterResourse.cs
@@ -47,13 +47,5 @@
        /// æ–‡ä»¶åŠ å¯†ç§˜é’¥
        /// </summary>
        public const string FileEncryptKey = "4^Olh_3f";
        /// <summary>
        /// å•斜杠的转义字符
        /// </summary>
        public const string slash = "\\";
        /// <summary>
        /// åŒå¼•号的转义字符
        /// </summary>
        public const string douMarks = "\"";
    }
}
ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/MutilfunctionPanelMethod.cs
old mode 100755 new mode 100644
@@ -173,6 +173,66 @@
        }
        /// <summary>
        /// è°ƒå…‰ç¯å’Œç»§ç”µå™¨ç‰¹æ®Šå¤„理方法
        /// <param name="curBindType">当前类型 0:场景  1:开关  2:插座  3:灯光  4:遮阳 5:空调 6:新风</param>
        /// </summary>
        /// <returns></returns>
        public static void UpdateLightCount(int curBindType)
        {
            if (curBindType == 1 || curBindType == 2 || curBindType == 3)
            {
                curSwitchCount = 0;
                curSocketCount = 0;
                curLightFromRelayCount = 0;
                curLightCount = 0;
                foreach (var key in bindTargetsFromMutilfunctionPanelList.Keys)
                {
                    var bList = bindTargetsFromMutilfunctionPanelList[key];
                    foreach (var bDev in bList)
                    {
                        var device = LocalDevice.Current.GetDevice(bDev.BindMacAddr, bDev.BindEpoint);
                        if (device == null)
                        {
                            continue;
                        }
                        if (bDev.KeyEpoint >= 52 && bDev.KeyEpoint <= 61)
                        {
                            if (device != null)
                            {
                                if (device.DfunctionType == DeviceFunctionType.A开关)
                                {
                                    curSwitchCount++;
                                }
                                else if (device.DfunctionType == DeviceFunctionType.A插座)
                                {
                                    curSocketCount++;
                                }
                                else if (device.DfunctionType == DeviceFunctionType.A灯光)
                                {
                                    curLightFromRelayCount++;
                                }
                            }
                        }
                        if (bDev.KeyEpoint >= 22 && bDev.KeyEpoint <= 28)
                        {
                            if (device != null)
                            {
                                if (device.Type == DeviceType.DimmableLight && bDev.BindCluster == 8)
                                {
                                    curLightCount++;
                                }
                            }
                        }
                    }
                }
            }
        }
        /// <summary>
        /// æ”¯æŒåŒ¹é…çš„端点个数
        /// <param name="curBindType">当前类型 0:场景  1:开关  2:插座  3:灯光  4:遮阳 5:空调 6:新风</param>
        /// </summary>
ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceListMainForm.cs
@@ -269,8 +269,7 @@
            btnRight.ButtonClickEvent += (sender, e) =>
            {
                //回路数大于1才展开
                var listMacDevice = LocalDevice.Current.GetDevicesByMac(deviceMac, false);
                if (listMacDevice.Count > 1)
                if (Common.LocalDevice.Current.GetDevicesCountByMac(deviceMac) > 1)
                {
                    btnRight.IsSelected = !btnRight.IsSelected;
                    //展开或者折叠明细列表
@@ -278,20 +277,9 @@
                }
                else
                {
                    if (LocalDevice.Current.IsMiniLight(listMacDevice[0]) == true)
                    {
                        //mini夜灯的功能设置界面
                        var room = HdlRoomLogic.Current.GetRoomByDevice(listMacDevice[0]);
                        var form = new MainPage.DeviceDetailInfoForm();
                        form.AddForm(listMacDevice[0], room);
                    }
                    else
                    {
                        //设备信息界面
                        var form = new DeviceMacInfoEditorForm();
                        form.AddForm(deviceMac);
                    }
                    btnNew.Visible = false;
                    var form = new DeviceMacInfoEditorForm();
                    form.AddForm(deviceMac);
                    //界面跳转,记录当前的正在操作的设备的Mac地址
                    this.nowActionDeviceMac = deviceMac;
                }
@@ -308,22 +296,9 @@
                    form2.AddForm(deviceMac);
                    return;
                }
                var listMacDevice = LocalDevice.Current.GetDevicesByMac(deviceMac, false);
                if (LocalDevice.Current.IsMiniLight(listMacDevice[0]) == true)
                {
                    //mini夜灯的功能设置界面
                    var room = HdlRoomLogic.Current.GetRoomByDevice(listMacDevice[0]);
                    var form = new MainPage.DeviceDetailInfoForm();
                    form.AddForm(listMacDevice[0], room);
                }
                else
                {
                    //设备信息界面
                    var form = new DeviceMacInfoEditorForm();
                    form.AddForm(deviceMac);
                }
                btnNew.Visible = false;
                var form = new DeviceMacInfoEditorForm();
                form.AddForm(deviceMac);
                //界面跳转,记录当前的正在操作的设备的Mac地址
                this.nowActionDeviceMac = deviceMac;
            };
@@ -699,7 +674,7 @@
        /// <summary>
        /// æ»‘动控件下拉刷新
        /// </summary>
        private void ListViewBeginHeaderRefreshing()
        private async void ListViewBeginHeaderRefreshing()
        {
            //如果当前住宅是虚拟的
            if (Common.Config.Instance.Home.IsVirtually == true)
@@ -726,7 +701,7 @@
                    {
                        //显示进度条
                        ProgressBar.Show();
                        int result2 = HdlGatewayLogic.Current.ReBindNewGateway(realWay);
                        int result2 = await HdlGatewayLogic.Current.ReBindNewGateway(realWay);
                        //关闭进度条
                        ProgressBar.Close();
                        if (result2 == -1)
ZigbeeApp/Shared/Phone/UserCenter/Device/Direction/PanelFourButtonDirectionForm.cs
@@ -49,11 +49,15 @@
            btnGreanLinght.TextID = R.MyInternationalizationString.uPanelBackLightLighting;
            framePic.AddChidren(btnGreanLinght);
            //长按此按键
            string textMsg = Language.StringByID(R.MyInternationalizationString.uLongPressThisButton);
            //任意按键长按5秒
            string textMsg = Language.StringByID(R.MyInternationalizationString.uLongClickEachPanelSomeSecond);
            if (textMsg.Contains("{0}") == true)
            {
                textMsg = string.Format(textMsg, "5");
            }
            var btnSecond = new NormalViewControl(this.GetPictrueRealSize(400), this.GetPictrueRealSize(45), false);
            btnSecond.X = this.GetPictrueRealSize(441);
            btnSecond.Y = this.GetPictrueRealSize(526);
            btnSecond.Y = this.GetPictrueRealSize(583);
            btnSecond.TextColor = UserCenterColor.Current.TextGrayColor3;
            btnSecond.TextSize = 10;
            btnSecond.Text = textMsg;
ZigbeeApp/Shared/Phone/UserCenter/Device/Direction/PanelThreeButtonDirectionForm.cs
@@ -49,11 +49,15 @@
            btnGreanLinght.TextID = R.MyInternationalizationString.uPanelBackLightLighting;
            framePic.AddChidren(btnGreanLinght);
            //长按此按键
            string textMsg = Language.StringByID(R.MyInternationalizationString.uLongPressThisButton);
            //任意按键长按5秒
            string textMsg = Language.StringByID(R.MyInternationalizationString.uLongClickEachPanelSomeSecond);
            if (textMsg.Contains("{0}") == true)
            {
                textMsg = string.Format(textMsg, "5");
            }
            var btnSecond = new NormalViewControl(this.GetPictrueRealSize(400), this.GetPictrueRealSize(45), false);
            btnSecond.X = this.GetPictrueRealSize(441);
            btnSecond.Y = this.GetPictrueRealSize(526);
            btnSecond.Y = this.GetPictrueRealSize(583);
            btnSecond.TextColor = UserCenterColor.Current.TextGrayColor3;
            btnSecond.TextSize = 10;
            btnSecond.Text = textMsg;
ZigbeeApp/Shared/Phone/UserCenter/Device/Direction/PanelTwoButtonDirectionForm.cs
@@ -49,11 +49,15 @@
            btnGreanLinght.TextID = R.MyInternationalizationString.uPanelBackLightLighting;
            framePic.AddChidren(btnGreanLinght);
            //长按此按键
            string textMsg = Language.StringByID(R.MyInternationalizationString.uLongPressThisButton);
            //任意按键长按5秒
            string textMsg = Language.StringByID(R.MyInternationalizationString.uLongClickEachPanelSomeSecond);
            if (textMsg.Contains("{0}") == true)
            {
                textMsg = string.Format(textMsg, "5");
            }
            var btnSecond = new NormalViewControl(this.GetPictrueRealSize(400), this.GetPictrueRealSize(45), false);
            btnSecond.X = this.GetPictrueRealSize(441);
            btnSecond.Y = this.GetPictrueRealSize(526);
            btnSecond.Y = this.GetPictrueRealSize(583);
            btnSecond.TextColor = UserCenterColor.Current.TextGrayColor3;
            btnSecond.TextSize = 10;
            btnSecond.Text = textMsg;
ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelColorSelectForm.cs
@@ -32,14 +32,6 @@
        /// åœ†ç›˜é€‰æ‹©çš„颜色显示控件(内框)
        /// </summary>
        private IconViewControl wheelSelectIcon2 = null;
        /// <summary>
        /// æ˜¯å¦æ˜¯é¢œè‰²é€‰æ‹©
        /// </summary>
        private bool isColorSelect = false;
        /// <summary>
        /// é¢œè‰²å€¼è¾“入控件
        /// </summary>
        private TextInputControl txtColorInput = null;
        #endregion
@@ -51,7 +43,7 @@
        /// <param name="i_R">R</param>
        /// <param name="i_G">G</param>
        /// <param name="i_B">B</param>
        public void ShowForm(int i_R, int i_G, int i_B)
        public void ShowForm(int i_R,int i_G,int i_B)
        {
            this.ScrollEnabled = false;
@@ -105,15 +97,17 @@
        /// </summary>
        private void InitColorPictrueControl()
        {
            //初始化颜色输入控件
            this.txtColorInput = this.InitColorInputControl();
            //圆盘控件的FrameLayout
            var frameBack = new FrameLayout();
            frameBack.Y = Application.GetRealHeight(66);
            frameBack.Height = Application.GetRealHeight(1204);
            bodyFrameLayout.AddChidren(frameBack);
            var framePic = new FrameLayout();
            framePic.Width = this.GetPictrueRealSize(588);
            framePic.Height = this.GetPictrueRealSize(588);
            framePic.Gravity = Gravity.CenterHorizontal;
            framePic.Y = Application.GetRealHeight(192);
            bodyFrameLayout.AddChidren(framePic);
            framePic.Gravity = Gravity.Center;
            frameBack.AddChidren(framePic);
            //圆盘控件
            var colorPic = new ColorPicker();
@@ -143,11 +137,14 @@
                listRGB.Add(Convert.ToInt32(Convert.ToString(eColor[2])));
                //显示选择颜色的控件
                this.ShowNowSelectColorControl(eColor);
                //获取颜色的翻译文本
                isColorSelect = true;
                this.txtColorInput.Text = this.GetColorTextTranslate(listRGB[0], listRGB[1], listRGB[2]);
                if (nowSelectIcon1 != null)
                {
                    nowSelectIcon1.BorderColor = UserCenterColor.Current.White;
                }
                wheelSelectIcon2.BackgroundColor = this.GetColorByRGB(eColor[0], eColor[1], eColor[2]);
                wheelSelectIcon1.BorderColor = 0xffcccccc;
                wheelSelectIcon1.Name = listRGB[0] + "-" + listRGB[1] + "-" + listRGB[2];
                nowSelectIcon1 = wheelSelectIcon1;
            };
            colorPic.MouseDownEventHandler += (sender, e) =>
            {
@@ -170,99 +167,6 @@
                //当鼠标点下事件处理
                colorPic.MouseDownEventHandler(sender, e);
            };
            //手动输入值改变事件
            this.txtColorInput.TextChangeEventHandler += (sender, value) =>
            {
                if (isColorSelect == true)
                {
                    //这里是由点击色盘进行赋值触发
                    isColorSelect = false;
                    return;
                }
                //检测输入的颜色值
                var byteColor = this.CheckInputColorValue(value);
                if (byteColor == null)
                {
                    return;
                }
                if (btnWhiteView.Visible == true)
                {
                    //白点隐藏
                    btnWhiteView.Visible = false;
                }
                //记录缓存
                listRGB = new List<int>();
                listRGB.Add(Convert.ToInt32(Convert.ToString(byteColor[0])));
                listRGB.Add(Convert.ToInt32(Convert.ToString(byteColor[1])));
                listRGB.Add(Convert.ToInt32(Convert.ToString(byteColor[2])));
                //显示选择颜色的控件
                this.ShowNowSelectColorControl(byteColor);
            };
        }
        /// <summary>
        /// åˆå§‹åŒ–颜色输入控件
        /// </summary>
        /// <returns></returns>
        private TextInputControl InitColorInputControl()
        {
            //自定义色值的外框
            var frameInput = new NormalFrameLayout();
            frameInput.Width = Application.GetRealWidth(458);
            frameInput.Height = Application.GetRealHeight(104);
            frameInput.Y = Application.GetRealHeight(1103);
            frameInput.Gravity = Gravity.CenterHorizontal;
            frameInput.BorderColor = 0xffcccccc;
            frameInput.Radius = (uint)Application.GetRealWidth(17);
            frameInput.BorderWidth = Application.GetRealWidth(3) == 0 ? 1 : (uint)Application.GetRealWidth(3);
            bodyFrameLayout.AddChidren(frameInput);
            var btnMark = new NormalViewControl(100, 58, true);
            btnMark.X = Application.GetRealWidth(35);
            btnMark.Gravity = Gravity.CenterVertical;
            btnMark.IsBold = true;
            btnMark.Text = "# ";
            btnMark.Width = btnMark.GetRealWidthByText();
            btnMark.TextColor = UserCenterColor.Current.TextGrayColor2;
            frameInput.AddChidren(btnMark);
            //自定义色值输入框
            var txtInput = new TextInputControl(400, 58, true);
            txtInput.X = btnMark.Right;
            txtInput.Gravity = Gravity.CenterVertical;
            txtInput.TextSize = 16;
            txtInput.FrameBorder = frameInput;
            frameInput.AddChidren(txtInput);
            //色值号为6位(由任意数字+字母组合)
            var btnTipView = new NormalViewControl(bodyFrameLayout.Width, Application.GetRealHeight(55), false);
            btnTipView.Y = frameInput.Bottom + Application.GetRealHeight(20);
            btnTipView.IsBold = true;
            btnTipView.TextAlignment = TextAlignment.Center;
            btnTipView.TextColor = UserCenterColor.Current.TextGrayColor2;
            btnTipView.TextSize = 12;
            btnTipView.TextID = R.MyInternationalizationString.uColorLengthMsg;
            bodyFrameLayout.AddChidren(btnTipView);
            return txtInput;
        }
        /// <summary>
        /// æ˜¾ç¤ºé€‰æ‹©é¢œè‰²çš„æŽ§ä»¶
        /// </summary>
        /// <param name="eColor"></param>
        private void ShowNowSelectColorControl(byte[] eColor)
        {
            //显示选择颜色的控件
            if (nowSelectIcon1 != null)
            {
                nowSelectIcon1.BorderColor = UserCenterColor.Current.White;
            }
            var uintColor = this.GetColorByRGB(eColor[0], eColor[1], eColor[2]);
            wheelSelectIcon2.BackgroundColor = uintColor;
            wheelSelectIcon1.BorderColor = 0xffcccccc;
            wheelSelectIcon1.Name = listRGB[0] + "-" + listRGB[1] + "-" + listRGB[2];
            nowSelectIcon1 = wheelSelectIcon1;
        }
        #endregion
@@ -290,7 +194,7 @@
                btnFrame.Width = this.GetPictrueRealSize(80);
                btnFrame.Radius = (uint)this.GetPictrueRealSize(80) / 2;
                btnFrame.X = Xdefult + i * this.GetPictrueRealSize(80 + 24);
                btnFrame.Y = Application.GetRealHeight(880);
                btnFrame.Y = Application.GetRealHeight(1054);
                btnFrame.BackgroundColor = UserCenterColor.Current.White;
                btnFrame.BorderWidth = 1;
                btnFrame.BorderColor = UserCenterColor.Current.White;
@@ -317,10 +221,6 @@
                    wheelSelectIcon1 = btnFrame;
                    wheelSelectIcon2 = btnIcon;
                    nowSelectIcon1 = btnFrame;
                    //获取颜色的翻译文本
                    isColorSelect = true;
                    this.txtColorInput.Text = this.GetColorTextTranslate(i_R, i_G, i_B);
                }
                btnFrame.ButtonClickEvent += (sender, e) =>
@@ -341,9 +241,6 @@
                        listRGB.Add(Convert.ToInt32(Convert.ToString(Arry[1])));
                        listRGB.Add(Convert.ToInt32(Convert.ToString(Arry[2])));
                    }
                    //获取颜色的翻译文本
                    isColorSelect = true;
                    this.txtColorInput.Text = this.GetColorTextTranslate(listRGB[0], listRGB[1], listRGB[2]);
                };
            }
        }
@@ -396,51 +293,6 @@
            list.Add(new List<int>() { 255, 117, 67 });
            return list;
        }
        /// <summary>
        /// æ£€æµ‹è¾“入的颜色值
        /// </summary>
        /// <param name="colorText"></param>
        /// <returns></returns>
        private byte[] CheckInputColorValue(string colorText)
        {
            //只有长度为6才处理
            if (colorText.Length != 6) { return null; }
            colorText = colorText.ToUpper();
            foreach (var c in colorText)
            {
                if (char.IsNumber(c) == true)
                {
                    //数字的话,OK
                    continue;
                }
                if ('A' <= c && c <= 'F')
                {
                    //A-F的话,OK
                    continue;
                }
                return null;
            }
            int R = Convert.ToInt32(colorText.Substring(0, 2), 16);
            int G = Convert.ToInt32(colorText.Substring(2, 2), 16);
            int B = Convert.ToInt32(colorText.Substring(4, 2), 16);
            return new byte[] { (byte)R, (byte)G, (byte)B };
        }
        /// <summary>
        /// èŽ·å–é¢œè‰²çš„ç¿»è¯‘æ–‡æœ¬
        /// </summary>
        /// <param name="i_R"></param>
        /// <param name="i_G"></param>
        /// <param name="i_B"></param>
        /// <returns></returns>
        private string GetColorTextTranslate(int i_R, int i_G, int i_B)
        {
            return Convert.ToString(i_R, 16).ToUpper().PadLeft(2, '0')
                + Convert.ToString(i_G, 16).ToUpper().PadLeft(2, '0')
                + Convert.ToString(i_B, 16).ToUpper().PadLeft(2, '0');
        }
        /// <summary>
ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelSimpleMutilfunctionAddTargetsForm.cs
old mode 100755 new mode 100644
@@ -634,6 +634,7 @@
                                }
                            }
                        }
                        if (!btnChoose.IsSelected)
                        {
                            targetList.Remove(device);
@@ -838,13 +839,14 @@
                EventHandler<MouseEventArgs> hander = (sender, e) =>
                {
                    if (curSupportBindEpointList.Count == 0 || curSupportBindEpointList.Count == targetScList.Count)
                    btnChoose.IsSelected = !btnChoose.IsSelected;
                    if (curSupportBindEpointList.Count == 0)
                    {
                        new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.BindFull), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance);
                        return;
                    }
                    btnChoose.IsSelected = !btnChoose.IsSelected;
                    if (!btnChoose.IsSelected)
                    {
                        targetScList.Remove(scene);
@@ -901,6 +903,7 @@
                    //获取房间列表
                    supportRoomList = BindInfo.GetSupportRoomList();
                    //获取面板已经绑定的匹配类型的列表
                    curBindTypeList = MutilfunctionPanelMethod.GetMatchBindList(curBindType);
ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelSimpleMutilfunctionTargetsForm.cs
old mode 100755 new mode 100644
@@ -375,6 +375,24 @@
        {
            midVerticalScrolViewLayout.RemoveAll();
            curBindTypeList = MutilfunctionPanelMethod.GetMatchBindList(curBindType);
            //注意!同个按键端点如果支持绑定多种功能类型,需要注意如下处理
            //当更换设备功能类型后
            // ç»‘定的开关、插座、灯光所用的按键回路互相关联,所以这里重新获取将这三种类型的其他2种,为了获取正确的开关、插座、灯光绑定的个数
            switch (curBindType)
            {
                case 1:
                    MutilfunctionPanelMethod.GetMatchBindList(2);
                    MutilfunctionPanelMethod.GetMatchBindList(3);
                    break;
                case 2:
                    MutilfunctionPanelMethod.GetMatchBindList(1);
                    MutilfunctionPanelMethod.GetMatchBindList(3);
                    break;
                case 3:
                    MutilfunctionPanelMethod.GetMatchBindList(1);
                    MutilfunctionPanelMethod.GetMatchBindList(2);
                    break;
            }
            int curIndex = 0;
            for (int i = 0; i < curBindTypeList.Count; i++)
            {
ZigbeeApp/Shared/Phone/UserCenter/Gateway/Add/MiniGatewaySearchForm.cs
@@ -239,7 +239,7 @@
            HdlThreadLogic.Current.RunThread(() =>
            {
                //清空全部列表
                HdlGatewayLogic.Current.ClearAllRealGatewayConection(true);
                HdlGatewayLogic.Current.ClearAllRealGateway();
                ZigBee.Common.Application.IsSearchingGateway = true;
                int index = 1;
@@ -253,7 +253,7 @@
                    if (timeCount == 10)
                    {
                        //5秒后清空网关列表
                        HdlGatewayLogic.Current.ClearAllRealGatewayConection(true);
                        HdlGatewayLogic.Current.ClearAllRealGateway();
                        ZigBee.Common.Application.IsSearchingGateway = true;
                    }
                    if (timeCount % 2 == 0)
@@ -316,7 +316,7 @@
        private void StartCheckGatewayThread()
        {
            this.isGatewaySearching = true;
            HdlThreadLogic.Current.RunThread(() =>
            HdlThreadLogic.Current.RunThread(async () =>
            {
                int count = 0;
                while (this.Parent != null && this.isGatewaySearching == true)
@@ -331,7 +331,7 @@
                    }
                    count = 0;
                    this.CheckZbGatewayAndSetRow();
                    await this.CheckZbGatewayAndSetRow();
                    if (this.newGatewayGetting == true)
                    {
@@ -345,7 +345,7 @@
        /// <summary>
        /// æ£€æµ‹æœç´¢åˆ°çš„网关
        /// </summary>
        private bool CheckZbGatewayAndSetRow()
        private async Task<bool> CheckZbGatewayAndSetRow()
        {
            for (int i = 0; i < ZbGateway.GateWayList.Count; i++)
            {
@@ -383,7 +383,7 @@
                if (mode == GatewayBindMode.First || mode == GatewayBindMode.Binded)
                {
                    //添加搜索到的网关到缓存(执行网关保存操作)
                    var result = HdlGatewayLogic.Current.AddNewGateway(way, ShowErrorMode.NO);
                    var result = await HdlGatewayLogic.Current.AddNewGateway(way, ShowErrorMode.NO);
                    if (result == false)
                    {
                        continue;
ZigbeeApp/Shared/Phone/UserCenter/Gateway/Add/MiniGatewaySelectNetworkForm.cs
@@ -54,35 +54,25 @@
            rowWifi.InitControl();
            rowWifi.AddBottomLine();
            rowWifi.txtInput.PlaceholderText = Language.StringByID(R.MyInternationalizationString.uPleaseInputHomeWifiAccount);
            //下拉图标是偏右的
            rowWifi.RightOffset = -Application.GetRealWidth(18);
            var btnDrop = rowWifi.AddMostRightEmptyIcon(58, 58);
            btnDrop.UnSelectedImagePath = "Item/Down.png";
            rowWifi.ChangedChidrenBindMode(btnDrop, ChidrenBindMode.NotBind);
            btnDrop.ButtonClickEvent += (sender, e) =>
            {
                //显示Wifi下拉列表
                this.ShowWifiListView(rowWifi);
            };
            //密码
            var rowPsw = new FrameCaptionInputControl(Language.StringByID(R.MyInternationalizationString.uPassword), string.Empty);
            rowPsw.Y = rowWifi.Bottom + Application.GetRealHeight(9);
            frameBack.AddChidren(rowPsw);
            rowPsw.InitControl();
            rowPsw.txtInput.SecureTextEntry = true;
            rowPsw.txtInput.PlaceholderText = Language.StringByID(R.MyInternationalizationString.uPleaseInputWifiPassword);
            var btnView = rowPsw.AddMostRightEmptyIcon(81, 81);
            var btnPsw = new FrameCaptionInputControl(Language.StringByID(R.MyInternationalizationString.uPassword), string.Empty);
            btnPsw.Y = rowWifi.Bottom + Application.GetRealHeight(9);
            frameBack.AddChidren(btnPsw);
            btnPsw.InitControl();
            btnPsw.txtInput.SecureTextEntry = true;
            btnPsw.txtInput.PlaceholderText = Language.StringByID(R.MyInternationalizationString.uPleaseInputWifiPassword);
            var btnView = btnPsw.AddMostRightEmptyIcon(81, 81);
            btnView.UnSelectedImagePath = "Item/HidenPWD.png";
            btnView.SelectedImagePath = "Item/UnHidenPWD.png";
            rowPsw.ChangedChidrenBindMode(btnView, ChidrenBindMode.NotBind);
            btnPsw.ChangedChidrenBindMode(btnView, ChidrenBindMode.NotBind);
            btnView.ButtonClickEvent += (sender, e) =>
            {
                btnView.IsSelected = !btnView.IsSelected;
                rowPsw.txtInput.SecureTextEntry = !rowPsw.txtInput.SecureTextEntry;
                btnPsw.txtInput.SecureTextEntry = !btnPsw.txtInput.SecureTextEntry;
            };
            var btnMsg = new NormalViewControl(rowPsw.txtInput.Width, false);
            var btnMsg = new NormalViewControl(btnPsw.txtInput.Width, false);
            btnMsg.X = ControlCommonResourse.XXLeft;
            btnMsg.Y = frameBack.Bottom + Application.GetRealHeight(23);
            btnMsg.TextSize = 12;
@@ -112,14 +102,14 @@
                    btnMsg.Text = Language.StringByID(R.MyInternationalizationString.uPleaseInputHomeWifiAccount);
                    return;
                }
                if (rowPsw.Text == string.Empty)
                if (btnPsw.Text == string.Empty)
                {
                    //请输入Wifi密码
                    btnMsg.Text = Language.StringByID(R.MyInternationalizationString.uPleaseInputWifiPassword);
                    return;
                }
                //发送密码
                var result = HdlWifiLogic.Current.SendApHomeWifiPassword(rowWifi.Text, rowPsw.Text);
                var result = HdlWifiLogic.Current.SendApHomeWifiPassword(rowWifi.Text, btnPsw.Text);
                if (result == false)
                {
                    //密码发送失败
@@ -133,60 +123,6 @@
            };
        }
        #endregion
        #region â–  æ˜¾ç¤ºWifi下拉列表___________________
        /// <summary>
        /// æ˜¾ç¤ºWifi下拉列表
        /// </summary>
        /// <param name="rowWifi"></param>
        private void ShowWifiListView(FrameCaptionInputControl rowWifi)
        {
            //一个可以遮住Body的东西
            var frameTran = new NormalFrameLayout();
            frameTran.Height = bodyFrameLayout.Height;
            frameTran.BackgroundColor = UserCenterColor.Current.DialogBackColor;
            bodyFrameLayout.AddChidren(frameTran);
            frameTran.ButtonClickEvent += (sender, e) =>
            {
                frameTran.RemoveFromParent();
            };
            //白色背景框
            var frameList = new NormalFrameLayout();
            frameList.Y = rowWifi.Bottom;
            frameList.Gravity = Gravity.CenterHorizontal;
            frameList.Width = frameTran.Width - ControlCommonResourse.XXLeft * 2;
            frameList.Height = this.GetPictrueRealSize(1200);
            frameList.Radius = (uint)Application.GetRealWidth(17);
            frameList.BackgroundColor = UserCenterColor.Current.White;
            frameTran.AddChidren(frameList);
            //列表控件
            var listView = new VerticalListControl();
            listView.Height = frameList.Height;
            frameList.AddChidren(listView);
            for (int i = 1; i <= 10; i++)
            {
                var frameRow = new FrameRowControl();
                listView.AddChidren(frameRow);
                //wifi名字
                var btnWifi = new NormalViewControl(frameRow.Width, frameRow.Height - ControlCommonResourse.BottomLineHeight, false);
                btnWifi.X = ControlCommonResourse.XXLeft;
                btnWifi.Text = "Application Software" + i;
                frameRow.AddChidren(btnWifi, ChidrenBindMode.BindEvent);
                //底线
                var btnLine = new NormalViewControl(frameRow.Width, ControlCommonResourse.BottomLineHeight, false);
                btnLine.BackgroundColor = UserCenterColor.Current.ButtomLine;
                btnLine.Y = btnWifi.Bottom;
                frameRow.AddChidren(btnLine, ChidrenBindMode.BindEvent);
                frameRow.ButtonClickEvent += (sender, e) =>
                {
                    rowWifi.Text = btnWifi.Text;
                    frameTran.RemoveFromParent();
                };
            }
        }
        #endregion
        #region â–  ç•Œé¢å…³é—­___________________________
ZigbeeApp/Shared/Phone/UserCenter/Gateway/Add/WiredGatewaySearchForm.cs
@@ -292,10 +292,10 @@
        private void StartCheckGatewayThread()
        {
            this.isGatewaySearching = true;
            HdlThreadLogic.Current.RunThread(() =>
            HdlThreadLogic.Current.RunThread(async () =>
            {
                //清空全部列表
                HdlGatewayLogic.Current.ClearAllRealGatewayConection(true);
                HdlGatewayLogic.Current.ClearAllRealGateway();
                ZigBee.Common.Application.IsSearchingGateway = true;
                int count = 0;
@@ -311,7 +311,7 @@
                    }
                    count = 0;
                    this.CheckZbGatewayAndSetRow();
                    await this.CheckZbGatewayAndSetRow();
                    if (this.newGatewayGetting == true)
                    {
@@ -325,7 +325,7 @@
        /// <summary>
        /// æ£€æµ‹æœç´¢åˆ°çš„网关,然后添加到画面的行里面
        /// </summary>
        private bool CheckZbGatewayAndSetRow()
        private async Task<bool> CheckZbGatewayAndSetRow()
        {
            List<string> listId = new List<string>();
            for (int i = 0; i < ZbGateway.GateWayList.Count; i++)
@@ -389,7 +389,7 @@
                if (mode == GatewayBindMode.First || mode == GatewayBindMode.Binded)
                {
                    //添加搜索到的网关到缓存(执行网关保存操作)
                    var result = HdlGatewayLogic.Current.AddNewGateway(way, ShowErrorMode.NO);
                    var result = await HdlGatewayLogic.Current.AddNewGateway(way, ShowErrorMode.NO);
                    if (result == false)
                    {
                        continue;
ZigbeeApp/Shared/Phone/UserCenter/Gateway/Add/WirelessApSearchForm.cs
@@ -249,7 +249,7 @@
                    if (timeCount == 10)
                    {
                        //5秒后清空网关列表
                        HdlGatewayLogic.Current.ClearAllRealGatewayConection(true);
                        HdlGatewayLogic.Current.ClearAllRealGateway();
                        ZigBee.Common.Application.IsSearchingGateway = true;
                    }
                    if (timeCount % 2 == 0)
@@ -312,7 +312,7 @@
        private void StartCheckGatewayThread()
        {
            this.isGatewaySearching = true;
            HdlThreadLogic.Current.RunThread(() =>
            HdlThreadLogic.Current.RunThread(async () =>
            {
                int count = 0;
                while (this.Parent != null && this.isGatewaySearching == true)
@@ -327,7 +327,7 @@
                    }
                    count = 0;
                    this.CheckZbGatewayAndSetRow();
                    await this.CheckZbGatewayAndSetRow();
                    if (this.newGatewayGetting == true)
                    {
@@ -341,7 +341,7 @@
        /// <summary>
        /// æ£€æµ‹æœç´¢åˆ°çš„网关
        /// </summary>
        private bool CheckZbGatewayAndSetRow()
        private async Task<bool> CheckZbGatewayAndSetRow()
        {
            for (int i = 0; i < ZbGateway.GateWayList.Count; i++)
            {
@@ -379,7 +379,7 @@
                if (mode == GatewayBindMode.First || mode == GatewayBindMode.Binded)
                {
                    //添加搜索到的网关到缓存(执行网关保存操作)
                    var result = HdlGatewayLogic.Current.AddNewGateway(way, ShowErrorMode.NO);
                    var result = await HdlGatewayLogic.Current.AddNewGateway(way, ShowErrorMode.NO);
                    if (result == false)
                    {
                        continue;
ZigbeeApp/Shared/Phone/UserCenter/Gateway/Add/WirelessApSelectNetworkForm.cs
@@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
using System.Security.Cryptography;
using System.Text;
namespace Shared.Phone.UserCenter.GatewayAdd
@@ -51,35 +52,25 @@
            rowWifi.InitControl();
            rowWifi.AddBottomLine();
            rowWifi.txtInput.PlaceholderText = Language.StringByID(R.MyInternationalizationString.uPleaseInputHomeWifiAccount);
            //下拉图标是偏右的
            rowWifi.RightOffset = -Application.GetRealWidth(18);
            var btnDrop = rowWifi.AddMostRightEmptyIcon(58, 58);
            btnDrop.UnSelectedImagePath = "Item/Down.png";
            rowWifi.ChangedChidrenBindMode(btnDrop, ChidrenBindMode.NotBind);
            btnDrop.ButtonClickEvent += (sender, e) =>
            {
                //显示Wifi下拉列表
                this.ShowWifiListView(rowWifi);
            };
            //密码
            var rowPsw = new FrameCaptionInputControl(Language.StringByID(R.MyInternationalizationString.uPassword), string.Empty);
            rowPsw.Y = rowWifi.Bottom + Application.GetRealHeight(9);
            frameBack.AddChidren(rowPsw);
            rowPsw.InitControl();
            rowPsw.txtInput.SecureTextEntry = true;
            rowPsw.txtInput.PlaceholderText = Language.StringByID(R.MyInternationalizationString.uPleaseInputWifiPassword);
            var btnView = rowPsw.AddMostRightEmptyIcon(81, 81);
            var btnPsw = new FrameCaptionInputControl(Language.StringByID(R.MyInternationalizationString.uPassword), string.Empty);
            btnPsw.Y = rowWifi.Bottom + Application.GetRealHeight(9);
            frameBack.AddChidren(btnPsw);
            btnPsw.InitControl();
            btnPsw.txtInput.SecureTextEntry = true;
            btnPsw.txtInput.PlaceholderText = Language.StringByID(R.MyInternationalizationString.uPleaseInputWifiPassword);
            var btnView = btnPsw.AddMostRightEmptyIcon(81, 81);
            btnView.UnSelectedImagePath = "Item/HidenPWD.png";
            btnView.SelectedImagePath = "Item/UnHidenPWD.png";
            rowPsw.ChangedChidrenBindMode(btnView, ChidrenBindMode.NotBind);
            btnPsw.ChangedChidrenBindMode(btnView, ChidrenBindMode.NotBind);
            btnView.ButtonClickEvent += (sender, e) =>
            {
                btnView.IsSelected = !btnView.IsSelected;
                rowPsw.txtInput.SecureTextEntry = !rowPsw.txtInput.SecureTextEntry;
                btnPsw.txtInput.SecureTextEntry = !btnPsw.txtInput.SecureTextEntry;
            };
            var btnMsg = new NormalViewControl(rowPsw.txtInput.Width, false);
            var btnMsg = new NormalViewControl(btnPsw.txtInput.Width, false);
            btnMsg.X = ControlCommonResourse.XXLeft;
            btnMsg.Y = frameBack.Bottom + Application.GetRealHeight(23);
            btnMsg.TextSize = 12;
@@ -109,14 +100,14 @@
                    btnMsg.Text = Language.StringByID(R.MyInternationalizationString.uPleaseInputHomeWifiAccount);
                    return;
                }
                if (rowPsw.Text == string.Empty)
                if (btnPsw.Text == string.Empty)
                {
                    //请输入Wifi密码
                    btnMsg.Text = Language.StringByID(R.MyInternationalizationString.uPleaseInputWifiPassword);
                    return;
                }
                //发送密码
                var result = HdlWifiLogic.Current.SendApHomeWifiPassword(rowWifi.Text, rowPsw.Text);
                var result = HdlWifiLogic.Current.SendApHomeWifiPassword(rowWifi.Text, btnPsw.Text);
                if (result == false)
                {
                    //密码发送失败
@@ -124,66 +115,11 @@
                    return;
                }
                this.CloseForm();
                var form = new MiniGatewayDirection3Form();
                form.AddForm();
                var form = new WirelessApDirection3Form();
                this.AddFromAndRemoveNowForm(form);
            };
        }
        #endregion
        #region â–  æ˜¾ç¤ºWifi下拉列表___________________
        /// <summary>
        /// æ˜¾ç¤ºWifi下拉列表
        /// </summary>
        /// <param name="rowWifi"></param>
        private void ShowWifiListView(FrameCaptionInputControl rowWifi)
        {
            //一个可以遮住Body的东西
            var frameTran = new NormalFrameLayout();
            frameTran.Height = bodyFrameLayout.Height;
            frameTran.BackgroundColor = UserCenterColor.Current.DialogBackColor;
            bodyFrameLayout.AddChidren(frameTran);
            frameTran.ButtonClickEvent += (sender, e) =>
            {
                frameTran.RemoveFromParent();
            };
            //白色背景框
            var frameList = new NormalFrameLayout();
            frameList.Y = rowWifi.Bottom;
            frameList.Gravity = Gravity.CenterHorizontal;
            frameList.Width = frameTran.Width - ControlCommonResourse.XXLeft * 2;
            frameList.Height = this.GetPictrueRealSize(1200);
            frameList.Radius = (uint)Application.GetRealWidth(17);
            frameList.BackgroundColor = UserCenterColor.Current.White;
            frameTran.AddChidren(frameList);
            //列表控件
            var listView = new VerticalListControl();
            listView.Height = frameList.Height;
            frameList.AddChidren(listView);
            for (int i = 1; i <= 10; i++)
            {
                var frameRow = new FrameRowControl();
                listView.AddChidren(frameRow);
                //wifi名字
                var btnWifi = new NormalViewControl(frameRow.Width, frameRow.Height - ControlCommonResourse.BottomLineHeight, false);
                btnWifi.X = ControlCommonResourse.XXLeft;
                btnWifi.Text = "Application Software" + i;
                frameRow.AddChidren(btnWifi, ChidrenBindMode.BindEvent);
                //底线
                var btnLine = new NormalViewControl(frameRow.Width, ControlCommonResourse.BottomLineHeight, false);
                btnLine.BackgroundColor = UserCenterColor.Current.ButtomLine;
                btnLine.Y = btnWifi.Bottom;
                frameRow.AddChidren(btnLine, ChidrenBindMode.BindEvent);
                frameRow.ButtonClickEvent += (sender, e) =>
                {
                    rowWifi.Text = btnWifi.Text;
                    frameTran.RemoveFromParent();
                };
            }
        }
        #endregion
        #region â–  ç•Œé¢å…³é—­___________________________
ZigbeeApp/Shared/Phone/UserCenter/Gateway/Add/WirelessUdpSearchForm.cs
@@ -249,7 +249,7 @@
                    if (timeCount == 10)
                    {
                        //5秒后清空网关列表
                        HdlGatewayLogic.Current.ClearAllRealGatewayConection(true);
                        HdlGatewayLogic.Current.ClearAllRealGateway();
                        ZigBee.Common.Application.IsSearchingGateway = true;
                    }
                    if (timeCount % 2 == 0)
@@ -312,7 +312,7 @@
        private void StartCheckGatewayThread()
        {
            this.isGatewaySearching = true;
            HdlThreadLogic.Current.RunThread(() =>
            HdlThreadLogic.Current.RunThread(async () =>
            {
                int count = 0;
                while (this.Parent != null && this.isGatewaySearching == true)
@@ -327,7 +327,7 @@
                    }
                    count = 0;
                    this.CheckZbGatewayAndSetRow();
                    await this.CheckZbGatewayAndSetRow();
                    if (this.newGatewayGetting == true)
                    {
@@ -341,7 +341,7 @@
        /// <summary>
        /// æ£€æµ‹æœç´¢åˆ°çš„网关
        /// </summary>
        private bool CheckZbGatewayAndSetRow()
        private async Task<bool> CheckZbGatewayAndSetRow()
        {
            for (int i = 0; i < ZbGateway.GateWayList.Count; i++)
            {
@@ -379,7 +379,7 @@
                if (mode == GatewayBindMode.First || mode == GatewayBindMode.Binded)
                {
                    //添加搜索到的网关到缓存(执行网关保存操作)
                    var result = HdlGatewayLogic.Current.AddNewGateway(way, ShowErrorMode.NO);
                    var result = await HdlGatewayLogic.Current.AddNewGateway(way, ShowErrorMode.NO);
                    if (result == false)
                    {
                        continue;
ZigbeeApp/Shared/Phone/UserCenter/Gateway/Manage/GatewayInfoEditorForm.cs
@@ -330,7 +330,7 @@
        private void CheckNewVersion(PicViewControl btnNewVersion)
        {
            //获取网关版本信息
            var result = HdlGatewayLogic.Current.GetGatewayAllNewVersion(this.zbGateway, ShowErrorMode.NO);
            var result = HdlGatewayLogic.Current.GetGatewayAllNewVersion(this.zbGateway);
            if (result == null)
            {
                return;
@@ -380,9 +380,9 @@
        /// </summary>
        /// <param name="gatewayId"></param>
        /// <param name="online"></param>
        private void DoSwitchGateway()
        private async void DoSwitchGateway()
        {
            var result = HdlGatewayLogic.Current.DoSwitchGateway(zbGateway.GwId);
            var result = await HdlGatewayLogic.Current.DoSwitchGateway(zbGateway.GwId);
            if (result == false)
            {
                return;
@@ -425,13 +425,13 @@
        /// <param name="row"></param>
        private void DeleteGateway(string strWayId)
        {
            HdlThreadLogic.Current.RunThread(() =>
            HdlThreadLogic.Current.RunThread(async () =>
            {
                //打开进度条
                this.ShowProgressBar();
                //删除云端网关
                bool result = HdlGatewayLogic.Current.DeleteGateway(strWayId);
                bool result = await HdlGatewayLogic.Current.DeleteGateway(strWayId);
                //关闭进度条
                this.CloseProgressBar();
                if (result == false)
ZigbeeApp/Shared/Phone/UserCenter/Gateway/Manage/GatewayListForm.cs
@@ -238,12 +238,12 @@
        /// </summary>
        /// <param name="strWayId"></param>
        /// <param name="row"></param>
        private void DeleteGateway(string strWayId)
        private async void DeleteGateway(string strWayId)
        {
            //打开进度条
            this.ShowProgressBar();
            //删除云端网关
            bool result = HdlGatewayLogic.Current.DeleteGateway(strWayId);
            bool result = await HdlGatewayLogic.Current.DeleteGateway(strWayId);
            //关闭进度条
            this.CloseProgressBar();
            if (result == false)
@@ -273,9 +273,9 @@
        /// </summary>
        /// <param name="gatewayId"></param>
        /// <param name="online"></param>
        private void DoSwitchGateway(string gatewayId)
        private async void DoSwitchGateway(string gatewayId)
        {
            var result = HdlGatewayLogic.Current.DoSwitchGateway(gatewayId);
            var result = await HdlGatewayLogic.Current.DoSwitchGateway(gatewayId);
            if (result == false)
            {
                return;
ZigbeeApp/Shared/Phone/UserCenter/Gateway/Manage/GatewayRebindForm.cs
@@ -40,21 +40,14 @@
            btnMsg.TextID = R.MyInternationalizationString.uIsReBindingPleaseWaiting;
            bodyFrameLayout.AddChidren(btnMsg);
            HdlThreadLogic.Current.RunThread(() =>
            HdlThreadLogic.Current.RunThread(async () =>
            {
                System.Threading.Thread.Sleep(1000);
                int value = HdlGatewayLogic.Current.ReBindNewGateway(i_gateway, btnMsg);
                await System.Threading.Tasks.Task.Delay(1000);
                int value = await HdlGatewayLogic.Current.ReBindNewGateway(i_gateway, btnMsg);
                if (value == 1)
                {
                    //成功
                    i_dicZbGatewayDiv[i_gateway.GwId] = 1;
                    //我觉得这里需要获取一下新网关的设备列表
                    Common.LocalDevice.Current.SetDeviceToMemmoryByGateway(i_gateway, true);
                    if (i_gateway.IsMainGateWay == true)
                    {
                        //如果它是主网关,则刷新场景列表
                        HdlSceneLogic.Current.RefreshSceneUIList(true);
                    }
                }
                else if (value == 0)
                {
ZigbeeApp/Shared/Phone/UserCenter/Gateway/Manage/GatewaySearchListForm.cs
@@ -178,9 +178,12 @@
        /// </summary>
        public override void CloseFormBefore()
        {
            //刷新主页
            UserView.UserPage.Instance.ReFreshControl();
            var userPageForm = UserView.UserPage.Instance.GetNowActionForm();
            if (userPageForm != null && userPageForm.FormID == "UserMainForm")
            {
                //刷新主页
                UserView.UserPage.Instance.ReFreshControl();
            }
            base.CloseFormBefore();
        }
ZigbeeApp/Shared/Phone/UserCenter/HideOption/HideOptionDirectoryListForm.cs
@@ -63,7 +63,7 @@
            row1.AddBottomLine();
            row1.ButtonClickEvent += (sender, e) =>
            {
                var form = new HideOptionSearchAllFile();
                var form = new HideOptionFileListForm();
                form.AddForm(Common.Config.Instance.FullPath);
            };
@@ -99,7 +99,7 @@
            row1.ButtonClickEvent += (sender, e) =>
            {
                var form = new HideOptionSearchAllFile();
                var form = new HideOptionFileListForm();
                form.AddForm(directoryValue);
            };
        }
ZigbeeApp/Shared/Phone/UserCenter/HideOption/HideOptionFileContentForm.cs
@@ -95,6 +95,7 @@
                    textValue += value + "\r\n";
                }
            }
            textValue = textValue.Replace(",", "\r\n");
            if (textValue.StartsWith("{") == true)
            {
                textValue = "{\r\n" + textValue.Substring(1);
ZigbeeApp/Shared/Phone/UserCenter/HideOption/HideOptionFileListForm.cs
New file
@@ -0,0 +1,167 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace Shared.Phone.UserCenter.HideOption
{
    /// <summary>
    /// æœ¬åœ°ç¼“存文件列表的界面
    /// </summary>
    public class HideOptionFileListForm : EditorCommonForm
    {
        #region â–  å˜é‡å£°æ˜Ž___________________________
        /// <summary>
        /// è§£å¯†
        /// </summary>
        private bool decryptPassword = false;
        #endregion
        #region â–  åˆå§‹åŒ–_____________________________
        /// <summary>
        /// ç”»é¢æ˜¾ç¤º(底层会固定调用此方法,借以完成画面创建)
        /// </summary>
        public void ShowForm(string directory)
        {
            //设置头部信息
            base.SetTitleText("文件列表");
            var btnButton = new NormalViewControl(200, 69, true);
            btnButton.Gravity = Gravity.CenterVertical;
            btnButton.X = bodyFrameLayout.Width - Application.GetRealWidth(200) - ControlCommonResourse.XXLeft;
            btnButton.TextColor = UserCenterColor.Current.TopLayoutTitleText;
            btnButton.TextAlignment = TextAlignment.BottomRight;
            btnButton.TextSize = 17;
            btnButton.Text = "翻译";
            topFrameLayout.AddChidren(btnButton);
            btnButton.ButtonClickEvent += (sender, e) =>
            {
                if (this.decryptPassword == false)
                {
                    this.decryptPassword = true;
                    //初始化中部信息
                    this.InitMiddleFrame(directory);
                }
            };
            //初始化中部信息
            this.InitMiddleFrame(directory);
        }
        /// <summary>
        /// åˆå§‹åŒ–中部信息
        /// </summary>
        private void InitMiddleFrame(string directory)
        {
            this.ClearBodyFrame();
            var listAllFile = HdlFileLogic.Current.GetFileFromDirectory(directory);
            listAllFile.Sort();
            var listView = new VerticalListControl(23);
            listView.BackgroundColor = UserCenterColor.Current.White;
            listView.Height = bodyFrameLayout.Height;
            bodyFrameLayout.AddChidren(listView);
            for (int i = 0; i < listAllFile.Count; i++)
            {
                this.AddRowControl(listView, listAllFile[i], directory, i != listAllFile.Count - 1);
            }
            listView.AdjustRealHeightByBottomButton(Application.GetRealHeight(50));
            var btnButon = new BottomClickButton();
            btnButon.Text = "删除文件夹";
            bodyFrameLayout.AddChidren(btnButon);
            btnButon.ButtonClickEvent += (sender, e) =>
            {
                this.ShowMassage(ShowMsgType.Confirm, "是否清除该文件夹", () =>
                {
                    try
                    {
                        System.IO.Directory.Delete(directory, true);
                        this.CloseForm();
                    }
                    catch (Exception ex)
                    {
                        this.ShowMassage(ShowMsgType.Error, "清除缓存文件夹异常");
                        HdlLogLogic.Current.WriteLog(ex, "清除缓存文件夹异常");
                    }
                });
            };
            if (directory == Common.Config.Instance.FullPath)
            {
                btnButon.CanClick = false;
            }
        }
        private void AddRowControl(VerticalListControl listView, string fileName, string directory, bool addLine)
        {
            string fileNewName = fileName;
            if (decryptPassword == true && fileName.StartsWith("Device_") == false)
            {
                try
                {
                    fileNewName = UserCenterLogic.DecryptPassword(UserCenterResourse.FileEncryptKey, fileName);
                }
                catch { fileNewName = fileName; }
            }
            var row1 = new RowLayoutControl(listView.rowSpace / 2);
            listView.AddChidren(row1);
            var btnName = row1.frameTable.AddLeftCaption(fileNewName, 800);
            btnName.IsMoreLines = true;
            if (addLine == true)
            {
                row1.frameTable.AddBottomLine();
            }
            row1.frameTable.AddRightArrow();
            var btnUpLoad = row1.AddEditorControl();
            btnUpLoad.Text = "上传";
            btnUpLoad.ButtonClickEvent += (sender, e) =>
            {
                this.ShowMassage(ShowMsgType.Confirm, "是否上传该文件(测试)?", () =>
                {
                    HdlThreadLogic.Current.RunThread(() =>
                    {
                        string tagrtFile = System.IO.Path.Combine(directory, fileName);
                        HdlBackupLogic.Current.UpLoadByteDataToOptionBackup(fileName, HdlFileLogic.Current.ReadFileByteContent(tagrtFile));
                    });
                });
            };
            var btnDelete = row1.AddDeleteControl();
            btnDelete.ButtonClickEvent += (sender, e) =>
            {
                this.ShowMassage(ShowMsgType.Confirm, "是否清除该缓存文件", () =>
                {
                    var myFile = System.IO.Path.Combine(Common.Config.Instance.FullPath, directory, fileName);
                    try
                    {
                        System.IO.File.Delete(myFile);
                        row1.RemoveFromParent();
                    }
                    catch (Exception ex)
                    {
                        this.ShowMassage(ShowMsgType.Error, "清除缓存文件异常");
                        HdlLogLogic.Current.WriteLog(ex, "清除缓存文件异常");
                    }
                });
            };
            row1.frameTable.ButtonClickEvent += (sender, e) =>
            {
                var form = new HideOptionFileContentForm();
                form.AddForm(System.IO.Path.Combine(Common.Config.Instance.FullPath, directory, fileName));
            };
        }
        #endregion
        #region â–  ä¸€èˆ¬æ–¹æ³•___________________________
        #endregion
    }
}
ZigbeeApp/Shared/Phone/UserCenter/HideOption/HideOptionGatewayInfoMenuForm.cs
File was deleted
ZigbeeApp/Shared/Phone/UserCenter/HideOption/HideOptionGatewayListFileForm.cs
File was deleted
ZigbeeApp/Shared/Phone/UserCenter/HideOption/HideOptionGatewayListForm.cs
@@ -137,7 +137,7 @@
            };
            gatewayRow.frameTable.ButtonClickEvent += (sender, e) =>
            {
                var form = new HideOptionGatewayInfoMenuForm();
                var form = new GatewayManage.GatewayInfoEditorForm();
                form.AddForm(i_gateway);
            };
        }
ZigbeeApp/Shared/Phone/UserCenter/HideOption/HideOptionMainForm.cs
@@ -51,15 +51,6 @@
        {
            listView.RemoveAll();
            var rowTemp = this.AddNormalRowControl(string.Empty, 400, string.Empty, 400);
            var btnTemp = new NormalViewControl(600, 100, true);
            btnTemp.Text = "一般信息部分";
            btnTemp.Gravity = Gravity.Center;
            btnTemp.TextSize = 16;
            btnTemp.IsBold = true;
            btnTemp.TextAlignment = TextAlignment.Center;
            rowTemp.AddChidren(btnTemp);
            this.AddNormalRowControl("当前身份", 400, UserCenterResourse.UserInfo.AuthorityText, 400);
            this.AddTopButtomRowControl("住宅ID", 400, Common.Config.Instance.Home.Id, 900);
@@ -76,24 +67,15 @@
            this.AddNormalRowControl("WIFI变量", 400, Shared.Application.IsWifi == true ? "true" : "false", 400);
            rowTemp = this.AddNormalRowControl(string.Empty, 400, string.Empty, 400);
            btnTemp = new NormalViewControl(600, 100, true);
            btnTemp.Text = "链接调试部分";
            btnTemp.Gravity = Gravity.Center;
            btnTemp.TextSize = 16;
            btnTemp.IsBold = true;
            btnTemp.TextAlignment = TextAlignment.Center;
            rowTemp.AddChidren(btnTemp);
            this.AddNormalRowControl("手机获取的IP", 600, new Shared.Net.NetWiFi().BroadcastIpAddress.ToString(), 600);
            if (ZigBee.Common.Application.FindGateWaySocket.udpClient == null)
            if (ZigBee.Common.Application.FindGateWaySocket.busSocket == null)
            {
                this.AddNormalRowControl("Socket链接", 400, "未初始化", 400);
            }
            else
            {
                this.AddNormalRowControl("Socket链接", 400, "已初始化", 400);
                this.AddNormalRowControl("Socket链接", 400, ZigBee.Common.Application.FindGateWaySocket.busSocket.Connected == true ? "true" : "false", 400);
            }
            int count = ZbGateway.GateWayList.Count;
@@ -116,6 +98,28 @@
            //检测能否广播得到网关
            this.AddCheckReceviceGatewayRow();
            row1 = new FrameRowControl(listView.rowSpace / 2);
            listView.AddChidren(row1);
            row1.AddLeftCaption("查看缓存文件", 500);
            row1.AddRightArrow();
            row1.AddBottomLine();
            row1.ButtonClickEvent += (sender, e) =>
            {
                var form = new HideOptionDirectoryListForm();
                form.AddForm();
            };
            row1 = new FrameRowControl(listView.rowSpace / 2);
            listView.AddChidren(row1);
            row1.AddLeftCaption("设备缓存变量", 500);
            row1.AddRightArrow();
            row1.AddBottomLine();
            row1.ButtonClickEvent += (sender, e) =>
            {
                var form = new HideOptionMemoryListDeviceForm();
                form.AddForm();
            };
            row1 = new FrameRowControl(listView.rowSpace / 2);
            listView.AddChidren(row1);
@@ -191,61 +195,6 @@
                    ZigBee.Common.Application.FindGateWaySocket.Stop();
                    ZigBee.Common.Application.FindGateWaySocket.Start();
                    this.ShowMassage(ShowMsgType.Tip, "初始化完成");
                });
            };
            rowTemp = this.AddNormalRowControl(string.Empty, 400, string.Empty, 400);
            btnTemp = new NormalViewControl(600, 100, true);
            btnTemp.Text = "查看缓存部分";
            btnTemp.Gravity = Gravity.Center;
            btnTemp.TextSize = 16;
            btnTemp.IsBold = true;
            btnTemp.TextAlignment = TextAlignment.Center;
            rowTemp.AddChidren(btnTemp);
            row1 = new FrameRowControl(listView.rowSpace / 2);
            listView.AddChidren(row1);
            row1.AddLeftCaption("查看缓存文件", 500);
            row1.AddRightArrow();
            row1.AddBottomLine();
            row1.ButtonClickEvent += (sender, e) =>
            {
                var form = new HideOptionDirectoryListForm();
                form.AddForm();
            };
            row1 = new FrameRowControl(listView.rowSpace / 2);
            listView.AddChidren(row1);
            row1.AddLeftCaption("设备缓存变量", 500);
            row1.AddRightArrow();
            row1.AddBottomLine();
            row1.ButtonClickEvent += (sender, e) =>
            {
                var form = new HideOptionMemoryListDeviceForm();
                form.AddForm();
            };
            rowTemp = this.AddNormalRowControl(string.Empty, 400, string.Empty, 400);
            btnTemp = new NormalViewControl(600, 100, true);
            btnTemp.Text = "其他部分";
            btnTemp.Gravity = Gravity.Center;
            btnTemp.TextSize = 16;
            btnTemp.IsBold = true;
            btnTemp.TextAlignment = TextAlignment.Center;
            rowTemp.AddChidren(btnTemp);
            row1 = new FrameRowControl(listView.rowSpace / 2);
            listView.AddChidren(row1);
            row1.AddLeftCaption("重置导入标识", 500);
            row1.AddRightArrow();
            row1.AddBottomLine();
            row1.ButtonClickEvent += (sender, e) =>
            {
                this.ShowMassage(ShowMsgType.Confirm, "是否重置这个住宅的导入标识?\r\n重置之后可以再次导入网关", () =>
                {
                    Common.Config.Instance.Home.SendTemplateSuccess = false;
                    Common.Config.Instance.Home.Save();
                    this.ShowMassage(ShowMsgType.Tip, "重置完成");
                });
            };
ZigbeeApp/Shared/Phone/UserCenter/HideOption/HideOptionSearchAllFile.cs
@@ -131,30 +131,6 @@
                }
            }
            listView.AdjustRealHeightByBottomButton(Application.GetRealHeight(50));
            var btnButon = new BottomClickButton();
            btnButon.Text = "删除文件夹";
            bodyFrameLayout.AddChidren(btnButon);
            btnButon.ButtonClickEvent += (sender, e) =>
            {
                this.ShowMassage(ShowMsgType.Confirm, "是否清除该文件夹", () =>
                {
                    try
                    {
                        System.IO.Directory.Delete(directory, true);
                        this.CloseForm();
                    }
                    catch (Exception ex)
                    {
                        this.ShowMassage(ShowMsgType.Error, "清除缓存文件夹异常");
                        HdlLogLogic.Current.WriteLog(ex, "清除缓存文件夹异常");
                    }
                });
            };
            if (directory == Common.Config.Instance.FullPath)
            {
                btnButon.CanClick = false;
            }
        }
        private void AddDirectoryRowControl(VerticalListControl listView, string directoryName, string directory, bool addLine)
ZigbeeApp/Shared/Phone/UserCenter/Member/MemberListForm.cs
@@ -358,7 +358,7 @@
                        return;
                    }
                    pra.Account = dicMemberAccount[keys];
                    var result = UserCenterLogic.GetByteResponseDataByRequestHttps("ZigbeeUsers/GetSubAccountInfo", false, pra, new List<string> { "NotCheck" }, false);
                    var result = UserCenterLogic.GetByteResponseDataByRequestHttps("ZigbeeUsers/GetSubAccountInfo", false, pra, new List<string> { "NotCheck" });
                    if (result == null)
                    {
                        continue;
ZigbeeApp/Shared/Phone/UserCenter/Member/MemberManagementForm.cs
@@ -416,7 +416,7 @@
            {
                var pra = new AccountInfoPra();
                pra.Account = memberInfo.Account;
                var result = UserCenterLogic.GetByteResponseDataByRequestHttps("ZigbeeUsers/GetSubAccountInfo", false, pra, new List<string> { "NotCheck" }, false);
                var result = UserCenterLogic.GetByteResponseDataByRequestHttps("ZigbeeUsers/GetSubAccountInfo", false, pra, new List<string> { "NotCheck" });
                if (result == null)
                {
                    return;
ZigbeeApp/Shared/Phone/UserCenter/Residence/ResidenceListForm.cs
@@ -124,7 +124,7 @@
        {
            //获取住宅信息
            var Pra = new GetResidenceInfoPra();
            string resultData = UserCenterLogic.GetResponseDataByRequestHttps("App/GetHomePager", false, Pra, new List<string> { "NotCheck" }, false);
            string resultData = UserCenterLogic.GetResponseDataByRequestHttps("App/GetHomePager", false, Pra, new List<string> { "NotCheck" });
            if (string.IsNullOrEmpty(resultData) == true)
            {
                return false;
ZigbeeApp/Shared/Phone/UserCenter/Residence/ResidenceManagementForm.cs
@@ -693,7 +693,6 @@
            var myHouse = HdlResidenceLogic.Current.GetHouseByFilePath(Common.Config.Instance.HomeFilePathList[index]);
            //切换住宅
            Common.Config.Instance.HomeId = myHouse.Id;
            Common.Config.Instance.Home = HdlResidenceLogic.Current.GetHouseByHouseId(myHouse.Id);
            Common.Global.CreateHomeDirectory(myHouse.Id);
            Common.Config.Instance.Save();
ZigbeeApp/Shared/Phone/UserCenter/Safety/GarrisonAreaSettionMenuForm.cs
@@ -123,8 +123,8 @@
        /// <param name="btnswich"></param>
        private async void SetInformationPush(MostRightIconControl btnswich)
        {
            //获取状态(取反)
            int statu = btnswich.IsSelected == true ? 1 : 0;
            //获取状态
            int statu = HdlSafeguardLogic.Current.GetGarrisonInformationPushStatu(this.zoonID) == 0 ? 1 : 0;
            //执行修改
            var result = await HdlSafeguardLogic.Current.SetGarrisonInformationPushStatu(this.zoonID, statu);
ZigbeeApp/Shared/Phone/UserView/HomePage.cs
@@ -64,7 +64,7 @@
                    //登录成功,或者没有网络都可以登录
                    if (loginSuccess == 1 || loginSuccess == 2)
                    {
                        var homes = UserCenter.HdlResidenceLogic.Current.GetHomeListsFromDb(true);
                        var homes = UserCenter.HdlResidenceLogic.Current.GetHomeListsFromDb();
                        //刷新个人中心的内存及线程
                        UserCenter.UserCenterLogic.InitUserCenterMenmoryAndThread();
                        //启动ZigBee
ZigbeeApp/Shared/Phone/ZigBee/Common/Application.cs
@@ -160,13 +160,13 @@
                {
                    try
                    {
                        if (FindGateWaySocket.udpClient == null || FindGateWaySocket.udpClient.Available <= 0)
                        if (FindGateWaySocket.busSocket == null || FindGateWaySocket.busSocket.Available <= 0)
                        {
                            System.Threading.Thread.Sleep(500);
                            continue;
                        }
                        var ipEndPoint = new System.Net.IPEndPoint(0, 0);
                        var bytes = FindGateWaySocket.udpClient.Receive(ref ipEndPoint);
                        }
                        var bytes = new byte[1024];
                        var len = FindGateWaySocket.busSocket.Receive(bytes, bytes.Length, System.Net.Sockets.SocketFlags.None);
                        if (bytes[43] == 0xA2)
                        {
                            //广播回复网关的基本信息处理
@@ -284,14 +284,7 @@
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                        //调试用
                        if (Shared.Phone.UserCenter.UserCenterResourse.HideOption.WriteSocketReceiveDataToFile == 1)
                        {
                            Shared.Phone.UserCenter.HdlLogLogic.Current.WriteLog(3, "Receive异常\r\n" + ex.Message);
                        }
                    }
                    catch { }
                }
            })
            { IsBackground = true }.Start();
@@ -397,19 +390,24 @@
        public static class FindGateWaySocket
        {
            //本地Socket
            public static UdpClient udpClient;
            public static Socket busSocket;
            /// <summary>
            /// å¯åЍSocket接收和发送功能
            /// </summary>
            /// <param name="port"></param>
            public static void Start()
            public static void Start(int port = 7624)
            {
                if (udpClient!=null)
                if (IsRunning)
                {
                    return;
                }
                udpClient = new UdpClient { EnableBroadcast = true };
                //定义网络类型,数据连接类型和网络协议UDP
                busSocket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
                busSocket.EnableBroadcast = true;
                busSocket.ReceiveTimeout = 1000;
                busSocket.SendTimeout = 1000;
                busSocket.Bind(new IPEndPoint(IPAddress.Any, port));
            }
            /// <summary>
@@ -419,12 +417,23 @@
            {
                try
                {
                    udpClient?.Close();
                    busSocket?.Close();
                }
                catch { }
                udpClient = null;
                busSocket = null;
                Console.WriteLine("BusSocket关闭成功!");
            }
            /// <summary>
            /// å½“前的Socket是否运行
            /// </summary>
            public static bool IsRunning
            {
                get
                {
                    return busSocket == null ? false : true;
                }
            }
            /// <summary>
@@ -435,11 +444,11 @@
            {
                try
                {
                    if (udpClient == null)
                    if (IsRunning)
                    {
                        return;
                        busSocket.BeginSendTo(bytes, 0, bytes.Length, SocketFlags.None, iPEndPoint, new AsyncCallback(asyncEndSend), null);
                    }
                    udpClient.Send(bytes, bytes.Length, iPEndPoint);
                }
                catch (Exception ex)
                {
@@ -450,8 +459,28 @@
                    }
                }
            }
            /// <summary>
            /// å¼‚步发送数据结束
            /// </summary>
            /// <param name="iar"></param>
            private static void asyncEndSend(IAsyncResult iar)
            {
                try
                {
                    int bytesSent = busSocket.EndSendTo(iar);
                }
                catch (Exception ex)
                {
                    //调试用
                    if (Shared.Phone.UserCenter.UserCenterResourse.HideOption.WriteSocketReceiveDataToFile == 1)
                    {
                        Shared.Phone.UserCenter.HdlLogLogic.Current.WriteLog(3, "异步发送结束异常(asyncEndSend)\r\n" + ex.Message);
                    }
                }
            }
        }
        #endregion
    }
}
}
ZigbeeApp/Shared/Phone/ZigBee/Device/ColorTemperatureLight.cs
@@ -28,12 +28,6 @@
        public int ColorTemperature = 0;
        /// <summary>
        ///蜂鸣器是否在响着(true:响着 false:不响)
        /// </summary>
        [Newtonsoft.Json.JsonIgnore]
        public bool IsBuzzerRing = false;
        /// <summary>
        /// è¯»å–亮度
        /// </summary>
        public void ReadLevel()
@@ -47,14 +41,6 @@
        public void ReadColorTemperature()
        {
            ReadAttri(Device.Cluster_ID.ColorControl, AttriButeId.LevelControl);
        }
        /// <summary>
        /// è¯»å–蜂鸣器状态(小夜灯专用)
        /// </summary>
        public void ReadBuzzerStatu()
        {
            ReadAttri((Cluster_ID)1282, 0);
        }
        ///<summary >
ZigbeeApp/Shared/Phone/ZigBee/Device/CommonDevice.cs
@@ -85,6 +85,7 @@
        /// <para>持续数据上报(MomentStatus=0   TriggerZoneStatus>=1<报警>  TriggerZoneStatus=0<取消报警>)</para>
        /// <para>21: Door/Window é—¨çª—传感器(有21和22,这里没有写错)</para>
        /// <para>22:Door/Window é—¨çª—传感器(有21和22,这里没有写错</para>
        /// <para>541 çƒåž‹ç§»åŠ¨ä¼ æ„Ÿå™¨</para>
        /// </summary>
        public int IasDeviceType;
        /// <summary>
@@ -115,7 +116,7 @@
        /// </summary>
        public int ZigbeeType;
        /// <summary>
        /// å›ºä»¶ç‰ˆæœ¬
        /// å½“前运行程序版本信息。 æœ€å¤§64字节
        /// </summary>
        public int ImgVersion;
        /// <summary>
ZigbeeApp/Shared/Phone/ZigBee/Device/Safeguard.cs
@@ -4706,15 +4706,7 @@
            /// <summary>
            /// é˜²åŒºåç§° ï¼Œæœ€å¤§32个字符
            /// </summary>
            public string ZoneName;
            /// <summary>
            /// æ˜¯å¦ç¦ç”¨ä¿¡æ¯æŽ¨é€ï¼š
            ///<para>0:不禁用</para>
            ///<para>1:禁用</para>
            ///<para>当防区的信息推送被禁用时,防区被触发时不会发送18小节的”防区被触发是报告”的主题信息。</para>
            /// </summary>
            public int IsDisablePushMessage = 0;
            public string ZoneName;
            /// <summary>
            /// å®‰é˜²è®¾å¤‡åˆ—表
ZigbeeApp/Shared/Phone/ZigBee/Device/ZbGatewayData.cs
@@ -72,7 +72,7 @@
        /// <summary>
        /// è™šæ‹Ÿé©±åŠ¨ä¿¡æ¯
        /// </summary>
        public List<DriveCodeObj> DriveCodeList = new List<DriveCodeObj>();
        public List<DriveCodeListObj> DriveCodeList = new List<DriveCodeListObj>();
        /// <summary>
        /// è™šæ‹Ÿç½‘å…³
@@ -249,9 +249,32 @@
            /// <summary>
            /// è™šæ‹Ÿé©±åŠ¨ä¿¡æ¯
            /// </summary>
            public List<DriveCodeObj> DriveCodeList = new List<DriveCodeObj>();
            public List<DriveCodeListObj> DriveCodeList = new List<DriveCodeListObj>();
        }
        public class DriveCodeListObj
        {
            /// <summary>
            /// é©±åŠ¨ä»£å·ï¼ˆç”±ç½‘å…³ä¸ºé©±åŠ¨åˆ†é…å”¯ä¸€æ ‡è¯†ï¼‰
            /// </summary>
            public int DriveCode;
            /// <summary>
            /// é©±åŠ¨ç¡¬ä»¶ç‰ˆæœ¬
            /// </summary>
            public int DriveHwVersion;
            /// <summary>
            /// é©±åŠ¨è½¯ä»¶ç‰ˆ
            /// </summary>
            public int DriveFwVersion;
            /// <summary>
            /// é©±åŠ¨å›ºä»¶ç±»åž‹
            /// </summary>
            public int DriveImageType;
            /// <summary>
            /// é©±åЍid
            /// </summary>
            public int DriveId;
        }
        #endregion
        #region ä¿®æ”¹ç½‘关名称
ZigbeeApp/Shared/R.cs
@@ -5846,14 +5846,6 @@
        /// é’¥åŒ™æ‰£
        /// </summary>
        public const int uKeyfob = 16143;
        /// <summary>
        /// è‰²å€¼å·ä¸º6位(由任意数字+字母组合)
        /// </summary>
        public const int uColorLengthMsg = 16144;
        /// <summary>
        /// é•¿æŒ‰æ­¤æŒ‰é”®
        /// </summary>
        public const int uLongPressThisButton = 16145;
        //★★★★下面这些是接口的返回信息翻译,从18000开始★★★★
ZigbeeApp/Shared/Shared.projitems
@@ -45,7 +45,6 @@
    <Compile Include="$(MSBuildThisFileDirectory)Phone\Device\Logic\LogicView\IfString.cs" />
    <Compile Include="$(MSBuildThisFileDirectory)Phone\Device\Logic\LogicView\LightView.cs" />
    <Compile Include="$(MSBuildThisFileDirectory)Phone\Device\Logic\LogicView\mFunView.cs" />
    <Compile Include="$(MSBuildThisFileDirectory)Phone\Device\Logic\LogicView\RoomClickView.cs" />
    <Compile Include="$(MSBuildThisFileDirectory)Phone\Device\Logic\LogicView\SaveView.cs" />
    <Compile Include="$(MSBuildThisFileDirectory)Phone\Device\Logic\LogicView\SelectedDeviceView.cs" />
    <Compile Include="$(MSBuildThisFileDirectory)Phone\Device\Logic\LogicView\TipView.cs" />
@@ -140,9 +139,6 @@
    <Compile Include="$(MSBuildThisFileDirectory)Phone\SmartSound\Widget\MyButton.cs" />
    <Compile Include="$(MSBuildThisFileDirectory)Phone\SmartSound\Widget\SoundRowLayout.cs" />
    <Compile Include="$(MSBuildThisFileDirectory)Phone\SmartSound\Widget\TextDialog.cs" />
    <Compile Include="$(MSBuildThisFileDirectory)Phone\TemplateData\TemplateCommonLogic.cs" />
    <Compile Include="$(MSBuildThisFileDirectory)Phone\TemplateData\TemplateDataCommon.cs" />
    <Compile Include="$(MSBuildThisFileDirectory)Phone\TemplateData\TemplateDeviceDataLogic.cs" />
    <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Abount\AbountForm.cs" />
    <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Abount\SLAForm.cs" />
    <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\CommonBase\Common\AccountOption.cs" />
@@ -295,8 +291,7 @@
    <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\HdlBackup\HdlBackupListForm.cs" />
    <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\HideOption\HideOptionDirectoryListForm.cs" />
    <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\HideOption\HideOptionFileContentForm.cs" />
    <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\HideOption\HideOptionGatewayInfoMenuForm.cs" />
    <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\HideOption\HideOptionGatewayListFileForm.cs" />
    <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\HideOption\HideOptionFileListForm.cs" />
    <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\HideOption\HideOptionGatewayListForm.cs" />
    <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\HideOption\HideOptionMainForm.cs" />
    <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\HideOption\HideOptionMemoryListDeviceForm.cs" />