Merge branch 'CJL' into ez-test
1 文件已复制
126个文件已添加
42个文件已修改
1 文件已重命名
| | |
| | | Manifest.Permission.Camera, Manifest.Permission.ProcessOutgoingCalls, Manifest.Permission.GetAccounts}; |
| | | //禁止屏幕长亮 |
| | | BaseActivity.KeepScreenON = false; |
| | | //隐藏迪拜虚拟按键 |
| | | //隐藏虚拟按键 |
| | | BaseActivity.IsHideVirualButtons = true; |
| | | //实现安卓返回按键 |
| | | BaseActivity.BackKeyAction = () => { |
| | |
| | | 5047=你手机暂未安装"QQ音乐"{\r\n}请前往手机商场安装 |
| | | |
| | | |
| | | |
| | | 6000=正常 |
| | | 6001=设备状态 |
| | | 6002=个 |
| | | 6003=当前红外遥控设备 |
| | | 6004=已添加遥控器 |
| | | 6005=空调 |
| | | 6006=电视 |
| | | 6007=风扇 |
| | | 6008=机顶盒 |
| | | 6009=DVD/EVD/VCD |
| | | 6010=投影仪 |
| | | 6011=自定义 |
| | | 6012=红外遥控 |
| | | 6013=设备管理 |
| | | 6014=添加遥控器 |
| | | 6015=在线 |
| | | 6016=离线 |
| | | 6017=版本号 |
| | | 6018=请输入遥控器名称 |
| | | 6019=提示:遥控器创建后可在功能-电器分类{\r\n}查找使用 |
| | | 6020=推荐按键 |
| | | 6021=请输入按键名称 |
| | | 6022=下一步 |
| | | 6023=电源 |
| | | 6024=音量+ |
| | | 6025=音量- |
| | | 6026=频道+ |
| | | 6027=频道- |
| | | 6028=上 |
| | | 6029=下 |
| | | 6030=左 |
| | | 6031=右 |
| | | 6032=静音 |
| | | 6034=确认 |
| | | 6035=播放 |
| | | 6037=退出 |
| | | 6038=菜单 |
| | | 6039=暂停 |
| | | 6040=返回 |
| | | 6041=停止 |
| | | 6042=主页 |
| | | 6043=快进 |
| | | 6044=快退 |
| | | 6045=定时 |
| | | 6046=复制遥控功能 |
| | | 6047=对准遥控器中心按下相同按键 |
| | | 6048=智能遥控器 |
| | | 6049=添加按键 |
| | | 6050=*长按可进行自定义排序 |
| | | 6051=完成 |
| | | 6052=添加成功 |
| | | 6053=可到分类-功能-电器操作使用 |
| | | 6054=所属分类 |
| | | 6055=遥控器名称 |
| | | 6056=所属区域 |
| | | 6057=继续添加 |
| | | 6058=电器 |
| | | 6059=添加失败 |
| | | 6060=重试 |
| | | |
| | | 7000=新建自动化 |
| | | 7001=编辑自动化 |
| | | 7002=如果 |
| | |
| | | <Folder Include="Other\" /> |
| | | <Folder Include="Other\JPush\" /> |
| | | <Folder Include="Assets\Phone\FunctionIcon\Electrical\WaterValve\" /> |
| | | <Folder Include="Assets\Phone\FunctionIcon\Electrical\ClothesHanger\" /> |
| | | <Folder Include="Assets\Phone\PirIcon\" /> |
| | | </ItemGroup> |
| | | <ItemGroup> |
| | | <PackageReference Include="Xamarin.Android.Support.Design" Version="28.0.0.3" /> |
| | |
| | | <AndroidAsset Include="Assets\Phone\FunctionIcon\ArmSensor\ArmSensorDoorIcon.png" /> |
| | | <AndroidAsset Include="Assets\Phone\FunctionIcon\ArmSensor\ArmSensorPirStateBgIconOn.png" /> |
| | | <AndroidAsset Include="Assets\Phone\FunctionIcon\ArmSensor\ArmSensorWaterImmersionStateBgIcon.png" /> |
| | | <AndroidAsset Include="Assets\Phone\FunctionIcon\Electrical\ClothesHanger\ClothesHangerAnionIcon.png" /> |
| | | <AndroidAsset Include="Assets\Phone\FunctionIcon\Electrical\ClothesHanger\ClothesHangerAnionIconOn.png" /> |
| | | <AndroidAsset Include="Assets\Phone\FunctionIcon\Electrical\ClothesHanger\ClothesHangerBgIcon.png" /> |
| | | <AndroidAsset Include="Assets\Phone\FunctionIcon\Electrical\ClothesHanger\ClothesHangerBgIconOn.png" /> |
| | | <AndroidAsset Include="Assets\Phone\FunctionIcon\Electrical\ClothesHanger\ClothesHangerBlueIcon.png" /> |
| | | <AndroidAsset Include="Assets\Phone\FunctionIcon\Electrical\ClothesHanger\ClothesHangerDisinfectIcon.png" /> |
| | | <AndroidAsset Include="Assets\Phone\FunctionIcon\Electrical\ClothesHanger\ClothesHangerDisinfectIconOn.png" /> |
| | | <AndroidAsset Include="Assets\Phone\FunctionIcon\Electrical\ClothesHanger\ClothesHangerDownIcon.png" /> |
| | | <AndroidAsset Include="Assets\Phone\FunctionIcon\Electrical\ClothesHanger\ClothesHangerDownIcon1.png" /> |
| | | <AndroidAsset Include="Assets\Phone\FunctionIcon\Electrical\ClothesHanger\ClothesHangerDownIcon1On.png" /> |
| | | <AndroidAsset Include="Assets\Phone\FunctionIcon\Electrical\ClothesHanger\ClothesHangerDownIcon2.png" /> |
| | | <AndroidAsset Include="Assets\Phone\FunctionIcon\Electrical\ClothesHanger\ClothesHangerDownIcon2On.png" /> |
| | | <AndroidAsset Include="Assets\Phone\FunctionIcon\Electrical\ClothesHanger\ClothesHangerDownIconOn.png" /> |
| | | <AndroidAsset Include="Assets\Phone\FunctionIcon\Electrical\ClothesHanger\ClothesHangerGrayIcon.png" /> |
| | | <AndroidAsset Include="Assets\Phone\FunctionIcon\Electrical\ClothesHanger\ClothesHangerHotDryIcon.png" /> |
| | | <AndroidAsset Include="Assets\Phone\FunctionIcon\Electrical\ClothesHanger\ClothesHangerHotDryIconOn.png" /> |
| | | <AndroidAsset Include="Assets\Phone\FunctionIcon\Electrical\ClothesHanger\ClothesHangerLightIcon.png" /> |
| | | <AndroidAsset Include="Assets\Phone\FunctionIcon\Electrical\ClothesHanger\ClothesHangerLightIconOn.png" /> |
| | | <AndroidAsset Include="Assets\Phone\FunctionIcon\Electrical\ClothesHanger\ClothesHangerStopIcon.png" /> |
| | | <AndroidAsset Include="Assets\Phone\FunctionIcon\Electrical\ClothesHanger\ClothesHangerStopIconOn.png" /> |
| | | <AndroidAsset Include="Assets\Phone\FunctionIcon\Electrical\ClothesHanger\ClothesHangerTimeIcon.png" /> |
| | | <AndroidAsset Include="Assets\Phone\FunctionIcon\Electrical\ClothesHanger\ClothesHangerTimeIconOn.png" /> |
| | | <AndroidAsset Include="Assets\Phone\FunctionIcon\Electrical\ClothesHanger\ClothesHangerUpIcon.png" /> |
| | | <AndroidAsset Include="Assets\Phone\FunctionIcon\Electrical\ClothesHanger\ClothesHangerUpIcon1.png" /> |
| | | <AndroidAsset Include="Assets\Phone\FunctionIcon\Electrical\ClothesHanger\ClothesHangerUpIcon1On.png" /> |
| | | <AndroidAsset Include="Assets\Phone\FunctionIcon\Electrical\ClothesHanger\ClothesHangerUpIcon2.png" /> |
| | | <AndroidAsset Include="Assets\Phone\FunctionIcon\Electrical\ClothesHanger\ClothesHangerUpIcon2On.png" /> |
| | | <AndroidAsset Include="Assets\Phone\FunctionIcon\Electrical\ClothesHanger\ClothesHangerUpIconOn.png" /> |
| | | <AndroidAsset Include="Assets\Phone\FunctionIcon\Electrical\ClothesHanger\ClothesHangerWindDryIcon.png" /> |
| | | <AndroidAsset Include="Assets\Phone\FunctionIcon\Electrical\ClothesHanger\ClothesHangerWindDryIconOn.png" /> |
| | | <AndroidAsset Include="Assets\Phone\PirIcon\air.png" /> |
| | | <AndroidAsset Include="Assets\Phone\PirIcon\custom.png" /> |
| | | <AndroidAsset Include="Assets\Phone\PirIcon\dvd.png" /> |
| | | <AndroidAsset Include="Assets\Phone\PirIcon\fan.png" /> |
| | | <AndroidAsset Include="Assets\Phone\PirIcon\Infraredtreasure.png" /> |
| | | <AndroidAsset Include="Assets\Phone\PirIcon\projector.png" /> |
| | | <AndroidAsset Include="Assets\Phone\PirIcon\search.png" /> |
| | | <AndroidAsset Include="Assets\Phone\PirIcon\tv.png" /> |
| | | <AndroidAsset Include="Assets\Phone\PirIcon\stb.png" /> |
| | | <AndroidAsset Include="Assets\Phone\PirIcon\offline.png" /> |
| | | <AndroidAsset Include="Assets\Phone\PirIcon\online.png" /> |
| | | <AndroidAsset Include="Assets\Phone\PirIcon\priequipment.png" /> |
| | | <AndroidAsset Include="Assets\Phone\PirIcon\addlbuton.png" /> |
| | | <AndroidAsset Include="Assets\Phone\PirIcon\del.png" /> |
| | | <AndroidAsset Include="Assets\Phone\PirIcon\delbuton.png" /> |
| | | <AndroidAsset Include="Assets\Phone\PirIcon\dropdown.png" /> |
| | | <AndroidAsset Include="Assets\Phone\PirIcon\adddevice.png" /> |
| | | <AndroidAsset Include="Assets\Phone\PirIcon\next.png" /> |
| | | <AndroidAsset Include="Assets\Phone\PirIcon\failed.png" /> |
| | | <AndroidAsset Include="Assets\Phone\PirIcon\icon1.png" /> |
| | | <AndroidAsset Include="Assets\Phone\PirIcon\icon2.png" /> |
| | | <AndroidAsset Include="Assets\Phone\PirIcon\succeed.png" /> |
| | | </ItemGroup> |
| | | <ItemGroup> |
| | | <AndroidNativeLibrary Include="libs\armeabi-v7a\libelianjni.so" /> |
| | |
| | | <?xml version="1.0" encoding="utf-8"?> |
| | | <manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="202102231" android:versionName="1.1.202102231" package="com.hdl.onpro"> |
| | | <manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="202102252" android:versionName="1.1.202102252" package="com.hdl.onpro"> |
| | | <uses-sdk android:minSdkVersion="26" android:targetSdkVersion="26" /> |
| | | <!-- 定位权限--> |
| | | <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> |
| | |
| | | <ErrorReport>prompt</ErrorReport> |
| | | <WarningLevel>4</WarningLevel> |
| | | <MtouchArch>ARM64</MtouchArch> |
| | | <CodesignKey>iPhone Developer</CodesignKey> |
| | | <CodesignKey>Apple Development: xuebiao huang (4P32GXQWWK)</CodesignKey> |
| | | <MtouchDebug>true</MtouchDebug> |
| | | <MtouchI18n>cjk</MtouchI18n> |
| | | <MtouchLink>SdkOnly</MtouchLink> |
| | | <MtouchExtraArgs>-gcc_flags="-dead_strip -ObjC"</MtouchExtraArgs> |
| | | <MtouchEnableSGenConc>false</MtouchEnableSGenConc> |
| | | <CodesignEntitlements>Entitlements.plist</CodesignEntitlements> |
| | | <CodesignProvision>ComHdlOnProDevelopment20210116-2</CodesignProvision> |
| | | <CodesignProvision>ComHdlOnProDevelopment20210225-1</CodesignProvision> |
| | | </PropertyGroup> |
| | | <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|iPhone' "> |
| | | <DebugType>none</DebugType> |
| | |
| | | <Folder Include="Resources\zh-Hans.lproj\" /> |
| | | <Folder Include="Resources\Phone\FunctionIcon\Electrical\WaterValve\" /> |
| | | <Folder Include="Resources\Phone\FunctionIcon\ArmSensor\" /> |
| | | <Folder Include="Resources\Phone\FunctionIcon\Electrical\ClothesHanger\" /> |
| | | </ItemGroup> |
| | | <ItemGroup> |
| | | <InterfaceDefinition Include="LaunchScreen.storyboard" /> |
| | |
| | | <BundleResource Include="Resources\Phone\FunctionIcon\ArmSensor\ArmSensorWaterImmersionStateBgIcon.png" /> |
| | | <BundleResource Include="Resources\Phone\FunctionIcon\ArmSensor\ArmSensorWaterImmersionStateBgIconOn.png" /> |
| | | <BundleResource Include="Resources\Phone\FunctionIcon\ArmSensor\PowerLowIcon.png" /> |
| | | <BundleResource Include="Resources\Phone\FunctionIcon\Electrical\ClothesHanger\ClothesHangerAnionIcon.png" /> |
| | | <BundleResource Include="Resources\Phone\FunctionIcon\Electrical\ClothesHanger\ClothesHangerAnionIconOn.png" /> |
| | | <BundleResource Include="Resources\Phone\FunctionIcon\Electrical\ClothesHanger\ClothesHangerBgIcon.png" /> |
| | | <BundleResource Include="Resources\Phone\FunctionIcon\Electrical\ClothesHanger\ClothesHangerBgIconOn.png" /> |
| | | <BundleResource Include="Resources\Phone\FunctionIcon\Electrical\ClothesHanger\ClothesHangerDisinfectIcon.png" /> |
| | | <BundleResource Include="Resources\Phone\FunctionIcon\Electrical\ClothesHanger\ClothesHangerDisinfectIconOn.png" /> |
| | | <BundleResource Include="Resources\Phone\FunctionIcon\Electrical\ClothesHanger\ClothesHangerDownIcon.png" /> |
| | | <BundleResource Include="Resources\Phone\FunctionIcon\Electrical\ClothesHanger\ClothesHangerDownIconOn.png" /> |
| | | <BundleResource Include="Resources\Phone\FunctionIcon\Electrical\ClothesHanger\ClothesHangerHotDryIcon.png" /> |
| | | <BundleResource Include="Resources\Phone\FunctionIcon\Electrical\ClothesHanger\ClothesHangerHotDryIconOn.png" /> |
| | | <BundleResource Include="Resources\Phone\FunctionIcon\Electrical\ClothesHanger\ClothesHangerLightIcon.png" /> |
| | | <BundleResource Include="Resources\Phone\FunctionIcon\Electrical\ClothesHanger\ClothesHangerLightIconOn.png" /> |
| | | <BundleResource Include="Resources\Phone\FunctionIcon\Electrical\ClothesHanger\ClothesHangerStopIcon.png" /> |
| | | <BundleResource Include="Resources\Phone\FunctionIcon\Electrical\ClothesHanger\ClothesHangerStopIconOn.png" /> |
| | | <BundleResource Include="Resources\Phone\FunctionIcon\Electrical\ClothesHanger\ClothesHangerTimeIcon.png" /> |
| | | <BundleResource Include="Resources\Phone\FunctionIcon\Electrical\ClothesHanger\ClothesHangerTimeIconOn.png" /> |
| | | <BundleResource Include="Resources\Phone\FunctionIcon\Electrical\ClothesHanger\ClothesHangerUpIcon.png" /> |
| | | <BundleResource Include="Resources\Phone\FunctionIcon\Electrical\ClothesHanger\ClothesHangerUpIconOn.png" /> |
| | | <BundleResource Include="Resources\Phone\FunctionIcon\Electrical\ClothesHanger\ClothesHangerWindDryIcon.png" /> |
| | | <BundleResource Include="Resources\Phone\FunctionIcon\Electrical\ClothesHanger\ClothesHangerWindDryIconOn.png" /> |
| | | <BundleResource Include="Resources\Phone\LogicIcon\changesinoutdoor.png" /> |
| | | <BundleResource Include="Resources\Phone\FunctionIcon\Electrical\ClothesHanger\ClothesHangerBlueIcon.png" /> |
| | | <BundleResource Include="Resources\Phone\FunctionIcon\Electrical\ClothesHanger\ClothesHangerGrayIcon.png" /> |
| | | <BundleResource Include="Resources\Phone\FunctionIcon\Electrical\ClothesHanger\ClothesHangerDownIcon1.png" /> |
| | | <BundleResource Include="Resources\Phone\FunctionIcon\Electrical\ClothesHanger\ClothesHangerDownIcon1On.png" /> |
| | | <BundleResource Include="Resources\Phone\FunctionIcon\Electrical\ClothesHanger\ClothesHangerDownIcon2.png" /> |
| | | <BundleResource Include="Resources\Phone\FunctionIcon\Electrical\ClothesHanger\ClothesHangerDownIcon2On.png" /> |
| | | <BundleResource Include="Resources\Phone\FunctionIcon\Electrical\ClothesHanger\ClothesHangerUpIcon1.png" /> |
| | | <BundleResource Include="Resources\Phone\FunctionIcon\Electrical\ClothesHanger\ClothesHangerUpIcon1On.png" /> |
| | | <BundleResource Include="Resources\Phone\FunctionIcon\Electrical\ClothesHanger\ClothesHangerUpIcon2.png" /> |
| | | <BundleResource Include="Resources\Phone\FunctionIcon\Electrical\ClothesHanger\ClothesHangerUpIcon2On.png" /> |
| | | <BundleResource Include="Resources\Phone\PirIcon\fan.png" /> |
| | | <BundleResource Include="Resources\Phone\PirIcon\dvd.png" /> |
| | | <BundleResource Include="Resources\Phone\PirIcon\stb.png" /> |
| | | <BundleResource Include="Resources\Phone\PirIcon\tv.png" /> |
| | | <BundleResource Include="Resources\Phone\PirIcon\projector.png" /> |
| | | <BundleResource Include="Resources\Phone\PirIcon\air.png" /> |
| | | <BundleResource Include="Resources\Phone\PirIcon\custom.png" /> |
| | | <BundleResource Include="Resources\Phone\PirIcon\priequipment.png" /> |
| | | <BundleResource Include="Resources\Phone\PirIcon\offline.png" /> |
| | | <BundleResource Include="Resources\Phone\PirIcon\search.png" /> |
| | | <BundleResource Include="Resources\Phone\PirIcon\del.png" /> |
| | | <BundleResource Include="Resources\Phone\PirIcon\dropdown.png" /> |
| | | <BundleResource Include="Resources\Phone\PirIcon\addlbuton.png" /> |
| | | <BundleResource Include="Resources\Phone\PirIcon\delbuton.png" /> |
| | | <BundleResource Include="Resources\Phone\PirIcon\Infraredtreasure.png" /> |
| | | <BundleResource Include="Resources\Phone\PirIcon\online.png" /> |
| | | <BundleResource Include="Resources\Phone\PirIcon\adddevice.png" /> |
| | | <BundleResource Include="Resources\Phone\PirIcon\next.png" /> |
| | | </ItemGroup> |
| | | <ItemGroup> |
| | | <ITunesArtwork Include="iTunesArtwork" /> |
| | |
| | | <key>UIStatusBarStyle</key> |
| | | <string>UIStatusBarStyleLightContent</string> |
| | | <key>CFBundleShortVersionString</key> |
| | | <string>1.1.202102231</string> |
| | | <string>1.1.202102242</string> |
| | | <key>CFBundleVersion</key> |
| | | <string>202102231</string> |
| | | <string>202102242</string> |
| | | <key>NSLocationWhenInUseUsageDescription</key> |
| | | <string>Use geographic location to provide services such as weather</string> |
| | | <key>NSAppleMusicUsageDescription</key> |
| | |
| | | <constraints> |
| | | <constraint firstAttribute="height" constant="40" id="vLh-9U-8RO"/> |
| | | </constraints> |
| | | <color key="textColor" white="0.0" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> |
| | | <fontDescription key="fontDescription" type="system" pointSize="14"/> |
| | | <textInputTraits key="textInputTraits" keyboardType="alphabet"/> |
| | | <connections> |
| | |
| | | <constraints> |
| | | <constraint firstAttribute="height" constant="40" id="DjM-dg-5en"/> |
| | | </constraints> |
| | | <color key="textColor" white="0.0" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> |
| | | <fontDescription key="fontDescription" type="system" pointSize="14"/> |
| | | <textInputTraits key="textInputTraits" keyboardType="alphabet"/> |
| | | <connections> |
| | |
| | | <constraints> |
| | | <constraint firstAttribute="height" constant="34" id="FPO-BB-N1L"/> |
| | | </constraints> |
| | | <color key="textColor" white="0.0" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> |
| | | <fontDescription key="fontDescription" type="system" pointSize="14"/> |
| | | <textInputTraits key="textInputTraits" secureTextEntry="YES"/> |
| | | </textField> |
| | |
| | | <inferredMetricsTieBreakers> |
| | | <segue reference="9TP-S2-hhI"/> |
| | | <segue reference="MFl-yy-ZsP"/> |
| | | <segue reference="VYk-37-nb6"/> |
| | | <segue reference="ikM-Zn-H8f"/> |
| | | </inferredMetricsTieBreakers> |
| | | <resources> |
| | | <image name="addDevice_success" width="320" height="185"/> |
| | |
| | | <subviews> |
| | | <textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="请输入设备名称" textAlignment="natural" minimumFontSize="17" clearButtonMode="whileEditing" translatesAutoresizingMaskIntoConstraints="NO" id="r1W-d8-Rg7"> |
| | | <rect key="frame" x="0.0" y="94" width="375" height="40"/> |
| | | <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> |
| | | <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> |
| | | <constraints> |
| | | <constraint firstAttribute="height" constant="40" id="NLX-OK-XZ7"/> |
| | | </constraints> |
| | | <color key="textColor" white="0.0" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> |
| | | <fontDescription key="fontDescription" type="system" pointSize="14"/> |
| | | <textInputTraits key="textInputTraits"/> |
| | | </textField> |
| | |
| | | <inferredMetricsTieBreakers> |
| | | <segue reference="Qls-Y0-o2u"/> |
| | | <segue reference="X3Q-o5-p8V"/> |
| | | <segue reference="q2I-Q5-CUY"/> |
| | | <segue reference="9Tu-UR-Cms"/> |
| | | <segue reference="vdt-wN-aOY"/> |
| | | </inferredMetricsTieBreakers> |
| | | <color key="tintColor" white="0.0" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> |
| | |
| | | 417=Water Leakage |
| | | 418=In Alarm |
| | | 419=Normal |
| | | 420=Hot Dry |
| | | 421=Air Dry |
| | | 422=Disinfect |
| | | 423=Lighting |
| | | |
| | | |
| | | 5000=Music |
| | | 5001=Group |
| | |
| | | 417=漏水 |
| | | 418=报警 |
| | | 419=正常 |
| | | 420=烘干 |
| | | 421=风干 |
| | | 422=消毒 |
| | | 423=照明 |
| | | |
| | | |
| | | 1000=室内湿度 |
| | |
| | | 5047=你手机暂未安装"QQ音乐"{\r\n}请前往手机商场安装 |
| | | |
| | | |
| | | 6000=正常 |
| | | 6001=设备状态 |
| | | 6002=个 |
| | | 6003=当前红外遥控设备 |
| | | 6004=已添加遥控器 |
| | | 6005=空调 |
| | | 6006=电视 |
| | | 6007=风扇 |
| | | 6008=机顶盒 |
| | | 6009=DVD/EVD/VCD |
| | | 6010=投影仪 |
| | | 6011=自定义 |
| | | 6012=红外遥控 |
| | | 6013=设备管理 |
| | | 6014=添加遥控器 |
| | | |
| | | |
| | | |
| | | 7000=新建自动化 |
| | | 7001=编辑自动化 |
| | | 7002=如果 |
| | |
| | | "ad_restart_tip"="长按设备上的reset键10秒后松开,并等待大约30秒直到设备启动完成"; |
| | | "ad_restart_done"="我已重启好"; |
| | | "ad_get_device_info_msg"="正在查询设备信息,请稍后..."; |
| | | "ad_already_added"="您已添加过此设备"; |
| | | "ad_already_added"="此设备已被添加"; |
| | | "ad_added_by_others"="此设备已被别人添加"; |
| | | "get_info_fail"="查询失败,网络不给力"; |
| | | "ad_input_manual"="手动输入"; |
| | |
| | | { |
| | | deviceList = new DevcieApiPack(); |
| | | } |
| | | string delFile = ""; |
| | | if (FunctionList.List.GetDeviceFunctionList().Count > 0) |
| | | { |
| | | |
| | |
| | | continue; |
| | | } |
| | | var newFunction = deviceList.list.Find((obj) => obj.deviceId == localFunction.deviceId); |
| | | if (newFunction == null)//如果云端最新数据没有该条数据,则本地需要删掉该数据记录 |
| | | { |
| | | FunctionList.List.DeleteFunction(localFunction); |
| | | } |
| | | else |
| | | { |
| | | MainPage.Log($"deviceType:{localFunction.spk} local:{localFunction.modifyTime} server:{newFunction.modifyTime}"); |
| | | i++; |
| | | //if (localFunction.modifyTime != newFunction.modifyTime) |
| | | //if (newFunction == null)//如果云端最新数据没有该条数据,则本地需要删掉该数据记录 |
| | | //{ |
| | | // //可优化 |
| | | // localFunction.name = newFunction.name; |
| | | // localFunction.collect = newFunction.collect; |
| | | // localFunction.modifyTime = newFunction.modifyTime; |
| | | // localFunction.roomIds = newFunction.roomIds; |
| | | // localFunction.bus = newFunction.bus; |
| | | // localFunction.SaveFunctionFile(); |
| | | // FunctionList.List.DeleteFunction(localFunction); |
| | | //} |
| | | localFunction = newFunction; |
| | | localFunction.SaveFunctionFile(); |
| | | deviceList.list.Remove(newFunction);//操作完的数据清理掉,剩下的就是新增的功能 |
| | | //else |
| | | //{ |
| | | // MainPage.Log($"deviceType:{localFunction.spk} local:{localFunction.modifyTime} server:{newFunction.modifyTime}"); |
| | | // i++; |
| | | // //if (localFunction.modifyTime != newFunction.modifyTime) |
| | | // //{ |
| | | // // //可优化 |
| | | // // localFunction.name = newFunction.name; |
| | | // // localFunction.collect = newFunction.collect; |
| | | // // localFunction.modifyTime = newFunction.modifyTime; |
| | | // // localFunction.roomIds = newFunction.roomIds; |
| | | // // localFunction.bus = newFunction.bus; |
| | | // // localFunction.SaveFunctionFile(); |
| | | // //} |
| | | // localFunction = newFunction; |
| | | // localFunction.SaveFunctionFile(); |
| | | // deviceList.list.Remove(newFunction);//操作完的数据清理掉,剩下的就是新增的功能 |
| | | //} |
| | | |
| | | if (delFile == localFunction.savePath) |
| | | { |
| | | i++; |
| | | continue; |
| | | } |
| | | delFile = localFunction.savePath; |
| | | FunctionList.List.DeleteFunction(localFunction); |
| | | |
| | | } |
| | | |
| | | |
| | |
| | | case "13375012446": |
| | | case "13602944661": |
| | | case "18778381374": |
| | | case "18316672920": |
| | | return; |
| | | } |
| | | |
| | |
| | | { |
| | | //Dialog |
| | | alarmPushConfirmDialog = null; |
| | | Action backAction = () => { |
| | | Action backAction = () => |
| | | { |
| | | |
| | | }; |
| | | var skipPage = new MessageCenterPage(); |
| | |
| | | } |
| | | } |
| | | #endregion |
| | | |
| | | #region 跳转打开萤石云方法 |
| | | |
| | | /// <summary> |
| | | /// 获取子账号token并跳转设备列表页面 |
| | | /// </summary> |
| | | /// <param name="bodyView"></param> |
| | | public void Go2EZvizMonitor(FrameLayout bodyView) |
| | | { |
| | | var waitPage = new Loading(); |
| | | bodyView.AddChidren(waitPage); |
| | | waitPage.Start(Language.StringByID(StringId.PleaseWait)); |
| | | |
| | | new Thread(() => |
| | | { |
| | | try |
| | | { |
| | | //先获取萤石云子账号token |
| | | var result = new HttpServerRequest().EZGetChildToken(); |
| | | if (result.Code == StateCode.SUCCESS) |
| | | { |
| | | var ezChildAccessToken = Newtonsoft.Json.JsonConvert.DeserializeObject<EZChildAccessToken>(result.Data.ToString()); |
| | | Application.RunOnMainThread(() => |
| | | { |
| | | if (!string.IsNullOrEmpty(ezChildAccessToken.accessToken)) |
| | | { |
| | | #if __IOS__ |
| | | //iOS |
| | | |
| | | //1.设置所需河东的AccessToken和RefreshToken、域名地址 |
| | | EZSDK.IOS.EZSDK.SetHDlAccessToken(UserInfo.Current.LoginTokenString, UserInfo.Current.RefreshToken); |
| | | EZSDK.IOS.EZSDK.SetRequestHttpsHost(OnAppConfig.Instance.RequestHttpsHost); |
| | | //2.设置萤石子账号的AccessToken到SDK |
| | | EZSDK.IOS.EZSDK.SetEZAccessToken(ezChildAccessToken.accessToken); |
| | | //3.打开摄像头设备列表页面 |
| | | EZSDK.IOS.EZSDK.Go2EZvizMonitor(); |
| | | |
| | | #else |
| | | //Android |
| | | //1.设置所需河东的token、域名地址 |
| | | //2.设置萤石子账号的token |
| | | //3.打开摄像头设备列表页面 |
| | | ((BaseActivity)Shared.Application.Activity).SetCamera(b => |
| | | { |
| | | if (b) |
| | | { |
| | | Android.Content.Intent intent = new Android.Content.Intent(); |
| | | intent.SetComponent(new Android.Content.ComponentName(Shared.Application.Activity, "com.videogo.MainActivity")); |
| | | Shared.Application.Activity.StartActivity(intent); |
| | | } |
| | | }); |
| | | #endif |
| | | |
| | | |
| | | } |
| | | |
| | | }); |
| | | } |
| | | else |
| | | { |
| | | IMessageCommon.Current.ShowErrorInfoAlter(result.Code); |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | } |
| | | finally |
| | | { |
| | | Application.RunOnMainThread(() => |
| | | { |
| | | if (waitPage != null) |
| | | { |
| | | waitPage.RemoveFromParent(); |
| | | waitPage = null; |
| | | } |
| | | }); |
| | | } |
| | | }) |
| | | { IsBackground = true }.Start(); |
| | | } |
| | | |
| | | #endregion |
| | | } |
| | | } |
| | |
| | | { |
| | | public static class StringId |
| | | { |
| | | public const int Lightint = 433; |
| | | public const int Disinfect = 422; |
| | | public const int WindDry = 421; |
| | | public const int HotDry = 420; |
| | | public const int SensorNormalState = 419; |
| | | public const int InAlarm = 418; |
| | | public const int WaterLeakage = 417; |
| | |
| | | public const int qqMsuicTip = 5047; |
| | | |
| | | |
| | | public const int zhengchang = 6000; |
| | | public const int shebeizhuangtai = 6001; |
| | | public const int ge = 6002; |
| | | public const int dangqianhongwaishebei = 6003; |
| | | public const int yitianjiayaokongqi = 6004; |
| | | public const int kongtiao = 6005; |
| | | public const int dianshi = 6006; |
| | | public const int fengshan = 6007; |
| | | public const int jidinghe = 6008; |
| | | public const int dvd = 6009; |
| | | public const int touyingyi = 6010; |
| | | public const int zidingyi = 6011; |
| | | public const int hongwaiyaokong = 6012; |
| | | public const int shebeigaunli = 6013; |
| | | public const int tianjiayaokongqi = 6014; |
| | | public const int zaixianhwb= 6015; |
| | | public const int lixian = 6016; |
| | | public const int banbenhao = 6017; |
| | | public const int shuruyaokongqimingcheng = 6018; |
| | | public const int fengleichazhao = 6019; |
| | | public const int tuijiananjian = 6020; |
| | | public const int anjianmingcheng = 6021; |
| | | public const int xiayibu= 6022; |
| | | public const int dianyuan = 6023; |
| | | public const int yinliangjia = 6024; |
| | | public const int yinliangjian = 6025; |
| | | public const int pindaojia = 6026; |
| | | public const int pindaojian = 6027; |
| | | public const int shang = 6028; |
| | | public const int xia = 6029; |
| | | public const int zuo = 6030; |
| | | public const int you = 6031; |
| | | public const int jingyin = 6032; |
| | | public const int queren = 6034; |
| | | public const int bofang = 6035; |
| | | public const int tuichu = 6037; |
| | | public const int caidan = 6038; |
| | | public const int zanting = 6039; |
| | | public const int fanhui = 6040; |
| | | public const int tingzhi = 6041; |
| | | public const int zhuye = 6042; |
| | | public const int kuaijin = 6043; |
| | | public const int kuaitui = 6044; |
| | | public const int dingshi = 6045; |
| | | public const int fuzhiyaokonggongnneg = 6046; |
| | | public const int duizhunanxiaanniu = 6047; |
| | | public const int zhinengyaokongqi = 6048; |
| | | public const int tianjiaanniu = 6049; |
| | | public const int paixu = 6050; |
| | | public const int wancheng = 6051; |
| | | public const int tianjiachenggong = 6052; |
| | | public const int kedaofenlei = 6053; |
| | | public const int suoshufenlei = 6054; |
| | | public const int yaokongqimingcheng = 6055; |
| | | public const int suoshuquyu = 6056; |
| | | public const int jixutianjia = 6057; |
| | | public const int dianqi = 6058; |
| | | public const int tianjiashibai = 6059; |
| | | public const int chongshii = 6060; |
| | | |
| | | |
| | | |
| | | |
| | | public const int newAutomation = 7000; |
| | | public const int editAutomation = 7001; |
| | | public const int ifCondition = 7002; |
| | |
| | | { |
| | | //修改主页连接状态 |
| | | HomePage.LoadEvent_CheckLinkStatus(); |
| | | MainPage.Log($"网关在线,刷新设备状态"); |
| | | MainPage.Log($"网关局域网在线,刷新设备状态"); |
| | | new System.Threading.Thread(() => |
| | | { |
| | | System.Threading.Thread.Sleep(1000); |
| | |
| | | } |
| | | //修改主页连接状态 |
| | | HomePage.LoadEvent_CheckLinkStatus(); |
| | | MainPage.Log($"网关在线,刷新设备状态"); |
| | | MainPage.Log($"网关云端在线,刷新设备状态"); |
| | | new System.Threading.Thread(() => |
| | | { |
| | | System.Threading.Thread.Sleep(1000); |
| | |
| | | } |
| | | } |
| | | |
| | | MainPage.Log($"time 1 :{receiveObj.Topic}"); |
| | | MainPage.Log($"局域网信息: {receiveObj.Topic}"); |
| | | |
| | | |
| | | //验证有效数据长度 |
| | |
| | | var localFunction = allLocalFuntion.Find((obj) => obj.sid == updateTemp.sid); |
| | | if (localFunction != null) |
| | | { |
| | | //var updateInfoString = $"更新设备:{localFunction.name}"; |
| | | //foreach (var attr in updateTemp.status) |
| | | //{ |
| | | // updateInfoString += $" key:{attr.key};value:{attr.value}"; |
| | | //} |
| | | //MainPage.Log(updateInfoString); |
| | | |
| | | |
| | | //更新界面状态 |
| | | Function localObj = null; |
| | | switch (localFunction.spk) |
| | |
| | | case SPK.ElectricTuyaFan:
|
| | | case SPK.ElectricTuyaWeepRobot: |
| | | case SPK.ElectricTuyaWaterValve: |
| | | case SPK.SensorPir: |
| | | case SPK.SensorDoorWindow: |
| | | case SPK.SensorSmoke: |
| | | case SPK.SensorWater: |
| | | case SPK.ClothesHanger: |
| | | //设备状态推送 |
| | | var myDevice = Stan.HdlDeviceStatuPushLogic.Current.UpdateDeviceStatu(updateTemp.sid,updateTemp.status); |
| | | if (myDevice != null)
|
| | |
| | | RemoteMqttClient.UseConnectedHandler(async (e) => |
| | | { |
| | | IfNeedReadAllDeviceStatus = true; |
| | | Control.Ins.GatewayOnline_Cloud = true; |
| | | Utlis.WriteLine($"============>Mqtt远程连接成功"); |
| | | SendPushSignOut(); |
| | | }); |
| | |
| | | static void ReceiveNotifySqueezeAsync(string mMes) |
| | | { |
| | | if (mMes == PushSignStr ) return;//是自己的登录推送不处理//或者当前不是远程链接状态 |
| | | //测试账号,不挤下线 |
| | | switch (UserInfo.Current.AccountString) |
| | | { |
| | | case "13415629083": |
| | | case "18316120654": |
| | | case "15622703419": |
| | | case "18824864143": |
| | | case "464027401@qq.com": |
| | | case "2791308028@qq.com": |
| | | case "13697499568": |
| | | case "18666455392": |
| | | case "13375012446": |
| | | case "13602944661": |
| | | case "18778381374": |
| | | case "18316672920": |
| | | return; |
| | | } |
| | | |
| | | if (!UserInfo.Current.IsLogin) |
| | | { |
| | |
| | | |
| | | #endregion |
| | | |
| | | #region 萤石云SDK相关接口 |
| | | /// <summary> |
| | | /// 河东获取萤石云子账号token的接口 |
| | | /// </summary> |
| | | public ResponsePackNew EZGetChildToken() |
| | | { |
| | | Dictionary<string, object> d = new Dictionary<string, object>(); |
| | | //d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.RegionID); |
| | | var requestJson = HttpUtil.GetSignRequestJson(d); |
| | | return HttpUtil.RequestHttpsPostFroHome(NewAPI.API_POST_EZ_GetChildToken, requestJson); |
| | | } |
| | | #endregion |
| | | |
| | | } |
| | | } |
| | |
| | | /// </summary> |
| | | public const string Api_Post_GetBrandList = "/home-wisdom/app/product/brand/list"; |
| | | |
| | | #region ■ -- 红外宝接口___________________________ |
| | | /// <summary> |
| | | /// 红外宝设备定位 |
| | | /// </summary> |
| | | public const string API_POST_Ir_DeviceFind = "/home-wisdom/app/device/ir/deviceFind"; |
| | | /// <summary> |
| | | /// 红外宝下的遥控器列表 |
| | | /// </summary> |
| | | public const string API_POST_Ir_List = ":/home-wisdom/app/device/ir/list"; |
| | | /// <summary> |
| | | /// 遥控器红外码学习 |
| | | /// </summary> |
| | | public const string API_POST_Ir_CodeStudy = "/home-wisdom/app/device/ir/codeStudy"; |
| | | /// <summary> |
| | | ///红外宝红外码库试码 |
| | | /// </summary> |
| | | public const string API_POST_Ir_CodeTest = "/home-wisdom/app/device/ir/codeTest"; |
| | | /// <summary> |
| | | /// 红外宝遥控器添加 |
| | | /// </summary> |
| | | public const string API_POST_Ir_Add = "/home-wisdom/app/device/ir/add"; |
| | | /// <summary> |
| | | /// 遥控器自学按键删除 |
| | | /// </summary> |
| | | public const string API_POST_Ir_CodeRemove = "/home-wisdom/app/device/ir/codeRemove"; |
| | | |
| | | #endregion |
| | | |
| | | #endregion |
| | | |
| | | |
| | | #region ■ -- 萤石SDK相关接口___________________________ |
| | | /// <summary> |
| | | /// 河东获取萤石云子账号token的接口 |
| | | /// </summary> |
| | | public const string API_POST_EZ_GetChildToken = "/home-wisdom/platform/childToken"; |
| | | |
| | | |
| | | #endregion |
| | | |
| | | #endregion |
| | |
| | | public string messageType; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 萤石云子账号token |
| | | /// </summary> |
| | | [System.Serializable] |
| | | public class EZChildAccessToken |
| | | { |
| | | /// <summary> |
| | | /// token |
| | | /// </summary> |
| | | public string accessToken; |
| | | /// <summary> |
| | | /// 过期时间 |
| | | /// </summary> |
| | | public string expireTime; |
| | | } |
| | | |
| | | |
| | | //#region 旧接口 |
| | | ///// <summary> |
| | | ///// |
| | |
| | | ShowFunction.Light,ShowFunction.AC,ShowFunction.Curtain, |
| | | ShowFunction.FloorHeating,ShowFunction.Music, |
| | | ShowFunction.Electric,ShowFunction.Environmental, |
| | | //ShowFunction.EnergyMonitoring, |
| | | //ShowFunction.FreshAir,ShowFunction.DoorLock, |
| | | //ShowFunction.Panel,ShowFunction.SecurityMonitoring, |
| | | ShowFunction.EnergyMonitoring, |
| | | ShowFunction.FreshAir,ShowFunction.DoorLock, |
| | | ShowFunction.Panel,ShowFunction.SecurityMonitoring, |
| | | ShowFunction.Sensor,ShowFunction.VideoIntercom |
| | | }); |
| | | instance.SaveResidenceData(); |
New file |
| | |
| | | using System; |
| | | namespace HDL_ON.Entity |
| | | { |
| | | public enum ClothsHangerEnum |
| | | { |
| | | |
| | | |
| | | } |
| | | } |
New file |
| | |
| | | using System; |
| | | namespace HDL_ON.Entity |
| | | { |
| | | /// <summary> |
| | | /// 设备功能 |
| | | /// </summary> |
| | | public class DeviceFunction : Function |
| | | { |
| | | public DeviceFunction() |
| | | { |
| | | } |
| | | |
| | | |
| | | } |
| | | } |
| | |
| | | public string pageSize = "0"; |
| | | |
| | | } |
| | | /// <summary> |
| | | /// 属性状态 |
| | | /// </summary> |
| | | public class AttrState |
| | | { |
| | | /// <summary> |
| | | /// 属性键名 |
| | | /// </summary> |
| | | public string key; |
| | | /// <summary> |
| | | /// 属性的值列表 |
| | | /// </summary> |
| | | public List<string> value = new List<string>(); |
| | | /// <summary> |
| | | /// 最大值 |
| | | /// </summary> |
| | | public int max = 100; |
| | | /// <summary> |
| | | /// 最小值 |
| | | /// </summary> |
| | | public int min = 0; |
| | | /// <summary> |
| | | /// 数据类型 |
| | | /// </summary> |
| | | public string data_type = ""; |
| | | /// <summary> |
| | | /// 当前值 |
| | | /// </summary> |
| | | public string curValue = ""; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 功能类能满足数据使用要求,子类只是为了方便使用属性 |
| | |
| | | public Function() |
| | | { |
| | | } |
| | | |
| | | #region 优化区域 2021-02-25 |
| | | /// <summary> |
| | | /// 获取属性列表 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | public List<string> GetAttributes() |
| | | { |
| | | var attrs = new List<string>(); |
| | | |
| | | foreach(var attr in attributes) |
| | | { |
| | | attrs.Add(attr.key); |
| | | } |
| | | return attrs; |
| | | } |
| | | /// <summary> |
| | | /// 获取制定属性 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | public FunctionAttributes GetAttribute(string key) |
| | | { |
| | | var attr = attributes.Find((a) => a.key == key); |
| | | return attr; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 获取属性状态 |
| | | /// </summary> |
| | | /// <param name="key"></param> |
| | | /// <returns></returns> |
| | | public string GetAttrState(string key) |
| | | { |
| | | var attrState = status.Find((s) => s.key == key.ToString()); |
| | | if(attrState == null) |
| | | { |
| | | return ""; |
| | | } |
| | | return attrState.value; |
| | | } |
| | | /// <summary> |
| | | /// 设置属性状态 |
| | | /// </summary> |
| | | /// <param name="key"></param> |
| | | /// <param name="value"></param> |
| | | /// <returns>修改结果</returns> |
| | | public bool SetAttrState(string key, string value) |
| | | { |
| | | var attrState = status.Find((s) => s.key == key.ToString()); |
| | | if (attrState == null) |
| | | { |
| | | return false; |
| | | } |
| | | else |
| | | { |
| | | attrState.value = value; |
| | | } |
| | | return true; |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | |
| | | #region base info |
| | | /// <summary> |
| | |
| | | /// 09 安防 |
| | | /// 大类别 1bytes (预留) |
| | | /// 小类别 1byte (预留) |
| | | /// </summary> |
| | | /// </summary> “0001021599F98A04050300010000” |
| | | public string sid = "0301011234567801012301230123"; |
| | | /// <summary> |
| | | /// 备注 |
| | |
| | | /// 设备spk |
| | | /// </summary> |
| | | public string spk = ""; |
| | | ///// <summary> |
| | | ///// 功能类别 |
| | | ///// 如:空调类、灯光类、窗帘类 |
| | | ///// </summary> |
| | | //public FunctionCategory Spk_Prefix |
| | | //{ |
| | | // get |
| | | // { |
| | | // try |
| | | // { |
| | | // var _functionCategoryString = sid.Substring(16, 2); |
| | | // var _functionCategory = Convert.ToInt32(_functionCategoryString, 16); |
| | | // return (FunctionCategory)Enum.ToObject(typeof(FunctionCategory), _functionCategory); |
| | | // } |
| | | // catch (Exception ex) |
| | | // { |
| | | // MainPage.Log($"get FunctionCategory error : {ex.Message}"); |
| | | // return FunctionCategory.UnKown; |
| | | // } |
| | | // } |
| | | //} |
| | | |
| | | ///// <summary> |
| | | ///// 功能类型 |
| | | ///// </summary> |
| | | //public FunctionType spk |
| | | //{ |
| | | // get |
| | | // { |
| | | // var _functionTypeString = sid.Substring(16, 4); |
| | | // return (FunctionType)Enum.ToObject(typeof(FunctionType), Convert.ToInt32(_functionTypeString, 16)); |
| | | // } |
| | | //} |
| | | |
| | | string spk_Prefix; |
| | | /// <summary> |
| | |
| | | return spk_Prefix; |
| | | } |
| | | } |
| | | string spk_Suffix; |
| | | ///// <summary> |
| | | ///// spk后缀 |
| | | ///// 小类 |
| | | ///// 功能类型 |
| | | ///// </summary> |
| | | //public string spk |
| | | //{ |
| | | // get |
| | | // { |
| | | // if (string.IsNullOrEmpty(spk_Suffix)) |
| | | // { |
| | | // try |
| | | // { |
| | | // spk_Suffix = spk.Split(".")[1]; |
| | | // } |
| | | // catch |
| | | // { |
| | | // spk_Suffix = ""; |
| | | // } |
| | | // } |
| | | // return spk_Suffix; |
| | | // } |
| | | //} |
| | | |
| | | /// <summary> |
| | | /// A协议功能的特性 |
| | | /// 如:是AC功能:特性:on_off,mode,fan,temperature |
| | |
| | | /// 云端数据修改的最后时间 |
| | | /// </summary> |
| | | public string modifyTime = ""; |
| | | /// <summary> |
| | | /// 删除标记 |
| | | /// 需要删除数据时,标记为:true |
| | | /// 由云端删除成功之后,返回数据再清除本地数据 |
| | | /// </summary> |
| | | public bool DeleteSign = false; |
| | | |
| | | #endregion |
| | | /// <summary> |
| | |
| | | }) |
| | | { IsBackground = true }.Start(); |
| | | } |
| | | /// <summary> |
| | | /// 保存功能数据 |
| | | /// </summary> |
| | | //public void SaveFunctionData(bool upSevser) |
| | | //{ |
| | | // if (upSevser) |
| | | // { |
| | | // new System.Threading.Thread(() => |
| | | // { |
| | | // var pm = new HttpServerRequest(); |
| | | // var pack = pm.UpdataDevcieInfo(this); |
| | | // if (pack.Code == StateCode.SUCCESS) |
| | | // { |
| | | // var ssd = System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(this)); |
| | | // FileUtlis.Files.WriteFileByBytes(savePath, ssd); |
| | | // } |
| | | // else |
| | | // { |
| | | // IMessageCommon.Current.ShowErrorInfoAlter(pack.Code); |
| | | // } |
| | | // }) |
| | | // { IsBackground = true }.Start(); |
| | | // } |
| | | // else |
| | | // { |
| | | // var ssd = System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(this)); |
| | | // FileUtlis.Files.WriteFileByBytes(savePath, ssd); |
| | | // } |
| | | //} |
| | | |
| | | |
| | | /// <summary> |
| | | /// 转换成场景功能对象 |
| | |
| | | /// 当前值 |
| | | /// </summary> |
| | | public object curValue = new object(); |
| | | ///// <summary>
|
| | | ///// curValue的翻译值,最坏的结果也只会返回string.Empty
|
| | | ///// </summary> |
| | | //public string realValue
|
| | | //{
|
| | | // get
|
| | | // {
|
| | | // var myValue = curValue.ToString();
|
| | | // //沙雕定义的object类型
|
| | | // if (myValue.Contains("{") == true) { return string.Empty; }
|
| | | // return myValue;
|
| | | // }
|
| | | //} |
| | | } |
| | | /// <summary> |
| | | /// 功能属性键名列表 |
| | |
| | | /// 状态,传感器 |
| | | /// </summary> |
| | | public const string Status = "status"; |
| | | /// <summary> |
| | | /// 电量状态 |
| | | /// </summary> |
| | | public const string BatteryState = "battery_state"; |
| | | /// <summary> |
| | | /// 烘干 |
| | | /// </summary> |
| | | public const string HotDry = "hot_dry"; |
| | | /// <summary> |
| | | /// 风干 |
| | | /// </summary> |
| | | public const string WindDry = "wind_dry"; |
| | | /// <summary> |
| | | /// 消毒 |
| | | /// </summary> |
| | | public const string Disinfect = "disinfect"; |
| | | /// <summary> |
| | | /// 上升下降 |
| | | /// </summary> |
| | | public const string Position = "position"; |
| | | /// <summary> |
| | | /// 进度 |
| | | /// </summary> |
| | | public const string PositionPercent = "position_percent"; |
| | | /// <summary> |
| | | /// 烘干时间 |
| | | /// </summary> |
| | | public const string HotDryTime = "hot_dry_time"; |
| | | /// <summary> |
| | | /// 烘干剩余时间 |
| | | /// </summary> |
| | | public const string HotDryTimeLeft = "hot_dry_time_surplus"; |
| | | /// <summary> |
| | | /// 风干时间 |
| | | /// </summary> |
| | | public const string WindDryTime = "wind_dry_time"; |
| | | /// <summary> |
| | | /// 风干剩余时间 |
| | | /// </summary> |
| | | public const string WindDryTimeLeft = "wind_dry_time_surplus"; |
| | | /// <summary> |
| | | /// 消毒时间 |
| | | /// </summary> |
| | | public const string DisinfectTime = "disinfect_time"; |
| | | /// <summary> |
| | | /// 消毒剩余时间 |
| | | /// </summary> |
| | | public const string DisinfectTimeLeft = "disinfect_time_surplus"; |
| | | |
| | | |
| | | |
| | | #region tuya |
| | | /// <summary> |
| | |
| | | /// </summary> |
| | | public const string TuyaWaterTime = "countdown_1"; |
| | | #endregion |
| | | |
| | | |
| | | } |
| | | /// <summary> |
| | | /// 设备功能oid |
| | |
| | | /// </summary> |
| | | public const string SensorTemperature = "sensor.temperature"; |
| | | /// <summary> |
| | | /// (红外移动传感器) |
| | | /// </summary> |
| | | public const string SensorPir = "sensor.pir"; |
| | | /// <summary> |
| | | /// (门窗传感器) |
| | | /// </summary> |
| | | public const string SensorDoorWindow = "sensor.doorwindow"; |
| | | /// <summary> |
| | | /// (PM2.5传感器) |
| | | /// </summary> |
| | | public const string SensorPm25 = "sensor.pm25"; |
| | |
| | | /// </summary> |
| | | public const string SensorHumidity = "sensor.humidity"; |
| | | |
| | | /// <summary> |
| | | /// (红外移动传感器) |
| | | /// </summary> |
| | | public const string SensorPir = "sensor.pir"; |
| | | /// <summary> |
| | | /// (门窗传感器) |
| | | /// </summary> |
| | | public const string SensorDoorWindow = "sensor.doorwindow"; |
| | | /// <summary> |
| | | /// 烟雾传感器 |
| | | /// </summary> |
| | |
| | | /// 家电、涂鸦水阀 |
| | | /// </summary> |
| | | public const string ElectricTuyaWaterValve = "electrical.koiGhMKwLf2ZP81g"; |
| | | /// <summary> |
| | | /// 凉霸 |
| | | /// </summary> |
| | | public const string ClothesHanger = "electrical.racks"; |
| | | |
| | | |
| | | /// <summary> |
| | |
| | | { |
| | | waterValveList = new List<Function>(); |
| | | } |
| | | if(clothesHangerList == null) |
| | | { |
| | | clothesHangerList = new List<Function>(); |
| | | } |
| | | var list = new List<Function>(); |
| | | list.AddRange(fans); |
| | | list.AddRange(switchSockets); |
| | |
| | | list.AddRange(airCleaners);
|
| | | list.AddRange(weepRobots); |
| | | list.AddRange(waterValveList); |
| | | list.AddRange(clothesHangerList); |
| | | return list; |
| | | } |
| | | } |
| | |
| | | /// 水阀列表 |
| | | /// </summary> |
| | | public List<Function> waterValveList = new List<Function>(); |
| | | /// <summary> |
| | | /// 凉霸列表 |
| | | /// </summary> |
| | | public List<Function> clothesHangerList = new List<Function>(); |
| | | |
| | | #endregion |
| | | /// <summary> |
| | |
| | | var tempFunction = Newtonsoft.Json.JsonConvert.DeserializeObject<Function>(functionDataString); |
| | | if (tempFunction == null) |
| | | { |
| | | Common.FileUtlis.Files.DeleteFile(filePath); |
| | | FileUtlis.Files.DeleteFile(filePath); |
| | | return; |
| | | } |
| | | if (tempFunction.DeleteSign) |
| | | { |
| | | //todo 删除云端数据 20201203--App不能删除功能数据 |
| | | } |
| | | else |
| | | { |
| | | switch (tempFunction.spk) |
| | | { |
| | |
| | | List.sensorsArm.Add(ser); |
| | | deviceFunctionList.Add(ser); |
| | | break; |
| | | case SPK.ClothesHanger: |
| | | var ch = Newtonsoft.Json.JsonConvert.DeserializeObject<Function>(functionDataString); |
| | | List.clothesHangerList.Add(ch); |
| | | deviceFunctionList.Add(ch); |
| | | break; |
| | | } |
| | | } |
| | | } |
| | |
| | | List.lights = new List<Light>(); |
| | | List.curtains = new List<Curtain>(); |
| | | List.floorHeatings = new List<FloorHeating>(); |
| | | List.tVs = new List<TV>(); |
| | | List.switchSockets = new List<SwitchSocket>(); |
| | | List.fans = new List<Fan>(); |
| | | List.sensorsEnvironmentalScience = new List<Sensor>(); |
| | | #region 家电 |
| | | List.fans = new List<Fan>(); |
| | | List.switchSockets = new List<SwitchSocket>(); |
| | | List.tVs = new List<TV>(); |
| | | List.airCleaners = new List<AirCleaner>(); |
| | | List.weepRobots = new List<WeepRobot>(); |
| | | List.waterValveList = new List<Function>(); |
| | | List.clothesHangerList = new List<Function>(); |
| | | #endregion |
| | | |
| | | List.scenes = new List<Scene>(); |
| | | List.deviceFunctionList = null; |
| | | List.deviceFunctionList = new List<Function>(); |
| | | _FunctionList = null; |
| | | } |
| | | |
| | |
| | | List.tVs.Remove(List.tVs.Find((obj) => obj.deviceId == delTemp.deviceId)); |
| | | break; |
| | | case SPK.ElectricFan: |
| | | case SPK.ElectricTuyaFan: |
| | | List.fans.Remove(List.fans.Find((obj) => obj.deviceId == delTemp.deviceId)); |
| | | break; |
| | | case SPK.ElectricTuyaAirCleaner: |
| | | List.airCleaners.Remove(List.airCleaners.Find((obj) => obj.deviceId == delTemp.deviceId)); |
| | | break; |
| | | case SPK.ElectricTuyaWaterValve: |
| | | List.waterValveList.Remove(List.waterValveList.Find((obj) => obj.deviceId == delTemp.deviceId)); |
| | | break; |
| | | case SPK.ElectricTuyaWeepRobot: |
| | | List.weepRobots.Remove(List.weepRobots.Find((obj) => obj.deviceId == delTemp.deviceId)); |
| | | break; |
| | | case SPK.ClothesHanger: |
| | | List.clothesHangerList.Remove(List.clothesHangerList.Find((obj) => obj.deviceId == delTemp.deviceId)); |
| | | break; |
| | | case SPK.SensorSmoke: |
| | | case SPK.SensorWater: |
| | | case SPK.SensorDoorWindow: |
| | | case SPK.SensorPir: |
| | | List.sensorsArm.Remove(List.sensorsArm.Find((obj)=>obj.deviceId == delTemp.deviceId)); |
| | | break; |
| | | } |
| | | var removeTemp = deviceFunctionList.Find((obj) => obj.deviceId == delTemp.deviceId); |
| | |
| | | { |
| | | switch (function.Spk_Prefix) |
| | | { |
| | | case FunctionCategory.Light: |
| | | case FunctionCategory.Electric: |
| | | case FunctionCategory.Curtain: |
| | | case FunctionCategory.AC: |
| | | case FunctionCategory.FloorHeat: |
| | | DriverLayer.Control.Ins.SendReadCommand(function); |
| | | break; |
| | | case FunctionCategory.Music: |
| | | case FunctionCategory.DryContact: |
| | | continue; |
| | | } |
| | | DriverLayer.Control.Ins.SendReadCommand(function); |
| | | //switch (function.Spk_Prefix) |
| | | //{ |
| | | // case FunctionCategory.Light: |
| | | // case FunctionCategory.Electric: |
| | | // case FunctionCategory.Curtain: |
| | | // case FunctionCategory.AC: |
| | | // case FunctionCategory.FloorHeat: |
| | | // case FunctionCategory.Sensor: |
| | | // DriverLayer.Control.Ins.SendReadCommand(function); |
| | | // break; |
| | | //} |
| | | } |
| | | } |
| | | else |
| | |
| | | <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\WeatherCondition.cs" />
|
| | | <Compile Include="$(MSBuildThisFileDirectory)UI\1-test-\TestDialog.cs" />
|
| | | <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\AddFunction\ThirdPartyBrandListPage.cs" />
|
| | | <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\EmptyClass.cs" />
|
| | | <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\AddFunction\AddThirdPartyBrandListpage.cs" />
|
| | | <Compile Include="$(MSBuildThisFileDirectory)Entity\Integratedbrand\IntegratedBrand.cs" />
|
| | | <Compile Include="$(MSBuildThisFileDirectory)Entity\Function\AirCleaner.cs" />
|
| | |
| | | <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\ArmSensor\SensorWaterImmersionPage.cs" />
|
| | | <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\ArmSensor\SensorDoorWinwsPage.cs" />
|
| | | <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\ArmSensor\SensorSmokePage.cs" />
|
| | | <Compile Include="$(MSBuildThisFileDirectory)Entity\Function\DeviceFunction.cs" />
|
| | | <Compile Include="$(MSBuildThisFileDirectory)Entity\Enumerative\ClothsHangerEnum.cs" />
|
| | | <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PirDevice\PirMain.cs" />
|
| | | <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PirDevice\View\TopView.cs" />
|
| | | <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PirDevice\BrandList.cs" />
|
| | | <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PirDevice\View\BrandListView.cs" />
|
| | | <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PirDevice\DeviceSet.cs" />
|
| | | <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PirDevice\View\TipView.cs" />
|
| | | <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PirDevice\AddButton.cs" />
|
| | | <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PirDevice\View\SaveView.cs" />
|
| | | <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PirDevice\View\Buttons.cs" />
|
| | | <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PirDevice\AddControl.cs" />
|
| | | <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PirDevice\Pir.cs" />
|
| | | <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PirDevice\PirSend.cs" />
|
| | | <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PirDevice\AddControlComplete.cs" />
|
| | | <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PirDevice\View\PatchView.cs" />
|
| | | <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PirDevice\Method.cs" />
|
| | | <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PirDevice\View\FailView.cs" />
|
| | | <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PirDevice\View\ReplicationView.cs" />
|
| | | </ItemGroup>
|
| | | <ItemGroup>
|
| | | <Folder Include="$(MSBuildThisFileDirectory)UI\" />
|
| | |
| | | <Folder Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\AddFunction\" />
|
| | | <Folder Include="$(MSBuildThisFileDirectory)Entity\Integratedbrand\" />
|
| | | <Folder Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\ArmSensor\" />
|
| | | <Folder Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PirDevice\" />
|
| | | <Folder Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PirDevice\View\" />
|
| | | </ItemGroup>
|
| | | </Project>
|
| | |
| | | public const uint TipBgColor1 = 0xE6FFFFFF; |
| | | /// <summary> |
| | | /// 连接状态提示 |
| | | /// 远程状态 |
| | | /// 0xFF67D569 |
| | | /// </summary> |
| | | public const uint LinkTipRemote = 0xFF67D569; |
| | | public const uint LinkTipLocal = 0xFF67D569; |
| | | /// <summary> |
| | | /// 连接状态提示 |
| | | /// 连接失败 |
| | |
| | | public const uint viewTrans60lucence = 0x60000000; |
| | | public const uint viewTranslucence = 0x00000000; |
| | | public const uint textTipColor = 0XFF798394; |
| | | public const uint text1Color = 0XFF4E586A; |
| | | |
| | | #endregion |
| | | |
| | | #endregion |
| | |
| | | /// <summary> |
| | | /// 版本号 |
| | | /// </summary> |
| | | public static string VersionString = "1.1.0223"; |
| | | public static string VersionString = "1.1.0225"; |
| | | ///// <summary> |
| | | ///// 客户端类型 |
| | | ///// </summary> |
| | |
| | | doorwindowPage.ShowColltionButton = false; |
| | | doorwindowPage.AddForm(function, btnCollectionIcon, btnName, btnFromFloor); |
| | | break; |
| | | case SPK.ClothesHanger: |
| | | var clothesHangerpage = new ClothesHangerPage(); |
| | | clothesHangerpage.AddForm(function, btnCollectionIcon, btnName, btnFromFloor); |
| | | break; |
| | | } |
| | | }; |
| | | return eventHandler; |
| | |
| | | {
|
| | | foreach (var attr in updateData)
|
| | | {
|
| | | var localAttr = localDevice.status.Find((obj) => obj.key == attr.key);
|
| | | if (localAttr != null)
|
| | | var localAttr2 = localDevice.attributes.Find((obj) => obj.key == attr.key); |
| | | if (localAttr2 == null) |
| | | {
|
| | | //本身它就没有这个属性,则不处理 |
| | | continue; |
| | | } |
| | | //更改属性值 |
| | | localAttr2.curValue = attr.value; |
| | | |
| | | var localAttr = localDevice.status.Find((obj) => obj.key == attr.key); |
| | | if (localAttr == null) |
| | | { |
| | | //status是当前设备上报过的属性才会存在,也就是它的个数有可能和attributes不一致 |
| | | localAttr = new AttributesStatus() { key = attr.key, value = attr.value }; |
| | | localDevice.status.Add(localAttr); |
| | | } |
| | | //更改属性值
|
| | | localAttr.value = attr.value;
|
| | | }
|
| | | }
|
| | | //全部界面推送
|
| | | HdlFormLogic.Current.DeviceStatuPush(localDevice);
|
| | |
| | | //return; |
| | | if (b) |
| | | { |
| | | etAccount.Text = "13415629083";//tujie"18316120654";// "15622703419";// "18824864143";//"464027401@qq.com"; //"2791308028@qq.com";//13697499568 |
| | | etAccount.Text = "18316672920";//hzx;// "13415629083"//cf;//tujie"18316120654";// "15622703419";// "18824864143";//"464027401@qq.com"; //"2791308028@qq.com";//13697499568 |
| | | } |
| | | else |
| | | { |
| | |
| | | }; |
| | | } |
| | | |
| | | else if (function.spk == SPK.ClothesHanger) |
| | | { |
| | | btnIcon.UnSelectedImagePath = "FunctionIcon/Electrical/ClothesHanger/ClothesHangerBlueIcon.png"; |
| | | btnIcon.SelectedImagePath = "FunctionIcon/Electrical/Curtain/ClothesHangerBlueIcon.png"; |
| | | Button btnUp; |
| | | btnUp = new Button() |
| | | { |
| | | X = Application.GetRealWidth(84+3), |
| | | Y = Application.GetRealWidth(89), |
| | | Width = Application.GetRealWidth(38), |
| | | Height = Application.GetRealWidth(38), |
| | | UnSelectedImagePath = "FunctionIcon/Electrical/ClothesHanger/ClothesHangerUpIcon2.png", |
| | | SelectedImagePath = "FunctionIcon/Electrical/ClothesHanger/ClothesHangerUpIcon2On.png", |
| | | }; |
| | | view.AddChidren(btnUp); |
| | | |
| | | Button btnDown; |
| | | btnDown = new Button() |
| | | { |
| | | X = btnUp.Right + Application.GetRealWidth(3), |
| | | Y = Application.GetRealWidth(89), |
| | | Width = Application.GetRealWidth(38), |
| | | Height = Application.GetRealWidth(38), |
| | | UnSelectedImagePath = "FunctionIcon/Electrical/ClothesHanger/ClothesHangerDownIcon2.png", |
| | | SelectedImagePath = "FunctionIcon/Electrical/ClothesHanger/ClothesHangerDownIcon2On.png", |
| | | }; |
| | | view.AddChidren(btnDown); |
| | | |
| | | |
| | | LoadEvent_ControlClothesHanger(function, btnUp, btnDown); |
| | | |
| | | } |
| | | |
| | | else |
| | | { |
| | |
| | | } |
| | | else |
| | | { |
| | | if (Control.Ins.GatewayOnline_Cloud) |
| | | if (Control.Ins.GatewayOnline_Local) |
| | | { |
| | | bodyView.btnLinkStateTip.BackgroundColor = CSS.CSS_Color.MainColor; |
| | | bodyView.btnLinkStateTip.BackgroundColor = CSS.CSS_Color.LinkTipLocal; |
| | | } |
| | | else |
| | | { |
| | | bodyView.btnLinkStateTip.BackgroundColor = CSS.CSS_Color.LinkTipRemote; |
| | | bodyView.btnLinkStateTip.BackgroundColor = CSS.CSS_Color.MainColor; |
| | | } |
| | | } |
| | | } |
| | |
| | | bodyView.CheckLinkStatus(); |
| | | } |
| | | }); |
| | | |
| | | //if (bodyView != null) |
| | | //{ |
| | | // Application.RunOnMainThread(() => |
| | | // { |
| | | // if (Control.Ins.GatewayOnline) |
| | | // { |
| | | // if (Control.Ins.IsRemote) |
| | | // { |
| | | // bodyView.btnLinkStateTip.BackgroundColor = CSS.CSS_Color.MainColor; |
| | | // } |
| | | // else |
| | | // { |
| | | // bodyView.btnLinkStateTip.BackgroundColor = CSS.CSS_Color.LinkTipRemote; |
| | | // } |
| | | // } |
| | | // else |
| | | // { |
| | | // bodyView.btnLinkStateTip.BackgroundColor = CSS.CSS_Color.LinkTipFail; |
| | | // } |
| | | // }); |
| | | //} |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | btnClose.IsSelected = false; |
| | | curtain.trait_on_off.curValue = "off"; |
| | | curtain.percent = 0; |
| | | System.Collections.Generic.Dictionary<string, string> d = new System.Collections.Generic.Dictionary<string, string>(); |
| | | Dictionary<string, string> d = new Dictionary<string, string>(); |
| | | d.Add("on_off", curtain.trait_on_off.curValue.ToString()); |
| | | Control.Ins.SendWriteCommand(curtain, d); |
| | | }; |
| | |
| | | btnOpen.IsSelected = false; |
| | | curtain.trait_on_off.curValue = "on"; |
| | | curtain.percent = 100; |
| | | System.Collections.Generic.Dictionary<string, string> d = new System.Collections.Generic.Dictionary<string, string>(); |
| | | Dictionary<string, string> d = new Dictionary<string, string>(); |
| | | d.Add("on_off", curtain.trait_on_off.curValue.ToString()); |
| | | Control.Ins.SendWriteCommand(curtain, d); |
| | | }; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 加载晾衣架控制事件 |
| | | /// </summary> |
| | | void LoadEvent_ControlClothesHanger(Function function,Button btnUp,Button btnDown) |
| | | { |
| | | btnUp.MouseDownEventHandler = (sender, e) => |
| | | { |
| | | btnUp.IsSelected = true; |
| | | }; |
| | | btnUp.MouseUpEventHandler = (sender, e) => |
| | | { |
| | | btnUp.IsSelected = false; |
| | | function.SetAttrState(FunctionAttributeKey.Position, "up"); |
| | | Dictionary<string, string> d = new Dictionary<string, string>(); |
| | | d.Add(FunctionAttributeKey.Position, "up"); |
| | | Control.Ins.SendWriteCommand(function, d); |
| | | }; |
| | | |
| | | btnDown.MouseDownEventHandler = (sender, e) => |
| | | { |
| | | btnDown.IsSelected = true; |
| | | }; |
| | | btnDown.MouseUpEventHandler = (sender, e) => |
| | | { |
| | | btnDown.IsSelected = false; |
| | | function.SetAttrState(FunctionAttributeKey.Position, "down"); |
| | | Dictionary<string, string> d = new Dictionary<string, string>(); |
| | | d.Add(FunctionAttributeKey.Position, "down"); |
| | | Control.Ins.SendWriteCommand(function, d); |
| | | }; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 加载跳转信息中心页面 |
| | | /// </summary> |
| | | void LoadEvent_GotoMessageCenterPage() |
| | |
| | | case ShowFunction.Panel: |
| | | break; |
| | | case ShowFunction.SecurityMonitoring: |
| | | functionCount = 1; |
| | | break; |
| | | case ShowFunction.Sensor: |
| | | functionCount = FunctionList.List.sensorsArm.Count; |
| | | //functionOnCount = FunctionList.List.aCs.FindAll((obj) => obj.trait_on_off.curValue.ToString() == "on").Count; |
| | | break; |
| | | case ShowFunction.VideoIntercom: |
| | | functionCount = 1; |
| | | break; |
| | | |
| | | } |
| | |
| | | functionView.AddChidren(btnName); |
| | | |
| | | if (item != ShowFunction.Environmental && item != ShowFunction.Sensor && item != ShowFunction.VideoIntercom |
| | | && item != ShowFunction.SecurityMonitoring |
| | | && functionCount != 0) |
| | | { |
| | | Button btnFunctionCount = new Button() |
| | |
| | | break; |
| | | case ShowFunction.SecurityMonitoring: |
| | | btnName.TextID = StringId.SecurityMonitoring; |
| | | btnFunctionViewBg.MouseUpEventHandler = (sender, e) => |
| | | { |
| | | HDLCommon.Current.Go2EZvizMonitor(bodyView); |
| | | }; |
| | | break; |
| | | case ShowFunction.Sensor: |
| | | btnName.TextID = StringId.Sensor; |
| | |
| | | break; |
| | | case ShowFunction.VideoIntercom: |
| | | btnName.TextID = StringId.VideoIntercom; |
| | | btnFunctionViewBg.MouseUpEventHandler = (sender, e) => |
| | | { |
| | | #if __IOS__ |
| | | EZSDK.IOS.EZSDK.Go2EZvizMonitor(); |
| | | #else //安卓摄像头 |
| | | ((BaseActivity)Shared.Application.Activity).SetCamera(b => |
| | | { |
| | | if (b) |
| | | { |
| | | Android.Content.Intent intent = new Android.Content.Intent(); |
| | | var bundle = new Android.OS.Bundle(); |
| | | //传递name参数为tinyphp |
| | | //bundle.PutString("Token", ezChileAccessToken.accessToken); |
| | | bundle.PutString("Token", "ra.aamy8d1gabcnrz0jbbj4gjkpcpy55g0s-8z529x82uz-0jzly2o-g30muwagq"); |
| | | bundle.PutString("HdlToken", UserInfo.Current.LoginTokenString); |
| | | intent.PutExtras(bundle); |
| | | intent.SetComponent(new Android.Content.ComponentName(Shared.Application.Activity, "com.videogo.MainActivity")); |
| | | Shared.Application.Activity.StartActivity(intent); |
| | | } |
| | | }); |
| | | |
| | | #endif |
| | | }; |
| | | break; |
| | | |
| | | } |
| | | //界面跳转--音乐跳转自己的界面--环境跳转自己的界面 |
| | | if (item != ShowFunction.Music && item != ShowFunction.Environmental && item != ShowFunction.VideoIntercom) |
| | | if (item != ShowFunction.Music && item != ShowFunction.Environmental && item != ShowFunction.SecurityMonitoring) |
| | | { |
| | | btnFunctionViewBg.MouseUpEventHandler = (sender, e) => |
| | | { |
| | |
| | | case SPK.SensorDoorWindow: |
| | | btnIcon.UnSelectedImagePath = "FunctionIcon/ArmSensor/ArmSensorDoorIcon.png"; |
| | | break; |
| | | default: |
| | | |
| | | break; |
| | | } |
| | | var powerLowTipAttr = function.status.Find((obj) => obj.key == FunctionAttributeKey.BatteryState); |
| | | if (powerLowTipAttr != null) |
| | | { |
| | | if (powerLowTipAttr.value.ToLower() == "low") |
| | | { |
| | | Button btnTipPowerLow = new Button() |
| | | { |
| | | X = Application.GetRealWidth(307), |
| | | Y = Application.GetRealHeight(25), |
| | | Width = Application.GetRealWidth(24), |
| | | Height = Application.GetRealWidth(24), |
| | | UnSelectedImagePath = "FunctionIcon/ArmSensor/PowerLowIcon.png", |
| | | SelectedImagePath = "FunctionIcon/ArmSensor/PowerLowIcon.png", |
| | | }; |
| | | this.AddChidren(btnTipPowerLow); |
| | | } |
| | | } |
| | | |
| | | break; |
| | | case FunctionCategory.Music: |
| | | btnIcon.UnSelectedImagePath = "FunctionIcon/Music/MusicThinIcon.png"; |
| | |
| | | } |
| | | else |
| | | { |
| | | if (function.spk == SPK.ClothesHanger)//晾衣架 |
| | | { |
| | | btnIcon.UnSelectedImagePath = "FunctionIcon/Electrical/ClothesHanger/ClothesHangerGrayIcon.png"; |
| | | ClothesHangerFragment(); |
| | | } |
| | | else |
| | | { |
| | | #region 加载开关按钮 |
| | | |
| | | /// <summary> |
| | | /// 开关按钮 |
| | | /// </summary> |
| | |
| | | break; |
| | | } |
| | | #endregion |
| | | } |
| | | } |
| | | |
| | | LoadEvent_DivSkipEvent(); |
| | |
| | | LoadEvent_ControlCurtain(btnCurtainStop, btnCurtainOpen, btnCurtainClose, function as Curtain); |
| | | #endregion |
| | | } |
| | | /// <summary> |
| | | /// 加载晾衣架功能控制卡片 |
| | | /// </summary> |
| | | void ClothesHangerFragment() |
| | | { |
| | | #region ClothesHanger |
| | | var btnClothesHangerUp = new Button() |
| | | { |
| | | X = Application.GetRealWidth(233), |
| | | Y = Application.GetRealHeight(58), |
| | | Width = Application.GetMinRealAverage(32), |
| | | Height = Application.GetMinRealAverage(32), |
| | | UnSelectedImagePath = "FunctionIcon/Electrical/ClothesHanger/ClothesHangerUpIcon1.png", |
| | | SelectedImagePath = "FunctionIcon/Electrical/ClothesHanger/ClothesHangerUpIcon1On.png", |
| | | }; |
| | | bodyDiv.AddChidren(btnClothesHangerUp); |
| | | |
| | | var btnClothesHangerDown = new Button() |
| | | { |
| | | X = Application.GetRealWidth(303), |
| | | Y = Application.GetRealHeight(58), |
| | | Width = Application.GetMinRealAverage(32), |
| | | Height = Application.GetMinRealAverage(32), |
| | | UnSelectedImagePath = "FunctionIcon/Electrical/ClothesHanger/ClothesHangerDownIcon1.png", |
| | | SelectedImagePath = "FunctionIcon/Electrical/ClothesHanger/ClothesHangerDownIcon1On.png", |
| | | }; |
| | | bodyDiv.AddChidren(btnClothesHangerDown); |
| | | LoadEvent_ControlClothesHanger(function, btnClothesHangerDown, btnClothesHangerUp); |
| | | #endregion |
| | | |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 加载音乐功能控制卡片 |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using HDL_ON.DriverLayer; |
| | | using HDL_ON.Entity; |
| | | using HDL_ON.UI.Music; |
| | |
| | | Control.Ins.SendWriteCommand(curtain, d); |
| | | }; |
| | | |
| | | //btnStop.MouseDownEventHandler = (sender, e) => |
| | | //{ |
| | | // btnStop.IsSelected = true; |
| | | // btnClose.IsSelected = false; |
| | | // btnOpen.IsSelected = false; |
| | | //}; |
| | | btnStop.MouseUpEventHandler = (sender, e) => |
| | | { |
| | | btnStop.IsSelected = true; |
| | |
| | | } |
| | | #endregion |
| | | |
| | | |
| | | /// <summary> |
| | | /// 加载晾衣架控制事件 |
| | | /// </summary> |
| | | void LoadEvent_ControlClothesHanger(Function function, Button btnUp, Button btnDown) |
| | | { |
| | | btnUp.MouseDownEventHandler = (sender, e) => |
| | | { |
| | | btnUp.IsSelected = true; |
| | | }; |
| | | btnUp.MouseUpEventHandler = (sender, e) => |
| | | { |
| | | btnUp.IsSelected = false; |
| | | function.SetAttrState(FunctionAttributeKey.Position, "up"); |
| | | Dictionary<string, string> d = new Dictionary<string, string>(); |
| | | d.Add(FunctionAttributeKey.Position, "up"); |
| | | Control.Ins.SendWriteCommand(function, d); |
| | | }; |
| | | |
| | | btnDown.MouseDownEventHandler = (sender, e) => |
| | | { |
| | | btnDown.IsSelected = true; |
| | | }; |
| | | btnDown.MouseUpEventHandler = (sender, e) => |
| | | { |
| | | btnDown.IsSelected = false; |
| | | function.SetAttrState(FunctionAttributeKey.Position, "down"); |
| | | Dictionary<string, string> d = new Dictionary<string, string>(); |
| | | d.Add(FunctionAttributeKey.Position, "down"); |
| | | Control.Ins.SendWriteCommand(function, d); |
| | | }; |
| | | } |
| | | |
| | | |
| | | #region 空调事件 |
| | | #endregion |
| | | |
| | |
| | | value = "off"; |
| | | } |
| | | break; |
| | | case StringId.youren: |
| | | case StringId.kaiqi: |
| | | { |
| | | case StringId.youren: { |
| | | value = "true"; |
| | | } |
| | | break; |
| | | case StringId.wuren: |
| | | case StringId.wuren: { |
| | | value = "false"; |
| | | } |
| | | break; |
| | | case StringId.kaiqi: |
| | | { |
| | | value = "open"; |
| | | } |
| | | break; |
| | | case StringId.bihe: |
| | | { |
| | | value = "false"; |
| | | value = "close"; |
| | | } |
| | | break; |
| | | case StringId.zaixian: { |
| | |
| | | { |
| | | EventHandler<MouseEventArgs> eventHandler = (sender, e) => |
| | | { |
| | | var page = new ThirdPartyBrandListPage(); |
| | | // var page = new ThirdPartyBrandListPage(); |
| | | // MainPage.BasePageView.AddChidren(page); |
| | | // page.LoadPage(); |
| | | var page = new UI2.PersonalCenter.PirDevice.PirMain(); |
| | | MainPage.BasePageView.AddChidren(page); |
| | | page.LoadPage(); |
| | | page.Show(); |
| | | MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; |
| | | }; |
| | | btnResidenceAddFunctionIcon.MouseUpEventHandler = eventHandler; |
New file |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using HDL_ON.UI.UI2.Intelligence.Automation.LogicView; |
| | | using Shared; |
| | | namespace HDL_ON.UI.UI2.PersonalCenter.PirDevice |
| | | { |
| | | public class AddButton : FrameLayout |
| | | { |
| | | public AddButton() |
| | | { |
| | | Tag = "Pir"; |
| | | } |
| | | public void Show(Control control) |
| | | { |
| | | #region 界面布局 |
| | | this.BackgroundColor = CSS.CSS_Color.viewMiddle; |
| | | PirDevice.View.TopView topView = new View.TopView(); |
| | | topView.topNameBtn.TextID = StringId.tianjiayaokongqi; |
| | | this.AddChidren(topView.FLayoutView()); |
| | | topView.clickBackBtn.MouseUpEventHandler += (sender, e) => { this.RemoveFromParent(); }; |
| | | |
| | | FrameLayout editfLayout = new FrameLayout |
| | | { |
| | | Y = topView.frameLayout.Bottom, |
| | | BackgroundColor = CSS.CSS_Color.textWhiteColor, |
| | | Height = Application.GetRealHeight(152), |
| | | Width = Application.GetRealWidth(375), |
| | | }; |
| | | this.AddChidren(editfLayout); |
| | | //线 |
| | | Button lineBtn = new Button |
| | | { |
| | | Y = Application.GetRealHeight(43), |
| | | X = Application.GetRealWidth(16), |
| | | Width = Application.GetRealWidth(375 - 16 * 2), |
| | | Height = 1, |
| | | BackgroundColor = CSS.CSS_Color.viewLine, |
| | | }; |
| | | editfLayout.AddChidren(lineBtn); |
| | | //请输入按键名称 |
| | | EditText editText = new EditText() |
| | | { |
| | | X = Application.GetRealWidth(16), |
| | | Width = Application.GetRealWidth(375 - 16 * 2), |
| | | Height = Application.GetRealHeight(44), |
| | | PlaceholderText = Language.StringByID(StringId.anjianmingcheng), |
| | | PlaceholderTextColor = CSS.CSS_Color.textCancelColor, |
| | | TextColor = CSS.CSS_Color.textColor, |
| | | TextSize = TextSize.text14, |
| | | TextAlignment = TextAlignment.CenterLeft, |
| | | }; |
| | | editfLayout.AddChidren(editText); |
| | | //下一步 |
| | | Button saveBtn = new Button |
| | | { |
| | | Width = Application.GetRealWidth(220), |
| | | Height = Application.GetRealHeight(44), |
| | | Y = Application.GetRealHeight(92), |
| | | X = Application.GetRealWidth(78), |
| | | TextID = StringId.xiayibu, |
| | | TextSize = TextSize.text16, |
| | | TextColor = CSS.CSS_Color.textWhiteColor, |
| | | TextAlignment = TextAlignment.Center, |
| | | BackgroundColor = CSS.CSS_Color.btnSaveBackgroundColor, |
| | | Radius = (uint)Application.GetRealHeight(22), |
| | | }; |
| | | editfLayout.AddChidren(saveBtn); |
| | | |
| | | FrameLayout fLayout = new FrameLayout |
| | | { |
| | | Y = editfLayout.Bottom + Application.GetRealHeight(8), |
| | | Height = Application.GetRealHeight(667 - 64 - 152 - 8), |
| | | Width = Application.GetRealWidth(375), |
| | | BackgroundColor = CSS.CSS_Color.textWhiteColor, |
| | | }; |
| | | this.AddChidren(fLayout); |
| | | //推荐按键 |
| | | Button titleBtn = new Button |
| | | { |
| | | Y = Application.GetRealHeight(12), |
| | | X = Application.GetRealWidth(16), |
| | | Width = Application.GetRealWidth(220), |
| | | Height = Application.GetRealHeight(20), |
| | | TextID = StringId.tuijiananjian, |
| | | TextSize = TextSize.text14, |
| | | TextColor = CSS.CSS_Color.text1Color, |
| | | TextAlignment = TextAlignment.CenterLeft, |
| | | }; |
| | | fLayout.AddChidren(titleBtn); |
| | | //动态加载Button按钮父控件 |
| | | FrameLayout buttonFLayout = new FrameLayout |
| | | { |
| | | Y = Application.GetRealHeight(32), |
| | | Height = Application.GetRealHeight(667 - 64 - 152 - 8 - 12 - 20), |
| | | Width = Application.GetRealWidth(375), |
| | | }; |
| | | fLayout.AddChidren(buttonFLayout); |
| | | #endregion |
| | | View.Buttons buttons = new View.Buttons(); |
| | | var buttonNameList = buttons.GetList("默认按钮"); |
| | | buttons.AddButton(buttonFLayout, buttonNameList, (s) => |
| | | { |
| | | editText.Text = s; |
| | | #if __Android__ |
| | | editText.SetSelectionEnd(); |
| | | #endif |
| | | }); |
| | | ///下一步的点击事件 |
| | | saveBtn.MouseUpEventHandler += (sender, e) => |
| | | { |
| | | var texts = editText.Text.Trim(); |
| | | if (string.IsNullOrEmpty(editText.Text)) |
| | | { |
| | | //名称不能为空 |
| | | return; |
| | | } |
| | | var butName = Pir.BuottonList.Find((c) => c.value == texts); |
| | | if (butName != null) |
| | | { |
| | | //名称已经存在 |
| | | return; |
| | | } |
| | | //new引导界面 |
| | | View.ReplicationView replication = new View.ReplicationView(); |
| | | replication.Show(); |
| | | |
| | | //添加数据对象 |
| | | ButtonObj buttonObj = new ButtonObj(); |
| | | buttonObj.Key = "key" + Pir.BuottonList.Count.ToString(); |
| | | buttonObj.value = texts; |
| | | |
| | | PirSend.CodeStudy(buttonObj, (responsePackNew) => |
| | | { |
| | | ///这里:监听MTTP推送下来主题,才知道是否添加成功 |
| | | /// |
| | | //休眠是为显示引导界面 |
| | | System.Threading.Thread.Sleep(5000); |
| | | //移除添加按钮引导界面 |
| | | replication.RemView(); |
| | | //if (responsePackNew != null && responsePackNew.Code == "0" && responsePackNew.Data.ToString() != "") |
| | | //{ |
| | | var buttonName = Pir.BuottonList.Find((c) => c.value == buttonObj.value); |
| | | if (buttonName == null) |
| | | { |
| | | //添加数据 |
| | | Pir.BuottonList.Add(buttonObj); |
| | | } |
| | | //移除添加按钮界面 |
| | | this.RemoveFromParent(); |
| | | |
| | | for (int i = MainPage.BasePageView.ChildrenCount - 1; 0 <= i; i--) |
| | | { |
| | | var view = MainPage.BasePageView.GetChildren(i); |
| | | if (view.GetType() == typeof(AddControl)) |
| | | { |
| | | view.RemoveFromParent(); |
| | | } |
| | | |
| | | } |
| | | |
| | | //加载数据界面 |
| | | AddControl addControl = new AddControl(); |
| | | MainPage.BasePageView.AddChidren(addControl); |
| | | addControl.Show(control); |
| | | MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; |
| | | //} |
| | | //else |
| | | //{ |
| | | // PirSend.Error(responsePackNew); |
| | | //} |
| | | |
| | | }); |
| | | |
| | | |
| | | }; |
| | | |
| | | } |
| | | } |
| | | } |
New file |
| | |
| | | using System; |
| | | using HDL_ON.UI.UI2.Intelligence.Automation.LogicView; |
| | | using Shared; |
| | | using System.Collections.Generic; |
| | | using System.Text; |
| | | namespace HDL_ON.UI.UI2.PersonalCenter.PirDevice |
| | | { |
| | | public class AddControl : FrameLayout |
| | | { |
| | | public AddControl() |
| | | { |
| | | Tag = "Pir"; |
| | | } |
| | | public void Show(Control control) |
| | | { |
| | | |
| | | #region 界面布局 |
| | | |
| | | this.BackgroundColor = CSS.CSS_Color.viewMiddle; |
| | | PirDevice.View.TopView topView = new View.TopView(); |
| | | topView.topNameBtn.TextID = StringId.zhinengyaokongqi; |
| | | topView.topIconBtn.Visible = true; |
| | | topView.topIconBtn.UnSelectedImagePath = "PirIcon/del.png"; |
| | | this.AddChidren(topView.FLayoutView()); |
| | | topView.clickBackBtn.MouseUpEventHandler += (sender, e) => |
| | | { |
| | | |
| | | this.RemoveFromParent(); |
| | | |
| | | }; |
| | | |
| | | #region 添加按钮 |
| | | FrameLayout addLayout = new FrameLayout |
| | | { |
| | | Y = Application.GetRealHeight(64), |
| | | Height = Application.GetRealHeight(84), |
| | | Width = Application.GetRealWidth(TextSize.view375), |
| | | }; |
| | | this.AddChidren(addLayout); |
| | | |
| | | Button addBtn = new Button |
| | | { |
| | | Width = Application.GetRealWidth(344), |
| | | Height = Application.GetRealHeight(44), |
| | | Y = Application.GetRealHeight(24), |
| | | X = Application.GetRealWidth(16), |
| | | TextID = StringId.tianjiaanniu, |
| | | TextSize = TextSize.text16, |
| | | TextColor = CSS.CSS_Color.btnSaveBackgroundColor, |
| | | BorderColor = CSS.CSS_Color.btnSaveBackgroundColor, |
| | | BorderWidth = 1, |
| | | Radius = (uint)Application.GetRealHeight(22), |
| | | }; |
| | | addLayout.AddChidren(addBtn); |
| | | #endregion |
| | | FrameLayout frameLayout = new FrameLayout |
| | | { |
| | | Y = Application.GetRealHeight(64 + 84), |
| | | Height = Application.GetRealHeight(667 - 64 - 84), |
| | | Width = Application.GetRealWidth(TextSize.view375), |
| | | }; |
| | | this.AddChidren(frameLayout); |
| | | |
| | | #region 保存 |
| | | FrameLayout saveLayout = new FrameLayout |
| | | { |
| | | Y = Application.GetRealHeight(667 - 104), |
| | | Height = Application.GetRealHeight(104), |
| | | Width = Application.GetRealWidth(TextSize.view375), |
| | | BackgroundColor = CSS.CSS_Color.viewLine, |
| | | }; |
| | | this.AddChidren(saveLayout); |
| | | saveLayout.SetCornerWithSameRadius(Application.GetRealHeight(24), HDLUtils.RectCornerTopLeft | HDLUtils.RectCornerTopRight); |
| | | |
| | | Button paixuBtn = new Button |
| | | { |
| | | Width = Application.GetRealWidth(375 - 16 * 2), |
| | | Height = Application.GetRealHeight(20), |
| | | Y = Application.GetRealHeight(12), |
| | | X = Application.GetRealWidth(16), |
| | | TextID = StringId.paixu, |
| | | TextSize = TextSize.text14, |
| | | TextColor = CSS.CSS_Color.textTipColor, |
| | | }; |
| | | saveLayout.AddChidren(paixuBtn); |
| | | |
| | | Button saveBtn = new Button |
| | | { |
| | | Width = Application.GetRealWidth(220), |
| | | Height = Application.GetRealHeight(44), |
| | | Y = paixuBtn.Bottom + Application.GetRealHeight(12), |
| | | X = Application.GetRealWidth(78), |
| | | TextID = StringId.save, |
| | | TextSize = TextSize.text16, |
| | | TextColor = CSS.CSS_Color.textWhiteColor, |
| | | TextAlignment = TextAlignment.Center, |
| | | BackgroundColor = CSS.CSS_Color.btnSaveBackgroundColor, |
| | | Radius = (uint)Application.GetRealHeight(22), |
| | | |
| | | }; |
| | | saveLayout.AddChidren(saveBtn); |
| | | #endregion |
| | | |
| | | VerticalScrolViewLayout vv = new VerticalScrolViewLayout(); |
| | | frameLayout.AddChidren(vv); |
| | | RefreshView(vv, false); |
| | | #endregion |
| | | |
| | | #region 界面点击事件 |
| | | //删除点击事件 |
| | | topView.clickSetBtn.MouseUpEventHandler += (sender, e) => |
| | | { |
| | | topView.clickSetBtn.IsSelected = !topView.clickSetBtn.IsSelected; |
| | | if (topView.clickSetBtn.IsSelected) |
| | | { |
| | | topView.topIconBtn.UnSelectedImagePath = ""; |
| | | topView.topIconBtn.Text = Language.StringByID(StringId.wancheng); |
| | | topView.topIconBtn.TextSize = TextSize.text14; |
| | | topView.topIconBtn.TextColor = CSS.CSS_Color.textColor; |
| | | RefreshView(vv, true); |
| | | } |
| | | else |
| | | { |
| | | topView.topIconBtn.UnSelectedImagePath = "PirIcon/del.png"; |
| | | topView.topIconBtn.Text = ""; |
| | | RefreshView(vv, false); |
| | | } |
| | | |
| | | |
| | | |
| | | }; |
| | | //添加按钮点击事件 |
| | | addBtn.MouseUpEventHandler += (sender, e) => |
| | | { |
| | | AddButton addButton = new AddButton(); |
| | | MainPage.BasePageView.AddChidren(addButton); |
| | | addButton.Show(control); |
| | | MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; |
| | | }; |
| | | //保存点击事件 |
| | | saveBtn.MouseUpEventHandler += (sender, e) => |
| | | { |
| | | //移除当前界面 |
| | | this.RemoveFromParent(); |
| | | //可能之前已经存在该界面 |
| | | for (int i = MainPage.BasePageView.ChildrenCount - 1; 0 <= i; i--) |
| | | { |
| | | var view = MainPage.BasePageView.GetChildren(i); |
| | | if (view.GetType() == typeof(AddControlComplete)) |
| | | { |
| | | view.RemoveFromParent(); |
| | | } |
| | | } |
| | | //MainPage.BasePageView.RemoveViewByTag("Pir"); |
| | | AddControlComplete addControlComplete = new AddControlComplete(); |
| | | MainPage.BasePageView.AddChidren(addControlComplete); |
| | | addControlComplete.Show(control); |
| | | MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; |
| | | }; |
| | | #endregion |
| | | } |
| | | /// <summary> |
| | | /// 加载按钮控件View的方法 |
| | | /// </summary> |
| | | /// <param name="vv">上下滑动控件</param> |
| | | /// <param name="if_bool">表示是否显示删除图标</param> |
| | | void RefreshView(VerticalScrolViewLayout vv, bool if_bool) |
| | | { |
| | | vv.RemoveAll(); |
| | | //定义一个变量记录行数 |
| | | int sum = 0; |
| | | if (Pir.BuottonList.Count % 3 == 0) |
| | | { |
| | | sum = Pir.BuottonList.Count / 3; |
| | | } |
| | | else |
| | | { |
| | | sum = Pir.BuottonList.Count / 3 + 1; |
| | | } |
| | | //计算加载出来的数据需要的高度 |
| | | int h = 16 + sum * (16 + 44) + 104 + 76; |
| | | int line = 0; |
| | | //按钮的父控件 |
| | | var FLayout = new FrameLayout |
| | | { |
| | | Height = Application.GetRealWidth(h), |
| | | }; |
| | | vv.AddChidren(FLayout); |
| | | for (int i = 1, j = 0; i <= Pir.BuottonList.Count; i++, j++) |
| | | { |
| | | var nameObj = Pir.BuottonList[i - 1]; |
| | | //按钮 |
| | | var buttonNameBtn = new Button |
| | | { |
| | | |
| | | Y = Application.GetRealHeight(16 + line * (16 + 44)), |
| | | X = Application.GetRealWidth(16 + (16 + 104) * j), |
| | | Width = Application.GetRealWidth(104), |
| | | Height = Application.GetRealHeight(44), |
| | | Text = nameObj.value, |
| | | TextSize = TextSize.text16, |
| | | TextColor = CSS.CSS_Color.textColor, |
| | | TextAlignment = TextAlignment.Center, |
| | | Radius = (uint)Application.GetRealHeight(18), |
| | | BorderWidth = 1, |
| | | BorderColor = CSS.CSS_Color.textCancelColor, |
| | | }; |
| | | FLayout.AddChidren(buttonNameBtn); |
| | | //删除图标 |
| | | var delIconBtn = new Button |
| | | { |
| | | UnSelectedImagePath = "PirIcon/delbuton.png", |
| | | Y = Application.GetRealHeight(12 + line * (16 + 44)), |
| | | X = Application.GetRealWidth((16 + 92) + (104 + 16) * j), |
| | | Width = Application.GetRealWidth(16), |
| | | Height = Application.GetRealWidth(16), |
| | | Tag = nameObj, |
| | | }; |
| | | if (if_bool) |
| | | { |
| | | FLayout.AddChidren(delIconBtn); |
| | | } |
| | | //删除图标的点击事件 |
| | | delIconBtn.MouseUpEventHandler += (sender, e) => |
| | | { |
| | | var obj = delIconBtn.Tag as ButtonObj; |
| | | //加载log |
| | | Loading loading = new Loading(); |
| | | this.AddChidren(loading); |
| | | HDL_ON.DAL.Server.ResponsePackNew responsePackNew = null; |
| | | loading.Start(); |
| | | new System.Threading.Thread(() => |
| | | { |
| | | try |
| | | { |
| | | //发送按键删除; |
| | | responsePackNew = PirSend.CodeRemove(obj); |
| | | } |
| | | catch { } |
| | | finally |
| | | { |
| | | Application.RunOnMainThread(() => |
| | | { |
| | | loading.Hide(); |
| | | if (responsePackNew != null && responsePackNew.Code == "0" && responsePackNew.Data.ToString() != "") |
| | | { |
| | | ///这里:监听MTTP推送下来主题,才知道是否添加成功 |
| | | var buttonObj = Pir.BuottonList.Find((c) => c.value == obj.value); |
| | | if (buttonObj != null) |
| | | { |
| | | Pir.BuottonList.Remove(buttonObj); |
| | | } |
| | | RefreshView(vv, true); |
| | | } |
| | | else { |
| | | Method method = new Method(); |
| | | method.ErrorShow(responsePackNew); |
| | | } |
| | | |
| | | }); |
| | | } |
| | | |
| | | }) |
| | | { IsBackground = true }.Start(); |
| | | |
| | | |
| | | }; |
| | | if (i % 3 == 0) |
| | | { |
| | | //满一行重置j=0值; |
| | | j = -1; |
| | | line += 1; |
| | | } |
| | | |
| | | } |
| | | |
| | | } |
| | | } |
| | | } |
New file |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using HDL_ON.UI.UI2.Intelligence.Automation.LogicView; |
| | | using Shared; |
| | | namespace HDL_ON.UI.UI2.PersonalCenter.PirDevice |
| | | { |
| | | public class AddControlComplete:FrameLayout |
| | | { |
| | | public AddControlComplete() |
| | | { |
| | | Tag = "Pir"; |
| | | } |
| | | public void Show(Control control) { |
| | | #region 界面布局 |
| | | this.BackgroundColor = CSS.CSS_Color.viewMiddle; |
| | | PirDevice.View.TopView topView = new View.TopView(); |
| | | topView.topNameBtn.TextID = StringId.tianjiayaokongqi; |
| | | this.AddChidren(topView.FLayoutView()); |
| | | topView.clickBackBtn.MouseUpEventHandler += (sender, e) => { this.RemoveFromParent(); }; |
| | | |
| | | FrameLayout fLayout = new FrameLayout |
| | | { |
| | | Y =Application.GetRealHeight(64), |
| | | BackgroundColor = CSS.CSS_Color.textWhiteColor, |
| | | Height = Application.GetRealHeight(224), |
| | | Width = Application.GetRealWidth(375), |
| | | }; |
| | | this.AddChidren(fLayout); |
| | | // |
| | | Button iconBtn = new Button |
| | | { |
| | | Y = Application.GetRealHeight(28), |
| | | X = Application.GetRealWidth(137), |
| | | Width = Application.GetRealWidth(102), |
| | | Height = Application.GetRealWidth(102), |
| | | UnSelectedImagePath = "PirIcon/succeed.png", |
| | | }; |
| | | fLayout.AddChidren(iconBtn); |
| | | |
| | | //添加成功 |
| | | Button text1Btn = new Button |
| | | { |
| | | Width = Application.GetRealWidth(375-32), |
| | | Height = Application.GetRealHeight(22), |
| | | Y = Application.GetRealHeight(158), |
| | | X = Application.GetRealWidth(16), |
| | | TextID = StringId.tianjiachenggong, |
| | | TextSize = TextSize.text16, |
| | | TextColor = CSS.CSS_Color.btnSaveBackgroundColor, |
| | | TextAlignment = TextAlignment.Center, |
| | | }; |
| | | fLayout.AddChidren(text1Btn); |
| | | //可到分类-功能-电器操作使用 |
| | | Button text2Btn = new Button |
| | | { |
| | | Width = Application.GetRealWidth(375 - 32), |
| | | Height = Application.GetRealHeight(22), |
| | | Y = Application.GetRealHeight(188), |
| | | X = Application.GetRealWidth(16), |
| | | TextID = StringId.kedaofenlei, |
| | | TextSize = TextSize.text14, |
| | | TextColor = CSS.CSS_Color.textTipColor, |
| | | TextAlignment = TextAlignment.Center, |
| | | }; |
| | | fLayout.AddChidren(text2Btn); |
| | | //所属分类 |
| | | View.PatchView fenlei = new View.PatchView(); |
| | | fenlei.frameLayout.Y = fLayout.Bottom+ Application.GetRealHeight(8); |
| | | this.AddChidren(fenlei.FLayoutView(false)); |
| | | fenlei.btnText1.TextID = StringId.suoshufenlei; |
| | | fenlei.btnText2.TextID = StringId.dianqi; |
| | | //遥控器名称 |
| | | View.PatchView namePatchView = new View.PatchView(); |
| | | namePatchView.frameLayout.Y = fenlei.frameLayout.Bottom; |
| | | this.AddChidren(namePatchView.FLayoutView()); |
| | | namePatchView.btnText1.TextID = StringId.yaokongqimingcheng; |
| | | namePatchView.btnText2.Text = control.name; |
| | | //所属区域 |
| | | View.PatchView quyuPatchView = new View.PatchView(); |
| | | quyuPatchView.frameLayout.Y = namePatchView.frameLayout.Bottom; |
| | | this.AddChidren(quyuPatchView.FLayoutView()); |
| | | quyuPatchView.btnText1.TextID = StringId.suoshuquyu; |
| | | quyuPatchView.btnText2.TextID = StringId.dianqi; |
| | | |
| | | //继续添加 |
| | | Button addBtn = new Button |
| | | { |
| | | Y = quyuPatchView.frameLayout.Bottom + Application.GetRealHeight(125), |
| | | X = Application.GetRealWidth(16), |
| | | Width = Application.GetRealWidth(375-32), |
| | | Height = Application.GetRealHeight(20), |
| | | TextID = StringId.jixutianjia, |
| | | TextSize = TextSize.text14, |
| | | TextColor = CSS.CSS_Color.textConfirmColor, |
| | | TextAlignment = TextAlignment.Center, |
| | | }; |
| | | this.AddChidren(addBtn); |
| | | //完成 |
| | | View.SaveView saveView = new View.SaveView(); |
| | | this.AddChidren(saveView.FLayoutView()); |
| | | saveView.frameLayout.SetCornerWithSameRadius(Application.GetRealHeight(24), HDLUtils.RectCornerTopLeft | HDLUtils.RectCornerTopRight); |
| | | #endregion |
| | | #region 界面点击事件 |
| | | //遥控器名称点击事件 |
| | | namePatchView.btnClick.MouseUpEventHandler += (sender,e) => { }; |
| | | //所属区域点击事件 |
| | | quyuPatchView.btnClick.MouseUpEventHandler += (sender, e) => { }; |
| | | //继续添加点击事件 |
| | | addBtn.MouseUpEventHandler += (sender, e) => { |
| | | Method method = new Method(); |
| | | method.AddControl(); |
| | | }; |
| | | //完成点击事件 |
| | | saveView.btnClick.MouseUpEventHandler += (sender, e) => { |
| | | MainPage.BasePageView.RemoveViewByTag("AddControl"); |
| | | MainPage.BasePageView.RemoveViewByTag("Pir"); |
| | | }; |
| | | #endregion |
| | | } |
| | | } |
| | | } |
copy from HDL_ON/UI/UI2/3-Intelligence/Automation/EmptyClass.cs
copy to HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/BrandList.cs
File was copied from HDL_ON/UI/UI2/3-Intelligence/Automation/EmptyClass.cs |
| | |
| | | using System.Collections.Generic; |
| | | using System.Text; |
| | | |
| | | namespace HDL_ON.UI.UI2.Intelligence.Automation |
| | | namespace HDL_ON.UI.UI2.PersonalCenter.PirDevice |
| | | { |
| | | public class EmptyClass : FrameLayout |
| | | public class BrandList : FrameLayout |
| | | { |
| | | public BrandList() |
| | | { |
| | | Tag = "PirView"; |
| | | } |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | /// <param name="list">表示该列表元素A-Z字母筛选显示出来</param> |
| | | /// <param name="list6">表示该列表元素显示在list前面(该列表元素不做A-Z字母筛选),没有可以为list6=null</param> |
| | | /// <param name="action">返回选中文本</param> |
| | | public void Show(List<string> list, List<string> list6, Action<string> action) |
| | | public void Show(List<string> list, List<string> list6) |
| | | { |
| | | |
| | | |
| | | //string text = "30"; |
| | | //byte[] bytes = new byte[text.Length / 2]; |
| | | //for (int i = 0, j = 0; i < bytes.Length; j += 2, i++) |
| | |
| | | //} |
| | | ////把byte数组转换成文字 |
| | | //string str = System.Text.Encoding.UTF8.GetString(bytes); |
| | | |
| | | |
| | | var frameLayout = new FrameLayout |
| | | { |
| | | BackgroundColor = CSS.CSS_Color.viewTop, |
| | |
| | | UnSelectedImagePath = "LogicIcon/back.png", |
| | | }; |
| | | frameLayout.AddChidren(backBtn); |
| | | backBtn.MouseUpEventHandler += (sen, e) => |
| | | var clickBackBtn = new Button |
| | | { |
| | | Width = Application.GetRealWidth(12+16+20), |
| | | Height = Application.GetRealWidth(20+20), |
| | | Y = Application.GetRealHeight(32), |
| | | }; |
| | | frameLayout.AddChidren(clickBackBtn); |
| | | clickBackBtn.MouseUpEventHandler += (sen, e) => |
| | | { |
| | | this.RemoveFromParent(); |
| | | }; |
| | |
| | | this.AddChidren(fram); |
| | | |
| | | |
| | | //var list11 = new List<string> { |
| | | // "爱你", "哎呦","埃及","哈弗换壳哈弗", "爱德华多v","俺几个疯了", |
| | | // "拜了", "巴士", "百夫", "百合地理课你打算", "不度老骥伏枥", "比到九点", |
| | | // "车站","测试","此地", "才看见好得快","吃软饭","从看见二十多", |
| | | // "等待机会吧","的客户", "多喝点", "登记哦然后", "打电话", |
| | | // "恩肤霜看就看了", "饿死os","恶魔城","儿科联动", "恩六颗子弹拉拉裤洗澡了","发大学生发发", |
| | | // "真厉害i发多少", "知道你付款了发", "尬酒回复", "改进的话", "天天速度回答", "太好了开车", |
| | | // "减肥的看过","桡出口处那","如果觉得", "很舒服的","吃软饭","从看见二十多", |
| | | // "龙卷风亏大发","去好看", "多喝点", "好浪费好", "打电话"}; |
| | | if (list == null) |
| | | { |
| | | list = new List<string>(); |
| | |
| | | list6 = new List<string>(); |
| | | } |
| | | var list1 = GetDateList(list); |
| | | list1.Add("1"); |
| | | list1.InsertRange(0, list6); |
| | | |
| | | |
| | | |
| | | var vv = new VerticalScrolViewLayout(); |
| | | fram.AddChidren(vv); |
| | |
| | | listStr.Add(s); |
| | | } |
| | | } |
| | | RefreshLayout(vv, listStr, action); |
| | | RefreshLayout(vv, listStr); |
| | | |
| | | }; |
| | | |
| | | #region A-Z |
| | | |
| | | |
| | |
| | | } |
| | | #endregion |
| | | |
| | | RefreshLayout(vv, list1,action); |
| | | |
| | | |
| | | |
| | | |
| | | RefreshLayout(vv, list1); |
| | | |
| | | } |
| | | /// <summary> |
| | |
| | | /// </summary> |
| | | /// <param name="vv">父控件</param> |
| | | /// <param name="list">显示列表</param> |
| | | private void RefreshLayout(VerticalScrolViewLayout vv, List<string> list,Action<string> action) |
| | | private void RefreshLayout(VerticalScrolViewLayout vv, List<string> list) |
| | | { |
| | | vv.RemoveAll(); |
| | | foreach (var str in list) |
| | |
| | | vv.AddChidren(rowLayout); |
| | | clickBtn.MouseUpEventHandler += (sen, e) => |
| | | { |
| | | //找到索引值 |
| | | var index = list.IndexOf(clickBtn.Tag.ToString()); |
| | | ////找到索引值 |
| | | //var index = list.IndexOf(clickBtn.Tag.ToString()); |
| | | |
| | | this.RemoveFromParent(); |
| | | //this.RemoveFromParent(); |
| | | }; |
| | | |
| | | } |
| | |
| | | return false; |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 获取显示列表 |
| | | /// </summary> |
| | |
| | | } |
| | | return list; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 获取A-Z字母列表 |
| | | /// </summary> |
| | |
| | | } |
| | | return list; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 获取汉字首字母 |
| | | /// </summary> |
| | |
| | | iCnChar = i1 * 256 + i2; |
| | | } |
| | | |
| | | //expresstion |
| | | //table of the constant list |
| | | // 'A'; //45217..45252 |
| | | // 'B'; //45253..45760 |
| | | // 'C'; //45761..46317 |
| | | // 'D'; //46318..46825 |
| | | // 'E'; //46826..47009 |
| | | // 'F'; //47010..47296 |
| | | // 'G'; //47297..47613 |
| | | |
| | | // 'H'; //47614..48118 |
| | | // 'J'; //48119..49061 |
| | | // 'K'; //49062..49323 |
| | | // 'L'; //49324..49895 |
| | | // 'M'; //49896..50370 |
| | | // 'N'; //50371..50613 |
| | | // 'O'; //50614..50621 |
| | | // 'P'; //50622..50905 |
| | | // 'Q'; //50906..51386 |
| | | |
| | | // 'R'; //51387..51445 |
| | | // 'S'; //51446..52217 |
| | | // 'T'; //52218..52697 |
| | | //没有U,V |
| | | // 'W'; //52698..52979 |
| | | // 'X'; //52980..53640 |
| | | // 'Y'; //53689..54480 |
| | | // 'Z'; //54481..55289 |
| | | |
| | | // iCnChar match the constant |
| | | if ((iCnChar >= 45217) && (iCnChar <= 45252)) |
| | |
| | | } |
| | | } |
| | | } |
| | | |
New file |
| | |
| | | using System; |
| | | using HDL_ON.UI.UI2.Intelligence.Automation.LogicView; |
| | | using Shared; |
| | | using System.Collections.Generic; |
| | | using System.Text; |
| | | namespace HDL_ON.UI.UI2.PersonalCenter.PirDevice |
| | | { |
| | | public class DeviceSet : FrameLayout |
| | | { |
| | | public DeviceSet() |
| | | { |
| | | Tag = "PirView"; |
| | | } |
| | | public void Show() { |
| | | #region 界面布局 |
| | | this.BackgroundColor = CSS.CSS_Color.viewMiddle; |
| | | PirDevice.View.TopView topView = new View.TopView(); |
| | | topView.topNameBtn.TextID = StringId.shebeigaunli; |
| | | topView.topIconBtn.Visible = true; |
| | | this.AddChidren(topView.FLayoutView()); |
| | | topView.clickBackBtn.MouseUpEventHandler += (sender, e) => { this.RemoveFromParent(); }; |
| | | VerticalScrolViewLayout vv = new VerticalScrolViewLayout(); |
| | | vv.Height = Application.GetRealHeight(667 - 64); |
| | | vv.Y = Application.GetRealHeight(64); |
| | | this.AddChidren(vv); |
| | | #endregion |
| | | int a = 3; |
| | | int b = 3; |
| | | for (int i = 0; i < b; i++) |
| | | { |
| | | #region 红外宝图标 版本号 名称 状态 |
| | | FrameLayout fLayout = new FrameLayout |
| | | { |
| | | Width = Application.GetRealWidth(375), |
| | | Height = Application.GetRealHeight(12+92+(50* a)), |
| | | }; |
| | | vv.AddChidren(fLayout); |
| | | |
| | | //红外宝显示父控件 |
| | | FrameLayout devfLayout = new FrameLayout |
| | | { |
| | | Y = Application.GetRealHeight(12), |
| | | X = Application.GetRealWidth(16), |
| | | Width = Application.GetRealWidth(375-16*2), |
| | | Height = Application.GetRealHeight(92 + (50 * a)), |
| | | BackgroundColor = CSS.CSS_Color.view, |
| | | Radius = (uint)Application.GetRealHeight(12), |
| | | }; |
| | | fLayout.AddChidren(devfLayout); |
| | | //红外宝图标 |
| | | Button priequipmentBtn = new Button |
| | | { |
| | | Y=Application.GetRealHeight(16), |
| | | X = Application.GetRealWidth(5), |
| | | Width = Application.GetRealWidth(60), |
| | | Height = Application.GetRealWidth(60), |
| | | UnSelectedImagePath = "PirIcon/priequipment.png", |
| | | TextAlignment = TextAlignment.Center, |
| | | }; |
| | | devfLayout.AddChidren(priequipmentBtn); |
| | | //红外宝名称 |
| | | Button deviceNameBtn = new Button |
| | | { |
| | | Y=Application.GetRealHeight(16), |
| | | X = priequipmentBtn.Right + Application.GetRealWidth(7), |
| | | Width = Application.GetRealWidth(120), |
| | | Height = Application.GetRealHeight(20), |
| | | Text = "红外宝A"+i.ToString(), |
| | | TextAlignment = TextAlignment.CenterLeft, |
| | | TextSize = TextSize.text14, |
| | | TextColor = CSS.CSS_Color.textColor, |
| | | IsBold = true, |
| | | }; |
| | | devfLayout.AddChidren(deviceNameBtn); |
| | | //版本号 |
| | | Button versionBtn = new Button |
| | | { |
| | | Y = deviceNameBtn.Bottom+ Application.GetRealHeight(4), |
| | | X = priequipmentBtn.Right + Application.GetRealWidth(7), |
| | | Width = Application.GetRealWidth(120), |
| | | Height = Application.GetRealHeight(17), |
| | | Text = "版本号v1.3.5", |
| | | TextAlignment = TextAlignment.CenterLeft, |
| | | TextSize = TextSize.text12, |
| | | TextColor = CSS.CSS_Color.textCancelColor, |
| | | }; |
| | | devfLayout.AddChidren(versionBtn); |
| | | // 5/10 |
| | | Button geBtn = new Button |
| | | { |
| | | Y = versionBtn.Bottom + Application.GetRealHeight(2), |
| | | X = priequipmentBtn.Right + Application.GetRealWidth(7), |
| | | Width = Application.GetRealWidth(120), |
| | | Height = Application.GetRealHeight(17), |
| | | Text = "2", |
| | | TextAlignment = TextAlignment.CenterLeft, |
| | | TextSize = TextSize.text12, |
| | | TextColor = CSS.CSS_Color.textConfirmColor, |
| | | }; |
| | | devfLayout.AddChidren(geBtn); |
| | | geBtn.Width = geBtn.GetTextWidth(); |
| | | // 5/10 |
| | | Button sumBtn = new Button |
| | | { |
| | | Y = versionBtn.Bottom + Application.GetRealHeight(2), |
| | | X = geBtn.Right, |
| | | Width = Application.GetRealWidth(20), |
| | | Height = Application.GetRealHeight(17), |
| | | Text ="/10", |
| | | TextAlignment = TextAlignment.CenterLeft, |
| | | TextSize = TextSize.text12, |
| | | TextColor = CSS.CSS_Color.textCancelColor, |
| | | }; |
| | | devfLayout.AddChidren(sumBtn); |
| | | //状态图标 |
| | | Button stateIconBtn = new Button |
| | | { |
| | | Y =Application.GetRealHeight(23), |
| | | X = Application.GetRealWidth(291), |
| | | Width = Application.GetRealWidth(8), |
| | | Height = Application.GetRealWidth(8), |
| | | UnSelectedImagePath = "PirIcon/online.png", |
| | | }; |
| | | devfLayout.AddChidren(stateIconBtn); |
| | | //红外宝状态(在线-离线) |
| | | Button stateTextBtn = new Button |
| | | { |
| | | Y = Application.GetRealHeight(18), |
| | | X = Application.GetRealWidth(303), |
| | | Width = Application.GetRealWidth(30), |
| | | Height = Application.GetRealHeight(17), |
| | | TextID=StringId.zaixianhwb, |
| | | TextAlignment = TextAlignment.CenterLeft, |
| | | TextSize = TextSize.text12, |
| | | TextColor = 0xFF67D569,// CSS.CSS_Color.textColor, |
| | | IsBold=true, |
| | | }; |
| | | devfLayout.AddChidren(stateTextBtn); |
| | | //线 |
| | | Button lineBtn = new Button |
| | | { |
| | | Y = Application.GetRealHeight(92)-1, |
| | | X = Application.GetRealWidth(16), |
| | | Width = Application.GetRealWidth(343-16*2), |
| | | Height =1, |
| | | BackgroundColor = CSS.CSS_Color.viewLine, |
| | | }; |
| | | devfLayout.AddChidren(lineBtn); |
| | | |
| | | if (b - 1 == i) |
| | | { |
| | | //最后一个后面增加间隔背景 |
| | | vv.AddChidren(new FrameLayout { Height = Application.GetRealHeight(20) }); |
| | | } |
| | | #endregion |
| | | |
| | | for (int j = 0; j < a; j++) { |
| | | RowLayout funControlRow = new RowLayout |
| | | { |
| | | Y = Application.GetRealHeight(92 + (50 * j)), |
| | | Width = Application.GetRealWidth(375 - 16 * 2), |
| | | Height = Application.GetRealHeight(50), |
| | | LineColor = CSS.CSS_Color.textWhiteColor, |
| | | SubViewWidth=Application.GetRealWidth(68), |
| | | }; |
| | | devfLayout.AddChidren(funControlRow); |
| | | //遥控器名称 |
| | | Button nameBtn = new Button |
| | | { |
| | | X = Application.GetRealWidth(16), |
| | | Width = Application.GetRealWidth(150), |
| | | Height = Application.GetRealHeight(20), |
| | | Text =j.ToString(), |
| | | TextAlignment=TextAlignment.CenterLeft, |
| | | TextSize = TextSize.text14, |
| | | TextColor = CSS.CSS_Color.textColor, |
| | | Gravity=Gravity.CenterVertical, |
| | | }; |
| | | funControlRow.AddChidren(nameBtn); |
| | | //遥控器区域 |
| | | Button areaBtn = new Button |
| | | { |
| | | X=Application.GetRealWidth(311+16-(40+100)), |
| | | Width = Application.GetRealWidth(100), |
| | | Height = Application.GetRealHeight(17), |
| | | Text = j.ToString(), |
| | | TextAlignment = TextAlignment.CenterRight, |
| | | TextSize = TextSize.text12, |
| | | TextColor = CSS.CSS_Color.textCancelColor, |
| | | Gravity =Gravity.CenterVertical, |
| | | }; |
| | | funControlRow.AddChidren(areaBtn); |
| | | //下一级图标 |
| | | Button nextIconBtn = new Button |
| | | { |
| | | X = Application.GetRealWidth(295+16), |
| | | Width = Application.GetRealWidth(16), |
| | | Height = Application.GetRealWidth(16), |
| | | UnSelectedImagePath = "PirIcon/next.png", |
| | | Gravity = Gravity.CenterVertical, |
| | | }; |
| | | funControlRow.AddChidren(nextIconBtn); |
| | | //删除 |
| | | Button delBtn = new Button |
| | | { |
| | | Width = Application.GetRealWidth(50), |
| | | Height = Application.GetRealHeight(22), |
| | | TextID = StringId.Del, |
| | | TextAlignment = TextAlignment.Center, |
| | | TextSize = TextSize.text16, |
| | | TextColor = CSS.CSS_Color.textWhiteColor, |
| | | IsBold=true, |
| | | BackgroundColor= CSS.CSS_Color.textRedColor, |
| | | }; |
| | | funControlRow.AddRightView(delBtn); |
| | | //线 |
| | | Button line1Btn = new Button |
| | | { |
| | | Y = Application.GetRealHeight(50 - 2), |
| | | X = Application.GetRealWidth(16), |
| | | Width = Application.GetRealWidth(311), |
| | | Height = 1, |
| | | BackgroundColor = CSS.CSS_Color.viewLine, |
| | | }; |
| | | funControlRow.AddChidren(line1Btn); |
| | | if (j == a - 1) |
| | | { |
| | | //最后改变一个线的颜色 |
| | | line1Btn.BackgroundColor = CSS.CSS_Color.viewTranslucence; |
| | | funControlRow.LineColor = CSS.CSS_Color.viewTranslucence; |
| | | } |
| | | delBtn.MouseUpEventHandler += (sender,e) => { |
| | | |
| | | |
| | | }; |
| | | } |
| | | |
| | | |
| | | |
| | | } |
| | | |
| | | } |
| | | } |
| | | } |
New file |
| | |
| | | using System; |
| | | using HDL_ON.DAL.Server; |
| | | using Shared; |
| | | |
| | | namespace HDL_ON.UI.UI2.PersonalCenter.PirDevice |
| | | { |
| | | public class Method |
| | | { |
| | | /// <summary> |
| | | /// 添加遥控器的方法 |
| | | /// </summary> |
| | | public void AddControl() |
| | | { |
| | | View.TipView tipView = new View.TipView(); |
| | | tipView.InputBox("", (s, dialog) => |
| | | { |
| | | ///清除之前列表数据 |
| | | Pir.BuottonList.Clear(); |
| | | if (!string.IsNullOrEmpty(s)) |
| | | { |
| | | Control control = new Control(); |
| | | control.name = s; |
| | | control.type = "learn"; |
| | | |
| | | ThreadAddControl(control,dialog); |
| | | |
| | | |
| | | |
| | | } |
| | | },false); |
| | | |
| | | } |
| | | /// <summary> |
| | | /// 发送遥控器命令方法 |
| | | /// </summary> |
| | | /// <param name="control"></param> |
| | | /// <param name="dialog"></param> |
| | | public void ThreadAddControl(Control control, Dialog dialog) { |
| | | |
| | | DAL.Server.ResponsePackNew responsePackNew = null; |
| | | Loading loading = new Loading(); |
| | | dialog.AddChidren(loading); |
| | | loading.Start(); |
| | | new System.Threading.Thread(() => |
| | | { |
| | | try |
| | | { |
| | | responsePackNew = PirSend.Add(control); |
| | | } |
| | | catch { } |
| | | finally |
| | | { |
| | | Application.RunOnMainThread(() => |
| | | { |
| | | loading.Hide(); |
| | | //if (responsePackNew != null && responsePackNew.Code == "0" && responsePackNew.Data.ToString() != "") |
| | | //{ |
| | | ///这里:监听MTTP推送下来主题,才知道是否添加成功 |
| | | dialog.Close();//添加成功关闭弹窗 |
| | | AddButton addButton = new AddButton(); |
| | | MainPage.BasePageView.AddChidren(addButton); |
| | | addButton.Show(control); |
| | | MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; |
| | | |
| | | //监听Mqtt推送下来状态码做提示 |
| | | //View.FailView failView = new View.FailView(); |
| | | //failView.ShouError((view) => { |
| | | // view.Close(); |
| | | // ThreadAddControl(control, dialog); |
| | | //}); |
| | | //} |
| | | //else |
| | | //{ |
| | | // ErrorShow(responsePackNew); |
| | | //} |
| | | }); |
| | | } |
| | | }) |
| | | { IsBackground = true }.Start(); |
| | | |
| | | } |
| | | /// <summary> |
| | | /// 错误码提示 |
| | | /// </summary> |
| | | /// <param name="responsePackNew"></param> |
| | | public void ErrorShow(ResponsePackNew responsePackNew) |
| | | { |
| | | |
| | | if (responsePackNew != null && responsePackNew.Code == "14005") |
| | | { |
| | | new Intelligence.Automation.LogicView.TipPopView().FlashingBox(Language.StringByID(StringId.gatewayNotOnline)); |
| | | |
| | | } |
| | | else |
| | | { |
| | | new Intelligence.Automation.LogicView.TipPopView().FlashingBox(Language.StringByID(StringId.saveFail)); |
| | | |
| | | } |
| | | } |
| | | } |
| | | } |
New file |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | namespace HDL_ON.UI.UI2.PersonalCenter.PirDevice |
| | | { |
| | | public class Pir |
| | | { |
| | | /// <summary> |
| | | /// 添加按键列表 |
| | | /// </summary> |
| | | public static List<ButtonObj> BuottonList = new List<ButtonObj>(); |
| | | |
| | | } |
| | | public class ButtonObj |
| | | { |
| | | public string Key = string.Empty; |
| | | /// <summary> |
| | | /// #app 显示的文字 |
| | | /// </summary> |
| | | public string value = string.Empty; |
| | | } |
| | | public class Control |
| | | { |
| | | /// <summary> |
| | | /// 红外宝设备Id |
| | | /// </summary> |
| | | public string deviceId = "0"; |
| | | /// <summary> |
| | | /// 红外遥控器名称 |
| | | /// </summary> |
| | | public string name = "0"; |
| | | /// <summary> |
| | | /// 红外遥控器spk |
| | | /// </summary> |
| | | public string spk = "ir.module"; |
| | | /// <summary> |
| | | /// library=库类型, learn=不需要额外追加属性 |
| | | /// </summary> |
| | | public string type = "learn"; |
| | | /// <summary> |
| | | /// 码组号 |
| | | /// </summary> |
| | | public string group_id = "12"; |
| | | /// <summary> |
| | | /// 红外码 |
| | | /// </summary> |
| | | public List<string> library = new List<string>(); |
| | | } |
| | | } |
New file |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using HDL_ON.UI.UI2.Intelligence.Automation.LogicView; |
| | | using Shared; |
| | | namespace HDL_ON.UI.UI2.PersonalCenter.PirDevice |
| | | { |
| | | public class PirMain : FrameLayout |
| | | { |
| | | public PirMain() |
| | | { |
| | | Tag = "PirView"; |
| | | } |
| | | public void Show() |
| | | { |
| | | #region 界面布局 |
| | | this.BackgroundColor = CSS.CSS_Color.viewMiddle; |
| | | PirDevice.View.TopView topView = new View.TopView(); |
| | | topView.topNameBtn.TextID = StringId.hongwaiyaokong; |
| | | this.AddChidren(topView.FLayoutView()); |
| | | topView.clickBackBtn.MouseUpEventHandler += (sender, e) => { this.RemoveFromParent(); }; |
| | | FrameLayout middFLayout = new FrameLayout(); |
| | | middFLayout.Y = Application.GetRealHeight(64); |
| | | middFLayout.Height = Application.GetRealHeight(667 - 64); |
| | | this.AddChidren(middFLayout); |
| | | |
| | | FrameLayout pirDeviceFLayout = new FrameLayout(); |
| | | pirDeviceFLayout.Y = Application.GetRealHeight(12); |
| | | pirDeviceFLayout.X = Application.GetRealWidth(16); |
| | | pirDeviceFLayout.Width = Application.GetRealWidth(343); |
| | | pirDeviceFLayout.Height = Application.GetRealHeight(187); |
| | | pirDeviceFLayout.BackgroundColor = CSS.CSS_Color.view; |
| | | pirDeviceFLayout.Radius = (uint)Application.GetRealHeight(12); |
| | | middFLayout.AddChidren(pirDeviceFLayout); |
| | | |
| | | //设备管理 |
| | | Button text1Btn = new Button |
| | | { |
| | | Y = Application.GetRealHeight(11), |
| | | X = Application.GetRealWidth(16), |
| | | Width = Application.GetRealWidth(120), |
| | | Height = Application.GetRealHeight(20), |
| | | TextSize = TextSize.text14, |
| | | TextColor = CSS.CSS_Color.textConfirmColor, |
| | | TextAlignment = TextAlignment.CenterLeft, |
| | | TextID = StringId.shebeigaunli, |
| | | IsBold=true, |
| | | }; |
| | | pirDeviceFLayout.AddChidren(text1Btn); |
| | | |
| | | |
| | | Button pirIcon = new Button |
| | | { |
| | | Y = Application.GetRealHeight(47), |
| | | X = Application.GetRealWidth(28), |
| | | Width = Application.GetRealWidth(66), |
| | | Height = Application.GetRealWidth(66), |
| | | UnSelectedImagePath = "PirIcon/Infraredtreasure.png", |
| | | }; |
| | | pirDeviceFLayout.AddChidren(pirIcon); |
| | | |
| | | //mini智能遥控器 |
| | | Button text2Btn = new Button |
| | | { |
| | | Y = Application.GetRealHeight(70), |
| | | X = Application.GetRealWidth(112), |
| | | Width = Application.GetRealWidth(120), |
| | | Height = Application.GetRealHeight(20), |
| | | TextSize = TextSize.text14, |
| | | TextColor = CSS.CSS_Color.textTipColor, |
| | | TextAlignment = TextAlignment.CenterLeft, |
| | | Text = "mini智能遥控器", |
| | | }; |
| | | pirDeviceFLayout.AddChidren(text2Btn); |
| | | |
| | | // |
| | | Button numberDeviceBtn = new Button |
| | | { |
| | | Y = Application.GetRealHeight(137), |
| | | X = Application.GetRealWidth(32), |
| | | Width = Application.GetRealWidth(100), |
| | | Height = Application.GetRealHeight(20), |
| | | TextSize = TextSize.text14, |
| | | TextColor = CSS.CSS_Color.textColor, |
| | | TextAlignment = TextAlignment.CenterLeft, |
| | | Text = "1" + Language.StringByID(StringId.ge), |
| | | IsBold = true, |
| | | }; |
| | | pirDeviceFLayout.AddChidren(numberDeviceBtn); |
| | | //当前红外遥控设备 |
| | | Button numberDeviceTextBtn = new Button |
| | | { |
| | | Y = numberDeviceBtn.Bottom + Application.GetRealHeight(4), |
| | | X = Application.GetRealWidth(32), |
| | | Width = Application.GetRealWidth(100), |
| | | Height = Application.GetRealHeight(14), |
| | | TextSize = TextSize.text10, |
| | | TextColor = CSS.CSS_Color.textCancelColor, |
| | | TextAlignment = TextAlignment.CenterLeft, |
| | | TextID = StringId.dangqianhongwaishebei, |
| | | }; |
| | | pirDeviceFLayout.AddChidren(numberDeviceTextBtn); |
| | | // |
| | | Button currDeviceNumberControlBtn = new Button |
| | | { |
| | | Y = Application.GetRealHeight(137), |
| | | X = Application.GetRealWidth(198), |
| | | Width = Application.GetRealWidth(80), |
| | | Height = Application.GetRealHeight(20), |
| | | TextSize = TextSize.text14, |
| | | TextColor = CSS.CSS_Color.textColor, |
| | | TextAlignment = TextAlignment.CenterLeft, |
| | | Text = "1" + Language.StringByID(StringId.ge), |
| | | IsBold = true, |
| | | }; |
| | | pirDeviceFLayout.AddChidren(currDeviceNumberControlBtn); |
| | | //已添加遥控器 |
| | | Button currDeviceNumberControlTextBtn = new Button |
| | | { |
| | | Y = currDeviceNumberControlBtn.Bottom + Application.GetRealHeight(4), |
| | | X = Application.GetRealWidth(198), |
| | | Width = Application.GetRealWidth(80), |
| | | Height = Application.GetRealHeight(14), |
| | | TextSize = TextSize.text10, |
| | | TextColor = CSS.CSS_Color.textCancelColor, |
| | | TextAlignment = TextAlignment.CenterLeft, |
| | | TextID = StringId.yitianjiayaokongqi, |
| | | }; |
| | | pirDeviceFLayout.AddChidren(currDeviceNumberControlTextBtn); |
| | | ///红外宝点击事件 |
| | | FrameLayout clickFLayout = new FrameLayout(); |
| | | pirDeviceFLayout.AddChidren(clickFLayout); |
| | | clickFLayout.MouseUpEventHandler += (sender,e) => { |
| | | |
| | | DeviceSet deviceSet = new DeviceSet(); |
| | | MainPage.BasePageView.AddChidren(deviceSet); |
| | | deviceSet.Show(); |
| | | MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; |
| | | }; |
| | | |
| | | FrameLayout deviceListFLayout = new FrameLayout(); |
| | | deviceListFLayout.Y = pirDeviceFLayout.Bottom + Application.GetRealHeight(12); |
| | | deviceListFLayout.X = Application.GetRealWidth(16); |
| | | deviceListFLayout.Width = Application.GetRealWidth(343); |
| | | deviceListFLayout.Height = Application.GetRealHeight(328); |
| | | deviceListFLayout.BackgroundColor = CSS.CSS_Color.view; |
| | | deviceListFLayout.Radius = (uint)Application.GetRealHeight(12); |
| | | middFLayout.AddChidren(deviceListFLayout); |
| | | ///添加遥控器 |
| | | Button text3Btn = new Button |
| | | { |
| | | Y = Application.GetRealHeight(11), |
| | | X = Application.GetRealWidth(16), |
| | | Width = Application.GetRealWidth(100), |
| | | Height = Application.GetRealHeight(20), |
| | | TextSize = TextSize.text14, |
| | | TextColor = CSS.CSS_Color.textConfirmColor, |
| | | TextAlignment = TextAlignment.CenterLeft, |
| | | TextID = StringId.tianjiayaokongqi, |
| | | IsBold = true, |
| | | }; |
| | | deviceListFLayout.AddChidren(text3Btn); |
| | | ///红外宝名称 |
| | | Button deviceNameBtn= new Button |
| | | { |
| | | Y = Application.GetRealHeight(13), |
| | | X = Application.GetRealWidth(161), |
| | | Width = Application.GetRealWidth(150), |
| | | Height = Application.GetRealHeight(17), |
| | | TextSize = TextSize.text12, |
| | | TextColor = CSS.CSS_Color.textColor, |
| | | TextAlignment = TextAlignment.CenterRight, |
| | | Text = "mini智能遥控器", |
| | | }; |
| | | deviceListFLayout.AddChidren(deviceNameBtn); |
| | | |
| | | //下拉图标 |
| | | var dropdownIconBtn = new Button |
| | | { |
| | | Y = Application.GetRealHeight(13), |
| | | X = Application.GetRealWidth(343-8-16), |
| | | Width = Application.GetRealWidth(16), |
| | | Height = Application.GetRealWidth(16), |
| | | UnSelectedImagePath = "PirIcon/dropdown.png", |
| | | }; |
| | | deviceListFLayout.AddChidren(dropdownIconBtn); |
| | | |
| | | #endregion |
| | | int line = 0; |
| | | for (int i = 1, j = 0; i <= 7; i++, j++) |
| | | { |
| | | var currpirdeviceFLayout = new FrameLayout |
| | | { |
| | | Width = Application.GetRealWidth(80), |
| | | Height = Application.GetRealWidth(80), |
| | | X = Application.GetRealWidth(26 + (80 + 25) * j), |
| | | Y = Application.GetRealHeight(52 + (80 + 12) * line), |
| | | |
| | | }; |
| | | deviceListFLayout.AddChidren(currpirdeviceFLayout); |
| | | var deviceIconBtn = new Button |
| | | { |
| | | Y = Application.GetRealHeight(8), |
| | | X = Application.GetRealWidth(20), |
| | | Width = Application.GetRealWidth(40), |
| | | Height = Application.GetRealWidth(40), |
| | | UnSelectedImagePath = "PirIcon/Infraredtreasure.png", |
| | | }; |
| | | currpirdeviceFLayout.AddChidren(deviceIconBtn); |
| | | var iconNameBtn = new Button |
| | | { |
| | | Y = deviceIconBtn.Bottom+Application.GetRealHeight(8), |
| | | Width = Application.GetRealWidth(80), |
| | | Height = Application.GetRealHeight(17), |
| | | TextSize = TextSize.text12, |
| | | TextColor = CSS.CSS_Color.TextualColor, |
| | | TextAlignment = TextAlignment.Center, |
| | | }; |
| | | currpirdeviceFLayout.AddChidren(iconNameBtn); |
| | | var clickBtn = new Button { Tag = i }; |
| | | currpirdeviceFLayout.AddChidren(clickBtn); |
| | | if (i % 3 == 0) |
| | | { |
| | | //满一行重置j=0值; |
| | | j = -1; |
| | | line += 1; |
| | | } |
| | | GetIconAndText(i, deviceIconBtn, iconNameBtn); |
| | | clickBtn.MouseUpEventHandler += (sender, e) => |
| | | { |
| | | //1=空调;2=电视;3=风扇;4=机顶盒;5=DVD/EVD/VCD;6=投影仪;7=自定义; |
| | | int if_value =int.Parse(clickBtn.Tag.ToString()); |
| | | var list11 = new List<string> { |
| | | "爱你", "哎呦","埃及","哈弗换壳哈弗", "爱德华多v","俺几个疯了", |
| | | "拜了", "巴士", "百夫", "百合地理课你打算", "不度老骥伏枥", "比到九点", |
| | | "车站","测试","此地", "才看见好得快","吃软饭","从看见二十多", |
| | | "等待机会吧","的客户", "多喝点", "登记哦然后", "打电话", |
| | | "恩肤霜看就看了", "饿死os","恶魔城","儿科联动", "恩六颗子弹拉拉裤洗澡了","发大学生发发", |
| | | "真厉害i发多少", "知道你付款了发", "尬酒回复", "改进的话", "天天速度回答", "太好了开车", |
| | | "减肥的看过","桡出口处那","如果觉得", "很舒服的","吃软饭","从看见二十多", |
| | | "龙卷风亏大发","去好看", "多喝点", "好浪费好", "打电话"}; |
| | | System.Threading.Tasks.Task.Run(() => |
| | | { |
| | | Application.RunOnMainThread(() => |
| | | { |
| | | switch (if_value) |
| | | { |
| | | case 1: |
| | | { |
| | | } |
| | | break; |
| | | case 2: |
| | | { |
| | | } |
| | | break; |
| | | case 3: |
| | | { |
| | | } |
| | | break; |
| | | case 4: |
| | | { |
| | | } |
| | | break; |
| | | case 5: |
| | | { |
| | | } |
| | | break; |
| | | case 6: |
| | | { |
| | | } |
| | | break; |
| | | case 7: |
| | | { |
| | | Method method = new Method(); |
| | | method.AddControl(); |
| | | |
| | | } |
| | | break; |
| | | |
| | | } |
| | | |
| | | |
| | | //BrandList brandList = new BrandList(); |
| | | //MainPage.BasePageView.AddChidren(brandList); |
| | | //brandList.Show(list11, null); |
| | | //MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; |
| | | }); |
| | | }); |
| | | }; |
| | | |
| | | } |
| | | |
| | | } |
| | | /// <summary> |
| | | /// 设置图片和备注 |
| | | /// </summary> |
| | | /// <param name="index">索引值</param> |
| | | /// <param name="deviceIconBtn">图标Btn</param> |
| | | /// <param name="deviceNameBtn">设备备注Btn</param> |
| | | private void GetIconAndText(int index,Button deviceIconBtn, Button deviceNameBtn) { |
| | | string iconPath = ""; |
| | | int deviceNameIndex=0; |
| | | switch (index) |
| | | { |
| | | case 1: { |
| | | iconPath = "PirIcon/air.png"; |
| | | deviceNameIndex = StringId.kongtiao; |
| | | } break; |
| | | case 2: { |
| | | iconPath = "PirIcon/tv.png"; |
| | | deviceNameIndex = StringId.dianshi; |
| | | } break; |
| | | case 3: { |
| | | iconPath = "PirIcon/fan.png"; |
| | | deviceNameIndex = StringId.fengshan; |
| | | } break; |
| | | case 4: { |
| | | iconPath = "PirIcon/stb.png"; |
| | | deviceNameIndex = StringId.jidinghe; |
| | | } break; |
| | | case 5: { |
| | | iconPath = "PirIcon/dvd.png"; |
| | | deviceNameIndex = StringId.dvd; |
| | | } break; |
| | | case 6: { |
| | | iconPath = "PirIcon/projector.png"; |
| | | deviceNameIndex = StringId.touyingyi; |
| | | } break; |
| | | case 7: { |
| | | iconPath = "PirIcon/custom.png"; |
| | | deviceNameIndex = StringId.zidingyi; |
| | | } break; |
| | | |
| | | } |
| | | deviceIconBtn.UnSelectedImagePath = iconPath; |
| | | deviceNameBtn.TextID = deviceNameIndex; |
| | | } |
| | | |
| | | } |
| | | } |
New file |
| | |
| | | using System; |
| | | using System.IO; |
| | | using System.Net; |
| | | using HDL_ON.DAL.Server; |
| | | using Newtonsoft.Json.Linq; |
| | | using System.Collections.Generic; |
| | | using Shared; |
| | | |
| | | namespace HDL_ON.UI.UI2.PersonalCenter.PirDevice |
| | | { |
| | | |
| | | public class PirSend |
| | | { |
| | | /// <summary> |
| | | /// 住宅ID |
| | | /// </summary> |
| | | public static string HomeId |
| | | { |
| | | get |
| | | { |
| | | return Entity.DB_ResidenceData.Instance.CurrentRegion.RegionID; |
| | | } |
| | | } |
| | | /// <summary> |
| | | /// 是否为其他主用户分享过来的住宅 |
| | | /// </summary> |
| | | public static bool IsOthreShare |
| | | { |
| | | get |
| | | { |
| | | return Entity.DB_ResidenceData.Instance.CurrentRegion.IsOthreShare; |
| | | } |
| | | } |
| | | /// <summary> |
| | | /// 遥控器添加 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | public static ResponsePackNew Add(Control control) |
| | | { |
| | | var jObject = new JObject { }; |
| | | jObject.Add("homeId", HomeId); |
| | | jObject.Add("deviceId", control.deviceId); |
| | | jObject.Add("name", control.name); |
| | | jObject.Add("spk", "ir.module"); |
| | | jObject.Add("type", control.type); |
| | | if (control.type == "library") |
| | | { |
| | | //jObject.Add("group_id", "123"); |
| | | var libraryjay = new JArray { }; |
| | | for (int i = 0; i < control.library.Count; i++) |
| | | { |
| | | libraryjay.Add(control.library[i]); |
| | | } |
| | | jObject.Add("library", libraryjay); |
| | | } |
| | | var responsePackNew = RequestServerhomeId(jObject, NewAPI.API_POST_Ir_Add); |
| | | return responsePackNew; |
| | | } |
| | | /// <summary> |
| | | /// 红外码学习 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | public static void CodeStudy(ButtonObj buttonObj, Action<ResponsePackNew> action) |
| | | { |
| | | //var whichDayJson = jay["whichDay"].ToString(); |
| | | //var whichDayAry = Newtonsoft.Json.Linq.JArray.Parse(whichDayJson); |
| | | //for (int b = 0; b < whichDayAry.Count; b++) |
| | | //{ |
| | | // var days = whichDayAry[b].ToString(); |
| | | // timer.whichDay.Add(int.Parse(days)); |
| | | //} |
| | | var job = new JObject { }; |
| | | job.Add("key", buttonObj.Key); |
| | | job.Add("data_type", "string"); |
| | | var valuejArray = new JArray { }; |
| | | valuejArray.Add(buttonObj.value); |
| | | job.Add("value", valuejArray); |
| | | var jArray = new JArray { }; |
| | | jArray.Add(job); |
| | | var jObject = new JObject { { "homeId", HomeId }, { "deviceId", "0" }, { "attributes", jArray } }; |
| | | ResponsePackNew responsePackNew = null; |
| | | new System.Threading.Thread(() => |
| | | { |
| | | |
| | | try |
| | | { |
| | | //发送红外码学习命令 |
| | | responsePackNew = RequestServerhomeId(jObject, NewAPI.API_POST_Ir_CodeStudy); |
| | | } |
| | | catch { } |
| | | finally |
| | | { |
| | | Application.RunOnMainThread(() => |
| | | { |
| | | action(responsePackNew); |
| | | }); |
| | | } |
| | | |
| | | }) |
| | | { IsBackground = true }.Start(); |
| | | } |
| | | /// <summary> |
| | | /// 自学按键删除 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | public static ResponsePackNew CodeRemove(ButtonObj buttonObj) |
| | | { |
| | | var job = new JObject { }; |
| | | job.Add("key", buttonObj.Key); |
| | | job.Add("data_type", "string"); |
| | | var valuejArray = new JArray { }; |
| | | valuejArray.Add(buttonObj.value); |
| | | job.Add("value", valuejArray); |
| | | var jArray = new JArray { }; |
| | | jArray.Add(job); |
| | | var jObject = new JObject { { "homeId", HomeId }, { "deviceId", "0" }, { "attributes", jArray } }; |
| | | var responsePackNew = RequestServerhomeId(jObject, NewAPI.API_POST_Ir_CodeRemove); |
| | | return responsePackNew; |
| | | } |
| | | /// <summary> |
| | | /// 获取逻辑 |
| | | /// </summary> |
| | | /// <param name="listIdList">逻辑ID列表</param> |
| | | /// <returns></returns> |
| | | public static ResponsePackNew GetLogic(List<string> listIdList) |
| | | { |
| | | var jArray = new JArray { }; |
| | | for (int i = 0; i < listIdList.Count; i++) |
| | | { |
| | | jArray.Add(listIdList[i]); |
| | | } |
| | | var jObject = new JObject { { "userLogicIds", jArray } }; |
| | | var responsePackNew = RequestServerhomeId(jObject, NewAPI.API_POST_Logic_Info); |
| | | //如果是token过期则刷新token |
| | | if (responsePackNew.Code == StateCode.TOKEN_EXPIRED) |
| | | { |
| | | RefreshToken(); |
| | | GetLogic(listIdList); |
| | | } |
| | | return responsePackNew; |
| | | } |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | ///请求服务器(与住宅有关:例如;homeId) |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | public static ResponsePackNew RequestServerhomeId(object o, string api_Url, int mTimeout = 20) |
| | | { |
| | | var requestJson = HttpUtil.GetSignRequestJson(o); |
| | | return HttpUtil.RequestHttpsPostFroHome(api_Url, requestJson, mTimeout); |
| | | |
| | | } |
| | | /// <summary> |
| | | /// 请求服务器 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | public static ResponsePackNew RequestServer(object o, string api_Url) |
| | | { |
| | | var requestJson = HttpUtil.GetSignRequestJson(o); |
| | | return HttpUtil.RequestHttpsPost(api_Url, requestJson); |
| | | |
| | | } |
| | | /// <summary> |
| | | /// 刷新Token |
| | | /// </summary> |
| | | public static void RefreshToken() |
| | | { |
| | | IMessageCommon.Current.StartRefreshToken(); |
| | | } |
| | | |
| | | } |
| | | |
| | | } |
File was renamed from HDL_ON/UI/UI2/3-Intelligence/Automation/EmptyClass.cs |
| | |
| | | using System.Collections.Generic; |
| | | using System.Text; |
| | | |
| | | namespace HDL_ON.UI.UI2.Intelligence.Automation |
| | | namespace HDL_ON.UI.UI2.PersonalCenter.PirDevice.View |
| | | { |
| | | public class EmptyClass : FrameLayout |
| | | public class BrandListView : FrameLayout |
| | | { |
| | | /// <summary> |
| | | /// |
| | |
| | | /// <param name="action">返回选中文本</param> |
| | | public void Show(List<string> list, List<string> list6, Action<string> action) |
| | | { |
| | | |
| | | |
| | | //string text = "30"; |
| | | //byte[] bytes = new byte[text.Length / 2]; |
| | | //for (int i = 0, j = 0; i < bytes.Length; j += 2, i++) |
| | |
| | | //} |
| | | ////把byte数组转换成文字 |
| | | //string str = System.Text.Encoding.UTF8.GetString(bytes); |
| | | |
| | | |
| | | var frameLayout = new FrameLayout |
| | | { |
| | | BackgroundColor = CSS.CSS_Color.viewTop, |
| | |
| | | UnSelectedImagePath = "LogicIcon/back.png", |
| | | }; |
| | | frameLayout.AddChidren(backBtn); |
| | | backBtn.MouseUpEventHandler += (sen, e) => |
| | | var clickBackBtn = new Button |
| | | { |
| | | Width = Application.GetRealWidth(12 + 16 + 20), |
| | | Height = Application.GetRealWidth(20 + 20), |
| | | Y = Application.GetRealHeight(32), |
| | | }; |
| | | frameLayout.AddChidren(clickBackBtn); |
| | | clickBackBtn.MouseUpEventHandler += (sen, e) => |
| | | { |
| | | this.RemoveFromParent(); |
| | | }; |
| | |
| | | }; |
| | | this.AddChidren(fram); |
| | | |
| | | |
| | | //var list11 = new List<string> { |
| | | // "爱你", "哎呦","埃及","哈弗换壳哈弗", "爱德华多v","俺几个疯了", |
| | | // "拜了", "巴士", "百夫", "百合地理课你打算", "不度老骥伏枥", "比到九点", |
| | | // "车站","测试","此地", "才看见好得快","吃软饭","从看见二十多", |
| | | // "等待机会吧","的客户", "多喝点", "登记哦然后", "打电话", |
| | | // "恩肤霜看就看了", "饿死os","恶魔城","儿科联动", "恩六颗子弹拉拉裤洗澡了","发大学生发发", |
| | | // "真厉害i发多少", "知道你付款了发", "尬酒回复", "改进的话", "天天速度回答", "太好了开车", |
| | | // "减肥的看过","桡出口处那","如果觉得", "很舒服的","吃软饭","从看见二十多", |
| | | // "龙卷风亏大发","去好看", "多喝点", "好浪费好", "打电话"}; |
| | | if (list == null) |
| | | { |
| | | list = new List<string>(); |
| | |
| | | list6 = new List<string>(); |
| | | } |
| | | var list1 = GetDateList(list); |
| | | list1.Add("1"); |
| | | list1.InsertRange(0, list6); |
| | | |
| | | |
| | |
| | | clickBtn.MouseUpEventHandler += (sen, e) => |
| | | { |
| | | //找到索引值 |
| | | var index = list.IndexOf(clickBtn.Tag.ToString()); |
| | | |
| | | //var index = list.IndexOf(); |
| | | action(clickBtn.Tag.ToString()); |
| | | this.RemoveFromParent(); |
| | | }; |
| | | |
| | |
| | | return false; |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 获取显示列表 |
| | | /// </summary> |
| | |
| | | } |
| | | return list; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 获取A-Z字母列表 |
| | | /// </summary> |
| | |
| | | } |
| | | return list; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 获取汉字首字母 |
| | | /// </summary> |
New file |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using HDL_ON.UI.UI2.Intelligence.Automation.LogicView; |
| | | using Shared; |
| | | namespace HDL_ON.UI.UI2.PersonalCenter.PirDevice.View |
| | | { |
| | | public class Buttons |
| | | { |
| | | /// <summary> |
| | | /// 动态加载按钮列表 |
| | | /// </summary> |
| | | /// <param name="buttonFLayout">父控件</param> |
| | | /// <param name="buttonList">数据列表</param> |
| | | /// <param name="action">回调</param> |
| | | /// <param name="line">表示多少行</param> |
| | | /// <param name="line">表示一行加载多少个按钮</param> |
| | | public void AddButton(FrameLayout buttonFLayout, List<string> buttonList, Action<string> action, int line = 7, int sum = 3) |
| | | { |
| | | VerticalScrolViewLayout vv = new VerticalScrolViewLayout(); |
| | | buttonFLayout.AddChidren(vv); |
| | | for (int i = 0; i < line; i++) |
| | | { |
| | | var currFLayout = new FrameLayout { Height = Application.GetRealHeight(16 + 44) }; |
| | | vv.AddChidren(currFLayout); |
| | | for (int a = i * sum + 1, b = 0; a <= buttonList.Count; a++, b++) |
| | | { |
| | | var name = buttonList[a - 1]; |
| | | var nameBtn = new Button |
| | | { |
| | | Y = Application.GetRealHeight(16), |
| | | X = Application.GetRealWidth(24 + (98 + 16) * b), |
| | | // Gravity=Gravity.CenterVertical, |
| | | Width = Application.GetRealWidth(98), |
| | | Height = Application.GetRealHeight(44), |
| | | Text = name, |
| | | TextSize = TextSize.text16, |
| | | TextColor = CSS.CSS_Color.textColor, |
| | | TextAlignment = TextAlignment.Center, |
| | | Radius = (uint)Application.GetRealHeight(8), |
| | | BorderWidth = 1, |
| | | BorderColor = CSS.CSS_Color.textCancelColor, |
| | | }; |
| | | currFLayout.AddChidren(nameBtn); |
| | | nameBtn.MouseUpEventHandler += (sender, e) => |
| | | { |
| | | action(nameBtn.Text); |
| | | }; |
| | | if (a % sum == 0) |
| | | { |
| | | break; |
| | | } |
| | | } |
| | | if (i == line - 1) |
| | | { |
| | | //最后一个元素后面加一个20高度间隔 |
| | | vv.AddChidren(new FrameLayout { Height = Application.GetRealHeight(20) }); |
| | | } |
| | | } |
| | | |
| | | } |
| | | /// <summary> |
| | | /// 获取列表 |
| | | /// </summary> |
| | | /// <param name="tag">标记值</param> |
| | | /// <returns></returns> |
| | | public List<string> GetList(string tag) |
| | | { |
| | | List<string> list = new List<string>(); |
| | | switch (tag) |
| | | { |
| | | case "默认按钮": |
| | | { |
| | | list.Add(Language.StringByID(StringId.dianyuan)); |
| | | list.Add(Language.StringByID(StringId.yinliangjia)); |
| | | list.Add(Language.StringByID(StringId.yinliangjian)); |
| | | list.Add(Language.StringByID(StringId.pindaojia)); |
| | | list.Add(Language.StringByID(StringId.pindaojian)); |
| | | list.Add(Language.StringByID(StringId.shang)); |
| | | list.Add(Language.StringByID(StringId.xia)); |
| | | list.Add(Language.StringByID(StringId.zuo)); |
| | | list.Add(Language.StringByID(StringId.you)); |
| | | list.Add(Language.StringByID(StringId.jingyin)); |
| | | list.Add(Language.StringByID(StringId.queren)); |
| | | list.Add(Language.StringByID(StringId.bofang)); |
| | | list.Add(Language.StringByID(StringId.xiayibu)); |
| | | list.Add(Language.StringByID(StringId.tuichu)); |
| | | list.Add(Language.StringByID(StringId.caidan)); |
| | | list.Add(Language.StringByID(StringId.zanting)); |
| | | list.Add(Language.StringByID(StringId.fanhui)); |
| | | list.Add(Language.StringByID(StringId.tingzhi)); |
| | | list.Add(Language.StringByID(StringId.zhuye)); |
| | | list.Add(Language.StringByID(StringId.kuaijin)); |
| | | list.Add(Language.StringByID(StringId.kuaitui)); |
| | | list.Add(Language.StringByID(StringId.dingshi)); |
| | | |
| | | } |
| | | break; |
| | | } |
| | | return list; |
| | | } |
| | | } |
| | | } |
New file |
| | |
| | | using System; |
| | | using HDL_ON.UI.UI2.Intelligence.Automation.LogicView; |
| | | using Shared; |
| | | namespace HDL_ON.UI.UI2.PersonalCenter.PirDevice.View |
| | | { |
| | | public class FailView |
| | | { |
| | | public void ShouError(Action<Dialog> action) |
| | | { |
| | | Dialog dialog = new Dialog(); |
| | | #region 界面布局 |
| | | dialog.BackgroundColor = CSS.CSS_Color.viewMiddle; |
| | | PirDevice.View.TopView topView = new View.TopView(); |
| | | topView.topNameBtn.TextID = StringId.tianjiayaokongqi; |
| | | dialog.AddChidren(topView.FLayoutView()); |
| | | topView.clickBackBtn.MouseUpEventHandler += (sender, e) => { dialog.Close(); }; |
| | | |
| | | FrameLayout fLayout = new FrameLayout |
| | | { |
| | | Y = Application.GetRealHeight(64), |
| | | BackgroundColor = CSS.CSS_Color.textWhiteColor, |
| | | Height = Application.GetRealHeight(667-64), |
| | | Width = Application.GetRealWidth(375), |
| | | }; |
| | | dialog.AddChidren(fLayout); |
| | | |
| | | //图标 |
| | | Button iconBtn = new Button |
| | | { |
| | | Y = Application.GetRealHeight(106), |
| | | X = Application.GetRealWidth(98), |
| | | Width = Application.GetRealWidth(180), |
| | | Height = Application.GetRealWidth(180), |
| | | UnSelectedImagePath = "PirIcon/failed.png", |
| | | }; |
| | | fLayout.AddChidren(iconBtn); |
| | | |
| | | //添加失败 |
| | | Button text1Btn = new Button |
| | | { |
| | | Width = Application.GetRealWidth(375 - 32), |
| | | Height = Application.GetRealHeight(22), |
| | | Y = Application.GetRealHeight(302), |
| | | X = Application.GetRealWidth(16), |
| | | TextID = StringId.tianjiashibai, |
| | | TextSize = TextSize.text16, |
| | | TextColor = CSS.CSS_Color.textRedColor, |
| | | TextAlignment = TextAlignment.Center, |
| | | }; |
| | | fLayout.AddChidren(text1Btn); |
| | | //重试 |
| | | View.SaveView saveView = new View.SaveView(); |
| | | dialog.AddChidren(saveView.FLayoutView()); |
| | | saveView.btnSave.TextID = StringId.chongshii; |
| | | saveView.frameLayout.BackgroundColor = CSS.CSS_Color.viewLine; |
| | | saveView.frameLayout.SetCornerWithSameRadius(Application.GetRealHeight(24), HDLUtils.RectCornerTopLeft | HDLUtils.RectCornerTopRight); |
| | | dialog.Show(); |
| | | saveView.btnClick.MouseUpEventHandler += (sender,e) => { |
| | | action(dialog); |
| | | }; |
| | | #endregion |
| | | |
| | | } |
| | | } |
| | | } |
New file |
| | |
| | | using System; |
| | | using HDL_ON.UI.UI2.Intelligence.Automation.LogicView; |
| | | using Shared; |
| | | namespace HDL_ON.UI.UI2.PersonalCenter.PirDevice.View |
| | | { |
| | | |
| | | public class PatchView |
| | | { |
| | | /// <summary> |
| | | /// 主控件View |
| | | /// </summary> |
| | | public FrameLayout frameLayout = new FrameLayout |
| | | { |
| | | Height = Application.GetRealHeight(44), |
| | | BackgroundColor = CSS.CSS_Color.textWhiteColor, |
| | | }; |
| | | |
| | | /// <summary> |
| | | /// 文本描述1 |
| | | /// </summary> |
| | | public Button btnText1 = new Button |
| | | { |
| | | X = Application.GetRealWidth(16), |
| | | Width = Application.GetRealWidth(300), |
| | | Height = Application.GetRealHeight(20), |
| | | TextColor = CSS.CSS_Color.textColor, |
| | | TextSize = TextSize.text14, |
| | | Gravity = Gravity.CenterVertical, |
| | | TextAlignment = TextAlignment.CenterLeft, |
| | | }; |
| | | |
| | | /// <summary> |
| | | /// 文本描述2 |
| | | /// </summary> |
| | | public Button btnText2 = new Button |
| | | { |
| | | X = Application.GetRealWidth(375 - 40 - 150), |
| | | Width = Application.GetRealWidth(150), |
| | | Height = Application.GetRealHeight(20), |
| | | TextColor = CSS.CSS_Color.textTipColor, |
| | | TextSize = TextSize.text14, |
| | | Gravity = Gravity.CenterVertical, |
| | | TextAlignment = TextAlignment.CenterRight, |
| | | }; |
| | | /// <summary> |
| | | /// 图标 |
| | | /// </summary> |
| | | public Button btnNextIcon = new Button |
| | | { |
| | | Width = Application.GetRealWidth(16), |
| | | Height = Application.GetRealWidth(16), |
| | | UnSelectedImagePath = "PirIcon/next.png", |
| | | X = Application.GetRealWidth(343), |
| | | Gravity = Gravity.CenterVertical, |
| | | }; |
| | | |
| | | /// <summary> |
| | | /// 线 |
| | | /// </summary> |
| | | public Button btnLine = new Button |
| | | { |
| | | Width = Application.GetRealWidth(343), |
| | | X = Application.GetRealWidth(16), |
| | | Height = 1, |
| | | BackgroundColor = CSS.CSS_Color.viewLine, |
| | | |
| | | }; |
| | | |
| | | public Button btnClick = new Button |
| | | { |
| | | Height = Application.GetRealHeight(44), |
| | | }; |
| | | /// <summary> |
| | | /// View的方法 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | public FrameLayout FLayoutView(bool if_bool = true) |
| | | { |
| | | frameLayout.AddChidren(btnText1); |
| | | frameLayout.AddChidren(btnText2); |
| | | if (if_bool) |
| | | { |
| | | btnText2.X = Application.GetRealWidth(375 - 40 - 150); |
| | | frameLayout.AddChidren(btnNextIcon); |
| | | } |
| | | else |
| | | { |
| | | btnText2.X = Application.GetRealWidth(375 - 16 - 150); |
| | | } |
| | | btnLine.Y = frameLayout.Height - 1; |
| | | frameLayout.AddChidren(btnLine); |
| | | frameLayout.AddChidren(btnClick); |
| | | return frameLayout; |
| | | } |
| | | } |
| | | } |
New file |
| | |
| | | using System; |
| | | using HDL_ON.UI.UI2.Intelligence.Automation.LogicView; |
| | | using Shared; |
| | | using System.Collections.Generic; |
| | | using System.Text; |
| | | namespace HDL_ON.UI.UI2.PersonalCenter.PirDevice.View |
| | | { |
| | | public class ReplicationView |
| | | { |
| | | Dialog dialog = new Dialog(); |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public void Show() |
| | | { |
| | | #region 界面布局 |
| | | dialog.BackgroundColor = CSS.CSS_Color.viewMiddle; |
| | | PirDevice.View.TopView topView = new View.TopView(); |
| | | topView.topNameBtn.TextID = StringId.fuzhiyaokonggongnneg; |
| | | dialog.AddChidren(topView.FLayoutView()); |
| | | topView.clickBackBtn.MouseUpEventHandler += (sender, e) => { dialog.Close();}; |
| | | FrameLayout frameLayout = new FrameLayout(); |
| | | frameLayout.Height = Application.GetRealHeight(667 - 64); |
| | | frameLayout.Y = Application.GetRealHeight(64); |
| | | // frameLayout.BackgroundColor = CSS.CSS_Color.textWhiteColor; |
| | | dialog.AddChidren(frameLayout); |
| | | var textBtn = new Button |
| | | { |
| | | Y = Application.GetRealHeight(24), |
| | | X = Application.GetRealWidth(10), |
| | | Width = Application.GetRealWidth(375 - 20), |
| | | Height = Application.GetRealHeight(20), |
| | | TextSize = TextSize.text14, |
| | | TextColor = CSS.CSS_Color.textColor, |
| | | TextAlignment = TextAlignment.Center, |
| | | TextID = StringId.duizhunanxiaanniu, |
| | | }; |
| | | frameLayout.AddChidren(textBtn); |
| | | |
| | | var icon1Btn = new Button |
| | | { |
| | | Y = Application.GetRealHeight(91), |
| | | X = Application.GetRealWidth((375 - 149) / 2), |
| | | Width = Application.GetRealWidth(149), |
| | | Height = Application.GetRealHeight(95), |
| | | UnSelectedImagePath = "PirIcon/icon1.png", |
| | | }; |
| | | frameLayout.AddChidren(icon1Btn); |
| | | var icon2Btn = new Button |
| | | { |
| | | Y = Application.GetRealHeight(289), |
| | | X = Application.GetRealWidth(122), |
| | | Width = Application.GetRealWidth(182), |
| | | Height = Application.GetRealHeight(314), |
| | | UnSelectedImagePath = "PirIcon/icon2.png", |
| | | }; |
| | | frameLayout.AddChidren(icon2Btn); |
| | | dialog.Show(); |
| | | #endregion |
| | | |
| | | } |
| | | /// <summary> |
| | | /// 移除当前界面 |
| | | /// </summary> |
| | | public void RemView() { |
| | | dialog.Close(); |
| | | } |
| | | } |
| | | } |
New file |
| | |
| | | using System; |
| | | using HDL_ON.UI.UI2.Intelligence.Automation.LogicView; |
| | | using Shared; |
| | | namespace HDL_ON.UI.UI2.PersonalCenter.PirDevice.View |
| | | { |
| | | public class SaveView |
| | | { |
| | | /// <summary> |
| | | /// 主控件View |
| | | /// </summary> |
| | | public FrameLayout frameLayout = new FrameLayout |
| | | { |
| | | Y = Application.GetRealHeight(TextSize.view667 - 76), |
| | | Height = Application.GetRealHeight(76), |
| | | Width = Application.GetRealWidth(TextSize.view375), |
| | | Gravity = Gravity.BottomCenter,//置底的属性 |
| | | BackgroundColor = CSS.CSS_Color.view, |
| | | |
| | | }; |
| | | /// <summary> |
| | | /// 保存 |
| | | /// </summary> |
| | | public Button btnSave = new Button |
| | | { |
| | | Width = Application.GetRealWidth(220), |
| | | Height = Application.GetRealHeight(44), |
| | | Y = Application.GetRealHeight(12), |
| | | X = Application.GetRealWidth(78), |
| | | TextID = StringId.save, |
| | | TextSize = TextSize.text16, |
| | | TextColor = CSS.CSS_Color.textWhiteColor, |
| | | TextAlignment = TextAlignment.Center, |
| | | BackgroundColor = CSS.CSS_Color.btnSaveBackgroundColor, |
| | | Radius = (uint)Application.GetRealHeight(22), |
| | | |
| | | }; |
| | | public Button btnClick = new Button |
| | | { |
| | | Height = Application.GetRealHeight(76), |
| | | }; |
| | | /// <summary> |
| | | /// 保存 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | public FrameLayout FLayoutView() |
| | | { |
| | | frameLayout.AddChidren(btnSave); |
| | | frameLayout.AddChidren(btnClick); |
| | | return frameLayout; |
| | | } |
| | | } |
| | | } |
New file |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using HDL_ON.UI.CSS; |
| | | using HDL_ON.UI.Music; |
| | | using Shared; |
| | | namespace HDL_ON.UI.UI2.PersonalCenter.PirDevice.View |
| | | { |
| | | public class TipView |
| | | { |
| | | /// <summary> |
| | | /// 大框圆角值 |
| | | /// </summary> |
| | | public int RradiusFrameLayout = 15; |
| | | /// <summary> |
| | | /// 小框圆角值 |
| | | /// </summary> |
| | | public int radiusEditFrameLayout = 4; |
| | | |
| | | /// <summary> |
| | | /// 输入框 |
| | | /// </summary> |
| | | /// <param name="confirmAction">回调函数</param> |
| | | public void InputBox(string tnputEditTxet, Action<string, Dialog> confirmAction,bool if_bool=true) |
| | | { |
| | | Dialog dialog = new Dialog() |
| | | { |
| | | BackgroundColor = MusicColor.PopupBackgroundColor, |
| | | }; |
| | | |
| | | FrameLayout whiteView = new FrameLayout() |
| | | { |
| | | //Gravity = Gravity.Center, |
| | | X = Application.GetRealWidth(53), |
| | | Y = Application.GetRealHeight(264), |
| | | Width = Application.GetRealWidth(270), |
| | | Height = Application.GetRealHeight(201), |
| | | BackgroundColor = MusicColor.WhiteColor, |
| | | BorderColor = 0x00000000, |
| | | BorderWidth = 0, |
| | | Radius = (uint)Application.GetRealHeight(RradiusFrameLayout), |
| | | }; |
| | | dialog.AddChidren(whiteView); |
| | | |
| | | Button btnTitle = new Button() |
| | | { |
| | | Y = Application.GetRealHeight(20), |
| | | X = Application.GetRealWidth(35), |
| | | Height = Application.GetRealHeight(22), |
| | | Width = Application.GetRealWidth(200), |
| | | TextColor = MusicColor.SelectedColor, |
| | | TextSize = TextSize.Text16, |
| | | TextAlignment = TextAlignment.Center, |
| | | TextID = StringId.shuruyaokongqimingcheng, |
| | | |
| | | }; |
| | | whiteView.AddChidren(btnTitle); |
| | | |
| | | FrameLayout editBjView = new FrameLayout() |
| | | { |
| | | // Gravity = Gravity.CenterHorizontal, |
| | | Y = btnTitle.Bottom + Application.GetRealHeight(16), |
| | | X = Application.GetRealWidth(24), |
| | | Width = Application.GetRealWidth(222), |
| | | Height = Application.GetRealHeight(40), |
| | | BackgroundColor = MusicColor.ViewColor, |
| | | BorderColor = 0x00000000, |
| | | BorderWidth = 0, |
| | | Radius = (uint)Application.GetMinRealAverage(radiusEditFrameLayout), |
| | | }; |
| | | whiteView.AddChidren(editBjView); |
| | | |
| | | EditText editText = new EditText() |
| | | { |
| | | X = Application.GetRealWidth(12), |
| | | Y = Application.GetRealHeight(10), |
| | | Width = Application.GetRealWidth(160), |
| | | Height = Application.GetRealHeight(20), |
| | | Text = tnputEditTxet, |
| | | TextColor = MusicColor.TextColor, |
| | | TextSize = TextSize.Text14, |
| | | TextAlignment = TextAlignment.CenterLeft, |
| | | }; |
| | | editBjView.AddChidren(editText); |
| | | |
| | | Button clearIconBtn = new Button |
| | | { |
| | | X = Application.GetRealWidth(194), |
| | | Y = Application.GetRealHeight(8), |
| | | Width = Application.GetRealWidth(24), |
| | | Height = Application.GetRealWidth(24), |
| | | UnSelectedImagePath = "MusicIcon/clear.png", |
| | | }; |
| | | editBjView.AddChidren(clearIconBtn); |
| | | clearIconBtn.MouseUpEventHandler += (sender, e) => |
| | | { |
| | | editText.Text = ""; |
| | | }; |
| | | |
| | | |
| | | Button btnTipText = new Button |
| | | { |
| | | X = Application.GetRealWidth(24), |
| | | Y = editBjView.Bottom + Application.GetRealHeight(12), |
| | | Width = Application.GetRealWidth(211), |
| | | Height = Application.GetRealHeight(35), |
| | | Text = Language.StringByID(StringId.fengleichazhao).Replace("{\\r\\n}", "\r\n"), |
| | | IsMoreLines = true, |
| | | TextColor = MusicColor.MusicNoTxetColor, |
| | | TextSize = TextSize.Text12, |
| | | TextAlignment = TextAlignment.CenterLeft, |
| | | }; |
| | | whiteView.AddChidren(btnTipText); |
| | | |
| | | Button btnLine = new Button() |
| | | { |
| | | Y = whiteView.Height -Application.GetRealHeight(44 + 1), |
| | | Height = Application.GetRealHeight(1), |
| | | BackgroundColor = MusicColor.LineColor, |
| | | }; |
| | | whiteView.AddChidren(btnLine); |
| | | |
| | | Button btnCancel = new Button() |
| | | { |
| | | Y = btnLine.Bottom, |
| | | Width = Application.GetRealWidth(135), |
| | | Height = Application.GetRealHeight(44), |
| | | TextAlignment = TextAlignment.Center, |
| | | TextColor = MusicColor.TextCancelColor, |
| | | TextSize = TextSize.Text16, |
| | | TextID = StringId.cancelMusic, |
| | | Gravity = Gravity.BottomLeft, |
| | | }; |
| | | whiteView.AddChidren(btnCancel); |
| | | btnCancel.SetCornerWithSameRadius(Application.GetRealHeight(RradiusFrameLayout), HDLUtils.RectCornerBottomLeft); |
| | | |
| | | Button btnConfirm = new Button() |
| | | { |
| | | X = btnCancel.Right, |
| | | Y = btnLine.Bottom, |
| | | Width = Application.GetRealWidth(135), |
| | | Height = Application.GetRealHeight(44), |
| | | TextAlignment = TextAlignment.Center, |
| | | TextColor = MusicColor.WhiteColor, |
| | | IsBold = true, |
| | | TextSize = TextSize.Text16, |
| | | TextID = StringId.confirmMusic, |
| | | BackgroundColor = MusicColor.SelectedColor, |
| | | Gravity = Gravity.BottomRight, |
| | | }; |
| | | whiteView.AddChidren(btnConfirm); |
| | | btnConfirm.SetCornerWithSameRadius(Application.GetRealHeight(RradiusFrameLayout), HDLUtils.RectCornerBottomRight); |
| | | dialog.Show(); |
| | | btnCancel.MouseUpEventHandler += (sender, e) => |
| | | { |
| | | dialog.Close(); |
| | | }; |
| | | |
| | | |
| | | |
| | | btnConfirm.MouseUpEventHandler += (sender, e) => |
| | | { |
| | | if (string.IsNullOrEmpty(editText.Text.Trim())) |
| | | { |
| | | return; |
| | | } |
| | | confirmAction(editText.Text.Trim(), dialog); |
| | | if (if_bool) { |
| | | dialog.Close(); |
| | | } |
| | | }; |
| | | |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | } |
| | | } |
New file |
| | |
| | | using System; |
| | | using HDL_ON.UI.UI2.Intelligence.Automation.LogicView; |
| | | using Shared; |
| | | namespace HDL_ON.UI.UI2.PersonalCenter.PirDevice.View |
| | | { |
| | | public class TopView |
| | | { |
| | | #region 最上面那块控件 |
| | | /// <summary> |
| | | /// 最上面块View |
| | | /// </summary> |
| | | public FrameLayout frameLayout = new FrameLayout |
| | | { |
| | | BackgroundColor = CSS.CSS_Color.viewTop, |
| | | Height = Application.GetRealHeight(64), |
| | | Width = Application.GetRealWidth(375), |
| | | }; |
| | | /// <summary> |
| | | /// 标题Btn |
| | | /// </summary> |
| | | public Button topNameBtn = new Button |
| | | { |
| | | TextSize = TextSize.text18, |
| | | TextColor = CSS.CSS_Color.textColor, |
| | | Width = Application.GetRealWidth(TextSize.view375 - 60 - 60), |
| | | Height = Application.GetRealHeight(25), |
| | | Y = Application.GetRealHeight(30), |
| | | X = Application.GetRealWidth(60) |
| | | }; |
| | | /// <summary> |
| | | /// 后退Btn |
| | | /// </summary> |
| | | public Button backBtn = new Button |
| | | { |
| | | Width = Application.GetRealWidth(12), |
| | | Height = Application.GetRealWidth(20), |
| | | X = Application.GetRealWidth(TextSize.left16), |
| | | Y = Application.GetRealHeight(32), |
| | | UnSelectedImagePath = "LogicIcon/back.png", |
| | | |
| | | }; |
| | | /// <summary> |
| | | /// 图标Btn |
| | | /// </summary> |
| | | public Button topIconBtn = new Button |
| | | { |
| | | Y = Application.GetRealHeight(29), |
| | | X = Application.GetRealWidth(337), |
| | | Width = Application.GetRealWidth(28), |
| | | Height = Application.GetRealWidth(28), |
| | | UnSelectedImagePath = "PirIcon/adddevice.png", |
| | | Visible = false, |
| | | }; |
| | | /// <summary> |
| | | /// 增加热键大小Btn |
| | | /// </summary> |
| | | public Button clickBackBtn = new Button |
| | | { |
| | | Width = Application.GetRealWidth(16 + 12 + 16), |
| | | Height = Application.GetRealHeight(64), |
| | | }; |
| | | /// <summary> |
| | | /// 设置图标增加热键大小 |
| | | /// </summary> |
| | | public Button clickSetBtn = new Button |
| | | { |
| | | X = Application.GetRealWidth(337 - 37), |
| | | Width = Application.GetRealWidth(28 + 37), |
| | | Height = Application.GetRealWidth(28 + 7 + 29), |
| | | }; |
| | | /// <summary> |
| | | /// 最上面的那块方法 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | public FrameLayout FLayoutView() |
| | | { |
| | | frameLayout.AddChidren(topNameBtn); |
| | | frameLayout.AddChidren(backBtn); |
| | | frameLayout.AddChidren(topIconBtn); |
| | | frameLayout.AddChidren(clickBackBtn); |
| | | frameLayout.AddChidren(clickSetBtn); |
| | | return frameLayout; |
| | | } |
| | | #endregion |
| | | } |
| | | } |
| | | |
| | |
| | | this.RefreshNowDeviceStatuMemory(this.device); |
| | | //刷新界面状态 |
| | | this.RefreshFormStatu(); |
| | | //读取状态 |
| | | new System.Threading.Thread(() => |
| | | { |
| | | DriverLayer.Control.Ins.SendReadCommand(device); |
| | | }) |
| | | { IsBackground = true }.Start(); |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | var temp = device.status.Find((sta) => sta.key == FunctionAttributeKey.Status); |
| | | if (temp != null) |
| | | { |
| | | if (temp.value == "true") |
| | | if (temp.value == "open") |
| | | { |
| | | btnIcon.IsSelected = true; |
| | | btnSuctionView.TextID = StringId.Open; |
| | |
| | | /// </summary> |
| | | private void RefreshNowDeviceStatuMemory(Function i_LocalDevice) |
| | | { |
| | | foreach (var data in i_LocalDevice.status) |
| | | { |
| | | //开关 |
| | | //if (data.key == "on_off") { this.weepRobotData.Cleaning = data.value.ToLower() == "on"; } |
| | | } |
| | | //foreach (var data in i_LocalDevice.status) |
| | | //{ |
| | | // if (data.key == FunctionAttributeKey.Status) |
| | | // { |
| | | // Application.RunOnMainThread(() => |
| | | // { |
| | | // if (data.value.ToLower() == "open") |
| | | // { |
| | | // this.btnIcon.IsSelected = true; |
| | | // this.btnSuctionView.IsSelected = true; |
| | | // this.btnSuctionView.TextID = StringId.Open; |
| | | // } |
| | | // else |
| | | // { |
| | | // this.btnIcon.IsSelected = false; |
| | | // this.btnSuctionView.IsSelected = false; |
| | | // this.btnSuctionView.TextID = StringId.Close; |
| | | // } |
| | | // }); |
| | | // } |
| | | //} |
| | | } |
| | | |
| | | #endregion |
| | |
| | | this.RefreshNowDeviceStatuMemory(this.device); |
| | | //刷新界面状态 |
| | | this.RefreshFormStatu(); |
| | | //读取状态 |
| | | new System.Threading.Thread(() => |
| | | { |
| | | DriverLayer.Control.Ins.SendReadCommand(device); |
| | | }) |
| | | { IsBackground = true }.Start(); |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | var temp = device.status.Find((sta) => sta.key == FunctionAttributeKey.Status); |
| | | if (temp != null) |
| | | { |
| | | if (temp.value == "true") |
| | | if (temp.value == "alarm") |
| | | { |
| | | btnIcon.IsSelected = true; |
| | | btnSuctionView.TextID = StringId.InAlarm; |
| | |
| | | /// </summary> |
| | | private void RefreshNowDeviceStatuMemory(Function i_LocalDevice) |
| | | { |
| | | foreach (var data in i_LocalDevice.status) |
| | | { |
| | | //开关 |
| | | //if (data.key == "on_off") { this.weepRobotData.Cleaning = data.value.ToLower() == "on"; } |
| | | } |
| | | //foreach (var data in i_LocalDevice.status) |
| | | //{ |
| | | // if (data.key == "status") |
| | | // { |
| | | // if (data.value.ToLower() == "alarm") |
| | | // { |
| | | // this.btnIcon.IsSelected = true; |
| | | // this.btnSuctionView.IsSelected = true; |
| | | // this.btnSuctionView.TextID = StringId.InAlarm; |
| | | // } |
| | | // else |
| | | // { |
| | | // this.btnIcon.IsSelected = false; |
| | | // this.btnSuctionView.IsSelected = false; |
| | | // this.btnSuctionView.TextID = StringId.SensorNormalState; |
| | | // } |
| | | // } |
| | | //} |
| | | } |
| | | |
| | | #endregion |
| | |
| | | this.RefreshNowDeviceStatuMemory(this.device); |
| | | //刷新界面状态 |
| | | this.RefreshFormStatu(); |
| | | //读取状态 |
| | | new System.Threading.Thread(() => |
| | | { |
| | | DriverLayer.Control.Ins.SendReadCommand(device); |
| | | }) |
| | | { IsBackground = true }.Start(); |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | var temp = device.status.Find((sta) => sta.key == FunctionAttributeKey.Status); |
| | | if (temp != null) |
| | | { |
| | | if (temp.value == "true") |
| | | if (temp.value == "alarm") |
| | | { |
| | | btnIcon.IsSelected = true; |
| | | btnSuctionView.TextID = StringId.WaterLeakage; |
| | |
| | | /// </summary> |
| | | private void RefreshNowDeviceStatuMemory(Function i_LocalDevice) |
| | | { |
| | | foreach (var data in i_LocalDevice.status) |
| | | { |
| | | //开关 |
| | | //if (data.key == "on_off") { this.weepRobotData.Cleaning = data.value.ToLower() == "on"; } |
| | | } |
| | | //foreach (var data in i_LocalDevice.status) |
| | | //{ |
| | | // if (data.value.ToLower() == "alarm") |
| | | // { |
| | | // this.btnIcon.IsSelected = true; |
| | | // this.btnSuctionView.IsSelected = true; |
| | | // this.btnSuctionView.TextID = StringId.WaterLeakage; |
| | | // } |
| | | // else |
| | | // { |
| | | // this.btnIcon.IsSelected = false; |
| | | // this.btnSuctionView.IsSelected = false; |
| | | // this.btnSuctionView.TextID = StringId.SensorNormalState; |
| | | // } |
| | | //} |
| | | } |
| | | |
| | | #endregion |
| | |
| | | using System; |
| | | using Shared; |
| | | using Shared; |
| | | using HDL_ON.Stan; |
| | | using HDL_ON.UI.CSS; |
| | | using HDL_ON.Entity; |
| | | using System.Collections.Generic; |
| | | using System; |
| | | using HDL_ON.DriverLayer; |
| | | |
| | | namespace HDL_ON.UI |
| | | { |
| | | /// <summary> |
| | | /// 晾衣架界面 |
| | | /// </summary> |
| | | public class ClothesHangerPage : FrameLayout |
| | | public class ClothesHangerPage : DeviceFunctionCardCommonForm |
| | | { |
| | | public ClothesHangerPage() |
| | | #region ■ 变量声明___________________________ |
| | | |
| | | /// <summary> |
| | | /// 图标 |
| | | /// </summary> |
| | | private Button btnIcon = null; |
| | | /// <summary> |
| | | /// 上升 |
| | | /// </summary> |
| | | Button btnUp; |
| | | /// <summary> |
| | | /// 停止 |
| | | /// </summary> |
| | | Button btnStop; |
| | | /// <summary> |
| | | /// 下降 |
| | | /// </summary> |
| | | Button btnDown; |
| | | /// <summary> |
| | | /// 烘干控件 |
| | | /// </summary> |
| | | ClothesHangerControl hotDryView; |
| | | /// <summary> |
| | | /// 风干控件 |
| | | /// </summary> |
| | | ClothesHangerControl windDryView; |
| | | /// <summary> |
| | | /// 消毒控件 |
| | | /// </summary> |
| | | ClothesHangerControl disinfectView; |
| | | /// <summary> |
| | | /// 照明控件 |
| | | /// </summary> |
| | | ClothesHangerControl lightingView; |
| | | |
| | | |
| | | #endregion |
| | | |
| | | #region ■ 初始化_____________________________ |
| | | |
| | | /// <summary> |
| | | /// 初始化白色区域的内容 |
| | | /// </summary> |
| | | public override void InitFrameWhiteContent() |
| | | { |
| | | base.ShowColltionButton = false; |
| | | base.SetTitleText(Language.StringByID(StringId.Electric)); |
| | | |
| | | //初始化第一个索引页的内容 |
| | | this.InitFrameWhiteContent1(); |
| | | |
| | | //刷新当前设备的状态缓存 |
| | | this.RefreshNowDeviceStatuMemory(this.device); |
| | | //刷新界面状态 |
| | | this.RefreshFormStatu(); |
| | | //读取状态 |
| | | new System.Threading.Thread(() => |
| | | { |
| | | Control.Ins.SendReadCommand(device); |
| | | }) |
| | | { IsBackground = true }.Start(); |
| | | } |
| | | |
| | | public void LoadPage() |
| | | /// <summary> |
| | | /// 初始化第一个索引页的内容 |
| | | /// </summary> |
| | | private void InitFrameWhiteContent1() |
| | | { |
| | | btnIcon = new Button() |
| | | { |
| | | Gravity = Gravity.CenterHorizontal, |
| | | Y = Application.GetRealHeight(85), |
| | | Width = Application.GetRealWidth(195), |
| | | Height = Application.GetRealHeight(121), |
| | | UnSelectedImagePath = "FunctionIcon/Electrical/ClothesHanger/ClothesHangerBgIcon.png", |
| | | SelectedImagePath = "FunctionIcon/Electrical/ClothesHanger/ClothesHangerBgIconOn.png", |
| | | }; |
| | | FrameWhiteCentet1.AddChidren(btnIcon); |
| | | |
| | | #region 上升 停止 下降 |
| | | btnUp = new Button() |
| | | { |
| | | X = Application.GetRealWidth(42), |
| | | Y = Application.GetRealHeight(236), |
| | | Width = Application.GetRealWidth(28), |
| | | Height = Application.GetRealWidth(28), |
| | | UnSelectedImagePath = "FunctionIcon/Electrical/ClothesHanger/ClothesHangerUpIcon.png", |
| | | SelectedImagePath = "FunctionIcon/Electrical/ClothesHanger/ClothesHangerUpIconOn.png", |
| | | }; |
| | | FrameWhiteCentet1.AddChidren(btnUp); |
| | | |
| | | btnStop = new Button() |
| | | { |
| | | Gravity = Gravity.CenterHorizontal, |
| | | Y = Application.GetRealHeight(236), |
| | | Width = Application.GetRealWidth(28), |
| | | Height = Application.GetRealWidth(28), |
| | | UnSelectedImagePath = "FunctionIcon/Electrical/ClothesHanger/ClothesHangerStopIcon.png", |
| | | SelectedImagePath = "FunctionIcon/Electrical/ClothesHanger/ClothesHangerStopIconOn.png", |
| | | }; |
| | | FrameWhiteCentet1.AddChidren(btnStop); |
| | | |
| | | btnDown = new Button() |
| | | { |
| | | X = Application.GetRealWidth(257), |
| | | Y = Application.GetRealHeight(236), |
| | | Width = Application.GetRealWidth(28), |
| | | Height = Application.GetRealWidth(28), |
| | | UnSelectedImagePath = "FunctionIcon/Electrical/ClothesHanger/ClothesHangerDownIcon.png", |
| | | SelectedImagePath = "FunctionIcon/Electrical/ClothesHanger/ClothesHangerDownIconOn.png", |
| | | }; |
| | | FrameWhiteCentet1.AddChidren(btnDown); |
| | | |
| | | #endregion |
| | | |
| | | #region 菜单 |
| | | var menu = new List<string>() { |
| | | FunctionAttributeKey.HotDry, |
| | | FunctionAttributeKey.WindDry, |
| | | FunctionAttributeKey.Disinfect, |
| | | FunctionAttributeKey.OnOff |
| | | }; |
| | | |
| | | int index = 0; |
| | | List<string> attrs = device.GetAttributes(); |
| | | |
| | | hotDryView = new ClothesHangerControl( |
| | | "FunctionIcon/Electrical/ClothesHanger/ClothesHangerHotDryIcon.png", |
| | | "FunctionIcon/Electrical/ClothesHanger/ClothesHangerHotDryIconOn.png", |
| | | Language.StringByID(StringId.HotDry), |
| | | device.GetAttrState(FunctionAttributeKey.HotDryTimeLeft)); |
| | | hotDryView.X = 0; |
| | | hotDryView.Y = Application.GetRealHeight(304); |
| | | hotDryView.Width = Application.GetRealWidth(96); |
| | | hotDryView.Height = Application.GetRealHeight(74);//28 29 14 3 |
| | | if (attrs.Contains(menu[0])) |
| | | { |
| | | FrameWhiteCentet1.AddChidren(hotDryView); |
| | | |
| | | EventHandler<MouseEventArgs> eventHandler = (sender, e) => { |
| | | device.SetAttrState(FunctionAttributeKey.HotDry, "true"); |
| | | Dictionary<string, string> d = new Dictionary<string, string>(); |
| | | d.Add(FunctionAttributeKey.HotDry, "true"); |
| | | Control.Ins.SendWriteCommand(device, d); |
| | | }; |
| | | hotDryView.SetThouchEvent(eventHandler); |
| | | |
| | | index++; |
| | | } |
| | | |
| | | windDryView = new ClothesHangerControl( |
| | | "FunctionIcon/Electrical/ClothesHanger/ClothesHangerWindDryIcon.png", |
| | | "FunctionIcon/Electrical/ClothesHanger/ClothesHangerWindDryIconOn.png", |
| | | Language.StringByID(StringId.WindDry), |
| | | device.GetAttrState(FunctionAttributeKey.WindDryTimeLeft)); |
| | | windDryView.Y = Application.GetRealHeight(304); |
| | | windDryView.Width = Application.GetRealWidth(96); |
| | | windDryView.Height = Application.GetRealHeight(74); |
| | | if (attrs.Contains(menu[1])) |
| | | { |
| | | if(index == 1) |
| | | { |
| | | windDryView.Gravity = Gravity.CenterHorizontal; |
| | | } |
| | | FrameWhiteCentet1.AddChidren(windDryView); |
| | | |
| | | EventHandler<MouseEventArgs> eventHandler = (sender, e) => { |
| | | device.SetAttrState(FunctionAttributeKey.WindDry, "true"); |
| | | Dictionary<string, string> d = new Dictionary<string, string>(); |
| | | d.Add(FunctionAttributeKey.WindDry, "true"); |
| | | Control.Ins.SendWriteCommand(device, d); |
| | | }; |
| | | windDryView.SetThouchEvent(eventHandler); |
| | | |
| | | index++; |
| | | } |
| | | |
| | | |
| | | |
| | | disinfectView = new ClothesHangerControl( |
| | | "FunctionIcon/Electrical/ClothesHanger/ClothesHangerDisinfectIcon.png", |
| | | "FunctionIcon/Electrical/ClothesHanger/ClothesHangerDisinfectIconOn.png", |
| | | Language.StringByID(StringId.Disinfect), |
| | | device.GetAttrState(FunctionAttributeKey.DisinfectTimeLeft)); |
| | | disinfectView.Y = Application.GetRealHeight(304); |
| | | disinfectView.Width = Application.GetRealWidth(96); |
| | | disinfectView.Height = Application.GetRealHeight(74); |
| | | if (attrs.Contains(menu[2])) |
| | | { |
| | | if(index == 1) |
| | | { |
| | | disinfectView.Gravity = Gravity.CenterHorizontal; |
| | | } |
| | | else if (index == 2) |
| | | { |
| | | disinfectView.X = Application.GetRealWidth(266 - 33); |
| | | } |
| | | FrameWhiteCentet1.AddChidren(disinfectView); |
| | | |
| | | EventHandler<MouseEventArgs> eventHandler = (sender, e) => { |
| | | device.SetAttrState(FunctionAttributeKey.Disinfect, "true"); |
| | | Dictionary<string, string> d = new Dictionary<string, string>(); |
| | | d.Add(FunctionAttributeKey.Disinfect, "true"); |
| | | Control.Ins.SendWriteCommand(device, d); |
| | | }; |
| | | disinfectView.SetThouchEvent(eventHandler); |
| | | |
| | | index++; |
| | | } |
| | | |
| | | lightingView = new ClothesHangerControl( |
| | | "FunctionIcon/Electrical/ClothesHanger/ClothesHangerLightIcon.png", |
| | | "FunctionIcon/Electrical/ClothesHanger/ClothesHangerLightIconOn.png", |
| | | Language.StringByID(StringId.Lighting), |
| | | ""); |
| | | lightingView.Width = Application.GetRealWidth(96); |
| | | lightingView.Height = Application.GetRealHeight(74); |
| | | if (attrs.Contains(menu[3])) |
| | | { |
| | | if(index >2) |
| | | { |
| | | lightingView.Y = Application.GetRealHeight(409); |
| | | }else |
| | | { |
| | | lightingView.Y = Application.GetRealHeight(304); |
| | | if (index == 1) |
| | | { |
| | | lightingView.Gravity = Gravity.CenterHorizontal; |
| | | } |
| | | else if (index == 2) |
| | | { |
| | | lightingView.X = Application.GetRealWidth(266 - 33); |
| | | } |
| | | } |
| | | FrameWhiteCentet1.AddChidren(lightingView); |
| | | |
| | | EventHandler<MouseEventArgs> eventHandler = (sender, e) => { |
| | | string onoff = lightingView.Lighting ? "off" : "on"; |
| | | device.SetAttrState(FunctionAttributeKey.OnOff, onoff); |
| | | Dictionary<string, string> d = new Dictionary<string, string>(); |
| | | d.Add(FunctionAttributeKey.OnOff, onoff); |
| | | Control.Ins.SendWriteCommand(device, d); |
| | | }; |
| | | lightingView.SetThouchEvent(eventHandler); |
| | | |
| | | index++; |
| | | } |
| | | |
| | | #endregion |
| | | } |
| | | #endregion |
| | | |
| | | #region ■ 设备状态反馈_______________________ |
| | | |
| | | /// <summary> |
| | | /// 设备状态反馈 |
| | | /// </summary> |
| | | /// <param name="i_LocalDevice"></param> |
| | | public override void DeviceStatuPush(Function i_LocalDevice) |
| | | { |
| | | //不是同一个东西 |
| | | if (this.device.sid != i_LocalDevice.sid) { return; } |
| | | |
| | | //刷新当前设备的状态缓存 |
| | | this.RefreshNowDeviceStatuMemory(i_LocalDevice); |
| | | //刷新界面状态 |
| | | this.RefreshFormStatu(); |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region ■ 发送各种命令_______________________ |
| | | |
| | | #endregion |
| | | |
| | | #region ■ 刷新界面状态_______________________ |
| | | |
| | | /// <summary> |
| | | /// 刷新界面状态 |
| | | /// </summary> |
| | | private void RefreshFormStatu() |
| | | { |
| | | Application.RunOnMainThread(() => { |
| | | btnIcon.IsSelected = true; |
| | | #region 点亮文本 |
| | | var hotDryTemp = device.status.Find((sta) => sta.key == FunctionAttributeKey.HotDry); |
| | | if (hotDryTemp != null) |
| | | { |
| | | hotDryView.SetViewStatus(hotDryTemp.value == "true"); |
| | | } |
| | | var windDryTemp = device.status.Find((sta) => sta.key == FunctionAttributeKey.WindDry); |
| | | if (windDryTemp != null) |
| | | { |
| | | windDryView.SetViewStatus(windDryTemp.value == "true"); |
| | | } |
| | | var disinfectTemp = device.status.Find((sta) => sta.key == FunctionAttributeKey.Disinfect); |
| | | if (disinfectTemp != null) |
| | | { |
| | | disinfectView.SetViewStatus(disinfectTemp.value == "true"); |
| | | } |
| | | var lightTemp = device.status.Find((sta) => sta.key == FunctionAttributeKey.OnOff); |
| | | if (lightTemp != null) |
| | | { |
| | | lightingView.SetViewStatus(lightTemp.value == "on"); |
| | | } |
| | | #endregion |
| | | |
| | | #region 修改时间 |
| | | var hotDryTimeLeftTemp = device.status.Find((sta) => sta.key == FunctionAttributeKey.HotDryTimeLeft); |
| | | if (hotDryTimeLeftTemp != null) |
| | | { |
| | | hotDryView.ChangeTime(hotDryTimeLeftTemp.value); |
| | | } |
| | | var windDryTimeLeftTemp = device.status.Find((sta) => sta.key == FunctionAttributeKey.WindDryTimeLeft); |
| | | if (windDryTimeLeftTemp != null) |
| | | { |
| | | windDryView.ChangeTime(windDryTimeLeftTemp.value); |
| | | } |
| | | var disinfectTimeLeftTemp = device.status.Find((sta) => sta.key == FunctionAttributeKey.DisinfectTimeLeft); |
| | | if (disinfectTimeLeftTemp != null) |
| | | { |
| | | disinfectView.ChangeTime(disinfectTimeLeftTemp.value); |
| | | } |
| | | #endregion |
| | | |
| | | |
| | | }); |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region ■ 一般方法___________________________ |
| | | |
| | | /// <summary> |
| | | /// 刷新当前设备的状态缓存 |
| | | /// </summary> |
| | | private void RefreshNowDeviceStatuMemory(Function i_LocalDevice) |
| | | { |
| | | foreach (var data in i_LocalDevice.status) |
| | | { |
| | | //开关 |
| | | //if (data.key == "on_off") { this.weepRobotData.Cleaning = data.value.ToLower() == "on"; } |
| | | } |
| | | } |
| | | |
| | | #endregion |
| | | } |
| | | |
| | | public class ClothesHangerControl : FrameLayout |
| | | { |
| | | private Button btnIcon; |
| | | private Button btnTitle; |
| | | private Button btnTime; |
| | | /// <summary> |
| | | /// 控件是否点亮 |
| | | /// </summary> |
| | | public bool Lighting = false; |
| | | |
| | | public ClothesHangerControl(string iconPath1, string iconPath2,string title,string time) |
| | | { |
| | | btnIcon = new Button() |
| | | { |
| | | Gravity = Gravity.CenterHorizontal, |
| | | Width = Application.GetRealWidth(28), |
| | | Height = Application.GetRealWidth(28), |
| | | UnSelectedImagePath = iconPath1, |
| | | SelectedImagePath = iconPath2, |
| | | }; |
| | | this.AddChidren(btnIcon); |
| | | |
| | | btnTitle = new Button() |
| | | { |
| | | Gravity = Gravity.Center, |
| | | Text = title, |
| | | Height = Application.GetRealHeight(42), |
| | | TextColor = CSS_Color.TextualColor, |
| | | SelectedTextColor = CSS_Color.MainColor, |
| | | TextSize = CSS_FontSize.PromptFontSize_FirstLevel, |
| | | }; |
| | | this.AddChidren(btnTitle); |
| | | |
| | | btnTime = new Button() |
| | | { |
| | | Gravity = Gravity.CenterHorizontal, |
| | | Y = btnTitle.Bottom, |
| | | Height = Application.GetRealHeight(32), |
| | | Text = time, |
| | | TextColor = 0x00000000, |
| | | SelectedTextColor = CSS_Color.MainColor, |
| | | TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel, |
| | | }; |
| | | this.AddChidren(btnTime); |
| | | } |
| | | /// <summary> |
| | | /// 修改显示时间 |
| | | /// </summary> |
| | | /// <param name="newTime"></param> |
| | | public void ChangeTime (string newTime) |
| | | { |
| | | if(newTime == "0") |
| | | { |
| | | newTime = ""; |
| | | } |
| | | |
| | | int time = 0; |
| | | int.TryParse(newTime, out time); |
| | | time = time * 60; |
| | | |
| | | if (countdownThread == null) |
| | | { |
| | | countdownThread = new System.Threading.Thread(() => { |
| | | while(true) |
| | | { |
| | | if(time>1) |
| | | { |
| | | Application.RunOnMainThread(() => |
| | | { |
| | | btnTime.Text = new TimeSpan(0, 0, time).ToString(); |
| | | }); |
| | | System.Threading.Thread.Sleep(1000); |
| | | time--; |
| | | }else |
| | | { |
| | | Application.RunOnMainThread(() => |
| | | { |
| | | btnTime.Text = ""; |
| | | }); |
| | | } |
| | | } |
| | | }) { IsBackground = true }; |
| | | countdownThread.Start(); |
| | | } |
| | | } |
| | | |
| | | public void SetViewStatus(bool state) |
| | | { |
| | | btnIcon.IsSelected = btnTitle.IsSelected = btnTime.IsSelected = Lighting = state; |
| | | } |
| | | |
| | | public bool GetViewState() |
| | | { |
| | | return Lighting; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 设置点击事件 |
| | | /// </summary> |
| | | public void SetThouchEvent(EventHandler<MouseEventArgs> eventHandler) |
| | | { |
| | | btnIcon.MouseUpEventHandler = eventHandler; |
| | | btnTime.MouseUpEventHandler = eventHandler; |
| | | btnTitle.MouseUpEventHandler = eventHandler; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 倒计时线程 |
| | | /// </summary> |
| | | System.Threading.Thread countdownThread; |
| | | } |
| | | } |
| | |
| | | //Control.Send(CommandType_A.write, this.fan); |
| | | System.Collections.Generic.Dictionary<string, string> d = new System.Collections.Generic.Dictionary<string, string>(); |
| | | d.Add("on_off", fan.trait_on_off.curValue.ToString()); |
| | | d.Add("fan_speed_percent", fan.openLevel.ToString()); |
| | | Control.Ins.SendWriteCommand(fan, d); |
| | | }) |
| | | { IsBackground = true }.Start(); |
| | |
| | | //Control.Send(CommandType_A.write, this.fan); |
| | | System.Collections.Generic.Dictionary<string, string> d = new System.Collections.Generic.Dictionary<string, string>(); |
| | | d.Add("on_off", fan.trait_on_off.curValue.ToString()); |
| | | d.Add("fan_speed_percent", fan.openLevel.ToString()); |
| | | Control.Ins.SendWriteCommand(fan, d); |
| | | }) |
| | | { IsBackground = true }.Start(); |
| | |
| | | //Control.Send(CommandType_A.write, this.fan); |
| | | System.Collections.Generic.Dictionary<string, string> d = new System.Collections.Generic.Dictionary<string, string>(); |
| | | d.Add("on_off", fan.trait_on_off.curValue.ToString()); |
| | | d.Add("fan_speed_percent", fan.openLevel.ToString()); |
| | | Control.Ins.SendWriteCommand(fan, d); |
| | | }) |
| | | { IsBackground = true }.Start(); |
old mode 100755
new mode 100644
| | |
| | | frameBack.AddChidren(rowTime);
|
| | | btnCaption = rowTime.AddLeftCaption(Language.StringByID(StringId.TotalCleaningTime), 200);
|
| | | btnCaption.TextColor = CSS.CSS_Color.FirstLevelTitleColor;
|
| | | rowTime.AddMostRightView((robotData.CleanTime / 60) + "min", 100);
|
| | | rowTime.AddMostRightView((robotData.CleanTime) + "min", 100);
|
| | | }
|
| | |
|
| | | #endregion
|
| | |
| | | btnVoiceIcon.X = btnChargeIcon.Right + Application.GetRealWidth(50);
|
| | | btnVoiceIcon.UnSelectedImagePath = "FunctionIcon/Electrical/WeepRobot/Voice.png";
|
| | | btnVoiceIcon.SelectedImagePath = "FunctionIcon/Electrical/WeepRobot/VoiceSelect.png";
|
| | | btnVoiceIcon.IsSelected = true;
|
| | | FrameWhiteCentet1.AddChidren(btnVoiceIcon);
|
| | | btnVoiceIcon.ButtonClickEvent += (sender, e) =>
|
| | | {
|
| | |
| | |
|
| | | //吸力1档
|
| | | var iconPath = this.weepRobotData.Suction == "quiet" ? "FunctionIcon/Electrical/WeepRobot/SuctionSelect.png" : "FunctionIcon/Electrical/WeepRobot/Suction.png";
|
| | | menuContr.AddRowMenu(Language.StringByID(StringId.SuctionOneGear), iconPath, this.weepRobotData.Suction == "strong", () =>
|
| | | menuContr.AddRowMenu(Language.StringByID(StringId.SuctionOneGear), iconPath, this.weepRobotData.Suction == "quiet", () =>
|
| | | {
|
| | | frameBack.Close();
|
| | | //发送吸力命令
|
| | |
| | |
|
| | | //吸力3档
|
| | | iconPath = this.weepRobotData.Suction == "strong" ? "FunctionIcon/Electrical/WeepRobot/SuctionSelect.png" : "FunctionIcon/Electrical/WeepRobot/Suction.png";
|
| | | menuContr.AddRowMenu(Language.StringByID(StringId.SuctionThreeGear), iconPath, this.weepRobotData.Suction == "quiet", () =>
|
| | | menuContr.AddRowMenu(Language.StringByID(StringId.SuctionThreeGear), iconPath, this.weepRobotData.Suction == "strong", () =>
|
| | | {
|
| | | frameBack.Close();
|
| | | //发送吸力命令
|
| | |
| | | //如果是清扫状态
|
| | | if (this.weepRobotData.Cleaning == true)
|
| | | {
|
| | | //吸力调节不可用
|
| | | this.btnSuctionIcon.IsSelected = false;
|
| | | this.btnSuctionIcon.CanClick = false;
|
| | | //吸力调节可用
|
| | | this.btnSuctionIcon.IsSelected = true;
|
| | | this.btnSuctionIcon.CanClick = true;
|
| | | //声音不可用
|
| | | this.btnVoiceIcon.IsSelected = false;
|
| | | this.btnVoiceIcon.CanClick = false;
|
| | | //this.btnVoiceIcon.IsSelected = false;
|
| | | //this.btnVoiceIcon.CanClick = false;
|
| | | //清扫模式不可用
|
| | | this.btnModeIcon.IsSelected = false;
|
| | | this.btnModeIcon.CanClick = false;
|
| | |
| | | }
|
| | | else
|
| | | {
|
| | | //吸力调节可用
|
| | | this.btnSuctionIcon.IsSelected = true;
|
| | | this.btnSuctionIcon.CanClick = true;
|
| | | //吸力调节不可用
|
| | | this.btnSuctionIcon.IsSelected = false;
|
| | | this.btnSuctionIcon.CanClick = false;
|
| | | //声音可用
|
| | | this.btnVoiceIcon.IsSelected = true;
|
| | | this.btnVoiceIcon.CanClick = true;
|
| | | //this.btnVoiceIcon.IsSelected = true;
|
| | | //this.btnVoiceIcon.CanClick = true;
|
| | | //清扫模式可用
|
| | | this.btnModeIcon.IsSelected = true;
|
| | | this.btnModeIcon.CanClick = true;
|
| | |
| | | /// </summary>
|
| | | private void RefreshNowDeviceStatuMemory(Function i_LocalDevice)
|
| | | {
|
| | | foreach (var data in i_LocalDevice.status)
|
| | | for (int i = 0; i < i_LocalDevice.status.Count; i++)
|
| | | {
|
| | | var data = i_LocalDevice.status[i];
|
| | | //开关
|
| | | if (data.key == "on_off") { this.weepRobotData.Cleaning = data.value.ToLower() == "on"; }
|
| | | //寻找机器
|
| | |
| | | /// <summary>
|
| | | /// 是否处于清扫中
|
| | | /// </summary>
|
| | | public bool Cleaning = true;
|
| | | public bool Cleaning = false;
|
| | | /// <summary>
|
| | | /// 寻找机器
|
| | | /// </summary>
|
| | |
| | | /// </summary>
|
| | | public int Filter = 0;
|
| | | /// <summary>
|
| | | /// 清扫时间(0-432000)
|
| | | /// 清扫时间(0-432000) 单位为分钟
|
| | | /// </summary>
|
| | | public int CleanTime = 0;
|
| | | /// <summary>
|