From dc6493db59dcb0893eac50b72122f94c24056b3f Mon Sep 17 00:00:00 2001 From: 黄学彪 <hxb@hdlchina.com.cn> Date: 星期一, 12 十月 2020 14:35:39 +0800 Subject: [PATCH] 新版本 --- ZigbeeApp/GateWay.Droid/Assets/Language.ini | 6 ZigbeeApp/GateWay.Droid/Assets/Phone/SmartSound/Sibici.png | 0 ZigbeeApp/GateWay.Droid/Assets/Phone/SmartSound/Xiaoai.png | 0 ZigbeeApp/Shared/Phone/Login/AccountLoginForm.cs | 1 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlAutoBackupLogic.cs | 231 +- ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayReceiveLogic.cs | 34 ZigbeeApp/Home.Ios/Resources/DeviceName.ini | 8 ZigbeeApp/Shared/Phone/SmartSound/Forms/AddSmartSound.cs | 238 +++ ZigbeeApp/GateWay.Droid/GateWay.Droid.csproj | 15 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlBackupLogic.cs | 2 ZigbeeApp/Shared/Phone/Category/Controls/DeviceRow/Base/DeviceRowCommon.cs | 2 ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceMacInfoEditorForm.cs | 3 ZigbeeApp/Shared/Common/CommonPage.cs | 2 ZigbeeApp/Shared/Phone/UserCenter/Device/AirConditioner/IndoorUnitSettionForm.cs | 1 ZigbeeApp/Shared/Phone/UserCenter/HideOption/HideOptionMainForm.cs | 12 ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceSearchForm.cs | 2 ZigbeeApp/Shared/Phone/UserCenter/Gateway/Manage/GatewayProductInfoForm.cs | 1 ZigbeeApp/Shared/Phone/TemplateData/TemplateCommonLogic.cs | 24 ZigbeeApp/GateWay.Droid/Assets/Phone/SmartSound/Xiaodu.png | 0 ZigbeeApp/Home.Ios/Resources/Phone/SmartSound/Xiaodu.png | 0 ZigbeeApp/Shared/Phone/UserCenter/Gateway/Add/MiniGatewaySearchForm.cs | 2 ZigbeeApp/GateWay.Droid/Properties/AndroidManifest.xml | 5 ZigbeeApp/Shared/Phone/UserCenter/Residence/FloorListRoomForm.cs | 6 ZigbeeApp/Shared/Phone/UserCenter/Gateway/Add/WirelessUdpSearchForm.cs | 2 ZigbeeApp/Shared/Phone/ZigBee/Device/ZbGatewayData.cs | 10 ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceDryContactSettionForm.cs | 10 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlRoomLogic.cs | 252 +++ ZigbeeApp/Shared/Phone/UserCenter/Residence/ResidenceManagementForm.cs | 16 ZigbeeApp/Shared/Phone/UserCenter/Gateway/Manage/GatewayInfoEditorForm.cs | 1 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/DeviceControls/GatewayRowControl.cs | 3 ZigbeeApp/Home.Ios/Resources/Phone/Gateway/GatewayIcon16.png | 0 ZigbeeApp/Shared/Phone/UserCenter/Gateway/Manage/GatewayListForm.cs | 4 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayLogic.cs | 204 +- ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelFangyueButtonSettionForm.cs | 1 ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceAddSuccessForm.cs | 1 ZigbeeApp/Shared/Phone/UserCenter/Device/Light/MiniNightLightFunctionSettionForm.cs | 1 ZigbeeApp/Shared/Phone/UserCenter/Gateway/Add/WiredGatewaySearchForm.cs | 2 ZigbeeApp/Home.Ios/Resources/Phone/SmartSound/Sibici.png | 0 ZigbeeApp/Shared/Phone/ZigBee/Common/Application.cs | 75 ZigbeeApp/Home.Ios/Resources/Language.ini | 6 ZigbeeApp/Home.Ios/Home.IOS.csproj | 2374 +++++++++++++++---------------- ZigbeeApp/Home.Ios/Resources/Phone/SmartSound/Xiaoai.png | 0 ZigbeeApp/Shared/R.cs | 6 ZigbeeApp/Shared/Phone/UserCenter/HdlBackup/HdlBackupListForm.cs | 2 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/BelongAreaControl.cs | 2 ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelButtonSettionForm.cs | 1 ZigbeeApp/Shared/Phone/UserCenter/DoorLock/FunctionSetting.cs | 1 ZigbeeApp/GateWay.Droid/Assets/Phone/Gateway/GatewayIcon16.png | 0 ZigbeeApp/Home.Ios/Info.plist | 13 ZigbeeApp/Shared/Phone/TemplateData/TemplateDataFormLogic.cs | 65 ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceListMainForm.cs | 10 ZigbeeApp/Shared/Common/Device.cs | 504 ++++-- ZigbeeApp/Shared/Phone/TemplateData/TemplateDataCommon.cs | 9 ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/DataCorrectionForm.cs | 2 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Form/BottomItemSelectForm.cs | 4 ZigbeeApp/Shared/Phone/UserCenter/HdlBackup/HdlAutoBackupForm.cs | 7 ZigbeeApp/Shared/Phone/SmartSound/Forms/SmartSoundListForm.cs | 137 + ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlSceneLogic.cs | 18 ZigbeeApp/Shared/Phone/UserCenter/Device/Direction/AddDeviceTypeListForm.cs | 135 ZigbeeApp/Shared/Phone/UserCenter/Gateway/Add/WirelessApSearchForm.cs | 2 ZigbeeApp/Shared/Shared.projitems | 1 ZigbeeApp/GateWay.Droid/Assets/Phone/SmartSound/Tianmao.png | 0 ZigbeeApp/Home.Ios/Resources/Phone/SmartSound/Tianmao.png | 0 ZigbeeApp/Shared/Phone/MainPage/UnallocatedRoomForm.cs | 2 ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelFangyueFunctionSettionForm.cs | 1 ZigbeeApp/Shared/Phone/UserCenter/Gateway/Manage/GatewayRebindForm.cs | 2 ZigbeeApp/Shared/Phone/UserCenter/HideOption/HideOptionSearchAllFile.cs | 2 ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelFunctionSettionForm.cs | 1 ZigbeeApp/GateWay.Droid/Assets/DeviceName.ini | 8 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Common/UserCenterCommon.cs | 4 70 files changed, 2,657 insertions(+), 1,839 deletions(-) diff --git a/ZigbeeApp/GateWay.Droid/Assets/DeviceName.ini b/ZigbeeApp/GateWay.Droid/Assets/DeviceName.ini index caf9e46..8c86960 100755 --- a/ZigbeeApp/GateWay.Droid/Assets/DeviceName.ini +++ b/ZigbeeApp/GateWay.Droid/Assets/DeviceName.ini @@ -119,11 +119,11 @@ ;鏂规偊鏂伴灏忔ā鍧� MFA01-ZB.10 = 2310 / 鏂规偊鏂伴灏忔ā鍧� / 鏂规偊鏂伴灏忔ā鍧� / 2300 / 缁х數鍣� / 鏂伴妯″潡 ;鍥芥爣3璺�10A缁х數鍣ㄥ皬妯″潡 -MLR0310-ZB.20= 2311 / 鍥芥爣3璺�10A缁х數鍣ㄥ皬妯″潡 / 鍥芥爣3璺�10A缁х數鍣ㄥ皬妯″潡 / 2300 / 缁х數鍣� / 寮�鍏虫ā鍧� +MLR0310-ZB.20= 2301 / 鍥芥爣3璺�10A缁х數鍣ㄥ皬妯″潡 / 鍥芥爣3璺�10A缁х數鍣ㄥ皬妯″潡 / 2300 / 缁х數鍣� / 寮�鍏虫ā鍧� ;娆ф爣2璺�5A缁х數鍣ㄥ皬妯″潡 -MLR0205-ZB.18= 2312 / 娆ф爣2璺�5A缁х數鍣ㄥ皬妯″潡 / 娆ф爣2璺�5A缁х數鍣ㄥ皬妯″潡 / 2300 / 缁х數鍣� / 寮�鍏虫ā鍧� -;娆ф爣14璺共鎺ョ偣灏忔ā鍧� -MLDRY14-ZB.18= 2313 / 娆ф爣14璺共鎺ョ偣灏忔ā鍧� / 娆ф爣14璺共鎺ョ偣灏忔ā鍧� / 2300 / 缁х數鍣� / 骞叉帴鐐规ā鍧� +MLR0205-ZB.18= 2315 / 娆ф爣2璺�5A缁х數鍣ㄥ皬妯″潡 / 娆ф爣2璺�5A缁х數鍣ㄥ皬妯″潡 / 2300 / 缁х數鍣� / 寮�鍏虫ā鍧� +;7璺共鎺ョ偣杈撳叆杈撳嚭妯″潡 +MLDRY7-ZB.18= 2320 / 7璺共鎺ョ偣杈撳叆杈撳嚭妯″潡 / 7璺共鎺ョ偣杈撳叆杈撳嚭妯″潡 / 2300 / 缁х數鍣� / 骞叉帴鐐规ā鍧� ;*************************************************************** ; 璋冨厜鍣ㄨ澶� diff --git a/ZigbeeApp/GateWay.Droid/Assets/Language.ini b/ZigbeeApp/GateWay.Droid/Assets/Language.ini index c41659f..cd650b2 100755 --- a/ZigbeeApp/GateWay.Droid/Assets/Language.ini +++ b/ZigbeeApp/GateWay.Droid/Assets/Language.ini @@ -823,10 +823,10 @@ 13609=鑷畾涔� 13610=椤圭洰鍚� 13611=璇峰~鍐欓」鐩悕绉� -13612=妤煎彿 +13612=妤� 13613=1-100涔嬮棿 -13614=鍗曞厓鍙� -13615=鎴峰彿 +13614=鍗曞厓 +13615=鎴� 13616=灞傚彿鍔犳埧鍙凤紝渚嬪0201 13617=涓句緥锛氭垚閮介噾鍫傞噾鑼傚簻椤圭洰-2鏍�-3鍗曞厓-0201鎴� 13618=閫夋嫨鍒涘缓鏂瑰紡 diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Gateway/GatewayIcon16.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Gateway/GatewayIcon16.png new file mode 100644 index 0000000..4e66c42 --- /dev/null +++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Gateway/GatewayIcon16.png Binary files differ diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/SmartSound/Sibici.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/SmartSound/Sibici.png new file mode 100644 index 0000000..bee15c4 --- /dev/null +++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/SmartSound/Sibici.png Binary files differ diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/SmartSound/Tianmao.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/SmartSound/Tianmao.png index fbd1e71..047fc53 100755 --- a/ZigbeeApp/GateWay.Droid/Assets/Phone/SmartSound/Tianmao.png +++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/SmartSound/Tianmao.png Binary files differ diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/SmartSound/Xiaoai.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/SmartSound/Xiaoai.png index c0cdfbf..6e87ebe 100755 --- a/ZigbeeApp/GateWay.Droid/Assets/Phone/SmartSound/Xiaoai.png +++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/SmartSound/Xiaoai.png Binary files differ diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/SmartSound/Xiaodu.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/SmartSound/Xiaodu.png index fa4a294..57d35d3 100755 --- a/ZigbeeApp/GateWay.Droid/Assets/Phone/SmartSound/Xiaodu.png +++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/SmartSound/Xiaodu.png Binary files differ diff --git a/ZigbeeApp/GateWay.Droid/GateWay.Droid.csproj b/ZigbeeApp/GateWay.Droid/GateWay.Droid.csproj index a8bdd9b..eda3112 100644 --- a/ZigbeeApp/GateWay.Droid/GateWay.Droid.csproj +++ b/ZigbeeApp/GateWay.Droid/GateWay.Droid.csproj @@ -38,7 +38,12 @@ <AndroidTlsProvider>btls</AndroidTlsProvider> <AndroidEnableSGenConcurrent>true</AndroidEnableSGenConcurrent> <EmbedAssembliesIntoApk>true</EmbedAssembliesIntoApk> + <AndroidSupportedAbis>armeabi-v7a</AndroidSupportedAbis> <AndroidDexTool>d8</AndroidDexTool> + <AotAssemblies>false</AotAssemblies> + <EnableLLVM>false</EnableLLVM> + <AndroidEnableProfiledAot>false</AndroidEnableProfiledAot> + <BundleAssemblies>false</BundleAssemblies> <CheckForOverflowUnderflow>true</CheckForOverflowUnderflow> </PropertyGroup> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> @@ -53,6 +58,10 @@ <MandroidI18n>cjk</MandroidI18n> <DefineConstants>Android,Release</DefineConstants> <CheckForOverflowUnderflow>true</CheckForOverflowUnderflow> + <AotAssemblies>false</AotAssemblies> + <EnableLLVM>false</EnableLLVM> + <AndroidEnableProfiledAot>false</AndroidEnableProfiledAot> + <BundleAssemblies>false</BundleAssemblies> <AndroidDexTool>d8</AndroidDexTool> <AndroidUseAapt2>false</AndroidUseAapt2> </PropertyGroup> @@ -2517,6 +2526,12 @@ <ItemGroup> <AndroidAsset Include="Assets\Phone\Item\TransferOfResidenceIcon.png" /> </ItemGroup> + <ItemGroup> + <AndroidAsset Include="Assets\Phone\Gateway\GatewayIcon16.png" /> + </ItemGroup> + <ItemGroup> + <AndroidAsset Include="Assets\Phone\SmartSound\Sibici.png" /> + </ItemGroup> <Import Project="..\Shared\Shared.projitems" Label="Shared" Condition="Exists('..\Shared\Shared.projitems')" /> <Import Project="$(MSBuildExtensionsPath)\Xamarin\Android\Xamarin.Android.CSharp.targets" /> <Import Project="..\packages\Xamarin.Android.Support.Annotations.26.0.2\build\MonoAndroid80\Xamarin.Android.Support.Annotations.targets" Condition="Exists('..\packages\Xamarin.Android.Support.Annotations.26.0.2\build\MonoAndroid80\Xamarin.Android.Support.Annotations.targets')" /> diff --git a/ZigbeeApp/GateWay.Droid/Properties/AndroidManifest.xml b/ZigbeeApp/GateWay.Droid/Properties/AndroidManifest.xml index 17f2cbd..0d6359c 100644 --- a/ZigbeeApp/GateWay.Droid/Properties/AndroidManifest.xml +++ b/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.evoyo.home" android:versionCode="0120092101" android:installLocation="auto" android:versionName="1.1.0120092101"> +<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.evoyo.home" android:versionCode="0120101001" android:installLocation="auto" android:versionName="1.1.0120101001"> <uses-sdk android:minSdkVersion="23" android:targetSdkVersion="26" /> <permission android:name="com.evoyo.home.permission.JPUSH_MESSAGE" android:protectionLevel="signature" /> <uses-permission android:name="android.permission.WAKE_LOCK" /> @@ -94,7 +94,7 @@ <uses-permission android:name="android.permission.GET_TASKS" /> <uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS" /> <!-- 鏋佸厜鎺ㄩ�佺粨鏉� --> - <application android:allowBackup="true" android:largeHeap="true" android:persistent="true" android:label="Evoyo Home" android:icon="@drawable/Icon"> + <application android:allowBackup="true" android:largeHeap="true" android:persistent="true" android:label="Evoyo Home" android:icon="@drawable/Icon"> <!-- 鑷姩鏇存柊 --> <provider android:name="android.support.v4.content.FileProvider" android:authorities="com.evoyo.home.fileProvider" android:grantUriPermissions="true" android:exported="false"> <meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/file_paths" /> @@ -145,6 +145,7 @@ </receiver> <receiver android:name="cn.jpush.android.service.AlarmReceiver" android:exported="false" /> <!-- User defined. For test only 鐢ㄦ埛鑷畾涔夌殑骞挎挱鎺ユ敹鍣�--> + <!-- Required . Enable it you can get statistics data with channel --> <meta-data android:name="JPUSH_CHANNEL" android:value="developer-default" /> <meta-data android:name="JPUSH_APPKEY" android:value="07cfd3177490173e7c072f49" /> diff --git a/ZigbeeApp/Home.Ios/Home.IOS.csproj b/ZigbeeApp/Home.Ios/Home.IOS.csproj index 3cf3470..3f63e2a 100644 --- a/ZigbeeApp/Home.Ios/Home.IOS.csproj +++ b/ZigbeeApp/Home.Ios/Home.IOS.csproj @@ -1,1252 +1,1128 @@ <?xml version="1.0" encoding="utf-8"?> <Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> - <PropertyGroup> - <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> - <Platform Condition=" '$(Platform)' == '' ">iPhoneSimulator</Platform> - <ProjectGuid>{F1296E2C-3777-4385-85B2-DA77617E3178}</ProjectGuid> - <ProjectTypeGuids>{FEACFBD2-3405-455C-9665-78FE426C6842};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids> - <TemplateGuid>{edc1b0fa-90cd-4038-8fad-98fe74adb368}</TemplateGuid> - <OutputType>Exe</OutputType> - <RootNamespace>Home.IOS</RootNamespace> - <AssemblyName>Home.IOS</AssemblyName> - <IPhoneResourcePrefix>Resources</IPhoneResourcePrefix> - <MtouchEnableSGenConc>true</MtouchEnableSGenConc> - <MtouchHttpClientHandler>NSUrlSessionHandler</MtouchHttpClientHandler> - <RestoreProjectStyle>PackageReference</RestoreProjectStyle> - </PropertyGroup> - <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|iPhoneSimulator' "> - <DebugSymbols>true</DebugSymbols> - <DebugType>full</DebugType> - <Optimize>false</Optimize> - <OutputPath>bin\iPhoneSimulator\Debug</OutputPath> - <DefineConstants>__IOS__;__MOBILE__;__UNIFIED__;DEBUG;iOS</DefineConstants> - <ErrorReport>prompt</ErrorReport> - <WarningLevel>4</WarningLevel> - <MtouchArch>x86_64</MtouchArch> - <MtouchLink>None</MtouchLink> - <MtouchDebug>true</MtouchDebug> - </PropertyGroup> - <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|iPhoneSimulator' "> - <DebugType>none</DebugType> - <Optimize>true</Optimize> - <OutputPath>bin\iPhoneSimulator\Release</OutputPath> - <DefineConstants>__IOS__;__MOBILE__;__UNIFIED__;iOS</DefineConstants> - <ErrorReport>prompt</ErrorReport> - <WarningLevel>4</WarningLevel> - <MtouchLink>None</MtouchLink> - <MtouchArch>x86_64</MtouchArch> - <CodesignKey>iPhone Developer</CodesignKey> - <ConsolePause>true</ConsolePause> - <MtouchInterpreter> - </MtouchInterpreter> - <IpaMetadata> - </IpaMetadata> - </PropertyGroup> - <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|iPhone' "> - <DebugSymbols>true</DebugSymbols> - <DebugType>full</DebugType> - <Optimize>false</Optimize> - <OutputPath>bin\iPhone\Debug</OutputPath> - <DefineConstants>__IOS__;__MOBILE__;__UNIFIED__;iOS;DEBUG;</DefineConstants> - <ErrorReport>prompt</ErrorReport> - <WarningLevel>4</WarningLevel> - <MtouchArch>ARM64</MtouchArch> - <CodesignEntitlements>Entitlements.plist</CodesignEntitlements> - <CodesignKey>iPhone Developer</CodesignKey> - <MtouchDebug>true</MtouchDebug> - <MtouchExtraArgs>-gcc_flags -dead_strip</MtouchExtraArgs> - <MtouchI18n>cjk</MtouchI18n> - <CodesignProvision>ComEvoyoHomeDevelopment20200806</CodesignProvision> - <MtouchHttpClientHandler>CFNetworkHandler</MtouchHttpClientHandler> - <OnDemandResourcesInitialInstallTags> - </OnDemandResourcesInitialInstallTags> - <OnDemandResourcesInitialInstallTags> - </OnDemandResourcesInitialInstallTags> - <OnDemandResourcesPrefetchOrder> - </OnDemandResourcesPrefetchOrder> - </PropertyGroup> - <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|iPhone' "> - <DebugType>none</DebugType> - <Optimize>true</Optimize> - <OutputPath>bin\iPhone\Release</OutputPath> - <DefineConstants>__IOS__;__MOBILE__;__UNIFIED__;iOS;Release;</DefineConstants> - <ErrorReport>prompt</ErrorReport> - <WarningLevel>4</WarningLevel> - <CodesignEntitlements>Entitlements.plist</CodesignEntitlements> - <MtouchArch>ARM64</MtouchArch> - <CodesignKey>iPhone Developer: xuebiao huang (4P32GXQWWK)</CodesignKey> - <MtouchI18n>cjk</MtouchI18n> - <DeviceSpecificBuild>true</DeviceSpecificBuild> - <MtouchExtraArgs>-gcc_flags -dead_strip</MtouchExtraArgs> - <CodesignProvision>ComEvoyoHomeDevelopment20200806</CodesignProvision> - </PropertyGroup> - <ItemGroup> - <Reference Include="System" /> - <Reference Include="System.Xml" /> - <Reference Include="System.Core" /> - <Reference Include="Xamarin.iOS" /> - <Reference Include="System.Numerics" /> - <Reference Include="System.Numerics.Vectors" /> - <Reference Include="Shared.IOS"> - <HintPath>..\Shared\DLL\IOS\Shared.IOS.dll</HintPath> - </Reference> - <Reference Include="Shared.IOS.TBL"> - <HintPath>..\Shared\DLL\IOS\Shared.IOS.TBL.dll</HintPath> - </Reference> - <Reference Include="Newtonsoft.Json"> - <HintPath>..\Shared\DLL\Newtonsoft.Json.dll</HintPath> - </Reference> - <Reference Include="BouncyCastle.Crypto"> - <HintPath>..\packages\BouncyCastle.Crypto.dll.1.8.1\lib\BouncyCastle.Crypto.dll</HintPath> - </Reference> - <Reference Include="System.Net.Http" /> - <Reference Include="Shared.IOS.ESVideoPhoneSDK"> - <HintPath>..\Shared\DLL\IOS\Shared.IOS.ESVideoPhoneSDK.dll</HintPath> - </Reference> - </ItemGroup> - <ItemGroup> - <PackageReference Include="Xamarin.Essentials" Version="1.2.0" /> - <PackageReference Include="MQTTnet"> - <Version>3.0.8</Version> - </PackageReference> - <PackageReference Include="ZXing.Net.Mobile"> - <Version>2.4.1</Version> - </PackageReference> - <PackageReference Include="Microsoft.AppCenter.Crashes"> - <Version>2.6.1</Version> - </PackageReference> - <PackageReference Include="Microsoft.AppCenter"> - <Version>2.6.1</Version> - </PackageReference> - <PackageReference Include="Microsoft.AppCenter.Analytics"> - <Version>2.6.1</Version> - </PackageReference> - </ItemGroup> - <ItemGroup> - <Folder Include="Resources\" /> - <Folder Include="Resources\Phone\RoomIcon\" /> - </ItemGroup> - <ItemGroup> - <InterfaceDefinition Include="LaunchScreen.storyboard" /> - <InterfaceDefinition Include="Main.storyboard" /> - </ItemGroup> - <ItemGroup> - <None Include="Info.plist" /> - <None Include="Entitlements.plist" /> - </ItemGroup> - <ItemGroup> - <Compile Include="Main.cs" /> - <Compile Include="AppDelegate.cs" /> - <Compile Include="SceneDelegate.cs" /> - <Compile Include="ViewController.cs" /> - <Compile Include="ViewController.designer.cs"> - <DependentUpon>ViewController.cs</DependentUpon> - </Compile> - <Compile Include="MainViewController.cs" /> - <Compile Include="MainViewController.designer.cs"> - <DependentUpon>MainViewController.cs</DependentUpon> - </Compile> - <Compile Include="ViewControllerBase.cs" /> - <Compile Include="Reachability.cs" /> - <Compile Include="ZXingOverlayView.cs" /> - <Compile Include="ESVideo.cs" /> - </ItemGroup> - <ItemGroup> - <ProjectReference Include="..\Elian.iOS\Elian.iOS.csproj"> - <Project>{85F1AF50-75A6-4011-B811-56B32DA77568}</Project> - <Name>Elian.iOS</Name> - </ProjectReference> - </ItemGroup> - <ItemGroup> - <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\Contents.json"> - <Visible>false</Visible> - </ImageAsset> - <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\Contents.json"> - <Visible>false</Visible> - </ImageAsset> - <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\1920_1080.png"> - <Visible>false</Visible> - </ImageAsset> - <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\3840_2160.png"> - <Visible>false</Visible> - </ImageAsset> - <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\1242_2688.png"> - <Visible>false</Visible> - </ImageAsset> - <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\828_1792.png"> - <Visible>false</Visible> - </ImageAsset> - <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\2688_1242.png"> - <Visible>false</Visible> - </ImageAsset> - <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\1792_828.png"> - <Visible>false</Visible> - </ImageAsset> - <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\1125_2436.png"> - <Visible>false</Visible> - </ImageAsset> - <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\2436_1125.png"> - <Visible>false</Visible> - </ImageAsset> - <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\1242_2208.png"> - <Visible>false</Visible> - </ImageAsset> - <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\750_1334.png"> - <Visible>false</Visible> - </ImageAsset> - <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\2208_1242.png"> - <Visible>false</Visible> - </ImageAsset> - <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\2048_2732.png"> - <Visible>false</Visible> - </ImageAsset> - <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\640_960.png"> - <Visible>false</Visible> - </ImageAsset> - <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\640_1136.png"> - <Visible>false</Visible> - </ImageAsset> - <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\768_1024.png"> - <Visible>false</Visible> - </ImageAsset> - <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\1536_2048.png"> - <Visible>false</Visible> - </ImageAsset> - <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\1024_768.png"> - <Visible>false</Visible> - </ImageAsset> - <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\2048_1536.png"> - <Visible>false</Visible> - </ImageAsset> - <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\320_480.png"> - <Visible>false</Visible> - </ImageAsset> - <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\640_960-1.png"> - <Visible>false</Visible> - </ImageAsset> - <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\640_1136-1.png"> - <Visible>false</Visible> - </ImageAsset> - <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\768_1004.png"> - <Visible>false</Visible> - </ImageAsset> - <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\1536_2008.png"> - <Visible>false</Visible> - </ImageAsset> - <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\768_1024-1.png"> - <Visible>false</Visible> - </ImageAsset> - <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\1536_2048-1.png"> - <Visible>false</Visible> - </ImageAsset> - <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\1024_748.png"> - <Visible>false</Visible> - </ImageAsset> - <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\2048_1496.png"> - <Visible>false</Visible> - </ImageAsset> - <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\1024_768-1.png"> - <Visible>false</Visible> - </ImageAsset> - <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\2048_1536-1.png"> - <Visible>false</Visible> - </ImageAsset> - <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\1920_1080-1.png"> - <Visible>false</Visible> - </ImageAsset> - <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\3840_2160-1.png"> - <Visible>false</Visible> - </ImageAsset> - <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\40_40.png"> - <Visible>false</Visible> - </ImageAsset> - <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\60_60.png"> - <Visible>false</Visible> - </ImageAsset> - <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\58_58.png"> - <Visible>false</Visible> - </ImageAsset> - <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\87_87.png"> - <Visible>false</Visible> - </ImageAsset> - <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\80_80.png"> - <Visible>false</Visible> - </ImageAsset> - <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\120_120.png"> - <Visible>false</Visible> - </ImageAsset> - <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\120_120-1.png"> - <Visible>false</Visible> - </ImageAsset> - <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\180_180.png"> - <Visible>false</Visible> - </ImageAsset> - <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\20_20.png"> - <Visible>false</Visible> - </ImageAsset> - <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\40_40-1.png"> - <Visible>false</Visible> - </ImageAsset> - <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\29_29.png"> - <Visible>false</Visible> - </ImageAsset> - <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\58_58-1.png"> - <Visible>false</Visible> - </ImageAsset> - <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\40_40-2.png"> - <Visible>false</Visible> - </ImageAsset> - <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\80_80-1.png"> - <Visible>false</Visible> - </ImageAsset> - <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\76_76.png"> - <Visible>false</Visible> - </ImageAsset> - <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\152_152.png"> - <Visible>false</Visible> - </ImageAsset> - <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\167_167.png"> - <Visible>false</Visible> - </ImageAsset> - <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\1024_1024.png"> - <Visible>false</Visible> - </ImageAsset> - <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\120_120-2.png"> - <Visible>false</Visible> - </ImageAsset> - <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\180_180-1.png"> - <Visible>false</Visible> - </ImageAsset> - <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\58_58-2.png"> - <Visible>false</Visible> - </ImageAsset> - <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\87_87-1.png"> - <Visible>false</Visible> - </ImageAsset> - <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\80_80-2.png"> - <Visible>false</Visible> - </ImageAsset> - <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\1024_1024-1.png"> - <Visible>false</Visible> - </ImageAsset> - <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\512_512.png"> - <Visible>false</Visible> - </ImageAsset> - <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\512_512-1.png"> - <Visible>false</Visible> - </ImageAsset> - <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\1024_1024-2.png"> - <Visible>false</Visible> - </ImageAsset> - </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" /> - <BundleResource Include="Resources\Phone\Guide\WorkRoomIcon.png" /> - <BundleResource Include="Resources\Phone\Guide\Arrows2.png" /> - <BundleResource Include="Resources\Phone\Guide\Arrows1.png" /> - <BundleResource Include="Resources\Phone\Room\RoomCardView.png" /> - <BundleResource Include="Resources\Phone\Room\ItemSelected.png" /> - <BundleResource Include="Resources\Phone\Room\ItemUnSelected.png" /> - <BundleResource Include="Resources\Phone\Room\ItemUnSelected_Black.png" /> - <BundleResource Include="Resources\Phone\Room\RoomCardShadow.png" /> - <BundleResource Include="Resources\Phone\Room\FavoriteRoom.png" /> - <BundleResource Include="Resources\Phone\Room\IconBackground.png" /> - <BundleResource Include="Resources\Phone\Room\Temperature.png" /> - <BundleResource Include="Resources\Phone\Room\List.png" /> - <BundleResource Include="Resources\Phone\Room\NoNameRoom.png" /> - <BundleResource Include="Resources\Phone\Room\IconSelectedBackground.png" /> - <BundleResource Include="Resources\Phone\Room\Room_Rectangle.png" /> - <BundleResource Include="Resources\Phone\Room\RoomCardView_Name.png" /> - <BundleResource Include="Resources\Phone\Room\Humidity.png" /> - <BundleResource Include="Resources\Phone\Room\RoomShadow.png" /> - <BundleResource Include="Resources\Phone\Room\AddBackground.png" /> - <BundleResource Include="Resources\Phone\Instruct\CurtainSiphonate.png" /> - <BundleResource Include="Resources\Phone\Instruct\PanelFreshAir.png" /> - <BundleResource Include="Resources\Phone\Instruct\SensorPir.png" /> - <BundleResource Include="Resources\Phone\Instruct\RelayThreeLoad.png" /> - <BundleResource Include="Resources\Phone\Instruct\CurtainAutoOpen.png" /> - <BundleResource Include="Resources\Phone\Instruct\SensorInfrared.png" /> - <BundleResource Include="Resources\Phone\Instruct\AirSwitchCloudContr.png" /> - <BundleResource Include="Resources\Phone\Instruct\SensorTemperatureHumidity.png" /> - <BundleResource Include="Resources\Phone\Instruct\PanelFangyueTwoButton.png" /> - <BundleResource Include="Resources\Phone\Instruct\ButtonPanelSimpleEnvironment.png" /> - <BundleResource Include="Resources\Phone\Instruct\PanelCurtain.png" /> - <BundleResource Include="Resources\Phone\Instruct\PanelFangyueFourButton.png" /> - <BundleResource Include="Resources\Phone\Instruct\SensorSphericalMotion.png" /> - <BundleResource Include="Resources\Phone\Instruct\PanelFourButton.png" /> - <BundleResource Include="Resources\Phone\Instruct\AirConditionerZbGateway.png" /> - <BundleResource Include="Resources\Phone\Instruct\SensorCeilingGas.png" /> - <BundleResource Include="Resources\Phone\Instruct\IntelligentLocksH06C.png" /> - <BundleResource Include="Resources\Phone\Instruct\SensorDoorWindow.png" /> - <BundleResource Include="Resources\Phone\Instruct\ButtonPanelSimpleMultifunction.png" /> - <BundleResource Include="Resources\Phone\Instruct\SensorFire.png" /> - <BundleResource Include="Resources\Phone\Instruct\SensorPMTwoPointFive.png" /> - <BundleResource Include="Resources\Phone\Instruct\PanelThreeButton.png" /> - <BundleResource Include="Resources\Phone\Instruct\SensorCarbonMonoxide.png" /> - <BundleResource Include="Resources\Phone\Instruct\DimmableLightOneLoad.png" /> - <BundleResource Include="Resources\Phone\Instruct\PanelFangyueEightButton.png" /> - <BundleResource Include="Resources\Phone\Instruct\RepeaterZigbee.png" /> - <BundleResource Include="Resources\Phone\Instruct\SensorWater.png" /> - <BundleResource Include="Resources\Phone\Instruct\DeviceSearch.png" /> - <BundleResource Include="Resources\Phone\Instruct\PanelFangyueEnvironment.png" /> - <BundleResource Include="Resources\Phone\Instruct\PanelTwoButton.png" /> - <BundleResource Include="Resources\Phone\AC\Add.png" /> - <BundleResource Include="Resources\Phone\AC\Reduce.png" /> - <BundleResource Include="Resources\Phone\AC\Mode_Heat2.png" /> - <BundleResource Include="Resources\Phone\AC\Swing_4.png" /> - <BundleResource Include="Resources\Phone\AC\Swing_AutoSelected.png" /> - <BundleResource Include="Resources\Phone\AC\Fan_MiddleSelected.png" /> - <BundleResource Include="Resources\Phone\AC\Swing_5.png" /> - <BundleResource Include="Resources\Phone\AC\Swing_4Selected.png" /> - <BundleResource Include="Resources\Phone\AC\Fan_Height.png" /> - <BundleResource Include="Resources\Phone\AC\Swing_1.png" /> - <BundleResource Include="Resources\Phone\AC\OpenOrCloseSelected.png" /> - <BundleResource Include="Resources\Phone\AC\Swing_1Selected.png" /> - <BundleResource Include="Resources\Phone\AC\Mode_Dry.png" /> - <BundleResource Include="Resources\Phone\AC\Group.png" /> - <BundleResource Include="Resources\Phone\AC\AC_TIP.png" /> - <BundleResource Include="Resources\Phone\AC\Swing_2.png" /> - <BundleResource Include="Resources\Phone\AC\Swing_3.png" /> - <BundleResource Include="Resources\Phone\AC\Fan_Low.png" /> - <BundleResource Include="Resources\Phone\AC\Swing_2Selected.png" /> - <BundleResource Include="Resources\Phone\AC\Mode_Heat.png" /> - <BundleResource Include="Resources\Phone\AC\Mode_Fan.png" /> - <BundleResource Include="Resources\Phone\AC\Path.png" /> - <BundleResource Include="Resources\Phone\AC\Swing_Auto.png" /> - <BundleResource Include="Resources\Phone\AC\Mode_Cool.png" /> - <BundleResource Include="Resources\Phone\AC\Fan_Middle.png" /> - <BundleResource Include="Resources\Phone\AC\Mode_Fan2.png" /> - <BundleResource Include="Resources\Phone\AC\Mode_CoolSelected.png" /> - <BundleResource Include="Resources\Phone\AC\Mode_Dry2.png" /> - <BundleResource Include="Resources\Phone\AC\Swing_5Selected.png" /> - <BundleResource Include="Resources\Phone\AC\OpenOrClose.png" /> - <BundleResource Include="Resources\Phone\AC\SwingBackground.png" /> - <BundleResource Include="Resources\Phone\AC\Fan_HeightSelected.png" /> - <BundleResource Include="Resources\Phone\AC\Mode_DrySelected.png" /> - <BundleResource Include="Resources\Phone\AC\Mode_AutoSelected.png" /> - <BundleResource Include="Resources\Phone\AC\Mode_Auto.png" /> - <BundleResource Include="Resources\Phone\AC\SelectedFanModeBG.png" /> - <BundleResource Include="Resources\Phone\AC\Mode_Cool2.png" /> - <BundleResource Include="Resources\Phone\AC\Mode_HeatSelected.png" /> - <BundleResource Include="Resources\Phone\AC\Swing_3Selected.png" /> - <BundleResource Include="Resources\Phone\AC\Mode_FanSelected.png" /> - <BundleResource Include="Resources\Phone\AC\Fan_LowSelected.png" /> - <BundleResource Include="Resources\Phone\AC\SelectedModeBG.png" /> - <BundleResource Include="Resources\Phone\Loading\8.png" /> - <BundleResource Include="Resources\Phone\Loading\9.png" /> - <BundleResource Include="Resources\Phone\Loading\14.png" /> - <BundleResource Include="Resources\Phone\Loading\28.png" /> - <BundleResource Include="Resources\Phone\Loading\29.png" /> - <BundleResource Include="Resources\Phone\Loading\15.png" /> - <BundleResource Include="Resources\Phone\Loading\17.png" /> - <BundleResource Include="Resources\Phone\Loading\16.png" /> - <BundleResource Include="Resources\Phone\Loading\12.png" /> - <BundleResource Include="Resources\Phone\Loading\13.png" /> - <BundleResource Include="Resources\Phone\Loading\11.png" /> - <BundleResource Include="Resources\Phone\Loading\10.png" /> - <BundleResource Include="Resources\Phone\Loading\21.png" /> - <BundleResource Include="Resources\Phone\Loading\20.png" /> - <BundleResource Include="Resources\Phone\Loading\22.png" /> - <BundleResource Include="Resources\Phone\Loading\23.png" /> - <BundleResource Include="Resources\Phone\Loading\27.png" /> - <BundleResource Include="Resources\Phone\Loading\32.png" /> - <BundleResource Include="Resources\Phone\Loading\26.png" /> - <BundleResource Include="Resources\Phone\Loading\18.png" /> - <BundleResource Include="Resources\Phone\Loading\30.png" /> - <BundleResource Include="Resources\Phone\Loading\24.png" /> - <BundleResource Include="Resources\Phone\Loading\25.png" /> - <BundleResource Include="Resources\Phone\Loading\31.png" /> - <BundleResource Include="Resources\Phone\Loading\19.png" /> - <BundleResource Include="Resources\Phone\Loading\4.png" /> - <BundleResource Include="Resources\Phone\Loading\5.png" /> - <BundleResource Include="Resources\Phone\Loading\7.png" /> - <BundleResource Include="Resources\Phone\Loading\6.png" /> - <BundleResource Include="Resources\Phone\Loading\2.png" /> - <BundleResource Include="Resources\Phone\Loading\3.png" /> - <BundleResource Include="Resources\Phone\Loading\1.png" /> - <BundleResource Include="Resources\Phone\MenuGroud\TopRightMenu1_2.png" /> - <BundleResource Include="Resources\Phone\MenuGroud\TopRightMenu1_3.png" /> - <BundleResource Include="Resources\Phone\MenuGroud\TopRightMenu1_1.png" /> - <BundleResource Include="Resources\Phone\MenuGroud\TopRightMenu1_4.png" /> - <BundleResource Include="Resources\Phone\MenuGroud\TopRightMenu1_5.png" /> - <BundleResource Include="Resources\Phone\MenuGroud\TopRightMenu2_3.png" /> - <BundleResource Include="Resources\Phone\MenuGroud\TopRightMenu2_2.png" /> - <BundleResource Include="Resources\Phone\MenuGroud\TopRightMenu2_1.png" /> - <BundleResource Include="Resources\Phone\MenuGroud\TopRightMenu2_5.png" /> - <BundleResource Include="Resources\Phone\MenuGroud\TopRightMenu2_4.png" /> - <BundleResource Include="Resources\Phone\MenuGroud\TopRightMenu2_6.png" /> - <BundleResource Include="Resources\Phone\SceneCardIcon\8.png" /> - <BundleResource Include="Resources\Phone\SceneCardIcon\9.png" /> - <BundleResource Include="Resources\Phone\SceneCardIcon\12.png" /> - <BundleResource Include="Resources\Phone\SceneCardIcon\13.png" /> - <BundleResource Include="Resources\Phone\SceneCardIcon\11.png" /> - <BundleResource Include="Resources\Phone\SceneCardIcon\10.png" /> - <BundleResource Include="Resources\Phone\SceneCardIcon\4.png" /> - <BundleResource Include="Resources\Phone\SceneCardIcon\5.png" /> - <BundleResource Include="Resources\Phone\SceneCardIcon\7.png" /> - <BundleResource Include="Resources\Phone\SceneCardIcon\6.png" /> - <BundleResource Include="Resources\Phone\SceneCardIcon\2.png" /> - <BundleResource Include="Resources\Phone\SceneCardIcon\3.png" /> - <BundleResource Include="Resources\Phone\SceneCardIcon\1.png" /> - <BundleResource Include="Resources\Phone\SceneCardIcon\0.png" /> - <BundleResource Include="Resources\Phone\DeviceItem\MiniNightLightDevice.png" /> - <BundleResource Include="Resources\Phone\DeviceItem\PanelFangyueTwoButtonTable.png" /> - <BundleResource Include="Resources\Phone\DeviceItem\PanelTable.png" /> - <BundleResource Include="Resources\Phone\DeviceItem\PanelFangyueEightButtonTable.png" /> - <BundleResource Include="Resources\Phone\DeviceItem\ButtonPanelFangyueEnvironmentBigPic.png" /> - <BundleResource Include="Resources\Phone\DeviceItem\PanelFangyueFourButtonTable.png" /> - <BundleResource Include="Resources\Phone\Center\Abount.png" /> - <BundleResource Include="Resources\Phone\Center\ResidenceManagement.png" /> - <BundleResource Include="Resources\Phone\Center\Backup.png" /> - <BundleResource Include="Resources\Phone\Center\MenberManagement.png" /> - <BundleResource Include="Resources\Phone\Center\ImperialCrown.png" /> - <BundleResource Include="Resources\Phone\Center\Opinion.png" /> - <BundleResource Include="Resources\Phone\Center\DeviceManagement.png" /> - <BundleResource Include="Resources\Phone\Center\MainBack2.png" /> - <BundleResource Include="Resources\Phone\Center\MainBack1.png" /> - <BundleResource Include="Resources\Phone\Center\Admin.png" /> - <BundleResource Include="Resources\Phone\Center\SafetyManagement.png" /> - <BundleResource Include="Resources\Phone\FreshAir\FreshAirRealDevicePic.png" /> - <BundleResource Include="Resources\Phone\FreshAir\FreshAirPic.png" /> - <BundleResource Include="Resources\Phone\Navigation\CategorySelected.png" /> - <BundleResource Include="Resources\Phone\Navigation\Category.png" /> - <BundleResource Include="Resources\Phone\Navigation\HomeSelected.png" /> - <BundleResource Include="Resources\Phone\Navigation\Home.png" /> - <BundleResource Include="Resources\Phone\Navigation\Setting.png" /> - <BundleResource Include="Resources\Phone\Navigation\SettingSelected.png" /> - <BundleResource Include="Resources\Phone\SmartSound\PullDown.png" /> - <BundleResource Include="Resources\Phone\SmartSound\Xiaodu.png" /> - <BundleResource Include="Resources\Phone\SmartSound\Xiaoai.png" /> - <BundleResource Include="Resources\Phone\SmartSound\Nickname.png" /> - <BundleResource Include="Resources\Phone\SmartSound\SoundIcon.png" /> - <BundleResource Include="Resources\Phone\SmartSound\Tianmao.png" /> - <BundleResource Include="Resources\Phone\RollerShade\Stop.png" /> - <BundleResource Include="Resources\Phone\RollerShade\DownSelected.png" /> - <BundleResource Include="Resources\Phone\RollerShade\Up.png" /> - <BundleResource Include="Resources\Phone\RollerShade\Down.png" /> - <BundleResource Include="Resources\Phone\RollerShade\StopSelected.png" /> - <BundleResource Include="Resources\Phone\RollerShade\OpenSelected.png" /> - <BundleResource Include="Resources\Phone\RollerShade\UpSelected.png" /> - <BundleResource Include="Resources\Phone\RollerShade\Open.png" /> - <BundleResource Include="Resources\Phone\RollerShade\CloseSelected.png" /> - <BundleResource Include="Resources\Phone\RollerShade\Close.png" /> - <BundleResource Include="Resources\Phone\SceneIcon\8.png" /> - <BundleResource Include="Resources\Phone\SceneIcon\9.png" /> - <BundleResource Include="Resources\Phone\SceneIcon\12.png" /> - <BundleResource Include="Resources\Phone\SceneIcon\13.png" /> - <BundleResource Include="Resources\Phone\SceneIcon\11.png" /> - <BundleResource Include="Resources\Phone\SceneIcon\10.png" /> - <BundleResource Include="Resources\Phone\SceneIcon\4.png" /> - <BundleResource Include="Resources\Phone\SceneIcon\5.png" /> - <BundleResource Include="Resources\Phone\SceneIcon\7.png" /> - <BundleResource Include="Resources\Phone\SceneIcon\6.png" /> - <BundleResource Include="Resources\Phone\SceneIcon\2.png" /> - <BundleResource Include="Resources\Phone\SceneIcon\3.png" /> - <BundleResource Include="Resources\Phone\SceneIcon\1.png" /> - <BundleResource Include="Resources\Phone\SceneIcon\0.png" /> - <BundleResource Include="Resources\Phone\BindPic\EmptyTargets.png" /> - <BundleResource Include="Resources\Phone\BindPic\BindEmptyPic.png" /> - <BundleResource Include="Resources\Phone\BindPic\Curtain.png" /> - <BundleResource Include="Resources\Phone\BindPic\TemperaTureReduction.png" /> - <BundleResource Include="Resources\Phone\BindPic\BindLeft.png" /> - <BundleResource Include="Resources\Phone\BindPic\FreshAirIcon.png" /> - <BundleResource Include="Resources\Phone\BindPic\Roller.png" /> - <BundleResource Include="Resources\Phone\BindPic\BindAdd.png" /> - <BundleResource Include="Resources\Phone\BindPic\BindDown.png" /> - <BundleResource Include="Resources\Phone\BindPic\EmptyTargetsSelected.png" /> - <BundleResource Include="Resources\Phone\BindPic\BindRoomColor.png" /> - <BundleResource Include="Resources\Phone\BindPic\Switch.png" /> - <BundleResource Include="Resources\Phone\BindPic\TemperaTureAdd.png" /> - <BundleResource Include="Resources\Phone\BindPic\BindRight.png" /> - <BundleResource Include="Resources\Phone\BindPic\CorrectTemperatureBackGround.png" /> - <BundleResource Include="Resources\Phone\BindPic\TemperaTureAttention.png" /> - <BundleResource Include="Resources\Phone\BindPic\BindRoomColorOn.png" /> - <BundleResource Include="Resources\Phone\DoorLock\DistributeUnlockIcon.png" /> - <BundleResource Include="Resources\Phone\DoorLock\TypeIcon.png" /> - <BundleResource Include="Resources\Phone\DoorLock\LowPower.png" /> - <BundleResource Include="Resources\Phone\DoorLock\TemPasswordInvisiable.png" /> - <BundleResource Include="Resources\Phone\DoorLock\NormallyOpenOffline.png" /> - <BundleResource Include="Resources\Phone\DoorLock\UnLockButton.png" /> - <BundleResource Include="Resources\Phone\DoorLock\AddFailedPic.png" /> - <BundleResource Include="Resources\Phone\DoorLock\SelectedIcon.png" /> - <BundleResource Include="Resources\Phone\DoorLock\Fingerprint207.png" /> - <BundleResource Include="Resources\Phone\DoorLock\VolumeIconOn.png" /> - <BundleResource Include="Resources\Phone\DoorLock\DoorLockPicClose.png" /> - <BundleResource Include="Resources\Phone\DoorLock\TempPasswordBackground.png" /> - <BundleResource Include="Resources\Phone\DoorLock\AddFingerprintTipPic.png" /> - <BundleResource Include="Resources\Phone\DoorLock\FavoriteIcon.png" /> - <BundleResource Include="Resources\Phone\DoorLock\RightIcon.png" /> - <BundleResource Include="Resources\Phone\DoorLock\ShareIcon.png" /> - <BundleResource Include="Resources\Phone\DoorLock\NormallyOpen.png" /> - <BundleResource Include="Resources\Phone\DoorLock\DateIcon.png" /> - <BundleResource Include="Resources\Phone\DoorLock\DoorLockOpen.png" /> - <BundleResource Include="Resources\Phone\DoorLock\UnlockSuccess.png" /> - <BundleResource Include="Resources\Phone\DoorLock\DoorLockClose.png" /> - <BundleResource Include="Resources\Phone\DoorLock\Power60.png" /> - <BundleResource Include="Resources\Phone\DoorLock\UnLockBlankPic.png" /> - <BundleResource Include="Resources\Phone\DoorLock\Power100.png" /> - <BundleResource Include="Resources\Phone\DoorLock\DelIcon.png" /> - <BundleResource Include="Resources\Phone\DoorLock\PowerOffline.png" /> - <BundleResource Include="Resources\Phone\DoorLock\ProgressBackground.png" /> - <BundleResource Include="Resources\Phone\DoorLock\CancelIcon.png" /> - <BundleResource Include="Resources\Phone\DoorLock\TemPasswordVisiable.png" /> - <BundleResource Include="Resources\Phone\DoorLock\proximityCard.png" /> - <BundleResource Include="Resources\Phone\DoorLock\EntrySuccessIcon.png" /> - <BundleResource Include="Resources\Phone\DoorLock\proximityCardOn.png" /> - <BundleResource Include="Resources\Phone\DoorLock\RemoteUnlockIcon.png" /> - <BundleResource Include="Resources\Phone\DoorLock\MemberIcon.png" /> - <BundleResource Include="Resources\Phone\DoorLock\Left.png" /> - <BundleResource Include="Resources\Phone\DoorLock\Fingerprint.png" /> - <BundleResource Include="Resources\Phone\DoorLock\DooorLockPicOpen.png" /> - <BundleResource Include="Resources\Phone\DoorLock\DelBackground.png" /> - <BundleResource Include="Resources\Phone\DoorLock\Password.png" /> - <BundleResource Include="Resources\Phone\DoorLock\UnselectedIcon.png" /> - <BundleResource Include="Resources\Phone\DoorLock\AddIcCardTipPic.png" /> - <BundleResource Include="Resources\Phone\DoorLock\Switch.png" /> - <BundleResource Include="Resources\Phone\DoorLock\AddIcon.png" /> - <BundleResource Include="Resources\Phone\DoorLock\DoorLockUserPic.png" /> - <BundleResource Include="Resources\Phone\DoorLock\Power40.png" /> - <BundleResource Include="Resources\Phone\DoorLock\AllMethod.png" /> - <BundleResource Include="Resources\Phone\DoorLock\RecordIcon.png" /> - <BundleResource Include="Resources\Phone\DoorLock\FingerprintOn.png" /> - <BundleResource Include="Resources\Phone\DoorLock\VisitorIcon.png" /> - <BundleResource Include="Resources\Phone\DoorLock\Power80.png" /> - <BundleResource Include="Resources\Phone\DoorLock\TempPasswordBackground1.png" /> - <BundleResource Include="Resources\Phone\DoorLock\DoorlockPicture.png" /> - <BundleResource Include="Resources\Phone\DoorLock\UnlockFailed.png" /> - <BundleResource Include="Resources\Phone\DoorLock\AddPasswordTicPic.png" /> - <BundleResource Include="Resources\Phone\DoorLock\AllMethodOn.png" /> - <BundleResource Include="Resources\Phone\DoorLock\NormallyOpenOn.png" /> - <BundleResource Include="Resources\Phone\DoorLock\VolumeIcon.png" /> - <BundleResource Include="Resources\Phone\DoorLock\SettingIcon.png" /> - <BundleResource Include="Resources\Phone\DoorLock\DoorlockIcon.png" /> - <BundleResource Include="Resources\Phone\DoorLock\SideslipPic.png" /> - <BundleResource Include="Resources\Phone\DoorLock\SwitchOn.png" /> - <BundleResource Include="Resources\Phone\DoorLock\RoomPic.png" /> - <BundleResource Include="Resources\Phone\DoorLock\PasswordOn.png" /> - <BundleResource Include="Resources\Phone\DoorLock\AllMethodIcon.png" /> - <BundleResource Include="Resources\Phone\DoorLock\UnLockSideslipIcon.png" /> - <BundleResource Include="Resources\Phone\DoorLock\UndistributeIcon.png" /> - <BundleResource Include="Resources\Phone\Logo\Logo.png" /> - <BundleResource Include="Resources\Phone\Logo\StartBackGroud.png" /> - <BundleResource Include="Resources\Phone\Item\Shared.png" /> - <BundleResource Include="Resources\Phone\Item\RoomIcon.png" /> - <BundleResource Include="Resources\Phone\Item\Add.png" /> - <BundleResource Include="Resources\Phone\Item\PickerColorWheel.png" /> - <BundleResource Include="Resources\Phone\Item\Switch1.png" /> - <BundleResource Include="Resources\Phone\Item\RoomIconSelected.png" /> - <BundleResource Include="Resources\Phone\Item\Check.png" /> - <BundleResource Include="Resources\Phone\Item\ScanQrCodeGroud.png" /> - <BundleResource Include="Resources\Phone\Item\MessageManagement.png" /> - <BundleResource Include="Resources\Phone\Item\Add_GW.png" /> - <BundleResource Include="Resources\Phone\Item\Battery.png" /> - <BundleResource Include="Resources\Phone\Item\Switch2.png" /> - <BundleResource Include="Resources\Phone\Item\MessageSelected.png" /> - <BundleResource Include="Resources\Phone\Item\PhoneBook.png" /> - <BundleResource Include="Resources\Phone\Item\PersentIcon.png" /> - <BundleResource Include="Resources\Phone\Item\WrongIcon.png" /> - <BundleResource Include="Resources\Phone\Item\RoomIconBackground.png" /> - <BundleResource Include="Resources\Phone\Item\AdjustSuccessIcon.png" /> - <BundleResource Include="Resources\Phone\Item\PlusSign2.png" /> - <BundleResource Include="Resources\Phone\Item\DateSearchIcon.png" /> - <BundleResource Include="Resources\Phone\Item\Time.png" /> - <BundleResource Include="Resources\Phone\Item\DownLoad.png" /> - <BundleResource Include="Resources\Phone\Item\CloseIcon.png" /> - <BundleResource Include="Resources\Phone\Item\NotShardPic.png" /> - <BundleResource Include="Resources\Phone\Item\NoBindGW.png" /> - <BundleResource Include="Resources\Phone\Item\DownTriangle.png" /> - <BundleResource Include="Resources\Phone\Item\RightIcon.png" /> - <BundleResource Include="Resources\Phone\Item\SwitchSelected1.png" /> - <BundleResource Include="Resources\Phone\Item\DeviceLimitGroundSelected.png" /> - <BundleResource Include="Resources\Phone\Item\QRCode.png" /> - <BundleResource Include="Resources\Phone\Item\ScanQRcodeIcon.png" /> - <BundleResource Include="Resources\Phone\Item\LogicMsgIcon.png" /> - <BundleResource Include="Resources\Phone\Item\ColorTemperatureBar.png" /> - <BundleResource Include="Resources\Phone\Item\InputAccountIcon.png" /> - <BundleResource Include="Resources\Phone\Item\NormallyOpen.png" /> - <BundleResource Include="Resources\Phone\Item\ItemSelected.png" /> - <BundleResource Include="Resources\Phone\Item\UnLockSuccess.png" /> - <BundleResource Include="Resources\Phone\Item\GarrisonList.png" /> - <BundleResource Include="Resources\Phone\Item\SafetyShortcut_item.png" /> - <BundleResource Include="Resources\Phone\Item\ItemUnSelected.png" /> - <BundleResource Include="Resources\Phone\Item\NowAcctionTip.png" /> - <BundleResource Include="Resources\Phone\Item\VirtualFrame.png" /> - <BundleResource Include="Resources\Phone\Item\DeleteIcon2Selected.png" /> - <BundleResource Include="Resources\Phone\Item\FunctionCardView.png" /> - <BundleResource Include="Resources\Phone\Item\ForgotPswList.png" /> - <BundleResource Include="Resources\Phone\Item\ProgressBubbles.png" /> - <BundleResource Include="Resources\Phone\Item\Down.png" /> - <BundleResource Include="Resources\Phone\Item\SafetyShortcut.png" /> - <BundleResource Include="Resources\Phone\Item\CollectionSelected.png" /> - <BundleResource Include="Resources\Phone\Item\Room.png" /> - <BundleResource Include="Resources\Phone\Item\SeekBarIcon.png" /> - <BundleResource Include="Resources\Phone\Item\Category_FunctionBG.png" /> - <BundleResource Include="Resources\Phone\Item\Remote.png" /> - <BundleResource Include="Resources\Phone\Item\ScreeningType.png" /> - <BundleResource Include="Resources\Phone\Item\TransferOfResidenceIcon.png" /> - <BundleResource Include="Resources\Phone\Item\Safety.png" /> - <BundleResource Include="Resources\Phone\Item\UpTriangle.png" /> - <BundleResource Include="Resources\Phone\Item\CreatFloor.png" /> - <BundleResource Include="Resources\Phone\Item\CancelIcon.png" /> - <BundleResource Include="Resources\Phone\Item\WarningIcon1.png" /> - <BundleResource Include="Resources\Phone\Item\HadAuthority.png" /> - <BundleResource Include="Resources\Phone\Item\Drop_Down.png" /> - <BundleResource Include="Resources\Phone\Item\MessageManagementSelected.png" /> - <BundleResource Include="Resources\Phone\Item\HidenPWD.png" /> - <BundleResource Include="Resources\Phone\Item\House.png" /> - <BundleResource Include="Resources\Phone\Item\GwSwitchIconSelected.png" /> - <BundleResource Include="Resources\Phone\Item\MemberNotEsixtPic.png" /> - <BundleResource Include="Resources\Phone\Item\NewVersion.png" /> - <BundleResource Include="Resources\Phone\Item\RoomIconBackgroundSelected.png" /> - <BundleResource Include="Resources\Phone\Item\Point.png" /> - <BundleResource Include="Resources\Phone\Item\Search.png" /> - <BundleResource Include="Resources\Phone\Item\SwitchSelected.png" /> - <BundleResource Include="Resources\Phone\Item\Check1.png" /> - <BundleResource Include="Resources\Phone\Item\NextSelected.png" /> - <BundleResource Include="Resources\Phone\Item\SafetyShortcut_itemSelected.png" /> - <BundleResource Include="Resources\Phone\Item\Timer.png" /> - <BundleResource Include="Resources\Phone\Item\PlusSign2Selected.png" /> - <BundleResource Include="Resources\Phone\Item\ShardMenu.png" /> - <BundleResource Include="Resources\Phone\Item\UnLockFail.png" /> - <BundleResource Include="Resources\Phone\Item\ProgressMsg.png" /> - <BundleResource Include="Resources\Phone\Item\SynchronizationSelected.png" /> - <BundleResource Include="Resources\Phone\Item\BottomButtonGround.png" /> - <BundleResource Include="Resources\Phone\Item\AutoBackup.png" /> - <BundleResource Include="Resources\Phone\Item\TransferOfResidence.png" /> - <BundleResource Include="Resources\Phone\Item\BatterySelected.png" /> - <BundleResource Include="Resources\Phone\Item\Category_FunctionBGSelected.png" /> - <BundleResource Include="Resources\Phone\Item\NoFunction.png" /> - <BundleResource Include="Resources\Phone\Item\DeleteIcon2.png" /> - <BundleResource Include="Resources\Phone\Item\Switch2Selected.png" /> - <BundleResource Include="Resources\Phone\Item\MyHome.png" /> - <BundleResource Include="Resources\Phone\Item\PswSettionSelected.png" /> - <BundleResource Include="Resources\Phone\Item\SelectFloor_Left.png" /> - <BundleResource Include="Resources\Phone\Item\Add_Category.png" /> - <BundleResource Include="Resources\Phone\Item\ResidenceIcon.png" /> - <BundleResource Include="Resources\Phone\Item\SafetyShortcut_background.png" /> - <BundleResource Include="Resources\Phone\Item\Tips.png" /> - <BundleResource Include="Resources\Phone\Item\DeviceLimitGround.png" /> - <BundleResource Include="Resources\Phone\Item\Switch.png" /> - <BundleResource Include="Resources\Phone\Item\GwSwitchIcon.png" /> - <BundleResource Include="Resources\Phone\Item\DeleteIcon1.png" /> - <BundleResource Include="Resources\Phone\Item\HouseSelected.png" /> - <BundleResource Include="Resources\Phone\Item\videoIntercomNext.png" /> - <BundleResource Include="Resources\Phone\Item\Floor.png" /> - <BundleResource Include="Resources\Phone\Item\videoIntercom.png" /> - <BundleResource Include="Resources\Phone\Item\MinusSign2.png" /> - <BundleResource Include="Resources\Phone\Item\AdjustFailIcon.png" /> - <BundleResource Include="Resources\Phone\Item\NotAuthority.png" /> - <BundleResource Include="Resources\Phone\Item\IndoorUnitGround.png" /> - <BundleResource Include="Resources\Phone\Item\FixedPositionSelected.png" /> - <BundleResource Include="Resources\Phone\Item\Collection1.png" /> - <BundleResource Include="Resources\Phone\Item\CreatFloorSelected.png" /> - <BundleResource Include="Resources\Phone\Item\Collection.png" /> - <BundleResource Include="Resources\Phone\Item\SelectFloor_Right.png" /> - <BundleResource Include="Resources\Phone\Item\UpperTriangle.png" /> - <BundleResource Include="Resources\Phone\Item\SceneCard.png" /> - <BundleResource Include="Resources\Phone\Item\Next.png" /> - <BundleResource Include="Resources\Phone\Item\UnHidenPWD.png" /> - <BundleResource Include="Resources\Phone\Item\OpenIcon.png" /> - <BundleResource Include="Resources\Phone\Item\FunctionCardViewSelected.png" /> - <BundleResource Include="Resources\Phone\Item\More.png" /> - <BundleResource Include="Resources\Phone\Item\PswSettion.png" /> - <BundleResource Include="Resources\Phone\Item\MinusSign2Selected.png" /> - <BundleResource Include="Resources\Phone\Item\CollectionSelected1.png" /> - <BundleResource Include="Resources\Phone\Item\SceneMsgIcon.png" /> - <BundleResource Include="Resources\Phone\Item\Check1Selected.png" /> - <BundleResource Include="Resources\Phone\Item\FailIcon.png" /> - <BundleResource Include="Resources\Phone\Item\Message.png" /> - <BundleResource Include="Resources\Phone\Item\FixedPosition.png" /> - <BundleResource Include="Resources\Phone\Item\GarrisonListSelected.png" /> - <BundleResource Include="Resources\Phone\Item\Back.png" /> - <BundleResource Include="Resources\Phone\Item\RightNext.png" /> - <BundleResource Include="Resources\Phone\Item\FunctionViewBG.png" /> - <BundleResource Include="Resources\Phone\Item\SceneFunctionBG.png" /> - <BundleResource Include="Resources\Phone\Item\SelectHouse.png" /> - <BundleResource Include="Resources\Phone\Item\ScanQRcodeIconSelected.png" /> - <BundleResource Include="Resources\Phone\Item\InputAccountIconSelected.png" /> - <BundleResource Include="Resources\Phone\PM2.5Sensor\PmPic.png" /> - <BundleResource Include="Resources\Phone\PM2.5Sensor\TemperaturePic.png" /> - <BundleResource Include="Resources\Phone\PM2.5Sensor\HumidityPic.png" /> - <BundleResource Include="Resources\Phone\ZigeeLogic\deviceselectedbackgroundcolor.png" /> - <BundleResource Include="Resources\Phone\ZigeeLogic\sensor541.png" /> - <BundleResource Include="Resources\Phone\ZigeeLogic\add.png" /> - <BundleResource Include="Resources\Phone\ZigeeLogic\sensor0.png" /> - <BundleResource Include="Resources\Phone\ZigeeLogic\selectedsensor13.png" /> - <BundleResource Include="Resources\Phone\ZigeeLogic\noMode.png" /> - <BundleResource Include="Resources\Phone\ZigeeLogic\logicbj1.png" /> - <BundleResource Include="Resources\Phone\ZigeeLogic\dimmableLight.png" /> - <BundleResource Include="Resources\Phone\ZigeeLogic\athome.png" /> - <BundleResource Include="Resources\Phone\ZigeeLogic\function1.png" /> - <BundleResource Include="Resources\Phone\ZigeeLogic\selecteddoorlock.png" /> - <BundleResource Include="Resources\Phone\ZigeeLogic\logicbj2.png" /> - <BundleResource Include="Resources\Phone\ZigeeLogic\lesLuminositys.png" /> - <BundleResource Include="Resources\Phone\ZigeeLogic\nosecurity.png" /> - <BundleResource Include="Resources\Phone\ZigeeLogic\time.png" /> - <BundleResource Include="Resources\Phone\ZigeeLogic\selectedsenor.png" /> - <BundleResource Include="Resources\Phone\ZigeeLogic\position.png" /> - <BundleResource Include="Resources\Phone\ZigeeLogic\noon.png" /> - <BundleResource Include="Resources\Phone\ZigeeLogic\selectedmonth.png" /> - <BundleResource Include="Resources\Phone\ZigeeLogic\selectedsensor277.png" /> - <BundleResource Include="Resources\Phone\ZigeeLogic\ac.png" /> - <BundleResource Include="Resources\Phone\ZigeeLogic\curtain.png" /> - <BundleResource Include="Resources\Phone\ZigeeLogic\doorlock.png" /> - <BundleResource Include="Resources\Phone\ZigeeLogic\progressbtn2.png" /> - <BundleResource Include="Resources\Phone\ZigeeLogic\nodelay.png" /> - <BundleResource Include="Resources\Phone\ZigeeLogic\addLuminosity.png" /> - <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" /> - <BundleResource Include="Resources\Phone\ZigeeLogic\Ddmmablelight.png" /> - <BundleResource Include="Resources\Phone\ZigeeLogic\security1.png" /> - <BundleResource Include="Resources\Phone\ZigeeLogic\delay.png" /> - <BundleResource Include="Resources\Phone\ZigeeLogic\sunrise.png" /> - <BundleResource Include="Resources\Phone\ZigeeLogic\progressbtn_2.png" /> - <BundleResource Include="Resources\Phone\ZigeeLogic\temperature.png" /> - <BundleResource Include="Resources\Phone\ZigeeLogic\AddSelected.png" /> - <BundleResource Include="Resources\Phone\ZigeeLogic\nightLightSelected.png" /> - <BundleResource Include="Resources\Phone\ZigeeLogic\seek.png" /> - <BundleResource Include="Resources\Phone\ZigeeLogic\light_1.png" /> - <BundleResource Include="Resources\Phone\ZigeeLogic\sign.png" /> - <BundleResource Include="Resources\Phone\ZigeeLogic\selected.png" /> - <BundleResource Include="Resources\Phone\ZigeeLogic\connect.png" /> - <BundleResource Include="Resources\Phone\ZigeeLogic\scene1.png" /> - <BundleResource Include="Resources\Phone\ZigeeLogic\point.png" /> - <BundleResource Include="Resources\Phone\ZigeeLogic\airswitch.png" /> - <BundleResource Include="Resources\Phone\ZigeeLogic\leavehome.png" /> - <BundleResource Include="Resources\Phone\ZigeeLogic\timeparagraph.png" /> - <BundleResource Include="Resources\Phone\ZigeeLogic\light.png" /> - <BundleResource Include="Resources\Phone\ZigeeLogic\selectedsensor44.png" /> - <BundleResource Include="Resources\Phone\ZigeeLogic\selectedsensor541.png" /> - <BundleResource Include="Resources\Phone\ZigeeLogic\back1.png" /> - <BundleResource Include="Resources\Phone\ZigeeLogic\selectedpanel.png" /> - <BundleResource Include="Resources\Phone\ZigeeLogic\nofunction.png" /> - <BundleResource Include="Resources\Phone\ZigeeLogic\panel.png" /> - <BundleResource Include="Resources\Phone\ZigeeLogic\sensor277.png" /> - <BundleResource Include="Resources\Phone\ZigeeLogic\selectedsensor43.png" /> - <BundleResource Include="Resources\Phone\ZigeeLogic\selectedsensor42.png" /> - <BundleResource Include="Resources\Phone\ZigeeLogic\sensor22.png" /> - <BundleResource Include="Resources\Phone\ZigeeLogic\iconBackgroundColor.png" /> - <BundleResource Include="Resources\Phone\ZigeeLogic\dropdown.png" /> - <BundleResource Include="Resources\Phone\ZigeeLogic\lockadd.png" /> - <BundleResource Include="Resources\Phone\ZigeeLogic\selectedhumidity.png" /> - <BundleResource Include="Resources\Phone\ZigeeLogic\delay1.png" /> - <BundleResource Include="Resources\Phone\ZigeeLogic\selectedlight.png" /> - <BundleResource Include="Resources\Phone\ZigeeLogic\selectedsensor40.png" /> - <BundleResource Include="Resources\Phone\ZigeeLogic\deviceunselectedbackgroundcolor.png" /> - <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" /> - <BundleResource Include="Resources\Phone\ZigeeLogic\noscene.png" /> - <BundleResource Include="Resources\Phone\ZigeeLogic\selecteddimmableLight.png" /> - <BundleResource Include="Resources\Phone\ZigeeLogic\timepoint.png" /> - <BundleResource Include="Resources\Phone\ZigeeLogic\sensor40.png" /> - <BundleResource Include="Resources\Phone\ZigeeLogic\humidity.png" /> - <BundleResource Include="Resources\Phone\ZigeeLogic\tipIcon.png" /> - <BundleResource Include="Resources\Phone\ZigeeLogic\2.png" /> - <BundleResource Include="Resources\Phone\ZigeeLogic\selectedac.png" /> - <BundleResource Include="Resources\Phone\ZigeeLogic\openMode.png" /> - <BundleResource Include="Resources\Phone\ZigeeLogic\selectedsensor21.png" /> - <BundleResource Include="Resources\Phone\ZigeeLogic\nextIconSone.png" /> - <BundleResource Include="Resources\Phone\ZigeeLogic\3.png" /> - <BundleResource Include="Resources\Phone\ZigeeLogic\back.png" /> - <BundleResource Include="Resources\Phone\ZigeeLogic\selectedtemperature.png" /> - <BundleResource Include="Resources\Phone\ZigeeLogic\selectedairswitch.png" /> - <BundleResource Include="Resources\Phone\ZigeeLogic\sunset.png" /> - <BundleResource Include="Resources\Phone\ZigeeLogic\sensor43.png" /> - <BundleResource Include="Resources\Phone\ZigeeLogic\scene.png" /> - <BundleResource Include="Resources\Phone\ZigeeLogic\1.png" /> - <BundleResource Include="Resources\Phone\ZigeeLogic\selectedcurtain.png" /> - <BundleResource Include="Resources\Phone\ZigeeLogic\selectedsensor22.png" /> - <BundleResource Include="Resources\Phone\ZigeeLogic\drop-down.png" /> - <BundleResource Include="Resources\Phone\ZigeeLogic\logicopen.png" /> - <BundleResource Include="Resources\Phone\ZigeeLogic\sensor42.png" /> - <BundleResource Include="Resources\Phone\Device\DimmableLightSelected.png" /> - <BundleResource Include="Resources\Phone\Device\CurtainSiphonate.png" /> - <BundleResource Include="Resources\Phone\Device\Socket1Selected2.png" /> - <BundleResource Include="Resources\Phone\Device\DimmableLight.png" /> - <BundleResource Include="Resources\Phone\Device\ColorLightTemperatureSelected2.png" /> - <BundleResource Include="Resources\Phone\Device\ButtonPanelTwo.png" /> - <BundleResource Include="Resources\Phone\Device\RelayEpointSelected2.png" /> - <BundleResource Include="Resources\Phone\Device\ConverterZb485Selected2.png" /> - <BundleResource Include="Resources\Phone\Device\ButtonPanelSimpleMultifunctionSelected2.png" /> - <BundleResource Include="Resources\Phone\Device\ButtonPanelCurtainSelected2.png" /> - <BundleResource Include="Resources\Phone\Device\DimmableLightSelected2.png" /> - <BundleResource Include="Resources\Phone\Device\SensorPir.png" /> - <BundleResource Include="Resources\Phone\Device\SensorSphericalMotionSelected2.png" /> - <BundleResource Include="Resources\Phone\Device\SensorFireSelected2.png" /> - <BundleResource Include="Resources\Phone\Device\ButtonPanelFangyueEnvironmentSelected.png" /> - <BundleResource Include="Resources\Phone\Device\LightSelected.png" /> - <BundleResource Include="Resources\Phone\Device\RelaySelected2.png" /> - <BundleResource Include="Resources\Phone\Device\ColorLightTemperatureSelected.png" /> - <BundleResource Include="Resources\Phone\Device\ColorLightTemperature.png" /> - <BundleResource Include="Resources\Phone\Device\SensorWaterSelected2.png" /> - <BundleResource Include="Resources\Phone\Device\SensorHumiditySelected.png" /> - <BundleResource Include="Resources\Phone\Device\RelayThreeLoad.png" /> - <BundleResource Include="Resources\Phone\Device\CurtainAutoOpen.png" /> - <BundleResource Include="Resources\Phone\Device\SensorTemperatureSelected2.png" /> - <BundleResource Include="Resources\Phone\Device\IntelligentLocksH06CSelected.png" /> - <BundleResource Include="Resources\Phone\Device\CurtainSelected2.png" /> - <BundleResource Include="Resources\Phone\Device\Relay.png" /> - <BundleResource Include="Resources\Phone\Device\AirQualitySensorEpoint.png" /> - <BundleResource Include="Resources\Phone\Device\SensorWaterSelected.png" /> - <BundleResource Include="Resources\Phone\Device\SensorInfrared.png" /> - <BundleResource Include="Resources\Phone\Device\ButtonPanelFangyueFreshAir.png" /> - <BundleResource Include="Resources\Phone\Device\Curtain.png" /> - <BundleResource Include="Resources\Phone\Device\SwitchSelected2.png" /> - <BundleResource Include="Resources\Phone\Device\AirSwitchCloudContr.png" /> - <BundleResource Include="Resources\Phone\Device\Socket1.png" /> - <BundleResource Include="Resources\Phone\Device\AirConditionerSelected2.png" /> - <BundleResource Include="Resources\Phone\Device\RelayThreeLoadSelected2.png" /> - <BundleResource Include="Resources\Phone\Device\ButtonPanelSelected2.png" /> - <BundleResource Include="Resources\Phone\Device\SensorCarbonMonoxideSelected.png" /> - <BundleResource Include="Resources\Phone\Device\ButtonPanelFour.png" /> - <BundleResource Include="Resources\Phone\Device\RelayEpointSelected.png" /> - <BundleResource Include="Resources\Phone\Device\SensorCeilingGasSelected.png" /> - <BundleResource Include="Resources\Phone\Device\ButtonPanelSelected.png" /> - <BundleResource Include="Resources\Phone\Device\SensorTemperatureHumidity.png" /> - <BundleResource Include="Resources\Phone\Device\RepeaterZigbeeSelected2.png" /> - <BundleResource Include="Resources\Phone\Device\ButtonPanelCurtainSelected.png" /> - <BundleResource Include="Resources\Phone\Device\SensorDoorWindowSelected2.png" /> - <BundleResource Include="Resources\Phone\Device\RelayThreeLoadSelected.png" /> - <BundleResource Include="Resources\Phone\Device\DryContactSelected2.png" /> - <BundleResource Include="Resources\Phone\Device\ButtonPanelCurtain.png" /> - <BundleResource Include="Resources\Phone\Device\SensorCarbonMonoxideSelected2.png" /> - <BundleResource Include="Resources\Phone\Device\ConverterZb485.png" /> - <BundleResource Include="Resources\Phone\Device\ButtonPanelFangyueFreshAirSelected.png" /> - <BundleResource Include="Resources\Phone\Device\Repeater.png" /> - <BundleResource Include="Resources\Phone\Device\ButtonPanelFangyueFour.png" /> - <BundleResource Include="Resources\Phone\Device\SensorInfraredSelected2.png" /> - <BundleResource Include="Resources\Phone\Device\SensorHumidity.png" /> - <BundleResource Include="Resources\Phone\Device\AirConditionerEpointSelected.png" /> - <BundleResource Include="Resources\Phone\Device\CurtainAutoOpenSelected.png" /> - <BundleResource Include="Resources\Phone\Device\Sensor.png" /> - <BundleResource Include="Resources\Phone\Device\FreshAirEpointSelected2.png" /> - <BundleResource Include="Resources\Phone\Device\RepeaterSelected.png" /> - <BundleResource Include="Resources\Phone\Device\SensorCeilingGasSelected2.png" /> - <BundleResource Include="Resources\Phone\Device\AirSwitchSelected2.png" /> - <BundleResource Include="Resources\Phone\Device\ConverterSelected2.png" /> - <BundleResource Include="Resources\Phone\Device\AirSwitchSelected.png" /> - <BundleResource Include="Resources\Phone\Device\AirQualitySensorEpointSelected.png" /> - <BundleResource Include="Resources\Phone\Device\SensorMotionSelected.png" /> - <BundleResource Include="Resources\Phone\Device\IntelligentLocksSelected.png" /> - <BundleResource Include="Resources\Phone\Device\RelaySelected.png" /> - <BundleResource Include="Resources\Phone\Device\Socket1Selected.png" /> - <BundleResource Include="Resources\Phone\Device\IntelligentLocks.png" /> - <BundleResource Include="Resources\Phone\Device\ButtonPanelSimpleEnvironment.png" /> - <BundleResource Include="Resources\Phone\Device\ConverterZb485Selected.png" /> - <BundleResource Include="Resources\Phone\Device\ColorLightSelected.png" /> - <BundleResource Include="Resources\Phone\Device\SensorEmergencyButton.png" /> - <BundleResource Include="Resources\Phone\Device\AirSwitch.png" /> - <BundleResource Include="Resources\Phone\Device\IntelligentLocksH06CSelected2.png" /> - <BundleResource Include="Resources\Phone\Device\SwitchSelected.png" /> - <BundleResource Include="Resources\Phone\Device\ButtonPanelTwoSelected.png" /> - <BundleResource Include="Resources\Phone\Device\SensorDoorWindowSelected.png" /> - <BundleResource Include="Resources\Phone\Device\Light.png" /> - <BundleResource Include="Resources\Phone\Device\ButtonPanelFangyueTwoSelected.png" /> - <BundleResource Include="Resources\Phone\Device\ThirdPartyDevice.png" /> - <BundleResource Include="Resources\Phone\Device\AirConditionerZbGatewaySelected2.png" /> - <BundleResource Include="Resources\Phone\Device\ButtonPanelFangyueEightSelected.png" /> - <BundleResource Include="Resources\Phone\Device\SensorMotion.png" /> - <BundleResource Include="Resources\Phone\Device\SensorSphericalMotion.png" /> - <BundleResource Include="Resources\Phone\Device\ButtonPanelFangyueEnvironment.png" /> - <BundleResource Include="Resources\Phone\Device\ButtonPanelOneSelected2.png" /> - <BundleResource Include="Resources\Phone\Device\ButtonPanelSimpleMultifunctionSelected.png" /> - <BundleResource Include="Resources\Phone\Device\AirConditionerEpoint.png" /> - <BundleResource Include="Resources\Phone\Device\SensorTemperatureHumiditySelected2.png" /> - <BundleResource Include="Resources\Phone\Device\AirConditionerEpointSelected2.png" /> - <BundleResource Include="Resources\Phone\Device\SensorPMTwoPointFiveSelected2.png" /> - <BundleResource Include="Resources\Phone\Device\DryContactSelected.png" /> - <BundleResource Include="Resources\Phone\Device\CurtainSelected.png" /> - <BundleResource Include="Resources\Phone\Device\ButtonPanelSimpleEnvironmentSelected.png" /> - <BundleResource Include="Resources\Phone\Device\Converter.png" /> - <BundleResource Include="Resources\Phone\Device\AirConditioner.png" /> - <BundleResource Include="Resources\Phone\Device\SensorFireSelected.png" /> - <BundleResource Include="Resources\Phone\Device\ColorLight.png" /> - <BundleResource Include="Resources\Phone\Device\AirConditionerZbGatewaySelected.png" /> - <BundleResource Include="Resources\Phone\Device\AirQualitySensorEpointSelected2.png" /> - <BundleResource Include="Resources\Phone\Device\Switch.png" /> - <BundleResource Include="Resources\Phone\Device\AirConditionerSelected.png" /> - <BundleResource Include="Resources\Phone\Device\ButtonPanel.png" /> - <BundleResource Include="Resources\Phone\Device\ButtonPanelTwoSelected2.png" /> - <BundleResource Include="Resources\Phone\Device\FreshAirEpointSelected.png" /> - <BundleResource Include="Resources\Phone\Device\SensorEmergencyButtonSelected.png" /> - <BundleResource Include="Resources\Phone\Device\AirConditionerZbGateway.png" /> - <BundleResource Include="Resources\Phone\Device\DryContact.png" /> - <BundleResource Include="Resources\Phone\Device\AirSwitchCloudContrSelected2.png" /> - <BundleResource Include="Resources\Phone\Device\ButtonPanelFourSelected.png" /> - <BundleResource Include="Resources\Phone\Device\ButtonPanelOneSelected.png" /> - <BundleResource Include="Resources\Phone\Device\SensorPirSelected.png" /> - <BundleResource Include="Resources\Phone\Device\SensorCeilingGas.png" /> - <BundleResource Include="Resources\Phone\Device\CurtainSiphonateSelected2.png" /> - <BundleResource Include="Resources\Phone\Device\LightSelected2.png" /> - <BundleResource Include="Resources\Phone\Device\ButtonPanelThreeSelected.png" /> - <BundleResource Include="Resources\Phone\Device\IntelligentLocksH06C.png" /> - <BundleResource Include="Resources\Phone\Device\ButtonPanelFangyueEightSelected2.png" /> - <BundleResource Include="Resources\Phone\Device\SensorPMTwoPointFiveSelected.png" /> - <BundleResource Include="Resources\Phone\Device\IntelligentLocksSelected2.png" /> - <BundleResource Include="Resources\Phone\Device\CurtainSiphonateSelected.png" /> - <BundleResource Include="Resources\Phone\Device\SensorDoorWindow.png" /> - <BundleResource Include="Resources\Phone\Device\ButtonPanelSimpleMultifunction.png" /> - <BundleResource Include="Resources\Phone\Device\ButtonPanelOne.png" /> - <BundleResource Include="Resources\Phone\Device\ButtonPanelFangyueEight.png" /> - <BundleResource Include="Resources\Phone\Device\CurtainAutoOpenSelected2.png" /> - <BundleResource Include="Resources\Phone\Device\ButtonPanelFangyueFourSelected.png" /> - <BundleResource Include="Resources\Phone\Device\ThirdPartyDeviceSelected2.png" /> - <BundleResource Include="Resources\Phone\Device\ThirdPartyDeviceSelected.png" /> - <BundleResource Include="Resources\Phone\Device\SensorTemperature.png" /> - <BundleResource Include="Resources\Phone\Device\SensorFire.png" /> - <BundleResource Include="Resources\Phone\Device\DimmableLightOneLoadSelected.png" /> - <BundleResource Include="Resources\Phone\Device\SensorTemperatureSelected.png" /> - <BundleResource Include="Resources\Phone\Device\ButtonPanelFangyueTwoSelected2.png" /> - <BundleResource Include="Resources\Phone\Device\FreshAirEpoint.png" /> - <BundleResource Include="Resources\Phone\Device\ColorLightSelected2.png" /> - <BundleResource Include="Resources\Phone\Device\DimmableLightOneLoadSelected2.png" /> - <BundleResource Include="Resources\Phone\Device\ButtonPanelThree.png" /> - <BundleResource Include="Resources\Phone\Device\SensorInfraredSelected.png" /> - <BundleResource Include="Resources\Phone\Device\RepeaterSelected2.png" /> - <BundleResource Include="Resources\Phone\Device\SensorPMTwoPointFive.png" /> - <BundleResource Include="Resources\Phone\Device\ConverterSelected.png" /> - <BundleResource Include="Resources\Phone\Device\SensorEmergencyButtonSelected2.png" /> - <BundleResource Include="Resources\Phone\Device\RepeaterZigbeeSelected.png" /> - <BundleResource Include="Resources\Phone\Device\SensorCarbonMonoxide.png" /> - <BundleResource Include="Resources\Phone\Device\ButtonPanelFourSelected2.png" /> - <BundleResource Include="Resources\Phone\Device\SensorSphericalMotionSelected.png" /> - <BundleResource Include="Resources\Phone\Device\DimmableLightOneLoad.png" /> - <BundleResource Include="Resources\Phone\Device\SensorHumiditySelected2.png" /> - <BundleResource Include="Resources\Phone\Device\SensorPirSelected2.png" /> - <BundleResource Include="Resources\Phone\Device\SensorMotionSelected2.png" /> - <BundleResource Include="Resources\Phone\Device\ButtonPanelSimpleEnvironmentSelected2.png" /> - <BundleResource Include="Resources\Phone\Device\AirSwitchCloudContrSelected.png" /> - <BundleResource Include="Resources\Phone\Device\ButtonPanelFangyueTwo.png" /> - <BundleResource Include="Resources\Phone\Device\RelayEpoint.png" /> - <BundleResource Include="Resources\Phone\Device\SensorSelected2.png" /> - <BundleResource Include="Resources\Phone\Device\RepeaterZigbee.png" /> - <BundleResource Include="Resources\Phone\Device\SensorWater.png" /> - <BundleResource Include="Resources\Phone\Device\ButtonPanelThreeSelected2.png" /> - <BundleResource Include="Resources\Phone\Device\SensorSelected.png" /> - <BundleResource Include="Resources\Phone\Device\ButtonPanelFangyueFreshAirSelected2.png" /> - <BundleResource Include="Resources\Phone\Device\SensorTemperatureHumiditySelected.png" /> - <BundleResource Include="Resources\Phone\Device\ButtonPanelFangyueFourSelected2.png" /> - <BundleResource Include="Resources\Phone\Device\ButtonPanelFangyueEnvironmentSelected2.png" /> - <BundleResource Include="Resources\Phone\Light\DeskLampSelected.png" /> - <BundleResource Include="Resources\Phone\Light\ON.png" /> - <BundleResource Include="Resources\Phone\Light\Plug.png" /> - <BundleResource Include="Resources\Phone\Light\PlugSelected.png" /> - <BundleResource Include="Resources\Phone\Light\OFFSelected.png" /> - <BundleResource Include="Resources\Phone\Light\ONSelected.png" /> - <BundleResource Include="Resources\Phone\Light\OFF.png" /> - <BundleResource Include="Resources\Phone\Light\OnOff.png" /> - <BundleResource Include="Resources\Phone\Light\DeskLamp.png" /> - <BundleResource Include="Resources\Phone\Safeguard\WithdrawGarrison.png" /> - <BundleResource Include="Resources\Phone\Safeguard\SafetyShortcut.png" /> - <BundleResource Include="Resources\Phone\Safeguard\ProtectionRemoveHomeSelected.png" /> - <BundleResource Include="Resources\Phone\Safeguard\ProtectionRemoveHome.png" /> - <BundleResource Include="Resources\Phone\Safeguard\WithdrawGarrisonSelected.png" /> - <BundleResource Include="Resources\Phone\Safeguard\SafeguardPasswordGround.png" /> - <BundleResource Include="Resources\Phone\Safeguard\SafetyShortcutSelected.png" /> - <BundleResource Include="Resources\Phone\Safeguard\ProtectionAtHomeSelected.png" /> - <BundleResource Include="Resources\Phone\Safeguard\ProtectionAtHome.png" /> - <BundleResource Include="Resources\Phone\Floor\SelectFloor_Left_5.png" /> - <BundleResource Include="Resources\Phone\Floor\SelectFloor_Left_4.png" /> - <BundleResource Include="Resources\Phone\Floor\SelectFloor_Right_4.png" /> - <BundleResource Include="Resources\Phone\Floor\SelectFloor_Right_5.png" /> - <BundleResource Include="Resources\Phone\Floor\SelectFloor_Right_1.png" /> - <BundleResource Include="Resources\Phone\Floor\SelectFloor_Left_3.png" /> - <BundleResource Include="Resources\Phone\Floor\SelectFloor_Left_2.png" /> - <BundleResource Include="Resources\Phone\Floor\SelectFloor_Right_2.png" /> - <BundleResource Include="Resources\Phone\Floor\FloorSelected.png" /> - <BundleResource Include="Resources\Phone\Floor\SelectFloor_Left_1.png" /> - <BundleResource Include="Resources\Phone\Floor\SelectFloor_Right_3.png" /> - <BundleResource Include="Resources\Phone\Floor\Floor.png" /> - <BundleResource Include="Resources\Phone\Account\Logo_WhiteHome.png" /> - <BundleResource Include="Resources\Phone\Account\Code.png" /> - <BundleResource Include="Resources\Phone\Account\Cancle.png" /> - <BundleResource Include="Resources\Phone\Account\HidePwd.png" /> - <BundleResource Include="Resources\Phone\Account\Account.png" /> - <BundleResource Include="Resources\Phone\Account\Cat.png" /> - <BundleResource Include="Resources\Phone\Account\Password.png" /> - <BundleResource Include="Resources\Phone\Account\QQ.png" /> - <BundleResource Include="Resources\Phone\Account\Logo_Evoyo.png" /> - <BundleResource Include="Resources\Phone\Account\PhoneEmail_White.png" /> - <BundleResource Include="Resources\Phone\Account\ChangeSuccess.png" /> - <BundleResource Include="Resources\Phone\Account\Wechat.png" /> - <BundleResource Include="Resources\Phone\Account\Logo_loginBG.png" /> - <BundleResource Include="Resources\Phone\Account\Back.png" /> - <BundleResource Include="Resources\Phone\Account\UnhidePwd.png" /> - <BundleResource Include="Resources\Phone\Scene\SceneShadow.png" /> - <BundleResource Include="Resources\Phone\Scene\Delaying.png" /> - <BundleResource Include="Resources\Phone\Scene\SceneActionGroud.png" /> - <BundleResource Include="Resources\Phone\Scene\Selected.png" /> - <BundleResource Include="Resources\Phone\Scene\Background.png" /> - <BundleResource Include="Resources\Phone\Scene\SceneIcon.png" /> - <BundleResource Include="Resources\Phone\FunctionIcon\17Icon.png" /> - <BundleResource Include="Resources\Phone\FunctionIcon\5IconSelected2.png" /> - <BundleResource Include="Resources\Phone\FunctionIcon\11IconSelected2.png" /> - <BundleResource Include="Resources\Phone\FunctionIcon\4Icon.png" /> - <BundleResource Include="Resources\Phone\FunctionIcon\28Icon.png" /> - <BundleResource Include="Resources\Phone\FunctionIcon\16IconSelected.png" /> - <BundleResource Include="Resources\Phone\FunctionIcon\6IconSelected.png" /> - <BundleResource Include="Resources\Phone\FunctionIcon\24IconSelected2.png" /> - <BundleResource Include="Resources\Phone\FunctionIcon\24IconSelected.png" /> - <BundleResource Include="Resources\Phone\FunctionIcon\9IconSelected.png" /> - <BundleResource Include="Resources\Phone\FunctionIcon\19IconSelected.png" /> - <BundleResource Include="Resources\Phone\FunctionIcon\21Icon.png" /> - <BundleResource Include="Resources\Phone\FunctionIcon\23IconSelected.png" /> - <BundleResource Include="Resources\Phone\FunctionIcon\20IconSelected2.png" /> - <BundleResource Include="Resources\Phone\FunctionIcon\20Icon.png" /> - <BundleResource Include="Resources\Phone\FunctionIcon\16Icon.png" /> - <BundleResource Include="Resources\Phone\FunctionIcon\1IconSelected.png" /> - <BundleResource Include="Resources\Phone\FunctionIcon\11IconSelected.png" /> - <BundleResource Include="Resources\Phone\FunctionIcon\5Icon.png" /> - <BundleResource Include="Resources\Phone\FunctionIcon\1IconSelected2.png" /> - <BundleResource Include="Resources\Phone\FunctionIcon\15IconSelected2.png" /> - <BundleResource Include="Resources\Phone\FunctionIcon\22Icon.png" /> - <BundleResource Include="Resources\Phone\FunctionIcon\10IconSelected2.png" /> - <BundleResource Include="Resources\Phone\FunctionIcon\22IconSelected.png" /> - <BundleResource Include="Resources\Phone\FunctionIcon\4IconSelected2.png" /> - <BundleResource Include="Resources\Phone\FunctionIcon\7Icon.png" /> - <BundleResource Include="Resources\Phone\FunctionIcon\10IconSelected.png" /> - <BundleResource Include="Resources\Phone\FunctionIcon\14Icon.png" /> - <BundleResource Include="Resources\Phone\FunctionIcon\25IconSelected2.png" /> - <BundleResource Include="Resources\Phone\FunctionIcon\6Icon.png" /> - <BundleResource Include="Resources\Phone\FunctionIcon\21IconSelected2.png" /> - <BundleResource Include="Resources\Phone\FunctionIcon\15Icon.png" /> - <BundleResource Include="Resources\Phone\FunctionIcon\17IconSelected.png" /> - <BundleResource Include="Resources\Phone\FunctionIcon\7IconSelected.png" /> - <BundleResource Include="Resources\Phone\FunctionIcon\14IconSelected2.png" /> - <BundleResource Include="Resources\Phone\FunctionIcon\25IconSelected.png" /> - <BundleResource Include="Resources\Phone\FunctionIcon\8IconSelected.png" /> - <BundleResource Include="Resources\Phone\FunctionIcon\18IconSelected.png" /> - <BundleResource Include="Resources\Phone\FunctionIcon\23Icon.png" /> - <BundleResource Include="Resources\Phone\FunctionIcon\26Icon.png" /> - <BundleResource Include="Resources\Phone\FunctionIcon\20IconSelected.png" /> - <BundleResource Include="Resources\Phone\FunctionIcon\19Icon.png" /> - <BundleResource Include="Resources\Phone\FunctionIcon\18IconSelected2.png" /> - <BundleResource Include="Resources\Phone\FunctionIcon\26IconSelected2.png" /> - <BundleResource Include="Resources\Phone\FunctionIcon\13IconSelected2.png" /> - <BundleResource Include="Resources\Phone\FunctionIcon\3Icon.png" /> - <BundleResource Include="Resources\Phone\FunctionIcon\10Icon.png" /> - <BundleResource Include="Resources\Phone\FunctionIcon\7IconSelected2.png" /> - <BundleResource Include="Resources\Phone\FunctionIcon\12IconSelected.png" /> - <BundleResource Include="Resources\Phone\FunctionIcon\2IconSelected.png" /> - <BundleResource Include="Resources\Phone\FunctionIcon\28IconSelected.png" /> - <BundleResource Include="Resources\Phone\FunctionIcon\5IconSelected.png" /> - <BundleResource Include="Resources\Phone\FunctionIcon\15IconSelected.png" /> - <BundleResource Include="Resources\Phone\FunctionIcon\17IconSelected2.png" /> - <BundleResource Include="Resources\Phone\FunctionIcon\3IconSelected2.png" /> - <BundleResource Include="Resources\Phone\FunctionIcon\2Icon.png" /> - <BundleResource Include="Resources\Phone\FunctionIcon\11Icon.png" /> - <BundleResource Include="Resources\Phone\FunctionIcon\27Icon.png" /> - <BundleResource Include="Resources\Phone\FunctionIcon\8IconSelected2.png" /> - <BundleResource Include="Resources\Phone\FunctionIcon\22IconSelected2.png" /> - <BundleResource Include="Resources\Phone\FunctionIcon\18Icon.png" /> - <BundleResource Include="Resources\Phone\FunctionIcon\27IconSelected.png" /> - <BundleResource Include="Resources\Phone\FunctionIcon\19IconSelected2.png" /> - <BundleResource Include="Resources\Phone\FunctionIcon\27IconSelected2.png" /> - <BundleResource Include="Resources\Phone\FunctionIcon\4IconSelected.png" /> - <BundleResource Include="Resources\Phone\FunctionIcon\14IconSelected.png" /> - <BundleResource Include="Resources\Phone\FunctionIcon\13Icon.png" /> - <BundleResource Include="Resources\Phone\FunctionIcon\6IconSelected2.png" /> - <BundleResource Include="Resources\Phone\FunctionIcon\25Icon.png" /> - <BundleResource Include="Resources\Phone\FunctionIcon\12IconSelected2.png" /> - <BundleResource Include="Resources\Phone\FunctionIcon\9Icon.png" /> - <BundleResource Include="Resources\Phone\FunctionIcon\26IconSelected.png" /> - <BundleResource Include="Resources\Phone\FunctionIcon\21IconSelected.png" /> - <BundleResource Include="Resources\Phone\FunctionIcon\24Icon.png" /> - <BundleResource Include="Resources\Phone\FunctionIcon\2IconSelected2.png" /> - <BundleResource Include="Resources\Phone\FunctionIcon\8Icon.png" /> - <BundleResource Include="Resources\Phone\FunctionIcon\28IconSelected2.png" /> - <BundleResource Include="Resources\Phone\FunctionIcon\16IconSelected2.png" /> - <BundleResource Include="Resources\Phone\FunctionIcon\23IconSelected2.png" /> - <BundleResource Include="Resources\Phone\FunctionIcon\12Icon.png" /> - <BundleResource Include="Resources\Phone\FunctionIcon\13IconSelected.png" /> - <BundleResource Include="Resources\Phone\FunctionIcon\3IconSelected.png" /> - <BundleResource Include="Resources\Phone\FunctionIcon\9IconSelected2.png" /> - <BundleResource Include="Resources\Phone\FunctionIcon\1Icon.png" /> - <BundleResource Include="Resources\Phone\RealDevice\CurtainSiphonate.png" /> - <BundleResource Include="Resources\Phone\RealDevice\ButtonPanelTwo.png" /> - <BundleResource Include="Resources\Phone\RealDevice\SensorPir.png" /> - <BundleResource Include="Resources\Phone\RealDevice\RelayThreeLoad.png" /> - <BundleResource Include="Resources\Phone\RealDevice\ButtonPanelFourNotPower.png" /> - <BundleResource Include="Resources\Phone\RealDevice\CurtainAutoOpen.png" /> - <BundleResource Include="Resources\Phone\RealDevice\SensorInfrared.png" /> - <BundleResource Include="Resources\Phone\RealDevice\ButtonPanelFangyueFreshAir.png" /> - <BundleResource Include="Resources\Phone\RealDevice\AirSwitchCloudContr.png" /> - <BundleResource Include="Resources\Phone\RealDevice\ButtonPanelFour.png" /> - <BundleResource Include="Resources\Phone\RealDevice\SensorTemperatureHumidity.png" /> - <BundleResource Include="Resources\Phone\RealDevice\ButtonPanelCurtain.png" /> - <BundleResource Include="Resources\Phone\RealDevice\Repeater.png" /> - <BundleResource Include="Resources\Phone\RealDevice\ButtonPanelFangyueFour.png" /> - <BundleResource Include="Resources\Phone\RealDevice\ButtonPanelSimpleEnvironment.png" /> - <BundleResource Include="Resources\Phone\RealDevice\CommonDevice.png" /> - <BundleResource Include="Resources\Phone\RealDevice\SensorSphericalMotion.png" /> - <BundleResource Include="Resources\Phone\RealDevice\ButtonPanelFangyueEnvironment.png" /> - <BundleResource Include="Resources\Phone\RealDevice\AirConditionerZbGateway.png" /> - <BundleResource Include="Resources\Phone\RealDevice\SensorCeilingGas.png" /> - <BundleResource Include="Resources\Phone\RealDevice\IntelligentLocksH06C.png" /> - <BundleResource Include="Resources\Phone\RealDevice\SensorDoorWindow.png" /> - <BundleResource Include="Resources\Phone\RealDevice\ButtonPanelSimpleMultifunction.png" /> - <BundleResource Include="Resources\Phone\RealDevice\ButtonPanelFangyueEight.png" /> - <BundleResource Include="Resources\Phone\RealDevice\SensorFire.png" /> - <BundleResource Include="Resources\Phone\RealDevice\ButtonPanelThree.png" /> - <BundleResource Include="Resources\Phone\RealDevice\SensorPMTwoPointFive.png" /> - <BundleResource Include="Resources\Phone\RealDevice\SensorCarbonMonoxide.png" /> - <BundleResource Include="Resources\Phone\RealDevice\DimmableLightOneLoad.png" /> - <BundleResource Include="Resources\Phone\RealDevice\ButtonPanelFangyueTwo.png" /> - <BundleResource Include="Resources\Phone\RealDevice\SensorWater.png" /> - <BundleResource Include="Resources\Phone\Gateway\WiredGatewaySearching.png" /> - <BundleResource Include="Resources\Phone\Gateway\MiniGatewaySearching.png" /> - <BundleResource Include="Resources\Phone\Gateway\WirelessGatewaySearching.png" /> - <BundleResource Include="Resources\Phone\Gateway\MiniGateway.png" /> - <BundleResource Include="Resources\Phone\Gateway\MiniGatewayDirection.png" /> - <BundleResource Include="Resources\Phone\Gateway\GatewayIcon_6.png" /> - <BundleResource Include="Resources\Phone\Gateway\RealGateway.png" /> - <BundleResource Include="Resources\Phone\Gateway\WiredGatewayInstruct.png" /> - <BundleResource Include="Resources\Phone\Gateway\WirelessApDirection.png" /> - <BundleResource Include="Resources\Phone\Gateway\GatewayIcon11.png" /> - <BundleResource Include="Resources\Phone\Gateway\GatewayIcon1.png" /> - <BundleResource Include="Resources\Phone\Gateway\WirelessApGatewaySearching.png" /> - <BundleResource Include="Resources\Phone\Gateway\RealGateway11.png" /> - <BundleResource Include="Resources\Phone\Gateway\GatewayIcon6.png" /> - <BundleResource Include="Resources\Phone\Gateway\WiredGateway.png" /> - <BundleResource Include="Resources\Phone\Gateway\WirelessGateway.png" /> - <BundleResource Include="Resources\Phone\Gateway\AddGatewaySuccess.png" /> - <BundleResource Include="Resources\Phone\RoomIcon\0.jpg" /> - <BundleResource Include="Resources\Phone\RoomIcon\1.jpg" /> - <BundleResource Include="Resources\Phone\RoomIcon\2.jpg" /> - <BundleResource Include="Resources\Phone\RoomIcon\3.jpg" /> - <BundleResource Include="Resources\Phone\RoomIcon\4.jpg" /> - <BundleResource Include="Resources\Phone\RoomIcon\5.jpg" /> - <BundleResource Include="Resources\Phone\RoomIcon\6.jpg" /> - <BundleResource Include="Resources\Phone\RoomIcon\7.jpg" /> - <BundleResource Include="Resources\Phone\RoomIcon\8.jpg" /> - <BundleResource Include="Resources\Phone\RoomIcon\9.jpg" /> - <BundleResource Include="Resources\Phone\RoomIcon\10.jpg" /> - <BundleResource Include="Resources\Phone\RoomIcon\11.jpg" /> - <BundleResource Include="Resources\Phone\RoomIcon\12.jpg" /> - <BundleResource Include="Resources\Phone\RoomIcon\13.jpg" /> - <BundleResource Include="Resources\Phone\RoomIcon\14.jpg" /> - <BundleResource Include="Resources\Phone\RoomIcon\15.jpg" /> - <BundleResource Include="Resources\Phone\RoomIcon\16.jpg" /> - <BundleResource Include="Resources\Phone\RoomIcon\17.jpg" /> - <BundleResource Include="Resources\Phone\RoomIcon\18.jpg" /> - <BundleResource Include="Resources\Phone\RoomIcon\19.jpg" /> - <BundleResource Include="Resources\Phone\RoomIcon\20.jpg" /> - <BundleResource Include="Resources\Phone\RoomIcon\21.jpg" /> - </ItemGroup> - <Import Project="..\Shared\Shared.projitems" Label="Shared" Condition="Exists('..\Shared\Shared.projitems')" /> - <Import Project="$(MSBuildExtensionsPath)\Xamarin\iOS\Xamarin.iOS.CSharp.targets" /> + <PropertyGroup> + <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> + <Platform Condition=" '$(Platform)' == '' ">iPhoneSimulator</Platform> + <ProjectGuid>{F1296E2C-3777-4385-85B2-DA77617E3178}</ProjectGuid> + <ProjectTypeGuids>{FEACFBD2-3405-455C-9665-78FE426C6842};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids> + <TemplateGuid>{edc1b0fa-90cd-4038-8fad-98fe74adb368}</TemplateGuid> + <OutputType>Exe</OutputType> + <RootNamespace>Home.IOS</RootNamespace> + <AssemblyName>Home.IOS</AssemblyName> + <IPhoneResourcePrefix>Resources</IPhoneResourcePrefix> + <MtouchEnableSGenConc>true</MtouchEnableSGenConc> + <MtouchHttpClientHandler>NSUrlSessionHandler</MtouchHttpClientHandler> + <RestoreProjectStyle>PackageReference</RestoreProjectStyle> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|iPhoneSimulator' "> + <DebugSymbols>true</DebugSymbols> + <DebugType>full</DebugType> + <Optimize>false</Optimize> + <OutputPath>bin\iPhoneSimulator\Debug</OutputPath> + <DefineConstants>__IOS__;__MOBILE__;__UNIFIED__;DEBUG;iOS</DefineConstants> + <ErrorReport>prompt</ErrorReport> + <WarningLevel>4</WarningLevel> + <MtouchArch>x86_64</MtouchArch> + <MtouchLink>None</MtouchLink> + <MtouchDebug>true</MtouchDebug> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|iPhoneSimulator' "> + <DebugType>none</DebugType> + <Optimize>true</Optimize> + <OutputPath>bin\iPhoneSimulator\Release</OutputPath> + <DefineConstants>__IOS__;__MOBILE__;__UNIFIED__;iOS</DefineConstants> + <ErrorReport>prompt</ErrorReport> + <WarningLevel>4</WarningLevel> + <MtouchLink>None</MtouchLink> + <MtouchArch>x86_64</MtouchArch> + <CodesignKey>iPhone Developer</CodesignKey> + <ConsolePause>true</ConsolePause> + <MtouchInterpreter></MtouchInterpreter> + <IpaMetadata></IpaMetadata> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|iPhone' "> + <DebugSymbols>true</DebugSymbols> + <DebugType>full</DebugType> + <Optimize>false</Optimize> + <OutputPath>bin\iPhone\Debug</OutputPath> + <DefineConstants>__IOS__;__MOBILE__;__UNIFIED__;iOS;DEBUG;</DefineConstants> + <ErrorReport>prompt</ErrorReport> + <WarningLevel>4</WarningLevel> + <MtouchArch>ARM64</MtouchArch> + <CodesignEntitlements>Entitlements.plist</CodesignEntitlements> + <CodesignKey>iPhone Developer</CodesignKey> + <MtouchDebug>true</MtouchDebug> + <MtouchExtraArgs>-gcc_flags -dead_strip</MtouchExtraArgs> + <MtouchI18n>cjk</MtouchI18n> +<CodesignProvision>ComEvoyoHomeDevelopment20200806</CodesignProvision> +<MtouchHttpClientHandler>CFNetworkHandler</MtouchHttpClientHandler> +<OnDemandResourcesInitialInstallTags></OnDemandResourcesInitialInstallTags> +<OnDemandResourcesInitialInstallTags></OnDemandResourcesInitialInstallTags> +<OnDemandResourcesPrefetchOrder></OnDemandResourcesPrefetchOrder> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|iPhone' "> + <DebugType>none</DebugType> + <Optimize>true</Optimize> + <OutputPath>bin\iPhone\Release</OutputPath> + <DefineConstants>__IOS__;__MOBILE__;__UNIFIED__;iOS;Release;</DefineConstants> + <ErrorReport>prompt</ErrorReport> + <WarningLevel>4</WarningLevel> + <CodesignEntitlements>Entitlements.plist</CodesignEntitlements> + <MtouchArch>ARM64</MtouchArch> + <CodesignKey>iPhone Developer: xuebiao huang (4P32GXQWWK)</CodesignKey> + <MtouchI18n>cjk</MtouchI18n> + <DeviceSpecificBuild>true</DeviceSpecificBuild> + <MtouchExtraArgs>-gcc_flags -dead_strip</MtouchExtraArgs> + <CodesignProvision>ComEvoyoHomeDevelopment20200806</CodesignProvision> + </PropertyGroup> + <ItemGroup> + <Reference Include="System" /> + <Reference Include="System.Xml" /> + <Reference Include="System.Core" /> + <Reference Include="Xamarin.iOS" /> + <Reference Include="System.Numerics" /> + <Reference Include="System.Numerics.Vectors" /> + <Reference Include="Shared.IOS"> + <HintPath>..\Shared\DLL\IOS\Shared.IOS.dll</HintPath> + </Reference> + <Reference Include="Shared.IOS.TBL"> + <HintPath>..\Shared\DLL\IOS\Shared.IOS.TBL.dll</HintPath> + </Reference> + <Reference Include="Newtonsoft.Json"> + <HintPath>..\Shared\DLL\Newtonsoft.Json.dll</HintPath> + </Reference> + <Reference Include="BouncyCastle.Crypto"> + <HintPath>..\packages\BouncyCastle.Crypto.dll.1.8.1\lib\BouncyCastle.Crypto.dll</HintPath> + </Reference> + <Reference Include="System.Net.Http" /> + <Reference Include="Shared.IOS.ESVideoPhoneSDK"> + <HintPath>..\Shared\DLL\IOS\Shared.IOS.ESVideoPhoneSDK.dll</HintPath> + </Reference> + </ItemGroup> + <ItemGroup> + <PackageReference Include="Xamarin.Essentials" Version="1.2.0" /> + <PackageReference Include="MQTTnet"> + <Version>3.0.8</Version> + </PackageReference> + <PackageReference Include="ZXing.Net.Mobile"> + <Version>2.4.1</Version> + </PackageReference> + <PackageReference Include="Microsoft.AppCenter.Crashes"> + <Version>2.6.1</Version> + </PackageReference> + <PackageReference Include="Microsoft.AppCenter"> + <Version>2.6.1</Version> + </PackageReference> + <PackageReference Include="Microsoft.AppCenter.Analytics"> + <Version>2.6.1</Version> + </PackageReference> + </ItemGroup> + <ItemGroup> + <Folder Include="Resources\" /> + </ItemGroup> + <ItemGroup> + <InterfaceDefinition Include="LaunchScreen.storyboard" /> + <InterfaceDefinition Include="Main.storyboard" /> + </ItemGroup> + <ItemGroup> + <None Include="Info.plist" /> + <None Include="Entitlements.plist" /> + </ItemGroup> + <ItemGroup> + <Compile Include="Main.cs" /> + <Compile Include="AppDelegate.cs" /> + <Compile Include="SceneDelegate.cs" /> + <Compile Include="ViewController.cs" /> + <Compile Include="ViewController.designer.cs"> + <DependentUpon>ViewController.cs</DependentUpon> + </Compile> + <Compile Include="MainViewController.cs" /> + <Compile Include="MainViewController.designer.cs"> + <DependentUpon>MainViewController.cs</DependentUpon> + </Compile> + <Compile Include="ViewControllerBase.cs" /> + <Compile Include="Reachability.cs" /> + <Compile Include="ZXingOverlayView.cs" /> + <Compile Include="ESVideo.cs" /> + </ItemGroup> + <ItemGroup> + <ProjectReference Include="..\Elian.iOS\Elian.iOS.csproj"> + <Project>{85F1AF50-75A6-4011-B811-56B32DA77568}</Project> + <Name>Elian.iOS</Name> + </ProjectReference> + </ItemGroup> + <ItemGroup> + <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\Contents.json" /> + <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\Contents.json" /> + <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\1920_1080.png" /> + <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\3840_2160.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\750_1334.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\640_960.png" /> + <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\640_1136.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\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-1.png" /> + <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\1536_2048-1.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-1.png" /> + <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\AppIcon.appiconset\40_40.png" /> + <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\60_60.png" /> + <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\58_58.png" /> + <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\87_87.png" /> + <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\80_80.png" /> + <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\120_120.png" /> + <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\120_120-1.png" /> + <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\180_180.png" /> + <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\20_20.png" /> + <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\40_40-1.png" /> + <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\29_29.png" /> + <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\58_58-1.png" /> + <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\40_40-2.png" /> + <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\80_80-1.png" /> + <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\76_76.png" /> + <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\152_152.png" /> + <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\167_167.png" /> + <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\1024_1024.png" /> + <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\120_120-2.png" /> + <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\180_180-1.png" /> + <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\58_58-2.png" /> + <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\87_87-1.png" /> + <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\80_80-2.png" /> + <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\1024_1024-1.png" /> + <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\512_512.png" /> + <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\512_512-1.png" /> + <ImageAsset Include="Assets.xcassets\AppIcon.appiconset\1024_1024-2.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" /> + <BundleResource Include="Resources\Phone\Guide\WorkRoomIcon.png" /> + <BundleResource Include="Resources\Phone\Guide\Arrows2.png" /> + <BundleResource Include="Resources\Phone\Guide\Arrows1.png" /> + <BundleResource Include="Resources\Phone\Room\RoomCardView.png" /> + <BundleResource Include="Resources\Phone\Room\ItemSelected.png" /> + <BundleResource Include="Resources\Phone\Room\ItemUnSelected.png" /> + <BundleResource Include="Resources\Phone\Room\ItemUnSelected_Black.png" /> + <BundleResource Include="Resources\Phone\Room\RoomCardShadow.png" /> + <BundleResource Include="Resources\Phone\Room\FavoriteRoom.png" /> + <BundleResource Include="Resources\Phone\Room\IconBackground.png" /> + <BundleResource Include="Resources\Phone\Room\Temperature.png" /> + <BundleResource Include="Resources\Phone\Room\List.png" /> + <BundleResource Include="Resources\Phone\Room\NoNameRoom.png" /> + <BundleResource Include="Resources\Phone\Room\IconSelectedBackground.png" /> + <BundleResource Include="Resources\Phone\Room\Room_Rectangle.png" /> + <BundleResource Include="Resources\Phone\Room\RoomCardView_Name.png" /> + <BundleResource Include="Resources\Phone\Room\Humidity.png" /> + <BundleResource Include="Resources\Phone\Room\RoomShadow.png" /> + <BundleResource Include="Resources\Phone\Room\AddBackground.png" /> + <BundleResource Include="Resources\Phone\Instruct\CurtainSiphonate.png" /> + <BundleResource Include="Resources\Phone\Instruct\PanelFreshAir.png" /> + <BundleResource Include="Resources\Phone\Instruct\SensorPir.png" /> + <BundleResource Include="Resources\Phone\Instruct\RelayThreeLoad.png" /> + <BundleResource Include="Resources\Phone\Instruct\CurtainAutoOpen.png" /> + <BundleResource Include="Resources\Phone\Instruct\SensorInfrared.png" /> + <BundleResource Include="Resources\Phone\Instruct\AirSwitchCloudContr.png" /> + <BundleResource Include="Resources\Phone\Instruct\SensorTemperatureHumidity.png" /> + <BundleResource Include="Resources\Phone\Instruct\PanelFangyueTwoButton.png" /> + <BundleResource Include="Resources\Phone\Instruct\ButtonPanelSimpleEnvironment.png" /> + <BundleResource Include="Resources\Phone\Instruct\PanelCurtain.png" /> + <BundleResource Include="Resources\Phone\Instruct\PanelFangyueFourButton.png" /> + <BundleResource Include="Resources\Phone\Instruct\SensorSphericalMotion.png" /> + <BundleResource Include="Resources\Phone\Instruct\PanelFourButton.png" /> + <BundleResource Include="Resources\Phone\Instruct\AirConditionerZbGateway.png" /> + <BundleResource Include="Resources\Phone\Instruct\SensorCeilingGas.png" /> + <BundleResource Include="Resources\Phone\Instruct\IntelligentLocksH06C.png" /> + <BundleResource Include="Resources\Phone\Instruct\SensorDoorWindow.png" /> + <BundleResource Include="Resources\Phone\Instruct\ButtonPanelSimpleMultifunction.png" /> + <BundleResource Include="Resources\Phone\Instruct\SensorFire.png" /> + <BundleResource Include="Resources\Phone\Instruct\SensorPMTwoPointFive.png" /> + <BundleResource Include="Resources\Phone\Instruct\PanelThreeButton.png" /> + <BundleResource Include="Resources\Phone\Instruct\SensorCarbonMonoxide.png" /> + <BundleResource Include="Resources\Phone\Instruct\DimmableLightOneLoad.png" /> + <BundleResource Include="Resources\Phone\Instruct\PanelFangyueEightButton.png" /> + <BundleResource Include="Resources\Phone\Instruct\RepeaterZigbee.png" /> + <BundleResource Include="Resources\Phone\Instruct\SensorWater.png" /> + <BundleResource Include="Resources\Phone\Instruct\DeviceSearch.png" /> + <BundleResource Include="Resources\Phone\Instruct\PanelFangyueEnvironment.png" /> + <BundleResource Include="Resources\Phone\Instruct\PanelTwoButton.png" /> + <BundleResource Include="Resources\Phone\AC\Add.png" /> + <BundleResource Include="Resources\Phone\AC\Reduce.png" /> + <BundleResource Include="Resources\Phone\AC\Mode_Heat2.png" /> + <BundleResource Include="Resources\Phone\AC\Swing_4.png" /> + <BundleResource Include="Resources\Phone\AC\Swing_AutoSelected.png" /> + <BundleResource Include="Resources\Phone\AC\Fan_MiddleSelected.png" /> + <BundleResource Include="Resources\Phone\AC\Swing_5.png" /> + <BundleResource Include="Resources\Phone\AC\Swing_4Selected.png" /> + <BundleResource Include="Resources\Phone\AC\Fan_Height.png" /> + <BundleResource Include="Resources\Phone\AC\Swing_1.png" /> + <BundleResource Include="Resources\Phone\AC\OpenOrCloseSelected.png" /> + <BundleResource Include="Resources\Phone\AC\Swing_1Selected.png" /> + <BundleResource Include="Resources\Phone\AC\Mode_Dry.png" /> + <BundleResource Include="Resources\Phone\AC\Group.png" /> + <BundleResource Include="Resources\Phone\AC\AC_TIP.png" /> + <BundleResource Include="Resources\Phone\AC\Swing_2.png" /> + <BundleResource Include="Resources\Phone\AC\Swing_3.png" /> + <BundleResource Include="Resources\Phone\AC\Fan_Low.png" /> + <BundleResource Include="Resources\Phone\AC\Swing_2Selected.png" /> + <BundleResource Include="Resources\Phone\AC\Mode_Heat.png" /> + <BundleResource Include="Resources\Phone\AC\Mode_Fan.png" /> + <BundleResource Include="Resources\Phone\AC\Path.png" /> + <BundleResource Include="Resources\Phone\AC\Swing_Auto.png" /> + <BundleResource Include="Resources\Phone\AC\Mode_Cool.png" /> + <BundleResource Include="Resources\Phone\AC\Fan_Middle.png" /> + <BundleResource Include="Resources\Phone\AC\Mode_Fan2.png" /> + <BundleResource Include="Resources\Phone\AC\Mode_CoolSelected.png" /> + <BundleResource Include="Resources\Phone\AC\Mode_Dry2.png" /> + <BundleResource Include="Resources\Phone\AC\Swing_5Selected.png" /> + <BundleResource Include="Resources\Phone\AC\OpenOrClose.png" /> + <BundleResource Include="Resources\Phone\AC\SwingBackground.png" /> + <BundleResource Include="Resources\Phone\AC\Fan_HeightSelected.png" /> + <BundleResource Include="Resources\Phone\AC\Mode_DrySelected.png" /> + <BundleResource Include="Resources\Phone\AC\Mode_AutoSelected.png" /> + <BundleResource Include="Resources\Phone\AC\Mode_Auto.png" /> + <BundleResource Include="Resources\Phone\AC\SelectedFanModeBG.png" /> + <BundleResource Include="Resources\Phone\AC\Mode_Cool2.png" /> + <BundleResource Include="Resources\Phone\AC\Mode_HeatSelected.png" /> + <BundleResource Include="Resources\Phone\AC\Swing_3Selected.png" /> + <BundleResource Include="Resources\Phone\AC\Mode_FanSelected.png" /> + <BundleResource Include="Resources\Phone\AC\Fan_LowSelected.png" /> + <BundleResource Include="Resources\Phone\AC\SelectedModeBG.png" /> + <BundleResource Include="Resources\Phone\Loading\8.png" /> + <BundleResource Include="Resources\Phone\Loading\9.png" /> + <BundleResource Include="Resources\Phone\Loading\14.png" /> + <BundleResource Include="Resources\Phone\Loading\28.png" /> + <BundleResource Include="Resources\Phone\Loading\29.png" /> + <BundleResource Include="Resources\Phone\Loading\15.png" /> + <BundleResource Include="Resources\Phone\Loading\17.png" /> + <BundleResource Include="Resources\Phone\Loading\16.png" /> + <BundleResource Include="Resources\Phone\Loading\12.png" /> + <BundleResource Include="Resources\Phone\Loading\13.png" /> + <BundleResource Include="Resources\Phone\Loading\11.png" /> + <BundleResource Include="Resources\Phone\Loading\10.png" /> + <BundleResource Include="Resources\Phone\Loading\21.png" /> + <BundleResource Include="Resources\Phone\Loading\20.png" /> + <BundleResource Include="Resources\Phone\Loading\22.png" /> + <BundleResource Include="Resources\Phone\Loading\23.png" /> + <BundleResource Include="Resources\Phone\Loading\27.png" /> + <BundleResource Include="Resources\Phone\Loading\32.png" /> + <BundleResource Include="Resources\Phone\Loading\26.png" /> + <BundleResource Include="Resources\Phone\Loading\18.png" /> + <BundleResource Include="Resources\Phone\Loading\30.png" /> + <BundleResource Include="Resources\Phone\Loading\24.png" /> + <BundleResource Include="Resources\Phone\Loading\25.png" /> + <BundleResource Include="Resources\Phone\Loading\31.png" /> + <BundleResource Include="Resources\Phone\Loading\19.png" /> + <BundleResource Include="Resources\Phone\Loading\4.png" /> + <BundleResource Include="Resources\Phone\Loading\5.png" /> + <BundleResource Include="Resources\Phone\Loading\7.png" /> + <BundleResource Include="Resources\Phone\Loading\6.png" /> + <BundleResource Include="Resources\Phone\Loading\2.png" /> + <BundleResource Include="Resources\Phone\Loading\3.png" /> + <BundleResource Include="Resources\Phone\Loading\1.png" /> + <BundleResource Include="Resources\Phone\MenuGroud\TopRightMenu1_2.png" /> + <BundleResource Include="Resources\Phone\MenuGroud\TopRightMenu1_3.png" /> + <BundleResource Include="Resources\Phone\MenuGroud\TopRightMenu1_1.png" /> + <BundleResource Include="Resources\Phone\MenuGroud\TopRightMenu1_4.png" /> + <BundleResource Include="Resources\Phone\MenuGroud\TopRightMenu1_5.png" /> + <BundleResource Include="Resources\Phone\MenuGroud\TopRightMenu2_3.png" /> + <BundleResource Include="Resources\Phone\MenuGroud\TopRightMenu2_2.png" /> + <BundleResource Include="Resources\Phone\MenuGroud\TopRightMenu2_1.png" /> + <BundleResource Include="Resources\Phone\MenuGroud\TopRightMenu2_5.png" /> + <BundleResource Include="Resources\Phone\MenuGroud\TopRightMenu2_4.png" /> + <BundleResource Include="Resources\Phone\MenuGroud\TopRightMenu2_6.png" /> + <BundleResource Include="Resources\Phone\SceneCardIcon\8.png" /> + <BundleResource Include="Resources\Phone\SceneCardIcon\9.png" /> + <BundleResource Include="Resources\Phone\SceneCardIcon\12.png" /> + <BundleResource Include="Resources\Phone\SceneCardIcon\13.png" /> + <BundleResource Include="Resources\Phone\SceneCardIcon\11.png" /> + <BundleResource Include="Resources\Phone\SceneCardIcon\10.png" /> + <BundleResource Include="Resources\Phone\SceneCardIcon\4.png" /> + <BundleResource Include="Resources\Phone\SceneCardIcon\5.png" /> + <BundleResource Include="Resources\Phone\SceneCardIcon\7.png" /> + <BundleResource Include="Resources\Phone\SceneCardIcon\6.png" /> + <BundleResource Include="Resources\Phone\SceneCardIcon\2.png" /> + <BundleResource Include="Resources\Phone\SceneCardIcon\3.png" /> + <BundleResource Include="Resources\Phone\SceneCardIcon\1.png" /> + <BundleResource Include="Resources\Phone\SceneCardIcon\0.png" /> + <BundleResource Include="Resources\Phone\DeviceItem\MiniNightLightDevice.png" /> + <BundleResource Include="Resources\Phone\DeviceItem\PanelFangyueTwoButtonTable.png" /> + <BundleResource Include="Resources\Phone\DeviceItem\PanelTable.png" /> + <BundleResource Include="Resources\Phone\DeviceItem\PanelFangyueEightButtonTable.png" /> + <BundleResource Include="Resources\Phone\DeviceItem\ButtonPanelFangyueEnvironmentBigPic.png" /> + <BundleResource Include="Resources\Phone\DeviceItem\PanelFangyueFourButtonTable.png" /> + <BundleResource Include="Resources\Phone\Center\Abount.png" /> + <BundleResource Include="Resources\Phone\Center\ResidenceManagement.png" /> + <BundleResource Include="Resources\Phone\Center\Backup.png" /> + <BundleResource Include="Resources\Phone\Center\MenberManagement.png" /> + <BundleResource Include="Resources\Phone\Center\ImperialCrown.png" /> + <BundleResource Include="Resources\Phone\Center\Opinion.png" /> + <BundleResource Include="Resources\Phone\Center\DeviceManagement.png" /> + <BundleResource Include="Resources\Phone\Center\MainBack2.png" /> + <BundleResource Include="Resources\Phone\Center\MainBack1.png" /> + <BundleResource Include="Resources\Phone\Center\Admin.png" /> + <BundleResource Include="Resources\Phone\Center\SafetyManagement.png" /> + <BundleResource Include="Resources\Phone\FreshAir\FreshAirRealDevicePic.png" /> + <BundleResource Include="Resources\Phone\FreshAir\FreshAirPic.png" /> + <BundleResource Include="Resources\Phone\Navigation\CategorySelected.png" /> + <BundleResource Include="Resources\Phone\Navigation\Category.png" /> + <BundleResource Include="Resources\Phone\Navigation\HomeSelected.png" /> + <BundleResource Include="Resources\Phone\Navigation\Home.png" /> + <BundleResource Include="Resources\Phone\Navigation\Setting.png" /> + <BundleResource Include="Resources\Phone\Navigation\SettingSelected.png" /> + <BundleResource Include="Resources\Phone\SmartSound\PullDown.png" /> + <BundleResource Include="Resources\Phone\SmartSound\Xiaodu.png" /> + <BundleResource Include="Resources\Phone\SmartSound\Sibici.png" /> + <BundleResource Include="Resources\Phone\SmartSound\Xiaoai.png" /> + <BundleResource Include="Resources\Phone\SmartSound\Nickname.png" /> + <BundleResource Include="Resources\Phone\SmartSound\SoundIcon.png" /> + <BundleResource Include="Resources\Phone\SmartSound\Tianmao.png" /> + <BundleResource Include="Resources\Phone\RollerShade\Stop.png" /> + <BundleResource Include="Resources\Phone\RollerShade\DownSelected.png" /> + <BundleResource Include="Resources\Phone\RollerShade\Up.png" /> + <BundleResource Include="Resources\Phone\RollerShade\Down.png" /> + <BundleResource Include="Resources\Phone\RollerShade\StopSelected.png" /> + <BundleResource Include="Resources\Phone\RollerShade\OpenSelected.png" /> + <BundleResource Include="Resources\Phone\RollerShade\UpSelected.png" /> + <BundleResource Include="Resources\Phone\RollerShade\Open.png" /> + <BundleResource Include="Resources\Phone\RollerShade\CloseSelected.png" /> + <BundleResource Include="Resources\Phone\RollerShade\Close.png" /> + <BundleResource Include="Resources\Phone\SceneIcon\8.png" /> + <BundleResource Include="Resources\Phone\SceneIcon\9.png" /> + <BundleResource Include="Resources\Phone\SceneIcon\12.png" /> + <BundleResource Include="Resources\Phone\SceneIcon\13.png" /> + <BundleResource Include="Resources\Phone\SceneIcon\11.png" /> + <BundleResource Include="Resources\Phone\SceneIcon\10.png" /> + <BundleResource Include="Resources\Phone\SceneIcon\4.png" /> + <BundleResource Include="Resources\Phone\SceneIcon\5.png" /> + <BundleResource Include="Resources\Phone\SceneIcon\7.png" /> + <BundleResource Include="Resources\Phone\SceneIcon\6.png" /> + <BundleResource Include="Resources\Phone\SceneIcon\2.png" /> + <BundleResource Include="Resources\Phone\SceneIcon\3.png" /> + <BundleResource Include="Resources\Phone\SceneIcon\1.png" /> + <BundleResource Include="Resources\Phone\SceneIcon\0.png" /> + <BundleResource Include="Resources\Phone\BindPic\EmptyTargets.png" /> + <BundleResource Include="Resources\Phone\BindPic\BindEmptyPic.png" /> + <BundleResource Include="Resources\Phone\BindPic\Curtain.png" /> + <BundleResource Include="Resources\Phone\BindPic\TemperaTureReduction.png" /> + <BundleResource Include="Resources\Phone\BindPic\BindLeft.png" /> + <BundleResource Include="Resources\Phone\BindPic\FreshAirIcon.png" /> + <BundleResource Include="Resources\Phone\BindPic\Roller.png" /> + <BundleResource Include="Resources\Phone\BindPic\BindAdd.png" /> + <BundleResource Include="Resources\Phone\BindPic\BindDown.png" /> + <BundleResource Include="Resources\Phone\BindPic\EmptyTargetsSelected.png" /> + <BundleResource Include="Resources\Phone\BindPic\BindRoomColor.png" /> + <BundleResource Include="Resources\Phone\BindPic\Switch.png" /> + <BundleResource Include="Resources\Phone\BindPic\TemperaTureAdd.png" /> + <BundleResource Include="Resources\Phone\BindPic\BindRight.png" /> + <BundleResource Include="Resources\Phone\BindPic\CorrectTemperatureBackGround.png" /> + <BundleResource Include="Resources\Phone\BindPic\TemperaTureAttention.png" /> + <BundleResource Include="Resources\Phone\BindPic\BindRoomColorOn.png" /> + <BundleResource Include="Resources\Phone\DoorLock\DistributeUnlockIcon.png" /> + <BundleResource Include="Resources\Phone\DoorLock\TypeIcon.png" /> + <BundleResource Include="Resources\Phone\DoorLock\LowPower.png" /> + <BundleResource Include="Resources\Phone\DoorLock\TemPasswordInvisiable.png" /> + <BundleResource Include="Resources\Phone\DoorLock\NormallyOpenOffline.png" /> + <BundleResource Include="Resources\Phone\DoorLock\UnLockButton.png" /> + <BundleResource Include="Resources\Phone\DoorLock\AddFailedPic.png" /> + <BundleResource Include="Resources\Phone\DoorLock\SelectedIcon.png" /> + <BundleResource Include="Resources\Phone\DoorLock\Fingerprint207.png" /> + <BundleResource Include="Resources\Phone\DoorLock\VolumeIconOn.png" /> + <BundleResource Include="Resources\Phone\DoorLock\DoorLockPicClose.png" /> + <BundleResource Include="Resources\Phone\DoorLock\TempPasswordBackground.png" /> + <BundleResource Include="Resources\Phone\DoorLock\AddFingerprintTipPic.png" /> + <BundleResource Include="Resources\Phone\DoorLock\FavoriteIcon.png" /> + <BundleResource Include="Resources\Phone\DoorLock\RightIcon.png" /> + <BundleResource Include="Resources\Phone\DoorLock\ShareIcon.png" /> + <BundleResource Include="Resources\Phone\DoorLock\NormallyOpen.png" /> + <BundleResource Include="Resources\Phone\DoorLock\DateIcon.png" /> + <BundleResource Include="Resources\Phone\DoorLock\DoorLockOpen.png" /> + <BundleResource Include="Resources\Phone\DoorLock\UnlockSuccess.png" /> + <BundleResource Include="Resources\Phone\DoorLock\DoorLockClose.png" /> + <BundleResource Include="Resources\Phone\DoorLock\Power60.png" /> + <BundleResource Include="Resources\Phone\DoorLock\UnLockBlankPic.png" /> + <BundleResource Include="Resources\Phone\DoorLock\Power100.png" /> + <BundleResource Include="Resources\Phone\DoorLock\DelIcon.png" /> + <BundleResource Include="Resources\Phone\DoorLock\PowerOffline.png" /> + <BundleResource Include="Resources\Phone\DoorLock\ProgressBackground.png" /> + <BundleResource Include="Resources\Phone\DoorLock\CancelIcon.png" /> + <BundleResource Include="Resources\Phone\DoorLock\TemPasswordVisiable.png" /> + <BundleResource Include="Resources\Phone\DoorLock\proximityCard.png" /> + <BundleResource Include="Resources\Phone\DoorLock\EntrySuccessIcon.png" /> + <BundleResource Include="Resources\Phone\DoorLock\proximityCardOn.png" /> + <BundleResource Include="Resources\Phone\DoorLock\RemoteUnlockIcon.png" /> + <BundleResource Include="Resources\Phone\DoorLock\MemberIcon.png" /> + <BundleResource Include="Resources\Phone\DoorLock\Left.png" /> + <BundleResource Include="Resources\Phone\DoorLock\Fingerprint.png" /> + <BundleResource Include="Resources\Phone\DoorLock\DooorLockPicOpen.png" /> + <BundleResource Include="Resources\Phone\DoorLock\DelBackground.png" /> + <BundleResource Include="Resources\Phone\DoorLock\Password.png" /> + <BundleResource Include="Resources\Phone\DoorLock\UnselectedIcon.png" /> + <BundleResource Include="Resources\Phone\DoorLock\AddIcCardTipPic.png" /> + <BundleResource Include="Resources\Phone\DoorLock\Switch.png" /> + <BundleResource Include="Resources\Phone\DoorLock\AddIcon.png" /> + <BundleResource Include="Resources\Phone\DoorLock\DoorLockUserPic.png" /> + <BundleResource Include="Resources\Phone\DoorLock\Power40.png" /> + <BundleResource Include="Resources\Phone\DoorLock\AllMethod.png" /> + <BundleResource Include="Resources\Phone\DoorLock\RecordIcon.png" /> + <BundleResource Include="Resources\Phone\DoorLock\FingerprintOn.png" /> + <BundleResource Include="Resources\Phone\DoorLock\VisitorIcon.png" /> + <BundleResource Include="Resources\Phone\DoorLock\Power80.png" /> + <BundleResource Include="Resources\Phone\DoorLock\TempPasswordBackground1.png" /> + <BundleResource Include="Resources\Phone\DoorLock\DoorlockPicture.png" /> + <BundleResource Include="Resources\Phone\DoorLock\UnlockFailed.png" /> + <BundleResource Include="Resources\Phone\DoorLock\AddPasswordTicPic.png" /> + <BundleResource Include="Resources\Phone\DoorLock\AllMethodOn.png" /> + <BundleResource Include="Resources\Phone\DoorLock\NormallyOpenOn.png" /> + <BundleResource Include="Resources\Phone\DoorLock\VolumeIcon.png" /> + <BundleResource Include="Resources\Phone\DoorLock\SettingIcon.png" /> + <BundleResource Include="Resources\Phone\DoorLock\DoorlockIcon.png" /> + <BundleResource Include="Resources\Phone\DoorLock\SideslipPic.png" /> + <BundleResource Include="Resources\Phone\DoorLock\SwitchOn.png" /> + <BundleResource Include="Resources\Phone\DoorLock\RoomPic.png" /> + <BundleResource Include="Resources\Phone\DoorLock\PasswordOn.png" /> + <BundleResource Include="Resources\Phone\DoorLock\AllMethodIcon.png" /> + <BundleResource Include="Resources\Phone\DoorLock\UnLockSideslipIcon.png" /> + <BundleResource Include="Resources\Phone\DoorLock\UndistributeIcon.png" /> + <BundleResource Include="Resources\Phone\Logo\Logo.png" /> + <BundleResource Include="Resources\Phone\Logo\StartBackGroud.png" /> + <BundleResource Include="Resources\Phone\Item\Shared.png" /> + <BundleResource Include="Resources\Phone\Item\RoomIcon.png" /> + <BundleResource Include="Resources\Phone\Item\Add.png" /> + <BundleResource Include="Resources\Phone\Item\PickerColorWheel.png" /> + <BundleResource Include="Resources\Phone\Item\Switch1.png" /> + <BundleResource Include="Resources\Phone\Item\RoomIconSelected.png" /> + <BundleResource Include="Resources\Phone\Item\Check.png" /> + <BundleResource Include="Resources\Phone\Item\ScanQrCodeGroud.png" /> + <BundleResource Include="Resources\Phone\Item\MessageManagement.png" /> + <BundleResource Include="Resources\Phone\Item\Add_GW.png" /> + <BundleResource Include="Resources\Phone\Item\Battery.png" /> + <BundleResource Include="Resources\Phone\Item\Switch2.png" /> + <BundleResource Include="Resources\Phone\Item\MessageSelected.png" /> + <BundleResource Include="Resources\Phone\Item\PhoneBook.png" /> + <BundleResource Include="Resources\Phone\Item\PersentIcon.png" /> + <BundleResource Include="Resources\Phone\Item\WrongIcon.png" /> + <BundleResource Include="Resources\Phone\Item\RoomIconBackground.png" /> + <BundleResource Include="Resources\Phone\Item\AdjustSuccessIcon.png" /> + <BundleResource Include="Resources\Phone\Item\PlusSign2.png" /> + <BundleResource Include="Resources\Phone\Item\DateSearchIcon.png" /> + <BundleResource Include="Resources\Phone\Item\Time.png" /> + <BundleResource Include="Resources\Phone\Item\DownLoad.png" /> + <BundleResource Include="Resources\Phone\Item\CloseIcon.png" /> + <BundleResource Include="Resources\Phone\Item\NotShardPic.png" /> + <BundleResource Include="Resources\Phone\Item\NoBindGW.png" /> + <BundleResource Include="Resources\Phone\Item\DownTriangle.png" /> + <BundleResource Include="Resources\Phone\Item\RightIcon.png" /> + <BundleResource Include="Resources\Phone\Item\SwitchSelected1.png" /> + <BundleResource Include="Resources\Phone\Item\DeviceLimitGroundSelected.png" /> + <BundleResource Include="Resources\Phone\Item\QRCode.png" /> + <BundleResource Include="Resources\Phone\Item\ScanQRcodeIcon.png" /> + <BundleResource Include="Resources\Phone\Item\LogicMsgIcon.png" /> + <BundleResource Include="Resources\Phone\Item\ColorTemperatureBar.png" /> + <BundleResource Include="Resources\Phone\Item\InputAccountIcon.png" /> + <BundleResource Include="Resources\Phone\Item\NormallyOpen.png" /> + <BundleResource Include="Resources\Phone\Item\ItemSelected.png" /> + <BundleResource Include="Resources\Phone\Item\UnLockSuccess.png" /> + <BundleResource Include="Resources\Phone\Item\GarrisonList.png" /> + <BundleResource Include="Resources\Phone\Item\SafetyShortcut_item.png" /> + <BundleResource Include="Resources\Phone\Item\ItemUnSelected.png" /> + <BundleResource Include="Resources\Phone\Item\NowAcctionTip.png" /> + <BundleResource Include="Resources\Phone\Item\VirtualFrame.png" /> + <BundleResource Include="Resources\Phone\Item\DeleteIcon2Selected.png" /> + <BundleResource Include="Resources\Phone\Item\FunctionCardView.png" /> + <BundleResource Include="Resources\Phone\Item\ForgotPswList.png" /> + <BundleResource Include="Resources\Phone\Item\ProgressBubbles.png" /> + <BundleResource Include="Resources\Phone\Item\Down.png" /> + <BundleResource Include="Resources\Phone\Item\SafetyShortcut.png" /> + <BundleResource Include="Resources\Phone\Item\CollectionSelected.png" /> + <BundleResource Include="Resources\Phone\Item\Room.png" /> + <BundleResource Include="Resources\Phone\Item\SeekBarIcon.png" /> + <BundleResource Include="Resources\Phone\Item\Category_FunctionBG.png" /> + <BundleResource Include="Resources\Phone\Item\Remote.png" /> + <BundleResource Include="Resources\Phone\Item\ScreeningType.png" /> + <BundleResource Include="Resources\Phone\Item\TransferOfResidenceIcon.png" /> + <BundleResource Include="Resources\Phone\Item\Safety.png" /> + <BundleResource Include="Resources\Phone\Item\UpTriangle.png" /> + <BundleResource Include="Resources\Phone\Item\CreatFloor.png" /> + <BundleResource Include="Resources\Phone\Item\CancelIcon.png" /> + <BundleResource Include="Resources\Phone\Item\WarningIcon1.png" /> + <BundleResource Include="Resources\Phone\Item\HadAuthority.png" /> + <BundleResource Include="Resources\Phone\Item\Drop_Down.png" /> + <BundleResource Include="Resources\Phone\Item\MessageManagementSelected.png" /> + <BundleResource Include="Resources\Phone\Item\HidenPWD.png" /> + <BundleResource Include="Resources\Phone\Item\House.png" /> + <BundleResource Include="Resources\Phone\Item\GwSwitchIconSelected.png" /> + <BundleResource Include="Resources\Phone\Item\MemberNotEsixtPic.png" /> + <BundleResource Include="Resources\Phone\Item\NewVersion.png" /> + <BundleResource Include="Resources\Phone\Item\RoomIconBackgroundSelected.png" /> + <BundleResource Include="Resources\Phone\Item\Point.png" /> + <BundleResource Include="Resources\Phone\Item\Search.png" /> + <BundleResource Include="Resources\Phone\Item\SwitchSelected.png" /> + <BundleResource Include="Resources\Phone\Item\Check1.png" /> + <BundleResource Include="Resources\Phone\Item\NextSelected.png" /> + <BundleResource Include="Resources\Phone\Item\SafetyShortcut_itemSelected.png" /> + <BundleResource Include="Resources\Phone\Item\Timer.png" /> + <BundleResource Include="Resources\Phone\Item\PlusSign2Selected.png" /> + <BundleResource Include="Resources\Phone\Item\ShardMenu.png" /> + <BundleResource Include="Resources\Phone\Item\UnLockFail.png" /> + <BundleResource Include="Resources\Phone\Item\ProgressMsg.png" /> + <BundleResource Include="Resources\Phone\Item\SynchronizationSelected.png" /> + <BundleResource Include="Resources\Phone\Item\BottomButtonGround.png" /> + <BundleResource Include="Resources\Phone\Item\AutoBackup.png" /> + <BundleResource Include="Resources\Phone\Item\TransferOfResidence.png" /> + <BundleResource Include="Resources\Phone\Item\BatterySelected.png" /> + <BundleResource Include="Resources\Phone\Item\Category_FunctionBGSelected.png" /> + <BundleResource Include="Resources\Phone\Item\NoFunction.png" /> + <BundleResource Include="Resources\Phone\Item\DeleteIcon2.png" /> + <BundleResource Include="Resources\Phone\Item\Switch2Selected.png" /> + <BundleResource Include="Resources\Phone\Item\MyHome.png" /> + <BundleResource Include="Resources\Phone\Item\PswSettionSelected.png" /> + <BundleResource Include="Resources\Phone\Item\SelectFloor_Left.png" /> + <BundleResource Include="Resources\Phone\Item\Add_Category.png" /> + <BundleResource Include="Resources\Phone\Item\ResidenceIcon.png" /> + <BundleResource Include="Resources\Phone\Item\SafetyShortcut_background.png" /> + <BundleResource Include="Resources\Phone\Item\Tips.png" /> + <BundleResource Include="Resources\Phone\Item\DeviceLimitGround.png" /> + <BundleResource Include="Resources\Phone\Item\Switch.png" /> + <BundleResource Include="Resources\Phone\Item\GwSwitchIcon.png" /> + <BundleResource Include="Resources\Phone\Item\DeleteIcon1.png" /> + <BundleResource Include="Resources\Phone\Item\HouseSelected.png" /> + <BundleResource Include="Resources\Phone\Item\videoIntercomNext.png" /> + <BundleResource Include="Resources\Phone\Item\Floor.png" /> + <BundleResource Include="Resources\Phone\Item\videoIntercom.png" /> + <BundleResource Include="Resources\Phone\Item\MinusSign2.png" /> + <BundleResource Include="Resources\Phone\Item\AdjustFailIcon.png" /> + <BundleResource Include="Resources\Phone\Item\NotAuthority.png" /> + <BundleResource Include="Resources\Phone\Item\IndoorUnitGround.png" /> + <BundleResource Include="Resources\Phone\Item\FixedPositionSelected.png" /> + <BundleResource Include="Resources\Phone\Item\Collection1.png" /> + <BundleResource Include="Resources\Phone\Item\CreatFloorSelected.png" /> + <BundleResource Include="Resources\Phone\Item\Collection.png" /> + <BundleResource Include="Resources\Phone\Item\SelectFloor_Right.png" /> + <BundleResource Include="Resources\Phone\Item\UpperTriangle.png" /> + <BundleResource Include="Resources\Phone\Item\SceneCard.png" /> + <BundleResource Include="Resources\Phone\Item\Next.png" /> + <BundleResource Include="Resources\Phone\Item\UnHidenPWD.png" /> + <BundleResource Include="Resources\Phone\Item\OpenIcon.png" /> + <BundleResource Include="Resources\Phone\Item\FunctionCardViewSelected.png" /> + <BundleResource Include="Resources\Phone\Item\More.png" /> + <BundleResource Include="Resources\Phone\Item\PswSettion.png" /> + <BundleResource Include="Resources\Phone\Item\MinusSign2Selected.png" /> + <BundleResource Include="Resources\Phone\Item\CollectionSelected1.png" /> + <BundleResource Include="Resources\Phone\Item\SceneMsgIcon.png" /> + <BundleResource Include="Resources\Phone\Item\Check1Selected.png" /> + <BundleResource Include="Resources\Phone\Item\FailIcon.png" /> + <BundleResource Include="Resources\Phone\Item\Message.png" /> + <BundleResource Include="Resources\Phone\Item\FixedPosition.png" /> + <BundleResource Include="Resources\Phone\Item\GarrisonListSelected.png" /> + <BundleResource Include="Resources\Phone\Item\Back.png" /> + <BundleResource Include="Resources\Phone\Item\RightNext.png" /> + <BundleResource Include="Resources\Phone\Item\FunctionViewBG.png" /> + <BundleResource Include="Resources\Phone\Item\SceneFunctionBG.png" /> + <BundleResource Include="Resources\Phone\Item\SelectHouse.png" /> + <BundleResource Include="Resources\Phone\Item\ScanQRcodeIconSelected.png" /> + <BundleResource Include="Resources\Phone\Item\InputAccountIconSelected.png" /> + <BundleResource Include="Resources\Phone\PM2.5Sensor\PmPic.png" /> + <BundleResource Include="Resources\Phone\PM2.5Sensor\TemperaturePic.png" /> + <BundleResource Include="Resources\Phone\PM2.5Sensor\HumidityPic.png" /> + <BundleResource Include="Resources\Phone\ZigeeLogic\deviceselectedbackgroundcolor.png" /> + <BundleResource Include="Resources\Phone\ZigeeLogic\sensor541.png" /> + <BundleResource Include="Resources\Phone\ZigeeLogic\add.png" /> + <BundleResource Include="Resources\Phone\ZigeeLogic\sensor0.png" /> + <BundleResource Include="Resources\Phone\ZigeeLogic\selectedsensor13.png" /> + <BundleResource Include="Resources\Phone\ZigeeLogic\noMode.png" /> + <BundleResource Include="Resources\Phone\ZigeeLogic\logicbj1.png" /> + <BundleResource Include="Resources\Phone\ZigeeLogic\dimmableLight.png" /> + <BundleResource Include="Resources\Phone\ZigeeLogic\athome.png" /> + <BundleResource Include="Resources\Phone\ZigeeLogic\function1.png" /> + <BundleResource Include="Resources\Phone\ZigeeLogic\selecteddoorlock.png" /> + <BundleResource Include="Resources\Phone\ZigeeLogic\logicbj2.png" /> + <BundleResource Include="Resources\Phone\ZigeeLogic\lesLuminositys.png" /> + <BundleResource Include="Resources\Phone\ZigeeLogic\nosecurity.png" /> + <BundleResource Include="Resources\Phone\ZigeeLogic\time.png" /> + <BundleResource Include="Resources\Phone\ZigeeLogic\selectedsenor.png" /> + <BundleResource Include="Resources\Phone\ZigeeLogic\position.png" /> + <BundleResource Include="Resources\Phone\ZigeeLogic\noon.png" /> + <BundleResource Include="Resources\Phone\ZigeeLogic\selectedmonth.png" /> + <BundleResource Include="Resources\Phone\ZigeeLogic\selectedsensor277.png" /> + <BundleResource Include="Resources\Phone\ZigeeLogic\ac.png" /> + <BundleResource Include="Resources\Phone\ZigeeLogic\curtain.png" /> + <BundleResource Include="Resources\Phone\ZigeeLogic\doorlock.png" /> + <BundleResource Include="Resources\Phone\ZigeeLogic\progressbtn2.png" /> + <BundleResource Include="Resources\Phone\ZigeeLogic\nodelay.png" /> + <BundleResource Include="Resources\Phone\ZigeeLogic\addLuminosity.png" /> + <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" /> + <BundleResource Include="Resources\Phone\ZigeeLogic\Ddmmablelight.png" /> + <BundleResource Include="Resources\Phone\ZigeeLogic\security1.png" /> + <BundleResource Include="Resources\Phone\ZigeeLogic\delay.png" /> + <BundleResource Include="Resources\Phone\ZigeeLogic\sunrise.png" /> + <BundleResource Include="Resources\Phone\ZigeeLogic\progressbtn_2.png" /> + <BundleResource Include="Resources\Phone\ZigeeLogic\temperature.png" /> + <BundleResource Include="Resources\Phone\ZigeeLogic\AddSelected.png" /> + <BundleResource Include="Resources\Phone\ZigeeLogic\nightLightSelected.png" /> + <BundleResource Include="Resources\Phone\ZigeeLogic\seek.png" /> + <BundleResource Include="Resources\Phone\ZigeeLogic\light_1.png" /> + <BundleResource Include="Resources\Phone\ZigeeLogic\sign.png" /> + <BundleResource Include="Resources\Phone\ZigeeLogic\selected.png" /> + <BundleResource Include="Resources\Phone\ZigeeLogic\connect.png" /> + <BundleResource Include="Resources\Phone\ZigeeLogic\scene1.png" /> + <BundleResource Include="Resources\Phone\ZigeeLogic\point.png" /> + <BundleResource Include="Resources\Phone\ZigeeLogic\airswitch.png" /> + <BundleResource Include="Resources\Phone\ZigeeLogic\leavehome.png" /> + <BundleResource Include="Resources\Phone\ZigeeLogic\timeparagraph.png" /> + <BundleResource Include="Resources\Phone\ZigeeLogic\light.png" /> + <BundleResource Include="Resources\Phone\ZigeeLogic\selectedsensor44.png" /> + <BundleResource Include="Resources\Phone\ZigeeLogic\selectedsensor541.png" /> + <BundleResource Include="Resources\Phone\ZigeeLogic\back1.png" /> + <BundleResource Include="Resources\Phone\ZigeeLogic\selectedpanel.png" /> + <BundleResource Include="Resources\Phone\ZigeeLogic\nofunction.png" /> + <BundleResource Include="Resources\Phone\ZigeeLogic\panel.png" /> + <BundleResource Include="Resources\Phone\ZigeeLogic\sensor277.png" /> + <BundleResource Include="Resources\Phone\ZigeeLogic\selectedsensor43.png" /> + <BundleResource Include="Resources\Phone\ZigeeLogic\selectedsensor42.png" /> + <BundleResource Include="Resources\Phone\ZigeeLogic\sensor22.png" /> + <BundleResource Include="Resources\Phone\ZigeeLogic\iconBackgroundColor.png" /> + <BundleResource Include="Resources\Phone\ZigeeLogic\dropdown.png" /> + <BundleResource Include="Resources\Phone\ZigeeLogic\lockadd.png" /> + <BundleResource Include="Resources\Phone\ZigeeLogic\selectedhumidity.png" /> + <BundleResource Include="Resources\Phone\ZigeeLogic\delay1.png" /> + <BundleResource Include="Resources\Phone\ZigeeLogic\selectedlight.png" /> + <BundleResource Include="Resources\Phone\ZigeeLogic\selectedsensor40.png" /> + <BundleResource Include="Resources\Phone\ZigeeLogic\deviceunselectedbackgroundcolor.png" /> + <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" /> + <BundleResource Include="Resources\Phone\ZigeeLogic\noscene.png" /> + <BundleResource Include="Resources\Phone\ZigeeLogic\selecteddimmableLight.png" /> + <BundleResource Include="Resources\Phone\ZigeeLogic\timepoint.png" /> + <BundleResource Include="Resources\Phone\ZigeeLogic\sensor40.png" /> + <BundleResource Include="Resources\Phone\ZigeeLogic\humidity.png" /> + <BundleResource Include="Resources\Phone\ZigeeLogic\tipIcon.png" /> + <BundleResource Include="Resources\Phone\ZigeeLogic\2.png" /> + <BundleResource Include="Resources\Phone\ZigeeLogic\selectedac.png" /> + <BundleResource Include="Resources\Phone\ZigeeLogic\openMode.png" /> + <BundleResource Include="Resources\Phone\ZigeeLogic\selectedsensor21.png" /> + <BundleResource Include="Resources\Phone\ZigeeLogic\nextIconSone.png" /> + <BundleResource Include="Resources\Phone\ZigeeLogic\3.png" /> + <BundleResource Include="Resources\Phone\ZigeeLogic\back.png" /> + <BundleResource Include="Resources\Phone\ZigeeLogic\selectedtemperature.png" /> + <BundleResource Include="Resources\Phone\ZigeeLogic\selectedairswitch.png" /> + <BundleResource Include="Resources\Phone\ZigeeLogic\sunset.png" /> + <BundleResource Include="Resources\Phone\ZigeeLogic\sensor43.png" /> + <BundleResource Include="Resources\Phone\ZigeeLogic\scene.png" /> + <BundleResource Include="Resources\Phone\ZigeeLogic\1.png" /> + <BundleResource Include="Resources\Phone\ZigeeLogic\selectedcurtain.png" /> + <BundleResource Include="Resources\Phone\ZigeeLogic\selectedsensor22.png" /> + <BundleResource Include="Resources\Phone\ZigeeLogic\drop-down.png" /> + <BundleResource Include="Resources\Phone\ZigeeLogic\logicopen.png" /> + <BundleResource Include="Resources\Phone\ZigeeLogic\sensor42.png" /> + <BundleResource Include="Resources\Phone\Device\DimmableLightSelected.png" /> + <BundleResource Include="Resources\Phone\Device\CurtainSiphonate.png" /> + <BundleResource Include="Resources\Phone\Device\Socket1Selected2.png" /> + <BundleResource Include="Resources\Phone\Device\DimmableLight.png" /> + <BundleResource Include="Resources\Phone\Device\ColorLightTemperatureSelected2.png" /> + <BundleResource Include="Resources\Phone\Device\ButtonPanelTwo.png" /> + <BundleResource Include="Resources\Phone\Device\RelayEpointSelected2.png" /> + <BundleResource Include="Resources\Phone\Device\ConverterZb485Selected2.png" /> + <BundleResource Include="Resources\Phone\Device\ButtonPanelSimpleMultifunctionSelected2.png" /> + <BundleResource Include="Resources\Phone\Device\ButtonPanelCurtainSelected2.png" /> + <BundleResource Include="Resources\Phone\Device\DimmableLightSelected2.png" /> + <BundleResource Include="Resources\Phone\Device\SensorPir.png" /> + <BundleResource Include="Resources\Phone\Device\SensorSphericalMotionSelected2.png" /> + <BundleResource Include="Resources\Phone\Device\SensorFireSelected2.png" /> + <BundleResource Include="Resources\Phone\Device\ButtonPanelFangyueEnvironmentSelected.png" /> + <BundleResource Include="Resources\Phone\Device\LightSelected.png" /> + <BundleResource Include="Resources\Phone\Device\RelaySelected2.png" /> + <BundleResource Include="Resources\Phone\Device\ColorLightTemperatureSelected.png" /> + <BundleResource Include="Resources\Phone\Device\ColorLightTemperature.png" /> + <BundleResource Include="Resources\Phone\Device\SensorWaterSelected2.png" /> + <BundleResource Include="Resources\Phone\Device\SensorHumiditySelected.png" /> + <BundleResource Include="Resources\Phone\Device\RelayThreeLoad.png" /> + <BundleResource Include="Resources\Phone\Device\CurtainAutoOpen.png" /> + <BundleResource Include="Resources\Phone\Device\SensorTemperatureSelected2.png" /> + <BundleResource Include="Resources\Phone\Device\IntelligentLocksH06CSelected.png" /> + <BundleResource Include="Resources\Phone\Device\CurtainSelected2.png" /> + <BundleResource Include="Resources\Phone\Device\Relay.png" /> + <BundleResource Include="Resources\Phone\Device\AirQualitySensorEpoint.png" /> + <BundleResource Include="Resources\Phone\Device\SensorWaterSelected.png" /> + <BundleResource Include="Resources\Phone\Device\SensorInfrared.png" /> + <BundleResource Include="Resources\Phone\Device\ButtonPanelFangyueFreshAir.png" /> + <BundleResource Include="Resources\Phone\Device\Curtain.png" /> + <BundleResource Include="Resources\Phone\Device\SwitchSelected2.png" /> + <BundleResource Include="Resources\Phone\Device\AirSwitchCloudContr.png" /> + <BundleResource Include="Resources\Phone\Device\Socket1.png" /> + <BundleResource Include="Resources\Phone\Device\AirConditionerSelected2.png" /> + <BundleResource Include="Resources\Phone\Device\RelayThreeLoadSelected2.png" /> + <BundleResource Include="Resources\Phone\Device\ButtonPanelSelected2.png" /> + <BundleResource Include="Resources\Phone\Device\SensorCarbonMonoxideSelected.png" /> + <BundleResource Include="Resources\Phone\Device\ButtonPanelFour.png" /> + <BundleResource Include="Resources\Phone\Device\RelayEpointSelected.png" /> + <BundleResource Include="Resources\Phone\Device\SensorCeilingGasSelected.png" /> + <BundleResource Include="Resources\Phone\Device\ButtonPanelSelected.png" /> + <BundleResource Include="Resources\Phone\Device\SensorTemperatureHumidity.png" /> + <BundleResource Include="Resources\Phone\Device\RepeaterZigbeeSelected2.png" /> + <BundleResource Include="Resources\Phone\Device\ButtonPanelCurtainSelected.png" /> + <BundleResource Include="Resources\Phone\Device\SensorDoorWindowSelected2.png" /> + <BundleResource Include="Resources\Phone\Device\RelayThreeLoadSelected.png" /> + <BundleResource Include="Resources\Phone\Device\DryContactSelected2.png" /> + <BundleResource Include="Resources\Phone\Device\ButtonPanelCurtain.png" /> + <BundleResource Include="Resources\Phone\Device\SensorCarbonMonoxideSelected2.png" /> + <BundleResource Include="Resources\Phone\Device\ConverterZb485.png" /> + <BundleResource Include="Resources\Phone\Device\ButtonPanelFangyueFreshAirSelected.png" /> + <BundleResource Include="Resources\Phone\Device\Repeater.png" /> + <BundleResource Include="Resources\Phone\Device\ButtonPanelFangyueFour.png" /> + <BundleResource Include="Resources\Phone\Device\SensorInfraredSelected2.png" /> + <BundleResource Include="Resources\Phone\Device\SensorHumidity.png" /> + <BundleResource Include="Resources\Phone\Device\AirConditionerEpointSelected.png" /> + <BundleResource Include="Resources\Phone\Device\CurtainAutoOpenSelected.png" /> + <BundleResource Include="Resources\Phone\Device\Sensor.png" /> + <BundleResource Include="Resources\Phone\Device\FreshAirEpointSelected2.png" /> + <BundleResource Include="Resources\Phone\Device\RepeaterSelected.png" /> + <BundleResource Include="Resources\Phone\Device\SensorCeilingGasSelected2.png" /> + <BundleResource Include="Resources\Phone\Device\AirSwitchSelected2.png" /> + <BundleResource Include="Resources\Phone\Device\ConverterSelected2.png" /> + <BundleResource Include="Resources\Phone\Device\AirSwitchSelected.png" /> + <BundleResource Include="Resources\Phone\Device\AirQualitySensorEpointSelected.png" /> + <BundleResource Include="Resources\Phone\Device\SensorMotionSelected.png" /> + <BundleResource Include="Resources\Phone\Device\IntelligentLocksSelected.png" /> + <BundleResource Include="Resources\Phone\Device\RelaySelected.png" /> + <BundleResource Include="Resources\Phone\Device\Socket1Selected.png" /> + <BundleResource Include="Resources\Phone\Device\IntelligentLocks.png" /> + <BundleResource Include="Resources\Phone\Device\ButtonPanelSimpleEnvironment.png" /> + <BundleResource Include="Resources\Phone\Device\ConverterZb485Selected.png" /> + <BundleResource Include="Resources\Phone\Device\ColorLightSelected.png" /> + <BundleResource Include="Resources\Phone\Device\SensorEmergencyButton.png" /> + <BundleResource Include="Resources\Phone\Device\AirSwitch.png" /> + <BundleResource Include="Resources\Phone\Device\IntelligentLocksH06CSelected2.png" /> + <BundleResource Include="Resources\Phone\Device\SwitchSelected.png" /> + <BundleResource Include="Resources\Phone\Device\ButtonPanelTwoSelected.png" /> + <BundleResource Include="Resources\Phone\Device\SensorDoorWindowSelected.png" /> + <BundleResource Include="Resources\Phone\Device\Light.png" /> + <BundleResource Include="Resources\Phone\Device\ButtonPanelFangyueTwoSelected.png" /> + <BundleResource Include="Resources\Phone\Device\ThirdPartyDevice.png" /> + <BundleResource Include="Resources\Phone\Device\AirConditionerZbGatewaySelected2.png" /> + <BundleResource Include="Resources\Phone\Device\ButtonPanelFangyueEightSelected.png" /> + <BundleResource Include="Resources\Phone\Device\SensorMotion.png" /> + <BundleResource Include="Resources\Phone\Device\SensorSphericalMotion.png" /> + <BundleResource Include="Resources\Phone\Device\ButtonPanelFangyueEnvironment.png" /> + <BundleResource Include="Resources\Phone\Device\ButtonPanelOneSelected2.png" /> + <BundleResource Include="Resources\Phone\Device\ButtonPanelSimpleMultifunctionSelected.png" /> + <BundleResource Include="Resources\Phone\Device\AirConditionerEpoint.png" /> + <BundleResource Include="Resources\Phone\Device\SensorTemperatureHumiditySelected2.png" /> + <BundleResource Include="Resources\Phone\Device\AirConditionerEpointSelected2.png" /> + <BundleResource Include="Resources\Phone\Device\SensorPMTwoPointFiveSelected2.png" /> + <BundleResource Include="Resources\Phone\Device\DryContactSelected.png" /> + <BundleResource Include="Resources\Phone\Device\CurtainSelected.png" /> + <BundleResource Include="Resources\Phone\Device\ButtonPanelSimpleEnvironmentSelected.png" /> + <BundleResource Include="Resources\Phone\Device\Converter.png" /> + <BundleResource Include="Resources\Phone\Device\AirConditioner.png" /> + <BundleResource Include="Resources\Phone\Device\SensorFireSelected.png" /> + <BundleResource Include="Resources\Phone\Device\ColorLight.png" /> + <BundleResource Include="Resources\Phone\Device\AirConditionerZbGatewaySelected.png" /> + <BundleResource Include="Resources\Phone\Device\AirQualitySensorEpointSelected2.png" /> + <BundleResource Include="Resources\Phone\Device\Switch.png" /> + <BundleResource Include="Resources\Phone\Device\AirConditionerSelected.png" /> + <BundleResource Include="Resources\Phone\Device\ButtonPanel.png" /> + <BundleResource Include="Resources\Phone\Device\ButtonPanelTwoSelected2.png" /> + <BundleResource Include="Resources\Phone\Device\FreshAirEpointSelected.png" /> + <BundleResource Include="Resources\Phone\Device\SensorEmergencyButtonSelected.png" /> + <BundleResource Include="Resources\Phone\Device\AirConditionerZbGateway.png" /> + <BundleResource Include="Resources\Phone\Device\DryContact.png" /> + <BundleResource Include="Resources\Phone\Device\AirSwitchCloudContrSelected2.png" /> + <BundleResource Include="Resources\Phone\Device\ButtonPanelFourSelected.png" /> + <BundleResource Include="Resources\Phone\Device\ButtonPanelOneSelected.png" /> + <BundleResource Include="Resources\Phone\Device\SensorPirSelected.png" /> + <BundleResource Include="Resources\Phone\Device\SensorCeilingGas.png" /> + <BundleResource Include="Resources\Phone\Device\CurtainSiphonateSelected2.png" /> + <BundleResource Include="Resources\Phone\Device\LightSelected2.png" /> + <BundleResource Include="Resources\Phone\Device\ButtonPanelThreeSelected.png" /> + <BundleResource Include="Resources\Phone\Device\IntelligentLocksH06C.png" /> + <BundleResource Include="Resources\Phone\Device\ButtonPanelFangyueEightSelected2.png" /> + <BundleResource Include="Resources\Phone\Device\SensorPMTwoPointFiveSelected.png" /> + <BundleResource Include="Resources\Phone\Device\IntelligentLocksSelected2.png" /> + <BundleResource Include="Resources\Phone\Device\CurtainSiphonateSelected.png" /> + <BundleResource Include="Resources\Phone\Device\SensorDoorWindow.png" /> + <BundleResource Include="Resources\Phone\Device\ButtonPanelSimpleMultifunction.png" /> + <BundleResource Include="Resources\Phone\Device\ButtonPanelOne.png" /> + <BundleResource Include="Resources\Phone\Device\ButtonPanelFangyueEight.png" /> + <BundleResource Include="Resources\Phone\Device\CurtainAutoOpenSelected2.png" /> + <BundleResource Include="Resources\Phone\Device\ButtonPanelFangyueFourSelected.png" /> + <BundleResource Include="Resources\Phone\Device\ThirdPartyDeviceSelected2.png" /> + <BundleResource Include="Resources\Phone\Device\ThirdPartyDeviceSelected.png" /> + <BundleResource Include="Resources\Phone\Device\SensorTemperature.png" /> + <BundleResource Include="Resources\Phone\Device\SensorFire.png" /> + <BundleResource Include="Resources\Phone\Device\DimmableLightOneLoadSelected.png" /> + <BundleResource Include="Resources\Phone\Device\SensorTemperatureSelected.png" /> + <BundleResource Include="Resources\Phone\Device\ButtonPanelFangyueTwoSelected2.png" /> + <BundleResource Include="Resources\Phone\Device\FreshAirEpoint.png" /> + <BundleResource Include="Resources\Phone\Device\ColorLightSelected2.png" /> + <BundleResource Include="Resources\Phone\Device\DimmableLightOneLoadSelected2.png" /> + <BundleResource Include="Resources\Phone\Device\ButtonPanelThree.png" /> + <BundleResource Include="Resources\Phone\Device\SensorInfraredSelected.png" /> + <BundleResource Include="Resources\Phone\Device\RepeaterSelected2.png" /> + <BundleResource Include="Resources\Phone\Device\SensorPMTwoPointFive.png" /> + <BundleResource Include="Resources\Phone\Device\ConverterSelected.png" /> + <BundleResource Include="Resources\Phone\Device\SensorEmergencyButtonSelected2.png" /> + <BundleResource Include="Resources\Phone\Device\RepeaterZigbeeSelected.png" /> + <BundleResource Include="Resources\Phone\Device\SensorCarbonMonoxide.png" /> + <BundleResource Include="Resources\Phone\Device\ButtonPanelFourSelected2.png" /> + <BundleResource Include="Resources\Phone\Device\SensorSphericalMotionSelected.png" /> + <BundleResource Include="Resources\Phone\Device\DimmableLightOneLoad.png" /> + <BundleResource Include="Resources\Phone\Device\SensorHumiditySelected2.png" /> + <BundleResource Include="Resources\Phone\Device\SensorPirSelected2.png" /> + <BundleResource Include="Resources\Phone\Device\SensorMotionSelected2.png" /> + <BundleResource Include="Resources\Phone\Device\ButtonPanelSimpleEnvironmentSelected2.png" /> + <BundleResource Include="Resources\Phone\Device\AirSwitchCloudContrSelected.png" /> + <BundleResource Include="Resources\Phone\Device\ButtonPanelFangyueTwo.png" /> + <BundleResource Include="Resources\Phone\Device\RelayEpoint.png" /> + <BundleResource Include="Resources\Phone\Device\SensorSelected2.png" /> + <BundleResource Include="Resources\Phone\Device\RepeaterZigbee.png" /> + <BundleResource Include="Resources\Phone\Device\SensorWater.png" /> + <BundleResource Include="Resources\Phone\Device\ButtonPanelThreeSelected2.png" /> + <BundleResource Include="Resources\Phone\Device\SensorSelected.png" /> + <BundleResource Include="Resources\Phone\Device\ButtonPanelFangyueFreshAirSelected2.png" /> + <BundleResource Include="Resources\Phone\Device\SensorTemperatureHumiditySelected.png" /> + <BundleResource Include="Resources\Phone\Device\ButtonPanelFangyueFourSelected2.png" /> + <BundleResource Include="Resources\Phone\Device\ButtonPanelFangyueEnvironmentSelected2.png" /> + <BundleResource Include="Resources\Phone\Light\DeskLampSelected.png" /> + <BundleResource Include="Resources\Phone\Light\ON.png" /> + <BundleResource Include="Resources\Phone\Light\Plug.png" /> + <BundleResource Include="Resources\Phone\Light\PlugSelected.png" /> + <BundleResource Include="Resources\Phone\Light\OFFSelected.png" /> + <BundleResource Include="Resources\Phone\Light\ONSelected.png" /> + <BundleResource Include="Resources\Phone\Light\OFF.png" /> + <BundleResource Include="Resources\Phone\Light\OnOff.png" /> + <BundleResource Include="Resources\Phone\Light\DeskLamp.png" /> + <BundleResource Include="Resources\Phone\Safeguard\WithdrawGarrison.png" /> + <BundleResource Include="Resources\Phone\Safeguard\SafetyShortcut.png" /> + <BundleResource Include="Resources\Phone\Safeguard\ProtectionRemoveHomeSelected.png" /> + <BundleResource Include="Resources\Phone\Safeguard\ProtectionRemoveHome.png" /> + <BundleResource Include="Resources\Phone\Safeguard\WithdrawGarrisonSelected.png" /> + <BundleResource Include="Resources\Phone\Safeguard\SafeguardPasswordGround.png" /> + <BundleResource Include="Resources\Phone\Safeguard\SafetyShortcutSelected.png" /> + <BundleResource Include="Resources\Phone\Safeguard\ProtectionAtHomeSelected.png" /> + <BundleResource Include="Resources\Phone\Safeguard\ProtectionAtHome.png" /> + <BundleResource Include="Resources\Phone\Floor\SelectFloor_Left_5.png" /> + <BundleResource Include="Resources\Phone\Floor\SelectFloor_Left_4.png" /> + <BundleResource Include="Resources\Phone\Floor\SelectFloor_Right_4.png" /> + <BundleResource Include="Resources\Phone\Floor\SelectFloor_Right_5.png" /> + <BundleResource Include="Resources\Phone\Floor\SelectFloor_Right_1.png" /> + <BundleResource Include="Resources\Phone\Floor\SelectFloor_Left_3.png" /> + <BundleResource Include="Resources\Phone\Floor\SelectFloor_Left_2.png" /> + <BundleResource Include="Resources\Phone\Floor\SelectFloor_Right_2.png" /> + <BundleResource Include="Resources\Phone\Floor\FloorSelected.png" /> + <BundleResource Include="Resources\Phone\Floor\SelectFloor_Left_1.png" /> + <BundleResource Include="Resources\Phone\Floor\SelectFloor_Right_3.png" /> + <BundleResource Include="Resources\Phone\Floor\Floor.png" /> + <BundleResource Include="Resources\Phone\RoomIcon\8.jpg" /> + <BundleResource Include="Resources\Phone\RoomIcon\9.jpg" /> + <BundleResource Include="Resources\Phone\RoomIcon\14.jpg" /> + <BundleResource Include="Resources\Phone\RoomIcon\15.jpg" /> + <BundleResource Include="Resources\Phone\RoomIcon\17.jpg" /> + <BundleResource Include="Resources\Phone\RoomIcon\16.jpg" /> + <BundleResource Include="Resources\Phone\RoomIcon\12.jpg" /> + <BundleResource Include="Resources\Phone\RoomIcon\13.jpg" /> + <BundleResource Include="Resources\Phone\RoomIcon\11.jpg" /> + <BundleResource Include="Resources\Phone\RoomIcon\10.jpg" /> + <BundleResource Include="Resources\Phone\RoomIcon\21.jpg" /> + <BundleResource Include="Resources\Phone\RoomIcon\20.jpg" /> + <BundleResource Include="Resources\Phone\RoomIcon\18.jpg" /> + <BundleResource Include="Resources\Phone\RoomIcon\19.jpg" /> + <BundleResource Include="Resources\Phone\RoomIcon\4.jpg" /> + <BundleResource Include="Resources\Phone\RoomIcon\5.jpg" /> + <BundleResource Include="Resources\Phone\RoomIcon\7.jpg" /> + <BundleResource Include="Resources\Phone\RoomIcon\6.jpg" /> + <BundleResource Include="Resources\Phone\RoomIcon\2.jpg" /> + <BundleResource Include="Resources\Phone\RoomIcon\3.jpg" /> + <BundleResource Include="Resources\Phone\RoomIcon\1.jpg" /> + <BundleResource Include="Resources\Phone\RoomIcon\0.jpg" /> + <BundleResource Include="Resources\Phone\Account\Logo_WhiteHome.png" /> + <BundleResource Include="Resources\Phone\Account\Code.png" /> + <BundleResource Include="Resources\Phone\Account\Cancle.png" /> + <BundleResource Include="Resources\Phone\Account\HidePwd.png" /> + <BundleResource Include="Resources\Phone\Account\Account.png" /> + <BundleResource Include="Resources\Phone\Account\Cat.png" /> + <BundleResource Include="Resources\Phone\Account\Password.png" /> + <BundleResource Include="Resources\Phone\Account\QQ.png" /> + <BundleResource Include="Resources\Phone\Account\Logo_Evoyo.png" /> + <BundleResource Include="Resources\Phone\Account\PhoneEmail_White.png" /> + <BundleResource Include="Resources\Phone\Account\ChangeSuccess.png" /> + <BundleResource Include="Resources\Phone\Account\Wechat.png" /> + <BundleResource Include="Resources\Phone\Account\Logo_loginBG.png" /> + <BundleResource Include="Resources\Phone\Account\Back.png" /> + <BundleResource Include="Resources\Phone\Account\UnhidePwd.png" /> + <BundleResource Include="Resources\Phone\Scene\SceneShadow.png" /> + <BundleResource Include="Resources\Phone\Scene\Delaying.png" /> + <BundleResource Include="Resources\Phone\Scene\SceneActionGroud.png" /> + <BundleResource Include="Resources\Phone\Scene\Selected.png" /> + <BundleResource Include="Resources\Phone\Scene\Background.png" /> + <BundleResource Include="Resources\Phone\Scene\SceneIcon.png" /> + <BundleResource Include="Resources\Phone\FunctionIcon\17Icon.png" /> + <BundleResource Include="Resources\Phone\FunctionIcon\5IconSelected2.png" /> + <BundleResource Include="Resources\Phone\FunctionIcon\11IconSelected2.png" /> + <BundleResource Include="Resources\Phone\FunctionIcon\4Icon.png" /> + <BundleResource Include="Resources\Phone\FunctionIcon\28Icon.png" /> + <BundleResource Include="Resources\Phone\FunctionIcon\16IconSelected.png" /> + <BundleResource Include="Resources\Phone\FunctionIcon\6IconSelected.png" /> + <BundleResource Include="Resources\Phone\FunctionIcon\24IconSelected2.png" /> + <BundleResource Include="Resources\Phone\FunctionIcon\24IconSelected.png" /> + <BundleResource Include="Resources\Phone\FunctionIcon\9IconSelected.png" /> + <BundleResource Include="Resources\Phone\FunctionIcon\19IconSelected.png" /> + <BundleResource Include="Resources\Phone\FunctionIcon\21Icon.png" /> + <BundleResource Include="Resources\Phone\FunctionIcon\23IconSelected.png" /> + <BundleResource Include="Resources\Phone\FunctionIcon\20IconSelected2.png" /> + <BundleResource Include="Resources\Phone\FunctionIcon\20Icon.png" /> + <BundleResource Include="Resources\Phone\FunctionIcon\16Icon.png" /> + <BundleResource Include="Resources\Phone\FunctionIcon\1IconSelected.png" /> + <BundleResource Include="Resources\Phone\FunctionIcon\11IconSelected.png" /> + <BundleResource Include="Resources\Phone\FunctionIcon\5Icon.png" /> + <BundleResource Include="Resources\Phone\FunctionIcon\1IconSelected2.png" /> + <BundleResource Include="Resources\Phone\FunctionIcon\15IconSelected2.png" /> + <BundleResource Include="Resources\Phone\FunctionIcon\22Icon.png" /> + <BundleResource Include="Resources\Phone\FunctionIcon\10IconSelected2.png" /> + <BundleResource Include="Resources\Phone\FunctionIcon\22IconSelected.png" /> + <BundleResource Include="Resources\Phone\FunctionIcon\4IconSelected2.png" /> + <BundleResource Include="Resources\Phone\FunctionIcon\7Icon.png" /> + <BundleResource Include="Resources\Phone\FunctionIcon\10IconSelected.png" /> + <BundleResource Include="Resources\Phone\FunctionIcon\14Icon.png" /> + <BundleResource Include="Resources\Phone\FunctionIcon\25IconSelected2.png" /> + <BundleResource Include="Resources\Phone\FunctionIcon\6Icon.png" /> + <BundleResource Include="Resources\Phone\FunctionIcon\21IconSelected2.png" /> + <BundleResource Include="Resources\Phone\FunctionIcon\15Icon.png" /> + <BundleResource Include="Resources\Phone\FunctionIcon\17IconSelected.png" /> + <BundleResource Include="Resources\Phone\FunctionIcon\7IconSelected.png" /> + <BundleResource Include="Resources\Phone\FunctionIcon\14IconSelected2.png" /> + <BundleResource Include="Resources\Phone\FunctionIcon\25IconSelected.png" /> + <BundleResource Include="Resources\Phone\FunctionIcon\8IconSelected.png" /> + <BundleResource Include="Resources\Phone\FunctionIcon\18IconSelected.png" /> + <BundleResource Include="Resources\Phone\FunctionIcon\23Icon.png" /> + <BundleResource Include="Resources\Phone\FunctionIcon\26Icon.png" /> + <BundleResource Include="Resources\Phone\FunctionIcon\20IconSelected.png" /> + <BundleResource Include="Resources\Phone\FunctionIcon\19Icon.png" /> + <BundleResource Include="Resources\Phone\FunctionIcon\18IconSelected2.png" /> + <BundleResource Include="Resources\Phone\FunctionIcon\26IconSelected2.png" /> + <BundleResource Include="Resources\Phone\FunctionIcon\13IconSelected2.png" /> + <BundleResource Include="Resources\Phone\FunctionIcon\3Icon.png" /> + <BundleResource Include="Resources\Phone\FunctionIcon\10Icon.png" /> + <BundleResource Include="Resources\Phone\FunctionIcon\7IconSelected2.png" /> + <BundleResource Include="Resources\Phone\FunctionIcon\12IconSelected.png" /> + <BundleResource Include="Resources\Phone\FunctionIcon\2IconSelected.png" /> + <BundleResource Include="Resources\Phone\FunctionIcon\28IconSelected.png" /> + <BundleResource Include="Resources\Phone\FunctionIcon\5IconSelected.png" /> + <BundleResource Include="Resources\Phone\FunctionIcon\15IconSelected.png" /> + <BundleResource Include="Resources\Phone\FunctionIcon\17IconSelected2.png" /> + <BundleResource Include="Resources\Phone\FunctionIcon\3IconSelected2.png" /> + <BundleResource Include="Resources\Phone\FunctionIcon\2Icon.png" /> + <BundleResource Include="Resources\Phone\FunctionIcon\11Icon.png" /> + <BundleResource Include="Resources\Phone\FunctionIcon\27Icon.png" /> + <BundleResource Include="Resources\Phone\FunctionIcon\8IconSelected2.png" /> + <BundleResource Include="Resources\Phone\FunctionIcon\22IconSelected2.png" /> + <BundleResource Include="Resources\Phone\FunctionIcon\18Icon.png" /> + <BundleResource Include="Resources\Phone\FunctionIcon\27IconSelected.png" /> + <BundleResource Include="Resources\Phone\FunctionIcon\19IconSelected2.png" /> + <BundleResource Include="Resources\Phone\FunctionIcon\27IconSelected2.png" /> + <BundleResource Include="Resources\Phone\FunctionIcon\4IconSelected.png" /> + <BundleResource Include="Resources\Phone\FunctionIcon\14IconSelected.png" /> + <BundleResource Include="Resources\Phone\FunctionIcon\13Icon.png" /> + <BundleResource Include="Resources\Phone\FunctionIcon\6IconSelected2.png" /> + <BundleResource Include="Resources\Phone\FunctionIcon\25Icon.png" /> + <BundleResource Include="Resources\Phone\FunctionIcon\12IconSelected2.png" /> + <BundleResource Include="Resources\Phone\FunctionIcon\9Icon.png" /> + <BundleResource Include="Resources\Phone\FunctionIcon\26IconSelected.png" /> + <BundleResource Include="Resources\Phone\FunctionIcon\21IconSelected.png" /> + <BundleResource Include="Resources\Phone\FunctionIcon\24Icon.png" /> + <BundleResource Include="Resources\Phone\FunctionIcon\2IconSelected2.png" /> + <BundleResource Include="Resources\Phone\FunctionIcon\8Icon.png" /> + <BundleResource Include="Resources\Phone\FunctionIcon\28IconSelected2.png" /> + <BundleResource Include="Resources\Phone\FunctionIcon\16IconSelected2.png" /> + <BundleResource Include="Resources\Phone\FunctionIcon\23IconSelected2.png" /> + <BundleResource Include="Resources\Phone\FunctionIcon\12Icon.png" /> + <BundleResource Include="Resources\Phone\FunctionIcon\13IconSelected.png" /> + <BundleResource Include="Resources\Phone\FunctionIcon\3IconSelected.png" /> + <BundleResource Include="Resources\Phone\FunctionIcon\9IconSelected2.png" /> + <BundleResource Include="Resources\Phone\FunctionIcon\1Icon.png" /> + <BundleResource Include="Resources\Phone\RealDevice\CurtainSiphonate.png" /> + <BundleResource Include="Resources\Phone\RealDevice\ButtonPanelTwo.png" /> + <BundleResource Include="Resources\Phone\RealDevice\SensorPir.png" /> + <BundleResource Include="Resources\Phone\RealDevice\RelayThreeLoad.png" /> + <BundleResource Include="Resources\Phone\RealDevice\ButtonPanelFourNotPower.png" /> + <BundleResource Include="Resources\Phone\RealDevice\CurtainAutoOpen.png" /> + <BundleResource Include="Resources\Phone\RealDevice\SensorInfrared.png" /> + <BundleResource Include="Resources\Phone\RealDevice\ButtonPanelFangyueFreshAir.png" /> + <BundleResource Include="Resources\Phone\RealDevice\AirSwitchCloudContr.png" /> + <BundleResource Include="Resources\Phone\RealDevice\ButtonPanelFour.png" /> + <BundleResource Include="Resources\Phone\RealDevice\SensorTemperatureHumidity.png" /> + <BundleResource Include="Resources\Phone\RealDevice\ButtonPanelCurtain.png" /> + <BundleResource Include="Resources\Phone\RealDevice\Repeater.png" /> + <BundleResource Include="Resources\Phone\RealDevice\ButtonPanelFangyueFour.png" /> + <BundleResource Include="Resources\Phone\RealDevice\ButtonPanelSimpleEnvironment.png" /> + <BundleResource Include="Resources\Phone\RealDevice\CommonDevice.png" /> + <BundleResource Include="Resources\Phone\RealDevice\SensorSphericalMotion.png" /> + <BundleResource Include="Resources\Phone\RealDevice\ButtonPanelFangyueEnvironment.png" /> + <BundleResource Include="Resources\Phone\RealDevice\AirConditionerZbGateway.png" /> + <BundleResource Include="Resources\Phone\RealDevice\SensorCeilingGas.png" /> + <BundleResource Include="Resources\Phone\RealDevice\IntelligentLocksH06C.png" /> + <BundleResource Include="Resources\Phone\RealDevice\SensorDoorWindow.png" /> + <BundleResource Include="Resources\Phone\RealDevice\ButtonPanelSimpleMultifunction.png" /> + <BundleResource Include="Resources\Phone\RealDevice\ButtonPanelFangyueEight.png" /> + <BundleResource Include="Resources\Phone\RealDevice\SensorFire.png" /> + <BundleResource Include="Resources\Phone\RealDevice\ButtonPanelThree.png" /> + <BundleResource Include="Resources\Phone\RealDevice\SensorPMTwoPointFive.png" /> + <BundleResource Include="Resources\Phone\RealDevice\SensorCarbonMonoxide.png" /> + <BundleResource Include="Resources\Phone\RealDevice\DimmableLightOneLoad.png" /> + <BundleResource Include="Resources\Phone\RealDevice\ButtonPanelFangyueTwo.png" /> + <BundleResource Include="Resources\Phone\RealDevice\SensorWater.png" /> + <BundleResource Include="Resources\Phone\Gateway\WiredGatewaySearching.png" /> + <BundleResource Include="Resources\Phone\Gateway\MiniGatewaySearching.png" /> + <BundleResource Include="Resources\Phone\Gateway\WirelessGatewaySearching.png" /> + <BundleResource Include="Resources\Phone\Gateway\MiniGateway.png" /> + <BundleResource Include="Resources\Phone\Gateway\MiniGatewayDirection.png" /> + <BundleResource Include="Resources\Phone\Gateway\GatewayIcon_6.png" /> + <BundleResource Include="Resources\Phone\Gateway\RealGateway.png" /> + <BundleResource Include="Resources\Phone\Gateway\WiredGatewayInstruct.png" /> + <BundleResource Include="Resources\Phone\Gateway\WirelessApDirection.png" /> + <BundleResource Include="Resources\Phone\Gateway\GatewayIcon11.png" /> + <BundleResource Include="Resources\Phone\Gateway\GatewayIcon1.png" /> + <BundleResource Include="Resources\Phone\Gateway\GatewayIcon16.png" /> + <BundleResource Include="Resources\Phone\Gateway\WirelessApGatewaySearching.png" /> + <BundleResource Include="Resources\Phone\Gateway\RealGateway11.png" /> + <BundleResource Include="Resources\Phone\Gateway\GatewayIcon6.png" /> + <BundleResource Include="Resources\Phone\Gateway\WiredGateway.png" /> + <BundleResource Include="Resources\Phone\Gateway\WirelessGateway.png" /> + <BundleResource Include="Resources\Phone\Gateway\AddGatewaySuccess.png" /> + </ItemGroup> + <Import Project="..\Shared\Shared.projitems" Label="Shared" Condition="Exists('..\Shared\Shared.projitems')" /> + <Import Project="$(MSBuildExtensionsPath)\Xamarin\iOS\Xamarin.iOS.CSharp.targets" /> </Project> \ No newline at end of file diff --git a/ZigbeeApp/Home.Ios/Info.plist b/ZigbeeApp/Home.Ios/Info.plist index 0921792..acd8cad 100755 --- a/ZigbeeApp/Home.Ios/Info.plist +++ b/ZigbeeApp/Home.Ios/Info.plist @@ -60,8 +60,20 @@ <key>CFBundleURLTypes</key> <array> <dict> + <key>CFBundleURLSchemes</key> + <array> + <string>evoyoHome</string> + </array> + <key>CFBundleTypeRole</key> + <string>Editor</string> + </dict> + <dict> <key>CFBundleURLName</key> <string>xiaoduapp</string> + </dict> + <dict> + <key>CFBundleURLName</key> + <string>AispeechMobile</string> </dict> <dict> <key>CFBundleURLName</key> @@ -75,6 +87,7 @@ <key>LSApplicationQueriesSchemes</key> <array> <string>xiaoduapp</string> + <string>AispeechMobile</string> <string>weixin</string> <string>weixinULAPI</string> </array> diff --git a/ZigbeeApp/Home.Ios/Resources/DeviceName.ini b/ZigbeeApp/Home.Ios/Resources/DeviceName.ini index caf9e46..8c86960 100755 --- a/ZigbeeApp/Home.Ios/Resources/DeviceName.ini +++ b/ZigbeeApp/Home.Ios/Resources/DeviceName.ini @@ -119,11 +119,11 @@ ;鏂规偊鏂伴灏忔ā鍧� MFA01-ZB.10 = 2310 / 鏂规偊鏂伴灏忔ā鍧� / 鏂规偊鏂伴灏忔ā鍧� / 2300 / 缁х數鍣� / 鏂伴妯″潡 ;鍥芥爣3璺�10A缁х數鍣ㄥ皬妯″潡 -MLR0310-ZB.20= 2311 / 鍥芥爣3璺�10A缁х數鍣ㄥ皬妯″潡 / 鍥芥爣3璺�10A缁х數鍣ㄥ皬妯″潡 / 2300 / 缁х數鍣� / 寮�鍏虫ā鍧� +MLR0310-ZB.20= 2301 / 鍥芥爣3璺�10A缁х數鍣ㄥ皬妯″潡 / 鍥芥爣3璺�10A缁х數鍣ㄥ皬妯″潡 / 2300 / 缁х數鍣� / 寮�鍏虫ā鍧� ;娆ф爣2璺�5A缁х數鍣ㄥ皬妯″潡 -MLR0205-ZB.18= 2312 / 娆ф爣2璺�5A缁х數鍣ㄥ皬妯″潡 / 娆ф爣2璺�5A缁х數鍣ㄥ皬妯″潡 / 2300 / 缁х數鍣� / 寮�鍏虫ā鍧� -;娆ф爣14璺共鎺ョ偣灏忔ā鍧� -MLDRY14-ZB.18= 2313 / 娆ф爣14璺共鎺ョ偣灏忔ā鍧� / 娆ф爣14璺共鎺ョ偣灏忔ā鍧� / 2300 / 缁х數鍣� / 骞叉帴鐐规ā鍧� +MLR0205-ZB.18= 2315 / 娆ф爣2璺�5A缁х數鍣ㄥ皬妯″潡 / 娆ф爣2璺�5A缁х數鍣ㄥ皬妯″潡 / 2300 / 缁х數鍣� / 寮�鍏虫ā鍧� +;7璺共鎺ョ偣杈撳叆杈撳嚭妯″潡 +MLDRY7-ZB.18= 2320 / 7璺共鎺ョ偣杈撳叆杈撳嚭妯″潡 / 7璺共鎺ョ偣杈撳叆杈撳嚭妯″潡 / 2300 / 缁х數鍣� / 骞叉帴鐐规ā鍧� ;*************************************************************** ; 璋冨厜鍣ㄨ澶� diff --git a/ZigbeeApp/Home.Ios/Resources/Language.ini b/ZigbeeApp/Home.Ios/Resources/Language.ini index c41659f..cd650b2 100755 --- a/ZigbeeApp/Home.Ios/Resources/Language.ini +++ b/ZigbeeApp/Home.Ios/Resources/Language.ini @@ -823,10 +823,10 @@ 13609=鑷畾涔� 13610=椤圭洰鍚� 13611=璇峰~鍐欓」鐩悕绉� -13612=妤煎彿 +13612=妤� 13613=1-100涔嬮棿 -13614=鍗曞厓鍙� -13615=鎴峰彿 +13614=鍗曞厓 +13615=鎴� 13616=灞傚彿鍔犳埧鍙凤紝渚嬪0201 13617=涓句緥锛氭垚閮介噾鍫傞噾鑼傚簻椤圭洰-2鏍�-3鍗曞厓-0201鎴� 13618=閫夋嫨鍒涘缓鏂瑰紡 diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/Gateway/GatewayIcon16.png b/ZigbeeApp/Home.Ios/Resources/Phone/Gateway/GatewayIcon16.png new file mode 100644 index 0000000..4e66c42 --- /dev/null +++ b/ZigbeeApp/Home.Ios/Resources/Phone/Gateway/GatewayIcon16.png Binary files differ diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/SmartSound/Sibici.png b/ZigbeeApp/Home.Ios/Resources/Phone/SmartSound/Sibici.png new file mode 100644 index 0000000..bee15c4 --- /dev/null +++ b/ZigbeeApp/Home.Ios/Resources/Phone/SmartSound/Sibici.png Binary files differ diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/SmartSound/Tianmao.png b/ZigbeeApp/Home.Ios/Resources/Phone/SmartSound/Tianmao.png index fbd1e71..047fc53 100755 --- a/ZigbeeApp/Home.Ios/Resources/Phone/SmartSound/Tianmao.png +++ b/ZigbeeApp/Home.Ios/Resources/Phone/SmartSound/Tianmao.png Binary files differ diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/SmartSound/Xiaoai.png b/ZigbeeApp/Home.Ios/Resources/Phone/SmartSound/Xiaoai.png index c0cdfbf..6e87ebe 100755 --- a/ZigbeeApp/Home.Ios/Resources/Phone/SmartSound/Xiaoai.png +++ b/ZigbeeApp/Home.Ios/Resources/Phone/SmartSound/Xiaoai.png Binary files differ diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/SmartSound/Xiaodu.png b/ZigbeeApp/Home.Ios/Resources/Phone/SmartSound/Xiaodu.png index fa4a294..57d35d3 100755 --- a/ZigbeeApp/Home.Ios/Resources/Phone/SmartSound/Xiaodu.png +++ b/ZigbeeApp/Home.Ios/Resources/Phone/SmartSound/Xiaodu.png Binary files differ diff --git a/ZigbeeApp/Shared/Common/CommonPage.cs b/ZigbeeApp/Shared/Common/CommonPage.cs index 34864f1..7aabdf2 100755 --- a/ZigbeeApp/Shared/Common/CommonPage.cs +++ b/ZigbeeApp/Shared/Common/CommonPage.cs @@ -42,7 +42,7 @@ /// <summary> /// 鐗堟湰鍙� /// </summary> - public static string CodeIDString = "1.1.0120092301"; + public static string CodeIDString = "1.1.0120101001"; /// <summary> /// 娉ㄥ唽鏉ユ簮(0:HDL On 1:Zigbee) /// </summary> diff --git a/ZigbeeApp/Shared/Common/Device.cs b/ZigbeeApp/Shared/Common/Device.cs index 5628cbf..4d1050a 100755 --- a/ZigbeeApp/Shared/Common/Device.cs +++ b/ZigbeeApp/Shared/Common/Device.cs @@ -245,7 +245,7 @@ { continue; } - var device = this.NewDeviceObjectByDeviceId((DeviceType)itemValue); + var device = this.NewDeviceObjectByDeviceId((DeviceType)itemValue, 1); string strMsg = string.Empty; if (device == null) { @@ -272,14 +272,14 @@ /// <para>灏嗘寚瀹氱綉鍏崇殑璁惧瀛樺叆缂撳瓨涓�(浠庢柊鑾峰彇闀滃儚)</para> /// <para>-1:寮傚父 1:姝e父 2:璁惧淇℃伅缂烘崯</para> /// </summary> - /// <param name="zbGateway">缃戝叧瀵硅薄</param> + /// <param name="gatewayId">缃戝叧Id</param> /// <param name="useLocalConnect">鏄惁寮哄埗浣跨敤鏈湴杩炴帴鍙戦��</param> - public int SetDeviceToMemmoryByGateway(ZbGateway zbGateway, bool useLocalConnect) + public int SetDeviceToMemmoryByGateway(string gatewayId, bool useLocalConnect) { //浠庣綉鍏宠幏鍙栧叏閮ㄧ殑璁惧 int statu = 0; List<CommonDevice> listDevice = new List<CommonDevice>(); - List<CommonDevice> list = this.GetDeviceListFromGateway(zbGateway, ref statu, useLocalConnect); + List<CommonDevice> list = this.GetDeviceListFromGateway(gatewayId, ref statu, useLocalConnect); if (list == null) { return -1; @@ -287,12 +287,11 @@ listDevice.AddRange(list); //鑾峰彇杩欎釜缃戝叧鐨勬湰鍦版墍鏈夎澶� - string gwID = zbGateway.GwId; - List<CommonDevice> listLocalDevices = this.GetDeviceByGatewayID(gwID); + List<CommonDevice> listLocalDevices = this.GetDeviceByGatewayID(gatewayId); //鑾峰彇ota璁惧 foreach (var ota in this.dicOTADevice.Values) { - if (ota.CurrentGateWayId == gwID) + if (ota.CurrentGateWayId == gatewayId) { listLocalDevices.Add(ota); } @@ -1187,7 +1186,7 @@ /// <param name="listDevice"></param> /// <returns></returns> public List<CommonDevice> GetPanelMatchEpointByMac(List<CommonDevice> listDevice, bool sort = true) - { + { var list = new List<CommonDevice>(); foreach (var dev in listDevice) { @@ -1198,7 +1197,7 @@ else if (dev.Type == DeviceType.FreshAirHumiditySensor) { list.Add(dev); - } + } } if (sort == false) { @@ -1212,7 +1211,7 @@ return 1; } return -1; - }); + }); return list; } @@ -1334,7 +1333,7 @@ #region 鈻� 鑾峰彇璁惧淇℃伅_______________________ /// <summary> - /// 璇诲彇鍗曚釜绔偣鍥炶矾璁惧淇℃伅 + /// 浠庣綉鍏宠鍙栧崟涓鐐瑰洖璺澶囦俊鎭� /// </summary> /// <param name="device">璁惧瀵硅薄</param> /// <returns></returns> @@ -1348,6 +1347,145 @@ } var info = Newtonsoft.Json.JsonConvert.DeserializeObject<CommonDevice.DeviceInfoData>(result.ReceiptData); return info; + } + + /// <summary> + /// 浠庣綉鍏宠鍙栨寚瀹歁ac涓嬬殑璁惧鍒楄〃(杩斿洖鐨勬槸缃戝叧鍥炲鐨勮澶嘕son,璋冪敤ConvertJObjectToDevice鏂规硶杞负Device瀵硅薄) + /// </summary> + /// <param name="realGateway">鐪熷疄缃戝叧瀵硅薄</param> + /// <param name="i_deviceMac">璁惧Mac</param> + /// <param name="useLocalConnect">鏄惁浣跨敤鏈湴杩炴帴鍙戦��</param> + /// <param name="listFucDevice">闇�瑕佸彉鏇村姛鑳界被鍨嬬殑鍥炶矾</param> + /// <param name="statu">鐘舵��-> -1:寮傚父,浼氳繑鍥瀗ull, 1锛氭病鏈夊紓甯�, 2:鏁版嵁鎺ユ敹涓嶅叏</param> + /// <returns></returns> + public List<Newtonsoft.Json.Linq.JObject> ReadDeviceListByMacFromGateway(string gatewayId, string i_deviceMac, bool useLocalConnect, ref int statu) + { + //鏄惁杈炬垚涓柇鐨勬椂鏈� + bool canBreak = false; + //瓒呮椂鏃堕棿 + int TimeOut = 0; + //璁惧鎬绘暟 + int deviceCount = -1; + //鎺ユ敹鏁� + int receiveCount = 0; + //璁惧鍒楄〃 + var listDeviceJson = new List<Newtonsoft.Json.Linq.JObject>(); + + HdlGatewayReceiveLogic.Current.AddGatewayReceiveEvent(gatewayId, (topic, message) => + { + if (topic == gatewayId + "/GetStatusRecord_Respon") + { + lock (listDeviceJson) + { + //璁惧鎺ユ敹鏁� + receiveCount++; + TimeOut = 0; + var jobject = Newtonsoft.Json.Linq.JObject.Parse(message); + var totalNum = Newtonsoft.Json.JsonConvert.DeserializeObject<int>(jobject["Data"]["TotalNum"].ToString()); + if (totalNum == 0) + { + //杩欎釜缃戝叧娌℃湁璁惧 + canBreak = true; + return; + } + if (deviceCount == -1) + { + //璁剧疆闇�瑕佹帴鏀跺灏戜釜璁惧 + deviceCount = totalNum; + } + listDeviceJson.Add(jobject); + } + + if (receiveCount == deviceCount && deviceCount != -1) + { + //璁惧鍏ㄩ儴鎺ユ敹瀹屾垚 + canBreak = true; + } + } + }); + + var jObject = new Newtonsoft.Json.Linq.JObject { { "DeviceAddr", i_deviceMac }, { "Epoint", 255 }, { "Cluster_ID", 0 }, { "Command", 80 } }; + HdlGatewayLogic.Current.SendJobjectData(gatewayId, "GetStatusRecord", jObject.ToString(), useLocalConnect); + + while (canBreak == false && TimeOut <= 150) + { + System.Threading.Thread.Sleep(20); + TimeOut++; + } + //绉婚櫎鐩戝惉 + HdlGatewayReceiveLogic.Current.RemoveGatewayReceiveEvent(); + + if (TimeOut > 150) + { + statu = listDeviceJson.Count == 0 ? -1 : 2; + } + else + { + statu = 1; + } + return listDeviceJson; + } + + /// <summary> + /// 灏嗚澶囩殑Json杞崲涓鸿澶囧璞� + /// </summary> + /// <param name="listIObjects">璁惧Json</param> + /// <param name="gwId">缃戝叧id</param> + /// <param name="listFucDevice">闇�瑕佸彉鏇村姛鑳界被鍨嬬殑鍥炶矾</param> + /// <returns></returns> + public List<CommonDevice> ConvertJObjectToDevice(List<Newtonsoft.Json.Linq.JObject> listIObjects, string gwId, ref List<CommonDevice> listFucDevice) + { + //璁惧鍒楄〃 + var listDevice = new List<CommonDevice>(); + //缃戝叧閲岄潰鏈夊彲鑳戒細鏈夐噸澶嶇殑鍥炶矾 + var listCheck = new HashSet<string>(); + + foreach (var jobject in listIObjects) + { + var deviceID = (DeviceType)jobject.Value<int>("Device_ID"); + //鏍规嵁璁惧绫诲瀷鍒涘缓璁惧瀵硅薄鐨勫疄渚� + var device = this.NewDeviceObjectByDeviceId(deviceID, jobject, gwId); + if (device != null) + { + string mainkeys = this.GetDeviceMainKeys(device); + //缃戝叧閲岄潰鏈夊彲鑳戒細鏈夐噸澶嶇殑鍥炶矾 + if (listCheck.Contains(mainkeys) == false) + { + listDevice.Add(device); + listCheck.Add(mainkeys); + //鍒锋柊涓�涓嬫湰鍦扮紦瀛� + var localDevice = this.GetDevice(mainkeys); + var tempDevice = localDevice == null ? device : localDevice; + + //濡傛灉杩欎釜璁惧ID鍙樻洿浜嗙殑璇� + bool typeNotEquals = localDevice != null && deviceID != localDevice.Type; + if (typeNotEquals == true) + { + //閲嶆柊New杩欎釜瀵硅薄 + typeNotEquals = this.ReNewDeviceOnTypeIsChanged(localDevice, deviceID); + //閲嶆柊鍐嶆鑾峰彇瀵硅薄 + tempDevice = this.GetDevice(mainkeys); + } + + //鍒锋柊灞炴�� + this.SetDeviceInfoToMain(tempDevice, device); + if (this.RefreshDeviceFunctionType(tempDevice, device, false) == true) + { + //闇�瑕佸彂閫佸姛鑳界被鍨嬬粰缃戝叧 + listFucDevice.Add(tempDevice); + } + if (typeNotEquals == true) + { + //閲嶆柊鐢熸垚缂撳瓨 + tempDevice.ReSave(); + HdlAutoBackupLogic.AddOrEditorFile(tempDevice.FilePath); + //鍏ㄩ儴涓婚〉鑿滃崟闇�瑕佸埛鏂� + Phone.UserView.UserPage.Instance.RefreshAllForm = true; + } + } + } + } + return listDevice; } #endregion @@ -1444,7 +1582,7 @@ } if (device.Type == DeviceType.OnOffOutput - || device.Type == DeviceType.DimmableLight + || device.Type == DeviceType.DimmableLight || device.Type == DeviceType.ColorDimmableLight || device.Type == DeviceType.ColorTemperatureLight) { @@ -1455,7 +1593,7 @@ { //绌鸿皟閮藉彨瀹ゅ唴鏈� return Language.StringByID(R.MyInternationalizationString.uIndoorUnit) + epointNo; - } + } //鑾峰彇璁惧绫诲瀷 var deviceInfoType = this.GetMyDeviceEnumInfo(new List<CommonDevice>() { device }); @@ -2554,7 +2692,7 @@ //鍏朵粬鐨勭湅鐫�鍔炲憲,閮芥槸鎺掑湪鍚庨潰鐨�,閮藉綊涓鸿繖涓睘鎬� list.Add(DeviceBeloneType.A鏈煡璁惧); - + return list; } @@ -2631,7 +2769,7 @@ } //濡傛灉鏄柊椋庨潰鏉挎垨鐜闈㈡澘,鍒欓兘涓嶆樉绀轰换浣曞洖璺� - var myInfoTypeTemp = LocalDevice.Current.GetMyDeviceEnumInfo(new List<CommonDevice>() { i_device }); + var myInfoTypeTemp = LocalDevice.Current.GetMyDeviceEnumInfo(new List<CommonDevice>() { i_device }); if (myInfoTypeTemp.ConcreteType == DeviceConcreteType.ButtonPanel_FangyueFreshAir || myInfoTypeTemp.ConcreteType == DeviceConcreteType.ButtonPanel_SimpleEnvironment) { return false; @@ -2775,182 +2913,157 @@ #region 鈻� 鑾峰彇璁惧鍒楄〃鐨勬帴鍙________________ /// <summary> - /// <para>浠庣綉鍏抽噸鏂拌幏鍙栬澶囧垪琛�(杩斿洖鐨勮澶囦负铏氭嫙鍑烘潵鐨�)</para> + /// <para>浠庣綉鍏抽噸鏂拌幏鍙栬澶囧垪琛�(杩斿洖鐨勮澶囦负铏氭嫙鍑烘潵鐨�),涓�娆℃�у叏閮ㄨ幏鍙�</para> /// <para>statu鐘舵�� -1:寮傚父,浼氳繑鍥瀗ull, 1锛氭病鏈夊紓甯�, 2:鏁版嵁鎺ユ敹涓嶅叏</para> /// </summary> - /// <param name="zbGateway">缃戝叧瀵硅薄</param> + /// <param name="gatewayId">缃戝叧id</param> /// <param name="statu">鐘舵��-> -1:寮傚父,浼氳繑鍥瀗ull, 1锛氭病鏈夊紓甯�, 2:鏁版嵁鎺ユ敹涓嶅叏</param> /// <param name="useLocalConnect">鏄惁浣跨敤鏈湴杩炴帴鍙戦��</param> /// <param name="mode">鏄惁鏄剧ず閿欒</param> /// <returns></returns> - public List<CommonDevice> GetDeviceListFromGateway(ZbGateway zbGateway, ref int statu, bool useLocalConnect, ShowErrorMode mode = ShowErrorMode.YES) + public List<CommonDevice> GetDeviceListFromGateway(string gatewayId, ref int statu, bool useLocalConnect, ShowErrorMode mode = ShowErrorMode.YES) { - //濡傛灉鍒囨崲鍒颁簡鍒殑鐣岄潰锛屽垯涓嶆樉绀洪敊璇俊鎭� - string nowFormId = UserCenterResourse.NowActionFormID; - - ZbGateway realWay = null; - if (HdlGatewayLogic.Current.GetRealGateway(ref realWay, zbGateway) == false) - { - if (nowFormId == UserCenterResourse.NowActionFormID && mode == ShowErrorMode.YES) - { - //閿欒:缃戝叧瀵硅薄涓㈠け - string msg = Language.StringByID(R.MyInternationalizationString.uErrorGatewayLostMsg); - this.ShowTipMsg(msg); - } - statu = -1; - return null; - } //闇�瑕佸彉鏇村姛鑳界被鍨嬬殑鍥炶矾 var listFucDevice = new List<CommonDevice>(); //鏄惁杈炬垚涓柇鐨勬椂鏈� bool canBreak = false; - //缃戝叧ID - string gatewayID = zbGateway.GwId; //瓒呮椂鏃堕棿 int TimeOut = 0; + //褰撳墠璁惧鎺ユ敹鏁� + int nowReceiveCount = 0; //璁惧鎬绘暟 int deviceCount = -1; - //鎺ユ敹鏁� - int receiveCount = 0; //璁惧鍒楄〃 var listDevice = new List<CommonDevice>(); //缃戝叧閲岄潰鏈夊彲鑳戒細鏈夐噸澶嶇殑鍥炶矾 var listCheck = new HashSet<string>(); - Action<string, string> getDeviceAction = (topic, message) => + ///Mac鐨勭鐐规�绘暟 + var dicMacPointCount = new Dictionary<string, int>(); + + HdlGatewayReceiveLogic.Current.AddGatewayReceiveEvent(gatewayId, (topic, message) => { - if (topic == gatewayID + "/DeviceInfoRespon") + if (topic == gatewayId + "/DeviceInfoRespon") { - try + lock (listDevice) { - lock (listDevice) + TimeOut = 0; + var jobject = Newtonsoft.Json.Linq.JObject.Parse(message); + var totalNum = Convert.ToInt32(jobject["Data"]["TotalNum"].ToString()); + if (totalNum == 0) { - //璁惧鎺ユ敹鏁� - receiveCount++; + //杩欎釜缃戝叧娌℃湁璁惧 + canBreak = true; + return; + } + if (deviceCount == -1) + { + //璁剧疆闇�瑕佹帴鏀跺灏戜釜璁惧 + deviceCount = totalNum; + } + nowReceiveCount++; - TimeOut = 0; - var jobject = Newtonsoft.Json.Linq.JObject.Parse(message); - var totalNum = Newtonsoft.Json.JsonConvert.DeserializeObject<int>(jobject["Data"]["TotalNum"].ToString()); - if (totalNum == 0) - { - //杩欎釜缃戝叧娌℃湁璁惧 - canBreak = true; - return; - } - if (deviceCount == -1) - { - //璁剧疆闇�瑕佹帴鏀跺灏戜釜璁惧 - deviceCount = totalNum; - } + //璁惧鍥炶矾鏁版敹闆� + string deviceMac = jobject.Value<string>("DeviceAddr"); + if (dicMacPointCount.ContainsKey(deviceMac) == false) + { + dicMacPointCount[deviceMac] = 0; + } + dicMacPointCount[deviceMac]++; - var deviceID = (DeviceType)jobject.Value<int>("Device_ID"); - //鏍规嵁璁惧绫诲瀷鍒涘缓璁惧瀵硅薄鐨勫疄渚� - var device = this.NewDeviceObjectByDeviceId(deviceID, jobject, zbGateway); - if (device != null) + var deviceID = (DeviceType)jobject.Value<int>("Device_ID"); + //鏍规嵁璁惧绫诲瀷鍒涘缓璁惧瀵硅薄鐨勫疄渚� + var device = this.NewDeviceObjectByDeviceId(deviceID, jobject, gatewayId); + if (device != null) + { + string mainkeys = this.GetDeviceMainKeys(device); + //缃戝叧閲岄潰鏈夊彲鑳戒細鏈夐噸澶嶇殑鍥炶矾 + if (listCheck.Contains(mainkeys) == false) { - string mainkeys = this.GetDeviceMainKeys(device); - //缃戝叧閲岄潰鏈夊彲鑳戒細鏈夐噸澶嶇殑鍥炶矾 - if (listCheck.Contains(mainkeys) == false) + listDevice.Add(device); + listCheck.Add(mainkeys); + //鍒锋柊涓�涓嬫湰鍦扮紦瀛� + var localDevice = this.GetDevice(mainkeys); + var tempDevice = localDevice == null ? device : localDevice; + + //濡傛灉杩欎釜璁惧ID鍙樻洿浜嗙殑璇� + bool typeNotEquals = localDevice != null && deviceID != localDevice.Type; + if (typeNotEquals == true) { - listDevice.Add(device); - listCheck.Add(mainkeys); - //鍒锋柊涓�涓嬫湰鍦扮紦瀛� - var localDevice = this.GetDevice(mainkeys); - var tempDevice = localDevice == null ? device : localDevice; + //閲嶆柊New杩欎釜瀵硅薄 + typeNotEquals = this.ReNewDeviceOnTypeIsChanged(localDevice, deviceID); + //閲嶆柊鍐嶆鑾峰彇瀵硅薄 + tempDevice = this.GetDevice(mainkeys); + } - //濡傛灉杩欎釜璁惧ID鍙樻洿浜嗙殑璇� - bool typeNotEquals = localDevice != null && deviceID != localDevice.Type; - if (typeNotEquals == true) - { - //閲嶆柊New杩欎釜瀵硅薄 - typeNotEquals = this.ReNewDeviceOnTypeIsChanged(localDevice, deviceID); - //閲嶆柊鍐嶆鑾峰彇瀵硅薄 - tempDevice = this.GetDevice(mainkeys); - } - - //鍒锋柊灞炴�� - this.SetDeviceInfoToMain(tempDevice, device); - if (this.RefreshDeviceFunctionType(tempDevice, device, false) == true) - { - //闇�瑕佸彂閫佸姛鑳界被鍨嬬粰缃戝叧 - listFucDevice.Add(tempDevice); - } - if (typeNotEquals == true) - { - //閲嶆柊鐢熸垚缂撳瓨 - tempDevice.ReSave(); - HdlAutoBackupLogic.AddOrEditorFile(tempDevice.FilePath); - //鍏ㄩ儴涓婚〉鑿滃崟闇�瑕佸埛鏂� - Phone.UserView.UserPage.Instance.RefreshAllForm = true; - } + //鍒锋柊灞炴�� + this.SetDeviceInfoToMain(tempDevice, device); + if (this.RefreshDeviceFunctionType(tempDevice, device, false) == true) + { + //闇�瑕佸彂閫佸姛鑳界被鍨嬬粰缃戝叧 + listFucDevice.Add(tempDevice); + } + if (typeNotEquals == true) + { + //閲嶆柊鐢熸垚缂撳瓨 + tempDevice.ReSave(); + HdlAutoBackupLogic.AddOrEditorFile(tempDevice.FilePath); + //鍏ㄩ儴涓婚〉鑿滃崟闇�瑕佸埛鏂� + Phone.UserView.UserPage.Instance.RefreshAllForm = true; } } } } - //Log鍑哄姏 - catch (Exception ex) { HdlLogLogic.Current.WriteLog(ex); } - if (receiveCount == deviceCount && deviceCount != -1) + if (nowReceiveCount >= deviceCount) { //璁惧鍏ㄩ儴鎺ユ敹瀹屾垚 canBreak = true; } } - else if (topic == gatewayID + "/DeviceInfoResponEnd") - { - } - }; + }); + //鍙戦�佸懡浠� + var jObject = new Newtonsoft.Json.Linq.JObject { { "Cluster_ID", 0 }, { "Command", 93 } }; + HdlGatewayLogic.Current.SendJobjectData(gatewayId, "GetDeviceInfo", jObject.ToString(), useLocalConnect); - realWay.Actions += getDeviceAction; - try - { - var jObject = new Newtonsoft.Json.Linq.JObject { { "Cluster_ID", 0 }, { "Command", 93 } }; - if (useLocalConnect == false) - { - realWay.Send("GetDeviceInfo", jObject.ToString()); - } - else - { - //寮哄埗浣跨敤鏈湴杩炴帴 - realWay.SendLocation("GetDeviceInfo", Encoding.UTF8.GetBytes(jObject.ToString())); - } - } - catch { canBreak = true; } - - while (canBreak == false && TimeOut < 60) + while (canBreak == false && TimeOut <= 30) { System.Threading.Thread.Sleep(100); TimeOut++; } + //绉婚櫎缃戝叧鐩戝惉浜嬩欢 + HdlGatewayReceiveLogic.Current.RemoveGatewayReceiveEvent(); - realWay.Actions -= getDeviceAction; - getDeviceAction = null; - - if (TimeOut >= 60) + if (TimeOut > 30) { - if (listDevice.Count == 0) + if (listDevice.Count > 0) { - if (nowFormId == UserCenterResourse.NowActionFormID && mode == ShowErrorMode.YES) - { - //鑾峰彇璁惧鍒楄〃澶辫触 - //[XXXX]缃戝叧鍥炲瓒呮椂,璇风◢鍚庡啀璇� - string msg = Language.StringByID(R.MyInternationalizationString.uGetDeviceListFail); - msg += "\r\n[" + HdlGatewayLogic.Current.GetGatewayName(zbGateway).ToString() + "]"; - msg = UserCenterLogic.CombineGatewayTimeOutMsg(msg, null, "鍥炲瓒呮椂", false); - this.ShowTipMsg(msg); - } - statu = -1; - return null; - } - else - { - if (nowFormId == UserCenterResourse.NowActionFormID && mode == ShowErrorMode.YES) + //缃戠粶涓嶇ǔ瀹氾紝璁惧鍒楄〃淇℃伅缂烘崯,鍒欓噰鐢ㄦ寜搴忓彿鑾峰彇璁惧 + statu = this.GetDeviceListFromGatewayByMac(gatewayId, ref listDevice, ref listFucDevice, dicMacPointCount, useLocalConnect); + if (statu == 2) { //缃戠粶涓嶇ǔ瀹氾紝璁惧鍒楄〃淇℃伅缂烘崯 string msg = Language.StringByID(R.MyInternationalizationString.uNetworkUnStableAndDeviceInfoIsNotFull); this.ShowTipMsg(msg); } - statu = 2; + } + else + { + if (mode == ShowErrorMode.YES) + { + //鑾峰彇璁惧鍒楄〃澶辫触 + //[XXXX]缃戝叧鍥炲瓒呮椂,璇风◢鍚庡啀璇� + string msg = Language.StringByID(R.MyInternationalizationString.uGetDeviceListFail); + var localGw = HdlGatewayLogic.Current.GetLocalGateway(gatewayId); + if (localGw != null) + { + msg += "\r\n[" + HdlGatewayLogic.Current.GetGatewayName(localGw).ToString() + "]"; + } + msg = UserCenterLogic.CombineGatewayTimeOutMsg(msg, null, "鍥炲瓒呮椂", false); + this.ShowTipMsg(msg); + } + statu = -1; + return null; } } else @@ -2971,6 +3084,60 @@ } return listDevice; + } + + /// <summary> + /// 鏍规嵁搴忓彿鑾峰彇璁惧鍒楄〃淇℃伅(鍙湁鍦ㄨ澶囩己鎹熺殑鏃跺�欐墠璋冪敤杩欎釜鍑芥暟) 1:姝e父 2:璁惧缂烘崯 + /// </summary> + /// <param name="gatewayId">缃戝叧id</param> + /// <param name="listDevice">瀛樺偍鐨勮澶囧璞¢泦鍚�</param> + /// <param name="listFucDevice">闇�瑕佸彉鏇村姛鑳界被鍨嬬殑鍥炶矾</param> + /// <param name="dicNowPointCount">褰撳墠宸茬粡鑾峰彇鐨凪ac鐨勭鐐规�绘暟</param> + /// <param name="useLocalConnect">鏄惁浣跨敤鏈湴杩炴帴鍙戦��</param> + /// <returns></returns> + public int GetDeviceListFromGatewayByMac(string gatewayId, ref List<CommonDevice> listDevice, ref List<CommonDevice> listFucDevice, Dictionary<string, int> dicNowPointCount, bool useLocalConnect) + { + //棣栧厛鍏堣幏鍙栬澶囩殑mac鍒楄〃 + var jObject33 = new Newtonsoft.Json.Linq.JObject { { "Cluster_ID", 0 }, { "Command", 87 } }; + var result = HdlGatewayLogic.Current.SendJobjectDataToGateway(gatewayId, "GetStatusRecord", jObject33.ToString(), "DeviceMACDeviceListRespon", 3, useLocalConnect); + if (result.ErrorMsgDiv == -1 || result.ErrorMsgDiv == 0) + { + //濡傛灉缃戝叧娌℃湁瀵硅繖涓富棰樺仛鍑哄洖搴旂殑璇�,鍒欒鏄庡畠鏄竴涓棫缃戝叧 + return 2; + } + var resultMac = Newtonsoft.Json.JsonConvert.DeserializeObject<ReceiptMacResult>(result.ReceiptData); + + //璁惧鍒楄〃 + var listDeviceJson = new List<Newtonsoft.Json.Linq.JObject>(); + + int statu = 0; + foreach (var macInfo in resultMac.MACDeviceList) + { + if (dicNowPointCount.ContainsKey(macInfo.MacAddr) == true + && dicNowPointCount[macInfo.MacAddr] == macInfo.EPTotalNum) + { + //濡傛灉杩欎釜mac鐨勭鐐规暟涓�鑷�,鍒欒鏄庡凡缁忔帴鏀堕綈浜�,涓嶉渶瑕佸啀娆℃帴鏀� + continue; + } + //浠庣綉鍏宠鍙栨寚瀹歁ac涓嬬殑璁惧鍒楄〃 + var jsonData = this.ReadDeviceListByMacFromGateway(gatewayId, macInfo.MacAddr, useLocalConnect, ref statu); + foreach (var myData in jsonData) + { + listDeviceJson.Add(myData); + } + if (statu != 1) + { + //娌℃湁姝e父瀹屾垚,鍒欎腑鏂� + break; + } + } + //杞寲涓鸿澶囧垪琛� + var listTempDevice = this.ConvertJObjectToDevice(listDeviceJson, gatewayId, ref listFucDevice); + for (int i = 0; i < listTempDevice.Count; i++) + { + listDevice.Add(listTempDevice[i]); + } + return statu == 1 ? 1 : 2; } /// <summary> @@ -3012,6 +3179,36 @@ return true; } + /// <summary> + /// 鎺ユ敹璁惧Mac鍒楄〃鐨勭被 + /// </summary> + private class ReceiptMacResult + { + /// <summary> + /// mac鎬绘暟 + /// </summary> + public int MACDeviceTotalNum = 0; + /// <summary> + /// 璁惧mac鍒楄〃 + /// </summary> + public List<MacResult> MACDeviceList = new List<MacResult>(); + } + + /// <summary> + /// 璁惧Mac鐨勫唴瀹� + /// </summary> + private class MacResult + { + /// <summary> + /// 璁惧Mac + /// </summary> + public string MacAddr = string.Empty; + /// <summary> + /// mac绔偣鐨勬�绘暟 + /// </summary> + public int EPTotalNum = 0; + } + #endregion #region 鈻� 鍒涘缓鏂拌澶囧璞$浉鍏砡________________ @@ -3021,14 +3218,12 @@ /// </summary> /// <param name="deviceType">璁惧绫诲瀷</param> /// <param name="jobject">涓婚Data</param> - /// <param name="zbGateway">缃戝叧瀵硅薄</param> + /// <param name="gwid">缃戝叧id</param> /// <returns></returns> - private CommonDevice NewDeviceObjectByDeviceId(DeviceType deviceType, Newtonsoft.Json.Linq.JObject jobject, ZbGateway zbGateway) + private CommonDevice NewDeviceObjectByDeviceId(DeviceType deviceType, Newtonsoft.Json.Linq.JObject jobject, string gwid) { - string gwId = zbGateway.GwId; - //鏍规嵁璁惧绫诲瀷鍒涘缓璁惧瀵硅薄鐨勫疄渚� - CommonDevice device = this.NewDeviceObjectByDeviceId(deviceType); + CommonDevice device = this.NewDeviceObjectByDeviceId(deviceType, jobject.Value<int>("Epoint")); if (device == null) { return null; @@ -3043,7 +3238,7 @@ //璁剧疆璁惧涓婚敭绫� this.SetNewDeviceMainKeys(device, jobject); - device.CurrentGateWayId = gwId; + device.CurrentGateWayId = gwid; return device; } @@ -3115,11 +3310,12 @@ /// 鏍规嵁璁惧Type鍒涘缓瀵瑰簲鐨勮澶囧璞� /// </summary> /// <param name="deviceType">璁惧Type</param> + /// <param name="DeviceEpoint">璁惧绔偣(娌℃湁浠�涔堢壒娈婇渶姹傜殑璇�,濉�0鍗冲彲)</param> /// <returns></returns> - public CommonDevice NewDeviceObjectByDeviceId(DeviceType deviceType) + public CommonDevice NewDeviceObjectByDeviceId(DeviceType deviceType, int DeviceEpoint) { //鏍规嵁璁惧绫诲瀷鍒涘缓璁惧瀵硅薄鐨勫疄渚� - var device = CommonDevice.CommonDeviceByByteString((int)deviceType, "{\"DeviceID\":" + (int)deviceType + "}"); + var device = CommonDevice.CommonDeviceByByteString((int)deviceType, "{\"DeviceID\":" + (int)deviceType + ",\"DeviceEpoint\":" + DeviceEpoint + "}"); if (device == null) { return null; @@ -3326,7 +3522,7 @@ content.ConcreteTypeValue = Convert.ToInt32(strArry2[0].Trim()); content.A瀹樻柟鍚嶅瓧 = strArry2[1].Trim(); content.A澶囨敞鍚嶅瓧 = strArry2[2].Trim(); - content.BeloneTypeValue= Convert.ToInt32(strArry2[3].Trim()); + content.BeloneTypeValue = Convert.ToInt32(strArry2[3].Trim()); content.A鎵�灞炲悕瀛� = strArry2[4].Trim(); content.A绫诲瀷鍚嶅瓧 = strArry2[5].Trim(); this.dicDeviceModelIdEnum[strArry1[0].Trim()] = content; @@ -3592,17 +3788,17 @@ /// </summary> Relay_FangyueFreshAirModul = 2310, /// <summary> - /// 鍥芥爣3璺�10A缁х數鍣ㄥ皬妯″潡 闀滃儚id锛�2311(涓存椂) + /// 鍥芥爣3璺�10A缁х數鍣ㄥ皬妯″潡 闀滃儚id锛�2301 /// </summary> - Relay_NationalThreeLoadTenA = 2311, + Relay_NationalThreeLoadTenA = 2301, /// <summary> - /// 娆ф爣2璺�5A缁х數鍣ㄥ皬妯″潡 闀滃儚id锛�2312(涓存椂) + /// 娆ф爣2璺�5A缁х數鍣ㄥ皬妯″潡 闀滃儚id锛�2315 /// </summary> - Relay_EuropeanTwoLoadFiveA = 2312, + Relay_EuropeanTwoLoadFiveA = 2315, /// <summary> - /// 娆ф爣14璺共鎺ョ偣灏忔ā鍧� 闀滃儚id锛�2313(涓存椂) + /// 7璺共鎺ョ偣杈撳叆杈撳嚭妯″潡 闀滃儚id锛�2320 /// </summary> - Relay_EuropeanFourteenLoadDryContact = 2313, + Relay_SevenLoadInOutPutDryContact = 2320, //=========鈽呪槄璋冨厜鍣ㄧ被(2500-2799)鈽呪槄========= /// <summary> diff --git a/ZigbeeApp/Shared/Phone/Category/Controls/DeviceRow/Base/DeviceRowCommon.cs b/ZigbeeApp/Shared/Phone/Category/Controls/DeviceRow/Base/DeviceRowCommon.cs index 8966fec..02b8df2 100755 --- a/ZigbeeApp/Shared/Phone/Category/Controls/DeviceRow/Base/DeviceRowCommon.cs +++ b/ZigbeeApp/Shared/Phone/Category/Controls/DeviceRow/Base/DeviceRowCommon.cs @@ -224,6 +224,8 @@ //鍥炶皟鎺т欢琚Щ闄ょ殑浜嬩欢 this.RowNeedRemoveEvent?.Invoke(); this.RemoveFromParent(); + //涓婁紶绌洪棿鍖哄煙淇℃伅 + HdlRoomLogic.Current.SetRoomInfoToGateway(); }; }; } diff --git a/ZigbeeApp/Shared/Phone/Login/AccountLoginForm.cs b/ZigbeeApp/Shared/Phone/Login/AccountLoginForm.cs index 25cb57f..ea8bce7 100755 --- a/ZigbeeApp/Shared/Phone/Login/AccountLoginForm.cs +++ b/ZigbeeApp/Shared/Phone/Login/AccountLoginForm.cs @@ -1110,6 +1110,7 @@ CommonPage.Instance.FailureToServer(); CommonPage.Loading.Hide(); }); + HdlLogLogic.Current.WriteLog(-1, "鐧婚檰鏃�,娌$綉缁�"); return; } var stateCodeStr = revertObj.StateCode.ToUpper(); diff --git a/ZigbeeApp/Shared/Phone/MainPage/UnallocatedRoomForm.cs b/ZigbeeApp/Shared/Phone/MainPage/UnallocatedRoomForm.cs index 59d79db..5cee0ea 100755 --- a/ZigbeeApp/Shared/Phone/MainPage/UnallocatedRoomForm.cs +++ b/ZigbeeApp/Shared/Phone/MainPage/UnallocatedRoomForm.cs @@ -551,6 +551,8 @@ this.SaveSelectDeviceAndScene(room); //鍒嗙被鐣岄潰闇�瑕佸埛鏂� UserPage.Instance.RefreshCategoryForm = true; + //涓婁紶绌洪棿鍖哄煙淇℃伅 + HdlRoomLogic.Current.SetRoomInfoToGateway(); }); }; } diff --git a/ZigbeeApp/Shared/Phone/SmartSound/Forms/AddSmartSound.cs b/ZigbeeApp/Shared/Phone/SmartSound/Forms/AddSmartSound.cs new file mode 100644 index 0000000..54020d7 --- /dev/null +++ b/ZigbeeApp/Shared/Phone/SmartSound/Forms/AddSmartSound.cs @@ -0,0 +1,238 @@ +锘縰sing System; +using System.Collections.Generic; +using Shared.Phone.UserCenter; +using Shared.Phone.UserCenter.SmartSound.Forms; + +namespace Shared.Phone.SmartSound.Forms +{ + public class AddSmartSound : EditorCommonForm + { + + /// 鍒楄〃鎺т欢 + /// </summary> + private VerticalListControl listView = null; + + private FrameLayout contentLayout = null; + /// <summary> + /// 褰撳墠妤煎眰鐨勭储寮� + /// </summary> + public int CurrentIndex = 0; + private BottomClickButton bottomClickButton = null; + private RoomRowLayout xiaoduRowLayout = null;//灏忓害 + private RoomRowLayout sbcRowLayout = null; + + /// <summary> + /// 鐢婚潰鏄剧ず(搴曞眰浼氬浐瀹氳皟鐢ㄦ鏂规硶锛屽�熶互瀹屾垚鐢婚潰鍒涘缓) + /// </summary> + public void ShowForm() + { + this.ScrollEnabled = false; + base.SetTitleText("娣诲姞闊崇");//璁剧疆鏍囬淇℃伅 + + contentLayout = new FrameLayout(); + this.bodyFrameLayout.AddChidren(contentLayout); + + IniAllDataView(); + } + + #region 鍔犺浇鏈湴鎵�鏈夋暟鎹紝鐢熸垚渚涚敤鎴烽�夋嫨鎴块棿鐨勭晫闈� + + private void IniAllDataView() + { + contentLayout.RemoveAll(); + + if (listView == null) + { + listView = new VerticalListControl(); + contentLayout.AddChidren(listView); + listView.Height = bodyFrameLayout.Height - Application.GetRealHeight(173); + } + + Sound sound = new Sound(); + //娣诲姞灏忓害闊崇 + sound.Checked = false; + sound.Name = "灏忓害"; + sound.type = 0; + xiaoduRowLayout = new RoomRowLayout(sound); + listView.AddChidren(xiaoduRowLayout); + xiaoduRowLayout.InitControl(); + xiaoduRowLayout.Right_icon.IsSelected = true; + xiaoduRowLayout.ButtonClickEvent += (sender, e) => + { + xiaoduRowLayout.Right_icon.IsSelected = true; + sbcRowLayout.Right_icon.IsSelected = false; + CurrentIndex = 0; + }; + + //娣诲姞鎬濆繀椹伴煶绠� + sound.Checked = false; + sound.Name = "鎬濆繀椹�"; + sound.type = 1 ; + sbcRowLayout = new RoomRowLayout(sound); + listView.AddChidren(sbcRowLayout); + sbcRowLayout.InitControl(); + sbcRowLayout.Right_icon.IsSelected = false; + sbcRowLayout.ButtonClickEvent += (sender, e) => + { + xiaoduRowLayout.Right_icon.IsSelected = false; + sbcRowLayout.Right_icon.IsSelected = true; + CurrentIndex = 1; + }; + + //璺宠浆鑷崇涓夋柟涓嬭浇鎸夐挳 + bottomClickButton = new BottomClickButton(); + this.bodyFrameLayout.AddChidren(bottomClickButton); + bottomClickButton.Text = "璺宠浆鑷崇涓夋柟APP"; + bottomClickButton.ButtonClickEvent += (sender, e) => + { + // + if (CurrentIndex == 0) + { + OpenXiaoDuAPP(); + + } + else if (CurrentIndex == 1) + { + OpenSBCAPP(); + } + }; + + //bottomClickButton.Visible = false; + } + + /// <summary> + /// 灏忓害 + /// </summary> + private void OpenXiaoDuAPP() + { + bool bol = false; + try + { +#if Android + bol = HDLUtils.OpenAppWithPackageName("com.baidu.duer.superapp"); +#else + bol=HDLUtils.OpenApp("xiaoduapp://"); +#endif + + if (!bol) + { +#if Android + HDLUtils.OpenUrl("market://details?id=com.baidu.duer.superapp"); +#else + HDLUtils.OpenUrl("https://apps.apple.com/cn/app/%E5%B0%8F%E5%BA%A6/id1437733193"); +#endif + } + } + catch (Exception e) + { + string error = e.Message; + bol = false; + } + } + + /// <summary> + /// 鎬濆繀椹� + /// </summary> + private void OpenSBCAPP() + { + bool bol = false; + try + { +#if Android + bol = HDLUtils.OpenAppWithPackageName("com.aispeech.companionapp"); +#else + bol=HDLUtils.OpenApp("AispeechMobile://"); +#endif + + if (!bol) + { +#if Android + HDLUtils.OpenUrl("market://details?id=com.aispeech.companionapp"); +#else + HDLUtils.OpenUrl("https://apps.apple.com/cn/app/id1460767442"); +#endif + } + } + catch (Exception e) + { + string error = e.Message; + bol = false; + } + } + + #endregion + + + #region 鈻� 鑷畾涔夋埧闂撮�夋嫨鎺т欢_____________________ + + /// <summary> + /// 鎴块棿鍒楄〃琛� + /// </summary> + private class RoomRowLayout : FrameRowControl + { + /// <summary> + /// 鎴块棿鍚嶇О + /// </summary> + private NormalViewControl btnName = null; + /// <summary> + /// + /// </summary> + private Sound sound=null; + public MostRightIconControl Right_icon = null; + private IconViewControl iconViewControl = null; + private NormalViewControl bottomLine = null; + + /// <summary> + /// 鎴块棿鍒楄〃琛� + /// </summary> + public RoomRowLayout(Sound _sound) + { + this.sound = _sound; + this.UseClickStatu = false; + this.BackgroundColor = UserCenterColor.Current.White; + this.Height = Application.GetRealHeight(170); + } + + /// <summary> + /// 鍒濆鍖栨帶浠� + /// </summary> + public void InitControl() + { + //鍥炬爣 + if (sound.type == 0) + { + iconViewControl = this.AddLeftIcon(81, "SmartSound/Xiaodu.png"); + } + else + { + iconViewControl = this.AddLeftIcon(81, "SmartSound/Sibici.png"); + } + + //鏄剧ず鏂囨湰 + btnName = this.AddLeftCaption(string.Empty, 2000); + btnName.Height = Application.GetRealHeight(60); + btnName.TextSize = 14; + btnName.Y = Application.GetRealHeight(57); + btnName.Text = sound.Name; + //btnName.X = iconViewControl.X + iconViewControl.Width ; + + Right_icon = this.AddMostRightEmptyIcon(58, 58); + Right_icon.Gravity = Gravity.CenterVertical; + + Right_icon.SelectedImagePath = "Item/ItemSelected.png"; + Right_icon.UnSelectedImagePath = "Item/ItemUnSelected.png"; + + bottomLine = AddBottomLine(); + bottomLine.X = btnName.X; + } + } + #endregion + + private class Sound + { + public int type = 0; + public string Name=""; + public bool Checked = false; + } + } +} diff --git a/ZigbeeApp/Shared/Phone/SmartSound/Forms/SmartSoundListForm.cs b/ZigbeeApp/Shared/Phone/SmartSound/Forms/SmartSoundListForm.cs index 20d377d..0c08901 100755 --- a/ZigbeeApp/Shared/Phone/SmartSound/Forms/SmartSoundListForm.cs +++ b/ZigbeeApp/Shared/Phone/SmartSound/Forms/SmartSoundListForm.cs @@ -4,6 +4,7 @@ using System.Threading.Tasks; using Newtonsoft.Json.Linq; using Shared.Common; +using Shared.Phone.SmartSound.Forms; using Shared.Phone.UserCenter.Device; using Shared.Phone.UserCenter.SmartSound.Util; using Shared.Phone.UserCenter.SmartSound.Widget; @@ -30,6 +31,7 @@ private RowLayoutControl oldShowRightMuneRow = null; private static string dataString = ""; + private MostRightIconControl btnAddDeviceIcon = null; #region 鈻� 鍒濆鍖朹____________________________ @@ -46,31 +48,48 @@ base.SetTitleText("鏅鸿兘闊崇"); Dictionary<string, string> floorDictionary = Config.Instance.Home.FloorDics;//妤煎眰鍒楄〃 - var helpBtn = new MyButton(); - helpBtn.TextColor = UserCenterColor.Current.TextOrangeColor; - helpBtn.Text = "甯姪"; - helpBtn.Gravity = Gravity.CenterRight; - helpBtn.TextAlignment = TextAlignment.CenterRight; - topFrameLayout.AddChidren(helpBtn); - helpBtn.X -= Application.GetRealWidth(58); + //鍙充笂娣诲姞鎸夐挳 + if (btnAddDeviceIcon == null) + { + btnAddDeviceIcon = new MostRightIconControl(69, 69); + btnAddDeviceIcon.UnSelectedImagePath = "Item/Add.png"; + topFrameLayout.AddChidren(btnAddDeviceIcon); + btnAddDeviceIcon.InitControl(); + btnAddDeviceIcon.ButtonClickEvent += (sender, e) => + { + var helpForm = new AddSmartSound(); + helpForm.AddForm(); + }; + } + + //var helpBtn = new MyButton(); + //helpBtn.TextColor = UserCenterColor.Current.TextOrangeColor; + //helpBtn.Text = "甯姪"; + //helpBtn.Gravity = Gravity.CenterRight; + //helpBtn.TextAlignment = TextAlignment.CenterRight; + //topFrameLayout.AddChidren(helpBtn); + //helpBtn.X -= Application.GetRealWidth(58); //鍒濆鍖栦腑閮ㄦ帶浠� this.InitMiddleFrame(); - helpBtn.MouseUpEventHandler += (sernder, e) => - { - //鐢熸垚涓�涓脊绐楃敾闈� - var dialogForm = new TextDialog("缁戝畾鏅鸿兘闊崇鍒扮涓夋柟 APP 杩涜鎿嶄綔", "璺宠浆鑷冲皬搴PP"); - dialogForm.SetTitleText("甯姪"); + //helpBtn.MouseUpEventHandler += (sernder, e) => + //{ + // var helpForm = new AddSmartSound(); + // helpForm.AddForm(); + // /* + // //鐢熸垚涓�涓脊绐楃敾闈� + // var dialogForm = new TextDialog("缁戝畾鏅鸿兘闊崇鍒扮涓夋柟 APP 杩涜鎿嶄綔", "璺宠浆鑷冲皬搴PP"); + // dialogForm.SetTitleText("甯姪"); - //鎸変笅纭鎸夐挳 - dialogForm.ComfirmClickEvent += () => - { - //鐢婚潰鍏抽棴 - dialogForm.CloseDialog(); - OpenXiaoDuAPP(); - }; - }; + // //鎸変笅纭鎸夐挳 + // dialogForm.ComfirmClickEvent += () => + // { + // //鐢婚潰鍏抽棴 + // dialogForm.CloseDialog(); + // OpenXiaoDuAPP(); + // };*/ + //}; } /// <summary> @@ -193,7 +212,7 @@ if (smartSound.Remark != null && smartSound.Remark.Trim() != "") remark += "(" + smartSound.Remark + ")"; - row.ImagePath = "SmartSound/Xiaodu.png"; + row.ImagePath = "SmartSound/Sibici.png"; row.Remark = remark; } @@ -264,38 +283,54 @@ } /// <summary> + /// 鎬濆繀椹� + /// </summary> + private void OpenSBCAPP() + { + bool bol = false; + try + { +#if Android + bol = HDLUtils.OpenAppWithPackageName("com.aispeech.companionapp"); +#else + bol=HDLUtils.OpenApp("AispeechMobile://"); +#endif + + if (!bol) + { +#if Android + HDLUtils.OpenUrl("market://details?id=com.aispeech.companionapp"); +#else + HDLUtils.OpenUrl("https://apps.apple.com/cn/app/id1460767442"); +#endif + } + } + catch (Exception e) + { + string error = e.Message; + bol = false; + } + } + + /// <summary> /// 瑙i櫎缁戝畾寮圭獥 /// </summary> private void ShowDelectDialog(SmartSoundInfo.SoundInfo smartSound) { //鐢熸垚涓�涓脊绐楃敾闈� - var dialogForm = new TextDialog("瑙i櫎缁戝畾闇�瑕佸埌绗笁鏂� APP 杩涜鎿嶄綔", "璺宠浆鑷冲皬搴PP"); + var dialogForm = new TextDialog("瑙i櫎缁戝畾闇�瑕佸埌绗笁鏂� APP 杩涜鎿嶄綔", "璺宠浆鑷崇涓夋柟APP"); dialogForm.SetTitleText("瑙i櫎缁戝畾"); //鎸変笅纭鎸夐挳 dialogForm.ComfirmClickEvent += () => { - OpenXiaoDuAPP(); - - /* - HdlThreadLogic.Current.RunThread(() => - { - this.ShowProgressBar("鍒犻櫎鏈嶅姟鍣ㄨ褰�..."); - string json = DelectSmartSound(smartSound); - if (json == "SUCCESS") - { - smartSoundInfo.ResponseData.Data.Remove(smartSound); - } - this.CloseProgressBar(); - - HdlThreadLogic.Current.RunMainInThread(() => - { - //鐢婚潰鍏抽棴 - dialogForm.CloseDialog(); - OpenXiaoDuAPP(); - iniView(); - }); - });*/ + if (smartSound.PlatfromName == "Baidu") + { + OpenXiaoDuAPP(); + } + else if (smartSound.PlatfromName == "AISpeech") { + OpenSBCAPP(); + } }; } /// <summary> @@ -322,8 +357,20 @@ string str = await setRemark(smartSound, remark); //涓婁紶澶囦唤 if (str == "SUCCESS") { - smartSound.Remark = remark; - soundRowLayout.btnRemark.Text = "灏忓害" + "(" + textValue + ")"; + smartSound.Remark = remark; + if (smartSound.PlatfromName == "Baidu") + { + soundRowLayout.btnRemark.Text = "灏忓害" + "(" + textValue + ")"; + } + else if (smartSound.PlatfromName == "AISpeech") + { + soundRowLayout.btnRemark.Text = "鎬濆繀椹�" + "(" + textValue + ")"; + } + else + { + soundRowLayout.btnRemark.Text = textValue; + } + } else { diff --git a/ZigbeeApp/Shared/Phone/TemplateData/TemplateCommonLogic.cs b/ZigbeeApp/Shared/Phone/TemplateData/TemplateCommonLogic.cs index 6468fba..3772876 100755 --- a/ZigbeeApp/Shared/Phone/TemplateData/TemplateCommonLogic.cs +++ b/ZigbeeApp/Shared/Phone/TemplateData/TemplateCommonLogic.cs @@ -638,6 +638,7 @@ //鏈湴澶囦唤淇濆瓨鎴愬姛 this.ShowMassage(ShowMsgType.Tip, Language.StringByID(R.MyInternationalizationString.SaveLocalBackDataSuccess)); } + ProgressFormBar.Current.Close(); }); } @@ -722,6 +723,7 @@ { var homeInfo = Newtonsoft.Json.JsonConvert.DeserializeObject<TemplateHomeInfo>(homeData); myModel.ListUintContent.AddRange(homeInfo.ListUintContent); + myModel.ListUintName.AddRange(homeInfo.ListUintName); myModel.ResidenceAddressName = homeInfo.ResidenceAddressName; } } @@ -786,6 +788,15 @@ public string GetNewTemplateFileName() { return "ModelData_Local_" + DateTime.Now.ToString("yyyyMMdd_HHmmss") + ".bin"; + } + + /// <summary> + /// 鑾峰彇涓�涓柊鐨勬ā鏉夸繚瀛樻枃浠跺悕 + /// </summary> + /// <returns></returns> + public string GetNewTemplateFileName(DateTime dateTime) + { + return "ModelData_Local_" + dateTime.ToString("yyyyMMdd_HHmmss") + ".bin"; } #endregion @@ -1058,7 +1069,6 @@ var modelData = new LocalModelBaseInfo(); modelData.EditorTime = DateTime.Now.ToString("yyyy.MM.dd HH:mm"); modelData.ModelName = backUpName; - modelData.ListUintContent.AddRange(Common.Config.Instance.Home.ListUintContent); modelData.FloorCount = Common.Config.Instance.Home.FloorDics.Count; modelData.DeviceCount = this.modelData.dicDeviceTemplateData.Count; //鍔熻兘鏁� @@ -1087,6 +1097,7 @@ { var homeData = new TemplateHomeInfo(); homeData.ResidenceAddressName = Common.Config.Instance.Home.ResidenceAddressName; + homeData.ListUintName.AddRange(Common.Config.Instance.Home.ListUintName); homeData.ListUintContent.AddRange(Common.Config.Instance.Home.ListUintContent); writeText += "#START#\r\n"; @@ -1284,6 +1295,12 @@ { //鑾峰彇鏈湴鎸囧畾鐨凪ac鐨勫叏閮ㄨ澶� var listDevice = Common.LocalDevice.Current.GetDevicesByMac(sourceMac, false); + var otaDevice = Common.LocalDevice.Current.GetOTADevice(sourceMac); + if (otaDevice != null) + { + //杩欓噷ota璁惧涔熻鍔犺繘鍘�,閲嶄腑涔嬮噸 + listDevice.Add(otaDevice); + } foreach (var device in listDevice) { @@ -1291,7 +1308,8 @@ string localDeviceKey = Common.LocalDevice.Current.GetDeviceMainKeys(device); string templateDeviceKey = Common.LocalDevice.Current.GetDeviceMainKeys(targetMac, device.DeviceEpoint); - if (this.modelData.dicDeviceTemplateRoom.ContainsKey(templateDeviceKey) == true) + if (this.modelData.dicDeviceTemplateRoom.ContainsKey(templateDeviceKey) == true + && (device is OTADevice) == false) { //濡傛灉妯℃澘閲岄潰,杩欎釜绔偣璁剧疆鏈夋埧闂寸殑璇� HdlRoomLogic.Current.ChangedRoom(device, this.modelData.dicDeviceTemplateRoom[templateDeviceKey], false); @@ -1701,7 +1719,7 @@ //淇濆瓨璺緞 string saveFile = DirNameResourse.LocalTemplateDirectory; - saveFile = System.IO.Path.Combine(saveFile, mainkey); + saveFile = System.IO.Path.Combine(saveFile, "Device_" + mainkey); var listData = this.modelData.dicDeviceTemplateData[mainkey]; if (listData.Count == 0) diff --git a/ZigbeeApp/Shared/Phone/TemplateData/TemplateDataCommon.cs b/ZigbeeApp/Shared/Phone/TemplateData/TemplateDataCommon.cs index 645568d..2657fe3 100755 --- a/ZigbeeApp/Shared/Phone/TemplateData/TemplateDataCommon.cs +++ b/ZigbeeApp/Shared/Phone/TemplateData/TemplateDataCommon.cs @@ -199,6 +199,11 @@ get { return FileName.StartsWith("ModelData_Local"); } } /// <summary> + /// 鍗曞厓鏍囬(杩欎釜鐩墠鏄粰鏌ョ湅妯℃澘浣跨敤鐨�) + /// </summary> + [Newtonsoft.Json.JsonIgnore] + public List<string> ListUintName = new List<string>(); + /// <summary> /// 鍗曞厓鍚嶇О(杩欎釜鐩墠鏄粰鏌ョ湅妯℃澘浣跨敤鐨�) /// </summary> [Newtonsoft.Json.JsonIgnore] @@ -256,6 +261,10 @@ public class TemplateHomeInfo { /// <summary> + /// 鍗曞厓鏍囬 + /// </summary> + public List<string> ListUintName = new List<string>(); + /// <summary> /// 鍗曞厓鍚嶇О /// </summary> public List<string> ListUintContent = new List<string>(); diff --git a/ZigbeeApp/Shared/Phone/TemplateData/TemplateDataFormLogic.cs b/ZigbeeApp/Shared/Phone/TemplateData/TemplateDataFormLogic.cs index 3f8d140..f1191b1 100755 --- a/ZigbeeApp/Shared/Phone/TemplateData/TemplateDataFormLogic.cs +++ b/ZigbeeApp/Shared/Phone/TemplateData/TemplateDataFormLogic.cs @@ -42,11 +42,14 @@ /// <param name="finishEvent">缁撴潫閫夋嫨鐨勪簨浠�,绗竴涓弬鏁版槸閫夋嫨鐨勬ā鏉跨殑鍚嶅瓧,绗簩涓弬鏁版槸閫夋嫨鐨勬ā鏉跨殑鏂囦欢鍚嶅瓧</param> public void ShowBottomSelectTemplateForm(string nowSelectFile, Action<string, string> finishEvent) { + //2020.09.15 涓嶅啀鑾峰彇浜戠妯℃澘 + //鑾峰彇鏈湴鐨勬ā鏉� var listLocal = TemplateCommonLogic.Current.GetLocalAllModelList(); //鑾峰彇浜戠鐨勬ā鏉� - var listClound = TemplateCommonLogic.Current.GetCloundAllModelList(); - if (listLocal.Count == 0 && listClound.Count == 0) + //var listClound = TemplateCommonLogic.Current.GetCloundAllModelList(); + //if (listLocal.Count == 0 && listClound.Count == 0) + if (listLocal.Count == 0) { //妫�娴嬩笉鍒板彲渚涢�夋嫨鐨勬ā鏉挎暟鎹� HdlMessageLogic.Current.ShowMassage(ShowMsgType.Tip, Language.StringByID(R.MyInternationalizationString.NotHadTemplateDataToSelect)); @@ -79,16 +82,16 @@ //宸茬粡瀛樺湪浜嗙殑妯℃澘鍚嶅瓧 listEsixtName.Add(listLocal[i].ModelName); } - for (int i = 0; i < listClound.Count; i++) - { - //濡傛灉鏈湴宸茬粡瀛樺湪浜嗚繖涓ā鏉�,鍒欏凡鏈湴鐨勪负鍑� - if (listEsixtName.Contains(listClound[i].TemplateName) == true) - { - continue; - } - listText1.Add(listClound[i].TemplateName); - listText2.Add(listClound[i].CreatedOnUtc); - } + //for (int i = 0; i < listClound.Count; i++) + //{ + // //濡傛灉鏈湴宸茬粡瀛樺湪浜嗚繖涓ā鏉�,鍒欏凡鏈湴鐨勪负鍑� + // if (listEsixtName.Contains(listClound[i].TemplateName) == true) + // { + // continue; + // } + // listText1.Add(listClound[i].TemplateName); + // listText2.Add(listClound[i].CreatedOnUtc); + //} var selectForm = new BottomItemSelectForm(); selectForm.SelectRowCanCancel = false; @@ -96,25 +99,25 @@ selectForm.FinishSelectEvent += (select) => { //宸查�夋ā鐗堬細鍗楁矙閲戣寕搴淿鎴峰瀷A - if (select >= listLocal.Count) - { - //濡傛灉閫夋嫨鐨勬槸浜戠妯℃澘鐨勮瘽 - int index = select - listLocal.Count; - //闇�瑕佸幓涓嬭浇杩欎釜妯℃澘 - TemplateCommonLogic.Current.DownLoadTemplate(listClound[index].Id, (fullName) => - { - if (fullName != null) - { - string fileName = fullName.Substring(DirNameResourse.AllResidenceTemplateDirectory.Length + 1); - //璋冪敤鍥炶皟鍑芥暟 - HdlThreadLogic.Current.RunMain(() => - { - finishEvent?.Invoke(listText1[select], fileName); - }); - } - }); - } - else + //if (select >= listLocal.Count) + //{ + // //濡傛灉閫夋嫨鐨勬槸浜戠妯℃澘鐨勮瘽 + // int index = select - listLocal.Count; + // //闇�瑕佸幓涓嬭浇杩欎釜妯℃澘 + // TemplateCommonLogic.Current.DownLoadTemplate(listClound[index].Id, (fullName) => + // { + // if (fullName != null) + // { + // string fileName = fullName.Substring(DirNameResourse.AllResidenceTemplateDirectory.Length + 1); + // //璋冪敤鍥炶皟鍑芥暟 + // HdlThreadLogic.Current.RunMain(() => + // { + // finishEvent?.Invoke(listText1[select], fileName); + // }); + // } + // }); + //} + //else { //璋冪敤鍥炶皟鍑芥暟 finishEvent?.Invoke(listText1[select], listLocal[select].FileName); diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Common/UserCenterCommon.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Common/UserCenterCommon.cs index a356a87..40e999b 100755 --- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Common/UserCenterCommon.cs +++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Common/UserCenterCommon.cs @@ -1339,6 +1339,10 @@ /// 褰撹澶嘥ype涓嶄竴鏍锋椂,鏄惁鐢熸垚Log 1->鐢熸垚 /// </summary> public int CheckDeviceType = 0; + /// <summary> + /// 鏄惁浣跨敤浠ュ墠鏃х殑璁惧鍒楄〃鑾峰彇鏂瑰紡 1->浣跨敤 + /// </summary> + public int UseOldSearchDeviceMethord = 0; } #endregion diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/BelongAreaControl.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/BelongAreaControl.cs index 2ecd19d..8489132 100755 --- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/BelongAreaControl.cs +++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/BelongAreaControl.cs @@ -173,6 +173,8 @@ txtView.Text = selectName; //璋冪敤鍥炶皟鍑芥暟 this.SelectRoomEvent?.Invoke(RoomKey); + //涓婁紶绌洪棿鍖哄煙淇℃伅 + HdlRoomLogic.Current.SetRoomInfoToGateway(); }); if (result == false) { diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/DeviceControls/GatewayRowControl.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/DeviceControls/GatewayRowControl.cs index 2091089..c9d2fb6 100755 --- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/DeviceControls/GatewayRowControl.cs +++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/DeviceControls/GatewayRowControl.cs @@ -135,7 +135,6 @@ HdlThreadLogic.Current.RunMain(() => { //鍒锋柊鎺т欢 - tempWay.GatewayOnlineFlage = true; this.RefreshControl(tempWay); }); } @@ -157,7 +156,7 @@ { this.zbGatewayId = zbway.GwId; } - bool bonline = HdlGatewayLogic.Current.CheckGatewayOnlineByFlag(zbway); + bool bonline = HdlGatewayLogic.Current.CheckGatewayOnlineByMemory(zbway); this.IsOnline = bonline; diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Form/BottomItemSelectForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Form/BottomItemSelectForm.cs index 1b9a476..9ed3269 100755 --- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Form/BottomItemSelectForm.cs +++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Form/BottomItemSelectForm.cs @@ -109,7 +109,7 @@ topBackFame.AddChidren(btnTitle); //鍙栨秷 - var btnCancel = new NormalViewControl(Application.GetRealWidth(200), topBackFame.Height, true); + var btnCancel = new NormalViewControl(Application.GetRealWidth(200), topBackFame.Height, false); btnCancel.X = Application.GetRealWidth(81); btnCancel.TextColor = UserCenterColor.Current.TextGrayColor1; btnCancel.TextID = R.MyInternationalizationString.uCancel; @@ -120,7 +120,7 @@ }; //瀹屾垚 - var btnFinish = new NormalViewControl(Application.GetRealWidth(200), topBackFame.Height, true); + var btnFinish = new NormalViewControl(Application.GetRealWidth(200), topBackFame.Height, false); btnFinish.X = topBackFame.Width - btnCancel.X - Application.GetRealWidth(200); btnFinish.TextAlignment = TextAlignment.CenterRight; btnFinish.TextColor = 0xfffb744a; diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlAutoBackupLogic.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlAutoBackupLogic.cs index 99c3486..f7c6441 100755 --- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlAutoBackupLogic.cs +++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlAutoBackupLogic.cs @@ -19,35 +19,11 @@ #region 鈻� 涓婁紶澶囦唤___________________________ /// <summary> - /// 鎵ц涓婁紶鑷姩澶囦唤鏁版嵁(0:娌℃湁鍙笂浼犵殑鑷姩澶囦唤鏁版嵁 1:鎴愬姛 -1锛氬け璐�) + /// 鎵嬪姩鎵ц涓婁紶鑷姩澶囦唤鏁版嵁(0:娌℃湁鍙笂浼犵殑鑷姩澶囦唤鏁版嵁 1:鎴愬姛 -1锛氬け璐�) /// </summary> /// <returns></returns> - public static int DoUpLoadAutoBackupData() + public static int DoUpLoadAutoBackupDataByHand() { - //鑾峰彇app鐨勮嚜鍔ㄥ浠� - var data = HdlBackupLogic.Current.GetBackupListNameFromDB(1); - if (data == null) - { - return -1; - } - - if (data.Count == 0) - { - //鍒犻櫎鍏ㄩ儴鐨勮嚜鍔ㄥ浠界殑鏈湴鏂囦欢 - DeleteAllAutoBackupFile(); - //濡傛灉娌℃湁鑷姩澶囦唤鏁版嵁,鍒欐妸鏈湴鍏ㄩ儴涓滆タ涓婁紶 - var pathTemp = DirNameResourse.AutoBackupDirectory; - //澶嶅埗鏈湴鎵�鏈夋枃浠惰繃鍘� - List<string> listAllFile = HdlFileLogic.Current.GetRootPathListFile(); - foreach (string fileName in listAllFile) - { - string oldFile = System.IO.Path.Combine(Config.Instance.FullPath, fileName); - string newFile = System.IO.Path.Combine(pathTemp, fileName); - //澶嶅埗鏂囦欢 - HdlFileLogic.Current.CopyFile(oldFile, newFile); - } - } - //缂栬緫鏂囦欢 List<string> listEditor = GetAutoBackupEditorFile(); //鍒犻櫎鏂囦欢 @@ -86,27 +62,59 @@ /// <summary> /// 涓婁紶鏂囦欢鍒颁簯绔� /// </summary> - /// <param name="listFile"></param> + /// <param name="listFile">缂栬緫鎴栬�呮坊鍔犵殑鏂囦欢(鐩墠宸茬粡涓嶆槸涓婁紶瀹冧簡)</param> /// <returns></returns> private static bool UpLoadBackupFileToDB(List<string> listFile) { - int listFileCount = listFile.Count; - string backUpDir = DirNameResourse.AutoBackupDirectory; - for (int i = 0; i < listFile.Count; i++) + string localPath = Config.Instance.FullPath; + + //灏嗘ā鏉挎暟鎹繚瀛樺埌鍒版寚瀹氱殑鏂囦欢澶逛腑 + var templateName = TemplateData.TemplateCommonLogic.Current.GetNewTemplateFileName(new DateTime(2000, 12, 31, 12, 59, 57)); + var templateFile = TemplateData.TemplateCommonLogic.Current.SaveTemplateDataToFile(templateName, "HomeTemplate"); + + //灏嗘ā鏉縝in鏂囦欢绉诲姩鍒板浠芥枃浠跺す涓� + var localTemplateName = System.IO.Path.Combine(localPath, templateName); + try { System.IO.File.Move(templateFile, localTemplateName); } + catch (Exception ex) { HdlLogLogic.Current.WriteLog(ex, "绉诲姩妯℃澘澶辫触"); } + + //鑾峰彇鏈湴鏂囦欢 + var listAllFile = HdlFileLogic.Current.GetRootPathListFile(); + var listUpFile = new List<string>(); + foreach (string fileName in listAllFile) { - string file = listFile[i]; + //鍒ゆ柇鎸囧畾鏂囦欢鏄惁闇�瑕佷笂浼�(鏍圭洰褰曠殑鎵嶅垽鏂�) + if (HdlBackupLogic.Current.IsNotUpLoadFile(fileName) == true) + { + continue; + } + //鍏朵粬鍥剧墖鐨勮祫婧愭枃浠�,鍙湁鍦ㄥ彉鏇翠簡鐨勬椂鍊�,鎵嶄笂浼� + if (fileName.EndsWith(".png") == true && listFile.Contains(fileName) == false) + { + continue; + } + listUpFile.Add(fileName); + } + + int listFileCount = listUpFile.Count; + for (int i = 0; i < listUpFile.Count; i++) + { + string file = listUpFile[i]; var datainfo = new FileInfoData(); datainfo.BackupFileName = file; - datainfo.BackupFileContent = HdlFileLogic.Current.ReadFileByteContent(System.IO.Path.Combine(backUpDir, file)); + datainfo.BackupFileContent = HdlFileLogic.Current.ReadFileByteContent(System.IO.Path.Combine(localPath, file)); if (datainfo.BackupFileContent == null) { continue; } - var list = new List<FileInfoData>(); - list.Add(datainfo); + + var upData = new UpLoadDataPra(); + upData.HomeId = Config.Instance.Home.Id; + upData.UploadSubFileLists = new List<FileInfoData> { datainfo }; + //鑾峰彇鎺у埗涓讳汉璐﹀彿鐨凾oken + upData.LoginAccessToken = UserCenterLogic.GetConnectMainToken(); //鎵ц鏄笂浼� - bool falge = DoUpLoadInfoToDB(list); + bool falge = UserCenterLogic.GetResultStatuByRequestHttps("App/HomeAppAutoDataBackup", true, upData, null, true); if (falge == false) { return false; @@ -114,6 +122,18 @@ //璁剧疆杩涘害鍊� ProgressFormBar.Current.SetValue(i + 1, listFileCount); } + + //鍒犻櫎鎺夎繖涓ā鏉挎枃浠� + HdlFileLogic.Current.DeleteFile(localTemplateName); + + //鍒犻櫎鏂囦欢 + var backPath = DirNameResourse.AutoBackupDirectory; + foreach (var file in listFile) + { + string fullName = System.IO.Path.Combine(backPath, file); + HdlFileLogic.Current.DeleteFile(fullName); + } + return true; } @@ -137,11 +157,10 @@ } //鑷姩澶囦唤鍙湁涓�涓� var autoBackupId = data[0].Id; - var nowZigbeeNumHomeId = Shared.Common.Config.Instance.Home.Id; var upData = new DeleteFilePra(); upData.BackupClassId = autoBackupId; - upData.HomeId = nowZigbeeNumHomeId; + upData.HomeId = Config.Instance.Home.Id; upData.DeleteFileNameLists = listData; //鑾峰彇鎺у埗涓讳汉璐﹀彿鐨凾oken upData.LoginAccessToken = UserCenterLogic.GetConnectMainToken(); @@ -159,38 +178,6 @@ string fullName = System.IO.Path.Combine(backPath, file); HdlFileLogic.Current.DeleteFile(fullName); } - return true; - } - - /// <summary> - /// 鎵ц涓婁紶鏂囦欢鍒颁簯绔� - /// </summary> - /// <param name="listData">涓婁紶鐨勬暟鎹�</param> - /// <returns></returns> - private static bool DoUpLoadInfoToDB(List<FileInfoData> listData) - { - var nowZigbeeNumHomeId = Shared.Common.Config.Instance.Home.Id; - - var upData = new UpLoadDataPra(); - upData.HomeId = nowZigbeeNumHomeId; - upData.UploadSubFileLists = listData; - //鑾峰彇鎺у埗涓讳汉璐﹀彿鐨凾oken - upData.LoginAccessToken = UserCenterLogic.GetConnectMainToken(); - - bool falge = UserCenterLogic.GetResultStatuByRequestHttps("App/HomeAppAutoDataBackup", true, upData, null, true); - if (falge == false) - { - return false; - } - - //鍒犻櫎鏂囦欢 - var backPath = DirNameResourse.AutoBackupDirectory; - foreach (var file in listData) - { - string fullName = System.IO.Path.Combine(backPath, file.BackupFileName); - HdlFileLogic.Current.DeleteFile(fullName); - } - return true; } @@ -281,25 +268,19 @@ /// <returns></returns> public static int SynchronizeDbAutoBackupData() { - //鍒ゆ柇鏄惁鑳藉鍚屾鏁版嵁 - string checkFile = DirNameResourse.AutoDownLoadBackupCheckFile; - //濡傛灉鏈湴宸茬粡鎷ユ湁浜嗚繖涓枃浠讹紝鍒欒鏄庝笉鏄柊鎵嬫満锛屼笉鍐嶈嚜鍔ㄨ繕鍘� - if (System.IO.File.Exists(checkFile) == true) - { - //鍚屾鏈嶅姟鍣ㄧ殑鍒嗕韩鍐呭 - HdlShardLogic.Current.SynchronizeDbSharedContent(); - return 0; - } - //鏆傛椂涓嶆敮鎸佹垚鍛� if (UserCenterResourse.UserInfo.AuthorityNo == 3) { //鍚屾鏈嶅姟鍣ㄧ殑鍒嗕韩鍐呭 HdlShardLogic.Current.SynchronizeDbSharedContent(); - //鍒涘缓涓�涓┖鏂囦欢(鏍囪瘑宸茬粡瀹屾垚鍚屾) - var file = System.IO.File.Create(checkFile); - file.Close(); return 1; + } + //鍒ゆ柇鏄惁鑳藉鍚屾鏁版嵁 + string checkFile = DirNameResourse.AutoDownLoadBackupCheckFile; + //濡傛灉鏈湴宸茬粡鎷ユ湁浜嗚繖涓枃浠讹紝鍒欒鏄庝笉鏄柊鎵嬫満锛屼笉鍐嶈嚜鍔ㄨ繕鍘� + if (System.IO.File.Exists(checkFile) == true) + { + return 0; } //鑾峰彇app鐨勮嚜鍔ㄥ浠� @@ -310,8 +291,6 @@ } if (data.Count == 0) { - //鍚屾鏈嶅姟鍣ㄧ殑鍒嗕韩鍐呭 - HdlShardLogic.Current.SynchronizeDbSharedContent(); //鍒涘缓涓�涓┖鏂囦欢(鏍囪瘑宸茬粡瀹屾垚鍚屾) var file = System.IO.File.Create(checkFile); file.Close(); @@ -419,29 +398,66 @@ return; } - List<string> listFile1 = HdlFileLogic.Current.GetFileFromDirectory(DirNameResourse.AutoBackupDirectory); - List<string> listFile2 = GetAutoBackupDeleteFile(); - - if (listFile1.Count == 0 && listFile2.Count == 0) + //鍒ゆ柇鏄惁鏈夋枃浠跺彉鏇翠簡 + if (CheckAutoBackupFileIsChanged() == false) { return; } - if (listFile1.Count == 1 && listFile1[0] == "Room_Favorite.json") - { - //杩欎釜涓滆タ濂藉儚APP鍚姩鐨勬椂鍊欓兘浼氬垱寤虹殑鏍峰瓙 - return; - } - - //鏂囦欢鍏ㄨ矾寰� - string fullName = DirNameResourse.AutoBackupNotPromptedFile; - if (System.IO.File.Exists(fullName) == false) + //鍒ゆ柇鑳藉惁鏄剧ず鑷姩澶囦唤鐨勭晫闈� + if (CheckCanShowAutoBackupForm() == true) { HdlThreadLogic.Current.RunMain(() => { var form = new HdlBackup.HdlAutoBackupForm(); form.AddForm(); }); - return; + } + } + + /// <summary> + /// 妫�娴嬭嚜鍔ㄥ浠芥枃浠舵槸鍚﹀彉鏇磋繃 + /// </summary> + /// <returns></returns> + private static bool CheckAutoBackupFileIsChanged() + { + List<string> listFile1 = HdlFileLogic.Current.GetFileFromDirectory(DirNameResourse.AutoBackupDirectory); + List<string> listFile2 = GetAutoBackupDeleteFile(); + + if (listFile1.Count == 0 && listFile2.Count == 0) + { + //娌℃湁鏂囦欢鍙樻洿 + return false; + } + if (listFile2.Count > 0) + { + //鏈夋枃浠惰鍒犻櫎 + return true; + } + foreach (var fileName in listFile1) + { + //浣忓畢鍜屾敹钘忔枃浠�,涓嶄綔涓哄垽鏂爣鍑� + if (fileName.StartsWith("House_") == true + || fileName == "Room_Favorite.json") + { + continue; + } + return true; + } + return false; + } + + /// <summary> + /// 妫�娴嬭兘鍚︽樉绀鸿嚜鍔ㄥ浠界殑鐣岄潰 + /// </summary> + /// <returns></returns> + private static bool CheckCanShowAutoBackupForm() + { + //鏂囦欢鍏ㄨ矾寰� + string fullName = DirNameResourse.AutoBackupNotPromptedFile; + if (System.IO.File.Exists(fullName) == false) + { + //鏈湴娌℃湁瀛樺湪杩欎釜鏂囦欢 + return true; } BackupNotPrompted info = null; var data = HdlFileLogic.Current.ReadFileByteContent(fullName); @@ -449,30 +465,21 @@ if (info.NotPrompted == true) { //涓嶅啀鎻愮ず - return; + return false; } if (info.Day == 0) { - HdlThreadLogic.Current.RunMain(() => - { - var form = new HdlBackup.HdlAutoBackupForm(); - form.AddForm(); - }); - return; + return true; } DateTime oldTime = Convert.ToDateTime(info.OldDay); int intDay = (DateTime.Now - oldTime).Days; //鏃堕棿宸茬粡瓒呰繃 - if (intDay > info.Day) + if (intDay >= info.Day) { - HdlThreadLogic.Current.RunMain(() => - { - var form = new HdlBackup.HdlAutoBackupForm(); - form.AddForm(); - }); - return; + return true; } + return false; } #endregion diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlBackupLogic.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlBackupLogic.cs index 04a86a6..10c1799 100755 --- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlBackupLogic.cs +++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlBackupLogic.cs @@ -884,7 +884,7 @@ /// </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 diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayLogic.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayLogic.cs index 9631ac2..73158b0 100755 --- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayLogic.cs +++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayLogic.cs @@ -232,6 +232,20 @@ //娣诲姞缃戝叧鐨勮瘽,寮哄埗涓婚〉鍒锋柊 UserView.UserPage.Instance.RefreshAllForm = true; + if (Config.Instance.Home.TemplateMode == 2) + { + //濡傛灉杩欎釜绫诲瀷鐨勭綉鍏冲彧鏈変竴涓ā鏉�,鍒欒嚜鍔ㄥ尮閰� + var dicName = TemplateData.TemplateCommonLogic.Current.GetGatewayCanSelectTemplateName(zbGateway); + if (dicName.Count == 1) + { + foreach (var tempId in dicName.Keys) + { + TemplateData.TemplateCommonLogic.Current.AddGatewayTemplateSelect(zbGateway.GwId, tempId); + break; + } + } + } + return true; } @@ -320,7 +334,7 @@ } //鍒锋柊鐨勬槸缂撳瓨,涓嶅埛鏂扮湡瀹炵墿鐞嗙綉鍏� - this.dicGateway[gwID].GatewayOnlineFlage = zbGateway.GatewayOnlineFlage; + this.dicGateway[gwID].OnlineTime = DateTime.Now; //灏嗙綉鍏崇殑鏁版嵁璁剧疆鍒版湰鍦扮紦瀛樹腑 this.SetGatewayDataToLocalMemmory(this.dicGateway[gwID], result); //椤轰究杩欎釜鍙橀噺涔熻缃竴涓� @@ -361,7 +375,7 @@ 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); + var result = this.SendJobjectDataToGateway(zbGateway.GwId, "GwSetHomeId", jObject.ToString(), "GwSetHomeId_Respon", 5, true); if (result.ErrorMsgDiv == -1) { if (mode == ShowErrorMode.YES) @@ -526,7 +540,7 @@ } //鍒锋柊鐨勬槸缂撳瓨,涓嶅埛鏂扮湡瀹炵墿鐞嗙綉鍏� - this.dicGateway[gwID].GatewayOnlineFlage = zbGateway.GatewayOnlineFlage; + this.dicGateway[gwID].OnlineTime = DateTime.Now; //灏嗙綉鍏崇殑鏁版嵁璁剧疆鍒版湰鍦扮紦瀛樹腑 this.SetGatewayDataToLocalMemmory(this.dicGateway[gwID], result); //椤轰究杩欎釜鍙橀噺涔熻缃竴涓� @@ -540,6 +554,20 @@ //娣诲姞缃戝叧鐨勮瘽,寮哄埗涓婚〉鍒锋柊 UserView.UserPage.Instance.RefreshAllForm = true; + + if (Config.Instance.Home.TemplateMode == 2) + { + //濡傛灉杩欎釜绫诲瀷鐨勭綉鍏冲彧鏈変竴涓ā鏉�,鍒欒嚜鍔ㄥ尮閰� + var dicName = TemplateData.TemplateCommonLogic.Current.GetGatewayCanSelectTemplateName(zbGateway); + if (dicName.Count == 1) + { + foreach (var tempId in dicName.Keys) + { + TemplateData.TemplateCommonLogic.Current.AddGatewayTemplateSelect(zbGateway.GwId, tempId); + break; + } + } + } return 1; } @@ -564,7 +592,7 @@ var jObject = new Newtonsoft.Json.Linq.JObject { { "Cluster_ID", 0 }, { "Command", 91 } }; var data = new Newtonsoft.Json.Linq.JObject { { "GwName", gatewayName } }; jObject.Add("Data", data); - var result = this.SendJobjectDataToGateway(zbGateway, "GwReName", jObject.ToString(), "GwReName_Respon"); + var result = this.SendJobjectDataToGateway(zbGateway.GwId, "GwReName", jObject.ToString(), "GwReName_Respon"); if (result.ErrorMsg != null) { this.ShowTipMsg(result.ErrorMsg); @@ -671,7 +699,7 @@ } //鑾峰彇鍏ㄩ儴璁惧 - int result = LocalDevice.Current.SetDeviceToMemmoryByGateway(realWay, false); + int result = LocalDevice.Current.SetDeviceToMemmoryByGateway(realWay.GwId, false); //鍏抽棴杩涘害鏉� ProgressBar.Close(); if (result == -1) @@ -800,29 +828,14 @@ //铏氭嫙鐗╃悊缃戝叧 listRealWay.Add(listGateway[i]); } - //鏍囪瘑鎸囧畾缃戝叧涓轰笉鍦ㄧ嚎 - listRealWay[i].GatewayOnlineFlage = false; } - - //杩欐槸绗竴閬撳潕,寮哄埗妫�鏌IFI:绛夊緟2绉�(鍥犱负wifi鐨勬椂鍊欙紝瀹冧細鑷姩鍘诲埛鏂癴lage) - System.Threading.Thread.Sleep(2000); //妫�鏌ユ槸鍚︽嫢鏈夌綉鍏冲瓨鍦ㄤ簬WIFi涓� if (this.CheckHadGatewayInWifi(listRealWay) == false) { //绗簩閬撳潕锛氬湪杩滅▼鐨勬儏鍐典笅鍒锋柊缃戝叧鐨勫湪绾跨姸鎬� this.RefreshGatewayOnlineOnRemode(listRealWay); } - - //鍒锋柊缂撳瓨鐨勫湪绾挎爣璇� - foreach (var zbway in listRealWay) - { - string gwID = zbway.GwId; - if (this.dicGateway.ContainsKey(gwID) == false) - { - continue; - } - this.dicGateway[gwID].GatewayOnlineFlage = zbway.GatewayOnlineFlage; - } + //wifi鎯呭喌涓�,鐢盇pplication鑷繁鍒锋柊鏍囪瘑 } /// <summary> @@ -835,7 +848,7 @@ foreach (var zbway in listGateway) { //鏄惁瀛樺湪缃戝叧瀛樺湪浜嶹IFI涓� - if (zbway.GatewayOnlineFlage == true) + if (this.CheckGatewayOnlineByFlage(zbway) == true) { return true; } @@ -851,7 +864,7 @@ private void RefreshGatewayOnlineOnRemode(List<ZbGateway> listGateway) { //鑾峰彇浜戠涓婇潰鐨勭綉鍏� - Dictionary<string, GatewayResult> dicDbGateway = HdlGatewayLogic.Current.GetGateWayListFromDataBase(); + Dictionary<string, GatewayResult> dicDbGateway = this.GetGateWayListFromDataBase(); if (dicDbGateway == null) { return; @@ -863,19 +876,20 @@ continue; } string strId = way.GwId; - if (dicDbGateway.ContainsKey(strId) == true) //濡傛灉浜戠涓婇潰鏈夎繖涓綉鍏� + if (dicDbGateway.ContainsKey(strId) == true + && dicDbGateway[strId].MqttOnlineStatus == true) //濡傛灉浜戠涓婇潰鏈夎繖涓綉鍏� { - way.GatewayOnlineFlage = dicDbGateway[strId].MqttOnlineStatus; + way.OnlineTime = DateTime.Now; } } } /// <summary> - /// 鏍规嵁鏌愮鏍囪瘑鍒ゆ柇鎸囧畾缃戝叧鏄惁鍦ㄧ嚎 + /// 鏍规嵁鏈湴缂撳瓨鍒ゆ柇鎸囧畾缃戝叧鏄惁鍦ㄧ嚎 /// </summary> /// <param name="zbGateway"></param> /// <returns></returns> - public bool CheckGatewayOnlineByFlag(ZbGateway zbGateway) + public bool CheckGatewayOnlineByMemory(ZbGateway zbGateway) { if (zbGateway == null) { @@ -885,10 +899,26 @@ string gwID = zbGateway.GwId; if (this.dicGateway.ContainsKey(gwID) == true) { - return this.dicGateway[gwID].GatewayOnlineFlage; + return this.CheckGatewayOnlineByFlage(dicGateway[gwID]); } - return zbGateway.GatewayOnlineFlage; + return this.CheckGatewayOnlineByFlage(zbGateway); + } + + /// <summary> + /// 鏍规嵁鎸囧畾鏍囪瘑,鍒ゆ柇缃戝叧鏄惁鍦ㄧ嚎 + /// </summary> + /// <param name="zbGateway"></param> + /// <returns></returns> + private bool CheckGatewayOnlineByFlage(ZbGateway zbGateway) + { + if (this.nowGwConnectMode == GatewayConnectMode.Remote) + { + //杩滅▼姣�20绉掓娴嬩竴娆� + return (DateTime.Now - zbGateway.OnlineTime).TotalSeconds <= 40; + } + //濡傛灉骞挎挱寰楀埌缃戝叧,鍒欎細鍒锋柊OnlineTime,濡傛灉涓庡綋鍓嶆椂闂寸浉宸皯浜�10绉�,鍒欏垽鏂负鍦ㄧ嚎 + return (DateTime.Now - zbGateway.OnlineTime).TotalSeconds <= 15; } #endregion @@ -1396,7 +1426,7 @@ { //鑾峰彇缃戝叧鐗堟湰淇℃伅 var jObject = new Newtonsoft.Json.Linq.JObject { { "Cluster_ID", 0 }, { "Command", 95 } }; - var result = this.SendJobjectDataToGateway(zbGateway, "GetZbGwInfo", jObject.ToString(), "GetZbGwInfo_Respon", 5, useLocalConnect); + var result = this.SendJobjectDataToGateway(zbGateway.GwId, "GetZbGwInfo", jObject.ToString(), "GetZbGwInfo_Respon", 5, useLocalConnect); if (result.ErrorMsgDiv != 1) { @@ -1438,6 +1468,7 @@ localWay.GwSerialNum = data.GWSN; localWay.IsMainGateWay = data.IsDominant == 1 ? true : false; localWay.GwIP = data.GwIP; + localWay.GwMac = data.GwMac; localWay.LinuxImageType = data.LinuxImageType; localWay.LinuxHardVersion = data.LinuxHWVersion; localWay.LinuxFirmwareVersion = data.LinuxFWVersion; @@ -1446,6 +1477,8 @@ localWay.CoordinatorImageId = data.ZbImageType; localWay.DriveCodeList = data.DriveCodeList; localWay.GwVersionDate = data.AppVersion; + localWay.OnlineTime = DateTime.Now; + if (saveFile == true) { localWay.ReSave(); @@ -1645,7 +1678,7 @@ 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"); + var result = this.SendJobjectDataToGateway(zbGateway.GwId, "VirtualDrive/CatDriveCode", jObject.ToString(), "VirtualDrive/CatDriveCode_Respon"); if (result.ErrorMsg != null) { this.ShowTipMsg(result.ErrorMsg); @@ -2087,26 +2120,16 @@ /// <param name="waitTime">瓒呮椂鏃堕棿(绉�)</param> /// <param name="useLocalConnect">鏄惁寮哄埗浣跨敤鏈湴杩炴帴鍙戦��</param> /// <returns>缃戝叧杩斿洖鐨勬暟鎹�</returns> - public ReceiptGatewayResult SendJobjectDataToGateway(ZbGateway gateway, string sendTopic, string sendData, string receiptTopic, int waitTime = 5, bool useLocalConnect = false) + public ReceiptGatewayResult SendJobjectDataToGateway(string gatewayId, string sendTopic, string sendData, string receiptTopic, int waitTime = 5, bool useLocalConnect = false) { var reResult = new ReceiptGatewayResult(); - ZbGateway myGateway = null; - if (this.GetRealGateway(ref myGateway, gateway) == false) - { - //鑾峰彇缃戝叧瀵硅薄澶辫触 - reResult.ErrorMsg = Language.StringByID(R.MyInternationalizationString.uGetGatewayTagartFail); - reResult.ErrorMsgDiv = -1; - return reResult; - } - //缃戝叧ID - string gatewayID = gateway.GwId; //閿欒涓婚 - string errorTopic = gatewayID + "/" + "Error_Respon"; + string errorTopic = gatewayId + "/" + "Error_Respon"; //妫�娴嬪璞$殑涓婚 - string checkTopic = gatewayID + "/" + receiptTopic; + string checkTopic = gatewayId + "/" + receiptTopic; - Action<string, string> receiptAction = (topic, message) => + HdlGatewayReceiveLogic.Current.AddGatewayReceiveEvent(gatewayId, (topic, message) => { var jobject = Newtonsoft.Json.Linq.JObject.Parse(message); @@ -2121,17 +2144,10 @@ { reResult.ReceiptData = jobject["Data"].ToString(); } - }; - myGateway.Actions += receiptAction; + }); + //鍙戦�佹暟鎹� - if (useLocalConnect == false) - { - myGateway.Send(sendTopic, sendData); - } - else - { - myGateway.SendLocation(sendTopic, System.Text.Encoding.UTF8.GetBytes(sendData)); - } + this.SendJobjectData(gatewayId, sendTopic, sendData, useLocalConnect); //瓒呮椂鏃堕棿 int TimeOut = 0; @@ -2142,14 +2158,53 @@ System.Threading.Thread.Sleep(50); TimeOut++; } - myGateway.Actions -= receiptAction; - receiptAction = null; + //绉婚櫎缃戝叧鐩戝惉浜嬩欢 + HdlGatewayReceiveLogic.Current.RemoveGatewayReceiveEvent(); + if (reResult.ReceiptData == null) { reResult.ErrorMsgDiv = 0; } return reResult; + } + + /// <summary> + /// 鍗曠函鎵ц鍙戦�乯son鏁版嵁鍒扮綉鍏� + /// </summary> + /// <param name="i_gatewayId">缃戝叧id</param> + /// <param name="topic">涓婚</param> + /// <param name="sendData">鍙戦�佺殑json鏁版嵁</param> + /// <param name="useLocalConnect">鏄惁寮哄埗浣跨敤鏈湴杩炴帴鍙戦��</param> + public void SendJobjectData(string i_gatewayId, string topic, string sendData, bool useLocalConnect = false) + { + ZbGateway realWay = null; + for (int i = 0; i < ZbGateway.GateWayList.Count; i++) + { + //瀵绘壘鐪熷疄鐗╃悊缃戝叧瀵硅薄 + if (ZbGateway.GateWayList[i].GwId == i_gatewayId) + { + realWay = ZbGateway.GateWayList[i]; + break; + } + } + if (realWay == null) + { + //濡傛灉缃戝叧瀵硅薄涓㈠け浜�,鍒欏垱寤轰釜鏂扮殑 + realWay = new ZbGateway { IsVirtual = true, }; + realWay.GwId = i_gatewayId; + realWay.HomeId = Config.Instance.HomeId; + ZbGateway.GateWayList.Add(realWay); + } + if (useLocalConnect == false) + { + realWay.Send(topic, System.Text.Encoding.UTF8.GetBytes(sendData)); + } + else + { + //寮哄埗浣跨敤鏈湴杩炴帴 + realWay.SendLocation(topic, System.Text.Encoding.UTF8.GetBytes(sendData)); + } } #endregion @@ -2201,8 +2256,8 @@ } else if (this.nowGwConnectMode == GatewayConnectMode.WIFI) { - //灞�鍩熺綉姣�5绉掓娴嬩竴娆� - if (waitCount < 5) { continue; } + //灞�鍩熺綉姣�8绉掓娴嬩竴娆� + if (waitCount < 8) { continue; } } waitCount = 0; @@ -2236,26 +2291,17 @@ { //浠庣綉鍏宠幏鍙栧叏閮ㄧ殑缃戝叧 List<ZbGateway> list = this.GetAllGatewayFromGateway(); - foreach (var way in list) - { - //灏嗘爣璇嗙疆涓篺alse - way.GatewayOnlineFlage = false; - } - //绛変釜2绉� - System.Threading.Thread.Sleep(2000); //2020.05.25杩藉姞:姝や綇瀹呮槸鍚︽嫢鏈夌綉鍏冲湪绾� var hadGwOnline = false; foreach (var way in list) { - if (dicOldOnline.ContainsKey(way.GwId) == true) + if (dicOldOnline.ContainsKey(way.GwId) == true + && this.CheckGatewayOnlineByFlage(way) == true) { - if (way.GatewayOnlineFlage == true) - { - //鏈変竴涓綉鍏冲湪绾�,鍗冲湪绾� - hadGwOnline = true; - break; - } + //鏈変竴涓綉鍏冲湪绾�,鍗冲湪绾� + hadGwOnline = true; + break; } } @@ -2265,7 +2311,8 @@ if (dicOldOnline.ContainsKey(gwId) == true) { //缃戝叧涔熶笉澶�,鐩存帴鎺ㄩ�佸惂 - this.PushGatewayOnlineStatuToForm(gwId, way.GatewayOnlineFlage, hadGwOnline); + bool online = this.CheckGatewayOnlineByFlage(way); + this.PushGatewayOnlineStatuToForm(gwId, online, hadGwOnline); } else { @@ -2281,7 +2328,7 @@ private void CheckGatewayStatuByRemote(Dictionary<string, bool> dicOldOnline) { //鑾峰彇浜戠涓婇潰鐨勭綉鍏� - Dictionary<string, GatewayResult> dicDbGateway = HdlGatewayLogic.Current.GetGateWayListFromDataBase(); + Dictionary<string, GatewayResult> dicDbGateway = this.GetGateWayListFromDataBase(); if (dicDbGateway == null) { //濡傛灉缃戠粶涓嶉��,鍒欎篃寰�涓嬭蛋 @@ -2337,7 +2384,7 @@ foreach (var zbway in this.dicGateway.Values) { //鑾峰彇鍓嶅洖鐨勫湪绾跨姸鎬� - dicOldOnline[zbway.GwId] = zbway.GatewayOnlineFlage; + dicOldOnline[zbway.GwId] = this.CheckGatewayOnlineByFlage(zbway); } return dicOldOnline; } @@ -2366,7 +2413,10 @@ if (zbway != null) { //鍒囨崲浣忓畢鏃�,杩欎釜涓滆タ鏈夊彲鑳芥槸null - zbway.GatewayOnlineFlage = online; + if (online == true) + { + zbway.OnlineTime = DateTime.Now; + } UserCenterResourse.DicActionForm[formId]?.GatewayOnlinePush(zbway, online, hadGwOnline); } } diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayReceiveLogic.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayReceiveLogic.cs index b912a16..a0e7eac 100755 --- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayReceiveLogic.cs +++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayReceiveLogic.cs @@ -33,6 +33,14 @@ } /// <summary> + /// 缃戝叧鎺ユ敹浜嬩欢(鍙傛暟1:涓婚 鍙傛暟2:鎺ㄩ�佹秷鎭�) + /// </summary> + private Action<string, string> GatewayReceiveEvent = null; + /// <summary> + /// 鎺ユ敹缃戝叧鐨刬d + /// </summary> + private string GatewayReceiveId = null; + /// <summary> /// 璁惧鎺ㄩ�佷簨浠堕泦鍚� /// </summary> private Dictionary<string, Action<CommonDevice>> dicDeviceEvent = new Dictionary<string, Action<CommonDevice>>(); @@ -194,6 +202,11 @@ else if (topic == gatewayId + "/Scene/Exec_Respon") { this.SceneExecPush(null); + } + //缃戝叧鎺ユ敹浜嬩欢 + else if (gatewayId == this.GatewayReceiveId) + { + this.GatewayReceiveEvent?.Invoke(topic, msgData); } } catch (Exception ex) @@ -1115,6 +1128,18 @@ } } + /// <summary> + /// 娣诲姞缃戝叧鎺ユ敹浜嬩欢(action鍙兘瀛樺湪涓�涓�,涓嶢ddAttributeEvent涓嶅叡瀛�,AddAttributeEvent浼樺厛) + /// </summary> + /// <param name="i_gatewayId">缃戝叧id</param> + /// <param name="action">鍙兘瀛樺湪涓�涓猘ction (鍙傛暟1:涓婚 鍙傛暟2:鎺ㄩ�佹秷鎭�)</param> + public void AddGatewayReceiveEvent(string i_gatewayId, Action<string, string> action) + { + //娣诲姞浜嬩欢 + this.GatewayReceiveEvent = action; + this.GatewayReceiveId = i_gatewayId; + } + #endregion #region 鈻� 绉婚櫎璁惧鐩戝惉_______________________ @@ -1158,6 +1183,15 @@ } } + /// <summary> + /// 绉婚櫎缃戝叧鎺ユ敹浜嬩欢(鍙兘瀛樺湪涓�涓簨浠�) + /// </summary> + public void RemoveGatewayReceiveEvent() + { + this.GatewayReceiveEvent = null; + this.GatewayReceiveId = null; + } + #endregion #region 鈻� 涓�鑸柟娉昣__________________________ diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlRoomLogic.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlRoomLogic.cs index 91c4949..e0c1f4e 100755 --- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlRoomLogic.cs +++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlRoomLogic.cs @@ -1061,6 +1061,258 @@ #endregion + #region 鈻� 鍙戦�佹埧闂翠俊鎭粰缃戝叧_________________ + + /// <summary> + /// 鍙戦�佹埧闂翠俊鎭粰缃戝叧 + /// </summary> + public void SetRoomInfoToGateway() + { + if (UserCenterResourse.UserInfo.AuthorityNo != 1 && UserCenterResourse.UserInfo.AuthorityNo != 2) + { + //涓嶆槸涓讳汉鍜岀鐞嗗憳,鍒欎笉澶勭悊 + return; + } + var realMain = ZbGateway.MainGateWay; + if (realMain == null || Common.Config.Instance.Home.IsVirtually == true) + { + //娌℃湁涓荤綉鍏�,鍒欎笉鐞� + return; + } + //鑾峰彇鎴块棿鍏ㄩ儴鐨勮澶囧璞� + string strSendDeviceRoomInfo = string.Empty; + foreach (var room in this.dicRooms.Values) + { + if (room.IsSharedRoom || room.IsLove) + { + continue; + } + var listDevice = this.GetRoomListDevice(room); + //鍙戦�佺粰缃戝叧鐨勮澶囨埧闂磈son + foreach (var device in listDevice) + { + if (strSendDeviceRoomInfo != string.Empty) + { + strSendDeviceRoomInfo += "\r\n"; + } + strSendDeviceRoomInfo += " " + this.SetDoublMark(device.DeviceAddr) + " "; + strSendDeviceRoomInfo += this.SetDoublMark("0x" + Convert.ToString(device.DeviceEpoint, 16).PadLeft(2, '0')) + " "; + strSendDeviceRoomInfo += this.SetDoublMark(LocalDevice.Current.GetDeviceEpointName(device).Replace(UserCenterResourse.douMarks, string.Empty)) + " "; + strSendDeviceRoomInfo += this.SetDoublMark(room.Id); + } + } + + var listAreaSpaceInfo = new List<AreaSpaceInfo>(); + //棣栧厛娣诲姞浣忓畢 + var houseInfo = new AreaSpaceInfo(); + houseInfo.name = Common.Config.Instance.Home.Name; + houseInfo.uid = Common.Config.Instance.Home.Id; + houseInfo.parentId = "null"; + listAreaSpaceInfo.Add(houseInfo); + //鐒跺悗娣诲姞妤煎眰 + foreach (var floorId in Common.Config.Instance.Home.FloorDics.Keys) + { + var floorInfo = new AreaSpaceInfo(); + floorInfo.name = Common.Config.Instance.Home.FloorDics[floorId]; + floorInfo.uid = floorId; + floorInfo.parentId = Common.Config.Instance.Home.Id; + listAreaSpaceInfo.Add(floorInfo); + } + //鐒跺悗娣诲姞鎴块棿 + var listRoom = this.GetAllListRooms(); + foreach (var room in listRoom) + { + if (room.IsLove == true) { continue; } + + var roomInfo = new AreaSpaceInfo(); + roomInfo.name = room.Name; + roomInfo.uid = room.Id; + if (Common.Config.Instance.Home.FloorDics.ContainsKey(room.FloorId) == true) + { + roomInfo.parentId = room.FloorId; + } + else + { + roomInfo.parentId = Common.Config.Instance.Home.Id; + } + listAreaSpaceInfo.Add(roomInfo); + } + //鐒跺悗娣诲姞缃戝叧鎴块棿淇℃伅 + var gatewayInfo = new GatewayAreaSpaceInfo(); + + var loaclGateway = HdlGatewayLogic.Current.GetLocalGateway(realMain.GwId); + if (loaclGateway == null || loaclGateway.GwMac == string.Empty) + { + //娌℃湁mac,鎴栬�呮壘涓嶅埌瀵硅薄,鍒欎笉涓婁紶 + return; + } + string gwMac = loaclGateway.GwMac.Replace(":", string.Empty); + gatewayInfo.uid = "000101" + gwMac.Substring(2) + "07"; + gatewayInfo.name = HdlGatewayLogic.Current.GetGatewayName(loaclGateway); + + var roomGateway = HdlGatewayLogic.Current.GetRoomByGateway(loaclGateway); + if (roomGateway != null) + { + gatewayInfo.parentId = roomGateway.Id; + } + gatewayInfo.hwInfo = new GatewayHwInfo(); + gatewayInfo.pkgInfo = new GatewayPkgInfo { version = loaclGateway.LinuxFirmwareVersion.ToString() }; + gatewayInfo.swInfo = new List<GatewaySwInfo> { new GatewaySwInfo { ver = loaclGateway.LinuxFirmwareVersion.ToString() } }; + gatewayInfo.ip = loaclGateway.GwIP; + gatewayInfo.mac = loaclGateway.GwMac; + + var data = new { spaces = listAreaSpaceInfo, gateway = gatewayInfo }; + string strSendRoomInfo = Newtonsoft.Json.JsonConvert.SerializeObject(data); + + HdlThreadLogic.Current.RunThread(async () => + { + //鍙戦�佽澶囧尯鍩熶俊鎭� + if (strSendDeviceRoomInfo != string.Empty) + { + //鍒涘缓鏂囦欢瀵硅薄 + var result0 = await realMain.CreateFileAsync("DeviceRoomInfo.json"); + if (result0 == null || result0.Result != 0) + { + return; + } + //鍙戦�佹暟鎹祦 + var byteData = ASCIIEncoding.UTF8.GetBytes(strSendDeviceRoomInfo); + var result1 = await realMain.SendFileAsync(byteData); + if (result1 == null || result1.Result != 0) + { + return; + } + + } + + //鍒涘缓鏂囦欢瀵硅薄 + var result3 = await realMain.CreateFileAsync("space.json"); + if (result3 == null || result3.Result != 0) + { + return; + } + + //鍙戦�佸尯鍩熶俊鎭� + var byteData2 = ASCIIEncoding.UTF8.GetBytes(strSendRoomInfo); + var result4 = await realMain.SendFileAsync(byteData2); + }); + } + + /// <summary> + /// 璁剧疆鍙屽紩鍙� + /// </summary> + /// <param name="i_text"></param> + /// <returns></returns> + private string SetDoublMark(string i_text) + { + return UserCenterResourse.douMarks + i_text + UserCenterResourse.douMarks; + } + + /// <summary> + /// 绌洪棿鍖哄煙淇℃伅 + /// </summary> + private class AreaSpaceInfo + { + /// <summary> + /// 浣忓畢ID 鎴栬�� 妤煎眰ID 鎴栬�� 鎴块棿ID + /// </summary> + public string uid = string.Empty; + /// <summary> + /// 浣忓畢鍚嶇О 鎴栬�� 妤煎眰鍚嶇О 鎴栬�� 鎴块棿鍚嶇О + /// </summary> + public string name = string.Empty; + /// <summary> + /// 褰撳墠ID鐨勭埗ID,濡傛灉娌℃湁,鍒欎负甯﹀弻寮曞彿鐨�"null" 姣斿 妤煎眰ID灏卞~浣忓畢ID 鎴块棿ID灏卞~妤煎眰ID + /// </summary> + public string parentId = string.Empty; + } + + /// <summary> + /// 缃戝叧绌洪棿鍖哄煙淇℃伅 + /// </summary> + private class GatewayAreaSpaceInfo + { + /// <summary> + /// 銆�000101銆�+缁戝畾缃戝叧鐨勬椂闂存埑杞�16杩涘埗+銆�07銆� + /// </summary> + public string uid = string.Empty; + /// <summary> + /// 杩欎釜鍥哄畾 + /// </summary> + public string name = "hdl_bus_gatway"; + /// <summary> + /// 缃戝叧鎵�鍦ㄧ殑鎴块棿ID + /// </summary> + public string parentId = string.Empty; + /// <summary> + /// 杩欎釜鍥哄畾 + /// </summary> + public int deviceType = 61184; + /// <summary> + /// 缃戝叧纭欢淇℃伅 + /// </summary> + public GatewayHwInfo hwInfo = null; + /// <summary> + /// 缃戝叧鏍囧噯淇℃伅 + /// </summary> + public GatewayPkgInfo pkgInfo = null; + /// <summary> + /// 缃戝叧鍥轰欢鐗堟湰 + /// </summary> + public List<GatewaySwInfo> swInfo = null; + /// <summary> + /// 缃戝叧IP + /// </summary> + public string ip = string.Empty; + /// <summary> + /// 缃戝叧鐨凪ac + /// </summary> + public string mac = string.Empty; + } + + /// <summary> + /// 缃戝叧纭欢淇℃伅 + /// </summary> + private class GatewayHwInfo + { + /// <summary> + /// 杩欎釜鍥哄畾 + /// </summary> + public string brand = "MIPS"; + /// <summary> + /// 杩欎釜鍥哄畾 + /// </summary> + public string model = "MT7688"; + } + + /// <summary> + /// 缃戝叧鏍囧噯淇℃伅 + /// </summary> + private class GatewayPkgInfo + { + /// <summary> + /// 杩欎釜鏄疞inux鐨勫浐浠剁増鏈� + /// </summary> + public string version = string.Empty; + } + + /// <summary> + /// 缃戝叧鍥轰欢鐗堟湰 + /// </summary> + private class GatewaySwInfo + { + /// <summary> + /// 杩欎釜鍥哄畾 + /// </summary> + public string name = "HDL"; + /// <summary> + /// 杩欎釜鏄疞inux鐨勫浐浠剁増鏈� + /// </summary> + public string ver = string.Empty; + } + + #endregion + #region 鈻� 鍏嬮殕鎴块棿瀵硅薄_______________________ /// <summary> diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlSceneLogic.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlSceneLogic.cs index c9d80ec..88eae1f 100755 --- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlSceneLogic.cs +++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlSceneLogic.cs @@ -82,6 +82,11 @@ /// <param name="useLocalConnect">鏄惁寮哄埗浣跨敤鏈湴杩炴帴鍙戦��</param> public bool RefreshSceneUIList(bool useLocalConnect) { + if (Config.Instance.Home.TemplateMode == 2 && Config.Instance.Home.SendTemplateSuccess == false) + { + //濡傛灉鏄湁妯℃澘鏈夎澶囨ā寮�,浣嗘槸杩樻病鏈夊鍏ユ垚鍔熺殑鎯呭喌涓�,涓嶅厑璁稿埛鏂板満鏅垪琛� + return true; + } //鑾峰彇缃戝叧瀛樺湪鐨勫満鏅� var sceneList = this.RefreshSceneListFromGateway(useLocalConnect); if (sceneList == null) @@ -247,9 +252,12 @@ //濡傛灉褰撳墠浣忓畢涓嶆槸铏氭嫙浣忓畢 if (Config.Instance.Home.IsVirtually == false) { + var mainWay = ZbGateway.MainGateWay; + if (mainWay == null) { return null; } + //鑾峰彇鏂板缓涓�涓満鏅殑鍛戒护瀛楃 var strCommand = this.GetAddNewSceneCommand(sceneName); - var result = HdlGatewayLogic.Current.SendJobjectDataToGateway(ZbGateway.MainGateWay, "Scene/GetNewId", strCommand, "Scene/GetNewId_Respon"); + var result = HdlGatewayLogic.Current.SendJobjectDataToGateway(mainWay.GwId, "Scene/GetNewId", strCommand, "Scene/GetNewId_Respon"); if (result.ErrorMsg != null) { this.ShowTipMsg(result.ErrorMsg); @@ -326,12 +334,14 @@ return listAdjustTarget; } var listSuccess = new List<Scene.DeviceListData>(); + var mainWay = ZbGateway.MainGateWay; + if (mainWay == null) { return listSuccess; } //鑾峰彇娣诲姞鎵ц鐩爣鍒板満鏅殑鍛戒护 var listCommand = this.GetAddTargetToSceneCommand(sceneId, listAdjustTarget); for (int i = 0; i < listCommand.Count; i++) { - var result = HdlGatewayLogic.Current.SendJobjectDataToGateway(ZbGateway.MainGateWay, "Scene/AddMember", listCommand[i], "Scene/AddMember_Respon"); + var result = HdlGatewayLogic.Current.SendJobjectDataToGateway(mainWay.GwId, "Scene/AddMember", listCommand[i], "Scene/AddMember_Respon"); if (result.ErrorMsg != null || result.ErrorMsgDiv == 0) { //鍑虹幇閿欒 @@ -965,12 +975,14 @@ listAdjustTarget.AddRange(i_scene.AdjustTargetList); return listAdjustTarget; } + var mainWay = ZbGateway.MainGateWay; + if (mainWay == null) { return null; } var jObject = new Newtonsoft.Json.Linq.JObject { { "Cluster_ID", 0 }, { "Command", 806 } }; var data = new Newtonsoft.Json.Linq.JObject { { "ScenesId", i_scene.Id } }; jObject.Add("Data", data); //鍙戦�佸懡浠� - var result = HdlGatewayLogic.Current.SendJobjectDataToGateway(ZbGateway.MainGateWay, "Scene/GetDeviceList", jObject.ToString(), "Scene/GetDeviceList_Respon"); + var result = HdlGatewayLogic.Current.SendJobjectDataToGateway(mainWay.GwId, "Scene/GetDeviceList", jObject.ToString(), "Scene/GetDeviceList_Respon"); if (result.ErrorMsg != null) { diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/AirConditioner/IndoorUnitSettionForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/AirConditioner/IndoorUnitSettionForm.cs index f1d4cca..c06b97a 100755 --- a/ZigbeeApp/Shared/Phone/UserCenter/Device/AirConditioner/IndoorUnitSettionForm.cs +++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/AirConditioner/IndoorUnitSettionForm.cs @@ -97,6 +97,7 @@ string caption = Language.StringByID(R.MyInternationalizationString.uDeviceNote); string nameValue = Common.LocalDevice.Current.GetDeviceEpointName(deviceAc); var btnNote = new FrameCaptionInputControl(caption, nameValue, listview.rowSpace / 2); + btnNote.txtInput.MaxByte = 48;//闄愬埗鍙兘杈撳叆48涓瓧鑺� listview.AddChidren(btnNote); btnNote.InitControl(); //鍒掔嚎 diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceAddSuccessForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceAddSuccessForm.cs index 9c7b1f1..d2d4fe5 100755 --- a/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceAddSuccessForm.cs +++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceAddSuccessForm.cs @@ -109,6 +109,7 @@ string caption = Language.StringByID(R.MyInternationalizationString.uDeviceNote); string deviceName = Common.LocalDevice.Current.GetDeviceMacName(listNewDevice[0]); this.btnNote = new FrameCaptionInputControl(caption, deviceName, listview.rowSpace / 2); + this.btnNote.txtInput.MaxByte = 48;//闄愬埗鍙兘杈撳叆48涓瓧鑺� listview.AddChidren(btnNote); btnNote.InitControl(); //鍒掔嚎 diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceDryContactSettionForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceDryContactSettionForm.cs index 56a24fa..baeecfd 100755 --- a/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceDryContactSettionForm.cs +++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceDryContactSettionForm.cs @@ -200,10 +200,10 @@ if (isHdlDevice == true) { //濡傛灉鏄�3璺户鐢靛櫒鎴栬��1璺皟鍏夊櫒,骞朵笖鏄涓冨洖璺殑鏃跺��,瀹冨ソ鍍忓彲浠ユ敼鍙樼被鍨� - //濡傛灉鏄鏍�14璺共鎺ョ偣灏忔ā鍧�,骞朵笖鏄涓冨洖璺殑鏃跺��,瀹冨ソ鍍忓彲浠ユ敼鍙樼被鍨� + //濡傛灉鏄�7璺共鎺ョ偣杈撳叆杈撳嚭妯″潡,骞朵笖鏄涓冨洖璺殑鏃跺��,瀹冨ソ鍍忓彲浠ユ敼鍙樼被鍨� if ((deviceEnumInfo.ConcreteType == DeviceConcreteType.Relay_ThreeLoad && nowSelectDevice.DeviceEpoint == 10) || (deviceEnumInfo.ConcreteType == DeviceConcreteType.DimmableLight_OneLoad && nowSelectDevice.DeviceEpoint == 7) - || (deviceEnumInfo.ConcreteType == DeviceConcreteType.Relay_EuropeanFourteenLoadDryContact && nowSelectDevice.DeviceEpoint == 7)) + || (deviceEnumInfo.ConcreteType == DeviceConcreteType.Relay_SevenLoadInOutPutDryContact && nowSelectDevice.DeviceEpoint == 7)) { //杩欓噷鍏堝幓鑾峰彇瀹冪殑骞叉帴鐐圭被鍨� this.ShowProgressBar(); @@ -430,7 +430,7 @@ || myType.ConcreteType == DeviceConcreteType.DimmableLight_OneLoad || myType.ConcreteType == DeviceConcreteType.Relay_NationalThreeLoadTenA || myType.ConcreteType == DeviceConcreteType.Relay_EuropeanTwoLoadFiveA - || myType.ConcreteType == DeviceConcreteType.Relay_EuropeanFourteenLoadDryContact) + || myType.ConcreteType == DeviceConcreteType.Relay_SevenLoadInOutPutDryContact) { //鑳屽厜鐏� string caption = Language.StringByID(R.MyInternationalizationString.uBackLight); @@ -445,9 +445,9 @@ { if (myType.ConcreteType == DeviceConcreteType.Relay_NationalThreeLoadTenA || myType.ConcreteType == DeviceConcreteType.Relay_EuropeanTwoLoadFiveA - || myType.ConcreteType == DeviceConcreteType.Relay_EuropeanFourteenLoadDryContact) + || myType.ConcreteType == DeviceConcreteType.Relay_SevenLoadInOutPutDryContact) { - //鍥芥爣3璺�10A缁х數鍣ㄥ皬妯″潡 鎴栬�� 娆ф爣2璺�5A缁х數鍣ㄥ皬妯″潡 鎴栬�� 娆ф爣14璺共鎺ョ偣灏忔ā鍧� + //鍥芥爣3璺�10A缁х數鍣ㄥ皬妯″潡 鎴栬�� 娆ф爣2璺�5A缁х數鍣ㄥ皬妯″潡 鎴栬�� 7璺共鎺ョ偣杈撳叆杈撳嚭妯″潡 var form = new DeviceRelay.RelayNationalBackLightSettionForm(); form.AddForm(deviceObj.DeviceAddr); } diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceListMainForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceListMainForm.cs index 6e555b0..7ab4139 100755 --- a/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceListMainForm.cs +++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceListMainForm.cs @@ -710,7 +710,7 @@ } //濡傛灉鏄湪绾跨殑 var nowGateway = HdlGatewayLogic.Current.GetLocalGateway(GatewayResourse.NowSelectGatewayId); - if (HdlGatewayLogic.Current.CheckGatewayOnlineByFlag(nowGateway) == true) + if (HdlGatewayLogic.Current.CheckGatewayOnlineByMemory(nowGateway) == true) { //妫�娴嬪箍鎾埌鐨勮繖涓綉鍏虫槸鍚︽嫢鏈変綇瀹匢D ZbGateway realWay = null; @@ -742,7 +742,7 @@ } //鑾峰彇鍏ㄩ儴璁惧 - int result = LocalDevice.Current.SetDeviceToMemmoryByGateway(nowGateway, false); + int result = LocalDevice.Current.SetDeviceToMemmoryByGateway(nowGateway.GwId, false); if (this.Parent == null) { return; @@ -783,7 +783,7 @@ { if (this.gatewayViewRow != null && this.gatewayViewRow.zbGatewayId == selectGwId) { - bool online = HdlGatewayLogic.Current.CheckGatewayOnlineByFlag(zbGateway); + bool online = HdlGatewayLogic.Current.CheckGatewayOnlineByMemory(zbGateway); //鍒锋柊鎺т欢鍦ㄧ嚎鐘舵�� this.gatewayViewRow?.RefreshOnlineStatu(); //鏍规嵁缃戝叧鍦ㄧ嚎鐘舵�佸埛鏂拌澶囧湪绾跨姸鎬� @@ -1271,7 +1271,7 @@ { btnName.Text = HdlGatewayLogic.Current.GetGatewayName(zbway); //鍦ㄧ嚎鐘舵�� - this.isOnline = HdlGatewayLogic.Current.CheckGatewayOnlineByFlag(zbway); + this.isOnline = HdlGatewayLogic.Current.CheckGatewayOnlineByMemory(zbway); if (this.isOnline == false) { btnName.TextColor = UserCenterColor.Current.TextGrayColor1; @@ -1340,7 +1340,7 @@ return; } //鍦ㄧ嚎鐘舵�� - bool statu = HdlGatewayLogic.Current.CheckGatewayOnlineByFlag(zbway); + bool statu = HdlGatewayLogic.Current.CheckGatewayOnlineByMemory(zbway); if (this.isOnline != statu) { this.isOnline = statu; diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceMacInfoEditorForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceMacInfoEditorForm.cs index 1d8bbf3..1c5f6ca 100755 --- a/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceMacInfoEditorForm.cs +++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceMacInfoEditorForm.cs @@ -1359,7 +1359,8 @@ { return; } - } catch (Exception ex) + } + catch (Exception ex) { var mess = ex.Message; } diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceSearchForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceSearchForm.cs index e29dbd2..ead44e9 100755 --- a/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceSearchForm.cs +++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceSearchForm.cs @@ -163,7 +163,7 @@ return; } //鏍规嵁璁惧Type鍒涘缓瀵瑰簲鐨勮澶囧璞� - var device = Common.LocalDevice.Current.NewDeviceObjectByDeviceId((DeviceType)jobject.Value<int>("Device_ID")); + var device = Common.LocalDevice.Current.NewDeviceObjectByDeviceId((DeviceType)jobject.Value<int>("Device_ID"), jobject.Value<int>("Epoint")); if (device == null) { return; diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/Direction/AddDeviceTypeListForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/Direction/AddDeviceTypeListForm.cs index 602e1b1..1661741 100755 --- a/ZigbeeApp/Shared/Phone/UserCenter/Device/Direction/AddDeviceTypeListForm.cs +++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/Direction/AddDeviceTypeListForm.cs @@ -20,10 +20,6 @@ /// 褰撳墠缃戝叧瀵硅薄 /// </summary> private ZbGateway zbGateway = null; - /// <summary> - /// mini缃戝叧鏄惁鑳藉娣诲姞璁惧 - /// </summary> - private bool MiniGatewayCanAddDevice = true; #endregion @@ -37,17 +33,10 @@ //璁惧畾鏍囬 base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uDeviceType)); + //鍒濆鍖栦腑閮ㄦ帶浠� + this.InitMiddleFrame(); + this.zbGateway = HdlGatewayLogic.Current.GetLocalGateway(GatewayResourse.AppOldSelectGatewayId); - if (zbGateway != null && zbGateway.LinuxImageType == 11) - { - //鍒濆鍖朚ini缃戝叧鐨勭晫闈� - this.InitControlByMiniGateway(); - } - else - { - //鍒濆鍖栦腑閮ㄦ帶浠� - this.InitMiddleFrame(); - } } /// <summary> @@ -221,14 +210,25 @@ var rowThrid = this.AddMenuRow(objectText, unSelectPic, string.Empty, false); rowThrid.ButtonClickEvent += (sender, e) => { - if (this.MiniGatewayCanAddDevice == false) + rowThrid.CanClick = false; + HdlThreadLogic.Current.RunThread(() => { - //Mini缃戝叧鏈�澶у彧鑳芥坊鍔�16涓澶� - this.ShowMassage(ShowMsgType.Tip, Language.StringByID(R.MyInternationalizationString.uMiniGatewayMaxDeviceCountMsg)); - return; - } - var form = new Device.DeviceSearchForm(); - form.AddForm(string.Empty); + //妫�娴嬬綉鍏� + var errorMsg = this.CheckGateway(); + HdlThreadLogic.Current.RunMain(() => + { + rowThrid.CanClick = true; + if (errorMsg != null) + { + this.ShowMassage(ShowMsgType.Tip, errorMsg); + } + else + { + var form = new Device.DeviceSearchForm(); + form.AddForm(string.Empty); + } + }); + }); }; //璋冩暣鍒楄〃鎺т欢鐨勯珮搴� @@ -237,52 +237,46 @@ #endregion - #region 鈻� mini缃戝叧___________________________ + #region 鈻� 妫�娴嬬綉鍏砡__________________________ /// <summary> - /// 鍒濆鍖朚ini缃戝叧鐨勭晫闈� + /// 妫�娴嬬綉鍏�(杩斿洖閿欒淇℃伅,null浠h〃娌¢棶棰�) /// </summary> - private void InitControlByMiniGateway() + private string CheckGateway() { - //mini澶滅伅鍙兘闄愬埗鍔犲叆16鍜岃澶� - this.ShowProgressBar(); + if (zbGateway != null && zbGateway.LinuxImageType == 11) + { + //mini澶滅伅鍙兘闄愬埗鍔犲叆16鍜岃澶� + this.ShowProgressBar(); - HdlThreadLogic.Current.RunThread(() => - { int statu = 0; //閲嶆柊鑾峰彇璁惧鍒楄〃 - var listDevice = Common.LocalDevice.Current.GetDeviceListFromGateway(zbGateway, ref statu, true, ShowErrorMode.NO); - this.CloseProgressBar(); - - HdlThreadLogic.Current.RunMain(() => + var listDevice = Common.LocalDevice.Current.GetDeviceListFromGateway(zbGateway.GwId, ref statu, true, ShowErrorMode.NO); + if (statu != 1) { - if (statu != 1) - { - listDevice = Common.LocalDevice.Current.GetDeviceByGatewayID(zbGateway.GwId); - } - //妫�娴媘ini缃戝叧鐨勮澶囨暟 - this.CheckMiniGatewayDeviceCount(listDevice); - //鍒濆鍖栫晫闈� - this.InitMiddleFrame(); - }); - }); - } - - /// <summary> - /// 妫�娴媘ini缃戝叧鐨勮澶囨暟 - /// </summary> - /// <param name="listDevice"></param> - private void CheckMiniGatewayDeviceCount(List<CommonDevice> listDevice) - { - var listMac = new HashSet<string>(); - foreach (var device in listDevice) - { - if (listMac.Contains(device.DeviceAddr) == false) - { - listMac.Add(device.DeviceAddr); + //濡傛灉 + listDevice = Common.LocalDevice.Current.GetDeviceByGatewayID(zbGateway.GwId); } - } - MiniGatewayCanAddDevice = listMac.Count < 16; + //妫�娴媘ini缃戝叧鐨勮澶囨暟 + var listMac = new HashSet<string>(); + foreach (var device in listDevice) + { + if (listMac.Contains(device.DeviceAddr) == false) + { + listMac.Add(device.DeviceAddr); + } + } + this.CloseProgressBar(); + + bool canAdd = listMac.Count < 16; + if (canAdd == false) + { + //Mini缃戝叧鏈�澶у彧鑳芥坊鍔�16涓澶� + return Language.StringByID(R.MyInternationalizationString.uMiniGatewayMaxDeviceCountMsg); + } + } + + return null; } #endregion @@ -316,14 +310,25 @@ { rowLayout.ButtonClickEvent += (sender, e) => { - if (this.MiniGatewayCanAddDevice == false) + rowLayout.CanClick = false; + HdlThreadLogic.Current.RunThread(() => { - //Mini缃戝叧鏈�澶у彧鑳芥坊鍔�16涓澶� - this.ShowMassage(ShowMsgType.Tip, Language.StringByID(R.MyInternationalizationString.uMiniGatewayMaxDeviceCountMsg)); - return; - } - //鍙嶅皠鐩爣鐣岄潰 - this.LoadFormByFullName("Shared.Phone.UserCenter.DeviceDirection." + formName); + //妫�娴嬬綉鍏� + var errorMsg = this.CheckGateway(); + HdlThreadLogic.Current.RunMain(() => + { + rowLayout.CanClick = true; + if (errorMsg != null) + { + this.ShowMassage(ShowMsgType.Tip, errorMsg); + } + else + { + //鍙嶅皠鐩爣鐣岄潰 + this.LoadFormByFullName("Shared.Phone.UserCenter.DeviceDirection." + formName); + } + }); + }); }; } diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/Light/MiniNightLightFunctionSettionForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/Light/MiniNightLightFunctionSettionForm.cs index 9ad3a8f..6bab0d1 100755 --- a/ZigbeeApp/Shared/Phone/UserCenter/Device/Light/MiniNightLightFunctionSettionForm.cs +++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/Light/MiniNightLightFunctionSettionForm.cs @@ -63,6 +63,7 @@ string caption = Language.StringByID(R.MyInternationalizationString.uDeviceEpointNote); string nameValue = Common.LocalDevice.Current.GetDeviceEpointName(this.device); var btnDeviceName = new FrameCaptionInputControl(caption, nameValue, listview.rowSpace / 2); + btnDeviceName.txtInput.MaxByte = 48;//闄愬埗鍙兘杈撳叆48涓瓧鑺� listview.AddChidren(btnDeviceName); btnDeviceName.InitControl(); btnDeviceName.AddBottomLine(); diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/DataCorrectionForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/DataCorrectionForm.cs index a3e829a..591b6fa 100755 --- a/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/DataCorrectionForm.cs +++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/DataCorrectionForm.cs @@ -153,12 +153,14 @@ { devicePic.UnSelectedImagePath = "Device/SensorTemperature.png"; btnName.Text = Language.StringByID(R.MyInternationalizationString.Temperature) + " (鈩�)"; + invalidText1 = btnNum.Text; } else { line2.Visible = false; devicePic.UnSelectedImagePath = "Device/SensorHumidity.png"; btnName.Text = Language.StringByID(R.MyInternationalizationString.Humidity) + " (%)"; + invalidText2 = btnNum.Text; } btnNum.TextChangeEventHandler += (sender, e) => diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelButtonSettionForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelButtonSettionForm.cs index 1f40a4c..f0a684e 100755 --- a/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelButtonSettionForm.cs +++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelButtonSettionForm.cs @@ -149,6 +149,7 @@ //鎸夐敭澶囨敞 string caption = Language.StringByID(R.MyInternationalizationString.uPanelButtonNote); this.btnDeviceName = new FrameCaptionInputControl(caption, nameValue, listview.rowSpace / 2); + btnDeviceName.txtInput.MaxByte = 48;//闄愬埗鍙兘杈撳叆48涓瓧鑺� listview.AddChidren(btnDeviceName); btnDeviceName.InitControl(); btnDeviceName.AddBottomLine(); diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelFangyueButtonSettionForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelFangyueButtonSettionForm.cs index 1c7e010..324a976 100755 --- a/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelFangyueButtonSettionForm.cs +++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelFangyueButtonSettionForm.cs @@ -137,6 +137,7 @@ //鎸夐敭澶囨敞 string caption = Language.StringByID(R.MyInternationalizationString.uPanelButtonNote); this.btnDeviceName = new FrameCaptionInputControl(caption, nameValue, listview.rowSpace / 2); + this.btnDeviceName.txtInput.MaxByte = 48;//闄愬埗鍙兘杈撳叆48涓瓧鑺� listview.AddChidren(btnDeviceName); btnDeviceName.InitControl(); btnDeviceName.AddBottomLine(); diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelFangyueFunctionSettionForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelFangyueFunctionSettionForm.cs index bebb777..056522a 100755 --- a/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelFangyueFunctionSettionForm.cs +++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelFangyueFunctionSettionForm.cs @@ -137,6 +137,7 @@ } this.btnDeviceName = new FrameCaptionInputControl(caption, nameValue, listview.rowSpace / 2); + this.btnDeviceName.txtInput.MaxByte = 48;//闄愬埗鍙兘杈撳叆48涓瓧鑺� listview.AddChidren(btnDeviceName); btnDeviceName.InitControl(); btnDeviceName.AddBottomLine(); diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelFunctionSettionForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelFunctionSettionForm.cs index b355398..fba00d3 100755 --- a/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelFunctionSettionForm.cs +++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelFunctionSettionForm.cs @@ -136,6 +136,7 @@ } this.btnDeviceName = new FrameCaptionInputControl(caption, nameValue, listview.rowSpace / 2); + this.btnDeviceName.txtInput.MaxByte = 48;//闄愬埗鍙兘杈撳叆48涓瓧鑺� listview.AddChidren(btnDeviceName); btnDeviceName.InitControl(); btnDeviceName.AddBottomLine(); diff --git a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/FunctionSetting.cs b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/FunctionSetting.cs index 8d69a71..eb1ccdc 100755 --- a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/FunctionSetting.cs +++ b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/FunctionSetting.cs @@ -153,6 +153,7 @@ string caption = Language.StringByID(R.MyInternationalizationString.DeviceRemarkXm); string deviceName = Common.LocalDevice.Current.GetDeviceMacName(doorLock); var btnNote = new FrameCaptionInputControl(caption, deviceName, listview.rowSpace / 2); + btnNote.txtInput.MaxByte = 48;//闄愬埗鍙兘杈撳叆48涓瓧鑺� listview.AddChidren(btnNote); btnNote.InitControl(); //鍒掔嚎 diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Gateway/Add/MiniGatewaySearchForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Gateway/Add/MiniGatewaySearchForm.cs index 2e352c0..d4db8a5 100755 --- a/ZigbeeApp/Shared/Phone/UserCenter/Gateway/Add/MiniGatewaySearchForm.cs +++ b/ZigbeeApp/Shared/Phone/UserCenter/Gateway/Add/MiniGatewaySearchForm.cs @@ -417,7 +417,7 @@ if (mode == GatewayBindMode.First || mode == GatewayBindMode.Binded) { //鎴戣寰楄繖閲岄渶瑕佽幏鍙栦竴涓嬫柊缃戝叧鐨勮澶囧垪琛� - Common.LocalDevice.Current.SetDeviceToMemmoryByGateway(way, true); + Common.LocalDevice.Current.SetDeviceToMemmoryByGateway(way.GwId, true); if (way.IsMainGateWay == true) { //濡傛灉瀹冩槸涓荤綉鍏�,鍒欏埛鏂板満鏅垪琛� diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Gateway/Add/WiredGatewaySearchForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Gateway/Add/WiredGatewaySearchForm.cs index 12d4cdf..86c7e3c 100755 --- a/ZigbeeApp/Shared/Phone/UserCenter/Gateway/Add/WiredGatewaySearchForm.cs +++ b/ZigbeeApp/Shared/Phone/UserCenter/Gateway/Add/WiredGatewaySearchForm.cs @@ -425,7 +425,7 @@ if (mode == GatewayBindMode.First || mode == GatewayBindMode.Binded) { //鎴戣寰楄繖閲岄渶瑕佽幏鍙栦竴涓嬫柊缃戝叧鐨勮澶囧垪琛� - Common.LocalDevice.Current.SetDeviceToMemmoryByGateway(way, true); + Common.LocalDevice.Current.SetDeviceToMemmoryByGateway(way.GwId, true); if (way.IsMainGateWay == true) { //濡傛灉瀹冩槸涓荤綉鍏�,鍒欏埛鏂板満鏅垪琛� diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Gateway/Add/WirelessApSearchForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Gateway/Add/WirelessApSearchForm.cs index fdd4faf..10c6f79 100755 --- a/ZigbeeApp/Shared/Phone/UserCenter/Gateway/Add/WirelessApSearchForm.cs +++ b/ZigbeeApp/Shared/Phone/UserCenter/Gateway/Add/WirelessApSearchForm.cs @@ -413,7 +413,7 @@ if (mode == GatewayBindMode.First || mode == GatewayBindMode.Binded) { //鎴戣寰楄繖閲岄渶瑕佽幏鍙栦竴涓嬫柊缃戝叧鐨勮澶囧垪琛� - Common.LocalDevice.Current.SetDeviceToMemmoryByGateway(way, true); + Common.LocalDevice.Current.SetDeviceToMemmoryByGateway(way.GwId, true); if (way.IsMainGateWay == true) { //濡傛灉瀹冩槸涓荤綉鍏�,鍒欏埛鏂板満鏅垪琛� diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Gateway/Add/WirelessUdpSearchForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Gateway/Add/WirelessUdpSearchForm.cs index 9e17a7c..b3e43a9 100755 --- a/ZigbeeApp/Shared/Phone/UserCenter/Gateway/Add/WirelessUdpSearchForm.cs +++ b/ZigbeeApp/Shared/Phone/UserCenter/Gateway/Add/WirelessUdpSearchForm.cs @@ -413,7 +413,7 @@ if (mode == GatewayBindMode.First || mode == GatewayBindMode.Binded) { //鎴戣寰楄繖閲岄渶瑕佽幏鍙栦竴涓嬫柊缃戝叧鐨勮澶囧垪琛� - Common.LocalDevice.Current.SetDeviceToMemmoryByGateway(way, true); + Common.LocalDevice.Current.SetDeviceToMemmoryByGateway(way.GwId, true); if (way.IsMainGateWay == true) { //濡傛灉瀹冩槸涓荤綉鍏�,鍒欏埛鏂板満鏅垪琛� diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Gateway/Manage/GatewayInfoEditorForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Gateway/Manage/GatewayInfoEditorForm.cs index 8236ea9..8ecc85c 100755 --- a/ZigbeeApp/Shared/Phone/UserCenter/Gateway/Manage/GatewayInfoEditorForm.cs +++ b/ZigbeeApp/Shared/Phone/UserCenter/Gateway/Manage/GatewayInfoEditorForm.cs @@ -70,6 +70,7 @@ string caption = Language.StringByID(R.MyInternationalizationString.uDeviceNote); string nameValue = HdlGatewayLogic.Current.GetGatewayName(zbGateway); var btnNote = new FrameCaptionInputControl(caption, nameValue, listview.rowSpace / 2); + btnNote.txtInput.MaxByte = 48;//闄愬埗鍙兘杈撳叆48涓瓧鑺� listview.AddChidren(btnNote); btnNote.InitControl(); //鍒掔嚎 diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Gateway/Manage/GatewayListForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Gateway/Manage/GatewayListForm.cs index 0277750..8be5933 100755 --- a/ZigbeeApp/Shared/Phone/UserCenter/Gateway/Manage/GatewayListForm.cs +++ b/ZigbeeApp/Shared/Phone/UserCenter/Gateway/Manage/GatewayListForm.cs @@ -355,7 +355,7 @@ { return; } - bool online = HdlGatewayLogic.Current.CheckGatewayOnlineByFlag(way); + bool online = HdlGatewayLogic.Current.CheckGatewayOnlineByMemory(way); this.GatewayOnlinePush(way, online, true); } //缃戝叧鏂扮増鏈娴� @@ -401,7 +401,7 @@ { return; } - if (HdlGatewayLogic.Current.CheckGatewayOnlineByFlag(way) == false) + if (HdlGatewayLogic.Current.CheckGatewayOnlineByMemory(way) == false) { //涓嶅湪绾跨殑涓嶇敤鐞嗗畠 continue; diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Gateway/Manage/GatewayProductInfoForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Gateway/Manage/GatewayProductInfoForm.cs index 408c6e2..7e242da 100755 --- a/ZigbeeApp/Shared/Phone/UserCenter/Gateway/Manage/GatewayProductInfoForm.cs +++ b/ZigbeeApp/Shared/Phone/UserCenter/Gateway/Manage/GatewayProductInfoForm.cs @@ -94,6 +94,7 @@ if (gateWayExist == true) { btnGateName = new FrameCaptionInputControl(caption, deviceName, listview.rowSpace / 2); + btnGateName.txtInput.MaxByte = 48;//闄愬埗鍙兘杈撳叆48涓瓧鑺� listview.AddChidren(btnGateName); btnGateName.InitControl(); //鍒掔嚎 diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Gateway/Manage/GatewayRebindForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Gateway/Manage/GatewayRebindForm.cs index 5411559..8d531c6 100755 --- a/ZigbeeApp/Shared/Phone/UserCenter/Gateway/Manage/GatewayRebindForm.cs +++ b/ZigbeeApp/Shared/Phone/UserCenter/Gateway/Manage/GatewayRebindForm.cs @@ -49,7 +49,7 @@ //鎴愬姛 i_dicZbGatewayDiv[i_gateway.GwId] = 1; //鎴戣寰楄繖閲岄渶瑕佽幏鍙栦竴涓嬫柊缃戝叧鐨勮澶囧垪琛� - Common.LocalDevice.Current.SetDeviceToMemmoryByGateway(i_gateway, true); + Common.LocalDevice.Current.SetDeviceToMemmoryByGateway(i_gateway.GwId, true); if (i_gateway.IsMainGateWay == true) { //濡傛灉瀹冩槸涓荤綉鍏�,鍒欏埛鏂板満鏅垪琛� diff --git a/ZigbeeApp/Shared/Phone/UserCenter/HdlBackup/HdlAutoBackupForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/HdlBackup/HdlAutoBackupForm.cs index 7ee799c..31bf22d 100755 --- a/ZigbeeApp/Shared/Phone/UserCenter/HdlBackup/HdlAutoBackupForm.cs +++ b/ZigbeeApp/Shared/Phone/UserCenter/HdlBackup/HdlAutoBackupForm.cs @@ -37,7 +37,7 @@ bodyFrameLayout.Height = ControlCommonResourse.TopMenuFrameHeight + ControlCommonResourse.TopFrameHeight + ControlCommonResourse.BodyFrameHeight; - var btnPic = new NormalViewControl(991, 438, true); + var btnPic = new PicViewControl(991, 438, true); btnPic.UnSelectedImagePath = "Item/AutoBackup.png"; btnPic.Y = Application.GetRealHeight(374); bodyFrameLayout.AddChidren(btnPic); @@ -100,7 +100,8 @@ bodyFrameLayout.AddChidren(btnRemind); btnRemind.ButtonClickEvent += (sender, e) => { - HdlAutoBackupLogic.SaveBackupNotPrompted(false, 3); + //涓�澶╀箣鍐呬笉鍐嶆彁閱� + HdlAutoBackupLogic.SaveBackupNotPrompted(false, 1); this.CloseForm(); }; } @@ -114,7 +115,7 @@ /// </summary> private void UpLoadBackupInfo() { - int result = HdlAutoBackupLogic.DoUpLoadAutoBackupData(); + int result = HdlAutoBackupLogic.DoUpLoadAutoBackupDataByHand(); if (result == -1) { //鏂囦欢涓婁紶澶辫触 diff --git a/ZigbeeApp/Shared/Phone/UserCenter/HdlBackup/HdlBackupListForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/HdlBackup/HdlBackupListForm.cs index acd82a6..bf22b16 100755 --- a/ZigbeeApp/Shared/Phone/UserCenter/HdlBackup/HdlBackupListForm.cs +++ b/ZigbeeApp/Shared/Phone/UserCenter/HdlBackup/HdlBackupListForm.cs @@ -365,7 +365,7 @@ { HdlThreadLogic.Current.RunThread(() => { - int result = HdlAutoBackupLogic.DoUpLoadAutoBackupData(); + int result = HdlAutoBackupLogic.DoUpLoadAutoBackupDataByHand(); if (result == -1) { //鏂囦欢涓婁紶澶辫触 diff --git a/ZigbeeApp/Shared/Phone/UserCenter/HideOption/HideOptionMainForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/HideOption/HideOptionMainForm.cs index 564ee91..625a70e 100755 --- a/ZigbeeApp/Shared/Phone/UserCenter/HideOption/HideOptionMainForm.cs +++ b/ZigbeeApp/Shared/Phone/UserCenter/HideOption/HideOptionMainForm.cs @@ -300,6 +300,18 @@ row1 = new FrameRowControl(listView.rowSpace / 2); listView.AddChidren(row1); + row1.AddLeftCaption("浣跨敤鏃х殑璁惧鑾峰彇鏂瑰紡", 600); + row1.AddBottomLine(); + var btnSwitchDeviceMethord = row1.AddMostRightSwitchIcon(); + btnSwitchDeviceMethord.IsSelected = UserCenterResourse.HideOption.UseOldSearchDeviceMethord == 1; + btnSwitchDeviceMethord.ButtonClickEvent += (sender, e) => + { + btnSwitchDeviceMethord.IsSelected = !btnSwitchDeviceMethord.IsSelected; + UserCenterResourse.HideOption.UseOldSearchDeviceMethord = btnSwitchDeviceMethord.IsSelected == true ? 1 : 0; + }; + + row1 = new FrameRowControl(listView.rowSpace / 2); + listView.AddChidren(row1); row1.AddLeftCaption("閲嶇疆瀵煎叆鏍囪瘑", 500); row1.AddRightArrow(); row1.AddBottomLine(); diff --git a/ZigbeeApp/Shared/Phone/UserCenter/HideOption/HideOptionSearchAllFile.cs b/ZigbeeApp/Shared/Phone/UserCenter/HideOption/HideOptionSearchAllFile.cs index 74bfc7b..3e3b151 100644 --- a/ZigbeeApp/Shared/Phone/UserCenter/HideOption/HideOptionSearchAllFile.cs +++ b/ZigbeeApp/Shared/Phone/UserCenter/HideOption/HideOptionSearchAllFile.cs @@ -214,7 +214,7 @@ btnReName.ButtonClickEvent += (sender, e) => { //鐢熸垚涓�涓脊绐楃敾闈� - var dialogForm = new DialogInputControl(); + var dialogForm = new DialogInputControl(360); //淇濆瓨妯℃澘鍒癆pp dialogForm.SetTitleText("閲嶅懡鍚�"); //璇疯緭鍏ユ柊鍚嶅瓧 diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Residence/FloorListRoomForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Residence/FloorListRoomForm.cs index 62f2ef3..ca590d6 100755 --- a/ZigbeeApp/Shared/Phone/UserCenter/Residence/FloorListRoomForm.cs +++ b/ZigbeeApp/Shared/Phone/UserCenter/Residence/FloorListRoomForm.cs @@ -157,6 +157,12 @@ //璋冩暣楂樺害 frameRow.RemoveFromParent(); listView.AdjustRealHeight(Application.GetRealHeight(23)); + + if (room.ListDevice.Count > 0) + { + //涓婁紶绌洪棿鍖哄煙淇℃伅 + HdlRoomLogic.Current.SetRoomInfoToGateway(); + } }); }; } diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Residence/ResidenceManagementForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Residence/ResidenceManagementForm.cs index 76cb9dc..77b8271 100755 --- a/ZigbeeApp/Shared/Phone/UserCenter/Residence/ResidenceManagementForm.cs +++ b/ZigbeeApp/Shared/Phone/UserCenter/Residence/ResidenceManagementForm.cs @@ -364,6 +364,7 @@ //鍒犻櫎褰撳墠妤煎眰鐨勮瘽,闇�瑕佸幓鍒锋柊涓婚〉宸﹁竟鐨勬埧闂村垪琛� HdlRoomLogic.Current.RefreshRoomListView(); } + var uploadRoom = false; var listDeleteId = new List<string>(); var listAllRoom = HdlRoomLogic.Current.GetAllListRooms(); for (int i = 0; i < listAllRoom.Count; i++) @@ -371,6 +372,11 @@ if (listAllRoom[i].FloorId == keys) { listDeleteId.Add(listAllRoom[i].Id); + } + if (listAllRoom[i].ListDevice.Count > 0) + { + //闇�瑕佷笂浼犵┖闂村尯鍩� + uploadRoom = true; } } //鍒犻櫎鎴块棿 @@ -405,6 +411,11 @@ frameRow.RemoveFromParent(); //璋冩暣妗屽竷楂樺害 this.AdjustContrlTableHeight(); + } + if (uploadRoom == true) + { + //涓婁紶绌洪棿鍖哄煙淇℃伅 + HdlRoomLogic.Current.SetRoomInfoToGateway(); } //鍒犻櫎妤煎眰鐨勮瘽,涓婚〉闇�瑕侀噸鏂板埛鏂� UserView.UserPage.Instance.RefreshAllForm = true; @@ -625,6 +636,11 @@ //璋冩暣妗屽竷楂樺害 this.AdjustContrlTableHeight(); } + if (room.ListDevice.Count > 0) + { + //涓婁紶绌洪棿鍖哄煙淇℃伅 + HdlRoomLogic.Current.SetRoomInfoToGateway(); + } //鍒犻櫎鎴块棿鐨勮瘽,涓婚〉闇�瑕侀噸鏂板埛鏂� UserView.UserPage.Instance.RefreshAllForm = true; }); diff --git a/ZigbeeApp/Shared/Phone/ZigBee/Common/Application.cs b/ZigbeeApp/Shared/Phone/ZigBee/Common/Application.cs index ca6fd17..beab8a5 100755 --- a/ZigbeeApp/Shared/Phone/ZigBee/Common/Application.cs +++ b/ZigbeeApp/Shared/Phone/ZigBee/Common/Application.cs @@ -64,7 +64,6 @@ { new System.Threading.Thread(() => { - var searchCount = 3; var broadBytes = new byte[44];// byteHomeId[0] ,//H broadBytes[0] = 0xfe; broadBytes[1] = 0x29; @@ -85,57 +84,30 @@ } var broadcastIpAddress = new Shared.Net.NetWiFi().BroadcastIpAddress; - if (Shared.Application.IsWifi) + + //娓呯┖鎺ユ敹鍒扮殑IP + listReceiveIP.Clear(); + if (broadcastIpAddress.ToString() != "0.0.0.0") { - if (0 < listReceiveIP.Count) - { - searchCount = 3; - ZbGateway.IsRemote = false; - //褰撶綉鍏崇殑杩炴帴鏂瑰紡鏀瑰彉鏃�,璁板綍褰撳墠鐨勮繛鎺ユ柟寮� - Shared.Phone.UserCenter.HdlGatewayLogic.Current.CheckGatewayByConnectChanged(Shared.Phone.UserCenter.GatewayConnectMode.WIFI); - } - else - { - if (searchCount < 0) - { - ZbGateway.IsRemote = true; - //褰撶綉鍏崇殑杩炴帴鏂瑰紡鏀瑰彉鏃�,璁板綍褰撳墠鐨勮繛鎺ユ柟寮� - Shared.Phone.UserCenter.HdlGatewayLogic.Current.CheckGatewayByConnectChanged(Shared.Phone.UserCenter.GatewayConnectMode.Remote); - } - } + //骞挎挱鍑哄幓 + FindGateWaySocket.BeginSend(new System.Net.IPEndPoint(broadcastIpAddress, 7624), broadBytes); + } + //绛夊緟3绉�,涓嬮潰鐨勬帴鏀舵柟娉曚細鍘绘帴鏀跺箍鎾� + System.Threading.Thread.Sleep(3000); + + if (listReceiveIP.Count > 0) + { + //灞�鍩熺綉鑳藉骞挎挱寰楀埌缃戝叧 + ZbGateway.IsRemote = false; + //褰撶綉鍏崇殑杩炴帴鏂瑰紡鏀瑰彉鏃�,璁板綍褰撳墠鐨勮繛鎺ユ柟寮� + Shared.Phone.UserCenter.HdlGatewayLogic.Current.CheckGatewayByConnectChanged(Shared.Phone.UserCenter.GatewayConnectMode.WIFI); } else { + //灞�鍩熺綉骞挎挱涓嶅埌缃戝叧 ZbGateway.IsRemote = true; //褰撶綉鍏崇殑杩炴帴鏂瑰紡鏀瑰彉鏃�,璁板綍褰撳墠鐨勮繛鎺ユ柟寮� Shared.Phone.UserCenter.HdlGatewayLogic.Current.CheckGatewayByConnectChanged(Shared.Phone.UserCenter.GatewayConnectMode.Remote); - - for (int i = 0; i < ZbGateway.GateWayList.Count; i++) - { - ZbGateway.GateWayList[i].DisConnectLocalMqttClient("1"); - } - //闈瀢ifi鎯呭喌涓�,涓嶉渶瑕佸箍鎾� - System.Threading.Thread.Sleep(1000); - continue; - } - searchCount--; - - //姣忕骞挎挱鍙戠幇涓�娆$綉鍏� - int count = 2; - listReceiveIP.Clear(); - while (0 < count--) - { - //鐐瑰鐐瑰彂閫�(鍏堝彂涓�鏉″凡鏈夌殑鐐规挱锛屽洖澶嶅嚑鐜囬珮涓�鐐癸級 - for (int i = 0; i < listReceiveIP.Count; i++) - { - FindGateWaySocket.BeginSend(new System.Net.IPEndPoint(System.Net.IPAddress.Parse(listReceiveIP[i]), 7624), broadBytes); - } - //骞挎挱鍙戦�� - if (broadcastIpAddress.ToString() != "0.0.0.0") - { - FindGateWaySocket.BeginSend(new System.Net.IPEndPoint(broadcastIpAddress, 7624), broadBytes); - } - System.Threading.Thread.Sleep(1000); } } catch { } @@ -190,7 +162,6 @@ HomeId = homeID, IsMainGateWay = isMainGateWay, GwId = id, - GatewayOnlineFlage = true, PubKey = pubKey }; //閫氳鍒扮綉鍏冲垪琛� @@ -216,6 +187,7 @@ var gateWay = ZbGateway.GateWayList.Find(obj => obj.GwId == zbGateWay.GwId); if (gateWay == null) { + zbGateWay.OnlineTime = DateTime.Now; ZbGateway.GateWayList.Add(zbGateWay); await zbGateWay.StartLocalMqtt(ipAddress); } @@ -223,7 +195,7 @@ { gateWay.IsVirtual = false; //灏嗚缃戝叧鏍囪瘑涓恒�愬彲鎼滅储鍒帮紝鍗筹細鍦ㄧ嚎銆� - gateWay.GatewayOnlineFlage = true; + gateWay.OnlineTime = DateTime.Now; if (gateWay.GwIP != ipAddress) { await gateWay.DisConnectLocalMqttClient("2"); @@ -368,8 +340,10 @@ } list.Clear(); oldHomeID = Shared.Common.Config.Instance.HomeId; + var tempBytes = System.Text.Encoding.UTF8.GetBytes(Shared.Common.Config.Instance.HomeId); System.Array.Copy(tempBytes, 0, broadBytes, 7, 36 < tempBytes.Length ? 36 : tempBytes.Length); + //浣忓畢涓凡缁忓瓨鍦ㄧ殑缃戝叧濡傛灉灞�鍩熺綉涓嶅瓨鍦紝闇�瑕佸湪褰撳墠浣忓畢涓櫄鎷熶竴涓綉鍏矷D鐩稿悓鐨勭綉鍏� var gateWayFileList = Global.FileListByHomeId().FindAll(obj => obj.StartsWith("Gateway_")); foreach (var filePath in gateWayFileList) @@ -444,7 +418,12 @@ { return; } - udpClient.Send(bytes, bytes.Length, iPEndPoint); + int value = udpClient.Send(bytes, bytes.Length, iPEndPoint); + //璋冭瘯鐢� + if (Shared.Phone.UserCenter.UserCenterResourse.HideOption.WriteSocketReceiveDataToFile == 1) + { + Shared.Phone.UserCenter.HdlLogLogic.Current.WriteLog(3, "鍙戦�侀暱搴�(BeginSendTo)锛�" + value + " 鍙戦�佸唴瀹�:" + System.Text.Encoding.UTF8.GetString(bytes)); + } } catch (Exception ex) { diff --git a/ZigbeeApp/Shared/Phone/ZigBee/Device/ZbGatewayData.cs b/ZigbeeApp/Shared/Phone/ZigBee/Device/ZbGatewayData.cs index 33f7267..1a9e97c 100755 --- a/ZigbeeApp/Shared/Phone/ZigBee/Device/ZbGatewayData.cs +++ b/ZigbeeApp/Shared/Phone/ZigBee/Device/ZbGatewayData.cs @@ -8,9 +8,10 @@ { #region 涓�鍫嗗彉閲� /// <summary> - /// 鍒ゆ柇缃戝叧鏄惁鍦ㄧ嚎鐨勬爣璇嗭紝APP鐣岄潰浼氭敼鍙樺畠鐨勫��,Application浼氶噸鏂板埛鏂板畠鐨勫�� + /// 缃戝叧鍦ㄧ嚎鐨勬椂闂寸偣 /// </summary> - public bool GatewayOnlineFlage = false; + [Newtonsoft.Json.JsonIgnore] + public DateTime OnlineTime = DateTime.Now; /// <summary> /// 浣忓畢ID /// </summary> @@ -23,6 +24,10 @@ ///缃戝叧搴忓垪鍙凤紝璇ョ綉鍏冲敮涓�鏍囪瘑 /// </summary> public string GwId = string.Empty; + /// <summary> + ///缃戝叧缁戝畾缃戝崱鐨刴ac鍦板潃 + /// </summary> + public string GwMac = string.Empty; /// <summary> ///缃戝叧鍚嶇О /// </summary> @@ -73,7 +78,6 @@ /// 铏氭嫙椹卞姩淇℃伅 /// </summary> public List<DriveCodeObj> DriveCodeList = new List<DriveCodeObj>(); - /// <summary> /// 铏氭嫙缃戝叧 /// </summary> diff --git a/ZigbeeApp/Shared/R.cs b/ZigbeeApp/Shared/R.cs index 5adc1c0..27cd21c 100755 --- a/ZigbeeApp/Shared/R.cs +++ b/ZigbeeApp/Shared/R.cs @@ -1671,7 +1671,7 @@ /// </summary> public const int PleaseInputProgramName = 13611; /// <summary> - /// 妤煎彿 + /// 妤� /// </summary> public const int FloorNo = 13612; /// <summary> @@ -1679,11 +1679,11 @@ /// </summary> public const int BetweenOneAndHundred = 13613; /// <summary> - /// 鍗曞厓鍙� + /// 鍗曞厓 /// </summary> public const int UnitNo = 13614; /// <summary> - /// 鎴峰彿 + /// 鎴� /// </summary> public const int HouseholdsNo = 13615; /// <summary> diff --git a/ZigbeeApp/Shared/Shared.projitems b/ZigbeeApp/Shared/Shared.projitems index bb0cba8..4969d7a 100755 --- a/ZigbeeApp/Shared/Shared.projitems +++ b/ZigbeeApp/Shared/Shared.projitems @@ -127,6 +127,7 @@ <Compile Include="$(MSBuildThisFileDirectory)Phone\MainPage\Controls\SafetyShortcutControl.cs" /> <Compile Include="$(MSBuildThisFileDirectory)Phone\MainPage\Controls\SceneCardControl.cs" /> <Compile Include="$(MSBuildThisFileDirectory)Phone\MainPage\HomeMainPageForm.cs" /> + <Compile Include="$(MSBuildThisFileDirectory)Phone\SmartSound\Forms\AddSmartSound.cs" /> <Compile Include="$(MSBuildThisFileDirectory)Phone\SmartSound\Forms\SmartSoundContentForDevice.cs" /> <Compile Include="$(MSBuildThisFileDirectory)Phone\SmartSound\Forms\SmartSoundContentForDeviceChange.cs" /> <Compile Include="$(MSBuildThisFileDirectory)Phone\SmartSound\Forms\SmartSoundControlContentForm.cs" /> -- Gitblit v1.8.0