22个文件已添加
2个文件已删除
110个文件已修改
old mode 100755
new mode 100644
| | |
| | | 66=请将IC卡放在感应区域上 |
| | | 67=录入状态 |
| | | 68=密码录入成功 |
| | | 69=密码备注: |
| | | 69=密码备注: |
| | | 70=配对客户 |
| | | 71=无 |
| | | 72=成员管理 |
| | |
| | | 10129=该用户属于调试账号,并未启用 |
| | | 10130=数据并不在此HDL区域服务器 |
| | | 10131=账号或密码错误 |
| | | 10132=账号不存在,请先注册 |
| | | 10132=账号不存在,请注册用户 |
| | | 10133=请输入验证码 |
| | | 10134=即将通过微信授权登录 |
| | | 10135=登录中... |
| | | 10136=当前住宅为空,请先建立住宅 |
| | | 10137=住宅名称为空 |
| | | 10138=邮箱错误,请重新输入 |
| | | 10139=手机号错误,请重新输入 |
| | | 10141=你已被强制下线! |
| | | |
| | | 10150=改房间名称已存在 |
| | | 10151=场景名不能为空 |
| | | 10152=控制场景失败 |
| | | 10153=场景为空 |
| | | 10154=该场景中没有执行目标 |
| | | 10155=操作失败 |
| | | 10156=发送验证码失败 |
| | | 10157=网关不在线 |
| | | |
| | | 10160=已是最新版本 |
| | | 10161=更新 |
| | | 10162=更新内容 |
| | | 10163=更新失败 |
| | | 10164=更新中... |
| | | 10165=取消更新 |
| | | |
| | | |
| | | |
| | | 11000=功能 |
| | | 11001=场景 |
| | |
| | | <ItemGroup>
|
| | | <AndroidAsset Include="Assets\Phone\SceneIcon\9.jpg" />
|
| | | </ItemGroup>
|
| | | <ItemGroup>
|
| | | <AndroidAsset Include="Assets\Phone\Item\MinusSign2.png" />
|
| | | </ItemGroup>
|
| | | <ItemGroup>
|
| | | <AndroidAsset Include="Assets\Phone\Item\MinusSign2Selected.png" />
|
| | | </ItemGroup>
|
| | | <ItemGroup>
|
| | | <AndroidAsset Include="Assets\Phone\Item\PlusSign2.png" />
|
| | | </ItemGroup>
|
| | | <ItemGroup>
|
| | | <AndroidAsset Include="Assets\Phone\Item\PlusSign2Selected.png" />
|
| | | </ItemGroup>
|
| | | <ItemGroup>
|
| | | <AndroidAsset Include="Assets\Phone\Room\Humidity.png" />
|
| | | </ItemGroup>
|
| | | <ItemGroup>
|
| | | <AndroidAsset Include="Assets\Phone\Room\List.png" />
|
| | | </ItemGroup>
|
| | | <ItemGroup>
|
| | | <AndroidAsset Include="Assets\Phone\Room\Temperature.png" />
|
| | | </ItemGroup>
|
| | | <ItemGroup>
|
| | | <AndroidAsset Include="Assets\Phone\Scene\Background.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')" />
|
| | |
| | | <?xml version="1.0" encoding="utf-8"?> |
| | | <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.hdl.home" android:versionCode="2019112901" android:installLocation="auto" android:versionName="1.0.19112901"> |
| | | <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.hdl.home" android:versionCode="2019120501" android:installLocation="auto" android:versionName="1.0.19120501"> |
| | | <uses-sdk android:minSdkVersion="23" android:targetSdkVersion="26" /> |
| | | <permission android:name="com.hdl.home.permission.JPUSH_MESSAGE" android:protectionLevel="signature" /> |
| | | <uses-permission android:name="android.permission.WAKE_LOCK" /> |
old mode 100755
new mode 100644
| | |
| | | <BundleResource Include="Resources\Phone\Room\ItemUnSelected.png" /> |
| | | <BundleResource Include="Resources\Phone\Room\ItemUnSelected_Black.png" /> |
| | | <BundleResource Include="Resources\Phone\Room\FavoriteRoom.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\Room_Rectangle.png" /> |
| | | <BundleResource Include="Resources\Phone\Room\RoomCardView_Name.png" /> |
| | | <BundleResource Include="Resources\Phone\Room\Humidity.png" /> |
| | | <BundleResource Include="Resources\Phone\Instruct\CurtainSiphonate.png" /> |
| | | <BundleResource Include="Resources\Phone\Instruct\RelayThreeLoad.png" /> |
| | | <BundleResource Include="Resources\Phone\Instruct\CurtainAutoOpen.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\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\Category_FunctionBG.png" /> |
| | | <BundleResource Include="Resources\Phone\Item\Remote.png" /> |
| | | <BundleResource Include="Resources\Phone\Item\ScreeningType.png" /> |
| | | <BundleResource Include="Resources\Phone\Item\BottomShadow.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\SwitchSelected.png" /> |
| | | <BundleResource Include="Resources\Phone\Item\NextSelected.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\DeleteIcon1.png" /> |
| | | <BundleResource Include="Resources\Phone\Item\HouseSelected.png" /> |
| | | <BundleResource Include="Resources\Phone\Item\Floor.png" /> |
| | | <BundleResource Include="Resources\Phone\Item\MinusSign2.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\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\FailIcon.png" /> |
| | | <BundleResource Include="Resources\Phone\Item\Message.png" /> |
| | |
| | | <BundleResource Include="Resources\Phone\Account\UnhidePwd.png" /> |
| | | <BundleResource Include="Resources\Phone\Scene\Delaying.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\4Icon.png" /> |
old mode 100755
new mode 100644
| | |
| | | 66=请将IC卡放在感应区域上 |
| | | 67=录入状态 |
| | | 68=密码录入成功 |
| | | 69=密码备注: |
| | | 69=密码备注: |
| | | 70=配对客户 |
| | | 71=无 |
| | | 72=成员管理 |
| | |
| | | 10129=该用户属于调试账号,并未启用 |
| | | 10130=数据并不在此HDL区域服务器 |
| | | 10131=账号或密码错误 |
| | | 10132=账号不存在,请先注册 |
| | | 10132=账号不存在,请注册用户 |
| | | 10133=请输入验证码 |
| | | 10134=即将通过微信授权登录 |
| | | 10135=登录中... |
| | | 10136=当前住宅为空,请先建立住宅 |
| | | 10137=住宅名称为空 |
| | | 10138=邮箱错误,请重新输入 |
| | | 10139=手机号错误,请重新输入 |
| | | 10141=你已被强制下线! |
| | | |
| | | 10150=改房间名称已存在 |
| | | 10151=场景名不能为空 |
| | | 10152=控制场景失败 |
| | | 10153=场景为空 |
| | | 10154=该场景中没有执行目标 |
| | | 10155=操作失败 |
| | | 10156=发送验证码失败 |
| | | 10157=网关不在线 |
| | | |
| | | 10160=已是最新版本 |
| | | 10161=更新 |
| | | 10162=更新内容 |
| | | 10163=更新失败 |
| | | 10164=更新中... |
| | | 10165=取消更新 |
| | | |
| | | |
| | | |
| | | 11000=功能 |
| | | 11001=场景 |
| | |
| | | 15975=正在上传备份文件 |
| | | 15976=确认删除全部消息? |
| | | 15977=确认标记全部消息为已读? |
| | | 15978=通信链接失败 |
| | | 15979=获取网络SSID失败 |
| | | 15980=密码发送失败 |
| | | 15981=选择hdlZigbeeGW-xxxx网络 |
| | | 15982=请连接家庭WiFi |
| | | 15983=正在获取分享数据 |
| | | |
| | | ;★★★★下面这些是接口的返回信息翻译,从18000开始★★★★
|
| | | 18004=指定网关已经被绑定
|
New file |
| | |
| | | { |
| | | "protocol_version" : "0.0.5", |
| | | "configuration" : { |
| | | "version" : "(6.6.0.155) (2019-08/296a9afdb24)", |
| | | "tlc" : "normal", |
| | | "sigsgev" : "altstack", |
| | | "notifications" : "kqueue", |
| | | "architecture" : "amd64", |
| | | "disabled_features" : "none", |
| | | "smallconfig" : "disabled", |
| | | "bigarrays" : "disabled", |
| | | "softdebug" : "enabled", |
| | | "interpreter" : "enabled", |
| | | "llvm_support" : "0", |
| | | "suspend" : "hybrid" |
| | | }, |
| | | "memory" : { |
| | | "Resident Size" : "328982528", |
| | | "Virtual Size" : "5121175552", |
| | | "minor_gc_time" : "2192622", |
| | | "major_gc_time" : "85950198", |
| | | "minor_gc_count" : "15", |
| | | "major_gc_count" : "536", |
| | | "major_gc_time_concurrent" : "1554106" |
| | | }, |
| | | "threads" : [ |
| | | { |
| | | "is_managed" : false, |
| | | "offset_free_hash" : "0x0", |
| | | "offset_rich_hash" : "0x0", |
| | | "crashed" : false, |
| | | "native_thread_id" : "0x70000e3ec000", |
| | | "thread_info_addr" : "0x7fa814800000", |
| | | "thread_name" : "Finalizer", |
| | | "ctx" : { |
| | | "IP" : "0x7fff67cf5266", |
| | | "SP" : "0x70000e3ebda8", |
| | | "BP" : "0x70000e3ebe50" |
| | | }, |
| | | "unmanaged_frames" : [ |
| | | { |
| | | "is_managed" : "false", |
| | | "native_address" : "0x10cdac156", |
| | | "native_offset" : "0x00000" |
| | | } |
| | | , |
| | | { |
| | | "is_managed" : "false", |
| | | "native_address" : "0x10cf52775", |
| | | "native_offset" : "0x00000" |
| | | } |
| | | , |
| | | { |
| | | "is_managed" : "false", |
| | | "native_address" : "0x10cf524a7", |
| | | "native_offset" : "0x00000" |
| | | } |
| | | , |
| | | { |
| | | "is_managed" : "false", |
| | | "native_address" : "0x10ce16f3c", |
| | | "native_offset" : "0x00000" |
| | | } |
| | | , |
| | | { |
| | | "is_managed" : "false", |
| | | "native_address" : "0x7fff67dabb5d", |
| | | "native_offset" : "0x00000" |
| | | } |
| | | , |
| | | { |
| | | "is_managed" : "false", |
| | | "native_address" : "0x20", |
| | | "native_offset" : "0x00000" |
| | | } |
| | | , |
| | | { |
| | | "is_managed" : "false", |
| | | "native_address" : "0x10cf53373", |
| | | "native_offset" : "0x00000" |
| | | } |
| | | , |
| | | { |
| | | "is_managed" : "false", |
| | | "native_address" : "0x7fff67db42eb", |
| | | "native_offset" : "0x00000" |
| | | } |
| | | , |
| | | { |
| | | "is_managed" : "false", |
| | | "native_address" : "0x7fff67db7249", |
| | | "native_offset" : "0x00000" |
| | | } |
| | | , |
| | | { |
| | | "is_managed" : "false", |
| | | "native_address" : "0x7fff67db340d", |
| | | "native_offset" : "0x00000" |
| | | } |
| | | |
| | | ] |
| | | }, |
| | | { |
| | | "is_managed" : false, |
| | | "offset_free_hash" : "0x0", |
| | | "offset_rich_hash" : "0x0", |
| | | "crashed" : false, |
| | | "native_thread_id" : "0x11ce5d5c0", |
| | | "thread_info_addr" : "0x7fa813806000", |
| | | "thread_name" : "tid_307", |
| | | "ctx" : { |
| | | "IP" : "0x7fff67cf886a", |
| | | "SP" : "0x7ffee2f06c98", |
| | | "BP" : "0x7ffee2f06d20" |
| | | }, |
| | | "unmanaged_frames" : [ |
| | | { |
| | | "is_managed" : "false", |
| | | "native_address" : "0x10cdac156", |
| | | "native_offset" : "0x00000" |
| | | } |
| | | , |
| | | { |
| | | "is_managed" : "false", |
| | | "native_address" : "0x10cf52775", |
| | | "native_offset" : "0x00000" |
| | | } |
| | | , |
| | | { |
| | | "is_managed" : "false", |
| | | "native_address" : "0x10cf524a7", |
| | | "native_offset" : "0x00000" |
| | | } |
| | | , |
| | | { |
| | | "is_managed" : "false", |
| | | "native_address" : "0x10ce16f3c", |
| | | "native_offset" : "0x00000" |
| | | } |
| | | , |
| | | { |
| | | "is_managed" : "false", |
| | | "native_address" : "0x7fff67dabb5d", |
| | | "native_offset" : "0x00000" |
| | | } |
| | | , |
| | | { |
| | | "is_managed" : "false", |
| | | "native_address" : "0x10cdae5b6", |
| | | "native_offset" : "0x00000" |
| | | } |
| | | , |
| | | { |
| | | "is_managed" : "false", |
| | | "native_address" : "0x10cffc7c0", |
| | | "native_offset" : "0x00000" |
| | | } |
| | | , |
| | | { |
| | | "is_managed" : "false", |
| | | "native_address" : "0x10d0172e1", |
| | | "native_offset" : "0x00000" |
| | | } |
| | | , |
| | | { |
| | | "is_managed" : "false", |
| | | "native_address" : "0x10cf4f774", |
| | | "native_offset" : "0x00000" |
| | | } |
| | | , |
| | | { |
| | | "is_managed" : "false", |
| | | "native_address" : "0x10cf4f58a", |
| | | "native_offset" : "0x00000" |
| | | } |
| | | , |
| | | { |
| | | "is_managed" : "false", |
| | | "native_address" : "0x10cd716c2", |
| | | "native_offset" : "0x00000" |
| | | } |
| | | , |
| | | { |
| | | "is_managed" : "false", |
| | | "native_address" : "0x10ccfb848", |
| | | "native_offset" : "0x00000" |
| | | } |
| | | , |
| | | { |
| | | "is_managed" : "false", |
| | | "native_address" : "0x7fff67bc03d5", |
| | | "native_offset" : "0x00000" |
| | | } |
| | | |
| | | ] |
| | | }, |
| | | { |
| | | "is_managed" : true, |
| | | "offset_free_hash" : "0x115869ea88", |
| | | "offset_rich_hash" : "0x115869ee42", |
| | | "crashed" : true, |
| | | "native_thread_id" : "0x70000eb7e000", |
| | | "thread_info_addr" : "0x7fa814d4c200", |
| | | "thread_name" : "Thread Pool Worker", |
| | | "ctx" : { |
| | | "IP" : "0x7fff67cfb2c6", |
| | | "SP" : "0x70000eb7c548", |
| | | "BP" : "0x70000eb7c580" |
| | | }, |
| | | "managed_frames" : [ |
| | | { |
| | | "is_managed" : "false", |
| | | "native_address" : "unregistered" |
| | | } |
| | | , |
| | | { |
| | | "is_managed" : "true", |
| | | "guid" : "7D0BC631-CADD-4A07-BF74-717847E90CFA", |
| | | "token" : "0x00000", |
| | | "native_offset" : "0x0", |
| | | "filename" : "mscorlib.dll", |
| | | "sizeofimage" : "0x472000", |
| | | "timestamp" : "0xec216ac8", |
| | | "il_offset" : "0x0000c" |
| | | } |
| | | , |
| | | { |
| | | "is_managed" : "true", |
| | | "guid" : "7D0BC631-CADD-4A07-BF74-717847E90CFA", |
| | | "token" : "0x6001f80", |
| | | "native_offset" : "0x0", |
| | | "filename" : "mscorlib.dll", |
| | | "sizeofimage" : "0x472000", |
| | | "timestamp" : "0xec216ac8", |
| | | "il_offset" : "0x0001a" |
| | | } |
| | | , |
| | | { |
| | | "is_managed" : "true", |
| | | "guid" : "7D0BC631-CADD-4A07-BF74-717847E90CFA", |
| | | "token" : "0x6001f27", |
| | | "native_offset" : "0x0", |
| | | "filename" : "mscorlib.dll", |
| | | "sizeofimage" : "0x472000", |
| | | "timestamp" : "0xec216ac8", |
| | | "il_offset" : "0x00028" |
| | | } |
| | | , |
| | | { |
| | | "is_managed" : "true", |
| | | "guid" : "7D0BC631-CADD-4A07-BF74-717847E90CFA", |
| | | "token" : "0x6001f25", |
| | | "native_offset" : "0x0", |
| | | "filename" : "mscorlib.dll", |
| | | "sizeofimage" : "0x472000", |
| | | "timestamp" : "0xec216ac8", |
| | | "il_offset" : "0x00002" |
| | | } |
| | | , |
| | | { |
| | | "is_managed" : "true", |
| | | "guid" : "2278D637-312B-4F39-AE26-3AE8170D7EC6", |
| | | "token" : "0x6000084", |
| | | "native_offset" : "0x0", |
| | | "filename" : "MonoDevelop.MSBuildBuilder.exe", |
| | | "sizeofimage" : "0x14000", |
| | | "timestamp" : "0xb4416f59", |
| | | "il_offset" : "0x000ae" |
| | | } |
| | | , |
| | | { |
| | | "is_managed" : "true", |
| | | "guid" : "2278D637-312B-4F39-AE26-3AE8170D7EC6", |
| | | "token" : "0x6000083", |
| | | "native_offset" : "0x0", |
| | | "filename" : "MonoDevelop.MSBuildBuilder.exe", |
| | | "sizeofimage" : "0x14000", |
| | | "timestamp" : "0xb4416f59", |
| | | "il_offset" : "0x00001" |
| | | } |
| | | , |
| | | { |
| | | "is_managed" : "true", |
| | | "guid" : "2278D637-312B-4F39-AE26-3AE8170D7EC6", |
| | | "token" : "0x600006a", |
| | | "native_offset" : "0x0", |
| | | "filename" : "MonoDevelop.MSBuildBuilder.exe", |
| | | "sizeofimage" : "0x14000", |
| | | "timestamp" : "0xb4416f59", |
| | | "il_offset" : "0x00048" |
| | | } |
| | | , |
| | | { |
| | | "is_managed" : "true", |
| | | "guid" : "2278D637-312B-4F39-AE26-3AE8170D7EC6", |
| | | "token" : "0x60000a1", |
| | | "native_offset" : "0x0", |
| | | "filename" : "MonoDevelop.MSBuildBuilder.exe", |
| | | "sizeofimage" : "0x14000", |
| | | "timestamp" : "0xb4416f59", |
| | | "il_offset" : "0x00001" |
| | | } |
| | | , |
| | | { |
| | | "is_managed" : "true", |
| | | "guid" : "2278D637-312B-4F39-AE26-3AE8170D7EC6", |
| | | "token" : "0x6000067", |
| | | "native_offset" : "0x0", |
| | | "filename" : "MonoDevelop.MSBuildBuilder.exe", |
| | | "sizeofimage" : "0x14000", |
| | | "timestamp" : "0xb4416f59", |
| | | "il_offset" : "0x00001" |
| | | } |
| | | , |
| | | { |
| | | "is_managed" : "true", |
| | | "guid" : "2278D637-312B-4F39-AE26-3AE8170D7EC6", |
| | | "token" : "0x6000075", |
| | | "native_offset" : "0x0", |
| | | "filename" : "MonoDevelop.MSBuildBuilder.exe", |
| | | "sizeofimage" : "0x14000", |
| | | "timestamp" : "0xb4416f59", |
| | | "il_offset" : "0x00057" |
| | | } |
| | | , |
| | | { |
| | | "is_managed" : "true", |
| | | "guid" : "2278D637-312B-4F39-AE26-3AE8170D7EC6", |
| | | "token" : "0x00000", |
| | | "native_offset" : "0x0", |
| | | "filename" : "MonoDevelop.MSBuildBuilder.exe", |
| | | "sizeofimage" : "0x14000", |
| | | "timestamp" : "0xb4416f59", |
| | | "il_offset" : "0x0002a" |
| | | } |
| | | , |
| | | { |
| | | "is_managed" : "false", |
| | | "native_address" : "unregistered" |
| | | } |
| | | , |
| | | { |
| | | "is_managed" : "true", |
| | | "guid" : "7D0BC631-CADD-4A07-BF74-717847E90CFA", |
| | | "token" : "0x00000", |
| | | "native_offset" : "0x0", |
| | | "filename" : "mscorlib.dll", |
| | | "sizeofimage" : "0x472000", |
| | | "timestamp" : "0xec216ac8", |
| | | "il_offset" : "0x0000c" |
| | | } |
| | | , |
| | | { |
| | | "is_managed" : "true", |
| | | "guid" : "7D0BC631-CADD-4A07-BF74-717847E90CFA", |
| | | "token" : "0x6004cdb", |
| | | "native_offset" : "0x0", |
| | | "filename" : "mscorlib.dll", |
| | | "sizeofimage" : "0x472000", |
| | | "timestamp" : "0xec216ac8", |
| | | "il_offset" : "0x0006a" |
| | | } |
| | | , |
| | | { |
| | | "is_managed" : "true", |
| | | "guid" : "7D0BC631-CADD-4A07-BF74-717847E90CFA", |
| | | "token" : "0x60048c4", |
| | | "native_offset" : "0x0", |
| | | "filename" : "mscorlib.dll", |
| | | "sizeofimage" : "0x472000", |
| | | "timestamp" : "0xec216ac8", |
| | | "il_offset" : "0x00000" |
| | | } |
| | | , |
| | | { |
| | | "is_managed" : "true", |
| | | "guid" : "2278D637-312B-4F39-AE26-3AE8170D7EC6", |
| | | "token" : "0x6000039", |
| | | "native_offset" : "0x0", |
| | | "filename" : "MonoDevelop.MSBuildBuilder.exe", |
| | | "sizeofimage" : "0x14000", |
| | | "timestamp" : "0xb4416f59", |
| | | "il_offset" : "0x00019" |
| | | } |
| | | , |
| | | { |
| | | "is_managed" : "true", |
| | | "guid" : "2278D637-312B-4F39-AE26-3AE8170D7EC6", |
| | | "token" : "0x6000166", |
| | | "native_offset" : "0x0", |
| | | "filename" : "MonoDevelop.MSBuildBuilder.exe", |
| | | "sizeofimage" : "0x14000", |
| | | "timestamp" : "0xb4416f59", |
| | | "il_offset" : "0x00029" |
| | | } |
| | | , |
| | | { |
| | | "is_managed" : "true", |
| | | "guid" : "2278D637-312B-4F39-AE26-3AE8170D7EC6", |
| | | "token" : "0x6000181", |
| | | "native_offset" : "0x0", |
| | | "filename" : "MonoDevelop.MSBuildBuilder.exe", |
| | | "sizeofimage" : "0x14000", |
| | | "timestamp" : "0xb4416f59", |
| | | "il_offset" : "0x00001" |
| | | } |
| | | , |
| | | { |
| | | "is_managed" : "true", |
| | | "guid" : "7D0BC631-CADD-4A07-BF74-717847E90CFA", |
| | | "token" : "0x6001fe8", |
| | | "native_offset" : "0x0", |
| | | "filename" : "mscorlib.dll", |
| | | "sizeofimage" : "0x472000", |
| | | "timestamp" : "0xec216ac8", |
| | | "il_offset" : "0x00007" |
| | | } |
| | | , |
| | | { |
| | | "is_managed" : "true", |
| | | "guid" : "7D0BC631-CADD-4A07-BF74-717847E90CFA", |
| | | "token" : "0x6001ec3", |
| | | "native_offset" : "0x0", |
| | | "filename" : "mscorlib.dll", |
| | | "sizeofimage" : "0x472000", |
| | | "timestamp" : "0xec216ac8", |
| | | "il_offset" : "0x00071" |
| | | } |
| | | , |
| | | { |
| | | "is_managed" : "true", |
| | | "guid" : "7D0BC631-CADD-4A07-BF74-717847E90CFA", |
| | | "token" : "0x6001ec1", |
| | | "native_offset" : "0x0", |
| | | "filename" : "mscorlib.dll", |
| | | "sizeofimage" : "0x472000", |
| | | "timestamp" : "0xec216ac8", |
| | | "il_offset" : "0x00000" |
| | | } |
| | | , |
| | | { |
| | | "is_managed" : "true", |
| | | "guid" : "7D0BC631-CADD-4A07-BF74-717847E90CFA", |
| | | "token" : "0x6001fe6", |
| | | "native_offset" : "0x0", |
| | | "filename" : "mscorlib.dll", |
| | | "sizeofimage" : "0x472000", |
| | | "timestamp" : "0xec216ac8", |
| | | "il_offset" : "0x00021" |
| | | } |
| | | , |
| | | { |
| | | "is_managed" : "true", |
| | | "guid" : "7D0BC631-CADD-4A07-BF74-717847E90CFA", |
| | | "token" : "0x6001fce", |
| | | "native_offset" : "0x0", |
| | | "filename" : "mscorlib.dll", |
| | | "sizeofimage" : "0x472000", |
| | | "timestamp" : "0xec216ac8", |
| | | "il_offset" : "0x00074" |
| | | } |
| | | , |
| | | { |
| | | "is_managed" : "true", |
| | | "guid" : "7D0BC631-CADD-4A07-BF74-717847E90CFA", |
| | | "token" : "0x6001fe3", |
| | | "native_offset" : "0x0", |
| | | "filename" : "mscorlib.dll", |
| | | "sizeofimage" : "0x472000", |
| | | "timestamp" : "0xec216ac8", |
| | | "il_offset" : "0x00000" |
| | | } |
| | | , |
| | | { |
| | | "is_managed" : "true", |
| | | "guid" : "7D0BC631-CADD-4A07-BF74-717847E90CFA", |
| | | "token" : "0x00000", |
| | | "native_offset" : "0x0", |
| | | "filename" : "mscorlib.dll", |
| | | "sizeofimage" : "0x472000", |
| | | "timestamp" : "0xec216ac8", |
| | | "il_offset" : "0x0002a" |
| | | } |
| | | |
| | | ], |
| | | "unmanaged_frames" : [ |
| | | { |
| | | "is_managed" : "false", |
| | | "native_address" : "0x10cdac156", |
| | | "native_offset" : "0x00000" |
| | | } |
| | | , |
| | | { |
| | | "is_managed" : "false", |
| | | "native_address" : "0x10cf52775", |
| | | "native_offset" : "0x00000" |
| | | } |
| | | , |
| | | { |
| | | "is_managed" : "false", |
| | | "native_address" : "0x10cf52dfa", |
| | | "native_offset" : "0x00000" |
| | | } |
| | | , |
| | | { |
| | | "is_managed" : "false", |
| | | "native_address" : "0x10ce17f46", |
| | | "native_offset" : "0x00000" |
| | | } |
| | | , |
| | | { |
| | | "is_managed" : "false", |
| | | "native_address" : "0x10cdb0c65", |
| | | "native_offset" : "0x00000" |
| | | } |
| | | , |
| | | { |
| | | "is_managed" : "false", |
| | | "native_address" : "0x10ce172db", |
| | | "native_offset" : "0x00000" |
| | | } |
| | | , |
| | | { |
| | | "is_managed" : "false", |
| | | "native_address" : "0x7fff67dabb5d", |
| | | "native_offset" : "0x00000" |
| | | } |
| | | , |
| | | { |
| | | "is_managed" : "false", |
| | | "native_address" : "0x10d07d439", |
| | | "native_offset" : "0x00000" |
| | | } |
| | | , |
| | | { |
| | | "is_managed" : "false", |
| | | "native_address" : "0x7fff67c656a6", |
| | | "native_offset" : "0x00000" |
| | | } |
| | | , |
| | | { |
| | | "is_managed" : "false", |
| | | "native_address" : "0x10d021cb7", |
| | | "native_offset" : "0x00000" |
| | | } |
| | | , |
| | | { |
| | | "is_managed" : "false", |
| | | "native_address" : "0x10d002b2f", |
| | | "native_offset" : "0x00000" |
| | | } |
| | | , |
| | | { |
| | | "is_managed" : "false", |
| | | "native_address" : "0x10d02203e", |
| | | "native_offset" : "0x00000" |
| | | } |
| | | , |
| | | { |
| | | "is_managed" : "false", |
| | | "native_address" : "0x10d0221bf", |
| | | "native_offset" : "0x00000" |
| | | } |
| | | , |
| | | { |
| | | "is_managed" : "false", |
| | | "native_address" : "0x10cebce76", |
| | | "native_offset" : "0x00000" |
| | | } |
| | | , |
| | | { |
| | | "is_managed" : "false", |
| | | "native_address" : "0x10cebd478", |
| | | "native_offset" : "0x00000" |
| | | } |
| | | , |
| | | { |
| | | "is_managed" : "false", |
| | | "native_address" : "0x10d01019f", |
| | | "native_offset" : "0x00000" |
| | | } |
| | | , |
| | | { |
| | | "is_managed" : "false", |
| | | "native_address" : "0x10d0104b0", |
| | | "native_offset" : "0x00000" |
| | | } |
| | | , |
| | | { |
| | | "is_managed" : "false", |
| | | "native_address" : "0x10cebf7ab", |
| | | "native_offset" : "0x00000" |
| | | } |
| | | , |
| | | { |
| | | "is_managed" : "false", |
| | | "native_address" : "0x10cee2675", |
| | | "native_offset" : "0x00000" |
| | | } |
| | | , |
| | | { |
| | | "is_managed" : "true", |
| | | "guid" : "7D0BC631-CADD-4A07-BF74-717847E90CFA", |
| | | "token" : "0x00000", |
| | | "native_offset" : "0x0", |
| | | "filename" : "mscorlib.dll", |
| | | "sizeofimage" : "0x472000", |
| | | "timestamp" : "0xec216ac8", |
| | | "il_offset" : "0x00000" |
| | | } |
| | | , |
| | | { |
| | | "is_managed" : "true", |
| | | "guid" : "2278D637-312B-4F39-AE26-3AE8170D7EC6", |
| | | "token" : "0x6000083", |
| | | "native_offset" : "0x0", |
| | | "filename" : "MonoDevelop.MSBuildBuilder.exe", |
| | | "sizeofimage" : "0x14000", |
| | | "timestamp" : "0xb4416f59", |
| | | "il_offset" : "0x00000" |
| | | } |
| | | , |
| | | { |
| | | "is_managed" : "true", |
| | | "guid" : "2278D637-312B-4F39-AE26-3AE8170D7EC6", |
| | | "token" : "0x60000a1", |
| | | "native_offset" : "0x0", |
| | | "filename" : "MonoDevelop.MSBuildBuilder.exe", |
| | | "sizeofimage" : "0x14000", |
| | | "timestamp" : "0xb4416f59", |
| | | "il_offset" : "0x00000" |
| | | } |
| | | , |
| | | { |
| | | "is_managed" : "true", |
| | | "guid" : "2278D637-312B-4F39-AE26-3AE8170D7EC6", |
| | | "token" : "0x00000", |
| | | "native_offset" : "0x0", |
| | | "filename" : "MonoDevelop.MSBuildBuilder.exe", |
| | | "sizeofimage" : "0x14000", |
| | | "timestamp" : "0xb4416f59", |
| | | "il_offset" : "0x00000" |
| | | } |
| | | , |
| | | { |
| | | "is_managed" : "false", |
| | | "native_address" : "0x10cd0c62d", |
| | | "native_offset" : "0x00000" |
| | | } |
| | | , |
| | | { |
| | | "is_managed" : "false", |
| | | "native_address" : "0x10cf2bfa4", |
| | | "native_offset" : "0x00000" |
| | | } |
| | | , |
| | | { |
| | | "is_managed" : "false", |
| | | "native_address" : "0x10cf303a6", |
| | | "native_offset" : "0x00000" |
| | | } |
| | | , |
| | | { |
| | | "is_managed" : "false", |
| | | "native_address" : "0x10cec76f4", |
| | | "native_offset" : "0x00000" |
| | | } |
| | | , |
| | | { |
| | | "is_managed" : "true", |
| | | "guid" : "7D0BC631-CADD-4A07-BF74-717847E90CFA", |
| | | "token" : "0x00000", |
| | | "native_offset" : "0x0", |
| | | "filename" : "mscorlib.dll", |
| | | "sizeofimage" : "0x472000", |
| | | "timestamp" : "0xec216ac8", |
| | | "il_offset" : "0x00000" |
| | | } |
| | | , |
| | | { |
| | | "is_managed" : "true", |
| | | "guid" : "7D0BC631-CADD-4A07-BF74-717847E90CFA", |
| | | "token" : "0x60048c4", |
| | | "native_offset" : "0x0", |
| | | "filename" : "mscorlib.dll", |
| | | "sizeofimage" : "0x472000", |
| | | "timestamp" : "0xec216ac8", |
| | | "il_offset" : "0x00000" |
| | | } |
| | | , |
| | | { |
| | | "is_managed" : "true", |
| | | "guid" : "2278D637-312B-4F39-AE26-3AE8170D7EC6", |
| | | "token" : "0x6000181", |
| | | "native_offset" : "0x0", |
| | | "filename" : "MonoDevelop.MSBuildBuilder.exe", |
| | | "sizeofimage" : "0x14000", |
| | | "timestamp" : "0xb4416f59", |
| | | "il_offset" : "0x00000" |
| | | } |
| | | , |
| | | { |
| | | "is_managed" : "true", |
| | | "guid" : "7D0BC631-CADD-4A07-BF74-717847E90CFA", |
| | | "token" : "0x6001ec1", |
| | | "native_offset" : "0x0", |
| | | "filename" : "mscorlib.dll", |
| | | "sizeofimage" : "0x472000", |
| | | "timestamp" : "0xec216ac8", |
| | | "il_offset" : "0x00000" |
| | | } |
| | | , |
| | | { |
| | | "is_managed" : "true", |
| | | "guid" : "7D0BC631-CADD-4A07-BF74-717847E90CFA", |
| | | "token" : "0x6001fe3", |
| | | "native_offset" : "0x0", |
| | | "filename" : "mscorlib.dll", |
| | | "sizeofimage" : "0x472000", |
| | | "timestamp" : "0xec216ac8", |
| | | "il_offset" : "0x00000" |
| | | } |
| | | , |
| | | { |
| | | "is_managed" : "false", |
| | | "native_address" : "0x10cd0c62d", |
| | | "native_offset" : "0x00000" |
| | | } |
| | | , |
| | | { |
| | | "is_managed" : "false", |
| | | "native_address" : "0x10cf2bfa4", |
| | | "native_offset" : "0x00000" |
| | | } |
| | | , |
| | | { |
| | | "is_managed" : "false", |
| | | "native_address" : "0x10cf55ec0", |
| | | "native_offset" : "0x00000" |
| | | } |
| | | , |
| | | { |
| | | "is_managed" : "false", |
| | | "native_address" : "0x10ce8828c", |
| | | "native_offset" : "0x00000" |
| | | } |
| | | , |
| | | { |
| | | "is_managed" : "false", |
| | | "native_address" : "0x10cf53373", |
| | | "native_offset" : "0x00000" |
| | | } |
| | | , |
| | | { |
| | | "is_managed" : "false", |
| | | "native_address" : "0x7fff67db42eb", |
| | | "native_offset" : "0x00000" |
| | | } |
| | | , |
| | | { |
| | | "is_managed" : "false", |
| | | "native_address" : "0x7fff67db7249", |
| | | "native_offset" : "0x00000" |
| | | } |
| | | , |
| | | { |
| | | "is_managed" : "false", |
| | | "native_address" : "0x7fff67db340d", |
| | | "native_offset" : "0x00000" |
| | | } |
| | | |
| | | ] |
| | | } |
| | | ] |
| | | } |
| | |
| | | /// <summary> |
| | | /// 版本号 |
| | | /// </summary> |
| | | public static string CodeIDString = "1.0.19112901"; |
| | | public static string CodeIDString = "1.0.19120501"; |
| | | /// <summary> |
| | | /// 注册来源(0:HDL On 1:Zigbee) |
| | | /// </summary> |
| | |
| | | /// <returns></returns>
|
| | | public string AppendVersion(int versionValue)
|
| | | {
|
| | | //转为16进制
|
| | | string txt64 = Convert.ToString(versionValue, 16).PadLeft(4, '0');
|
| | | //直接是10进制
|
| | | string txt10 = Convert.ToString(versionValue).PadLeft(4, '0');
|
| | | //这个是小数点前面的值
|
| | | int value1 = Convert.ToInt32(txt64.Substring(0, 2), 16);
|
| | | int value1 = Convert.ToInt32(txt10.Substring(0, txt10.Length - 2));
|
| | | //这个是小数点后面的值
|
| | | int value2 = Convert.ToInt32(txt64.Substring(2, 2), 16);
|
| | | int value2 = Convert.ToInt32(txt10.Substring(txt10.Length - 2, 2));
|
| | |
|
| | | //Ver.
|
| | | string ver = Language.StringByID(R.MyInternationalizationString.uVersionAbbreviation);
|
| | | return ver + value1 + "." + value2.ToString().PadLeft(3, '0');
|
| | | return ver + value1 + "." + value2.ToString().PadLeft(2, '0');
|
| | | }
|
| | |
|
| | | /// <summary>
|
| | |
| | | /// </summary> |
| | | public static async System.Threading.Tasks.Task<List<string>> GetHomeLists() |
| | | { |
| | | //清空当前住宅列表 |
| | | Config.Instance.HomeFilePathList.Clear(); |
| | | var pageSetting = new SendDataToServer.ResidenceListPageSettingObj() |
| | | { |
| | | PageSize = CommonPage.PageSize |
| | |
| | | if (responseDataObj.TotalCount == 0) |
| | | { |
| | | //当住宅为空时先提示用户新建住宅 |
| | | var alert = new Alert(Language.StringByID(R.MyInternationalizationString.TIP), Language.StringByID(R.MyInternationalizationString.CurrentlyTheUserIshHouseIsEmptyPleaseBuildANewHouseFirst), Language.StringByID(R.MyInternationalizationString.Close), Language.StringByID(R.MyInternationalizationString.OK)); |
| | | var alert = new Alert(Language.StringByID(R.MyInternationalizationString.TIP), Language.StringByID(R.MyInternationalizationString.CurrentlyTheUserIshHouseIsEmptyPleaseBuildANewHouseFirst), Language.StringByID(R.MyInternationalizationString.Close), Language.StringByID(R.MyInternationalizationString.Confrim)); |
| | | alert.Show(); |
| | | alert.ResultEventHandler += (sender, e) => |
| | | { |
| | |
| | | } |
| | | else |
| | | { |
| | | //清空当前住宅列表 |
| | | Config.Instance.HomeFilePathList.Clear(); |
| | | if (Config.Instance.HomeId == string.Empty && responseDataObj.PageData.Count > 0) |
| | | { |
| | | //赋一个初始值 |
| | |
| | | { |
| | | return null; |
| | | } |
| | | if (TaskList[0].Data1 == 0) |
| | | if (TaskList[0].Data1 == 1) |
| | | { |
| | | return Language.StringByID(R.MyInternationalizationString.Shut); |
| | | } |
| | | return $"{TaskList[0].Data1}%"; |
| | | return $"{TaskList[0].Data2}%"; |
| | | } |
| | | else if (DeviceUI.CommonDevice.Type == ZigBee.Device.DeviceType.Thermostat) |
| | | { |
| | |
| | | } |
| | | |
| | | public static ZigbeeColor Current; |
| | | |
| | | |
| | | #region 徐梅 |
| | | public uint MainColor = 0xFFEAEAEA; |
| | | public uint BottomMenuColor = 0xFFFFFFFF; |
| | |
| | | /// 浅白背景 0xFFF5F6FA |
| | | /// </summary> |
| | | public uint GXCGrayBackgroundColor = 0xFFF5F6FA; |
| | | /// <summary> |
| | | /// 0x73000000 |
| | | /// </summary> |
| | | public uint GXCGrayBackgroundColor2 = 0x73000000; |
| | | /// <summary> |
| | | /// 黑色背景 0xFF232323 |
| | | /// </summary> |
| | |
| | | public uint LogicTextBlueColor = 0xFF00AAF0; |
| | | public uint LogicDelBackgroundColor = 0xFFFF0000; |
| | | public uint LogicEditBlackColor = 0xFF00aaf0; |
| | | public uint LogicTimeViewColor= 0xFFFFFFFF; |
| | | public uint LogicTimeViewColor = 0xFFFFFFFF; |
| | | public uint LogicTimeViewSaveButton = 0xFF121212;
|
| | | //最新UI颜色 |
| | | public uint LogicTopBackgroundColor = 0xFFF9F9F9; |
| | |
| | | using ZigBee.Device; |
| | | using Shared.Phone.Device.CommonForm; |
| | | using Shared.Phone.UserView; |
| | | using Shared.Phone.Device.DeviceLogic; |
| | | |
| | | namespace Shared.Phone.Device.AC |
| | | { |
| | |
| | | //发送读取状态命令 |
| | | UserView.UserHomeView.ReadStatus(ac, () => |
| | | { |
| | | ac.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch); |
| | | ac.ReadLocalTemperature(); |
| | | ac.ReadCoolingSetpoint(); |
| | | ac.ReadHeatingSetpoint(); |
| | | ac.ReadAutoSetpoint(); |
| | | ac.ReadFanMode(); |
| | | ac.ReadSystemMode(); |
| | | ac.ReadSystemFansSwingMode(); |
| | | ac.ReadModeSupport(); |
| | | ac.ReadCleanStatu(); |
| | | ReadDeviceAttributeLogic.Instance.SendACStatuComand(device.CommonDevice); |
| | | }); |
| | | } |
| | | else |
| | |
| | | //防止短时间内多次读取设备状态 |
| | | if ((DateTime.Now - ac.LastDateTime).TotalSeconds > CommonPage.ReadDeviceStatuSpan) |
| | | { |
| | | ac.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch); |
| | | ac.ReadLocalTemperature(); |
| | | ac.ReadCoolingSetpoint(); |
| | | ac.ReadHeatingSetpoint(); |
| | | ac.ReadAutoSetpoint(); |
| | | ac.ReadFanMode(); |
| | | ac.ReadSystemMode(); |
| | | ac.ReadSystemFansSwingMode(); |
| | | ac.ReadModeSupport(); |
| | | ac.ReadCleanStatu(); |
| | | ReadDeviceAttributeLogic.Instance.SendACStatuComand(device.CommonDevice); |
| | | } |
| | | } |
| | | |
| | |
| | | /// </summary> |
| | | public AccountForgetPWD() |
| | | { |
| | | CommonPage.Instance.IsDrawerLockMode = true; |
| | | BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor; |
| | | Tag = "Forgot"; |
| | | } |
| | |
| | | private void AddPhoneOrEmailFL(FrameLayout accountCodeFrameLayout, string phoneOrEmail) |
| | | { |
| | | accountCodeFrameLayout.RemoveAll(); |
| | | |
| | | account = string.Empty; |
| | | if (phoneOrEmail == "Phone") |
| | | { |
| | | phoneRow = new PhoneRowForm(); |
| | |
| | | private void Account_TextChange(object sender, string mouseEventArgs) |
| | | { |
| | | errorBtn.Text = ""; |
| | | |
| | | if ((sender as EditText).Text.Trim().Length > 0) |
| | | { |
| | | codeRow.SendCodeBtn.Enable = codeRow.SendCodeBtn.IsSelected = true; |
| | | account = (sender as EditText).Text.Trim(); |
| | | } |
| | | else |
| | | { |
| | | codeRow.SendCodeBtn.Enable = codeRow.SendCodeBtn.IsSelected = false; |
| | | } |
| | | //account = (sender as EditText).Text.Trim(); |
| | | } |
| | | |
| | | /// <summary> |
New file |
| | |
| | | using System; |
| | | using System.Text.RegularExpressions; |
| | | using Shared.Common; |
| | | |
| | | namespace Shared.Phone.Device.Account |
| | | { |
| | | public class AccountLogic |
| | | { |
| | | #region ◆ 变量____________________________ |
| | | /// <summary> |
| | | /// _instance |
| | | /// </summary> |
| | | private static AccountLogic _instance; |
| | | /// <summary> |
| | | /// Instance |
| | | /// </summary> |
| | | public static AccountLogic Instance |
| | | { |
| | | get |
| | | { |
| | | if(_instance==null) |
| | | { |
| | | _instance = new AccountLogic(); |
| | | } |
| | | return _instance; |
| | | } |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region ◆ 邮箱____________________________ |
| | | |
| | | /// <summary> |
| | | /// 检查邮箱合法性 |
| | | /// </summary> |
| | | /// <param name="email"></param> |
| | | /// <returns></returns> |
| | | public bool CheckEmail(string email) |
| | | { |
| | | var regex= new Regex(CommonPage.EmailRegexStr);
|
| | | return regex.IsMatch(email); |
| | | } |
| | | |
| | | |
| | | |
| | | #endregion |
| | | |
| | | #region ◆ 手机____________________________ |
| | | |
| | | /// <summary> |
| | | /// 检查手机号合法性 |
| | | /// </summary> |
| | | /// <param name="phone"></param> |
| | | /// <returns></returns> |
| | | public bool CheckPhone(string phone) |
| | | { |
| | | var regex = new Regex(CommonPage.PhoneForForeignRegexStr); |
| | | return regex.IsMatch(phone); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 检查手机号合法性、区分区号 |
| | | /// </summary> |
| | | /// <param name="phone">手机号</param> |
| | | /// <param name="zoneCode">区号</param> |
| | | /// <returns></returns> |
| | | public bool CheckPhoneWithZone(string phone,string zoneCode) |
| | | { |
| | | if(zoneCode=="86") |
| | | { |
| | | var regex = new Regex(CommonPage.PhoneRegexStr); |
| | | return regex.IsMatch(phone); |
| | | } |
| | | else |
| | | { |
| | | var regex = new Regex(CommonPage.PhoneForForeignRegexStr); |
| | | return regex.IsMatch(phone); |
| | | } |
| | | } |
| | | |
| | | #endregion |
| | | } |
| | | } |
| | |
| | | /// </summary> |
| | | public AccountLogin() |
| | | { |
| | | CommonPage.Instance.IsDrawerLockMode = true; |
| | | BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor; |
| | | Tag = "Login"; |
| | | } |
| | |
| | | { |
| | | try |
| | | { |
| | | if(CheckAccount(accountStr)==false) |
| | | { |
| | | return; |
| | | } |
| | | |
| | | CommonPage.Loading.Start(Language.StringByID(R.MyInternationalizationString.Logining)); |
| | | |
| | | var requestObj = new SendDataToServer.LoginObj |
| | |
| | | //}); |
| | | }; |
| | | action(); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// CheckAccount |
| | | /// </summary> |
| | | /// <param name="accountStr"></param> |
| | | /// <returns></returns> |
| | | private bool CheckAccount(string accountStr) |
| | | { |
| | | if (phoneEmailForm.SelectedEmail.IsSelected) |
| | | { |
| | | if (AccountLogic.Instance.CheckEmail(accountStr) == false) |
| | | { |
| | | loginErrorBtn.TextID = R.MyInternationalizationString.TheEmailError; |
| | | return false; |
| | | } |
| | | } |
| | | else |
| | | { |
| | | if (AccountLogic.Instance.CheckPhone(accountStr) == false) |
| | | { |
| | | loginErrorBtn.TextID = R.MyInternationalizationString.ThePhoneError; |
| | | return false; |
| | | } |
| | | } |
| | | return true; |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | { |
| | | phoneEmailForm.SelectedPhone.IsSelected = phoneEmailForm.SelectedEmail.IsSelected = false; |
| | | loginBtn.Enable = loginBtn.IsSelected = false; |
| | | loginErrorBtn.Text = string.Empty; |
| | | (sender as Button).IsSelected = true; |
| | | if((sender as Button).Tag.ToString()=="Phone") |
| | | { |
| | |
| | | pwdRow = new PwdLoginRowForm(); |
| | | pwdRow.Init(accountPwdFrameLayout, 29, 225); |
| | | pwdRow.PasswrodET.TextChangeEventHandler += Pwd_TextChange; |
| | | |
| | | |
| | | } |
| | | #endregion |
| | | |
| | |
| | | private void Register(object sender,MouseEventArgs mouseEventArgs) |
| | | { |
| | | var registerPage = new AccountRegister(); |
| | | Shared.Common.CommonPage.Instance.AddChidren(registerPage); |
| | | CommonPage.Instance.AddChidren(registerPage); |
| | | registerPage.Show(); |
| | | } |
| | | |
| | |
| | | /// <param name="mouseEventArgs">The ${ParameterType} instance containing the event data.</param> |
| | | private void Account_TextChange(object sender,string mouseEventArgs) |
| | | { |
| | | loginErrorBtn.Text = ""; |
| | | loginErrorBtn.Text = string.Empty; |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | /// <param name="mouseEventArgs">The ${ParameterType} instance containing the event data.</param> |
| | | private void Pwd_TextChange(object sender,string mouseEventArgs) |
| | | { |
| | | loginErrorBtn.Text = ""; |
| | | loginErrorBtn.Text = string.Empty; |
| | | if (1 <= pwdRow.PasswrodET.Text.Trim().Length && pwdRow.PasswrodET.Text.Trim().Length <= 16 && (phoneRow.AccountET.Text.Trim().Length > 0 || emailRow.AccountET.Text.Trim().Length>0)) |
| | | { |
| | | loginBtn.Enable = loginBtn.IsSelected = true; |
| | |
| | | /// </summary> |
| | | public AccountLoginByCode() |
| | | { |
| | | CommonPage.Instance.IsDrawerLockMode = true; |
| | | Tag = "Login"; |
| | | BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor; |
| | | t = new Timer(); |
| | |
| | | private void AddPhoneOrEmailFL(FrameLayout accountCodeFrameLayout, string phoneOrEmail) |
| | | { |
| | | accountCodeFrameLayout.RemoveAll(); |
| | | |
| | | account = string.Empty; |
| | | loginErrorBtn.Text = string.Empty; |
| | | if (phoneOrEmail == "Phone") |
| | | { |
| | | phoneRow = new PhoneRowForm(); |
| | |
| | | /// <param name="mouseEventArgs">The ${ParameterType} instance containing the event data.</param> |
| | | private void Account_TextChange(object sender, string mouseEventArgs) |
| | | { |
| | | loginErrorBtn.Text = ""; |
| | | loginErrorBtn.Text = string.Empty; |
| | | if ((sender as EditText).Text.Trim().Length > 0) |
| | | { |
| | | IsRightAccount = true; |
| | | codeRow.SendCodeBtn.Enable = codeRow.SendCodeBtn.IsSelected = true; |
| | | account= (sender as EditText).Text.Trim(); |
| | | } |
| | | else |
| | | { |
| | |
| | | private void Register(object sender, MouseEventArgs mouseEventArgs) |
| | | { |
| | | this.RemoveFromParent(); |
| | | var login = new AccountLogin(); |
| | | CommonPage.Instance.AddChidren(login); |
| | | login.Show(); |
| | | var registerPage = new AccountRegister(); |
| | | CommonPage.Instance.AddChidren(registerPage); |
| | | registerPage.Show(); |
| | | } |
| | | |
| | | #endregion |
| | |
| | | /// <param name="mouseEventArgs"></param> |
| | | private async void SendCode_MouseUpEventAsync(object sender, MouseEventArgs mouseEventArgs) |
| | | { |
| | | if (CheckAccount(account) == false) |
| | | { |
| | | return; |
| | | } |
| | | |
| | | (sender as Button).Enable = (sender as Button).IsSelected = false; |
| | | CommonPage.Loading.Start(); |
| | | try |
| | |
| | | CommonPage.Loading.Hide(); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// CheckAccount |
| | | /// </summary> |
| | | /// <param name="accountStr"></param> |
| | | /// <returns></returns> |
| | | private bool CheckAccount(string accountStr) |
| | | { |
| | | loginErrorBtn.Text = string.Empty; |
| | | if (phoneEmailForm.SelectedEmail.IsSelected) |
| | | { |
| | | if (AccountLogic.Instance.CheckEmail(accountStr) == false) |
| | | { |
| | | loginErrorBtn.TextID = R.MyInternationalizationString.TheEmailError; |
| | | return false; |
| | | } |
| | | } |
| | | else |
| | | { |
| | | if (AccountLogic.Instance.CheckPhoneWithZone(accountStr, CommonPage.PhoneZoneStr) == false) |
| | | { |
| | | loginErrorBtn.TextID = R.MyInternationalizationString.ThePhoneError; |
| | | return false; |
| | | } |
| | | } |
| | | return true; |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region ◆ 验证验证码________________________ |
| | |
| | | #region ◆ 构造方法_________________________ |
| | | public AccountRegister() |
| | | { |
| | | CommonPage.Instance.IsDrawerLockMode = true; |
| | | BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor; |
| | | Tag = "Register"; |
| | | } |
| | |
| | | Width = Application.GetRealWidth(942), |
| | | Gravity = Gravity.CenterHorizontal, |
| | | BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor, |
| | | Radius = (uint)Application.GetRealHeight(30) |
| | | Radius = (uint)Application.GetRealHeight(17) |
| | | }; |
| | | bodyFrameLayout.AddChidren(accountCodeFL); |
| | | |
| | |
| | | phoneEmailForm.SelectedPhone.IsSelected = phoneEmailForm.SelectedEmail.IsSelected = false; |
| | | registerBtn.Enable = registerBtn.IsSelected = false; |
| | | (sender as Button).IsSelected = true; |
| | | account = string.Empty; |
| | | errorBtn.Text = string.Empty; |
| | | if ((sender as Button).Tag.ToString() == "Phone") |
| | | { |
| | | AddPhoneOrEmailFL(accountCodeFL, "Phone"); |
| | |
| | | private void AddPhoneOrEmailFL(FrameLayout accountCodeFrameLayout, string phoneOrEmail) |
| | | { |
| | | accountCodeFrameLayout.RemoveAll(); |
| | | account = string.Empty; |
| | | if (phoneOrEmail == "Phone") |
| | | { |
| | | phoneRow = new PhoneRowForm(); |
| | |
| | | /// <param name="mouseEventArgs">The ${ParameterType} instance containing the event data.</param> |
| | | private void Account_TextChange(object sender, string mouseEventArgs) |
| | | { |
| | | errorBtn.Text = ""; |
| | | errorBtn.Text = string.Empty; |
| | | if ((sender as EditText).Text.Trim().Length > 0) |
| | | { |
| | | //IsRightAccount = true; |
| | |
| | | /// <param name="mouseEventArgs">The ${ParameterType} instance containing the event data.</param> |
| | | private void Code_TextChange(object sender, string mouseEventArgs) |
| | | { |
| | | errorBtn.Text = ""; |
| | | errorBtn.Text = string.Empty; |
| | | if ((sender as EditText).Text.Trim().Length > 0) |
| | | { |
| | | registerBtn.Enable = registerBtn.IsSelected = true; |
| | |
| | | form.FinishSelectEvent += (code) => |
| | | { |
| | | (sender as Button).Text = "+" + code; |
| | | CommonPage.PhoneZoneStr = code; |
| | | }; |
| | | |
| | | //var zoneListView = new PhoneZone { }; |
| | |
| | | |
| | | AccountET = new EditText() |
| | | { |
| | | X = Application.GetRealWidth(193), |
| | | X = Application.GetRealWidth(222), |
| | | Width = Application.GetRealWidth(600), |
| | | Height = Application.GetRealHeight(Button_Height), |
| | | Gravity = Gravity.CenterVertical, |
| | |
| | | |
| | | PasswrodET = new EditText() |
| | | { |
| | | X = Application.GetRealWidth(236), |
| | | X = Application.GetRealWidth(222), |
| | | Width = Application.GetRealWidth(550), |
| | | Height = Application.GetRealHeight(Button_Height), |
| | | Gravity = Gravity.CenterVertical, |
| | |
| | | using Shared.Phone.Device.CommonForm; |
| | | using Shared.Phone.Device.AC; |
| | | using Shared.Phone.UserCenter.DoorLock; |
| | | using Shared.Phone.Device.DeviceLogic; |
| | | |
| | | namespace Shared.Phone.Device.Category |
| | | { |
| | |
| | | BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor |
| | | }; |
| | | functionSceneBodyView.AddChidren(functionTypeScrowView); |
| | | //functionSceneBodyView.SetCornerWithSameRadius(Application.GetRealHeight(50), HDLUtils.RectCornerBottomLeft); |
| | | |
| | | deviceListScrolView = new VerticalScrolViewLayout |
| | | { |
| | |
| | | BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor |
| | | }; |
| | | functionSceneBodyView.AddChidren(deviceListScrolView); |
| | | //deviceListScrolView.SetCornerWithSameRadius(Application.GetRealHeight(50), HDLUtils.RectCornerTopLeft); |
| | | |
| | | tempFunctionTypeBtn = new FunctionButton(); |
| | | tempFunctionTypeBtn.Init("",""); |
| | | |
| | | EventHandler<MouseEventArgs> ShowSameTypeFunction = (object typeSender, MouseEventArgs mouseEventArgs) => |
| | | { |
| | |
| | | { |
| | | UserHomeView.ReadStatus(light, () => |
| | | { |
| | | light.ReadOnOffStatus(); |
| | | light.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch); |
| | | ReadDeviceAttributeLogic.Instance.SendLightStatuComand(deviceUI.CommonDevice); |
| | | }); |
| | | } |
| | | else |
| | |
| | | //防止短时间内多次读取状态 |
| | | if (CommonPage.ReadDeviceStatuSpan < (DateTime.Now - light.LastDateTime).TotalSeconds) |
| | | { |
| | | light.ReadOnOffStatus(); |
| | | light.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch); |
| | | ReadDeviceAttributeLogic.Instance.SendLightStatuComand(deviceUI.CommonDevice); |
| | | } |
| | | } |
| | | |
| | |
| | | Tag = deviceUI, |
| | | Radius = 0 |
| | | }; |
| | | deviceTypeRowLayout.AddRightView(editBtn); |
| | | editBtn.MouseUpEventHandler += deviceDetailHandler; |
| | | |
| | | var delBtn = new Device.CommonForm.RowLayoutDeleteButton() |
| | | { |
| | | Tag = deviceUI, |
| | | Radius = 0 |
| | | }; |
| | | deviceTypeRowLayout.AddRightView(delBtn); |
| | | delBtn.MouseUpEventHandler += delEvent; |
| | | if (room.IsSharedRoom == false) |
| | | { |
| | | deviceTypeRowLayout.AddRightView(editBtn); |
| | | editBtn.MouseUpEventHandler += deviceDetailHandler; |
| | | deviceTypeRowLayout.AddRightView(delBtn); |
| | | delBtn.MouseUpEventHandler += delEvent; |
| | | } |
| | | } |
| | | else if (deviceUI.CommonDevice.Type == ZigBee.Device.DeviceType.AirSwitch) |
| | | { |
| | |
| | | { |
| | | UserHomeView.ReadStatus(airSwitch, () => |
| | | { |
| | | airSwitch.ReadOnOffStatus(); |
| | | airSwitch.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch); |
| | | ReadDeviceAttributeLogic.Instance.SendLightStatuComand(deviceUI.CommonDevice); |
| | | }); |
| | | } |
| | | else |
| | | { |
| | | if ((DateTime.Now - airSwitch.LastDateTime).TotalSeconds > CommonPage.ReadDeviceStatuSpan) |
| | | { |
| | | airSwitch.ReadOnOffStatus(); |
| | | airSwitch.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch); |
| | | ReadDeviceAttributeLogic.Instance.SendLightStatuComand(deviceUI.CommonDevice); |
| | | } |
| | | } |
| | | |
| | |
| | | Tag = deviceUI, |
| | | Radius = 0 |
| | | }; |
| | | deviceTypeRowLayout.AddRightView(editBtn); |
| | | editBtn.MouseUpEventHandler += deviceDetailHandler; |
| | | |
| | | var delBtn = new Device.CommonForm.RowLayoutDeleteButton() |
| | | { |
| | | Tag = deviceUI, |
| | | Radius = 0 |
| | | }; |
| | | deviceTypeRowLayout.AddRightView(delBtn); |
| | | delBtn.MouseUpEventHandler += delEvent; |
| | | if (room.IsSharedRoom == false) |
| | | { |
| | | deviceTypeRowLayout.AddRightView(editBtn); |
| | | editBtn.MouseUpEventHandler += deviceDetailHandler; |
| | | deviceTypeRowLayout.AddRightView(delBtn); |
| | | delBtn.MouseUpEventHandler += delEvent; |
| | | } |
| | | |
| | | } |
| | | else if (deviceUI.CommonDevice.Type == ZigBee.Device.DeviceType.DimmableLight) |
| | | { |
| | |
| | | { |
| | | UserHomeView.ReadStatus(dimmableLight, () => |
| | | { |
| | | dimmableLight.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch); |
| | | dimmableLight.ReadOnOffStatus(); |
| | | dimmableLight.ReadLevel(); |
| | | ReadDeviceAttributeLogic.Instance.SendDimmableLightStatuComand(deviceUI.CommonDevice); |
| | | }); |
| | | } |
| | | else |
| | | { |
| | | if ((DateTime.Now - dimmableLight.LastDateTime).TotalSeconds > CommonPage.ReadDeviceStatuSpan) |
| | | { |
| | | dimmableLight.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch); |
| | | dimmableLight.ReadOnOffStatus(); |
| | | dimmableLight.ReadLevel(); |
| | | ReadDeviceAttributeLogic.Instance.SendDimmableLightStatuComand(deviceUI.CommonDevice); |
| | | } |
| | | } |
| | | |
| | |
| | | Tag = deviceUI, |
| | | Radius = 0 |
| | | }; |
| | | deviceTypeRowLayout.AddRightView(editBtn); |
| | | editBtn.MouseUpEventHandler += deviceDetailHandler; |
| | | |
| | | var delBtn = new Device.CommonForm.RowLayoutDeleteButton() |
| | | { |
| | | Tag = deviceUI, |
| | | Radius = 0 |
| | | }; |
| | | deviceTypeRowLayout.AddRightView(delBtn); |
| | | delBtn.MouseUpEventHandler += delEvent; |
| | | |
| | | if (room.IsSharedRoom == false) |
| | | { |
| | | deviceTypeRowLayout.AddRightView(editBtn); |
| | | editBtn.MouseUpEventHandler += deviceDetailHandler; |
| | | deviceTypeRowLayout.AddRightView(delBtn); |
| | | delBtn.MouseUpEventHandler += delEvent; |
| | | } |
| | | } |
| | | else if (deviceUI.CommonDevice.Type == ZigBee.Device.DeviceType.Thermostat) |
| | | { |
| | |
| | | //发送读取状态命令 |
| | | UserView.UserHomeView.ReadStatus(ac, () => |
| | | { |
| | | ac.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch); |
| | | ac.ReadLocalTemperature(); |
| | | ac.ReadCoolingSetpoint(); |
| | | ac.ReadHeatingSetpoint(); |
| | | ac.ReadAutoSetpoint(); |
| | | ac.ReadFanMode(); |
| | | ac.ReadSystemMode(); |
| | | ac.ReadSystemFansSwingMode(); |
| | | ac.ReadModeSupport(); |
| | | ac.ReadCleanStatu(); |
| | | ReadDeviceAttributeLogic.Instance.SendACStatuComand(deviceUI.CommonDevice); |
| | | }); |
| | | } |
| | | else |
| | |
| | | //防止短时间内多次读取设备状态 |
| | | if ((DateTime.Now - ac.LastDateTime).TotalSeconds > CommonPage.ReadDeviceStatuSpan) |
| | | { |
| | | ac.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch); |
| | | ac.ReadLocalTemperature(); |
| | | ac.ReadCoolingSetpoint(); |
| | | ac.ReadHeatingSetpoint(); |
| | | ac.ReadAutoSetpoint(); |
| | | ac.ReadFanMode(); |
| | | ac.ReadSystemMode(); |
| | | ac.ReadSystemFansSwingMode(); |
| | | ac.ReadModeSupport(); |
| | | ac.ReadCleanStatu(); |
| | | ReadDeviceAttributeLogic.Instance.SendACStatuComand(deviceUI.CommonDevice); |
| | | } |
| | | } |
| | | |
| | |
| | | Tag = deviceUI, |
| | | Radius = 0 |
| | | }; |
| | | deviceTypeRowLayout.AddRightView(editBtn); |
| | | editBtn.MouseUpEventHandler += deviceDetailHandler; |
| | | |
| | | var delBtn = new Device.CommonForm.RowLayoutDeleteButton() |
| | | { |
| | | Tag = deviceUI, |
| | | Radius = 0 |
| | | }; |
| | | deviceTypeRowLayout.AddRightView(delBtn); |
| | | delBtn.MouseUpEventHandler += delEvent; |
| | | if (room.IsSharedRoom == false) |
| | | { |
| | | deviceTypeRowLayout.AddRightView(editBtn); |
| | | editBtn.MouseUpEventHandler += deviceDetailHandler; |
| | | deviceTypeRowLayout.AddRightView(delBtn); |
| | | delBtn.MouseUpEventHandler += delEvent; |
| | | } |
| | | |
| | | deviceRow.ClickBtn.MouseUpEventHandler += (send2, e2) => |
| | | { |
| | |
| | | { |
| | | UserHomeView.ReadStatus(rollerShade, () => |
| | | { |
| | | rollerShade.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch); |
| | | rollerShade.ReadWcdCurrentPositionLiftPercentage(); |
| | | ReadDeviceAttributeLogic.Instance.SendCurtainStatuComand(deviceUI.CommonDevice); |
| | | }); |
| | | } |
| | | else |
| | |
| | | //防止短时间内多次读取 |
| | | if ((DateTime.Now - rollerShade.LastDateTime).TotalSeconds > CommonPage.ReadDeviceStatuSpan) |
| | | { |
| | | rollerShade.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch); |
| | | rollerShade.ReadWcdCurrentPositionLiftPercentage(); |
| | | ReadDeviceAttributeLogic.Instance.SendCurtainStatuComand(deviceUI.CommonDevice); |
| | | } |
| | | } |
| | | |
| | |
| | | Tag = deviceUI, |
| | | Radius = 0 |
| | | }; |
| | | deviceTypeRowLayout.AddRightView(editBtn); |
| | | editBtn.MouseUpEventHandler += deviceDetailHandler; |
| | | |
| | | var delBtn = new Device.CommonForm.RowLayoutDeleteButton() |
| | | { |
| | | Tag = deviceUI, |
| | | Radius = 0 |
| | | }; |
| | | deviceTypeRowLayout.AddRightView(delBtn); |
| | | delBtn.MouseUpEventHandler += delEvent; |
| | | if (room.IsSharedRoom == false) |
| | | { |
| | | deviceTypeRowLayout.AddRightView(editBtn); |
| | | editBtn.MouseUpEventHandler += deviceDetailHandler; |
| | | deviceTypeRowLayout.AddRightView(delBtn); |
| | | delBtn.MouseUpEventHandler += delEvent; |
| | | } |
| | | |
| | | deviceRow.ClickBtn.MouseUpEventHandler += (send2, e2) => |
| | | { |
| | |
| | | { |
| | | Tag = deviceUI |
| | | }; |
| | | deviceTypeRowLayout.AddRightView(editBtn); |
| | | editBtn.MouseUpEventHandler += deviceDetailHandler; |
| | | |
| | | var delBtn = new Device.CommonForm.RowLayoutDeleteButton() |
| | | { |
| | | Tag = deviceUI |
| | | }; |
| | | deviceTypeRowLayout.AddRightView(delBtn); |
| | | delBtn.MouseUpEventHandler += delEvent; |
| | | if (room.IsSharedRoom == false) |
| | | { |
| | | deviceTypeRowLayout.AddRightView(editBtn); |
| | | editBtn.MouseUpEventHandler += deviceDetailHandler; |
| | | deviceTypeRowLayout.AddRightView(delBtn); |
| | | delBtn.MouseUpEventHandler += delEvent; |
| | | } |
| | | } |
| | | else |
| | | { |
| | |
| | | { |
| | | Tag = deviceUI |
| | | }; |
| | | deviceTypeRowLayout.AddRightView(editBtn); |
| | | editBtn.MouseUpEventHandler += deviceDetailHandler; |
| | | |
| | | var delBtn = new Device.CommonForm.RowLayoutDeleteButton() |
| | | { |
| | | Tag = deviceUI |
| | | }; |
| | | deviceTypeRowLayout.AddRightView(delBtn); |
| | | delBtn.MouseUpEventHandler += delEvent; |
| | | if (room.IsSharedRoom == false) |
| | | { |
| | | deviceTypeRowLayout.AddRightView(editBtn); |
| | | editBtn.MouseUpEventHandler += deviceDetailHandler; |
| | | deviceTypeRowLayout.AddRightView(delBtn); |
| | | delBtn.MouseUpEventHandler += delEvent; |
| | | } |
| | | } |
| | | } |
| | | }; |
| | |
| | | var sceneView = new SceneCategoryView(0, 0); |
| | | sceneScrolView.AddChidren(sceneView); |
| | | sceneView.Init(scene, room); |
| | | sceneView.SetViewShadow(true); |
| | | GetDelayScene(sceneScrolView); |
| | | } |
| | | } |
| | |
| | | { IsBackground = true }.Start(); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// GetExecScene |
| | | /// </summary> |
| | | /// <param name="scrolViewLayout"></param> |
| | | private void GetExecScene(VerticalScrolViewLayout scrolViewLayout) |
| | | { |
| | | new System.Threading.Thread(() => |
| | | { |
| | | |
| | | }) |
| | | { IsBackground = true }.Start(); |
| | | } |
| | | #endregion |
| | | |
| | | #region ◆ 自动化__________________________ |
| | |
| | | /// <summary> |
| | | /// backGround |
| | | /// </summary> |
| | | private Button backGround; |
| | | private ImageView backGround; |
| | | |
| | | /// <summary> |
| | | /// 是否修改 |
| | |
| | | /// </summary> |
| | | public Common.Room modifyRoom; |
| | | |
| | | /// <summary> |
| | | /// OldBackgroundImagePath |
| | | /// </summary> |
| | | private string OldBackgroundImagePath; |
| | | /// <summary> |
| | | /// OldIconPathType |
| | | /// </summary> |
| | | public int OldIconPathType; |
| | | |
| | | #endregion |
| | | |
| | |
| | | //设备详细设置界面 |
| | | void detailMouseUpEventHandler(object sender, MouseEventArgs e) |
| | | { |
| | | //设备 |
| | | if (targetDevice.Type == 0) |
| | | { |
| | | if (targetDevice.DeviceUI == null || targetDevice.DeviceUI.CommonDevice == null) |
| | |
| | | }; |
| | | |
| | | } |
| | | //时间间隔 |
| | | else if (targetDevice.Type == 2) |
| | | { |
| | | var delayTimeView = new SelectDelayTime(); |
| | |
| | | RefreshTargetListView(); |
| | | }; |
| | | } |
| | | //场景 |
| | | else if (targetDevice.Type == 1) |
| | | { |
| | | var sceneView = new SelectScene(); |
| | |
| | | /// </summary> |
| | | private void Init() |
| | | { |
| | | //foreach (var floor in Config.Instance.Home.FloorDics) |
| | | //{ |
| | | // floorIds.Add(floor.Key); |
| | | // floorNames.Add(floor.Value); |
| | | // if(Common.Room.CurrentRoom.GetRoomsByFloorId(floor.Key).Count>0) |
| | | // { |
| | | // roomNames.Add(Common.Room.CurrentRoom.GetRoomNamesByFloorId(floor.Key)); |
| | | // rooms.Add(Common.Room.CurrentRoom.GetRoomsByFloorId(floor.Key)); |
| | | // } |
| | | //} |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | }; |
| | | bodyFrameLayout.AddChidren(imgFL); |
| | | |
| | | backGround = new Button() |
| | | backGround = new ImageView() |
| | | { |
| | | Width = Application.GetMinRealAverage(930), |
| | | Height = Application.GetMinRealAverage(464), |
| | | Gravity = Gravity.Center, |
| | | Radius = (uint)Application.GetMinRealAverage(CommonFormResouce.BigFormRadius), |
| | | //UnSelectedImagePath = ImagePath |
| | | UnSelectedImagePath = "SceneIcon/3.jpg" |
| | | ImagePath = "SceneIcon/3.jpg" |
| | | }; |
| | | imgFL.AddChidren(backGround); |
| | | backGround.SetViewShadow(true); |
| | |
| | | }; |
| | | addTargetFL.AddChidren(targetLine); |
| | | |
| | | //添加目标后的展示列表 |
| | | TargetListScrolView = new VerticalScrolViewLayout() |
| | | { |
| | | Y = Application.GetRealHeight(49+127), |
| | | Height = Application.GetRealHeight(730-127-49), |
| | | //BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor |
| | | }; |
| | | targetFL.AddChidren(TargetListScrolView); |
| | | |
| | |
| | | |
| | | if(isModify) |
| | | { |
| | | backGround.UnSelectedImagePath = modifySceneUI.IconPath; |
| | | IconPathType = modifySceneUI.IconPathType; |
| | | OldIconPathType = modifySceneUI.IconPathType; |
| | | if (IconPathType != 0) |
| | | { |
| | | OldBackgroundImagePath = modifySceneUI.IconPath; |
| | | } |
| | | if (modifySceneUI.IconPathType==0) |
| | | { |
| | | backGround.ImagePath = modifySceneUI.IconPath; |
| | | } |
| | | else |
| | | { |
| | | backGround.ImagePath = System.IO.Path.Combine(Config.Instance.FullPath, modifySceneUI.IconPath); |
| | | } |
| | | nameRow.SetTitle(modifySceneUI.Name); |
| | | zoneRow.SetTitle($"{Config.Instance.Home.GetFloorNameById(modifyRoom.FloorId)},{modifyRoom.Name}"); |
| | | IconPathType = modifySceneUI.IconPathType; |
| | | curRoom = modifyRoom; |
| | | sceneTargetDevicesList.AddRange(modifySceneTargetDevicesList); |
| | | } |
| | |
| | | |
| | | #region event |
| | | |
| | | //选择背景图 |
| | | EventHandler<MouseEventArgs> backGroundIMGHander = (sender, e) => |
| | | { |
| | | if (curRoom != null && curRoom.IsSharedRoom) |
| | |
| | | { |
| | | IconPathType = 0; |
| | | backGround.ImageBytes = null; |
| | | backGround.UnSelectedImagePath = imgPath; |
| | | backGround.ImagePath = imgPath; |
| | | }; |
| | | }; |
| | | selectPhotographBtn.MouseUpEventHandler += (send, ee) => |
| | | { |
| | | selectFL.RemoveFromParent(); |
| | | var tradeTime = DateTime.Now.ToString("yyyyMMddHHmmss", DateTimeFormatInfo.InvariantInfo); |
| | | var fileName = $"Scene_{tradeTime}"; |
| | | var fileName = $"SceneIcon_{tradeTime}"; |
| | | //通过相机拍照裁剪 |
| | | CropImage.TakePicture((imagePath) => |
| | | { |
| | |
| | | { |
| | | if (IconPathType != 0) |
| | | { |
| | | Global.DeleteFilebyHomeId(backGround.UnSelectedImagePath); |
| | | Global.DeleteFilebyHomeId(backGround.ImagePath); |
| | | } |
| | | } |
| | | |
| | | IconPathType = 1; |
| | | backGround.ImageBytes = Shared.IO.FileUtils.ReadFile(imagePath); |
| | | backGround.UnSelectedImagePath = imagePath; |
| | | backGround.ImagePath = imagePath; |
| | | System.IO.File.Delete(imagePath); |
| | | |
| | | }, fileName, 2, 1); |
| | |
| | | { |
| | | selectFL.RemoveFromParent(); |
| | | var tradeTime = DateTime.Now.ToString("yyyyMMddHHmmss", DateTimeFormatInfo.InvariantInfo); |
| | | var fileName = $"Scene_{tradeTime}"; |
| | | var fileName = $"SceneIcon_{tradeTime}"; |
| | | //从相册选择图片裁剪 |
| | | CropImage.SelectPicture((imagePath) => |
| | | { |
| | |
| | | { |
| | | if (IconPathType != 0) |
| | | { |
| | | Global.DeleteFilebyHomeId(backGround.UnSelectedImagePath); |
| | | Global.DeleteFilebyHomeId(backGround.ImagePath); |
| | | } |
| | | } |
| | | |
| | | IconPathType = 2; |
| | | backGround.ImageBytes = Shared.IO.FileUtils.ReadFile(imagePath); |
| | | backGround.UnSelectedImagePath = imagePath; |
| | | backGround.ImagePath = imagePath; |
| | | System.IO.File.Delete(imagePath); |
| | | |
| | | }, fileName, 2,1); |
| | |
| | | try |
| | | { |
| | | var tradeTime = DateTime.Now.ToString("yyyyMMddHHmmss", DateTimeFormatInfo.InvariantInfo); |
| | | var fileName = $"Scene_{tradeTime}"; |
| | | //改名 |
| | | var fileName = $"SceneIcon_{tradeTime}"; |
| | | if (modifySceneUI.Name != nameRow.NameText.Text.Trim()) |
| | | { |
| | | if (Common.Room.CurrentRoom.GetSameFloorScenes(curRoom.FloorId).Find(s => s.Name == nameRow.NameText.Text.Trim()) != null) |
| | | { |
| | | Common.CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.TheSceneHadExist); |
| | | CommonFormResouce.ShowTip(Language.StringByID(R.MyInternationalizationString.TheSceneHadExist)); |
| | | return; |
| | | } |
| | | //修改名字 |
| | | var r = await ZigBee.Device.Scene.RenameSceneAsync(modifySceneUI.Id, nameRow.NameText.Text.Trim()); |
| | | var reName = r.sceneRenameResponseData.Result; |
| | | if (reName == 0) |
| | | { |
| | | //失败 |
| | | return; |
| | | } |
| | | else if (reName == 1) |
| | | { |
| | | //成功 |
| | | modifySceneUI.Name = nameRow.NameText.Text.Trim(); |
| | | |
| | | } |
| | | else if (reName == 2) |
| | | { |
| | | //没有该场景 |
| | | return; |
| | | } |
| | | } |
| | | //图片 |
| | | if(IconPathType==1 || IconPathType ==2) |
| | | if (OldIconPathType != 0) |
| | | { |
| | | Shared.IO.FileUtils.DeleteFile(System.IO.Path.Combine(Config.Instance.FullPath, OldBackgroundImagePath)); |
| | | } |
| | | if (IconPathType == 1 || IconPathType == 2) |
| | | { |
| | | Shared.IO.FileUtils.WriteFileByBytes(System.IO.Path.Combine(Config.Instance.FullPath, fileName), backGround.ImageBytes); |
| | | modifySceneUI.IconPath = System.IO.Path.Combine(Config.Instance.FullPath, fileName); |
| | | modifySceneUI.IconPath = fileName; |
| | | } |
| | | else |
| | | { |
| | | modifySceneUI.IconPath = backGround.UnSelectedImagePath; |
| | | modifySceneUI.IconPath = backGround.ImagePath; |
| | | } |
| | | modifySceneUI.IconPathType = IconPathType; |
| | | |
| | |
| | | } |
| | | else if (result == 0) |
| | | { |
| | | //失败 |
| | | Common.CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.FailedPleaseTryAgain); |
| | | } |
| | | else if (result == -1) |
| | | { |
| | | //已存在 |
| | | Common.CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.TheSceneHadExist); |
| | | } |
| | | } |
| | |
| | | var tradeTime = DateTime.Now.ToString("yyyyMMddHHmmss", DateTimeFormatInfo.InvariantInfo); |
| | | var fileName = $"SceneIcon_{tradeTime}.png"; |
| | | string imgPath; |
| | | //图片 |
| | | if (IconPathType == 1 || IconPathType == 2) |
| | | { |
| | | Shared.IO.FileUtils.WriteFileByBytes(System.IO.Path.Combine(Config.Instance.FullPath, fileName), backGround.ImageBytes); |
| | | imgPath = System.IO.Path.Combine(Config.Instance.FullPath, fileName); |
| | | imgPath = fileName; |
| | | } |
| | | else |
| | | { |
| | | imgPath = backGround.UnSelectedImagePath; |
| | | imgPath = backGround.ImagePath; |
| | | } |
| | | if (Common.Room.CurrentRoom.GetSameFloorScenes(curRoom.FloorId).Find(s => s.Name == nameRow.NameText.Text.Trim()) != null) |
| | | { |
| | |
| | | } |
| | | else if (result == 0) |
| | | { |
| | | //失败 |
| | | CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.AddSceneFail); |
| | | } |
| | | else if (result == -1) |
| | | { |
| | | //已存在 |
| | | CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.TheSceneHadExist); |
| | | } |
| | | } |
| | |
| | | { |
| | | var itemView = new FrameLayout() |
| | | { |
| | | Height = Application.GetRealHeight(311 + CommonPage.XLeft) |
| | | Height = Application.GetRealHeight(311 + 58) |
| | | }; |
| | | scrollView.AddChidren(itemView); |
| | | for (int i = 0; i < 2; i++) |
| | | { |
| | | var icon = new Button() |
| | | var icon = new ImageView() |
| | | { |
| | | X=Application.GetRealWidth(CommonPage.XLeft+i*(467+32)), |
| | | Width=Application.GetMinRealAverage(467), |
| | | Height=Application.GetMinRealAverage(311), |
| | | Gravity=Gravity.CenterVertical, |
| | | UnSelectedImagePath = $"SceneIcon/{k}.jpg", |
| | | X=Application.GetRealWidth(58+i*(467+32)), |
| | | Y=Application.GetRealHeight(58), |
| | | Width=Application.GetRealWidth(467), |
| | | Height=Application.GetRealHeight(311), |
| | | ImagePath = $"SceneIcon/{k}.jpg", |
| | | Radius =(uint)Application.GetRealHeight(17) |
| | | }; |
| | | itemView.AddChidren(icon); |
| | | icon.SetViewShadow(true); |
| | |
| | | |
| | | EventHandler<MouseEventArgs> selectIcon = (sender, e) => |
| | | { |
| | | //CategoryAddScene.ImagePath = icon.UnSelectedImagePath; |
| | | //Room.AddRoomScene.ImagePath = icon.UnSelectedImagePath; |
| | | action?.Invoke(icon.UnSelectedImagePath); |
| | | action?.Invoke(icon.ImagePath); |
| | | action = null; |
| | | this.RemoveFromParent(); |
| | | |
| | | }; |
| | | icon.MouseUpEventHandler += selectIcon; |
| | | } |
| | | } |
| | | |
| | | } |
| | | #endregion |
| | | } |
| | |
| | | |
| | | if (sceneTarget.TaskList.Count > 0) |
| | | { |
| | | if (sceneTarget.TaskList[0].Data1 == 0) |
| | | if (sceneTarget.TaskList[0].Data1 == 1) |
| | | { |
| | | open.IsSelected = false; |
| | | shut.IsSelected = true; |
| | |
| | | { |
| | | open.IsSelected = true; |
| | | shut.IsSelected = false; |
| | | open.SetProgress(sceneTarget.TaskList[0].Data1); |
| | | open.SetProgress(sceneTarget.TaskList[0].Data2); |
| | | } |
| | | } |
| | | |
| | |
| | | if (shut.IsSelected) |
| | | { |
| | | //关 |
| | | data1 = 0; |
| | | data1 = 1; |
| | | data2 = 0; |
| | | } |
| | | else |
| | | { |
| | | //百分比 |
| | | data1 = open.SeekBar.Progress; |
| | | data2 = 0; |
| | | data1 = 5; |
| | | data2 = open.SeekBar.Progress; |
| | | } |
| | | |
| | | var taskInfo = new ZigBee.Device.Scene.TaskListInfo |
| | |
| | | |
| | | namespace Shared.Phone.Device.CommonForm |
| | | { |
| | | public class ButtonLineForm:FrameLayout |
| | | public class ButtonLineForm : FrameLayout |
| | | { |
| | | /// <summary> |
| | | /// name |
| | |
| | | { |
| | | Width = Width, |
| | | Height = Height - 3, |
| | | TextColor=ZigbeeColor.Current.GXCTextGrayColor4, |
| | | SelectedTextColor=ZigbeeColor.Current.GXCTextDeepBlackColor |
| | | TextColor = ZigbeeColor.Current.GXCTextGrayColor4, |
| | | SelectedTextColor = ZigbeeColor.Current.GXCTextDeepBlackColor, |
| | | TextSize = CommonFormResouce.TextSize |
| | | }; |
| | | AddChidren(NameBtn); |
| | | |
| | | Line = new Line(Height,Width/2,2); |
| | | Line = new Line(Height, Width / 2, 2); |
| | | AddChidren(Line); |
| | | } |
| | | |
| | |
| | | public void SetStatu(bool statu) |
| | | { |
| | | NameBtn.IsSelected = Line.IsSelected = statu; |
| | | NameBtn.TextSize = statu ? CommonFormResouce.TextSize_Selected : CommonFormResouce.TextSize; |
| | | } |
| | | } |
| | | } |
| | |
| | | /// <param name="statu"></param> |
| | | public void SetStatu(bool statu) |
| | | { |
| | | OpenOrUpBtn.IsSelected = CloseOrDownBtn.IsSelected = StopBtn.IsSelected = statu; |
| | | //OpenOrUpBtn.IsSelected = CloseOrDownBtn.IsSelected = StopBtn.IsSelected = statu; |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | public const int AppRealWidth = 1080; |
| | | |
| | | /// <summary> |
| | | /// 14 |
| | | /// </summary> |
| | | public const int TextSize = 14; |
| | | /// <summary> |
| | | /// 16 |
| | | /// </summary> |
| | | public const int TextSize_Selected = 16; |
| | | |
| | | /// <summary> |
| | | /// 字体12 |
| | | /// </summary> |
| | | public const int loginTextSize = 12; |
| | |
| | | Y = Application.GetMinRealAverage(17), |
| | | Width = Application.GetMinRealAverage(320), |
| | | Height = Application.GetMinRealAverage(63), |
| | | TextColor = ZigbeeColor.Current.GXCTextGrayColor, |
| | | TextColor = ZigbeeColor.Current.GXCTextWhiteColor, |
| | | SelectedTextColor = ZigbeeColor.Current.GXCTextWhiteColor, |
| | | TextAlignment=TextAlignment.CenterLeft |
| | | }; |
| | |
| | | /// <summary> |
| | | /// SceneIcon |
| | | /// </summary> |
| | | public Button Icon; |
| | | public ImageView Icon; |
| | | /// <summary> |
| | | /// RoomNameButton |
| | | /// </summary> |
| | |
| | | }; |
| | | AddChidren(CardBG); |
| | | |
| | | Icon = new Button |
| | | Icon = new ImageView |
| | | { |
| | | X = Application.GetMinRealAverage(14), |
| | | Width = Application.GetMinRealAverage(467), |
| | |
| | | /// <param name="imagePath"></param> |
| | | public void SetRoomIcon(string imagePath) |
| | | { |
| | | Icon.UnSelectedImagePath = imagePath; |
| | | Icon.ImagePath = imagePath; |
| | | } |
| | | |
| | | |
New file |
| | |
| | | using System; |
| | | using Shared.Common; |
| | | using Shared.Phone.UserCenter; |
| | | using Shared.Phone.UserView; |
| | | |
| | | namespace Shared.Phone.Device.CommonForm |
| | | { |
| | | public class RoomView:FrameLayout |
| | | { |
| | | /// <summary> |
| | | /// Room |
| | | /// </summary> |
| | | private Common.Room room; |
| | | /// <summary> |
| | | /// action |
| | | /// </summary> |
| | | public Action action; |
| | | |
| | | public override void RemoveFromParent()
|
| | | {
|
| | | HdlGatewayReceiveLogic.Current.RemoveEvent("TemperatrueDevice");
|
| | | HdlGatewayReceiveLogic.Current.RemoveEvent("HumidityDevice");
|
| | | base.RemoveFromParent();
|
| | | } |
| | | |
| | | /// <summary> |
| | | /// RoomView |
| | | /// </summary> |
| | | /// <param name="x"></param> |
| | | /// <param name="y"></param> |
| | | public RoomView(int x, int y) |
| | | { |
| | | X = Application.GetRealWidth(x); |
| | | Y = Application.GetRealHeight(y); |
| | | Width = Application.GetRealWidth(717); |
| | | Height = Application.GetRealHeight(478); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// Init |
| | | /// </summary> |
| | | /// <param name="r"></param> |
| | | public void Init(Common.Room r) |
| | | { |
| | | this.room = r; |
| | | |
| | | var roomBackView = new FrameLayout() |
| | | { |
| | | Width = Application.GetRealWidth(717), |
| | | Height = Application.GetRealHeight(478) |
| | | }; |
| | | AddChidren(roomBackView); |
| | | |
| | | var roomImg = new ImageView() |
| | | { |
| | | ImagePath = room.BackgroundImageType == 0 ? room.BackgroundImage : System.IO.Path.Combine(Config.Instance.FullPath, room.BackgroundImage), |
| | | Radius = (uint)Application.GetRealHeight(17) |
| | | }; |
| | | roomBackView.AddChidren(roomImg); |
| | | |
| | | var roomNameBackground = new FrameLayout |
| | | { |
| | | X = Application.GetRealWidth(29), |
| | | Y = Application.GetRealHeight(282), |
| | | Width = Application.GetRealWidth(200), |
| | | Height = Application.GetRealHeight(80), |
| | | BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor2 |
| | | }; |
| | | roomBackView.AddChidren(roomNameBackground); |
| | | roomNameBackground.SetCornerWithSameRadius(Application.GetRealHeight(40), HDLUtils.RectCornerTopRight | HDLUtils.RectCornerBottomRight); |
| | | |
| | | var roomName = new Button() |
| | | { |
| | | X = Application.GetRealWidth(5), |
| | | Width = Application.GetRealWidth(190), |
| | | Text = room.Name, |
| | | TextColor = ZigbeeColor.Current.GXCTextWhiteColor, |
| | | }; |
| | | roomNameBackground.AddChidren(roomName); |
| | | |
| | | |
| | | var roomTemperatureBackground = new FrameLayout |
| | | { |
| | | X = Application.GetRealWidth(29), |
| | | Y = Application.GetRealHeight(374), |
| | | Width = Application.GetRealWidth(340), |
| | | Height = Application.GetRealHeight(80), |
| | | BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor2 |
| | | }; |
| | | roomBackView.AddChidren(roomTemperatureBackground); |
| | | roomTemperatureBackground.SetCornerWithSameRadius(Application.GetRealHeight(40), HDLUtils.RectCornerTopRight | HDLUtils.RectCornerBottomRight); |
| | | |
| | | var temperatureIcon = new Button |
| | | { |
| | | X = Application.GetRealWidth(12), |
| | | Width = Application.GetMinRealAverage(58), |
| | | Height = Application.GetMinRealAverage(58), |
| | | Gravity = Gravity.CenterVertical, |
| | | UnSelectedImagePath = "Room/Temperature.png" |
| | | }; |
| | | roomTemperatureBackground.AddChidren(temperatureIcon); |
| | | |
| | | var temperatureText = new Button |
| | | { |
| | | X = Application.GetRealWidth(69), |
| | | Width = Application.GetRealWidth(86), |
| | | Height = Application.GetRealHeight(58), |
| | | Gravity = Gravity.CenterVertical, |
| | | Text = "26℃" |
| | | }; |
| | | roomTemperatureBackground.AddChidren(temperatureText); |
| | | |
| | | var humidityIcon = new Button |
| | | { |
| | | X = Application.GetRealWidth(179), |
| | | Width = Application.GetMinRealAverage(58), |
| | | Height = Application.GetMinRealAverage(58), |
| | | Gravity = Gravity.CenterVertical, |
| | | UnSelectedImagePath = "Room/Humidity.png" |
| | | }; |
| | | roomTemperatureBackground.AddChidren(humidityIcon); |
| | | |
| | | var humidityText = new Button |
| | | { |
| | | X = Application.GetRealWidth(236), |
| | | Width = Application.GetRealWidth(86), |
| | | Height = Application.GetRealHeight(58), |
| | | Gravity = Gravity.CenterVertical, |
| | | Text = "13%" |
| | | }; |
| | | roomTemperatureBackground.AddChidren(humidityText); |
| | | |
| | | |
| | | if (string.IsNullOrEmpty(room.TemperatrueDevice) == false) |
| | | { |
| | | HdlGatewayReceiveLogic.Current.RemoveEvent("TemperatrueDevice"); |
| | | HdlGatewayReceiveLogic.Current.AddAttributeEvent("TemperatrueDevice", ReceiveComandDiv.A设备属性上报, (Action<ZigBee.Device.CommonDevice>)((report) => |
| | | { |
| | | string mainKeys = Common.LocalDevice.Current.GetDeviceMainKeys(report); |
| | | if (room.TemperatrueDevice != mainKeys) |
| | | { |
| | | return; |
| | | } |
| | | //移除掉事件 |
| | | HdlGatewayReceiveLogic.Current.RemoveEvent("TemperatrueDevice"); |
| | | |
| | | foreach (var data in report.DeviceStatusReport.AttriBute) |
| | | { |
| | | if (data.AttributeId == (int)ZigBee.Device.AttriButeId.MeasuredValue) |
| | | { |
| | | if (data.AttriButeData == 0) |
| | | { |
| | | //0℃ |
| | | temperatureText.Text = "0.0℃"; |
| | | } |
| | | else if (data.AttriButeData > 32767) |
| | | { |
| | | //负数(特殊处理) |
| | | string strValue = (data.AttriButeData - 65536).ToString(); |
| | | //小数点需要一位 |
| | | strValue = strValue.Substring(0, strValue.Length - 1); |
| | | temperatureText.Text = strValue.Insert(strValue.Length - 1, ".") + "℃"; |
| | | } |
| | | else |
| | | { |
| | | //小数点需要一位 |
| | | string strValue = data.AttriButeData.ToString(); |
| | | strValue = strValue.Substring(0, strValue.Length - 1); |
| | | temperatureText.Text = strValue.Insert(strValue.Length - 1, ".") + "℃"; |
| | | } |
| | | } |
| | | } |
| | | })); |
| | | //发送获取温度的命令 |
| | | var dev = Common.LocalDevice.Current.GetDevice(room.TemperatrueDevice); |
| | | if (dev != null) |
| | | { |
| | | (dev as ZigBee.Device.TemperatureSensor).ReadTemperatureOrHumidity(); |
| | | } |
| | | } |
| | | |
| | | if (string.IsNullOrEmpty(room.HumidityDevice) == false) |
| | | { |
| | | HdlGatewayReceiveLogic.Current.RemoveEvent("HumidityDevice"); |
| | | HdlGatewayReceiveLogic.Current.AddAttributeEvent("HumidityDevice", ReceiveComandDiv.A设备属性上报, (report) => |
| | | { |
| | | string mainKeys = Common.LocalDevice.Current.GetDeviceMainKeys(report); |
| | | if (room.HumidityDevice != mainKeys) |
| | | { |
| | | return; |
| | | } |
| | | //移除掉事件 |
| | | HdlGatewayReceiveLogic.Current.RemoveEvent("HumidityDevice"); |
| | | foreach (var data in report.DeviceStatusReport.AttriBute) |
| | | { |
| | | if (data.AttributeId == (int)ZigBee.Device.AttriButeId.MeasuredValue) |
| | | { |
| | | if (data.AttriButeData == 0) |
| | | { |
| | | //0 |
| | | humidityText.Text = "0.0%"; |
| | | } |
| | | else |
| | | { |
| | | //小数点需要一位(湿度没有负数) |
| | | string strValue = data.AttriButeData.ToString(); |
| | | strValue = strValue.Substring(0, strValue.Length - 1); |
| | | humidityText.Text = strValue.Insert(strValue.Length - 1, ".") + "%"; |
| | | } |
| | | } |
| | | } |
| | | }); |
| | | //发送获取湿度的命令 |
| | | var dev = Common.LocalDevice.Current.GetDevice(room.HumidityDevice); |
| | | if (dev != null) |
| | | { |
| | | (dev as ZigBee.Device.TemperatureSensor).ReadTemperatureOrHumidity(); |
| | | } |
| | | } |
| | | |
| | | var roomListBtn = new Button() |
| | | { |
| | | X = roomBackView.Width - Application.GetRealWidth(100 + 20), |
| | | Y = Application.GetRealHeight(20), |
| | | Width = Application.GetMinRealAverage(100), |
| | | Height = Application.GetMinRealAverage(100), |
| | | UnSelectedImagePath = "Room/List.png", |
| | | }; |
| | | roomBackView.AddChidren(roomListBtn); |
| | | |
| | | roomListBtn.MouseUpEventHandler += (send, e) => |
| | | { |
| | | CommonPage.Instance.IsDrawerLockMode = true; |
| | | var editRoom = new Device.Room.EditRoom(); |
| | | HomePage.Instance.AddChidren(editRoom); |
| | | HomePage.Instance.PageIndex += 1; |
| | | editRoom.Show(room); |
| | | editRoom.action += () => |
| | | { |
| | | action?.Invoke(); |
| | | }; |
| | | }; |
| | | |
| | | } |
| | | } |
| | | } |
| | |
| | | /// <summary> |
| | | /// sceneImg |
| | | /// </summary> |
| | | private Button sceneImg; |
| | | private ImageView sceneImg; |
| | | |
| | | /// <summary> |
| | | /// SceneCategoryView |
| | |
| | | { |
| | | Y = Application.GetRealHeight(46), |
| | | Height = Application.GetRealHeight(446 - 46), |
| | | LineColor = ZigbeeColor.Current.GXCGrayBackgroundColor |
| | | LineColor = ZigbeeColor.Current.GXCGrayBackgroundColor, |
| | | Tag= scene |
| | | }; |
| | | AddChidren(sceneRowLayout); |
| | | |
| | | sceneImg = new Button() |
| | | sceneImg = new ImageView() |
| | | { |
| | | X = Application.GetRealWidth(179), |
| | | Width = Application.GetRealWidth(844), |
| | | Height = Application.GetRealHeight(400), |
| | | UnSelectedImagePath = scene.IconPath, |
| | | ImagePath = scene.IconPathType == 0 ? scene.IconPath : System.IO.Path.Combine(Config.Instance.FullPath, scene.IconPath), |
| | | Radius = (uint)Application.GetRealHeight(17) |
| | | }; |
| | | sceneRowLayout.AddChidren(sceneImg); |
| | | //sceneImg.SetViewShadow(true); |
| | | |
| | | var leftFL = new FrameLayout |
| | | { |
| | |
| | | if (room.IsLove) |
| | | { |
| | | Shared.Common.Room.CurrentRoom.GetLoveRoom().DeleteScene(scene); |
| | | RemoveViewByTag((sender as Button).Tag); |
| | | RemoveFromParent(); |
| | | } |
| | | else |
| | | { |
| | | var tip = new CustomAlert { }; |
| | | AddChidren(tip); |
| | | Common.CommonPage.Instance.AddChidren(tip); |
| | | tip.Show(Language.StringByID(R.MyInternationalizationString.ConfirmDelete)); |
| | | |
| | | tip.ResultEventHandler += async (e1) => |
| | |
| | | { |
| | | room.RemoveScene(scene); |
| | | //RefreshBodyView(); |
| | | RemoveViewByTag((sender as Button).Tag); |
| | | RemoveFromParent(); |
| | | } |
| | | //0 移除失败 |
| | | else if (removeSceneAllData.removeSceneData.Result == 0) |
| | |
| | | { |
| | | room.RemoveScene(scene); |
| | | //RefreshBodyView(); |
| | | RemoveViewByTag((sender as Button).Tag); |
| | | RemoveFromParent(); |
| | | CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.TheSceneIsNull); |
| | | return; |
| | | } |
| | |
| | | /// <summary> |
| | | /// SceneIcon |
| | | /// </summary> |
| | | public Button SceneIcon; |
| | | public ImageView SceneIcon; |
| | | /// <summary> |
| | | /// statu |
| | | /// </summary> |
| | |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// SceneMainView |
| | | /// </summary> |
| | | /// <param name="x"></param> |
| | | /// <param name="y"></param> |
| | | public SceneMainView(int x, int y) |
| | | { |
| | | X = Application.GetRealWidth(x); |
| | | Y = Application.GetRealHeight(y); |
| | | Width = Application.GetMinRealAverage(487); |
| | | Height = Application.GetMinRealAverage(348); |
| | | Width = Application.GetRealWidth(487); |
| | | Height = Application.GetRealHeight(358); |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | /// </summary> |
| | | private void InitFrame() |
| | | { |
| | | CardBG = new Button |
| | | { |
| | | Width = Application.GetMinRealAverage(487), |
| | | Height = Application.GetMinRealAverage(348), |
| | | UnSelectedImagePath = "Item/FunctionCardView.png", |
| | | Gravity = Gravity.CenterHorizontal |
| | | }; |
| | | AddChidren(CardBG); |
| | | //CardBG = new Button |
| | | //{ |
| | | // Width = Application.GetMinRealAverage(487), |
| | | // Height = Application.GetMinRealAverage(348), |
| | | // UnSelectedImagePath = "Item/FunctionCardView.png", |
| | | // Gravity = Gravity.CenterHorizontal |
| | | //}; |
| | | //AddChidren(CardBG); |
| | | |
| | | SceneIcon = new Button |
| | | SceneIcon = new ImageView |
| | | { |
| | | X = Application.GetMinRealAverage(14), |
| | | X=Application.GetRealWidth(14), |
| | | Width = Application.GetMinRealAverage(458), |
| | | Height = Application.GetRealHeight(305), |
| | | Gravity = Gravity.CenterHorizontal |
| | | Height = Application.GetMinRealAverage(305), |
| | | Gravity = Gravity.CenterHorizontal, |
| | | Radius= (uint)Application.GetRealHeight(17) |
| | | }; |
| | | AddChidren(SceneIcon); |
| | | //SceneIcon.SetViewShadow(true); |
| | | //SceneIcon.SetCornerWithSameRadius(Application.GetRealHeight(100), HDLUtils.RectCornerBottomRight); |
| | | |
| | | sceneBG = new Button |
| | | { |
| | | Width = Application.GetMinRealAverage(487), |
| | | Height = Application.GetMinRealAverage(348), |
| | | UnSelectedImagePath = "Item/SceneCard.png", |
| | | UnSelectedImagePath = "Scene/Background.png", |
| | | Gravity = Gravity.CenterHorizontal |
| | | }; |
| | | AddChidren(sceneBG); |
| | |
| | | Y = Application.GetMinRealAverage(239), |
| | | Width = Application.GetMinRealAverage(279), |
| | | Height = Application.GetMinRealAverage(60), |
| | | TextColor = ZigbeeColor.Current.GXCTextBlackColor, |
| | | TextColor = ZigbeeColor.Current.GXCTextWhiteColor, |
| | | SelectedTextColor = ZigbeeColor.Current.GXCTextSelectedColor, |
| | | TextAlignment = TextAlignment.CenterLeft, |
| | | }; |
| | |
| | | /// </summary> |
| | | private void InitStatu() |
| | | { |
| | | SetIimeByDelayTime(scene.SceneDelayTime); |
| | | SetTimeByDelayTime(scene.SceneDelayTime); |
| | | SetSceneNameText(scene.Name); |
| | | SetIcon(scene.IconPath); |
| | | SetCollect(Common.Room.CurrentRoom.GetLoveRoom().SceneUIFilePathList.Contains(scene.FileName)); |
| | |
| | | TimeButton.MouseUpEventHandler += SetTimeEvents; |
| | | CollectButton.MouseUpEventHandler += CollectionEvent; |
| | | SceneIcon.MouseUpEventHandler += SceneUpHandler; |
| | | sceneBG.MouseUpEventHandler += SceneUpHandler; |
| | | SceneNameButton.MouseUpEventHandler += SceneUpHandler; |
| | | } |
| | | |
| | |
| | | /// SetIimeByDelayTime |
| | | /// </summary> |
| | | /// <param name="time"></param> |
| | | public void SetIimeByDelayTime(int time) |
| | | public void SetTimeByDelayTime(int time) |
| | | { |
| | | if (time > 0) |
| | | { |
| | |
| | | /// <param name="iconPath"></param> |
| | | public void SetIcon(string iconPath) |
| | | { |
| | | SceneIcon.UnSelectedImagePath = iconPath; |
| | | if (scene.IconPathType == 0) |
| | | { |
| | | SceneIcon.ImagePath = iconPath; |
| | | } |
| | | else |
| | | { |
| | | SceneIcon.ImagePath = System.IO.Path.Combine(Config.Instance.FullPath, iconPath); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | timeSelect.TimeAction = (t) => |
| | | { |
| | | scene.SceneDelayTime = t; |
| | | SetIimeByDelayTime(t); |
| | | SetTimeByDelayTime(t); |
| | | }; |
| | | } |
| | | |
| | |
| | | public void SetStatu(bool statu) |
| | | { |
| | | SelectBtn.Visible = statu; |
| | | if(statu) |
| | | { |
| | | SetProgress(100); |
| | | } |
| | | else |
| | | { |
| | | SetProgress(0); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | using System; |
| | | using Shared.Common; |
| | | using Shared.Phone.Device.CommonForm; |
| | | using Shared.Phone.Device.DeviceLogic; |
| | | using Shared.Phone.UserView; |
| | | using ZigBee.Device; |
| | | |
| | |
| | | { |
| | | curtainSeekBar.Progress = rollerShade.WcdCurrentPositionLiftPercentage; |
| | | } |
| | | //SeekBar.Progress = rollerShade.WcdCurrentPositionLiftPercentage; |
| | | //seekBarTitle.Text = $"{SeekBar.Progress} %"; |
| | | rollerShade.LastDateTime = DateTime.Now; |
| | | } |
| | | else if (common.DeviceStatusReport.AttriBute[0].AttributeId == 0) |
| | |
| | | { |
| | | UserHomeView.ReadStatus(rollerShade, () => |
| | | { |
| | | rollerShade.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch); |
| | | rollerShade.ReadWcdCurrentPositionLiftPercentage(); |
| | | ReadDeviceAttributeLogic.Instance.SendCurtainStatuComand(device.CommonDevice); |
| | | }); |
| | | } |
| | | else |
| | |
| | | //防止短时间内多次读取 |
| | | if ((DateTime.Now - rollerShade.LastDateTime).TotalSeconds > CommonPage.ReadDeviceStatuSpan) |
| | | { |
| | | rollerShade.ReadWcdCurrentPositionLiftPercentage(); |
| | | rollerShade.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch); |
| | | ReadDeviceAttributeLogic.Instance.SendCurtainStatuComand(device.CommonDevice); |
| | | } |
| | | } |
| | | |
| | |
| | | //upBtn.MouseUpEventHandler += Up; |
| | | //stopBtn.MouseUpEventHandler += Stop; |
| | | //downBtn.MouseUpEventHandler += Down; |
| | | //SeekBar.ProgressChanged += SeekBar_ProgressChange; |
| | | //collectionBtn.MouseUpEventHandler += Collection; |
| | | //moreBtn.MouseUpEventHandler += More; |
| | | //roomBtn.MouseUpEventHandler += BackToRoomHandler; |
| | | //roomName.MouseUpEventHandler += BackToRoomHandler; |
| | | collectionBtn.MouseUpEventHandler += Collection; |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region ◆ 控制___________________________ |
| | | |
| | | /// <summary> |
| | | /// 滑条移动发送命令 |
| | | /// </summary> |
| | | /// <param name="sender">Sender.</param> |
| | | /// <param name="mouseEventArgs">The ${ParameterType} instance containing the event data.</param> |
| | | private void SeekBar_ProgressChange(object sender, int mouseEventArgs) |
| | | { |
| | | //seekBarTitle.Text = $"{SeekBar.Progress}%"; |
| | | //(device.CommonDevice as ZigBee.Device.Rollershade).WcdGoToTiltValue(SeekBar.Progress); |
| | | } |
| | | |
| | | #region ◆ 控制__________________________ |
| | | |
| | | /// <summary> |
| | | /// 上、开 |
| | |
| | | curtainSeekBar.Width = Application.GetRealWidth(570); |
| | | curtainSeekBar.Height = Application.GetRealHeight(513); |
| | | curtainSeekBar.Gravity = Gravity.CenterHorizontal; |
| | | curtainSeekBar.Progress = (device.CommonDevice as Rollershade).WcdCurrentPositionLiftPercentage; |
| | | layout.AddChidren(curtainSeekBar); |
| | | |
| | | curtainSeekBar.OnStopTrackingTouchEvent += (sender, e) => |
| | | { |
| | | (device.CommonDevice as Rollershade).WcdGoToTiltValue(curtainRollSeekBar.Progress); |
| | | (device.CommonDevice as Rollershade).WcdGoToTiltValue(curtainSeekBar.Progress); |
| | | }; |
| | | } |
| | | } |
| | |
| | | /// <param name="e">E.</param> |
| | | private void Collection(object sender, MouseEventArgs e) |
| | | { |
| | | //collection |
| | | if (collectionBtn.IsSelected) |
| | | { |
| | | Shared.Common.Room.Lists[0].DeleteDevice(device.FileName); |
| | | Common.Room.CurrentRoom.GetLoveRoom().DeleteDevice(device.FileName); |
| | | collectionBtn.IsSelected = false; |
| | | } |
| | | else |
| | | { |
| | | Shared.Common.Room.Lists[0].AddDevice(device.FileName); |
| | | Common.Room.CurrentRoom.GetLoveRoom().AddDevice(device.FileName); |
| | | collectionBtn.IsSelected = true; |
| | | } |
| | | } |
New file |
| | |
| | | using System; |
| | | using ZigBee.Device; |
| | | |
| | | namespace Shared.Phone.Device.DeviceLogic |
| | | { |
| | | public class ReadDeviceAttributeLogic |
| | | { |
| | | #region ◆ 变量____________________________ |
| | | /// <summary> |
| | | /// ReadDeviceAttributeLogic |
| | | /// </summary> |
| | | private static ReadDeviceAttributeLogic _instance; |
| | | /// <summary> |
| | | /// ReadDeviceAttributeLogic |
| | | /// </summary> |
| | | public static ReadDeviceAttributeLogic Instance |
| | | { |
| | | get |
| | | { |
| | | if(_instance == null) |
| | | { |
| | | _instance = new ReadDeviceAttributeLogic(); |
| | | } |
| | | return _instance; |
| | | } |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region ◆ 空调____________________________ |
| | | |
| | | /// <summary> |
| | | /// SendACStatuComand |
| | | /// </summary> |
| | | /// <param name="device">设备</param> |
| | | public void SendACStatuComand(CommonDevice device) |
| | | { |
| | | SendThermostatStatuComand(device); |
| | | SendFanStatuComand(device); |
| | | } |
| | | |
| | | /// <summary>
|
| | | /// SendThermostatStatuComand
|
| | | /// </summary>
|
| | | /// <param name="device">设备</param>
|
| | | private void SendThermostatStatuComand(CommonDevice device)
|
| | | {
|
| | | var jObject = new Newtonsoft.Json.Linq.JObject
|
| | | {
|
| | | { "DeviceAddr",device.DeviceAddr },
|
| | | { "Epoint", device.DeviceEpoint },
|
| | | { "Cluster_ID", (int)Cluster_ID.Thermostat },
|
| | | { "Command", 108 }
|
| | | };
|
| | | var attriBute = new Newtonsoft.Json.Linq.JArray
|
| | | {
|
| | | new Newtonsoft.Json.Linq.JObject
|
| | | {
|
| | | { "AttriButeId", (int)AttriButeId.LocalTemperature}
|
| | | },
|
| | | new Newtonsoft.Json.Linq.JObject
|
| | | {
|
| | | { "AttriButeId", (int)AttriButeId.CoolingSetpoint}
|
| | | },
|
| | | new Newtonsoft.Json.Linq.JObject
|
| | | {
|
| | | { "AttriButeId", (int)AttriButeId.HeatingSetpoint}
|
| | | },
|
| | | new Newtonsoft.Json.Linq.JObject
|
| | | {
|
| | | { "AttriButeId", (int)AttriButeId.AutoSetpoint}
|
| | | },
|
| | | new Newtonsoft.Json.Linq.JObject
|
| | | {
|
| | | { "AttriButeId", (int)AttriButeId.SystemMode}
|
| | | },
|
| | | new Newtonsoft.Json.Linq.JObject
|
| | | {
|
| | | { "AttriButeId", (int)AttriButeId.AcModeSupport}
|
| | | },
|
| | | new Newtonsoft.Json.Linq.JObject
|
| | | {
|
| | | { "AttriButeId", (int)AttriButeId.CleanStatu}
|
| | | }
|
| | |
|
| | | };
|
| | | var data = new Newtonsoft.Json.Linq.JObject { { "AttriBute", attriBute } };
|
| | | jObject.Add("Data", data);
|
| | | device.Gateway?.Send(("GetDeviceStatus"), jObject.ToString());
|
| | | } |
| | | |
| | | /// <summary>
|
| | | /// SendFanStatuComand
|
| | | /// </summary>
|
| | | /// <param name="device">设备</param>
|
| | | private void SendFanStatuComand(CommonDevice device)
|
| | | {
|
| | | var jObject = new Newtonsoft.Json.Linq.JObject
|
| | | {
|
| | | { "DeviceAddr",device.DeviceAddr },
|
| | | { "Epoint", device.DeviceEpoint },
|
| | | { "Cluster_ID", (int)Cluster_ID.FanControl },
|
| | | { "Command", 108 }
|
| | | };
|
| | | var attriBute = new Newtonsoft.Json.Linq.JArray
|
| | | {
|
| | | new Newtonsoft.Json.Linq.JObject
|
| | | {
|
| | | { "AttriButeId", (int)AttriButeId.FanMode}
|
| | | },
|
| | | new Newtonsoft.Json.Linq.JObject
|
| | | {
|
| | | { "AttriButeId", (int)AttriButeId.FanSwing}
|
| | | }
|
| | | };
|
| | | var data = new Newtonsoft.Json.Linq.JObject { { "AttriBute", attriBute } };
|
| | | jObject.Add("Data", data);
|
| | | device.Gateway?.Send(("GetDeviceStatus"), jObject.ToString());
|
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region ◆ 窗帘____________________________ |
| | | /// <summary>
|
| | | /// 发送获取窗帘状态命令
|
| | | /// </summary>
|
| | | /// <param name="device">窗帘</param>
|
| | | public void SendCurtainStatuComand(CommonDevice device)
|
| | | {
|
| | | var jObject = new Newtonsoft.Json.Linq.JObject
|
| | | {
|
| | | { "DeviceAddr",device.DeviceAddr },
|
| | | { "Epoint", device.DeviceEpoint },
|
| | | { "Cluster_ID", (int)Cluster_ID.WindowCovering },
|
| | | { "Command", 108 }
|
| | | };
|
| | | var attriBute = new Newtonsoft.Json.Linq.JArray
|
| | | {
|
| | | new Newtonsoft.Json.Linq.JObject
|
| | | {
|
| | | { "AttriButeId", (int)AttriButeId.CurrentPositionLiftPercentage}
|
| | | }
|
| | | };
|
| | | var data = new Newtonsoft.Json.Linq.JObject { { "AttriBute", attriBute } };
|
| | | jObject.Add("Data", data);
|
| | | device.Gateway?.Send(("GetDeviceStatus"), jObject.ToString());
|
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region ◆ 灯光____________________________ |
| | | |
| | | /// <summary> |
| | | /// Light |
| | | /// </summary> |
| | | /// <param name="device"></param> |
| | | public void SendLightStatuComand(CommonDevice device) |
| | | { |
| | | SendSwitchStatuComand(device); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// Light |
| | | /// </summary> |
| | | /// <param name="device"></param> |
| | | public void SendDimmableLightStatuComand(CommonDevice device) |
| | | { |
| | | SendSwitchStatuComand(device); |
| | | SendLevelStatuComand(device); |
| | | } |
| | | |
| | | /// <summary>
|
| | | /// 发送获取灯光状态命令
|
| | | /// </summary>
|
| | | /// <param name="device">窗帘</param>
|
| | | private void SendSwitchStatuComand(CommonDevice device)
|
| | | {
|
| | | var jObject = new Newtonsoft.Json.Linq.JObject
|
| | | {
|
| | | { "DeviceAddr",device.DeviceAddr },
|
| | | { "Epoint", device.DeviceEpoint },
|
| | | { "Cluster_ID", (int)Cluster_ID.Switch },
|
| | | { "Command", 108 }
|
| | | };
|
| | | var attriBute = new Newtonsoft.Json.Linq.JArray
|
| | | {
|
| | | new Newtonsoft.Json.Linq.JObject
|
| | | {
|
| | | { "AttriButeId", (int)AttriButeId.Switch}
|
| | | }
|
| | | };
|
| | | var data = new Newtonsoft.Json.Linq.JObject { { "AttriBute", attriBute } };
|
| | | jObject.Add("Data", data);
|
| | | device.Gateway?.Send(("GetDeviceStatus"), jObject.ToString());
|
| | | } |
| | | |
| | | /// <summary>
|
| | | /// 发送获取灯光状态命令
|
| | | /// </summary>
|
| | | /// <param name="device">窗帘</param>
|
| | | private void SendLevelStatuComand(CommonDevice device)
|
| | | {
|
| | | var jObject = new Newtonsoft.Json.Linq.JObject
|
| | | {
|
| | | { "DeviceAddr",device.DeviceAddr },
|
| | | { "Epoint", device.DeviceEpoint },
|
| | | { "Cluster_ID", (int)Cluster_ID.LevelControl },
|
| | | { "Command", 108 }
|
| | | };
|
| | | var attriBute = new Newtonsoft.Json.Linq.JArray
|
| | | {
|
| | | new Newtonsoft.Json.Linq.JObject
|
| | | {
|
| | | { "AttriButeId", (int)AttriButeId.LevelControl}
|
| | | }
|
| | | };
|
| | | var data = new Newtonsoft.Json.Linq.JObject { { "AttriBute", attriBute } };
|
| | | jObject.Add("Data", data);
|
| | | device.Gateway?.Send(("GetDeviceStatus"), jObject.ToString());
|
| | | } |
| | | |
| | | |
| | | #endregion |
| | | } |
| | | } |
| | |
| | | using System.Collections.Generic; |
| | | using Shared.Common; |
| | | using Shared.Phone.Device.CommonForm; |
| | | using Shared.Phone.Device.DeviceLogic; |
| | | using Shared.Phone.UserView; |
| | | using ZigBee.Device; |
| | | namespace Shared.Phone.Device.Light |
| | |
| | | { |
| | | UserHomeView.ReadStatus(light, () => |
| | | { |
| | | light.ReadOnOffStatus(); |
| | | light.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch); |
| | | ReadDeviceAttributeLogic.Instance.SendLightStatuComand(device.CommonDevice); |
| | | }); |
| | | } |
| | | else |
| | |
| | | //防止短时间内多次读取状态 |
| | | if (CommonPage.ReadDeviceStatuSpan < (DateTime.Now - light.LastDateTime).TotalSeconds) |
| | | { |
| | | light.ReadOnOffStatus(); |
| | | light.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch); |
| | | ReadDeviceAttributeLogic.Instance.SendLightStatuComand(device.CommonDevice); |
| | | } |
| | | } |
| | | |
| | |
| | | using System; |
| | | using Shared.Common; |
| | | using Shared.Phone.Device.CommonForm; |
| | | using Shared.Phone.Device.DeviceLogic; |
| | | using ZigBee.Device; |
| | | |
| | | namespace Shared.Phone.Device.Light |
| | |
| | | //发送读取状态命令 |
| | | UserView.UserHomeView.ReadStatus(dimmableLight, () => |
| | | { |
| | | dimmableLight.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch); |
| | | dimmableLight.ReadOnOffStatus(); |
| | | dimmableLight.ReadLevel(); |
| | | ReadDeviceAttributeLogic.Instance.SendDimmableLightStatuComand(device.CommonDevice); |
| | | }); |
| | | } |
| | | else |
| | |
| | | //防止短时间内多次读取设备状态 |
| | | if ((DateTime.Now - dimmableLight.LastDateTime).TotalSeconds > CommonPage.ReadDeviceStatuSpan) |
| | | { |
| | | dimmableLight.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch); |
| | | dimmableLight.ReadOnOffStatus(); |
| | | dimmableLight.ReadLevel(); |
| | | ReadDeviceAttributeLogic.Instance.SendDimmableLightStatuComand(device.CommonDevice); |
| | | } |
| | | } |
| | | } |
| | |
| | | using System.Collections.Generic; |
| | | using Shared.Common; |
| | | using Shared.Phone.Device.CommonForm; |
| | | using Shared.Phone.Device.DeviceLogic; |
| | | using Shared.Phone.UserView; |
| | | using ZigBee.Device; |
| | | namespace Shared.Phone.Device.Light |
| | |
| | | { |
| | | UserHomeView.ReadStatus(light, () => |
| | | { |
| | | light.ReadOnOffStatus(); |
| | | light.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch); |
| | | ReadDeviceAttributeLogic.Instance.SendLightStatuComand(device.CommonDevice); |
| | | }); |
| | | } |
| | | else |
| | |
| | | //防止短时间内多次读取状态 |
| | | if (CommonPage.ReadDeviceStatuSpan < (DateTime.Now - light.LastDateTime).TotalSeconds) |
| | | { |
| | | light.ReadOnOffStatus(); |
| | | light.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch); |
| | | ReadDeviceAttributeLogic.Instance.SendLightStatuComand(device.CommonDevice); |
| | | } |
| | | } |
| | | |
| | |
| | | using System.Collections.Generic; |
| | | using Shared.Common; |
| | | using Shared.Phone.Device.CommonForm; |
| | | using Shared.Phone.Device.DeviceLogic; |
| | | using Shared.Phone.UserView; |
| | | using ZigBee.Device; |
| | | namespace Shared.Phone.Device.Light |
| | |
| | | { |
| | | UserHomeView.ReadStatus(light, () => |
| | | { |
| | | light.ReadOnOffStatus(); |
| | | light.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch); |
| | | ReadDeviceAttributeLogic.Instance.SendLightStatuComand(device.CommonDevice); |
| | | }); |
| | | } |
| | | else |
| | |
| | | //防止短时间内多次读取状态 |
| | | if (CommonPage.ReadDeviceStatuSpan < (DateTime.Now - light.LastDateTime).TotalSeconds) |
| | | { |
| | | light.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch); |
| | | light.ReadOnOffStatus(); |
| | | ReadDeviceAttributeLogic.Instance.SendLightStatuComand(device.CommonDevice); |
| | | } |
| | | } |
| | | |
| | |
| | | using System.Collections.Generic; |
| | | using Shared.Common; |
| | | using Shared.Phone.Device.CommonForm; |
| | | using Shared.Phone.Device.DeviceLogic; |
| | | using Shared.Phone.UserView; |
| | | using ZigBee.Device; |
| | | namespace Shared.Phone.Device.Light |
| | |
| | | { |
| | | UserHomeView.ReadStatus(light, () => |
| | | { |
| | | light.ReadOnOffStatus(); |
| | | light.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch); |
| | | ReadDeviceAttributeLogic.Instance.SendLightStatuComand(device.CommonDevice); |
| | | }); |
| | | } |
| | | else |
| | |
| | | //防止短时间内多次读取状态 |
| | | if (CommonPage.ReadDeviceStatuSpan < (DateTime.Now - light.LastDateTime).TotalSeconds) |
| | | { |
| | | light.ReadOnOffStatus(); |
| | | light.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch); |
| | | ReadDeviceAttributeLogic.Instance.SendLightStatuComand(device.CommonDevice); |
| | | } |
| | | } |
| | | |
| | |
| | | //Radius = (uint)Application.GetRealHeight(60), |
| | | }; |
| | | flMain.AddChidren(securityfra); |
| | | securityfra.SetCornerWithSameRadius(20, HDLUtils.RectCornerTopLeft | HDLUtils.RectCornerTopRight); |
| | | securityfra.SetCornerWithSameRadius(Application.GetRealHeight(58), HDLUtils.RectCornerTopLeft | HDLUtils.RectCornerTopRight); |
| | | #region -------取消 完成 |
| | | var timetype = new RowLayout |
| | | { |
| | |
| | | //Radius = (uint)Application.GetRealHeight(60), |
| | | }; |
| | | flMain.AddChidren(Locationfra); |
| | | Locationfra.SetCornerWithSameRadius(20, HDLUtils.RectCornerTopLeft | HDLUtils.RectCornerTopRight); |
| | | Locationfra.SetCornerWithSameRadius(Application.GetRealHeight(58), HDLUtils.RectCornerTopLeft | HDLUtils.RectCornerTopRight); |
| | | |
| | | #region -------取消 完成 |
| | | var typeRow = new RowLayout |
| | |
| | | // Radius = (uint)Application.GetRealHeight(60), |
| | | }; |
| | | flMain.AddChidren(timetypeframelayout); |
| | | timetypeframelayout.SetCornerWithSameRadius(20,HDLUtils.RectCornerTopLeft|HDLUtils.RectCornerTopRight); |
| | | timetypeframelayout.SetCornerWithSameRadius(Application.GetRealHeight(58), HDLUtils.RectCornerTopLeft|HDLUtils.RectCornerTopRight); |
| | | |
| | | #region -------取消 完成 |
| | | var timetype = new RowLayout |
| | |
| | | }; |
| | | this.AddChidren(middle); |
| | | |
| | | var textBox = new EditText |
| | | var textBox = new EditTextView//EditText |
| | | { |
| | | Width = Application.GetRealWidth(1080), |
| | | Height = Application.GetRealHeight(600), |
| | |
| | | TextSize = 14, |
| | | }; |
| | | middle.AddChidren(textBox); |
| | | textBox.HideSoftInput(); |
| | | |
| | | var btnsave = new Button |
| | | { |
| | |
| | | BackgroundColor = ZigbeeColor.Current.LogicBlankBackgroundColor, |
| | | }; |
| | | middle.AddChidren(PickerViewfra); |
| | | PickerViewfra.SetCornerWithSameRadius(20, HDLUtils.RectCornerTopLeft | HDLUtils.RectCornerTopRight); |
| | | PickerViewfra.SetCornerWithSameRadius(Application.GetRealHeight(50), HDLUtils.RectCornerTopLeft | HDLUtils.RectCornerTopRight); |
| | | |
| | | |
| | | var mUIPickerView = new UIPickerView |
| | |
| | | |
| | | }; |
| | | this.AddChidren(devicetypehorizontalScrol); |
| | | devicetypehorizontalScrol.SetCornerWithSameRadius(20,HDLUtils.RectCornerBottomLeft); |
| | | devicetypehorizontalScrol.SetCornerWithSameRadius(Application.GetRealHeight(50), HDLUtils.RectCornerBottomLeft); |
| | | |
| | | middle = new VerticalScrolViewLayout(); |
| | | middle.Y = devicetypehorizontalScrol.Bottom + Application.GetRealHeight(40); |
| | |
| | | middle.X = Application.GetRealWidth(58); |
| | | //middle.Radius = (uint)Application.GetRealHeight(50); |
| | | this.AddChidren(middle); |
| | | middle.SetCornerWithSameRadius(20, HDLUtils.RectCornerTopLeft); |
| | | middle.SetCornerWithSameRadius(Application.GetRealHeight(50), HDLUtils.RectCornerTopLeft); |
| | | ///目前支持的设备 |
| | | var deviceTypeList = new List<DeviceType> { |
| | | DeviceType.IASZone, |
| | |
| | | // Radius = (uint)Application.GetRealHeight(60), |
| | | }; |
| | | flMain.AddChidren(devicefra); |
| | | devicefra.SetCornerWithSameRadius(20, HDLUtils.RectCornerTopLeft|HDLUtils.RectCornerTopRight); |
| | | devicefra.SetCornerWithSameRadius(Application.GetRealHeight(50), HDLUtils.RectCornerTopLeft|HDLUtils.RectCornerTopRight); |
| | | |
| | | #region -------取消 完成 |
| | | var timetype = new RowLayout |
| | |
| | | Tag = "LockLogic"; |
| | | } |
| | | Button selectedIcon = new Button(); |
| | | VerticalScrolViewLayout middle; |
| | | VerticalRefreshLayout middle; |
| | | public int conditionsIndex = -1; |
| | | |
| | | public async void Show() |
| | | public void Show() |
| | | { |
| | | #region 最上面的布局代码 |
| | | var topRowLayout = new RowLayout |
| | |
| | | |
| | | #endregion |
| | | |
| | | middle = new VerticalScrolViewLayout |
| | | middle = new VerticalRefreshLayout |
| | | { |
| | | Y = topRowLayout.Bottom, |
| | | Height = Application.GetRealHeight(1920 - 184), |
| | | BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor, |
| | | }; |
| | | this.AddChidren(middle); |
| | | middle.BeginHeaderRefreshingAction += () => |
| | | { |
| | | //重新刷新logic列表 |
| | | string macport = Send.CurrentDoorLock.DeviceAddr + "_" + Send.CurrentDoorLock.DeviceEpoint.ToString(); |
| | | for (int i = 0; i < Send.LockList.Count; i++) |
| | | { |
| | | if (Send.LockList[i].DoorLockMacPort == macport) |
| | | { |
| | | ///从列表移除当前门锁全部的旧数据; |
| | | Send.LockList.Remove(Send.LockList[i]); |
| | | } |
| | | } |
| | | Read(); |
| | | //关闭刷新View; |
| | | middle.EndHeaderRefreshing(); |
| | | }; |
| | | Read(); |
| | | |
| | | } |
| | | /// <summary> |
| | | /// 读取当前门锁的云端数据; |
| | | /// </summary> |
| | | public async void Read() |
| | | { |
| | | bool d = false; |
| | | string macport = Send.CurrentDoorLock.DeviceAddr + "_" + Send.CurrentDoorLock.DeviceEpoint.ToString(); |
| | | for (int i = 0; i < Send.LockList.Count; i++) |
| | |
| | | } |
| | | UserAllView(macport); |
| | | CommonPage.Loading.Hide(); |
| | | |
| | | } |
| | | /// <summary> |
| | | /// 显示所有用户 |
| | | /// </summary> |
| | | void UserAllView(string macport) |
| | | public void UserAllView(string macport) |
| | | { |
| | | |
| | | for (int i = 0; i < Send.LockList.Count; i++) |
| | |
| | | /// 选择某个用户 |
| | | /// </summary> |
| | | /// <param name="membershipIfon">触发源列表</param> |
| | | /// <param name="userName">用户名字</param> |
| | | void SelectedUserID(Send.MembershipIfon membershipIfon) { |
| | | public void SelectedUserID(Send.MembershipIfon membershipIfon) |
| | | { |
| | | |
| | | var flMain = new FrameLayout { BackgroundColor = ZigbeeColor.Current.LogicViewBackgroundColor }; |
| | | var flMain = new FrameLayout { BackgroundColor = ZigbeeColor.Current.LogicViewBackgroundColor }; |
| | | this.AddChidren(flMain); |
| | | |
| | | flMain.MouseUpEventHandler += (sender1, e1) => |
| | |
| | | flMain.RemoveFromParent(); |
| | | }; |
| | | |
| | | |
| | | |
| | | |
| | | var lockcolorfra1 = new FrameLayout |
| | | { |
| | |
| | | Radius = (uint)Application.GetRealHeight(60), |
| | | }; |
| | | flMain.AddChidren(lockcolorfra1); |
| | | lockcolorfra1.SetCornerWithSameRadius(20, HDLUtils.RectCornerTopLeft | HDLUtils.RectCornerTopRight); |
| | | lockcolorfra1.SetCornerWithSameRadius(Application.GetRealHeight(58), HDLUtils.RectCornerTopLeft | HDLUtils.RectCornerTopRight); |
| | | |
| | | #region -------取消 完成 |
| | | var lockRow = new RowLayout |
| | |
| | | TextSize = 14, |
| | | }; |
| | | doorlockRow.AddChidren(doorlockBtn); |
| | | |
| | | |
| | | var doorlockSelected = new Button |
| | | { |
| | | X = Application.GetRealWidth(860), |
| | |
| | | selectedIcon = doorlockSelected; |
| | | doorlockSelected.Visible = true; |
| | | } |
| | | |
| | | |
| | | |
| | | } |
| | | } |
| | | |
| | | |
| | | Btncomplete.MouseUpEventHandler += (sender, e) => |
| | | { |
| | | var lockConditionsInfo = new Dictionary<string, string>(); |
| | |
| | | lockConditionsInfo.Add("Range", "0"); |
| | | var accounts = new Dictionary<string, string>(); |
| | | accounts.Add("Type", "1"); |
| | | accounts.Add("Account", membershipIfon.UserName+ modeName); |
| | | accounts.Add("Account", membershipIfon.UserName + modeName); |
| | | accounts.Add("UserId", attriButeData2); |
| | | if (SelectedLockStatus != "") |
| | | { |
| | |
| | | lockLogicCommunalPage.Show(() => { }); |
| | | }; |
| | | } |
| | | |
| | | |
| | | } |
| | | } |
| | |
| | | |
| | | }; |
| | | this.AddChidren(devicetypehorizontalScrol); |
| | | devicetypehorizontalScrol.SetCornerWithSameRadius(20,HDLUtils.RectCornerBottomLeft); |
| | | devicetypehorizontalScrol.SetCornerWithSameRadius(Application.GetRealHeight(58),HDLUtils.RectCornerBottomLeft); |
| | | |
| | | middle = new VerticalScrolViewLayout(); |
| | | middle.Y = devicetypehorizontalScrol.Bottom + Application.GetRealHeight(40); |
| | |
| | | middle.X = Application.GetRealWidth(58); |
| | | //middle.Radius = (uint)Application.GetRealHeight(50); |
| | | this.AddChidren(middle); |
| | | middle.SetCornerWithSameRadius(20, HDLUtils.RectCornerTopLeft); |
| | | middle.SetCornerWithSameRadius(Application.GetRealHeight(58), HDLUtils.RectCornerTopLeft); |
| | | |
| | | ///目前支持的设备 |
| | | List<DeviceType> deviceTypeList = new List<DeviceType> { |
| | |
| | | Radius = (uint)Application.GetRealHeight(60), |
| | | }; |
| | | flMain.AddChidren(devicefra); |
| | | devicefra.SetCornerWithSameRadius(20, HDLUtils.RectCornerTopLeft | HDLUtils.RectCornerTopRight); |
| | | devicefra.SetCornerWithSameRadius(Application.GetRealHeight(58), HDLUtils.RectCornerTopLeft | HDLUtils.RectCornerTopRight); |
| | | #region -------取消 完成 |
| | | var timetype = new RowLayout |
| | | { |
| | |
| | | { |
| | | |
| | | #region ----初始化设备功能数据---- |
| | | Dictionary<string, string> switchdictionary = new Dictionary<string, string>(); |
| | | Dictionary<string, string> temperaturedictionary = new Dictionary<string, string>(); |
| | | Dictionary<string, string> modedictionary = new Dictionary<string, string>(); |
| | | Dictionary<string, string> speeddictionary = new Dictionary<string, string>(); |
| | | taskListInfo.Add(switchdictionary); |
| | | taskListInfo.Add(temperaturedictionary); |
| | | taskListInfo.Add(modedictionary); |
| | | taskListInfo.Add(speeddictionary); |
| | | dictionary(switchdictionary, "TaskType", "1"); |
| | | dictionary(switchdictionary, "Data2", "0"); |
| | | dictionary(temperaturedictionary, "TaskType", "5"); |
| | | dictionary(modedictionary, "TaskType", "5"); |
| | | dictionary(modedictionary, "Data1", "3"); |
| | | dictionary(speeddictionary, "TaskType", "5"); |
| | | dictionary(speeddictionary, "Data1", "6"); |
| | | |
| | | |
| | | #endregion |
| | | |
| | |
| | | { |
| | | foreach (var value in TaskList) |
| | | { |
| | | if (value["TaskType"] == "1") |
| | | if (TaskList.Count == 1) |
| | | { |
| | | dictionary(switchdictionary, "Data1", value["Data1"]); |
| | | if (value["Data1"] == "1") |
| | | { |
| | | openBtnSelected.Visible = true; |
| | | closeBtnSelected.Visible = false; |
| | | pausePickerViewfra.Height = Application.GetRealHeight(0); |
| | | } |
| | | else if (value["Data1"] == "0") |
| | | { |
| | | openBtnSelected.Visible = false; |
| | | closeBtnSelected.Visible = true; |
| | | pausePickerViewfra.Height = Application.GetRealHeight(600); |
| | | break; |
| | | } |
| | | //数组只有一个元素说明当前空调状态为关; |
| | | openBtnSelected.Visible = false; |
| | | closeBtnSelected.Visible = true; |
| | | pausePickerViewfra.Height = Application.GetRealHeight(600); |
| | | //如果空调状态是关;直接跳出for循坏; |
| | | break; |
| | | |
| | | } |
| | | else if (value["TaskType"] == "5") |
| | | else |
| | | { |
| | | openBtnSelected.Visible = true; |
| | | closeBtnSelected.Visible = false; |
| | | pausePickerViewfra.Height = Application.GetRealHeight(0); |
| | | } |
| | | |
| | | if (value["TaskType"] == "5") |
| | | { |
| | | if (value["Data1"] == "3") |
| | | {//3---设置工作模式(1:自动;3:制冷;4:制热;7:送风;8:除湿) |
| | |
| | | ///确认事件 |
| | | EventHandler<MouseEventArgs> openclick = (sender, e) => |
| | | { |
| | | //清除之前数据; |
| | | taskListInfo.Clear(); |
| | | //加载新数据; |
| | | dictionary(temperaturedictionary, "TaskType", "5"); |
| | | dictionary(modedictionary, "TaskType", "5"); |
| | | dictionary(modedictionary, "Data1", "3"); |
| | | dictionary(speeddictionary, "TaskType", "5"); |
| | | dictionary(speeddictionary, "Data1", "6"); |
| | | taskListInfo.Add(temperaturedictionary); |
| | | taskListInfo.Add(modedictionary); |
| | | taskListInfo.Add(speeddictionary); |
| | | pausePickerViewfra.Height = Application.GetRealHeight(0); |
| | | SelectedDeviceStatusaction = "yes"; |
| | | openBtnSelected.Visible = true; |
| | | closeBtnSelected.Visible = false; |
| | | dictionary(switchdictionary, "Data1", "1"); |
| | | var temperature = mList1[indextemperature].Split(' ')[0]; |
| | | var modestring = mList2[indexmode].Split(' ')[0]; |
| | | var speedstring = mList3[indexspeed].Split(' ')[0]; |
| | |
| | | ///取消事件 |
| | | EventHandler<MouseEventArgs> closeclick = (sender, e) => |
| | | { |
| | | pausePickerViewfra.Height = Application.GetRealHeight(600); |
| | | |
| | | //清除之前数据; |
| | | taskListInfo.Clear(); |
| | | dictionary(modedictionary, "TaskType", "5"); |
| | | dictionary(modedictionary, "Data1", "3"); |
| | | dictionary(modedictionary, "Data2", "0"); |
| | | //加载新数据; |
| | | taskListInfo.Add(modedictionary); |
| | | pausePickerViewfra.Height = Application.GetRealHeight(600); |
| | | SelectedDeviceStatusaction = "yes"; |
| | | openBtnSelected.Visible = false; |
| | | closeBtnSelected.Visible = true; |
| | | dictionary(switchdictionary, "Data1", "0"); |
| | | }; |
| | | closerowlayout.MouseUpEventHandler += closeclick; |
| | | btnclose.MouseUpEventHandler += closeclick; |
| | |
| | | bool ifclose = false; |
| | | foreach (var status in TaskList) |
| | | { |
| | | if (status["TaskType"].ToString() == "1") |
| | | if (TaskList.Count == 1) |
| | | { |
| | | if (status["Data1"].ToString() == "0") |
| | | { |
| | | // devicestatus.Text = Language.StringByID(MyInternationalizationString.close); |
| | | |
| | | ifclose = false; |
| | | break; |
| | | } |
| | | else if (status["Data1"].ToString() == "1") |
| | | { |
| | | //devicestatus.Text = Language.StringByID(MyInternationalizationString.open); |
| | | ifclose = true; |
| | | } |
| | | |
| | | //数组只有一个元素说明当前空调状态为关; |
| | | ifclose = false; |
| | | //如果空调状态是关;直接跳出for循坏; |
| | | break; |
| | | } |
| | | else if (status["TaskType"].ToString() == "5") |
| | | else |
| | | { |
| | | ifclose = true; |
| | | } |
| | | |
| | | if (status["TaskType"].ToString() == "5") |
| | | { |
| | | if (status["Data1"] == "3") |
| | | {//3---设置工作模式(1:自动;3:制冷;4:制热;7:送风;8:除湿) |
| | |
| | | { |
| | | Tag = "LockLogicList"; |
| | | } |
| | | VerticalScrolViewLayout middle; |
| | | public async void Show() |
| | | VerticalRefreshLayout middle; |
| | | public void Show() |
| | | { |
| | | |
| | | #region 最上面的布局代码 |
| | |
| | | }; |
| | | #endregion |
| | | |
| | | middle = new VerticalScrolViewLayout |
| | | middle = new VerticalRefreshLayout |
| | | { |
| | | Y = topRowLayout.Bottom, |
| | | Height = Application.GetRealHeight(1920 - 184), |
| | | BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor, |
| | | }; |
| | | this.AddChidren(middle); |
| | | middle.BeginHeaderRefreshingAction += () => |
| | | { |
| | | //重新刷新logic列表 |
| | | Common.Logic.LockLogicList.Clear(); |
| | | Read(); |
| | | //关闭刷新View; |
| | | middle.EndHeaderRefreshing(); |
| | | }; |
| | | Read(); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 读取自动化数据 |
| | | /// </summary> |
| | | public async void Read() |
| | | { |
| | | CommonPage.Loading.Start(); |
| | | if (Common.Logic.LockLogicList.Count == 0) |
| | | { |
| | |
| | | } |
| | | } |
| | | } |
| | | //自动化 |
| | | Automationview(); |
| | | CommonPage.Loading.Hide(); |
| | | } |
| | | |
| | | void Automationview() |
| | | /// <summary> |
| | | /// 加载自动化列表的界面 |
| | | /// </summary> |
| | | public void Automationview() |
| | | { |
| | | middle.RemoveAll(); |
| | | for (int i = 0; i < Common.Logic.LockLogicList.Count; i++) |
| | |
| | | { |
| | | continue; |
| | | } |
| | | string modetext = "", temperaturetext="", speedtext = ""; |
| | | string modetext = "", temperaturetext = "", speedtext = ""; |
| | | bool ifclose = false; |
| | | foreach (var status in TaskList) |
| | | { |
| | | if (status["TaskType"].ToString() == "1") |
| | | |
| | | if (TaskList.Count == 1) |
| | | { |
| | | if (status["Data1"].ToString() == "0") |
| | | { |
| | | // devicestatus.Text = Language.StringByID(MyInternationalizationString.close); |
| | | |
| | | ifclose = false; |
| | | //如果空调状态是关;直接跳出for循坏; |
| | | break; |
| | | } |
| | | else if (status["Data1"].ToString() == "1") |
| | | { |
| | | //devicestatus.Text = Language.StringByID(MyInternationalizationString.open); |
| | | ifclose = true; |
| | | } |
| | | |
| | | //数组只有一个元素说明当前空调状态为关; |
| | | ifclose = false; |
| | | //如果空调状态是关;直接跳出for循坏; |
| | | break; |
| | | } |
| | | else if (status["TaskType"].ToString() == "5") |
| | | else |
| | | { |
| | | ifclose = true; |
| | | } |
| | | if (status["TaskType"].ToString() == "5") |
| | | { |
| | | if (status["Data1"] == "3") |
| | | {//3---设置工作模式(1:自动;3:制冷;4:制热;7:送风;8:除湿) |
| | |
| | | Radius = (uint)Application.GetRealHeight(60), |
| | | }; |
| | | flMain.AddChidren(framelayout); |
| | | framelayout.SetCornerWithSameRadius(20,HDLUtils.RectCornerTopLeft|HDLUtils.RectCornerTopRight); |
| | | framelayout.SetCornerWithSameRadius(Application.GetRealHeight(58),HDLUtils.RectCornerTopLeft|HDLUtils.RectCornerTopRight); |
| | | |
| | | #region -------取消 完成 |
| | | var timetype = new RowLayout |
| | |
| | | |
| | | }; |
| | | this.AddChidren(devicetypehorizontalScrol); |
| | | devicetypehorizontalScrol.SetCornerWithSameRadius(20, HDLUtils.RectCornerBottomLeft); |
| | | devicetypehorizontalScrol.SetCornerWithSameRadius(Application.GetRealHeight(58), HDLUtils.RectCornerBottomLeft); |
| | | |
| | | middle = new VerticalScrolViewLayout(); |
| | | middle.Y = devicetypehorizontalScrol.Bottom + Application.GetRealHeight(40); |
| | |
| | | middle.X = Application.GetRealWidth(58); |
| | | //middle.Radius = (uint)Application.GetRealHeight(50); |
| | | this.AddChidren(middle); |
| | | middle.SetCornerWithSameRadius(20, HDLUtils.RectCornerTopLeft); |
| | | middle.SetCornerWithSameRadius(Application.GetRealHeight(58), HDLUtils.RectCornerTopLeft); |
| | | |
| | | ///目前支持的设备 |
| | | List<DeviceType> deviceTypeList = new List<DeviceType> { |
| | |
| | | //Radius = (uint)Application.GetRealHeight(60), |
| | | }; |
| | | flMain.AddChidren(devicefra); |
| | | devicefra.SetCornerWithSameRadius(20, HDLUtils.RectCornerTopLeft | HDLUtils.RectCornerTopRight); |
| | | devicefra.SetCornerWithSameRadius(Application.GetRealHeight(58), HDLUtils.RectCornerTopLeft | HDLUtils.RectCornerTopRight); |
| | | |
| | | #region -------取消 完成 |
| | | var timetype = new RowLayout |
| | |
| | | { |
| | | |
| | | #region ----初始化设备功能数据---- |
| | | Dictionary<string, string> switchdictionary = new Dictionary<string, string>(); |
| | | Dictionary<string, string> temperaturedictionary = new Dictionary<string, string>(); |
| | | Dictionary<string, string> modedictionary = new Dictionary<string, string>(); |
| | | Dictionary<string, string> speeddictionary = new Dictionary<string, string>(); |
| | | taskListInfo.Add(switchdictionary); |
| | | taskListInfo.Add(temperaturedictionary); |
| | | taskListInfo.Add(modedictionary); |
| | | taskListInfo.Add(speeddictionary); |
| | | dictionary(switchdictionary, "TaskType", "1"); |
| | | dictionary(switchdictionary, "Data2", "0"); |
| | | dictionary(temperaturedictionary, "TaskType", "5"); |
| | | dictionary(modedictionary, "TaskType", "5"); |
| | | dictionary(modedictionary, "Data1", "3"); |
| | | dictionary(speeddictionary, "TaskType", "5"); |
| | | dictionary(speeddictionary, "Data1", "6"); |
| | | |
| | | var temperaturedictionary = new Dictionary<string, string>(); |
| | | var modedictionary = new Dictionary<string, string>(); |
| | | var speeddictionary = new Dictionary<string, string>(); |
| | | #endregion |
| | | |
| | | #region 空调View |
| | |
| | | } |
| | | }; |
| | | |
| | | #endregion |
| | | #endregion |
| | | //默认26,自动,中风 |
| | | int indextemperature = 10, indexmode = 2, indexspeed = 1; |
| | | if (edit && TaskList != null) |
| | | { |
| | | foreach (var value in TaskList) |
| | | { |
| | | if (value["TaskType"] == "1") |
| | | if (TaskList.Count == 1) |
| | | { |
| | | dictionary(switchdictionary, "Data1", value["Data1"]); |
| | | if (value["Data1"] == "1") |
| | | { |
| | | openBtnSelected.Visible = true; |
| | | closeBtnSelected.Visible = false; |
| | | pausePickerViewfra.Height = Application.GetRealHeight(0); |
| | | } |
| | | else if (value["Data1"] == "0") |
| | | { |
| | | openBtnSelected.Visible = false; |
| | | closeBtnSelected.Visible = true; |
| | | pausePickerViewfra.Height = Application.GetRealHeight(600); |
| | | //如果空调状态是关;直接跳出for循坏; |
| | | break; |
| | | } |
| | | //数组只有一个元素说明当前空调状态为关; |
| | | openBtnSelected.Visible = false; |
| | | closeBtnSelected.Visible = true; |
| | | pausePickerViewfra.Height = Application.GetRealHeight(600); |
| | | //如果空调状态是关;直接跳出for循坏; |
| | | break; |
| | | |
| | | } |
| | | else if (value["TaskType"] == "5") |
| | | else |
| | | { |
| | | openBtnSelected.Visible = true; |
| | | closeBtnSelected.Visible = false; |
| | | pausePickerViewfra.Height = Application.GetRealHeight(0); |
| | | } |
| | | |
| | | |
| | | if (value["TaskType"] == "5") |
| | | { |
| | | if (value["Data1"] == "3") |
| | | {//3---设置工作模式(1:自动;3:制冷;4:制热;7:送风;8:除湿) |
| | |
| | | ///确认事件 |
| | | EventHandler<MouseEventArgs> openclick = (sender, e) => |
| | | { |
| | | //清除之前数据; |
| | | taskListInfo.Clear(); |
| | | //加载新数据; |
| | | dictionary(temperaturedictionary, "TaskType", "5"); |
| | | dictionary(modedictionary, "TaskType", "5"); |
| | | dictionary(modedictionary, "Data1", "3"); |
| | | dictionary(speeddictionary, "TaskType", "5"); |
| | | dictionary(speeddictionary, "Data1", "6"); |
| | | taskListInfo.Add(temperaturedictionary); |
| | | taskListInfo.Add(modedictionary); |
| | | taskListInfo.Add(speeddictionary); |
| | | pausePickerViewfra.Height = Application.GetRealHeight(0); |
| | | SelectedDeviceStatusaction = "yes"; |
| | | openBtnSelected.Visible = true; |
| | | closeBtnSelected.Visible = false; |
| | | dictionary(switchdictionary, "Data1", "1"); |
| | | var temperature = mList1[indextemperature].Split(' ')[0]; |
| | | var modestring = mList2[indexmode].Split(' ')[0]; |
| | | var speedstring = mList3[indexspeed].Split(' ')[0]; |
| | |
| | | ///取消事件 |
| | | EventHandler<MouseEventArgs> closeclick = (sender, e) => |
| | | { |
| | | //清除之前数据; |
| | | taskListInfo.Clear(); |
| | | dictionary(modedictionary, "TaskType", "5"); |
| | | dictionary(modedictionary, "Data1", "3"); |
| | | dictionary(modedictionary, "Data2", "0"); |
| | | //加载新数据; |
| | | taskListInfo.Add(modedictionary); |
| | | pausePickerViewfra.Height = Application.GetRealHeight(600); |
| | | |
| | | SelectedDeviceStatusaction = "yes"; |
| | | openBtnSelected.Visible = false; |
| | | closeBtnSelected.Visible = true; |
| | | dictionary(switchdictionary, "Data1", "0"); |
| | | |
| | | }; |
| | | closerowlayout.MouseUpEventHandler += closeclick; |
| | | btnclose.MouseUpEventHandler += closeclick; |
| | |
| | | /// </summary> |
| | | /// <param name="common">Common.</param> |
| | | /// <param name="objecttype">Objecttype.</param> |
| | | public static void AddDeviceconditions(CommonDevice common, Dictionary<string, string> objecttype) |
| | | public static void AddDeviceconditions(CommonDevice common, Dictionary<string, string> objecttype) |
| | | { |
| | | for (int i = 0; i < Common.Logic.CurrentLogic.Conditions.Count; i++) |
| | | { |
| | |
| | | } |
| | | Button selectedIcon = new Button(); |
| | | public static bool edit = false; |
| | | VerticalScrolViewLayout middle; |
| | | VerticalRefreshLayout middle; |
| | | CommonDevice common; |
| | | Dictionary<string, string> editdeviceConditionsInfo; |
| | | |
| | | public async void Show(CommonDevice common, Dictionary<string, string> editdeviceConditionsInfo = null) |
| | | public void Show(CommonDevice commondevice, Dictionary<string, string> editdeviceConditions = null) |
| | | { |
| | | |
| | | |
| | | common = commondevice; |
| | | editdeviceConditionsInfo = editdeviceConditions; |
| | | UserView.HomePage.Instance.ScrollEnabled = false; |
| | | this.BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor; |
| | | #region 最上面的布局代码 |
| | |
| | | }; |
| | | #endregion |
| | | |
| | | middle = new VerticalScrolViewLayout |
| | | middle = new VerticalRefreshLayout |
| | | { |
| | | Y = topRowLayout.Bottom, |
| | | Height = Application.GetRealHeight(1920 - 184), |
| | | BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor, |
| | | }; |
| | | this.AddChidren(middle); |
| | | |
| | | middle.BeginHeaderRefreshingAction += () => |
| | | { |
| | | //重新刷新logic列表 |
| | | string macport = common.DeviceAddr + "_" + common.DeviceEpoint.ToString(); |
| | | for (int i = 0; i < Send.LockList.Count; i++) |
| | | { |
| | | if (Send.LockList[i].DoorLockMacPort == macport) |
| | | { |
| | | ///从列表移除当前门锁全部的旧数据; |
| | | Send.LockList.Remove(Send.LockList[i]); |
| | | } |
| | | } |
| | | Read(); |
| | | //关闭刷新View; |
| | | middle.EndHeaderRefreshing(); |
| | | }; |
| | | Read(); |
| | | } |
| | | /// <summary> |
| | | /// 读取当前门锁的云端数据; |
| | | /// </summary> |
| | | public async void Read() |
| | | { |
| | | |
| | | bool d = false; |
| | | string macport = common.DeviceAddr + "_" + common.DeviceEpoint.ToString(); |
| | |
| | | var allMemberslist = await Send.AllMembers(common.DeviceAddr); |
| | | Send.LockList.AddRange(allMemberslist); |
| | | } |
| | | UserList(macport, common, editdeviceConditionsInfo); |
| | | UserList(macport); |
| | | CommonPage.Loading.Hide(); |
| | | } |
| | | /// <summary> |
| | | /// 成员列表的方法 |
| | | /// </summary> |
| | | /// <param name="macport"></param> |
| | | void UserList(string macport, CommonDevice common, Dictionary<string, string> editdeviceConditionsInfo) |
| | | public void UserList(string macport) |
| | | { |
| | | |
| | | foreach (var user in Send.LockList) |
| | |
| | | |
| | | EventHandler<MouseEventArgs> useridclick = (sender, e) => |
| | | { |
| | | User(user, common, editdeviceConditionsInfo); |
| | | User(user); |
| | | |
| | | }; |
| | | userBtn.MouseUpEventHandler += useridclick; |
| | |
| | | } |
| | | |
| | | |
| | | } |
| | | } |
| | | /// <summary> |
| | | /// 当前成员信息的方法 |
| | | /// </summary> |
| | | /// <param name="user"></param> |
| | | void User(Send.MembershipIfon user, CommonDevice common, Dictionary<string, string> editdeviceConditionsInfo) |
| | | public void User(Send.MembershipIfon user) |
| | | { |
| | | var flMain = new FrameLayout { BackgroundColor = ZigbeeColor.Current.LogicViewBackgroundColor }; |
| | | this.AddChidren(flMain); |
| | |
| | | |
| | | }; |
| | | this.AddChidren(devicetypehorizontalScrol); |
| | | devicetypehorizontalScrol.SetCornerWithSameRadius(20, HDLUtils.RectCornerBottomLeft); |
| | | devicetypehorizontalScrol.SetCornerWithSameRadius(Application.GetRealHeight(58), HDLUtils.RectCornerBottomLeft); |
| | | |
| | | middle = new VerticalScrolViewLayout(); |
| | | middle.Y = devicetypehorizontalScrol.Bottom + Application.GetRealHeight(40); |
| | |
| | | middle.X = Application.GetRealWidth(58); |
| | | //middle.Radius = (uint)Application.GetRealHeight(50); |
| | | this.AddChidren(middle); |
| | | middle.SetCornerWithSameRadius(20, HDLUtils.RectCornerTopLeft); |
| | | middle.SetCornerWithSameRadius(Application.GetRealHeight(58), HDLUtils.RectCornerTopLeft); |
| | | |
| | | ///目前支持的设备 |
| | | List<DeviceType> deviceTypeList = new List<DeviceType> { |
| | |
| | | // Radius = (uint)Application.GetRealHeight(60), |
| | | }; |
| | | flMain.AddChidren(devicefra); |
| | | devicefra.SetCornerWithSameRadius(20, HDLUtils.RectCornerTopLeft|HDLUtils.RectCornerTopRight); |
| | | devicefra.SetCornerWithSameRadius(Application.GetRealHeight(58), HDLUtils.RectCornerTopLeft|HDLUtils.RectCornerTopRight); |
| | | |
| | | #region -------取消 完成 |
| | | var timetype = new RowLayout |
| | |
| | | |
| | | }; |
| | | this.AddChidren(devicetypehorizontalScrol); |
| | | devicetypehorizontalScrol.SetCornerWithSameRadius(20, HDLUtils.RectCornerBottomLeft); |
| | | devicetypehorizontalScrol.SetCornerWithSameRadius(Application.GetRealHeight(58), HDLUtils.RectCornerBottomLeft); |
| | | |
| | | middle = new VerticalScrolViewLayout(); |
| | | middle.Y = devicetypehorizontalScrol.Bottom + Application.GetRealHeight(40); |
| | |
| | | middle.X = Application.GetRealWidth(58); |
| | | // middle.Radius = (uint)Application.GetRealHeight(50); |
| | | this.AddChidren(middle); |
| | | middle.SetCornerWithSameRadius(20, HDLUtils.RectCornerTopLeft); |
| | | middle.SetCornerWithSameRadius(Application.GetRealHeight(58), HDLUtils.RectCornerTopLeft); |
| | | |
| | | ///目前支持的设备 |
| | | var deviceTypeList = new List<DeviceType> { |
| | |
| | | Radius = (uint)Application.GetRealHeight(60), |
| | | }; |
| | | flMain.AddChidren(devicefra); |
| | | devicefra.SetCornerWithSameRadius(20, HDLUtils.RectCornerTopLeft | HDLUtils.RectCornerTopRight); |
| | | devicefra.SetCornerWithSameRadius(Application.GetRealHeight(58), HDLUtils.RectCornerTopLeft | HDLUtils.RectCornerTopRight); |
| | | |
| | | #region -------取消 完成 |
| | | var timetype = new RowLayout |
| | |
| | | //Radius = (uint)Application.GetRealHeight(60), |
| | | }; |
| | | flMain.AddChidren(fraview); |
| | | fraview.SetCornerWithSameRadius(20, HDLUtils.RectCornerTopLeft | HDLUtils.RectCornerTopRight); |
| | | fraview.SetCornerWithSameRadius(Application.GetRealHeight(58), HDLUtils.RectCornerTopLeft | HDLUtils.RectCornerTopRight); |
| | | |
| | | #region -------取消 完成 |
| | | var timetype = new RowLayout |
| | |
| | | { |
| | | var itemView = new FrameLayout() |
| | | { |
| | | Height = Application.GetRealHeight(311 + CommonPage.XLeft) |
| | | Height = Application.GetRealHeight(311 + 58) |
| | | }; |
| | | midFl.AddChidren(itemView); |
| | | for (int i = 0; i < 2; i++) |
| | | { |
| | | var icon = new Button() |
| | | var icon = new ImageView() |
| | | { |
| | | X = Application.GetRealWidth(CommonPage.XLeft + i * (467 + 32)), |
| | | Width = Application.GetMinRealAverage(467), |
| | | Height = Application.GetMinRealAverage(311), |
| | | Gravity = Gravity.CenterVertical, |
| | | UnSelectedImagePath = $"RoomIcon/{k}.JPG", |
| | | X = Application.GetRealWidth(58 + i * (467 + 32)), |
| | | Y = Application.GetRealHeight(58), |
| | | Width = Application.GetRealWidth(467), |
| | | Height = Application.GetRealHeight(311), |
| | | ImagePath = $"RoomIcon/{k}.JPG", |
| | | Radius = (uint)Application.GetRealHeight(17) |
| | | }; |
| | | itemView.AddChidren(icon); |
| | | icon.SetViewShadow(true); |
| | |
| | | |
| | | EventHandler<MouseEventArgs> selectIcon = (sender, e) => |
| | | { |
| | | action?.Invoke(icon.UnSelectedImagePath); |
| | | action?.Invoke(icon.ImagePath); |
| | | action = null; |
| | | this.RemoveFromParent(); |
| | | }; |
| | |
| | | /// <summary> |
| | | /// backGround |
| | | /// </summary> |
| | | private Button backGround; |
| | | private ImageView backGround; |
| | | /// <summary> |
| | | /// IconPathType |
| | | /// </summary> |
| | |
| | | room = r; |
| | | IconPathType = r.BackgroundImageType; |
| | | OldIconPathType= r.BackgroundImageType; |
| | | if (IconPathType != 1) |
| | | if (IconPathType != 0) |
| | | { |
| | | OldBackgroundImagePath = r.BackgroundImage; |
| | | } |
| | |
| | | }; |
| | | AddChidren(bodyFrameLayout); |
| | | |
| | | backGround = new Button() |
| | | backGround = new ImageView() |
| | | { |
| | | Y = Application.GetRealHeight(60), |
| | | Width = Application.GetMinRealAverage(887), |
| | | Height = Application.GetMinRealAverage(444), |
| | | Gravity = Gravity.CenterHorizontal, |
| | | Radius = (uint)Application.GetRealHeight(CommonFormResouce.BigFormRadius), |
| | | UnSelectedImagePath = room.BackgroundImage |
| | | ImagePath = room.BackgroundImageType == 0 ? room.BackgroundImage : System.IO.Path.Combine(Config.Instance.FullPath, room.BackgroundImage) |
| | | }; |
| | | bodyFrameLayout.AddChidren(backGround); |
| | | backGround.SetViewShadow(true); |
| | | if (room.BackgroundImageType != 0) |
| | | { |
| | | backGround.ImageBytes = Shared.IO.FileUtils.ReadFile(backGround.ImagePath); |
| | | } |
| | | backGround.MouseUpEventHandler += backGroundIMGHander; |
| | | |
| | | var infoFL = new FrameLayout |
| | |
| | | nameRow.SetTipTitle($"{Language.StringByID(R.MyInternationalizationString.RoomName)} :"); |
| | | nameRow.SetTitle(room.Name); |
| | | infoFL.AddChidren(nameRow); |
| | | if(room.IsLove) |
| | | { |
| | | nameRow.NameText.Enable = false; |
| | | } |
| | | |
| | | var floorRow = new DeviceInfoRow(308); |
| | | floorRow.Init(); |
| | |
| | | var tradeTime = DateTime.Now.ToString("yyyyMMddHHmmss", DateTimeFormatInfo.InvariantInfo); |
| | | var fileName = $"RoomIcon_{tradeTime}.png"; |
| | | room.Name = nameRow.NameText.Text.Trim(); |
| | | if (OldIconPathType != 1) |
| | | if (OldIconPathType != 0) |
| | | { |
| | | Shared.IO.FileUtils.DeleteFile(OldBackgroundImagePath); |
| | | Shared.IO.FileUtils.DeleteFile(System.IO.Path.Combine(Config.Instance.FullPath,OldBackgroundImagePath)); |
| | | } |
| | | if (IconPathType == 0) |
| | | { |
| | | room.BackgroundImage = backGround.UnSelectedImagePath; |
| | | room.BackgroundImage = backGround.ImagePath; |
| | | } |
| | | else |
| | | { |
| | | Shared.IO.FileUtils.WriteFileByBytes(System.IO.Path.Combine(Config.Instance.FullPath, fileName), backGround.ImageBytes); |
| | | room.BackgroundImage = System.IO.Path.Combine(Config.Instance.FullPath, fileName); |
| | | room.BackgroundImage = fileName; |
| | | } |
| | | room.BackgroundImageType = IconPathType; |
| | | room.Save(); |
| | |
| | | { |
| | | IconPathType = 0; |
| | | backGround.ImageBytes = null; |
| | | backGround.UnSelectedImagePath = imgPath; |
| | | backGround.ImagePath = imgPath; |
| | | }; |
| | | }; |
| | | selectPhotographBtn.MouseUpEventHandler += (send, ee) => |
| | |
| | | { |
| | | if (IconPathType != 0) |
| | | { |
| | | Global.DeleteFilebyHomeId(backGround.UnSelectedImagePath); |
| | | Global.DeleteFilebyHomeId(backGround.ImagePath); |
| | | } |
| | | |
| | | IconPathType = 1; |
| | | backGround.ImageBytes = Shared.IO.FileUtils.ReadFile(imagePath); |
| | | backGround.UnSelectedImagePath = imagePath; |
| | | backGround.ImagePath = imagePath; |
| | | System.IO.File.Delete(imagePath); |
| | | |
| | | }, fileName, 2, 1); |
| | |
| | | { |
| | | if (IconPathType != 0) |
| | | { |
| | | Global.DeleteFilebyHomeId(backGround.UnSelectedImagePath); |
| | | Global.DeleteFilebyHomeId(backGround.ImagePath); |
| | | } |
| | | |
| | | IconPathType = 2; |
| | | backGround.ImageBytes = Shared.IO.FileUtils.ReadFile(imagePath); |
| | | backGround.UnSelectedImagePath = imagePath; |
| | | backGround.ImagePath = imagePath; |
| | | System.IO.File.Delete(imagePath); |
| | | |
| | | }, fileName, 2, 1); |
| | |
| | | |
| | | public override void RemoveFromParent() |
| | | { |
| | | //更新界面 |
| | | //action?.Invoke(); |
| | | base.RemoveFromParent(); |
| | | } |
| | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// ShowUnallocatedRoom_MouseUpEvent |
| | | /// </summary> |
| | | /// <param name="sender"></param> |
| | | /// <param name="mouseEventArgs"></param> |
| | |
| | | public void Show(Shared.Common.Room r) |
| | | { |
| | | room = r; |
| | | |
| | | |
| | | AddTop(); |
| | | |
| | | AddBodyView(); |
| | |
| | | devRow.SetIcon(device.IconPath); |
| | | devRow.SetName(device.DeviceName); |
| | | devRow.SetZone(room.FloorName + ", " + room.Name); |
| | | |
| | | |
| | | if(tempDevice!=null && tempDevice==device) |
| | | { |
| | | tempDeviceRow = devRow; |
| | |
| | | public string MsgTime = string.Empty;
|
| | | }
|
| | | #endregion
|
| | |
|
| | | #region ■ 隐匿功能类__________________________
|
| | |
|
| | | /// <summary>
|
| | | /// 隐匿功能
|
| | | /// </summary>
|
| | | public class HideOptionInfo
|
| | | {
|
| | | /// <summary>
|
| | | /// 是否显示主页隐藏菜单(Debug用): 1 -> 显示
|
| | | /// </summary>
|
| | | public int CenterHideMenu = 0;
|
| | | /// <summary>
|
| | | /// 是否出力详细Log 1 -> 出力
|
| | | /// </summary>
|
| | | public int DetailedLog = 0;
|
| | | }
|
| | | #endregion
|
| | | }
|
| | |
| | | }
|
| | |
|
| | | /// <summary>
|
| | | /// 控件的点击事件(此事件被认可为执行按钮按下事件,受CanClick属性控制)
|
| | | /// 是否是长按状态
|
| | | /// </summary>
|
| | | private bool isLongClick = false;
|
| | |
|
| | | /// <summary>
|
| | | /// 控件的点击事件(自定义封装事件,此事件被认可为执行按钮按下事件,受CanClick属性控制)
|
| | | /// </summary>
|
| | | public Action<Button, MouseEventArgs> ButtonClickEvent = null;
|
| | | /// <summary>
|
| | | /// 底部阴影控件1
|
| | | /// (★当前不要使用★)控件的长按事件,当事件为null时,代表长按结束(自定义封装事件,此事件被认可为执行按钮长按事件,受CanClick属性控制)
|
| | | /// </summary>
|
| | | private Button btnBottomShadowView1 = null;
|
| | | public Action<Button, MouseEventArgs> ButtonLongClickEvent = null;
|
| | | /// <summary>
|
| | | /// 底部阴影控件2
|
| | | /// 控件的按下事件(自定义封装事件,此事件被认可为执行按钮按下事件,受CanClick属性控制)
|
| | | /// </summary>
|
| | | private Button btnBottomShadowView2 = null;
|
| | | public Action<Button, MouseEventArgs> ButtonDownClickEvent = null;
|
| | |
|
| | | #endregion
|
| | |
|
| | |
| | |
|
| | | //点击事件
|
| | | this.MouseUpEventHandler += ButtonBase_MouseUpEventHandler;
|
| | | //按下事件
|
| | | this.MouseDownEventHandler += ButtonBase_MouseDownEventHandler;
|
| | | //长按事件
|
| | | this.MouseLongEventHandler += ButtonBase_MouseLongEventHandler;
|
| | | }
|
| | |
|
| | | /// <summary>
|
| | |
| | | if (CanClick == true)
|
| | | {
|
| | | //Log出力
|
| | | this.WriteLog();
|
| | | this.WriteLog(0);
|
| | |
|
| | | try
|
| | | {
|
| | | this.ButtonClickEvent?.Invoke(this, e);
|
| | | if (this.isLongClick == false)
|
| | | {
|
| | | this.ButtonClickEvent(this, e);
|
| | | }
|
| | | else if (ButtonLongClickEvent != null)
|
| | | {
|
| | | //长按结束
|
| | | this.ButtonLongClickEvent(this, null);
|
| | | }
|
| | | }
|
| | | catch (Exception ex)
|
| | | {
|
| | | //出现未知错误
|
| | | var alert = new ShowMsgControl(ShowMsgType.Error, Language.StringByID(R.MyInternationalizationString.uUnKnownError));
|
| | | alert.Show();
|
| | | //Log出力
|
| | | HdlLogLogic.Current.WriteLog(ex);
|
| | | }
|
| | | }
|
| | | //状态还原
|
| | | this.isLongClick = false;
|
| | | }
|
| | |
|
| | | #endregion
|
| | |
|
| | | #region ■ 按下事件___________________________
|
| | |
|
| | | /// <summary>
|
| | | /// 按下事件
|
| | | /// </summary>
|
| | | /// <param name="sender"></param>
|
| | | /// <param name="e"></param>
|
| | | private void ButtonBase_MouseDownEventHandler(object sender, MouseEventArgs e)
|
| | | {
|
| | | //还原状态
|
| | | this.isLongClick = false;
|
| | |
|
| | | if (CanClick == false || this.ButtonDownClickEvent == null)
|
| | | {
|
| | | //不能点击
|
| | | return;
|
| | | }
|
| | |
|
| | | try
|
| | | {
|
| | | this.ButtonDownClickEvent(this, e);
|
| | | }
|
| | | catch (Exception ex)
|
| | | {
|
| | | //出现未知错误
|
| | | var alert = new ShowMsgControl(ShowMsgType.Error, Language.StringByID(R.MyInternationalizationString.uUnKnownError));
|
| | | alert.Show();
|
| | | //Log出力
|
| | | HdlLogLogic.Current.WriteLog(ex);
|
| | | }
|
| | | }
|
| | |
|
| | | #endregion
|
| | |
|
| | | #region ■ 长按事件___________________________
|
| | |
|
| | | /// <summary>
|
| | | /// 长按事件
|
| | | /// </summary>
|
| | | /// <param name="sender"></param>
|
| | | /// <param name="e"></param>
|
| | | private void ButtonBase_MouseLongEventHandler(object sender, MouseEventArgs e)
|
| | | {
|
| | | //长按状态
|
| | | this.isLongClick = true;
|
| | |
|
| | | if (ButtonLongClickEvent == null)
|
| | | {
|
| | | this.MouseLongEventHandler -= ButtonBase_MouseLongEventHandler;
|
| | | return;
|
| | | }
|
| | | if (CanClick == true)
|
| | | {
|
| | | //Log出力
|
| | | this.WriteLog(1);
|
| | |
|
| | | try
|
| | | {
|
| | | this.ButtonLongClickEvent(this, e);
|
| | | }
|
| | | catch (Exception ex)
|
| | | {
|
| | |
| | | #region ■ 一般方法___________________________
|
| | |
|
| | | /// <summary>
|
| | | /// 重置单击事件(此操作委托会变null)
|
| | | /// </summary>
|
| | | public void ResetClickEvent()
|
| | | {
|
| | | ButtonClickEvent = null;
|
| | | this.MouseUpEventHandler -= this.ButtonBase_MouseUpEventHandler;
|
| | | this.MouseUpEventHandler += this.ButtonBase_MouseUpEventHandler;
|
| | | }
|
| | |
|
| | | /// <summary>
|
| | | /// 控件摧毁
|
| | | /// </summary>
|
| | | public override void RemoveFromParent()
|
| | | {
|
| | | ButtonClickEvent = null;
|
| | | ButtonDownClickEvent = null;
|
| | | ButtonLongClickEvent = null;
|
| | |
|
| | | base.RemoveFromParent();
|
| | | }
|
| | |
|
| | |
| | | /// <summary>
|
| | | /// Log出力
|
| | | /// </summary>
|
| | | private void WriteLog()
|
| | | private void WriteLog(int div)
|
| | | {
|
| | | if (formName == null)
|
| | | {
|
| | |
| | | controlName = this.UnSelectedImagePath;
|
| | | }
|
| | | }
|
| | | HdlLogLogic.Current.WriteLog(1, formName + "的[" + controlName + "]按键被点击");
|
| | | if (div == 0)
|
| | | {
|
| | | HdlLogLogic.Current.WriteLog(1, formName + "的[" + controlName + "]按键被点击");
|
| | | }
|
| | | else
|
| | | {
|
| | | HdlLogLogic.Current.WriteLog(1, formName + "的[" + controlName + "]按键被长按");
|
| | | }
|
| | | }
|
| | |
|
| | | #endregion
|
| | |
| | | this.BackgroundColor = UserCenterColor.Current.ClickButtonDefultColor; |
| | | this.TextAlignment = TextAlignment.Center;
|
| | |
|
| | | this.MouseDownEventHandler += this.Button_MouseDownEvent;
|
| | | this.ButtonDownClickEvent += this.Button_MouseDownEvent;
|
| | | }
|
| | |
|
| | | #endregion
|
| | |
| | | if (this.UseClickStatu == false)
|
| | | {
|
| | | //永久移除
|
| | | this.MouseDownEventHandler -= this.Button_MouseDownEvent;
|
| | | this.ButtonDownClickEvent -= Button_MouseDownEvent;
|
| | | return;
|
| | | }
|
| | | if (base.CanClick == false || isSelcetStatu == true)
|
| | |
| | | public IconControlCommon()
|
| | | {
|
| | | //这个事件是搞点亮特效的
|
| | | this.MouseDownEventHandler += this.Button_MouseDownEvent;
|
| | | this.ButtonDownClickEvent += this.Button_MouseDownEvent;
|
| | | }
|
| | |
|
| | | #endregion
|
| | |
| | | if (this.UseClickStatu == false || string.IsNullOrEmpty(this.SelectedImagePath) == true)
|
| | | {
|
| | | //永久移除
|
| | | this.MouseDownEventHandler -= this.Button_MouseDownEvent;
|
| | | this.ButtonDownClickEvent -= Button_MouseDownEvent;
|
| | | return;
|
| | | }
|
| | | if (base.CanClick == false || this.IsSelected == true)
|
| | |
| | | //设置处于选择状态时,显示的图标
|
| | | this.SetSelectPictrue();
|
| | |
|
| | | HdlThreadLogic.Current.RunThread(() =>
|
| | | {
|
| | | System.Threading.Thread.Sleep(ControlCommonResourse.StatuChangedWaitTime);
|
| | | Application.RunOnMainThread(() =>
|
| | | {
|
| | | //设置处于非选择状态时,显示的图标
|
| | | this.SetUnSelectPictrue();
|
| | | });
|
| | | });
|
| | | //设置处于非选择状态时,显示的图标
|
| | | this.SetUnSelectPictrue(true);
|
| | | }
|
| | |
|
| | | /// <summary>
|
| | |
| | | /// <summary>
|
| | | /// 设置处于非选择状态时,显示的图标
|
| | | /// </summary>
|
| | | public void SetUnSelectPictrue()
|
| | | /// <param name="waitTime">追加变量:是否等待</param>
|
| | | public void SetUnSelectPictrue(bool waitTime)
|
| | | {
|
| | | //设置不选择状态
|
| | | this.IsSelected = false;
|
| | | if (waitTime == false)
|
| | | {
|
| | | Application.RunOnMainThread(() =>
|
| | | {
|
| | | //设置不选择状态
|
| | | this.IsSelected = false;
|
| | | });
|
| | | }
|
| | | else
|
| | | {
|
| | | HdlThreadLogic.Current.RunThread(() =>
|
| | | {
|
| | | System.Threading.Thread.Sleep(ControlCommonResourse.StatuChangedWaitTime);
|
| | | Application.RunOnMainThread(() =>
|
| | | {
|
| | | //设置不选择状态
|
| | | this.IsSelected = false;
|
| | | });
|
| | | });
|
| | | }
|
| | | }
|
| | | #endregion
|
| | | }
|
| | |
| | | /// 撤防
|
| | | /// </summary>
|
| | | private GarrisonControl btnReGarrisonGarrison = null;
|
| | | /// <summary>
|
| | | /// 桌布控件
|
| | | /// </summary>
|
| | | private FrameLayout frameTable = null;
|
| | |
|
| | | #endregion
|
| | |
|
| | |
| | | this.Gravity = Gravity.CenterHorizontal;
|
| | | this.Width = Application.GetRealWidth(964);
|
| | | this.Height = Application.GetRealHeight(340);
|
| | | this.Radius = 20;
|
| | | this.BackgroundColor = UserCenterColor.Current.White;
|
| | | }
|
| | |
|
| | | /// <summary>
|
| | |
| | | this.btnReGarrisonGarrison = null;
|
| | | this.btnRemovehomeGarrison = null;
|
| | |
|
| | | this.frameTable = new FrameLayout();
|
| | | frameTable.Height = this.Height;
|
| | | frameTable.Width = this.Width;
|
| | | frameTable.Radius = 20;
|
| | | frameTable.BackgroundColor = UserCenterColor.Current.White;
|
| | | this.AddChidren(frameTable);
|
| | |
|
| | | //右上圆角背景
|
| | | var btnTopRight = new NormalViewControl(50, 50, true);
|
| | | var btnTopRight = new NormalViewControl(150, 60, true);
|
| | | btnTopRight.BackgroundColor = UserCenterColor.Current.White;
|
| | | btnTopRight.Radius = 6;
|
| | | this.AddChidren(btnTopRight);
|
| | | btnTopRight.X = this.Width - btnTopRight.Width;
|
| | |
|
| | | //左下圆角背景
|
| | | var btnBottomRight = new NormalViewControl(50, 50, true);
|
| | | var btnBottomRight = new NormalViewControl(150, 60, true);
|
| | | btnBottomRight.BackgroundColor = UserCenterColor.Current.White;
|
| | | btnBottomRight.Radius = 6;
|
| | | this.AddChidren(btnBottomRight);
|
| | |
| | | {
|
| | | //在家布防
|
| | | btnAthomeGarrison = new GarrisonControl();
|
| | | this.AddChidren(btnAthomeGarrison);
|
| | | frameTable.AddChidren(btnAthomeGarrison);
|
| | | btnAthomeGarrison.InitControl(GarrisonMode.AtHome);
|
| | | btnAthomeGarrison.ButtonClickEvent += (sender, e) =>
|
| | | {
|
| | |
| | | //离家布防
|
| | | btnRemovehomeGarrison = new GarrisonControl();
|
| | | btnRemovehomeGarrison.X = btnAthomeGarrison.Right + Application.GetRealWidth(32);
|
| | | this.AddChidren(btnRemovehomeGarrison);
|
| | | frameTable.AddChidren(btnRemovehomeGarrison);
|
| | | btnRemovehomeGarrison.InitControl(GarrisonMode.RemoveHome);
|
| | | btnRemovehomeGarrison.ButtonClickEvent += (sender, e) =>
|
| | | {
|
| | |
| | | //撤防
|
| | | btnReGarrisonGarrison = new GarrisonControl();
|
| | | btnReGarrisonGarrison.X = btnRemovehomeGarrison.Right + Application.GetRealWidth(32);
|
| | | this.AddChidren(btnReGarrisonGarrison);
|
| | | frameTable.AddChidren(btnReGarrisonGarrison);
|
| | | btnReGarrisonGarrison.InitControl(GarrisonMode.RemoveGarrison);
|
| | | btnReGarrisonGarrison.ButtonClickEvent += (sender, e) =>
|
| | | {
|
| | |
| | | //布防
|
| | | btnAthomeGarrison = new GarrisonControl();
|
| | | btnAthomeGarrison.X = Application.GetRealWidth(166);
|
| | | this.AddChidren(btnAthomeGarrison);
|
| | | frameTable.AddChidren(btnAthomeGarrison);
|
| | | btnAthomeGarrison.InitControl(GarrisonMode.AtHome);
|
| | | btnAthomeGarrison.ButtonClickEvent += (sender, e) =>
|
| | | {
|
| | |
| | | //撤防
|
| | | btnReGarrisonGarrison = new GarrisonControl();
|
| | | btnReGarrisonGarrison.X = btnAthomeGarrison.Right + Application.GetRealWidth(32);
|
| | | this.AddChidren(btnReGarrisonGarrison);
|
| | | frameTable.AddChidren(btnReGarrisonGarrison);
|
| | | btnReGarrisonGarrison.InitControl(GarrisonMode.RemoveGarrison);
|
| | | btnReGarrisonGarrison.ButtonClickEvent += (sender, e) =>
|
| | | {
|
| | |
| | | }
|
| | | }
|
| | |
|
| | | /// <summary>
|
| | | /// Log备份的名字
|
| | | /// </summary>
|
| | | private string LogBackupName = "##Log##";
|
| | |
|
| | | #endregion
|
| | |
|
| | | #region ■ 获取备份名字列表___________________
|
| | |
| | | /// </summary>
|
| | | /// <param name="ZigbeeBackupType">0:App手动备份 1: App 自动备份 2:网关手动备份 3:网关自动备份</param>
|
| | | /// <param name="ZigbeeUniqueId">网关的唯一Id,获取网关备份需要</param>
|
| | | /// <param name="getLogBackup">是否获取Log备份</param>
|
| | | /// <param name="getOptionBackup">是否获取功能备份</param>
|
| | | /// <returns></returns>
|
| | | public async Task<List<BackupListNameInfo>> GetBackupListNameFromDB(int ZigbeeBackupType = 0, string ZigbeeUniqueId = null, bool getLogBackup = false)
|
| | | public async Task<List<BackupListNameInfo>> GetBackupListNameFromDB(int ZigbeeBackupType = 0, string ZigbeeUniqueId = null, bool getOptionBackup = false)
|
| | | {
|
| | | //备份名字很少的内存,可以直接一次性全部取完
|
| | | var pra = new GetBackupListPra();
|
| | |
| | | {
|
| | | continue;
|
| | | }
|
| | | if (getLogBackup == false && data2.BackupName == LogBackupName)
|
| | | if (getOptionBackup == false && data2.BackupName == DirNameResourse.OptionBackupName)
|
| | | {
|
| | | //不获取Log备份
|
| | | //不获取功能备份
|
| | | continue;
|
| | | }
|
| | | list.Add(data2);
|
| | |
| | | ProgressFormBar.Current.SetValue(i + 1 + listNormalFile.Count, listFileCount);
|
| | | }
|
| | |
|
| | | //上传Log备份
|
| | | if (upPath != UserCenterLogic.CombinePath(DirNameResourse.LocalMemoryDirectory, DirNameResourse.LogDirectory))
|
| | | {
|
| | | //里面有个回调自身的方法,所以这里加个判断,不然会死循环
|
| | | await this.UpLoadLogBackup();
|
| | | }
|
| | |
|
| | | //进度条关闭
|
| | | ProgressFormBar.Current.Close();
|
| | | //允许按系统的返回键
|
| | |
| | | #region ■ 上传Log备份________________________
|
| | |
|
| | | /// <summary>
|
| | | /// 上传Log备份
|
| | | /// 上传Log备份(隐匿功能)
|
| | | /// </summary>
|
| | | /// <returns></returns>
|
| | | private async Task<bool> UpLoadLogBackup()
|
| | | public async Task<bool> UpLoadLogBackup()
|
| | | {
|
| | | string upPath = UserCenterLogic.CombinePath(DirNameResourse.LocalMemoryDirectory, DirNameResourse.LogDirectory);
|
| | | if (HdlAutoBackupLogic.GetFileFromDirectory(upPath).Count == 0)
|
| | |
| | | return true;
|
| | | }
|
| | |
|
| | | //无视错误
|
| | | IMessageCommon.Current.IgnoreError = true;
|
| | | ProgressFormBar.Current.Start();
|
| | | ProgressFormBar.Current.SetMsg("正在上传Log文件");
|
| | |
|
| | | //从云端获取数据
|
| | | var pageData = await HdlBackupLogic.Current.GetBackupListNameFromDB(0, null, true);
|
| | | if (pageData == null)
|
| | | {
|
| | | //恢复
|
| | | IMessageCommon.Current.IgnoreError = false;
|
| | | ProgressFormBar.Current.Close();
|
| | | return false;
|
| | | }
|
| | | string backId = string.Empty;
|
| | | for (int i = 0; i < pageData.Count; i++)
|
| | | {
|
| | | if (pageData[i].BackupName == LogBackupName)
|
| | | if (pageData[i].BackupName == DirNameResourse.OptionBackupName)
|
| | | {
|
| | | //删除掉这个备份
|
| | | bool flage = await this.DeleteDbBackupData(pageData[i].Id);
|
| | | if (flage == false)
|
| | | {
|
| | | //恢复
|
| | | IMessageCommon.Current.IgnoreError = false;
|
| | | return false;
|
| | | }
|
| | | //获取功能备份的ID
|
| | | backId = pageData[i].Id;
|
| | | break;
|
| | | }
|
| | | }
|
| | | //创建新的备份
|
| | | string backupClassId = await HdlBackupLogic.Current.CreatNewBackupNameToDB(LogBackupName);
|
| | | if (backupClassId == null)
|
| | | if (backId == string.Empty)
|
| | | {
|
| | | //恢复
|
| | | IMessageCommon.Current.IgnoreError = false;
|
| | | return false;
|
| | | //创建新的备份
|
| | | backId = await HdlBackupLogic.Current.CreatNewBackupNameToDB(DirNameResourse.OptionBackupName);
|
| | | if (backId == null)
|
| | | {
|
| | | ProgressFormBar.Current.Close();
|
| | | return false;
|
| | | }
|
| | | }
|
| | | //上传Log文件
|
| | | bool result = await this.UpLoadBackupFileToDB(backupClassId, 0, upPath, false);
|
| | | bool result = await this.UpLoadBackupFileToDB(backId, 0, upPath, false);
|
| | | if (result == true)
|
| | | {
|
| | | try
|
| | |
| | | }
|
| | | catch { }
|
| | | }
|
| | | //恢复
|
| | | IMessageCommon.Current.IgnoreError = false;
|
| | | ProgressFormBar.Current.Close();
|
| | |
|
| | | return result;
|
| | | }
|
| | |
|
| | | #endregion
|
| | |
|
| | | #region ■ 读取隐匿功能配置___________________
|
| | |
|
| | | /// <summary>
|
| | | /// 读取隐匿功能配置(不要在意返回值)
|
| | | /// </summary>
|
| | | /// <returns></returns>
|
| | | public async Task<bool> LoadHideOption()
|
| | | {
|
| | | //先初始化
|
| | | UserCenterResourse.HideOption = new HideOptionInfo();
|
| | | if (UserCenterResourse.UserInfo.AuthorityNo != 1 && UserCenterResourse.UserInfo.AuthorityNo != 2)
|
| | | {
|
| | | return true;
|
| | | }
|
| | |
|
| | | //无视错误
|
| | | IMessageCommon.Current.IgnoreError = true;
|
| | | //从云端获取数据
|
| | | var pageData = await this.GetBackupListNameFromDB(0, null, true);
|
| | | if (pageData == null)
|
| | | {
|
| | | //恢复
|
| | | IMessageCommon.Current.IgnoreError = false;
|
| | | return false;
|
| | | }
|
| | | string backId = string.Empty;
|
| | | for (int i = 0; i < pageData.Count; i++)
|
| | | {
|
| | | if (pageData[i].BackupName == DirNameResourse.OptionBackupName)
|
| | | {
|
| | | //获取功能备份的ID
|
| | | backId = pageData[i].Id;
|
| | | break;
|
| | | }
|
| | | }
|
| | | if (backId == string.Empty)
|
| | | {
|
| | | //没有功能配置
|
| | | IMessageCommon.Current.IgnoreError = false;
|
| | | return true;
|
| | | }
|
| | | //获取这个备份下面有多少个文件
|
| | | List<string> listFile = await GetBackFileIDFromDB(backId, false, null);
|
| | | if (listFile == null)
|
| | | {
|
| | | //恢复
|
| | | IMessageCommon.Current.IgnoreError = false;
|
| | | return false;
|
| | | }
|
| | |
|
| | | if (listFile.Contains(DirNameResourse.ShowOptionMenuFile) == true)
|
| | | {
|
| | | //显示主页隐藏菜单(Debug用)
|
| | | UserCenterResourse.HideOption.CenterHideMenu = 1;
|
| | | }
|
| | | if (listFile.Contains(DirNameResourse.DetailedLogFile) == true)
|
| | | {
|
| | | //出力详细Log(Debug用)
|
| | | UserCenterResourse.HideOption.DetailedLog = 1;
|
| | | }
|
| | |
|
| | | //恢复
|
| | | IMessageCommon.Current.IgnoreError = false;
|
| | | return true;
|
| | | }
|
| | |
|
| | | #endregion
|
| | |
|
| | | #region ■ 读取备份___________________________
|
| | |
|
| | | /// <summary>
|
| | |
| | | btnMsg.TextID = R.MyInternationalizationString.uGatewayDataIsChangingPleaseWhait;
|
| | | });
|
| | | }
|
| | | await System.Threading.Tasks.Task.Delay(8000);
|
| | | await Task.Delay(8000);
|
| | |
|
| | | //获取网关的信息
|
| | | var result = await zbGateway.GetZbGwInfoAsync();
|
| | |
| | | return -1;
|
| | | }
|
| | |
|
| | | if (result == null)
|
| | | {
|
| | | //获取网关信息失败
|
| | | string msg = Language.StringByID(R.MyInternationalizationString.uGetGatewayInfoFail);
|
| | | this.ShowTipMsg(msg);
|
| | | return -1;
|
| | | }
|
| | |
|
| | | if (result.getGwData == null)
|
| | | if (result == null || result.getGwData == null)
|
| | | {
|
| | | //获取网关信息失败
|
| | | string msg = Language.StringByID(R.MyInternationalizationString.uGetGatewayInfoFail);
|
| | |
| | | {
|
| | | lock (objLock)
|
| | | {
|
| | | if (div != -1)
|
| | | if (div != -1 && UserCenterResourse.HideOption.DetailedLog == 0)
|
| | | {
|
| | | //暂时只记录异常信息
|
| | | return;
|
| | |
| | | string fileName = DateTime.Now.ToString("yyyyMMdd");
|
| | | if (div == -1)
|
| | | {
|
| | | fileName += "Log";
|
| | | fileName += "Error";
|
| | | }
|
| | | else if (div == 1)
|
| | | {
|
| | | fileName += "Error";
|
| | | fileName += "Log";
|
| | | }
|
| | | fileName = UserCenterLogic.EncryptPassword("4^Olh_3f", fileName);
|
| | | return fileName;
|
| | |
| | | }
|
| | |
|
| | | /// <summary>
|
| | | /// 当前Wifi的Ip地址
|
| | | /// </summary>
|
| | | public string IpAddress
|
| | | {
|
| | | get
|
| | | {
|
| | | var temp = new Shared.Net.NetWiFi();
|
| | | return temp.GetIPAddress();
|
| | | }
|
| | | }
|
| | |
|
| | | /// <summary>
|
| | | /// 当前是否是网关热点
|
| | | /// </summary>
|
| | | public bool IsGatewayHotspot
|
| | |
| | | /// <param name="wifiPsw">wifi密码</param>
|
| | | /// <param name="p2">我也不知道这个是什么东西</param>
|
| | | /// <returns></returns>
|
| | | public bool StartSmartConnection(string wifiName, string wifiPsw, string p2 = "1")
|
| | | public bool StartSmartConnection(string wifiName, string wifiPsw, string p2 = "")
|
| | | {
|
| | | if (hdlWiFi == null)
|
| | | {
|
| | | Com.Mediatek.Elian.ElianNative.LoadLib();
|
| | | //初始化Wi-Fi配网
|
| | | this.hdlWiFi = new Com.Mediatek.Elian.ElianNative();
|
| | | hdlWiFi.InitSmartConnection(null, 1, 1);
|
| | | var value = hdlWiFi.InitSmartConnection(null, 1, 0);
|
| | | }
|
| | | //开始Wi-Fi配网
|
| | | var result = hdlWiFi.StartSmartConnection(wifiName, wifiPsw, p2);
|
| | |
| | | if (hdlWiFi != null)
|
| | | {
|
| | | //停止Wi-Fi配网
|
| | | hdlWiFi.StopSmartConnection();
|
| | | var result = hdlWiFi.StopSmartConnection();
|
| | | }
|
| | | }
|
| | | #endif
|
| | |
| | | }
|
| | | catch { }
|
| | |
|
| | | if (noticeDb == true)
|
| | | {
|
| | | //通知云端,已经退出登陆
|
| | | var result = await CommonPage.Instance.RequestHttpsZigbeeBytesResultAsync("ZigbeeUsers/SignOut", null, "GET");
|
| | | }
|
| | | HdlThreadLogic.Current.RunMain(() =>
|
| | | {
|
| | | //关闭所有打开了的界面
|
| | |
| | | Shared.Common.CommonPage.Instance.AddChidren(formLogin);
|
| | | formLogin.Show(account);
|
| | | });
|
| | |
|
| | | if (noticeDb == true)
|
| | | {
|
| | | //通知云端,已经退出登陆
|
| | | var result = await CommonPage.Instance.RequestHttpsZigbeeBytesResultAsync("ZigbeeUsers/SignOut", null, "GET");
|
| | | }
|
| | | });
|
| | | }
|
| | |
|
| | |
| | | /// <summary>
|
| | | /// 异步方法执行(仅限切换住宅时调用),刷新个人中心的内存及线程
|
| | | /// </summary>
|
| | | public async static Task<bool> InitUserCenterMenmoryAndThread()
|
| | | /// <param name="ShowPrompted">新追加变量:是否显示提示自动备份的界面</param>
|
| | | /// <returns></returns>
|
| | | public async static Task<bool> InitUserCenterMenmoryAndThread(bool ShowPrompted = true)
|
| | | {
|
| | | //APP缓存加载开始
|
| | | UserCenterResourse.Option.AppCanSignout = false;
|
| | |
| | | {
|
| | | //重新发送命令去绑定断网情况下备份的网关
|
| | | HdlGatewayLogic.Current.ResetComandToBindBackupGateway();
|
| | | //读取隐匿配置
|
| | | await HdlBackupLogic.Current.LoadHideOption();
|
| | | }
|
| | |
|
| | | //初始化缓存成员的信息
|
| | |
| | | HdlGatewayLogic.Current.RefreshAppOldSelectGatewayId();
|
| | |
|
| | | //0:已经同步过,不需要同步,这个时候需要提示备份
|
| | | if (result == 0)
|
| | | if (result == 0 && ShowPrompted == true)
|
| | | {
|
| | | //开启自动备份提示
|
| | | HdlAutoBackupLogic.ShowAutoBackupPromptedForm();
|
| | |
| | | /// 保存意见反馈次数的【文件】
|
| | | /// </summary>
|
| | | public const string SuggestionFile = "f782709778b751ef2b3840f17e407ead";
|
| | |
|
| | | /// <summary>
|
| | | /// 显示功能菜单的【标识文件】
|
| | | /// </summary>
|
| | | public const string ShowOptionMenuFile = "eaf5efcca1be2f4cb0ff3dea79df755f5886beb3bf7aed1b";
|
| | | /// <summary>
|
| | | /// 详细Log处理的【标识文件】
|
| | | /// </summary>
|
| | | public const string DetailedLogFile = "ceec8cfdbe5e8112755cba32c1b081f9";
|
| | | /// <summary>
|
| | | /// 功能备份的名字 这个东西不加密
|
| | | /// </summary>
|
| | | public const string OptionBackupName = "##Option##";
|
| | | }
|
| | | }
|
| | |
| | | /// 账号的设置信息
|
| | | /// </summary>
|
| | | public static AccountOption Option = new AccountOption(); |
| | | /// <summary>
|
| | | /// 隐匿配置
|
| | | /// </summary> |
| | | public static HideOptionInfo HideOption = new HideOptionInfo(); |
| | | } |
| | | } |
| | |
| | | /// </summary> |
| | | /// <param name="common">Common.</param> |
| | | public void Changed(CommonDevice common) |
| | | { |
| | | { |
| | | Shared.Application.RunOnMainThread(() => |
| | | { |
| | | }); |
| | | }); |
| | | } |
| | | |
| | | /// 构造函数 |
| | |
| | | }; |
| | | rowLayout.AddChidren(line2); |
| | | |
| | | if (curIndex == curRoom.SceneUIList.Count - 1) |
| | | if (curIndex == curRoom.DeviceUIList.Count - 1) |
| | | { |
| | | line2.Visible = false; |
| | | } |
| | |
| | | } |
| | | else |
| | | { |
| | | targetList.Add(device.CommonDevice); |
| | | btnChoose.IsSelected = true; |
| | | btnChoose.Visible = true; |
| | | if (targetList.Count > 9) |
| | | { |
| | | new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.BindFull), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance); |
| | | } |
| | | else |
| | | { |
| | | targetList.Add(device.CommonDevice); |
| | | btnChoose.IsSelected = true; |
| | | btnChoose.Visible = true; |
| | | } |
| | | } |
| | | }; |
| | | rowLayout.MouseUpEventHandler += hander; |
| | |
| | | // new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.None, CloseTime = 2 }.Show(CommonPage.Instance); |
| | | //} |
| | | |
| | | if (delResult.delDeviceBindResponseData?.RemoveBindList != null) |
| | | if (delResult != null && delResult.removeBindResultResponseData != null) |
| | | { |
| | | foreach (var re in delResult.delDeviceBindResponseData.RemoveBindList) |
| | | if (delResult.delDeviceBindResponseData?.RemoveBindList != null) |
| | | { |
| | | switch (re.Result) |
| | | foreach (var re in delResult.delDeviceBindResponseData.RemoveBindList) |
| | | { |
| | | case 0: |
| | | currentKey.bindList.Remove(bindDevice); |
| | | RefreshList(); |
| | | //如果是场景,用户删除清空当前到房间列表 |
| | | currentKey.RoomId = ""; |
| | | currentKey.ReSave(); |
| | | return 0; |
| | | break; |
| | | case 1: |
| | | currentKey.bindList.Clear(); |
| | | try |
| | | { |
| | | CommonPage.Loading.Start(""); |
| | | |
| | | var getBindList = await currentKey.GetDeviceBindAsync(); |
| | | var bindDeviceListTemp = new System.Collections.Generic.List<BindListResponseObj> { }; |
| | | var bindSceneListTemp = new System.Collections.Generic.List<BindListResponseObj> { }; |
| | | if (getBindList != null) |
| | | switch (re.Result) |
| | | { |
| | | case 0: |
| | | currentKey.bindList.Remove(bindDevice); |
| | | RefreshList(); |
| | | //如果是场景,用户删除清空当前到房间列表 |
| | | currentKey.RoomId = ""; |
| | | currentKey.ReSave(); |
| | | return 0; |
| | | break; |
| | | case 1: |
| | | currentKey.bindList.Clear(); |
| | | try |
| | | { |
| | | if (getBindList.getAllBindResponseData != null) |
| | | { |
| | | foreach (var b in getBindList.getAllBindResponseData.BindList) |
| | | { |
| | | if (b.BindCluster == currentClusterID) |
| | | { |
| | | if (b.BindCluster == 6) |
| | | { |
| | | CommonPage.Loading.Start(""); |
| | | |
| | | if (b.BindType == 2) |
| | | var getBindList = await currentKey.GetDeviceBindAsync(); |
| | | var bindDeviceListTemp = new System.Collections.Generic.List<BindListResponseObj> { }; |
| | | var bindSceneListTemp = new System.Collections.Generic.List<BindListResponseObj> { }; |
| | | if (getBindList != null) |
| | | { |
| | | if (getBindList.getAllBindResponseData != null) |
| | | { |
| | | foreach (var b in getBindList.getAllBindResponseData.BindList) |
| | | { |
| | | if (b.BindCluster == currentClusterID) |
| | | { |
| | | if (b.BindCluster == 6) |
| | | { |
| | | bindSceneListTemp.Add(b); |
| | | |
| | | if (b.BindType == 2) |
| | | { |
| | | bindSceneListTemp.Add(b); |
| | | } |
| | | else |
| | | { |
| | | bindDeviceListTemp.Add(b); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | bindDeviceListTemp.Add(b); |
| | | currentKey.bindList.Add(b); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | currentKey.bindList.Add(b); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | if (currentKey.panelMode == 1) |
| | | { |
| | | currentKey.bindList = bindSceneListTemp; |
| | | } |
| | | else if (currentKey.panelMode == 100 || currentKey.panelMode == 101 || currentKey.panelMode == 102) |
| | | { |
| | | currentKey.bindList = bindDeviceListTemp; |
| | | } |
| | | } |
| | | if (currentKey.panelMode == 1) |
| | | catch { } |
| | | finally |
| | | { |
| | | currentKey.bindList = bindSceneListTemp; |
| | | } |
| | | else if (currentKey.panelMode == 100 || currentKey.panelMode == 101 || currentKey.panelMode == 102) |
| | | { |
| | | currentKey.bindList = bindDeviceListTemp; |
| | | } |
| | | } |
| | | catch { } |
| | | finally |
| | | { |
| | | RefreshList(); |
| | | CommonPage.Loading.Hide(); |
| | | } |
| | | break; |
| | | case 2: |
| | | if (delResult.removeBindResultResponseData != null) |
| | | { |
| | | if (delResult.removeBindResultResponseData.Result == 0) |
| | | { |
| | | currentKey.bindList.Remove(bindDevice); |
| | | RefreshList(); |
| | | return 0; |
| | | CommonPage.Loading.Hide(); |
| | | } |
| | | else |
| | | break; |
| | | case 2: |
| | | if (delResult.removeBindResultResponseData != null) |
| | | { |
| | | new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.RemoveFailed), Direction = AMPopTipDirection.Up, CloseTime = 2 }.Show(btnDel); |
| | | if (delResult.removeBindResultResponseData.Result == 0) |
| | | { |
| | | currentKey.bindList.Remove(bindDevice); |
| | | RefreshList(); |
| | | return 0; |
| | | } |
| | | else |
| | | { |
| | | new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.RemoveFailed), Direction = AMPopTipDirection.Up, CloseTime = 2 }.Show(btnDel); |
| | | } |
| | | } |
| | | } |
| | | break; |
| | | default: |
| | | break; |
| | | break; |
| | | default: |
| | | break; |
| | | } |
| | | } |
| | | } |
| | | else |
| | | { |
| | | new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.RemoveFailed), Direction = AMPopTipDirection.Up, CloseTime = 2 }.Show(btnDel); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.RemoveFailed), Direction = AMPopTipDirection.Up, CloseTime = 2 }.Show(btnDel); |
| | | new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.None, CloseTime = 2 }.Show(CommonPage.Instance); |
| | | } |
| | | } |
| | | catch { } |
| | |
| | | /// </summary>
|
| | | private void InitTopRightMenu()
|
| | | {
|
| | | //检测此回路是否拥有定位功能
|
| | | if (Common.LocalDevice.Current.DeviceIsCanFixedPosition(nowSelectDevice) == false)
|
| | | {
|
| | | return;
|
| | | }
|
| | | var btnIcon = new MostRightIconControl(69, 69);
|
| | | btnIcon.UnSelectedImagePath = "Item/More.png";
|
| | | topFrameLayout.AddChidren(btnIcon);
|
| | |
| | | string deviceMenu = string.Empty;
|
| | | //检测此回路是否拥有定位功能
|
| | | bool canTest = Common.LocalDevice.Current.DeviceIsCanFixedPosition(nowSelectDevice);
|
| | | if (canTest == true)
|
| | | {
|
| | | menuCount = 2;
|
| | | }
|
| | | //if (canTest == true)
|
| | | //{
|
| | | // menuCount = 2;
|
| | | //}
|
| | | var frame = new TopRightMenuControl(menuCount);
|
| | | if (canTest == true)
|
| | | {
|
| | |
| | | }
|
| | |
|
| | | //删除
|
| | | deviceMenu = Language.StringByID(R.MyInternationalizationString.uDelete);
|
| | | frame.AddRowMenu(deviceMenu, "Item/DeleteIcon2.png", "Item/DeleteIcon2Selected.png", () =>
|
| | | {
|
| | | });
|
| | | //deviceMenu = Language.StringByID(R.MyInternationalizationString.uDelete);
|
| | | //frame.AddRowMenu(deviceMenu, "Item/DeleteIcon2.png", "Item/DeleteIcon2Selected.png", () =>
|
| | | //{
|
| | | //});
|
| | | }
|
| | |
|
| | | #endregion
|
| | |
| | | /// </summary>
|
| | | private void InitTopRightMenu()
|
| | | {
|
| | | //检测此回路是否拥有定位功能
|
| | | if (Common.LocalDevice.Current.DeviceIsCanFixedPosition(nowSelectDevice) == false)
|
| | | {
|
| | | return;
|
| | | }
|
| | | var btnIcon = new MostRightIconControl(69, 69);
|
| | | btnIcon.UnSelectedImagePath = "Item/More.png";
|
| | | topFrameLayout.AddChidren(btnIcon);
|
| | |
| | | string deviceMenu = string.Empty;
|
| | | //检测此回路是否拥有定位功能
|
| | | bool canTest = Common.LocalDevice.Current.DeviceIsCanFixedPosition(nowSelectDevice);
|
| | | if (canTest == true)
|
| | | {
|
| | | menuCount = 2;
|
| | | }
|
| | | //if (canTest == true)
|
| | | //{
|
| | | // menuCount = 2;
|
| | | //}
|
| | | var frame = new TopRightMenuControl(menuCount);
|
| | | if (canTest == true)
|
| | | {
|
| | |
| | | }
|
| | |
|
| | | //删除
|
| | | deviceMenu = Language.StringByID(R.MyInternationalizationString.uDelete);
|
| | | frame.AddRowMenu(deviceMenu, "Item/DeleteIcon2.png", "Item/DeleteIcon2Selected.png", () =>
|
| | | {
|
| | | });
|
| | | //deviceMenu = Language.StringByID(R.MyInternationalizationString.uDelete);
|
| | | //frame.AddRowMenu(deviceMenu, "Item/DeleteIcon2.png", "Item/DeleteIcon2Selected.png", () =>
|
| | | //{
|
| | | //});
|
| | | }
|
| | |
|
| | | #endregion
|
| | |
| | | /// <summary>
|
| | | /// 删除指定设备
|
| | | /// </summary>
|
| | | private async void DoDeleteDevice()
|
| | | private void DoDeleteDevice()
|
| | | {
|
| | | //删除设备
|
| | | bool result = await Common.LocalDevice.Current.DeleteDevice(listNewDevice);
|
| | | if (result == false)
|
| | | HdlThreadLogic.Current.RunThread(async () =>
|
| | | {
|
| | | return;
|
| | | }
|
| | | //关闭界面
|
| | | this.CloseForm();
|
| | | //打开进度条
|
| | | this.ShowProgressBar();
|
| | |
|
| | | //删除设备
|
| | | bool result = await Common.LocalDevice.Current.DeleteDevice(listNewDevice);
|
| | | //关闭进度条
|
| | | this.CloseProgressBar();
|
| | | if (result == false)
|
| | | {
|
| | | return;
|
| | | }
|
| | | HdlThreadLogic.Current.RunMain(() =>
|
| | | {
|
| | | //关闭界面
|
| | | this.CloseForm();
|
| | | });
|
| | | });
|
| | | }
|
| | | #endregion
|
| | |
|
| | |
| | | /// </summary>
|
| | | private void InitTopRightMenu()
|
| | | {
|
| | | //检测此回路是否拥有定位功能
|
| | | if (Common.LocalDevice.Current.DeviceIsCanFixedPosition(nowSelectDevice) == false)
|
| | | {
|
| | | return;
|
| | | }
|
| | | var btnIcon = new MostRightIconControl(69, 69);
|
| | | btnIcon.UnSelectedImagePath = "Item/More.png";
|
| | | topFrameLayout.AddChidren(btnIcon);
|
| | |
| | | string deviceMenu = string.Empty;
|
| | | //检测此回路是否拥有定位功能
|
| | | bool canTest = Common.LocalDevice.Current.DeviceIsCanFixedPosition(nowSelectDevice);
|
| | | if (canTest == true)
|
| | | {
|
| | | menuCount = 2;
|
| | | }
|
| | | //if (canTest == true)
|
| | | //{
|
| | | // menuCount = 2;
|
| | | //}
|
| | | var frame = new TopRightMenuControl(menuCount);
|
| | | if (canTest == true)
|
| | | {
|
| | |
| | | }
|
| | |
|
| | | //删除
|
| | | deviceMenu = Language.StringByID(R.MyInternationalizationString.uDelete);
|
| | | frame.AddRowMenu(deviceMenu, "Item/DeleteIcon2.png", "Item/DeleteIcon2Selected.png", () =>
|
| | | {
|
| | | });
|
| | | //deviceMenu = Language.StringByID(R.MyInternationalizationString.uDelete);
|
| | | //frame.AddRowMenu(deviceMenu, "Item/DeleteIcon2.png", "Item/DeleteIcon2Selected.png", () =>
|
| | | //{
|
| | | //});
|
| | | }
|
| | |
|
| | | #endregion
|
| | |
| | | /// </summary>
|
| | | private void InitTopRightMenu()
|
| | | {
|
| | | //检测此回路是否拥有定位功能
|
| | | if (Common.LocalDevice.Current.DeviceIsCanFixedPosition(nowSelectDevice) == false)
|
| | | {
|
| | | return;
|
| | | }
|
| | | var btnIcon = new MostRightIconControl(69, 69);
|
| | | btnIcon.UnSelectedImagePath = "Item/More.png";
|
| | | topFrameLayout.AddChidren(btnIcon);
|
| | |
| | | string deviceMenu = string.Empty;
|
| | | //检测此回路是否拥有定位功能
|
| | | bool canTest = Common.LocalDevice.Current.DeviceIsCanFixedPosition(nowSelectDevice);
|
| | | if (canTest == true)
|
| | | {
|
| | | menuCount = 2;
|
| | | }
|
| | | //if (canTest == true)
|
| | | //{
|
| | | // menuCount = 2;
|
| | | //}
|
| | | var frame = new TopRightMenuControl(menuCount);
|
| | | if (canTest == true)
|
| | | {
|
| | |
| | | }
|
| | |
|
| | | //删除
|
| | | deviceMenu = Language.StringByID(R.MyInternationalizationString.uDelete);
|
| | | frame.AddRowMenu(deviceMenu, "Item/DeleteIcon2.png", "Item/DeleteIcon2Selected.png", () =>
|
| | | {
|
| | | });
|
| | | //deviceMenu = Language.StringByID(R.MyInternationalizationString.uDelete);
|
| | | //frame.AddRowMenu(deviceMenu, "Item/DeleteIcon2.png", "Item/DeleteIcon2Selected.png", () =>
|
| | | //{
|
| | | //});
|
| | | }
|
| | |
|
| | | #endregion
|
| | |
| | | Height = Application.GetRealHeight(58), |
| | | Width = Application.GetRealWidth(101), |
| | | Text = Language.StringByID(R.MyInternationalizationString.Complete), |
| | | TextColor = Shared.Common.ZigbeeColor.Current.XMGray3, |
| | | TextColor = Shared.Common.ZigbeeColor.Current.XMOrange, |
| | | TextSize = 14, |
| | | }; |
| | | #endregion |
| | |
| | | var dialog = new Dialog { }; |
| | | var doorDialog = new Shared.Phone.UserCenter.DoorLock.DoorlockDialog(dialog, Language.StringByID(R.MyInternationalizationString.Tip)); |
| | | doorDialog.Show(); |
| | | doorDialog.dialogMidFraFrameLayout.Width = Application.GetRealWidth(415); |
| | | doorDialog.dialogMidFraFrameLayout.Height = Application.GetRealHeight(58); |
| | | doorDialog.dialogMidFraFrameLayout.X = Application.GetRealWidth(190); |
| | | doorDialog.dialogMidFraFrameLayout.X = Application.GetRealWidth(0); |
| | | doorDialog.dialogMidFraFrameLayout.Y = Application.GetRealHeight(202); |
| | | doorDialog.dialogMidFraFrameLayout.AddChidren(doorDialog.dialogMidText); |
| | | doorDialog.dialogMidText.Text = Language.StringByID(R.MyInternationalizationString.BindRemoteUnlockDoorlock); |
| | |
| | | var dialog3 = new Dialog { }; |
| | | var doorDialog3 = new Shared.Phone.UserCenter.DoorLock.DoorlockDialog(dialog3, Language.StringByID(R.MyInternationalizationString.UnlockRequest)); |
| | | doorDialog3.Show(); |
| | | doorDialog3.dialogMidFraFrameLayout.Width = Application.GetRealWidth(415); |
| | | doorDialog3.dialogMidFraFrameLayout.Height = Application.GetRealHeight(58); |
| | | doorDialog3.dialogMidFraFrameLayout.X = Application.GetRealWidth(228); |
| | | doorDialog3.dialogMidFraFrameLayout.X = Application.GetRealWidth(0); |
| | | doorDialog3.dialogMidFraFrameLayout.Y = Application.GetRealHeight(202); |
| | | doorDialog3.dialogMidFraFrameLayout.AddChidren(doorDialog3.dialogMidText); |
| | | doorDialog3.dialogMidText.Text = Language.StringByID(R.MyInternationalizationString.SureToOpenDoorLock); |
| | | doorDialog3.dialogMidText.TextAlignment = TextAlignment.Center; |
| | | doorDialog3.dialogMidFraFrameLayout.AddChidren(doorDialog3.dialogMidText); |
| | | doorDialog3.dialogBtnConfirm.Text = Language.StringByID(R.MyInternationalizationString.Confrim); |
| | | doorDialog3.dialogBtnCancel.MouseUpEventHandler += (sender1, e1) => |
| | |
| | | /// </summary> |
| | | public FrameLayout dialogMidFraFrameLayout = new FrameLayout |
| | | { |
| | | Width = Application.GetRealWidth(415), |
| | | Height = Application.GetRealHeight(58), |
| | | X = Application.GetRealWidth(190), |
| | | Y = Application.GetRealHeight(202), |
| | |
| | | public Button dialogMidText = new Button |
| | | { |
| | | TextColor = Shared.Common.ZigbeeColor.Current.XMGray3, |
| | | TextSize = 14, |
| | | TextAlignment = TextAlignment.Center, |
| | | }; |
| | | |
| | | /// <summary> |
| | |
| | | var btnLine = new FrameLayout() |
| | | { |
| | | Width = Application.GetRealWidth(965), |
| | | Height = Application.GetRealHeight(5), |
| | | Height = 1, |
| | | X = Application.GetRealWidth(58), |
| | | Y = Application.GetRealHeight(81 + 127), |
| | | BackgroundColor = Shared.Common.ZigbeeColor.Current.XMRowLine, |
| | |
| | | Width = Application.GetRealWidth(222), |
| | | Height = Application.GetRealHeight(58), |
| | | Y = Application.GetRealHeight(35), |
| | | Text = Language.StringByID(R.MyInternationalizationString.MatchPerson), |
| | | Text = Language.StringByID(R.MyInternationalizationString.MatchPerson) + ":", |
| | | TextColor = Shared.Common.ZigbeeColor.Current.XMBlack, |
| | | TextAlignment = TextAlignment.CenterLeft, |
| | | TextSize = 14, |
| | |
| | | }; |
| | | personRemarkRemarkFrameLayout.AddChidren(btnMatchPersonContent); |
| | | |
| | | var btnLine1 = new FrameLayout() |
| | | { |
| | | Width = Application.GetRealWidth(965), |
| | | Height = 1, |
| | | X = Application.GetRealWidth(58), |
| | | Y = Application.GetRealHeight(81 + 127 + 12 + 127), |
| | | BackgroundColor = Shared.Common.ZigbeeColor.Current.XMRowLine, |
| | | }; |
| | | bottomFrameLayout.AddChidren(btnLine1); |
| | | |
| | | var completeBtn = new Button |
| | | { |
| | | X = Application.GetRealWidth(86), |
| | |
| | | if (i == 0) |
| | | { |
| | | bottomRowLayout.Y = Application.GetRealHeight(220); |
| | | btnName.Text = Language.StringByID(R.MyInternationalizationString.DeviceRemarkXm); |
| | | btnNextFrameLayout.Width = btnNext.Width = Application.GetRealWidth(789 - 58); |
| | | btnNextFrameLayout.X = Application.GetRealWidth(233); |
| | | btnNext.Text = doorLock.DeviceName; |
| | | btnName.Text = Language.StringByID(R.MyInternationalizationString.DeviceRemarkXm) + ":"; |
| | | btnNextFrameLayout.Width = btnNext.Width = Application.GetRealWidth(789 - 58 - 20); |
| | | btnNextFrameLayout.X = Application.GetRealWidth(233 + 20); |
| | | var btnDeviceNameEditText = new EditText() |
| | | { |
| | | X = Application.GetRealWidth(46), |
| | |
| | | { |
| | | bottomRowLayout.Y = Application.GetRealHeight(481); |
| | | btnName.Text = Language.StringByID(R.MyInternationalizationString.BelongModel) + ":"; |
| | | btnNextFrameLayout.Width = btnNext.Width = Application.GetRealWidth(789 - 58); |
| | | btnNextFrameLayout.X = Application.GetRealWidth(233); |
| | | |
| | | btnNextFrameLayout.Width = btnNext.Width = Application.GetRealWidth(789 - 58 - 20); |
| | | btnNextFrameLayout.X = Application.GetRealWidth(253); |
| | | btnNext.TextAlignment = TextAlignment.CenterLeft; |
| | | btnNext.Height = Application.GetRealHeight(58); |
| | | btnNext.Text = doorLock.DeviceName; |
| | |
| | | btnName.Text = Language.StringByID(R.MyInternationalizationString.DoorLockTime); |
| | | btnNextFrameLayout.Y = btnName.Y; |
| | | btnNext.UnSelectedImagePath = "DoorLock/RightIcon.png"; |
| | | btnLine.Visible = false; |
| | | btnLine.Visible = true; |
| | | btnLine.Y = Application.GetRealHeight(992); |
| | | } |
| | | int currentIndex = i; |
| | |
| | | if (i == 0) |
| | | { |
| | | bottomRowLayout.Y = Application.GetRealHeight(220); |
| | | btnName.Text = Language.StringByID(R.MyInternationalizationString.DeviceRemarkXm); |
| | | btnNextFrameLayout.Width = btnNext.Width = Application.GetRealWidth(789 - 58); |
| | | btnNextFrameLayout.X = Application.GetRealWidth(233); |
| | | btnNext.Text = doorLock.DeviceName; |
| | | btnName.Text = Language.StringByID(R.MyInternationalizationString.DeviceRemarkXm) + ":"; |
| | | btnNextFrameLayout.Width = btnNext.Width = Application.GetRealWidth(789 - 58 - 20); |
| | | btnNextFrameLayout.X = Application.GetRealWidth(233 + 20); |
| | | var btnDeviceNameEditText = new EditText() |
| | | { |
| | | X = Application.GetRealWidth(46), |
| | |
| | | { |
| | | bottomRowLayout.Y = Application.GetRealHeight(481); |
| | | btnName.Text = Language.StringByID(R.MyInternationalizationString.BelongModel) + ":"; |
| | | btnNextFrameLayout.Width = btnNext.Width = Application.GetRealWidth(789 - 58); |
| | | btnNextFrameLayout.X = Application.GetRealWidth(233); |
| | | |
| | | btnNextFrameLayout.Width = btnNext.Width = Application.GetRealWidth(789 - 58 - 20); |
| | | btnNextFrameLayout.X = Application.GetRealWidth(253); |
| | | btnNext.TextAlignment = TextAlignment.CenterLeft; |
| | | btnNext.Height = Application.GetRealHeight(58); |
| | | btnNext.Text = doorLock.DeviceName; |
| | |
| | | } |
| | | } |
| | | }; |
| | | btnRightFrameLayout.MouseUpEventHandler += eHandler; |
| | | btnRight.MouseUpEventHandler += eHandler; |
| | | RowView.MouseUpEventHandler += eHandler; |
| | | btnText.MouseUpEventHandler += eHandler; |
| | | if (i == 0) |
| | | { |
| | | btnRightFrameLayout.MouseUpEventHandler += eHandler; |
| | | btnRight.MouseUpEventHandler += eHandler; |
| | | RowView.MouseUpEventHandler += eHandler; |
| | | btnText.MouseUpEventHandler += eHandler; |
| | | } |
| | | else if (i == 1) |
| | | { |
| | | btnRightFrameLayout.MouseUpEventHandler += eHandler; |
| | | btnRight.MouseUpEventHandler += eHandler; |
| | | } |
| | | else if (i == 2) |
| | | { |
| | | btnRightFrameLayout.MouseUpEventHandler += eHandler; |
| | | btnRight.MouseUpEventHandler += eHandler; |
| | | } |
| | | } |
| | | } |
| | | |
| | |
| | | Height = Application.GetRealHeight(58), |
| | | Width = Application.GetRealWidth(101), |
| | | Text = Language.StringByID(R.MyInternationalizationString.Complete), |
| | | TextColor = Shared.Common.ZigbeeColor.Current.XMGray3, |
| | | TextColor = Shared.Common.ZigbeeColor.Current.XMOrange, |
| | | TextSize = 14, |
| | | }; |
| | | this.bottomRadiusFrameLayout.AddChidren(btnOk); |
| | |
| | | Height = Application.GetRealHeight(58), |
| | | Width = Application.GetRealWidth(101), |
| | | Text = Language.StringByID(R.MyInternationalizationString.Complete), |
| | | TextColor = Shared.Common.ZigbeeColor.Current.XMGray3, |
| | | TextColor = Shared.Common.ZigbeeColor.Current.XMOrange, |
| | | TextSize = 14, |
| | | }; |
| | | this.bottomRadiusFrameLayout.AddChidren(btnOk); |
| | |
| | | } |
| | | |
| | | #region ◆ 变量申明__________________________ |
| | | ZigBee.Device.DoorLock doorLock; |
| | | VerticalRefreshLayout bodyView; |
| | | ZigBee.Device.DoorLock doorLock;//当前门锁 |
| | | VerticalRefreshLayout bodyView;//刷新View |
| | | Button currentMethod;// 当前选择的方式 |
| | | Shared.Phone.UserCenter.MemberInfoRes curAccountObj; |
| | | Shared.Phone.UserCenter.MemberInfoRes curAccountObj;//当前账户 |
| | | Button entryStatusPic; |
| | | Button btnPicTip; |
| | | Button btnPicTip1; |
| | | bool isSecondDel; |
| | | FrameLayout blankFrameLayout; |
| | | bool isSecondDel;//是否二次删除 |
| | | FrameLayout blankFrameLayout;//空数据显示布局 |
| | | #endregion |
| | | |
| | | /// <summary> |
| | | /// 读取门锁存储的最新数据 |
| | | /// </summary> |
| | | void ReadDoorLockUserInfo() |
| | | { |
| | | System.Threading.Tasks.Task.Run(async () => |
| | |
| | | BlankPicUI(); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 空数据UI显示 |
| | | /// </summary> |
| | | void BlankPicUI() |
| | | { |
| | | blankFrameLayout = new FrameLayout |
| | |
| | | BackgroundColor = Shared.Common.ZigbeeColor.Current.XMWhite, |
| | | }; |
| | | bodyView.AddChidren(frameLayoutRow); |
| | | |
| | | int i = 0; |
| | | foreach (var curUserId in curAccountDoorLockUserList.Keys) |
| | | { |
| | |
| | | #endregion |
| | | i++; |
| | | } |
| | | |
| | | //遮挡RowLayout多余的线条 |
| | | for (int j = 0; j < curAccountDoorLockUserList.Keys.Count; j++) |
| | | { |
| | | var frameLayoutRowLineHide = new FrameLayout() |
| | | { |
| | | Height = 10, |
| | | Width = Application.GetRealWidth(173), |
| | | X = Application.GetRealWidth(58), |
| | | Y = (j + 1) * Application.GetRealHeight(145), |
| | | BackgroundColor = Shared.Common.ZigbeeColor.Current.XMWhite, |
| | | }; |
| | | frameLayoutRow.AddChidren(frameLayoutRowLineHide); |
| | | } |
| | | frameLayoutRow.Height = i * Application.GetRealHeight(150); |
| | | } |
| | | } |
| | |
| | | var rowFrameLayout = new RowLayout() |
| | | { |
| | | Height = Application.GetRealHeight(150), |
| | | LineColor = Shared.Common.ZigbeeColor.Current.XMRowLine, |
| | | X = Application.GetRealWidth(81), |
| | | }; |
| | | sidelipVerticalScrolViewLayout.AddChidren(rowFrameLayout); |
| | | |
| | |
| | | { |
| | | Width = Application.GetRealWidth(81), |
| | | Height = Application.GetRealHeight(81), |
| | | X = Application.GetRealWidth(81), |
| | | Y = Application.GetRealHeight(55), |
| | | }; |
| | | rowFrameLayout.AddChidren(btnAllMethod); |
| | |
| | | { |
| | | Width = Application.GetRealWidth(311), |
| | | Height = Application.GetRealHeight(58), |
| | | X = Application.GetRealWidth(173), |
| | | X = Application.GetRealWidth(92), |
| | | Y = Application.GetRealHeight(69), |
| | | TextColor = Shared.Common.ZigbeeColor.Current.XMGray3, |
| | | TextSize = 14, |
| | |
| | | var line2 = new Button() |
| | | { |
| | | Y = rowFrameLayout.Height - 1, |
| | | X = Application.GetRealWidth(58), |
| | | X = Application.GetRealWidth(176), |
| | | Width = Application.GetRealWidth(965), |
| | | Height = 1, |
| | | BackgroundColor = Shared.Common.ZigbeeColor.Current.XMRowLine, |
| | |
| | | |
| | | var btnMatchUser = new Button |
| | | { |
| | | X = Application.GetRealWidth(446), |
| | | X = Application.GetRealWidth(159), |
| | | Y = Application.GetRealHeight(35), |
| | | Height = Application.GetRealHeight(63), |
| | | Width = Application.GetRealWidth(284), |
| | | Width = Application.GetRealWidth(762), |
| | | Text = Language.StringByID(R.MyInternationalizationString.MatchPerson), |
| | | TextColor = Shared.Common.ZigbeeColor.Current.XMBlack, |
| | | TextSize = 16, |
| | | TextAlignment = TextAlignment.Center, |
| | | }; |
| | | matchUsersFrameLayout.AddChidren(btnMatchUser); |
| | | |
| | | var btnFinish = new Button |
| | | { |
| | | X = Application.GetRealWidth(919), |
| | | X = Application.GetRealWidth(921), |
| | | Y = Application.GetRealHeight(40), |
| | | Height = Application.GetRealHeight(58), |
| | | Width = Application.GetRealWidth(101), |
| | | Width = Application.GetRealWidth(101 + 81), |
| | | Text = Language.StringByID(R.MyInternationalizationString.Complete), |
| | | TextColor = Shared.Common.ZigbeeColor.Current.XMGray3, |
| | | TextColor = Shared.Common.ZigbeeColor.Current.XMOrange, |
| | | TextSize = 14, |
| | | TextAlignment = TextAlignment.CenterLeft, |
| | | }; |
| | | matchUsersFrameLayout.AddChidren(btnFinish); |
| | | |
| | | var btnTopLine = new FrameLayout() |
| | | { |
| | | Height = Application.GetRealHeight(5), |
| | | Height = 1, |
| | | Y = Application.GetRealHeight(138), |
| | | BackgroundColor = Shared.Common.ZigbeeColor.Current.XMGray3, |
| | | BackgroundColor = Shared.Common.ZigbeeColor.Current.XMRowLine, |
| | | }; |
| | | bottomFrameLayout2.AddChidren(btnTopLine); |
| | | |
| | |
| | | var rowFrameLayout = new RowLayout() |
| | | { |
| | | Height = Application.GetRealHeight(150), |
| | | LineColor = Shared.Common.ZigbeeColor.Current.XMRowLine, |
| | | X = Application.GetRealWidth(81), |
| | | }; |
| | | sidelipVerticalScrolViewLayout.AddChidren(rowFrameLayout); |
| | | |
| | |
| | | { |
| | | Width = Application.GetRealWidth(81), |
| | | Height = Application.GetRealHeight(81), |
| | | X = Application.GetRealWidth(81), |
| | | Y = Application.GetRealHeight(55), |
| | | }; |
| | | rowFrameLayout.AddChidren(btnAllMethod); |
| | |
| | | { |
| | | Width = Application.GetRealWidth(311), |
| | | Height = Application.GetRealHeight(58), |
| | | X = Application.GetRealWidth(173), |
| | | X = Application.GetRealWidth(92), |
| | | Y = Application.GetRealHeight(69), |
| | | TextColor = Shared.Common.ZigbeeColor.Current.XMGray3, |
| | | TextSize = 14, |
| | |
| | | Height = Application.GetRealHeight(1238), |
| | | Width = Application.GetRealWidth(965), |
| | | BackgroundColor = Shared.Common.ZigbeeColor.Current.XMWhite, |
| | | Radius = 6, |
| | | }; |
| | | this.midFrameLayout.AddChidren(midTopFrameLayout); |
| | | |
| | |
| | | }; |
| | | closeFrameLayout.AddChidren(btnDoorClosePic); |
| | | |
| | | var btnCurrentTopFrameLayout = new FrameLayout() |
| | | { |
| | | Height = Application.GetRealHeight(50), |
| | | Width = Application.GetRealWidth(965), |
| | | BackgroundColor = ZigbeeColor.Current.XMBlack, |
| | | Y = Application.GetRealHeight(1100), |
| | | }; |
| | | midTopFrameLayout.AddChidren(btnCurrentTopFrameLayout); |
| | | |
| | | var btnCurrentFrameLayout = new FrameLayout() |
| | | { |
| | | Width = Application.GetRealWidth(965), |
| | | Height = Application.GetRealHeight(138), |
| | | Y = Application.GetRealHeight(1100), |
| | | BackgroundColor = ZigbeeColor.Current.XMBlack, |
| | | Radius = 6, |
| | | }; |
| | | midTopFrameLayout.AddChidren(btnCurrentFrameLayout); |
| | | |
| | |
| | | #endregion |
| | | |
| | | EventHandler<MouseEventArgs> hander1 = async (sender, e) => |
| | | { |
| | | if (UserCenterResourse.UserInfo.AuthorityNo != 1) |
| | | { |
| | | var result = await Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetDoorLockOperateAccess(doorLock, Shared.Common.Config.Instance.Guid); |
| | | if (result == false) |
| | | { |
| | | var result1 = await Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetDoorLockUnlockAccess(doorLock, Shared.Common.Config.Instance.Guid); |
| | | if (result1 == true) |
| | | { |
| | | RemoteUnlockRequest(doorLock, action, progressButton, btnDoorLockPic, btnStatus, btnDoorLockTitle); |
| | | devicNameSecAction += (deviceRename) => |
| | | { |
| | | openFrameLayout.Enable = false; |
| | | btnDoorOpenPic.Enable = false; |
| | | if (UserCenterResourse.UserInfo.AuthorityNo != 1) |
| | | { |
| | | var result = await Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetDoorLockOperateAccess(doorLock, Shared.Common.Config.Instance.Guid); |
| | | if (result == false) |
| | | { |
| | | var result1 = await Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetDoorLockUnlockAccess(doorLock, Shared.Common.Config.Instance.Guid); |
| | | if (result1 == true) |
| | | { |
| | | RemoteUnlockRequest(doorLock, action, progressButton, btnDoorLockPic, btnStatus, btnDoorLockTitle); |
| | | devicNameSecAction += (deviceRename) => |
| | | { |
| | | if (!string.IsNullOrEmpty(deviceRename)) |
| | | { |
| | |
| | | deviceUI.CommonDevice.ReSave(); |
| | | } |
| | | }; |
| | | } |
| | | else |
| | | { |
| | | new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.NoAccess), Direction = AMPopTipDirection.Down, CloseTime = 1 }.Show(Common.CommonPage.Instance); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.AccountIsFreezed), Direction = AMPopTipDirection.Down, CloseTime = 1 }.Show(Common.CommonPage.Instance); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | RemoteUnlockRequest(doorLock, action, progressButton, btnDoorLockPic, btnStatus, btnDoorLockTitle); |
| | | devicNameSecAction += (deviceRename) => |
| | | openFrameLayout.Enable = true; |
| | | btnDoorOpenPic.Enable = true; |
| | | } |
| | | else |
| | | { |
| | | new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.NoAccess), Direction = AMPopTipDirection.Down, CloseTime = 1 }.Show(Common.CommonPage.Instance); |
| | | openFrameLayout.Enable = true; |
| | | btnDoorOpenPic.Enable = true; |
| | | } |
| | | } |
| | | else |
| | | { |
| | | new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.AccountIsFreezed), Direction = AMPopTipDirection.Down, CloseTime = 1 }.Show(Common.CommonPage.Instance); |
| | | openFrameLayout.Enable = true; |
| | | btnDoorOpenPic.Enable = true; |
| | | } |
| | | } |
| | | else |
| | | { |
| | | RemoteUnlockRequest(doorLock, action, progressButton, btnDoorLockPic, btnStatus, btnDoorLockTitle); |
| | | devicNameSecAction += (deviceRename) => |
| | | { |
| | | if (!string.IsNullOrEmpty(deviceRename)) |
| | | { |
| | |
| | | deviceUI.CommonDevice.ReSave(); |
| | | } |
| | | }; |
| | | } |
| | | }; |
| | | openFrameLayout.Enable = true; |
| | | btnDoorOpenPic.Enable = true; |
| | | } |
| | | }; |
| | | openFrameLayout.MouseUpEventHandler += hander1; |
| | | btnDoorOpenPic.MouseUpEventHandler += hander1; |
| | | EventHandler<MouseEventArgs> hander2 = (sender, e) => |
| | |
| | | {
|
| | | //需要重新绑定
|
| | | this.dicZbGatewayDiv[listId[i]] = 2;
|
| | | //获取到了新网关
|
| | | this.newGatewayGetting = true;
|
| | | }
|
| | |
|
| | | if (mode == GatewayBindMode.First)
|
| | |
| | | public override void CloseFormBefore()
|
| | | {
|
| | | ZigBee.Common.Application.IsSearchingGateway = false;
|
| | | //断开没有执行绑定的网关的mqtt
|
| | | var list = new List<ZbGateway>();
|
| | | for (int i = 0; i < ZbGateway.GateWayList.Count; i++)
|
| | | {
|
| | | if (HdlGatewayLogic.Current.IsGatewayExist(ZbGateway.GateWayList[i]) == false)
|
| | | {
|
| | | list.Add(ZbGateway.GateWayList[i]);
|
| | | }
|
| | | }
|
| | | if (list.Count > 0)
|
| | | {
|
| | | foreach (var way in list)
|
| | | {
|
| | | ZbGateway.GateWayList.RemoveAll((obj) => HdlGatewayLogic.Current.GetGatewayId(obj) == HdlGatewayLogic.Current.GetGatewayId(way));
|
| | | way.DisConnectLocalMqttClient("Search");
|
| | | }
|
| | | }
|
| | | if (UserCenterResourse.listActionFormId.Contains("UserMainForm") == false)
|
| | | {
|
| | | //刷新主页
|
| | | UserView.UserPage.Instance.Fresh();
|
| | | }
|
| | |
|
| | | |
| | | base.CloseFormBefore();
|
| | | }
|
| | |
|
| | |
| | | {
|
| | | //需要重新绑定
|
| | | this.dicZbGatewayDiv[wayId] = 2;
|
| | | //获取到了新网关
|
| | | this.newGatewayGetting = true;
|
| | | }
|
| | |
|
| | | if (mode == GatewayBindMode.First)
|
| | |
| | | public override void CloseFormBefore()
|
| | | {
|
| | | ZigBee.Common.Application.IsSearchingGateway = false;
|
| | | //停止Wi-Fi配网
|
| | | HdlWifiLogic.Current.StopSmartConnection();
|
| | |
|
| | | if (UserCenterResourse.listActionFormId.Contains("UserMainForm") == false)
|
| | | {
|
| | | //刷新主页
|
| | | UserView.UserPage.Instance.Fresh();
|
| | | }
|
| | | base.CloseFormBefore();
|
| | | }
|
| | |
|
| | |
| | | {
|
| | | //需要重新绑定
|
| | | this.dicZbGatewayDiv[wayId] = 2;
|
| | | //获取到了新网关
|
| | | this.newGatewayGetting = true;
|
| | | }
|
| | |
|
| | | if (mode == GatewayBindMode.First)
|
| | |
| | | //停止Wi-Fi配网
|
| | | HdlWifiLogic.Current.StopSmartConnection();
|
| | |
|
| | | if (UserCenterResourse.listActionFormId.Contains("UserMainForm") == false)
|
| | | {
|
| | | //刷新主页
|
| | | UserView.UserPage.Instance.Fresh();
|
| | | }
|
| | | base.CloseFormBefore();
|
| | | }
|
| | |
|
| | |
| | | /// </summary>
|
| | | /// <param name="strWayId"></param>
|
| | | /// <param name="row"></param>
|
| | | private async void DeleteGateway(string strWayId)
|
| | | private void DeleteGateway(string strWayId)
|
| | | {
|
| | | //删除云端网关
|
| | | bool result = await HdlGatewayLogic.Current.DeleteGateway(strWayId);
|
| | | if (result == false)
|
| | | HdlThreadLogic.Current.RunThread(async () =>
|
| | | {
|
| | | return;
|
| | | }
|
| | | //打开进度条
|
| | | this.ShowProgressBar();
|
| | |
|
| | | if (strWayId == GatewayResourse.AppOldSelectGatewayId)
|
| | | {
|
| | | HdlGatewayLogic.Current.SaveGatewayIdToLocation(string.Empty);
|
| | | }
|
| | | //关闭自身
|
| | | this.CloseForm();
|
| | | //删除云端网关
|
| | | bool result = await HdlGatewayLogic.Current.DeleteGateway(strWayId);
|
| | | //关闭进度条
|
| | | this.CloseProgressBar();
|
| | | if (result == false)
|
| | | {
|
| | | return;
|
| | | }
|
| | |
|
| | | if (strWayId == GatewayResourse.AppOldSelectGatewayId)
|
| | | {
|
| | | HdlGatewayLogic.Current.SaveGatewayIdToLocation(string.Empty);
|
| | | }
|
| | | HdlThreadLogic.Current.RunMain(() =>
|
| | | {
|
| | | //关闭自身
|
| | | this.CloseForm();
|
| | | });
|
| | | });
|
| | | }
|
| | |
|
| | | #endregion
|
| | |
| | | {
|
| | | //如果这个网关还没有绑定,则直接关闭界面
|
| | | this.CloseForm();
|
| | | return;
|
| | | }
|
| | | //完成按钮按下
|
| | | this.FinishButtonClick(btnGateName.Text);
|
| | |
| | | }
|
| | |
|
| | | #endregion
|
| | |
|
| | | #region ■ 界面关闭___________________________
|
| | |
|
| | | /// <summary>
|
| | | /// 界面关闭
|
| | | /// </summary>
|
| | | public override void CloseFormBefore()
|
| | | {
|
| | | if (UserCenterResourse.listActionFormId.Contains("UserMainForm") == false)
|
| | | {
|
| | | //刷新主页
|
| | | UserView.UserPage.Instance.Fresh();
|
| | | }
|
| | | base.CloseFormBefore();
|
| | | }
|
| | |
|
| | | #endregion
|
| | | }
|
| | | }
|
| | |
| | | bodyFrameLayout.AddChidren(btnRemind);
|
| | | btnRemind.ButtonClickEvent += (sender, e) =>
|
| | | {
|
| | | HdlAutoBackupLogic.SaveBackupNotPrompted(false, 1);
|
| | | HdlAutoBackupLogic.SaveBackupNotPrompted(false, 3);
|
| | | this.CloseForm();
|
| | | };
|
| | | }
|
New file |
| | |
| | | using System;
|
| | | using System.Collections.Generic;
|
| | | using System.Text;
|
| | | using ZigBee.Device;
|
| | |
|
| | | namespace Shared.Phone.UserCenter.HideOption
|
| | | {
|
| | | /// <summary>
|
| | | /// 隐匿功能的网关列表界面
|
| | | /// </summary>
|
| | | public class HideOptionGatewayListForm : EditorCommonForm
|
| | | {
|
| | | #region ■ 变量声明___________________________
|
| | |
|
| | | /// <summary>
|
| | | /// 列表控件
|
| | | /// </summary>
|
| | | private VerticalListControl listview = null;
|
| | |
|
| | | #endregion
|
| | |
|
| | | #region ■ 初始化_____________________________
|
| | |
|
| | | /// <summary>
|
| | | /// 画面显示(底层会固定调用此方法,借以完成画面创建)
|
| | | /// </summary>
|
| | | /// <param name="i_GatewayDiv">网关区分,1:本地网关 2:广播搜到的网关</param>
|
| | | public void ShowForm(int i_GatewayDiv)
|
| | | {
|
| | | if (i_GatewayDiv == 1)
|
| | | {
|
| | | //设置标题信息
|
| | | base.SetTitleText("本地网关");
|
| | | }
|
| | | else
|
| | | {
|
| | | //设置标题信息
|
| | | base.SetTitleText("广播搜到的网关");
|
| | | }
|
| | |
|
| | | //初始化中部控件
|
| | | this.InitMiddleFrame(i_GatewayDiv);
|
| | | }
|
| | |
|
| | | /// <summary>
|
| | | /// 初始化中部控件
|
| | | /// </summary>
|
| | | private void InitMiddleFrame(int i_GatewayDiv)
|
| | | {
|
| | | //清空bodyFrame
|
| | | this.ClearBodyFrame();
|
| | |
|
| | | listview = new VerticalListControl(29);
|
| | | listview.Height = bodyFrameLayout.Height;
|
| | | listview.BackgroundColor = UserCenterColor.Current.White;
|
| | | bodyFrameLayout.AddChidren(listview);
|
| | |
|
| | | HdlThreadLogic.Current.RunMainInThread(() =>
|
| | | {
|
| | | //设定中部信息
|
| | | this.SetMiddleFrameInfo(i_GatewayDiv);
|
| | | });
|
| | | }
|
| | |
|
| | | /// <summary>
|
| | | /// 设定中部信息
|
| | | /// </summary>
|
| | | private void SetMiddleFrameInfo(int i_GatewayDiv)
|
| | | {
|
| | | List<ZbGateway> listway = null;
|
| | | if (i_GatewayDiv == 1)
|
| | | {
|
| | | //获取本地全部网关对象
|
| | | listway = HdlGatewayLogic.Current.GetAllLocalGateway();
|
| | | }
|
| | | else
|
| | | {
|
| | | listway = ZbGateway.GateWayList;
|
| | | }
|
| | | for (int i = 0; i < listway.Count; i++)
|
| | | {
|
| | | //添加行
|
| | | this.AddRowLayout(listway[i], i != listway.Count - 1);
|
| | | }
|
| | |
|
| | | //调整列表控件的高度
|
| | | this.listview.AdjustRealHeight(Application.GetRealHeight(23));
|
| | | }
|
| | |
|
| | | #endregion
|
| | |
|
| | | #region ■ 添加网关行_________________________
|
| | |
|
| | | /// <summary>
|
| | | /// 添加行
|
| | | /// </summary>
|
| | | /// <param name="i_gateway">i_gateway</param>
|
| | | /// <param name="addLine">是否添加底线</param>
|
| | | private void AddRowLayout(ZbGateway i_gateway, bool addLine)
|
| | | {
|
| | | //网关控件
|
| | | var gatewayRow = new GatewayRowControl(i_gateway, listview.rowSpace / 2);
|
| | | listview.AddChidren(gatewayRow);
|
| | | gatewayRow.InitControl(81);
|
| | | if (addLine == true)
|
| | | {
|
| | | gatewayRow.frameTable.AddBottomLine();
|
| | | }
|
| | |
|
| | | //定位
|
| | | var btnPosition = new NormalViewControl(Application.GetRealWidth(184), gatewayRow.Height, false);
|
| | | btnPosition.BackgroundColor = 0xff4a4a4a;
|
| | | btnPosition.TextAlignment = TextAlignment.Center;
|
| | | btnPosition.TextColor = UserCenterColor.Current.White;
|
| | | btnPosition.TextSize = 12;
|
| | | btnPosition.TextID = R.MyInternationalizationString.uFixedPosition;
|
| | | gatewayRow.AddRightView(btnPosition);
|
| | | btnPosition.ButtonClickEvent += (sender, e) =>
|
| | | {
|
| | | //发送定位命令
|
| | | HdlGatewayLogic.Current.SetFixedPositionCommand(i_gateway);
|
| | | };
|
| | | }
|
| | |
|
| | | #endregion
|
| | | }
|
| | | }
|
New file |
| | |
| | | using System;
|
| | | using System.Collections.Generic;
|
| | | using System.Text;
|
| | |
|
| | | namespace Shared.Phone.UserCenter.HideOption
|
| | | {
|
| | | /// <summary>
|
| | | /// 隐匿功能的主界面
|
| | | /// </summary>
|
| | | public class HideOptionMainForm : EditorCommonForm
|
| | | {
|
| | | #region ■ 变量声明___________________________
|
| | |
|
| | | /// <summary>
|
| | | /// 列表控件
|
| | | /// </summary>
|
| | | private VerticalListRefreshControl listView = null;
|
| | |
|
| | | #endregion
|
| | |
|
| | | #region ■ 初始化_____________________________
|
| | |
|
| | | /// <summary>
|
| | | /// 画面显示(底层会固定调用此方法,借以完成画面创建)
|
| | | /// </summary>
|
| | | public void ShowForm()
|
| | | {
|
| | | //设置头部信息
|
| | | base.SetTitleText("隐匿主界面");
|
| | |
|
| | | listView = new VerticalListRefreshControl(23);
|
| | | listView.BackgroundColor = UserCenterColor.Current.White;
|
| | | listView.Height = bodyFrameLayout.Height;
|
| | | bodyFrameLayout.AddChidren(listView);
|
| | | listView.BeginHeaderRefreshingAction += () =>
|
| | | {
|
| | | //初始化中部信息
|
| | | this.InitMiddleFrame();
|
| | | listView.EndHeaderRefreshing();
|
| | | };
|
| | |
|
| | | //初始化中部信息
|
| | | this.InitMiddleFrame();
|
| | | }
|
| | |
|
| | | /// <summary>
|
| | | /// 初始化中部信息
|
| | | /// </summary>
|
| | | private void InitMiddleFrame()
|
| | | {
|
| | | listView.RemoveAll();
|
| | |
|
| | | this.AddRowControl("当前身份", 400, UserCenterResourse.UserInfo.AuthorityText, 400);
|
| | |
|
| | | this.AddRowControl("住宅分享", 400, Common.Config.Instance.Home.IsOthreShare == true ? "是" : "否", 400);
|
| | |
|
| | | this.AddRowControl("账号类型", 400, Common.Config.Instance.Home.AccountType.ToString(), 400);
|
| | |
|
| | | this.AddRowControl("是否远程连接", 400, ZigBee.Device.ZbGateway.IsRemote == true ? "是" : "否", 400);
|
| | |
|
| | | int count = HdlGatewayLogic.Current.GetAllLocalGateway().Count;
|
| | | var row1 = new FrameRowControl(listView.rowSpace / 2);
|
| | | listView.AddChidren(row1);
|
| | | row1.UseClickStatu = false;
|
| | | row1.AddLeftCaption("本地网关", 400);
|
| | | if (count > 0)
|
| | | {
|
| | | row1.UseClickStatu = true;
|
| | | row1.AddRightArrow();
|
| | | row1.ButtonClickEvent += (sender, e) =>
|
| | | {
|
| | | var form = new HideOptionGatewayListForm();
|
| | | form.AddForm(1);
|
| | | };
|
| | | }
|
| | | row1.AddMostRightView(count + "个", 400);
|
| | | row1.AddBottomLine();
|
| | |
|
| | | count = ZigBee.Device.ZbGateway.GateWayList.Count;
|
| | | row1 = new FrameRowControl(listView.rowSpace / 2);
|
| | | listView.AddChidren(row1);
|
| | | row1.UseClickStatu = false;
|
| | | row1.AddLeftCaption("广播搜到的网关", 400);
|
| | | if (count > 0)
|
| | | {
|
| | | row1.UseClickStatu = true;
|
| | | row1.AddRightArrow();
|
| | | row1.ButtonClickEvent += (sender, e) =>
|
| | | {
|
| | | var form = new HideOptionGatewayListForm();
|
| | | form.AddForm(2);
|
| | | };
|
| | | }
|
| | | row1.AddMostRightView(count + "个", 400);
|
| | | row1.AddBottomLine();
|
| | |
|
| | | row1 = new FrameRowControl(listView.rowSpace / 2);
|
| | | listView.AddChidren(row1);
|
| | | row1.AddLeftCaption("上传Log", 500);
|
| | | row1.AddRightArrow();
|
| | | row1.ButtonClickEvent += (sender, e) =>
|
| | | {
|
| | | this.ShowMassage(ShowMsgType.Confirm, "是否上传Log文件", () =>
|
| | | {
|
| | | HdlThreadLogic.Current.RunThread(async () =>
|
| | | {
|
| | | await HdlBackupLogic.Current.UpLoadLogBackup();
|
| | | });
|
| | | });
|
| | | };
|
| | |
|
| | | listView.AdjustRealHeight(Application.GetRealHeight(23));
|
| | | }
|
| | |
|
| | | /// <summary>
|
| | | /// 添加行
|
| | | /// </summary>
|
| | | /// <param name="caption"></param>
|
| | | /// <param name="width1"></param>
|
| | | /// <param name="viewText"></param>
|
| | | /// <param name="width2"></param>
|
| | | private FrameRowControl AddRowControl(string caption, int width1, string viewText, int width2)
|
| | | {
|
| | | var row1 = new FrameRowControl(listView.rowSpace / 2);
|
| | | listView.AddChidren(row1);
|
| | | row1.AddLeftCaption(caption, width1);
|
| | | row1.AddMostRightView(viewText, width2);
|
| | | row1.AddBottomLine();
|
| | | row1.UseClickStatu = false;
|
| | |
|
| | | return row1;
|
| | | }
|
| | |
|
| | | #endregion
|
| | | }
|
| | | }
|
| | |
| | | listResidenceSort.Add(pageData.PageData[i].Id);
|
| | | }
|
| | | }
|
| | | for (int i = 0; i < listResidenceSort.Count; i++)
|
| | | {
|
| | | //移除掉不存在了的顺序
|
| | | if (dicData.ContainsKey(listResidenceSort[i]) == false)
|
| | | {
|
| | | listResidenceSort.RemoveAt(i);
|
| | | i--;
|
| | | }
|
| | | }
|
| | | //保存顺序
|
| | | string fullName = UserCenterLogic.CombinePath(DirNameResourse.LocalMemoryDirectory, DirNameResourse.ResidenceSortFile);
|
| | | UserCenterLogic.SaveFileContent(fullName, listResidenceSort);
|
| | |
| | | this.dicResidenceData = new Dictionary<string, Common.ResponseEntity.ResidenceObj>();
|
| | | for (int i = 0; i < listResidenceSort.Count; i++)
|
| | | {
|
| | | if (dicData.ContainsKey(listResidenceSort[i]) == false)
|
| | | {
|
| | | continue;
|
| | | }
|
| | | var info = dicData[listResidenceSort[i]];
|
| | | if (info.IsOthreShare == false)
|
| | | {
|
| | |
| | | {
|
| | | HdlThreadLogic.Current.RunThread(async () =>
|
| | | {
|
| | | ProgressBar.Show();
|
| | | this.ShowProgressBar();
|
| | |
|
| | | Config.Instance.HomeId = info.Id;
|
| | | Global.CreateHomeDirectory(info.Id);
|
| | | Config.Instance.Save();
|
| | | //刷新个人中心的内存及线程
|
| | | await UserCenterLogic.InitUserCenterMenmoryAndThread();
|
| | | await UserCenterLogic.InitUserCenterMenmoryAndThread(false);
|
| | |
|
| | | Room.InitAllRoom();
|
| | |
|
| | |
| | | Pra.LoginAccessToken = UserCenterLogic.GetConnectMainToken();
|
| | |
|
| | | bool result = await UserCenterLogic.GetResultStatuByRequestHttps("App/DelHome", true, Pra);
|
| | | //关闭进度条
|
| | | this.CloseProgressBar();
|
| | | if (result == false)
|
| | | {
|
| | | //关闭进度条
|
| | | this.CloseProgressBar();
|
| | | return;
|
| | | }
|
| | |
|
| | |
| | | Common.Config.Instance.HomeId = myHouse.Id;
|
| | | Common.Global.CreateHomeDirectory(myHouse.Id);
|
| | | Common.Config.Instance.Save();
|
| | |
|
| | | //刷新个人中心的内存及线程
|
| | | await UserCenterLogic.InitUserCenterMenmoryAndThread();
|
| | | await UserCenterLogic.InitUserCenterMenmoryAndThread(false);
|
| | | Common.Room.InitAllRoom();
|
| | |
|
| | | //删除住宅
|
| | |
| | | {
|
| | | Contacts.ContactAction = (phoneName, phoneNum) =>
|
| | | {
|
| | | //手机号检测
|
| | | if (this.CheckPhoneNumber("86", phoneNum, phoneName) == false)
|
| | | {
|
| | | return;
|
| | | }
|
| | | //保存联系人
|
| | | this.SaveCoercePhoneNumber("86", phoneNum, phoneName);
|
| | | };
|
| | |
| | | /// 列表的桌布控件
|
| | | /// </summary>
|
| | | private FrameLayout frameTable = null;
|
| | | /// <summary>
|
| | | /// 当前的联系人列表
|
| | | /// </summary>
|
| | | private List<ZigBee.Device.Safeguard.PushTargetInfo> listPhoneData = null;
|
| | |
|
| | | #endregion
|
| | |
|
| | |
| | |
|
| | | HdlThreadLogic.Current.RunMain(() =>
|
| | | {
|
| | | var listPhoneData = new List<ZigBee.Device.Safeguard.PushTargetInfo>();
|
| | | this.listPhoneData = new List<ZigBee.Device.Safeguard.PushTargetInfo>();
|
| | | //联系人
|
| | | var rowContact = new FrameRowControl(listview.rowSpace / 2);
|
| | | rowContact.UseClickStatu = false;
|
| | |
| | | if (result == true)
|
| | | {
|
| | | rowContact.RemoveFromParent();
|
| | |
|
| | | //移除缓存
|
| | | string checkKeys = areaCode + "-" + phone;
|
| | | for (int i = 0; i < this.listPhoneData.Count; i++)
|
| | | {
|
| | | if (listPhoneData[i].PushNumber == checkKeys)
|
| | | {
|
| | | listPhoneData.RemoveAt(i);
|
| | | }
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | |
| | | /// </summary>
|
| | | private void InitTabSwitchControl()
|
| | | {
|
| | | var frameBack = new FrameLayout();
|
| | | frameBack.Height = Application.GetRealHeight(1300);
|
| | | frameBack.Y = Application.GetRealHeight(444);
|
| | | frameBack.BackgroundColor = 0xa1ffffff;
|
| | | frameBack.SetCornerWithSameRadius(20, HDLUtils.RectCornerTopLeft | HDLUtils.RectCornerTopRight);
|
| | | bodyFrameLayout.AddChidren(frameBack);
|
| | |
|
| | | //桌布控件
|
| | | frameLayoutDraw = new FrameLayout();
|
| | | frameLayoutDraw.Y = Application.GetRealHeight(590);
|
| | | frameLayoutDraw.Height = bodyFrameLayout.Height - Application.GetRealHeight(590);
|
| | | bodyFrameLayout.AddChidren(frameLayoutDraw);
|
| | |
|
| | | //临时的一个东西,用来计算真实值而已
|
| | | var btnTemp = new NormalViewControl(100, false);
|
| | | int realLogWidth = btnTemp.GetRealWidthByText(16, Language.StringByID(R.MyInternationalizationString.uSecurityLog));
|
| | | int realSensorWidth = btnTemp.GetRealWidthByText(16, Language.StringByID(R.MyInternationalizationString.uSensorStatu));
|
| | | btnTemp = null;
|
| | | frameLayoutDraw.Y = Application.GetRealHeight(181);
|
| | | frameLayoutDraw.Height = frameBack.Height - Application.GetRealHeight(181);
|
| | | frameBack.AddChidren(frameLayoutDraw);
|
| | |
|
| | | //安防记录(点击范围有点小,需要扩大它的点击范围)
|
| | | var frameLog = new FrameLayoutControl();
|
| | | frameLog.UseClickStatu = false;
|
| | | frameLog.Height = Application.GetRealHeight(123);
|
| | | frameLog.Width = realLogWidth;
|
| | | frameLog.X = Application.GetRealWidth(489) - realLogWidth;
|
| | | frameLog.Y = Application.GetRealHeight(467);
|
| | | bodyFrameLayout.AddChidren(frameLog);
|
| | | frameLog.Width = Application.GetRealWidth(273);
|
| | | frameLog.X = Application.GetRealWidth(259);
|
| | | frameLog.Y = Application.GetRealHeight(58);
|
| | | frameBack.AddChidren(frameLog);
|
| | | //标题
|
| | | var btnLog = new NormalViewControl(100, 63, true);
|
| | | btnLog.Width = realLogWidth;
|
| | | btnLog.TextAlignment = TextAlignment.CenterRight;
|
| | | btnLog.Width = frameLog.Width;
|
| | | btnLog.TextAlignment = TextAlignment.Center;
|
| | | btnLog.TextID = R.MyInternationalizationString.uSecurityLog;
|
| | | btnLog.TextColor = UserCenterColor.Current.TextGrayColor3;
|
| | | frameLog.AddChidren(btnLog, ChidrenBindMode.BindEventOnly);
|
| | |
| | | var frameSensor = new FrameLayoutControl();
|
| | | frameSensor.UseClickStatu = false;
|
| | | frameSensor.Height = frameLog.Height;
|
| | | frameSensor.Width = realSensorWidth;
|
| | | frameSensor.X = Application.GetRealWidth(550);
|
| | | frameSensor.Width = frameLog.Width;
|
| | | frameSensor.X = frameLog.Right;
|
| | | frameSensor.Y = frameLog.Y;
|
| | | bodyFrameLayout.AddChidren(frameSensor);
|
| | | frameBack.AddChidren(frameSensor);
|
| | | //标题
|
| | | var btnSensor = new NormalViewControl(100, 63, true);
|
| | | btnSensor.Width = realSensorWidth;
|
| | | btnSensor.Width = frameSensor.Width;
|
| | | btnSensor.TextID = R.MyInternationalizationString.uSensorStatu;
|
| | | btnSensor.TextSize = 16;
|
| | | btnSensor.TextAlignment = TextAlignment.Center;
|
| | | btnSensor.TextColor = UserCenterColor.Current.TextColor2;
|
| | | frameSensor.AddChidren(btnSensor, ChidrenBindMode.BindEventOnly);
|
| | | //底线
|
| | |
| | | txtInput.PlaceholderTextColor = UserCenterColor.Current.TextGrayColor1;
|
| | | txtInput.PlaceholderText = Language.StringByID(R.MyInternationalizationString.uYouSuggestionMsg);
|
| | | frameInput.AddChidren(txtInput);
|
| | | txtInput.InitIosPlaceholderUILabelWithHeight(Application.GetRealHeight(60));
|
| | | txtInput.TextChangeEventHandler += (sender, txtvalue) =>
|
| | | {
|
| | | if (this.suggestionCount <= 0)
|
| | |
| | | }
|
| | |
|
| | | //二次安全验证将用于下列操作
|
| | | var btnTitle = new NormalViewControl(800, 49, true);
|
| | | var btnTitle = new NormalViewControl(800, 50, true);
|
| | | btnTitle.X = ControlCommonResourse.XXLeft;
|
| | | btnTitle.Y = frameTop.Bottom + Application.GetRealHeight(35);
|
| | | btnTitle.Y = frameTop.Bottom + Application.GetRealHeight(34);
|
| | | btnTitle.TextSize = 12;
|
| | | btnTitle.TextColor = UserCenterColor.Current.TextGrayColor3;
|
| | | btnTitle.TextID = R.MyInternationalizationString.uSecondarySecurityWillBeUsedForTheFollowingOperations;
|
| | | bodyFrameLayout.AddChidren(btnTitle);
|
| | | btnTitle.ButtonClickEvent += (sender, e) =>
|
| | | {
|
| | | //隐匿功能点击
|
| | | this.HideOptionClick(btnTitle);
|
| | | };
|
| | |
|
| | | var frameButtom = new FrameListControl(12);
|
| | | frameButtom.Y = btnTitle.Bottom + Application.GetRealHeight(23);
|
| | |
| | | }
|
| | |
|
| | | #endregion
|
| | |
|
| | | #region ■ 隐匿功能___________________________
|
| | |
|
| | | /// <summary>
|
| | | /// 点击合计
|
| | | /// </summary>
|
| | | private int clickCount = 0;
|
| | | /// <summary>
|
| | | /// 点击的那瞬间的时间
|
| | | /// </summary>
|
| | | private DateTime clickTime;
|
| | | /// <summary>
|
| | | /// 隐匿功能
|
| | | /// </summary>
|
| | | private void HideOptionClick(NormalViewControl btnTitle)
|
| | | {
|
| | | if (clickCount == 0)
|
| | | {
|
| | | clickTime = DateTime.Now;
|
| | | }
|
| | | clickCount++;
|
| | | if (clickCount >= 10)
|
| | | {
|
| | | if ((DateTime.Now - clickTime).TotalSeconds > 3)
|
| | | {
|
| | | clickCount = 0;
|
| | | return;
|
| | | }
|
| | | btnTitle.CanClick = false;
|
| | | HdlThreadLogic.Current.RunThread(async () =>
|
| | | {
|
| | | this.ShowProgressBar();
|
| | | var result = await HdlBackupLogic.Current.LoadHideOption();
|
| | | this.CloseProgressBar();
|
| | | if (result == true)
|
| | | {
|
| | | this.ShowMassage(ShowMsgType.Tip, "刷新隐匿配置成功");
|
| | | }
|
| | | else
|
| | | {
|
| | | this.ShowMassage(ShowMsgType.Tip, "刷新隐匿配置失败");
|
| | | }
|
| | | });
|
| | | }
|
| | | }
|
| | |
|
| | | #endregion
|
| | | }
|
| | | }
|
| | |
| | | #region ■ 变量声明___________________________
|
| | |
|
| | | /// <summary>
|
| | | /// 白色背景框
|
| | | /// 主菜单背景框
|
| | | /// </summary>
|
| | | private FrameLayout frameWhiteBack = null;
|
| | | private FrameLayout frameMainMenuBack = null;
|
| | | /// <summary>
|
| | | /// 其他菜单的容器控件
|
| | | /// </summary>
|
| | | private FrameListControl frameOtherMenuContr = null;
|
| | | /// <summary>
|
| | | /// 用户名字
|
| | | /// </summary>
|
| | |
| | | /// <param name="frameWhite">背景</param>
|
| | | private void InitMainMenuInfoControl(FrameLayout frameWhite)
|
| | | {
|
| | | if (frameWhiteBack != null)
|
| | | if (frameMainMenuBack != null)
|
| | | {
|
| | | frameWhiteBack.RemoveAll();
|
| | | frameMainMenuBack.RemoveAll();
|
| | | }
|
| | | else
|
| | | {
|
| | | //背景框
|
| | | frameWhiteBack = new FrameLayout();
|
| | | frameWhiteBack.Y = Application.GetRealHeight(288);
|
| | | frameWhiteBack.Gravity = Gravity.CenterHorizontal;
|
| | | frameWhiteBack.Height = Application.GetRealHeight(371);
|
| | | frameWhiteBack.Width = frameWhite.Width - Application.GetRealWidth(29 * 2);
|
| | | frameWhiteBack.Radius = 10;
|
| | | frameWhiteBack.BackgroundColor = UserCenterColor.Current.White;
|
| | | frameWhite.AddChidren(frameWhiteBack);
|
| | | frameMainMenuBack = new FrameLayout();
|
| | | frameMainMenuBack.Y = Application.GetRealHeight(288);
|
| | | frameMainMenuBack.Gravity = Gravity.CenterHorizontal;
|
| | | frameMainMenuBack.Height = Application.GetRealHeight(371);
|
| | | frameMainMenuBack.Width = frameWhite.Width - Application.GetRealWidth(29 * 2);
|
| | | frameMainMenuBack.Radius = 10;
|
| | | frameMainMenuBack.BackgroundColor = UserCenterColor.Current.White;
|
| | | frameWhite.AddChidren(frameMainMenuBack);
|
| | | }
|
| | |
|
| | | //标题:管理
|
| | |
| | | frameTitle.Width = Application.GetRealWidth(907);
|
| | | frameTitle.Height = Application.GetRealHeight(121);
|
| | | frameTitle.Gravity = Gravity.CenterHorizontal;
|
| | | frameWhiteBack.AddChidren(frameTitle);
|
| | | frameMainMenuBack.AddChidren(frameTitle);
|
| | | var btnTitle = new NormalViewControl(500, 60, true);
|
| | | btnTitle.Gravity = Gravity.CenterVertical;
|
| | | btnTitle.TextID = R.MyInternationalizationString.uManagement;
|
| | |
| | | frameTitle.AddChidren(btnLine);
|
| | |
|
| | | //创建全部的主菜单控件
|
| | | this.CreatAllMainMenuControl(frameWhiteBack);
|
| | | this.CreatAllMainMenuControl(frameMainMenuBack);
|
| | | }
|
| | |
|
| | | /// <summary>
|
| | |
| | | /// <param name="frameWhite">背景</param>
|
| | | private void InitOtherMenuControl(FrameLayout frameWhite)
|
| | | {
|
| | | var frameList = new FrameListControl(26);
|
| | | frameList.Y = Application.GetRealHeight(698);
|
| | | frameList.Height = ControlCommonResourse.ListViewRowHeight * 3 + Application.GetRealHeight(26 * 3);
|
| | | frameWhite.AddChidren(frameList);
|
| | | if (this.frameOtherMenuContr != null)
|
| | | {
|
| | | frameOtherMenuContr.RemoveAll();
|
| | | }
|
| | | else
|
| | | {
|
| | | frameOtherMenuContr = new FrameListControl(26);
|
| | | frameOtherMenuContr.Y = Application.GetRealHeight(698);
|
| | | frameOtherMenuContr.Height = ControlCommonResourse.ListViewRowHeight * 4 + Application.GetRealHeight(26 * 4);
|
| | | frameWhite.AddChidren(frameOtherMenuContr);
|
| | | }
|
| | |
|
| | | if (UserCenterResourse.UserInfo.AuthorityNo == 1 || UserCenterResourse.UserInfo.AuthorityNo == 2)
|
| | | {
|
| | | //数据备份
|
| | | var rowback = new FrameRowControl(frameList.rowSpace / 2);
|
| | | frameList.AddChidren(rowback);
|
| | | var rowback = new FrameRowControl(frameOtherMenuContr.rowSpace / 2);
|
| | | frameOtherMenuContr.AddChidren(rowback);
|
| | | //向右图标
|
| | | var btnBackRight = rowback.AddRightArrow();
|
| | | btnBackRight.X -= ControlCommonResourse.XXLeft / 2;
|
| | |
| | | }
|
| | |
|
| | | //意见反馈
|
| | | var rowSuggestion = new FrameRowControl(frameList.rowSpace / 2);
|
| | | frameList.AddChidren(rowSuggestion);
|
| | | var rowSuggestion = new FrameRowControl(frameOtherMenuContr.rowSpace / 2);
|
| | | frameOtherMenuContr.AddChidren(rowSuggestion);
|
| | | //向右图标
|
| | | var btnSuRight = rowSuggestion.AddRightArrow();
|
| | | btnSuRight.X -= ControlCommonResourse.XXLeft / 2;
|
| | |
| | | };
|
| | |
|
| | | //关于我们
|
| | | var rowAbount = new FrameRowControl(frameList.rowSpace / 2);
|
| | | frameList.AddChidren(rowAbount);
|
| | | var rowAbount = new FrameRowControl(frameOtherMenuContr.rowSpace / 2);
|
| | | frameOtherMenuContr.AddChidren(rowAbount);
|
| | | //向右图标
|
| | | var btnAbountRight = rowAbount.AddRightArrow();
|
| | | btnAbountRight.X -= ControlCommonResourse.XXLeft / 2;
|
| | |
| | | var form = new Abount.AbountForm();
|
| | | form.AddForm();
|
| | | };
|
| | |
|
| | | if (UserCenterResourse.HideOption.CenterHideMenu == 1)
|
| | | {
|
| | | //隐匿菜单
|
| | | var rowHide = new FrameRowControl(frameOtherMenuContr.rowSpace / 2);
|
| | | frameOtherMenuContr.AddChidren(rowHide);
|
| | | //向右图标
|
| | | var btnHideRight = rowHide.AddRightArrow();
|
| | | btnHideRight.X -= ControlCommonResourse.XXLeft / 2;
|
| | | //图标
|
| | | var btnHideIcon = rowHide.AddLeftIcon();
|
| | | btnHideIcon.X -= ControlCommonResourse.XXLeft / 2;
|
| | | btnHideIcon.UnSelectedImagePath = "Center/Abount.png";
|
| | | //底线
|
| | | var btnHideLine = rowHide.AddBottomLine();
|
| | | btnHideLine.X -= ControlCommonResourse.XXLeft / 2;
|
| | | //隐匿菜单View
|
| | | var btnHideView = rowHide.AddLeftCaption("隐匿菜单", 300);
|
| | | btnHideView.X -= ControlCommonResourse.XXLeft / 2;
|
| | | rowHide.ButtonClickEvent += (sender, e) =>
|
| | | {
|
| | | var from = new HideOption.HideOptionMainForm();
|
| | | from.AddForm();
|
| | | };
|
| | | }
|
| | | }
|
| | |
|
| | | #endregion
|
| | |
| | | this.msgControl?.RefreshStatu();
|
| | |
|
| | | //初始化主菜单的控件
|
| | | this.InitMainMenuInfoControl(frameWhiteBack);
|
| | | this.InitMainMenuInfoControl(null);
|
| | | //初始化其他菜单的控件
|
| | | this.InitOtherMenuControl(null);
|
| | |
|
| | | return 1;
|
| | | }
|
| | |
| | | using Shared.Phone.Device.CommonForm; |
| | | using Shared.Phone.UserCenter.DoorLock; |
| | | using System.Timers; |
| | | using Shared.Phone.Device.DeviceLogic; |
| | | |
| | | namespace Shared.Phone.UserView |
| | | { |
| | |
| | | var tempHomeBtn = send as Button; |
| | | if (Config.Instance.HomeFilePathList.Count == 0) |
| | | { |
| | | var alert = new Alert(Language.StringByID(R.MyInternationalizationString.TIP), Language.StringByID(R.MyInternationalizationString.CurrentlyTheUserIshHouseIsEmptyPleaseBuildANewHouseFirst), Language.StringByID(R.MyInternationalizationString.Close), Language.StringByID(R.MyInternationalizationString.OK)); |
| | | var alert = new Alert(Language.StringByID(R.MyInternationalizationString.TIP), Language.StringByID(R.MyInternationalizationString.CurrentlyTheUserIshHouseIsEmptyPleaseBuildANewHouseFirst), Language.StringByID(R.MyInternationalizationString.Close), Language.StringByID(R.MyInternationalizationString.Confrim)); |
| | | alert.Show(); |
| | | alert.ResultEventHandler += (senderHouse, eHouse) => |
| | | { |
| | |
| | | Y = Application.GetRealHeight(248), |
| | | Width = Application.GetMinRealAverage(449), |
| | | Height = Application.GetMinRealAverage(478), |
| | | UnSelectedImagePath = "Item/SelectHouse" |
| | | UnSelectedImagePath = "Item/SelectHouse.png" |
| | | }; |
| | | closeBGview.AddChidren(bg); |
| | | |
| | |
| | | { |
| | | X = Application.GetRealWidth(35), |
| | | Y = Application.GetRealHeight(271), |
| | | Height = Application.GetRealHeight(449), |
| | | Width = Application.GetRealWidth(440), |
| | | Height = Application.GetMinRealAverage(449), |
| | | Width = Application.GetMinRealAverage(440), |
| | | Radius = CommonPage.BigFormRadius, |
| | | BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor |
| | | }; |
| | |
| | | //消息 |
| | | messageBtn.MouseUpEventHandler += (send, e) => |
| | | { |
| | | |
| | | |
| | | }; |
| | | |
| | | #endregion |
| | | |
| | | if (CanBindGateway() == false) |
| | | { |
| | | var roomPageView = new PageLayout() |
| | | |
| | | var roomPageView = new HorizontalPages() |
| | | { |
| | | Y = Application.GetRealHeight(302), |
| | | Width = Application.GetRealWidth(CommonPage.AppRealWidth - CommonPage.XLeft * 2), |
| | | Height = Application.GetMinRealAverage(roomPageView_Height), |
| | | Radius = CommonPage.BigFormRadius, |
| | | Gravity = Gravity.CenterHorizontal, |
| | | IsShowPoint = false |
| | | Width = Application.GetRealWidth(CommonPage.AppRealWidth), |
| | | Height = Application.GetRealHeight(478), |
| | | }; |
| | | AddChidren(roomPageView); |
| | | //与屏幕边框的边距 |
| | | roomPageView.RowPadding = Application.GetRealWidth(181); |
| | | //两个page之间的间距 |
| | | roomPageView.PagePadding = Application.GetRealWidth(69); |
| | | |
| | | //当前房间 |
| | | //Room.CurrentRoom = Room.CurrentRoom == null ? Room.Lists[0] : Room.CurrentRoom; |
| | |
| | | Room.CurrentRoom = rList[0]; |
| | | foreach (var room in rList) |
| | | { |
| | | var roomBackView = new FrameLayout() |
| | | var roomView = new Device.CommonForm.RoomView(0, 0); |
| | | roomPageView.AddChidren(roomView); |
| | | roomView.Init(room); |
| | | roomView.action += () => |
| | | { |
| | | BackgroundImagePath = room.BackgroundImage |
| | | }; |
| | | roomPageView.AddChidren(roomBackView); |
| | | var roomBG = new Button() |
| | | { |
| | | UnSelectedImagePath = "Room/HomeBG.png", |
| | | //UnSelectedImagePath = room.BackgroundImage |
| | | }; |
| | | roomBackView.AddChidren(roomBG); |
| | | var roomName = new Button() |
| | | { |
| | | X = Application.GetRealWidth(20), |
| | | Y = Application.GetRealHeight(20), |
| | | Width = Application.GetRealWidth(500), |
| | | Height = Application.GetRealHeight(80), |
| | | Text = room.Name, |
| | | TextAlignment = TextAlignment.CenterLeft, |
| | | TextColor = ZigbeeColor.Current.GXCTextWhiteColor, |
| | | TextSize = 18, |
| | | }; |
| | | roomBackView.AddChidren(roomName); |
| | | var roomListBtn = new Device.CommonForm.SelectedStatuButton() |
| | | { |
| | | X = roomPageView.Width - Application.GetRealWidth(100 + 20), |
| | | Y = Application.GetRealHeight(20), |
| | | Width = Application.GetMinRealAverage(100), |
| | | Height = Application.GetMinRealAverage(100), |
| | | UnSelectedImagePath = "Item/List.png", |
| | | }; |
| | | roomBackView.AddChidren(roomListBtn); |
| | | |
| | | roomListBtn.MouseUpEventHandler += (send, e) => |
| | | { |
| | | CommonPage.Instance.IsDrawerLockMode = true; |
| | | var editRoom = new Device.Room.EditRoom(); |
| | | HomePage.Instance.AddChidren(editRoom); |
| | | HomePage.Instance.PageIndex += 1; |
| | | editRoom.Show(room); |
| | | editRoom.action += () => |
| | | { |
| | | Show(); |
| | | }; |
| | | Show(); |
| | | }; |
| | | } |
| | | |
| | |
| | | TextColor = ZigbeeColor.Current.GXCTextGrayColor3, |
| | | SelectedTextColor = ZigbeeColor.Current.GXCTextWhiteColor, |
| | | TextID = R.MyInternationalizationString.Scence, |
| | | IsSelected = false |
| | | IsSelected = true, |
| | | TextSize=16 |
| | | }; |
| | | functionSceneView.AddChidren(sceneBtn); |
| | | |
| | |
| | | TextColor = ZigbeeColor.Current.GXCTextGrayColor3, |
| | | SelectedTextColor = ZigbeeColor.Current.GXCTextWhiteColor, |
| | | TextID = R.MyInternationalizationString.Function, |
| | | IsSelected = false |
| | | IsSelected = false, |
| | | TextSize=14 |
| | | }; |
| | | functionSceneView.AddChidren(functionBtn); |
| | | |
| | |
| | | { |
| | | sceneBtn.IsSelected = false; |
| | | functionBtn.IsSelected = true; |
| | | sceneBtn.TextSize = 14; |
| | | functionBtn.TextSize = 16; |
| | | RefreshBodyView(); |
| | | }; |
| | | //选择场景分栏 |
| | |
| | | { |
| | | functionBtn.IsSelected = false; |
| | | sceneBtn.IsSelected = true; |
| | | sceneBtn.TextSize = 16; |
| | | functionBtn.TextSize = 14; |
| | | RefreshBodyView(); |
| | | }; |
| | | |
| | |
| | | //发送读取状态命令 |
| | | ReadStatus(rollerShade, () => |
| | | { |
| | | rollerShade.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch); |
| | | ReadDeviceAttributeLogic.Instance.SendCurtainStatuComand(device.CommonDevice); |
| | | }); |
| | | } |
| | | else |
| | | { |
| | | if (CommonPage.ReadDeviceStatuSpan < (DateTime.Now - rollerShade.LastDateTime).TotalSeconds) |
| | | { |
| | | rollerShade.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch); |
| | | ReadDeviceAttributeLogic.Instance.SendCurtainStatuComand(device.CommonDevice); |
| | | } |
| | | } |
| | | var lightView = new FunctionMainView(xx, yy); |
| | |
| | | zbGateway.ReportAction += UpdateDeviceControllStatu; |
| | | AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, device.CommonDevice); |
| | | |
| | | (device.CommonDevice as Rollershade).CurtainUpDownStopControl(1); |
| | | (device.CommonDevice as Rollershade).CurtainUpDownStopControl(0); |
| | | |
| | | ((sender as Button).Parent as FunctionMainView).SetStatuText(CommonFormResouce.GetSwitchStatu(true)); |
| | | ((sender as Button).Parent as FunctionMainView).IsSelected = true; |
| | |
| | | zbGateway.ReportAction += UpdateDeviceControllStatu; |
| | | AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, device.CommonDevice); |
| | | |
| | | (device.CommonDevice as Rollershade).CurtainUpDownStopControl(0); |
| | | (device.CommonDevice as Rollershade).CurtainUpDownStopControl(1); |
| | | |
| | | ((sender as Button).Parent as FunctionMainView).SetStatuText(CommonFormResouce.GetSwitchStatu(false)); |
| | | ((sender as Button).Parent as FunctionMainView).IsSelected = false; |
| | |
| | | //发送读取状态命令 |
| | | ReadStatus(light, () => |
| | | { |
| | | light.ReadOnOffStatus(); |
| | | light.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch); |
| | | ReadDeviceAttributeLogic.Instance.SendLightStatuComand(device.CommonDevice); |
| | | }); |
| | | } |
| | | else |
| | | { |
| | | if (CommonPage.ReadDeviceStatuSpan < (DateTime.Now - light.LastDateTime).TotalSeconds) |
| | | { |
| | | light.ReadOnOffStatus(); |
| | | light.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch); |
| | | ReadDeviceAttributeLogic.Instance.SendLightStatuComand(device.CommonDevice); |
| | | } |
| | | } |
| | | |
| | |
| | | //发送读取状态命令 |
| | | ReadStatus(airSwitch, () => |
| | | { |
| | | airSwitch.ReadOnOffStatus(); |
| | | airSwitch.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch); |
| | | ReadDeviceAttributeLogic.Instance.SendLightStatuComand(device.CommonDevice); |
| | | }); |
| | | } |
| | | else |
| | |
| | | //防止短时间内多次读取设备状态 |
| | | if ((DateTime.Now - airSwitch.LastDateTime).TotalSeconds > CommonPage.ReadDeviceStatuSpan) |
| | | { |
| | | airSwitch.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch); |
| | | airSwitch.ReadOnOffStatus(); |
| | | ReadDeviceAttributeLogic.Instance.SendLightStatuComand(device.CommonDevice); |
| | | } |
| | | } |
| | | |
| | |
| | | //发送读取状态命令 |
| | | ReadStatus(ac, () => |
| | | { |
| | | ac.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch); |
| | | ac.ReadLocalTemperature(); |
| | | ac.ReadCoolingSetpoint(); |
| | | ac.ReadHeatingSetpoint(); |
| | | ac.ReadAutoSetpoint(); |
| | | ac.ReadFanMode(); |
| | | ac.ReadSystemMode(); |
| | | ac.ReadSystemFansSwingMode(); |
| | | ac.ReadModeSupport(); |
| | | ReadDeviceAttributeLogic.Instance.SendACStatuComand(device.CommonDevice); |
| | | }); |
| | | } |
| | | else |
| | |
| | | //防止短时间内多次读取设备状态 |
| | | if ((DateTime.Now - ac.LastDateTime).TotalSeconds > CommonPage.ReadDeviceStatuSpan) |
| | | { |
| | | ac.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch); |
| | | ac.ReadLocalTemperature(); |
| | | ac.ReadCoolingSetpoint(); |
| | | ac.ReadHeatingSetpoint(); |
| | | ac.ReadAutoSetpoint(); |
| | | ac.ReadFanMode(); |
| | | ac.ReadSystemMode(); |
| | | ac.ReadSystemFansSwingMode(); |
| | | ac.ReadModeSupport(); |
| | | ReadDeviceAttributeLogic.Instance.SendACStatuComand(device.CommonDevice); |
| | | } |
| | | } |
| | | var lightView = new FunctionMainView(xx, yy); |
| | |
| | | //发送读取状态命令 |
| | | ReadStatus(dimmableLight, () => |
| | | { |
| | | dimmableLight.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch); |
| | | dimmableLight.ReadOnOffStatus(); |
| | | ReadDeviceAttributeLogic.Instance.SendDimmableLightStatuComand(device.CommonDevice); |
| | | }); |
| | | } |
| | | else |
| | |
| | | //防止短时间内多次读取设备状态 |
| | | if ((DateTime.Now - dimmableLight.LastDateTime).TotalSeconds > CommonPage.ReadDeviceStatuSpan) |
| | | { |
| | | dimmableLight.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch); |
| | | dimmableLight.ReadOnOffStatus(); |
| | | ReadDeviceAttributeLogic.Instance.SendDimmableLightStatuComand(device.CommonDevice); |
| | | } |
| | | } |
| | | |
| | |
| | | if (dimmableLight.Gateway == null) |
| | | { |
| | | continue; |
| | | } |
| | | if (dimmableLight.Gateway.IsVirtual) |
| | | { |
| | | ReadStatus(dimmableLight, () => |
| | | { |
| | | dimmableLight.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch); |
| | | }); |
| | | } |
| | | else |
| | | { |
| | | if ((DateTime.Now - dimmableLight.LastDateTime).TotalSeconds > CommonPage.ReadDeviceStatuSpan) |
| | | { |
| | | dimmableLight.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch); |
| | | } |
| | | } |
| | | |
| | | var lightView = new FunctionMainView(xx, yy); |
| | |
| | | for (int i = 0; i < sceneList.Count; i++) |
| | | { |
| | | var scene = sceneList[i]; |
| | | int xx = 43 + i % 2 * (20 + 487); |
| | | int xx = 33 + i % 2 * (40 + 487); |
| | | int yy = 14; |
| | | if (scene == null) |
| | | { |
| | |
| | | try |
| | | { |
| | | if (string.IsNullOrEmpty(Shared.Common.Config.Instance.HomeId)) |
| | | { |
| | | {
|
| | | //住宅ID为空只有一种可能就是退出了登录,这里的上一次住宅ID要清空
|
| | | oldHomeID = "?"; |
| | | System.Threading.Thread.Sleep(1000); |
| | | continue; |
| | | } |
| | |
| | | /// <summary> |
| | | /// 解除绑定 |
| | | /// </summary> |
| | | //public async System.Threading.Tasks.Task<DelDeviceBindResponseAllData> DelDeviceBindAsync(DelDeviceBindData delDeviceBindData) |
| | | //{ |
| | | // return await System.Threading.Tasks.Task.Run(async () => |
| | | // { |
| | | // DelDeviceBindResponseAllData responseData = null; |
| | | // var mainGateway = ZbGateway.MainGateWay; |
| | | // if (mainGateway == null) |
| | | // { |
| | | // responseData = new DelDeviceBindResponseAllData { errorMessageBase = "当前没有主网关" }; |
| | | // } |
| | | |
| | | // Action<string, string> action = (topic, message) => |
| | | // { |
| | | // var gatewayID = topic.Split('/')[0]; |
| | | // var jobject = Newtonsoft.Json.Linq.JObject.Parse(message); |
| | | |
| | | // if (topic == gatewayID + "/" + "Error_Respon") |
| | | // { |
| | | // var gatewayTemp = new ZbGateway() { Time = jobject.Value<int>("Time"), DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = mainGateway.getGatewayBaseInfo.gwID }; |
| | | // var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<ZbGateway.ErrorResponData>(jobject["Data"].ToString()); |
| | | |
| | | // if (temp == null) |
| | | // { |
| | | // responseData = new DelDeviceBindResponseAllData { errorMessageBase = "网关错误回复,且数据是空" }; |
| | | // } |
| | | // else |
| | | // { |
| | | // responseData = new DelDeviceBindResponseAllData { errorResponData = temp, errorMessageBase = ErrorMess(temp.Error) }; |
| | | // } |
| | | // } |
| | | // //场景移除 |
| | | // if (topic == gatewayID + "/" + "Bind/RemoveBind_Respon") |
| | | // { |
| | | // var gatewayTemp = new ZbGateway() { DeviceID = jobject.Value<int>("Device_ID"), DeviceAddr = jobject.Value<string>("DeviceAddr"), DeviceEpoint = jobject.Value<int>("Epoint"), DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = Gateway.getGatewayBaseInfo.gwID }; |
| | | // var tempData = Newtonsoft.Json.JsonConvert.DeserializeObject<DelDeviceBindResponseData>(jobject["Data"].ToString()); |
| | | |
| | | // if (tempData == null) |
| | | // { |
| | | // responseData = new DelDeviceBindResponseAllData { errorMessageBase = "网关返回的数据为空" }; |
| | | // } |
| | | // else |
| | | // { |
| | | // responseData = new DelDeviceBindResponseAllData { delDeviceBindResponseData = tempData }; |
| | | // System.Console.WriteLine($"UI收到通知后的主题_{ topic}"); |
| | | // } |
| | | // } |
| | | // //设备移除 |
| | | // if (topic == gatewayID + "/" + "Bind/RemoveBindResult") |
| | | // { |
| | | // var gatewayTemp = new ZbGateway() { DeviceID = jobject.Value<int>("Device_ID"), DeviceAddr = jobject.Value<string>("DeviceAddr"), DeviceEpoint = jobject.Value<int>("Epoint"), DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = mainGateway.getGatewayBaseInfo.gwID }; |
| | | // var tempData = Newtonsoft.Json.JsonConvert.DeserializeObject<RemoveBindResultResponseData>(jobject["Data"].ToString()); |
| | | |
| | | // if (tempData != null) |
| | | // { |
| | | // responseData = new DelDeviceBindResponseAllData { removeBindResultResponseData = tempData }; |
| | | // System.Console.WriteLine($"UI收到通知后的主题_{ topic}"); |
| | | // } |
| | | // } |
| | | // }; |
| | | // mainGateway.Actions += action; |
| | | // System.Console.WriteLine("DeviceBind/DelBind_Actions 启动" + "_" + System.DateTime.Now.ToString()); |
| | | // try |
| | | // { |
| | | // if (delDeviceBindData != null) |
| | | // { |
| | | // var jObject = new JObject { { "DeviceAddr", delDeviceBindData.DeviceAddr }, { "Epoint", delDeviceBindData.Epoint }, { "Cluster_ID", 0 }, { "Command", 5003 } }; |
| | | // var removeBindList = new JArray { }; |
| | | // foreach (var removeBindInfo in delDeviceBindData.RemoveBindList) |
| | | // { |
| | | // if (removeBindInfo.BindType == 0) |
| | | // { |
| | | // var dInfo = new JObject{ |
| | | // { "BindMacAddr",removeBindInfo.BindMacAddr}, |
| | | // { "BindEpoint", removeBindInfo.BindEpoint} , |
| | | // { "BindCluster", removeBindInfo.BindCluster} , |
| | | // { "BindType",removeBindInfo.BindType} |
| | | // }; |
| | | // removeBindList.Add(dInfo); |
| | | // } |
| | | // else if (removeBindInfo.BindType == 1) |
| | | // { |
| | | // var dInfo = new JObject{ |
| | | // { "BindCluster", removeBindInfo.BindCluster} , |
| | | // { "BindType",removeBindInfo.BindType}, |
| | | // { "BindScenesId", removeBindInfo.BindScenesId} |
| | | // }; |
| | | // removeBindList.Add(dInfo); |
| | | // } |
| | | // } |
| | | // var data = new JObject { |
| | | // {"RemoveBindList",removeBindList} |
| | | // }; |
| | | // jObject.Add("Data", data); |
| | | // mainGateway.Send("Bind/RemoveBind", jObject.ToString()); |
| | | // } |
| | | // } |
| | | // catch { } |
| | | |
| | | // var dateTime = DateTime.Now; |
| | | // while ((DateTime.Now - dateTime).TotalMilliseconds < WaitReceiveDataTime) |
| | | // { |
| | | // await System.Threading.Tasks.Task.Delay(10); |
| | | // if (responseData != null) |
| | | // { |
| | | // break; |
| | | // } |
| | | // } |
| | | // if ((DateTime.Now - dateTime).TotalMilliseconds > WaitReceiveDataTime) |
| | | // { |
| | | // responseData = new DelDeviceBindResponseAllData { errorMessageBase = " 回复超时,请重新操作" }; |
| | | // } |
| | | // mainGateway.Actions -= action; |
| | | // System.Console.WriteLine("DeviceBind/DelBind_Actions 退出" + System.DateTime.Now.ToString()); |
| | | // return responseData; |
| | | // }); |
| | | //} |
| | | |
| | | //之前2种方式反馈结果 |
| | | public async System.Threading.Tasks.Task<DelDeviceBindResponseAllData> DelDeviceBindAsync(DelDeviceBindData delDeviceBindData) |
| | | { |
| | | return await System.Threading.Tasks.Task.Run(async () => |
| | |
| | | break; |
| | | } |
| | | } |
| | | else if (0 < responseData.delDeviceBindResponseData.RemoveBindList.FindAll((obj) => obj.BindType == 0 && obj.Result == 4).Count) |
| | | else if (0 < responseData.delDeviceBindResponseData.RemoveBindList.FindAll((obj) => obj.BindType == 0 && obj.Result == 2).Count) |
| | | { |
| | | if (responseData.removeBindResultResponseData != null) |
| | | { |
| | |
| | | break; |
| | | } |
| | | } |
| | | if ((DateTime.Now - dateTime).TotalMilliseconds > WaitReceiveDataTime) |
| | | //一键清除目标,会因为目标数量多而加长时间,目前暂定10秒 |
| | | if ((DateTime.Now - dateTime).TotalMilliseconds > 10 * 1000) |
| | | { |
| | | d = new ClearBindInfoResponseAllData { errorMessageBase = " 回复超时,请重新操作" }; |
| | | } |
| | |
| | | var jObject = new JObject { { "Cluster_ID", 0 }, { "Command", 82 } }; |
| | | var data = new JObject { { "HomeId", homeId }, { "AccountId", accountId } }; |
| | | jObject.Add("Data", data); |
| | | Send("GwSetHomeId", jObject.ToString()); |
| | | //住宅ID的设置,固定使用局域网,不存在远程的说法 |
| | | SendLocation("GwSetHomeId", System.Text.Encoding.UTF8.GetBytes(jObject.ToString())); |
| | | } |
| | | catch { } |
| | | |
| | |
| | | await StartLocalMqtt("ReConnect");
|
| | | if (localIsConnected)
|
| | | {
|
| | | DebugPrintLog($"局域网——二次发送到网关的主题:{topic}_发送到网关的数据:{System.Text.Encoding.UTF8.GetString(message)}_当前网关{CurrentGateWayId} 是否加密:{IsEncry}");
|
| | | await localMqttClient.PublishAsync(new MqttApplicationMessage { Topic = topic, Payload = message, QualityOfServiceLevel = MQTTnet.Protocol.MqttQualityOfServiceLevel.ExactlyOnce, Retain = retain });
|
| | | } |
| | | }
|
| | |
| | | return; |
| | | } |
| | | await Send(topic, System.Text.Encoding.UTF8.GetBytes(message), retain); |
| | | }
|
| | |
|
| | | /// <summary> |
| | | /// 强制指定使用本地局域网发送消息到服务器 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | /// <param name="topic"></param> |
| | | /// <param name="message"></param> |
| | | /// <param name="retain"></param> |
| | | public async Task SendLocation(string topic, byte[] message, bool retain = false) |
| | | { |
| | | try |
| | | { |
| | | if (Shared.Common.Config.Instance.HomeId == "") |
| | | { |
| | | return; |
| | | }
|
| | |
|
| | | DebugPrintLog($"局域网——发送到网关的主题:{topic}_发送到网关的数据:{System.Text.Encoding.UTF8.GetString(message)}_当前网关{CurrentGateWayId} 是否加密:{IsEncry}");
|
| | |
|
| | | if (IsEncry)
|
| | | {
|
| | | //文件流不用加密
|
| | | if (topic != "FileTransfer/SendFile")
|
| | | {
|
| | | message = SecuritySet.AesEncryptBytes(message, password);
|
| | | }
|
| | | }
|
| | | if (localIsConnected)
|
| | | {
|
| | | try
|
| | | {
|
| | | await localMqttClient.PublishAsync(new MqttApplicationMessage { Topic = topic, Payload = message, QualityOfServiceLevel = MQTTnet.Protocol.MqttQualityOfServiceLevel.ExactlyOnce, Retain = retain });
|
| | | }
|
| | | catch (Exception e)
|
| | | {
|
| | | DebugPrintLog($"Local主动断开_{e.Message}");
|
| | | await DisConnectLocalMqttClient(e.Message);
|
| | | await StartLocalMqtt("ReConnect");
|
| | | if (localIsConnected)
|
| | | {
|
| | | DebugPrintLog($"局域网——二次发送到网关的主题:{topic}_发送到网关的数据:{System.Text.Encoding.UTF8.GetString(message)}_当前网关{CurrentGateWayId} 是否加密:{IsEncry}");
|
| | | await localMqttClient.PublishAsync(new MqttApplicationMessage { Topic = topic, Payload = message, QualityOfServiceLevel = MQTTnet.Protocol.MqttQualityOfServiceLevel.ExactlyOnce, Retain = retain });
|
| | | }
|
| | | }
|
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | DebugPrintLog($"Send:{ex.Message}"); |
| | | } |
| | | } |
| | | |
| | | |
| | | [Serializable] |
| | | public class CloudTimeResponse |
old mode 100755
new mode 100644
| | |
| | | /// </summary> |
| | | public const int USERNAMEORPWDERROR = 10131; |
| | | /// <summary> |
| | | /// 账号不存在,请先注册 |
| | | /// 账号不存在,请注册用户 |
| | | /// </summary> |
| | | public const int ACCOUNTNOEXISTS = 10132; |
| | | /// <summary> |
| | |
| | | /// 即将通过微信授权登录 |
| | | /// </summary> |
| | | public const int LoginByWechat = 10134; |
| | | /// <summary> |
| | | /// 登录中... |
| | | /// </summary> |
| | | public const int Logining = 10135; |
| | | /// <summary> |
| | | /// 当前住宅为空,请先建立住宅 |
| | | /// </summary> |
| | | public const int CurrentlyTheUserIshHouseIsEmptyPleaseBuildANewHouseFirst = 10136; |
| | | /// <summary> |
| | | /// 住宅名称为空 |
| | | /// </summary> |
| | | public const int TheResidenceNameNull = 10137; |
| | | /// <summary> |
| | | /// 邮箱错误,请重新输入 |
| | | /// </summary> |
| | | public const int TheEmailError = 10138; |
| | | /// <summary> |
| | | /// 手机号错误,请重新输入 |
| | | /// </summary> |
| | | public const int ThePhoneError = 10139; |
| | | /// <summary> |
| | | /// 你已被强制下线! |
| | | /// </summary> |
| | | public const int YouHaveBeenSignOut = 10141; |
| | | |
| | | |
| | | #endregion |
| | | /// <summary> |
| | | /// 改房间名称已存在 |
| | | /// </summary> |
| | | public const int HadSameRoom = 10150; |
| | | /// <summary> |
| | | /// 场景名不能为空 |
| | | /// </summary> |
| | | public const int SceneNameCannotBeNull = 10151; |
| | | /// <summary> |
| | | /// 控制场景失败 |
| | | /// </summary> |
| | | public const int ControlSceneFail = 10152; |
| | | /// <summary> |
| | | /// 场景为空 |
| | | /// </summary> |
| | | public const int TheSceneIsNull = 10153; |
| | | /// <summary> |
| | | /// 该场景中没有执行目标 |
| | | /// </summary> |
| | | public const int ThisSceneHaveNoDevice = 10154; |
| | | /// <summary> |
| | | /// 操作失败 |
| | | /// </summary> |
| | | public const int FAIL = 10155; |
| | | /// <summary> |
| | | /// 发送验证码失败 |
| | | /// </summary> |
| | | public const int SENDFAIL = 10156; |
| | | /// <summary> |
| | | /// 网关不在线 |
| | | /// </summary> |
| | | public const int TheMainGatewayIsNotOnLine = 10157; |
| | | |
| | | #region 分类 |
| | | |
| | | /// <summary> |
| | | /// 功能 |
| | | /// </summary> |
| | | public const int Function = 11000; |
| | | /// <summary> |
| | | /// 已是最新版本 |
| | | /// </summary> |
| | | public const int TheAppVersionIsNewest = 10160; |
| | | /// <summary> |
| | | /// 更新 |
| | | /// </summary> |
| | | public const int Update = 10161; |
| | | /// <summary> |
| | | /// 更新内容 |
| | | /// </summary> |
| | | public const int UpdateContent = 10162; |
| | | /// <summary> |
| | | /// 更新失败 |
| | | /// </summary> |
| | | public const int UpdateAppFail = 10163; |
| | | /// <summary> |
| | | /// 更新中... |
| | | /// </summary> |
| | | public const int Updating = 10164; |
| | | /// <summary> |
| | | /// 取消更新 |
| | | /// </summary> |
| | | public const int CancelUpdating = 10165; |
| | | |
| | | |
| | | #endregion |
| | | |
| | | #region 分类 |
| | | |
| | | /// <summary> |
| | | /// 功能 |
| | | /// </summary> |
| | | public const int Function = 11000; |
| | | /// <summary> |
| | | /// 场景 |
| | | /// </summary> |
| | |
| | | #endregion |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | public static readonly int OK = 10005; |
| | | |
| | | public static readonly int AccountOrPasswordCanNotBeEmpty = 10006; |
| | | |
| | | public static readonly int IncorrectMailboxformat = 10008; |
| | | public static readonly int PasswordLengthIsLessThanSix = 10009; |
| | | |
| | | |
| | | public static readonly int ThePasswordIsEmpty = 10011; |
| | | public static readonly int PleaseGoToTheMailboxToActivateTheAccountNumber = 10012; |
| | | public static readonly int PleaseInputTheCorrectCellPhoneNumber = 10013; |
| | | public static readonly int PleaseInputTheCorrectVerificationCode = 10014; |
| | | |
| | | |
| | | public static readonly int ThePhoneNumberIsNotRegisteredYetPleaseRegisterFirst = 10017; |
| | | public static readonly int LoginCodeError = 10018; |
| | | public static readonly int ThisUserBelongsToDebugAccountAndIsNotEnabled = 10019; |
| | | public static readonly int PleaseGoToTheMailboxToConfirmThePasswordChange = 10020; |
| | | |
| | | public static readonly int MailDeliveryFailedPleaseTryAgain = 10021; |
| | | public static readonly int TheAccountIsNotAuthorized = 10022; |
| | | public static readonly int Version = 10023; |
| | | public static readonly int QuitAccount = 10024; |
| | | public static readonly int InputNewPWD = 10025; |
| | | public static readonly int CurrentlyTheUserIshHouseIsEmptyPleaseBuildANewHouseFirst = 10026; |
| | | public static readonly int ResidentialNameCannotBeEmpty = 10027; |
| | | public static readonly int TheResidenceNameHasExist = 10028; |
| | | public static readonly int DelResidence = 10029; |
| | | public static readonly int PWDCannotBeNull = 10030; |
| | | |
| | | public static readonly int AddRoomBackgroundPicture = 10031; |
| | | public static readonly int TheRoomNameCannotBeNUll = 10032; |
| | | public static readonly int TheResidenceNameNull = 10033; |
| | | |
| | | |
| | | |
| | | public static readonly int PleaseInputPhoneNumberOrEmail = 11000; |
| | | |
| | | //*****public static readonly int ForgotPassword = 11002; |
| | | |
| | | |
| | | public static readonly int Account = 11005; |
| | | public static readonly int RegisterByPhone = 11006; |
| | | public static readonly int RegisterByEmail = 11007; |
| | | public static readonly int LoginHadAccountPWD = 11008; |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | public static readonly int BackToLogin = 11015; |
| | | |
| | | public static readonly int FindPWDByPhone = 11017; |
| | | public static readonly int FindPWDByEmail = 11018; |
| | | public static readonly int PleaseInputThePhoneAndYouWillHaveVerificationCode = 11019; |
| | | public static readonly int PleaseInputTheEmailAndYouWillHaveVerificatoinCode = 11020; |
| | | public static readonly int ResetPWD = 11021; |
| | | public static readonly int ResetPWDSuccessPleaseLoginAgain = 11022; |
| | | |
| | | public static readonly int Logining = 11024; |
| | | |
| | | public static readonly int AddRoom = 11026; |
| | | |
| | | |
| | | |
| | | public static readonly int SettingContent = 11031; |
| | | public static readonly int PleaseInputRoomName = 11032; |
| | | public static readonly int LocalPic = 11033; |
| | | public static readonly int TakePhoto = 11034; |
| | | public static readonly int SystemPic = 11035; |
| | | |
| | | public static readonly int HadSameRoom = 11037; |
| | | //*****public static readonly int Function = 11038; |
| | | |
| | | |
| | | |
| | | public static readonly int AddFunction = 11042; |
| | | |
| | | public static readonly int Light = 11044; |
| | | public static readonly int AddLight = 11045; |
| | | public static readonly int DropLight = 11046; |
| | | public static readonly int DownLight = 11047; |
| | | public static readonly int SpotLight = 11048; |
| | | public static readonly int DeviceName = 11049; |
| | | |
| | | |
| | | public static readonly int ConfirmAdd = 11052; |
| | | |
| | | public static readonly int Add = 11054; |
| | | public static readonly int DeviceSetting = 11055; |
| | | |
| | | public static readonly int AddDeviceSuccess = 11058; |
| | | |
| | | public static readonly int Device = 11060; |
| | | |
| | | public static readonly int ConfirmDeleteThisRoom = 11062; |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | public static readonly int NextStep = 11071; |
| | | public static readonly int SelectRoom = 11072; |
| | | public static readonly int SelectDevice = 11073; |
| | | |
| | | /// <summary> |
| | | /// 调光 |
| | | /// </summary> |
| | | public static readonly int Dimming = 11075; |
| | | public static readonly int ThisSceneHadTheDevice = 11076; |
| | | public static readonly int SceneNameCannotBeNull = 11077; |
| | | public static readonly int ModifyScene = 11078; |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | public static readonly int YourPWDIsTooSample = 11088; |
| | | public static readonly int PleaseInputTheCorrectEmail = 11089; |
| | | /// <summary> |
| | | /// 操作失败 |
| | | /// </summary> |
| | | public static readonly int FAIL = 11090; |
| | | /// <summary> |
| | | /// 发送验证码失败 |
| | | /// </summary> |
| | | public static readonly int SENDFAIL = 11091; |
| | | /// <summary> |
| | | /// 连接网关或者获取数据失败 |
| | | /// </summary> |
| | | public static readonly int ConnectGWFail = 11092; |
| | | /// <summary> |
| | | /// 时间间隔 |
| | | /// </summary> |
| | | public static readonly int TimeSpan = 11093; |
| | | |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// 自定义 |
| | | /// </summary> |
| | | public static readonly int Custom = 11098; |
| | | |
| | | /// <summary> |
| | | /// 取消收藏 |
| | | /// </summary> |
| | | public static readonly int CancelCollect = 11101; |
| | | /// <summary> |
| | | /// 修改信息 |
| | | /// </summary> |
| | | public static readonly int ChangeDeviceInfo = 11102; |
| | | /// <summary> |
| | | /// 百分比 |
| | | /// </summary> |
| | | public static readonly int Percent = 11103; |
| | | |
| | | |
| | | /// <summary> |
| | | /// The please confirm new password. |
| | | /// </summary> |
| | | public readonly static int PleaseConfirmNewPassword = 11106; |
| | | /// <summary> |
| | | /// 验证码失效 |
| | | /// </summary> |
| | | public readonly static int NORECORD = 11107; |
| | | |
| | | public static readonly int TheMainGatewayIsNotOnLine = 12000; |
| | | |
| | | public static readonly int TheSceneIsNull = 12002; |
| | | /// <summary> |
| | | /// 该场景中没有执行目标 |
| | | /// </summary> |
| | | public static readonly int ThisSceneHaveNoDevice = 12003; |
| | | public static readonly int TheAppVersionIsNewest = 12004; |
| | | public static readonly int Update = 12005; |
| | | public static readonly int UpdateContent = 12006; |
| | | public static readonly int UpdateAppFail = 12007; |
| | | public static readonly int ControlSceneFail = 12008; |
| | | public static readonly int DeleteSceneFail = 12009; |
| | | public static readonly int SaveTheNewRoomOrNo = 12010; |
| | | public static readonly int Updating = 12011; |
| | | public static readonly int CancelUpdating = 12012; |
| | | /// <summary> |
| | | /// 方向与限位 |
| | | /// </summary> |
| | | public static readonly int DirectionLimit = 12013; |
| | | /// <summary> |
| | | /// 维护模式 |
| | | /// </summary> |
| | | public static readonly int MaintenanceMode = 12014; |
| | | /// <summary> |
| | | /// 启动/禁止手拉开关 |
| | | /// </summary> |
| | | public static readonly int Start_Forbid_Hand_Pull_Switch = 12015; |
| | | /// <summary> |
| | | /// 起始方向 |
| | | /// </summary> |
| | | public static readonly int InitialDirection = 12016; |
| | | /// <summary> |
| | | /// 正向 |
| | | /// </summary> |
| | | public static readonly int ForwardDirection = 12017; |
| | | /// <summary> |
| | | /// 反向 |
| | | /// </summary> |
| | | public static readonly int ReverseDirection = 12018; |
| | | /// <summary> |
| | | /// 限位 |
| | | /// </summary> |
| | | public static readonly int Limit = 12019; |
| | | /// <summary> |
| | | /// 开始 |
| | | /// </summary> |
| | | public static readonly int Start = 12020; |
| | | /// <summary> |
| | | /// 结束 |
| | | /// </summary> |
| | | public static readonly int End = 12021; |
| | | /// <summary> |
| | | /// 恢复行程设置 |
| | | /// </summary> |
| | | public static readonly int RestoreTravelSettings = 12022; |
| | | /// <summary> |
| | | /// 恢复行程设置后,当前设置将被初始化,确定继续吗? |
| | | /// </summary> |
| | | public static readonly int IsCancelRestoreTravelSettings = 12023; |
| | | /// <summary> |
| | | /// 切换维护模式失败 |
| | | /// </summary> |
| | | public static readonly int ChangeMaintenanceMode_Fail = 12024; |
| | | /// <summary> |
| | | /// 是否设置当前位置为开始限位? |
| | | /// </summary> |
| | | public static readonly int SettingStartLimit = 12025; |
| | | /// <summary> |
| | | /// 是否设置当前位置为结束限位? |
| | | /// </summary> |
| | | public static readonly int SettingEndLimit = 12026; |
| | | /// <summary> |
| | | /// 设置开始限位 |
| | | /// </summary> |
| | | public static readonly int SetStartLimit = 12027; |
| | | /// <summary> |
| | | /// 设置结束限位 |
| | | /// </summary> |
| | | public static readonly int SetEndLimit = 12028; |
| | | /// <summary> |
| | | /// 导轨移动中,请等待。。。 |
| | | /// </summary> |
| | | public static readonly int PleaseWaitWhileTheGuidewayIsMoving = 12029; |
| | | /// <summary> |
| | | /// 您的账号已在另一台设备登录,您已被强制下线 |
| | | /// </summary> |
| | | public static readonly int YouHaveBeenSignOut = 12030; |
| | | |
| | | /// <summary> |
| | | /// 场景中已包含该场景 |
| | | /// </summary> |
| | | public static readonly int ThisSceneHadTheScene = 12032; |
| | | /// <summary> |
| | | /// 当前没搜索到网关,请先添加网关 |
| | | /// </summary> |
| | | public static readonly int NoGateway = 12033; |
| | | /// <summary> |
| | | ///当前没有可以添加到该房间的设备 |
| | | /// </summary> |
| | | public static readonly int NoDeviceCanAddToRoom = 12034; |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// 当前房间没有设备可以添加到场景 |
| | | /// </summary> |
| | | public static readonly int TheRoomNoDeviceAddToScene = 12500; |
| | | |
| | | /// <summary> |
| | | /// 往上移动 |
| | | /// </summary> |
| | | public static readonly int RollerShadeUp = 12501; |
| | | /// <summary> |
| | | /// 往下移动 |
| | | /// </summary> |
| | | public static readonly int RollerShadeDown = 12502; |
| | | |
| | | |
| | | /// <summary> |
| | |
| | | <Compile Include="$(MSBuildThisFileDirectory)Common\ResponseEntity\UserLoginLocalRegionRes.cs" />
|
| | | <Compile Include="$(MSBuildThisFileDirectory)Pad\MainPage.cs" />
|
| | | <Compile Include="$(MSBuildThisFileDirectory)Phone\Device\Account\AccountForgetPWD.cs" />
|
| | | <Compile Include="$(MSBuildThisFileDirectory)Phone\Device\Account\AccountLogic.cs" />
|
| | | <Compile Include="$(MSBuildThisFileDirectory)Phone\Device\Account\AccountRegister.cs" />
|
| | | <Compile Include="$(MSBuildThisFileDirectory)Phone\Device\Account\AccountRegisterSuccess.cs" />
|
| | | <Compile Include="$(MSBuildThisFileDirectory)Phone\Device\Account\AccountResetPWDSuccess.cs" />
|
| | |
| | | <Compile Include="$(MSBuildThisFileDirectory)Phone\Device\CommonForm\Line.cs" />
|
| | | <Compile Include="$(MSBuildThisFileDirectory)Phone\Device\CommonForm\RoomMainView.cs" />
|
| | | <Compile Include="$(MSBuildThisFileDirectory)Phone\Device\CommonForm\RoomNoNameMainView.cs" />
|
| | | <Compile Include="$(MSBuildThisFileDirectory)Phone\Device\CommonForm\RoomView.cs" />
|
| | | <Compile Include="$(MSBuildThisFileDirectory)Phone\Device\CommonForm\RowLayoutDeleteButton.cs" />
|
| | | <Compile Include="$(MSBuildThisFileDirectory)Phone\Device\CommonForm\RowLayoutEditButton.cs" />
|
| | | <Compile Include="$(MSBuildThisFileDirectory)Phone\Device\CommonForm\SceneCategoryView.cs" />
|
| | |
| | | <Compile Include="$(MSBuildThisFileDirectory)Phone\Device\CommonForm\SelectTime.cs" />
|
| | | <Compile Include="$(MSBuildThisFileDirectory)Phone\Device\CommonForm\SelectZone.cs" />
|
| | | <Compile Include="$(MSBuildThisFileDirectory)Phone\Device\CommonForm\TopFrameLayout.cs" />
|
| | | <Compile Include="$(MSBuildThisFileDirectory)Phone\Device\DeviceLogic\ReadDeviceAttributeLogic.cs" />
|
| | | <Compile Include="$(MSBuildThisFileDirectory)Phone\Device\Light\AirSwitchControl.cs" />
|
| | | <Compile Include="$(MSBuildThisFileDirectory)Phone\Device\Light\DimmableLightControl.cs" />
|
| | | <Compile Include="$(MSBuildThisFileDirectory)Phone\Device\Light\LightControl.cs" />
|
| | |
| | | <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Gateway\Update\GatewayVirtualDriveInfoForm.cs" />
|
| | | <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\HdlBackup\HdlAutoBackupForm.cs" />
|
| | | <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\HdlBackup\HdlBackupListForm.cs" />
|
| | | <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\HideOption\HideOptionGatewayListForm.cs" />
|
| | | <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\HideOption\HideOptionMainForm.cs" />
|
| | | <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Member\MemberNotEsixtForm.cs" />
|
| | | <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Password\CheckNewPhoneForm.cs" />
|
| | | <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Password\CheckOldPhoneForm.cs" />
|