Merge branch 'WJC' into NewFilePath
| | |
| | | {"Format":1,"ProjectReferences":[],"MetadataReferences":[{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/14.6.0.15/lib/mono/Xamarin.iOS/mscorlib.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/14.6.0.15/lib/mono/Xamarin.iOS/System.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/14.6.0.15/lib/mono/Xamarin.iOS/Facades/System.Drawing.Common.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/14.6.0.15/lib/mono/Xamarin.iOS/Xamarin.iOS.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/14.6.0.15/lib/mono/Xamarin.iOS/System.Core.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/14.6.0.15/lib/bgen/Xamarin.iOS.BindingAttributes.dll","Aliases":[],"Framework":null}],"Files":["/Users/kaede/Desktop/HDL_APP_Project/HdlBluWi/Properties/AssemblyInfo.cs","/Users/kaede/Desktop/HDL_APP_Project/HdlBluWi/ApiDefinition.cs","/Users/kaede/Desktop/HDL_APP_Project/HdlBluWi/Structs.cs"],"BuildActions":["Compile","ObjcBindingApiDefinition","ObjcBindingCoreSource"],"Analyzers":[],"AdditionalFiles":[],"EditorConfigFiles":[]} |
| | | {"Format":1,"ProjectReferences":[],"MetadataReferences":[{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/mscorlib.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/System.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/Xamarin.iOS.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/mono/Xamarin.iOS/System.Core.dll","Aliases":[],"Framework":null},{"FilePath":"/Library/Frameworks/Xamarin.iOS.framework/Versions/13.6.0.12/lib/bgen/Xamarin.iOS.BindingAttributes.dll","Aliases":[],"Framework":null}],"Files":["/Users/hdl/Desktop/wjc/HDL_APP_Project/HdlBluWi/Properties/AssemblyInfo.cs","/Users/hdl/Desktop/wjc/HDL_APP_Project/HdlBluWi/ApiDefinition.cs","/Users/hdl/Desktop/wjc/HDL_APP_Project/HdlBluWi/Structs.cs"],"BuildActions":["Compile","ObjcBindingApiDefinition","ObjcBindingCoreSource"],"Analyzers":[]} |
| | |
| | | <member name="P:Shared.VerticalScrolViewLayout.VerticalScrollBarEnabled"> |
| | | <summary>
/// 是否显示滚动条
/// </summary> |
| | | </member> |
| | | <member name="M:Shared.VerticalScrolViewLayout.ScrollToViewIndex(System.Int32)"> |
| | | <summary> |
| | | 滑动到指定View |
| | | </summary> |
| | | <param name="viewIndex"> 指定view的索引值</param> |
| | | </member> |
| | | <member name="M:Shared.VerticalScrolViewLayout.ScrollToY(System.Int32)"> |
| | | <summary> |
| | | 滑动到指定位置 Y |
| | | </summary> |
| | | <param name="viewY"></param> |
| | | </member> |
| | | <member name="T:Shared.AndroidScrolView"> |
| | | <summary>
/// 竖直方向滑动控件
/// </summary>
|
| | | </member> |
| | |
| | | 设备控件背景图 |
| | | </summary> |
| | | <param name="filePath"></param> |
| | | </member> |
| | | <member name="M:Shared.View.getDrawable(System.String)"> |
| | | <summary> |
| | | 2020-12-23 彪哥新修改方法 |
| | | </summary> |
| | | <param name="filePath"></param> |
| | | <returns></returns> |
| | | </member> |
| | | <member name="P:Shared.View.Padding"> |
| | | <summary> |
| | |
| | | </summary> |
| | | <value>是否可以滑动</value> |
| | | </member> |
| | | <member name="P:Shared.CurtainSeekBar.CurtainPaddingLeftRight"> |
| | | <summary> |
| | | 进度条与左右边框边距 |
| | | </summary> |
| | | </member> |
| | | <member name="P:Shared.CurtainSeekBar.CurtainPaddingTop"> |
| | | <summary> |
| | | 顶部padding |
| | | </summary> |
| | | </member> |
| | | <member name="P:Shared.CurtainSeekBar.IsOffline"> |
| | | <summary> |
| | | 是否离线 离线的话禁止滑动并绘制背景遮挡层 |
| | |
| | | Option的配置JsonString |
| | | </summary> |
| | | </member> |
| | | <member name="M:Shared.MyEchartsViewOn.#ctor"> |
| | | <summary> |
| | | MyEchartsViewOn |
| | | </summary> |
| | | </member> |
| | | <member name="F:Shared.MyEchartsViewOn.IsLoadEchartsNew"> |
| | | <summary> |
| | | 是否采用LoadEchartsNew的方式 |
| | | </summary> |
| | | </member> |
| | | <member name="M:Shared.MyEchartsViewOn.ShowWithOption(System.String)"> |
| | | <summary> |
| | | 加载Option配置参数 |
| | | 刷新图表 |
| | | </summary> |
| | | <param name="option"></param> |
| | | </member> |
| | | <member name="M:Shared.MyEchartsViewOn.ShowWithOptionJsonString(System.String)"> |
| | | <summary> |
| | | 加载Option配置JsonString |
| | |
| | | <member name="M:Shared.MyEchartsViewOn.refreshEcharts"> |
| | | <summary> |
| | | 刷新界面 |
| | | </summary> |
| | | </member> |
| | | <member name="P:Shared.MyEchartsViewOn.webView"> |
| | | <summary> |
| | | MyWebView |
| | | </summary> |
| | | </member> |
| | | <member name="T:Shared.WebView"> |
| | |
| | | MyWebView |
| | | </summary> |
| | | </member> |
| | | <member name="T:Shared.CurtainSingleSeekBar"> |
| | | <summary> |
| | | CurtainSingleSeekBar |
| | | 向左或者向右,单向打开的开合帘 |
| | | IsRightOpenStyle |
| | | false:右滑关闭,进度Progress 100-->0 |
| | | true:右滑打开,进度Progress 0-->100 |
| | | </summary> |
| | | </member> |
| | | <member name="P:Shared.CurtainSingleSeekBar.mHDLOACSingleCurtainSeekBar"> |
| | | <summary> |
| | | 当前视图 |
| | | </summary> |
| | | <value>The HDLOACSingleCurtainSeekBar.</value> |
| | | </member> |
| | | <member name="M:Shared.CurtainSingleSeekBar.#ctor"> |
| | | <summary> |
| | | 构造函数 |
| | | </summary> |
| | | </member> |
| | | <member name="P:Shared.CurtainSingleSeekBar.ProgressBarUnitSring"> |
| | | <summary> |
| | | 进度值显示单位 |
| | | </summary> |
| | | <value>单位字符</value> |
| | | </member> |
| | | <member name="P:Shared.CurtainSingleSeekBar.MaxValue"> |
| | | <summary> |
| | | 进度值最大值 |
| | | </summary> |
| | | <value>最大值</value> |
| | | </member> |
| | | <member name="P:Shared.CurtainSingleSeekBar.MinValue"> |
| | | <summary> |
| | | 进度值最小值 |
| | | </summary> |
| | | <value>最小值</value> |
| | | </member> |
| | | <member name="P:Shared.CurtainSingleSeekBar.Progress"> |
| | | <summary> |
| | | 当前进度值 |
| | | </summary> |
| | | <value>进度值</value> |
| | | </member> |
| | | <member name="P:Shared.CurtainSingleSeekBar.ProgressTextColor"> |
| | | <summary> |
| | | 当前进度值显示的文字颜色 |
| | | </summary> |
| | | <value>文字颜色</value> |
| | | </member> |
| | | <member name="P:Shared.CurtainSingleSeekBar.ProgressTextSize"> |
| | | <summary> |
| | | 当前进度值显示的文字大小 |
| | | </summary> |
| | | <value>文字大小</value> |
| | | </member> |
| | | <member name="P:Shared.CurtainSingleSeekBar.IsClickable"> |
| | | <summary> |
| | | 是否可以滑动 |
| | | </summary> |
| | | <value>是否可以滑动</value> |
| | | </member> |
| | | <member name="P:Shared.CurtainSingleSeekBar.IsProgressTextShow"> |
| | | <summary> |
| | | 是否可以滑动 |
| | | </summary> |
| | | <value>是否可以滑动</value> |
| | | </member> |
| | | <member name="P:Shared.CurtainSingleSeekBar.IsOffline"> |
| | | <summary> |
| | | 是否离线 离线的话禁止滑动并绘制背景遮挡层 |
| | | </summary> |
| | | <value>是否离线</value> |
| | | </member> |
| | | <member name="P:Shared.CurtainSingleSeekBar.NowProgressX"> |
| | | <summary> |
| | | 当前进度值 X坐标 |
| | | </summary> |
| | | <value>X坐标</value> |
| | | </member> |
| | | <member name="P:Shared.CurtainSingleSeekBar.IsRightOpenStyle"> |
| | | <summary> |
| | | 是否从左到右打开到100%,默认false |
| | | </summary> |
| | | <value>默认false</value> |
| | | </member> |
| | | <member name="F:Shared.CurtainSingleSeekBar.OnProgressChangedEvent"> |
| | | <summary> |
| | | EventHandler |
| | | </summary> |
| | | </member> |
| | | <member name="F:Shared.CurtainSingleSeekBar.mOnProgressChangeListener"> |
| | | <summary> |
| | | OnProgressChangeListener 继承响应事件 |
| | | </summary> |
| | | </member> |
| | | <member name="T:ViewFlow.ViewSwitchListener"> |
| | | Receives call backs when a new {@link View} has been scrolled to. |
| | | </member> |
| | |
| | | <member name="P:Shared.VerticalScrolViewLayout.VerticalScrollBarEnabled"> |
| | | <summary>
/// 是否显示垂直滚动条
/// </summary> |
| | | </member> |
| | | <member name="M:Shared.VerticalScrolViewLayout.ScrollToY(System.Int32)"> |
| | | <summary> |
| | | 滑动到指定位置 |
| | | </summary> |
| | | <param name="viewY"></param> |
| | | </member> |
| | | <member name="M:Shared.VerticalScrolViewLayout.ScrollToViewIndex(System.Int32)"> |
| | | <summary> |
| | | 滑动到指定VIEW |
| | | </summary> |
| | | <param name="viewIndex"></param> |
| | | </member> |
| | | <member name="T:Shared.VerticalSeekBar"> |
| | | <summary> |
| | | 位置布局 |
| | |
| | | </summary> |
| | | <value>进度值</value> |
| | | </member> |
| | | <member name="P:Shared.CurtainSeekBar.CurtainPaddingLeftRight"> |
| | | <summary> |
| | | 进度条与左右边框边距 |
| | | </summary> |
| | | </member> |
| | | <member name="P:Shared.CurtainSeekBar.CurtainPaddingTop"> |
| | | <summary> |
| | | 顶部padding |
| | | </summary> |
| | | </member> |
| | | <member name="P:Shared.CurtainSeekBar.IsOffline"> |
| | | <summary> |
| | | 是否离线 离线的话禁止滑动并绘制背景遮挡层 |
| | |
| | | <member name="T:Shared.MyEchartsViewOn"> |
| | | <summary> |
| | | MyEchartsViewOn HDLON+ |
| | | |
| | | </summary> |
| | | </member> |
| | | <member name="F:Shared.MyEchartsViewOn.optionJsonString"> |
| | |
| | | WKWebView控件 |
| | | </summary> |
| | | </member> |
| | | <member name="M:Shared.MyEchartsViewOn.#ctor"> |
| | | <summary> |
| | | |
| | | </summary> |
| | | </member> |
| | | <member name="M:Shared.MyEchartsViewOn.LoadFileUrl"> |
| | | <summary> |
| | | 加载本地HTML |
| | | </summary> |
| | | </member> |
| | | <member name="F:Shared.MyEchartsViewOn.htmlPathName"> |
| | | <summary> |
| | | |
| | | </summary> |
| | | </member> |
| | | <member name="F:Shared.MyEchartsViewOn.IsLoadEchartsNew"> |
| | | <summary> |
| | | 是否采用LoadEchartsNew的方式 |
| | | </summary> |
| | | </member> |
| | | <member name="M:Shared.MyEchartsViewOn.ShowWithOption(System.String)"> |
| | | <summary> |
| | | 加载Option配置参数 |
| | | 刷新图表 |
| | | </summary> |
| | | <param name="option"></param> |
| | | </member> |
| | | <member name="M:Shared.MyEchartsViewOn.ShowWithOptionJsonString(System.String)"> |
| | | <summary> |
| | | 加载Option配置jsonString |
| | | </summary> |
| | | <param name="jsonString"></param> |
| | | </member> |
| | | <member name="M:Shared.MyEchartsViewOn.LoadFileUrl"> |
| | | <member name="M:Shared.MyEchartsViewOn.EvaluateJavascript"> |
| | | <summary> |
| | | 加载本地HTML |
| | | EvaluateJavascript |
| | | </summary> |
| | | </member> |
| | | <member name="T:Shared.MyEchartsViewOn.OnWKNavigationDelegate"> |
| | | <summary> |
| | | OnWKNavigationDelegate |
| | | </summary> |
| | | </member> |
| | | <member name="T:Shared.WaveSeekBarOn"> |
| | |
| | | EventHandler |
| | | </summary> |
| | | </member> |
| | | <member name="T:Shared.CurtainSingleSeekBar"> |
| | | <summary> |
| | | CurtainSingleSeekBar |
| | | 向左或者向右,单向打开的开合帘 |
| | | IsRightOpenStyle |
| | | false:右滑关闭,进度Progress 100-->0 |
| | | true:右滑打开,进度Progress 0-->100 |
| | | </summary> |
| | | </member> |
| | | <member name="P:Shared.CurtainSingleSeekBar.mHDLOACSingleCurtainSeekBar"> |
| | | <summary> |
| | | 当前视图 |
| | | </summary> |
| | | <value>The HDLOACSingleCurtainSeekBar.</value> |
| | | </member> |
| | | <member name="M:Shared.CurtainSingleSeekBar.#ctor"> |
| | | <summary> |
| | | 构造函数 |
| | | </summary> |
| | | </member> |
| | | <member name="M:Shared.CurtainSingleSeekBar.RefreshFrame"> |
| | | <summary> |
| | | 刷新布局 |
| | | </summary> |
| | | </member> |
| | | <member name="P:Shared.CurtainSingleSeekBar.Width"> |
| | | <summary> |
| | | 控件宽度 |
| | | </summary> |
| | | </member> |
| | | <member name="P:Shared.CurtainSingleSeekBar.Height"> |
| | | <summary> |
| | | 控件的高度 |
| | | </summary> |
| | | </member> |
| | | <member name="P:Shared.CurtainSingleSeekBar.X"> |
| | | <summary> |
| | | 控件的X坐标 |
| | | </summary> |
| | | </member> |
| | | <member name="P:Shared.CurtainSingleSeekBar.Y"> |
| | | <summary> |
| | | 控件的X坐标 |
| | | </summary> |
| | | </member> |
| | | <member name="P:Shared.CurtainSingleSeekBar.ProgressBarUnitSring"> |
| | | <summary> |
| | | 进度值显示单位 |
| | | </summary> |
| | | <value>单位字符</value> |
| | | </member> |
| | | <member name="P:Shared.CurtainSingleSeekBar.MaxValue"> |
| | | <summary> |
| | | 进度值最大值 |
| | | </summary> |
| | | <value>最大值</value> |
| | | </member> |
| | | <member name="P:Shared.CurtainSingleSeekBar.MinValue"> |
| | | <summary> |
| | | 进度值最小值 |
| | | </summary> |
| | | <value>最小值</value> |
| | | </member> |
| | | <member name="P:Shared.CurtainSingleSeekBar.Progress"> |
| | | <summary> |
| | | 当前进度值 |
| | | </summary> |
| | | <value>进度值</value> |
| | | </member> |
| | | <member name="P:Shared.CurtainSingleSeekBar.IsOffline"> |
| | | <summary> |
| | | 是否离线 离线的话禁止滑动并绘制背景遮挡层 |
| | | </summary> |
| | | <value>是否离线</value> |
| | | </member> |
| | | <member name="P:Shared.CurtainSingleSeekBar.ProgressTextColor"> |
| | | <summary> |
| | | 当前进度值显示的文字颜色 |
| | | </summary> |
| | | <value>文字颜色</value> |
| | | </member> |
| | | <member name="P:Shared.CurtainSingleSeekBar.ProgressTextSize"> |
| | | <summary> |
| | | 当前进度值显示的文字大小 |
| | | </summary> |
| | | <value>文字大小</value> |
| | | </member> |
| | | <member name="P:Shared.CurtainSingleSeekBar.IsClickable"> |
| | | <summary> |
| | | 是否可以滑动 |
| | | </summary> |
| | | <value>是否可以滑动</value> |
| | | </member> |
| | | <member name="P:Shared.CurtainSingleSeekBar.IsProgressTextShow"> |
| | | <summary> |
| | | 是否显示进度文字 |
| | | </summary> |
| | | <value>是否显示进度文字</value> |
| | | </member> |
| | | <member name="P:Shared.CurtainSingleSeekBar.NowProgressX"> |
| | | <summary> |
| | | 当前进度值 X坐标 |
| | | </summary> |
| | | <value>X坐标</value> |
| | | </member> |
| | | <member name="P:Shared.CurtainSingleSeekBar.IsRightOpenStyle"> |
| | | <summary> |
| | | 是否从左到右打开到100%,默认false |
| | | </summary> |
| | | <value>默认false</value> |
| | | </member> |
| | | <member name="F:Shared.CurtainSingleSeekBar.OnProgressChangedEvent"> |
| | | <summary> |
| | | EventHandler |
| | | </summary> |
| | | </member> |
| | | <member name="F:com.hdl.on.Volume.VolumeChange"> |
| | | <summary> |
| | | 声音变化事件 |
| | |
| | | 7105=轻度污染:75~115ug/m³ |
| | | 7106=中度污染:115~150ug/m³ |
| | | 7107=重度污染:>150ug/m³ |
| | | |
| | | 7108=泄漏/无泄漏 |
| | | 7109=泄漏 |
| | | 7110=无泄漏 |
| | | 7111=漏水/无漏水 |
| | | 7112=漏水 |
| | | 7113=无漏水 |
| | | 7114=有人/无人 |
| | | 7115=有人 |
| | | 7116=无人 |
| | | 7117=开启/闭合 |
| | | 7118=开启 |
| | | 7119=闭合 |
| | | 7120=防拆功能 |
| | | 7121=在线 |
| | | 7122=不在线 |
| | | |
| | | 9000=请使用新的手机账号登录APP |
| | | 9001=请使用新的邮箱账号登录APP |
| | |
| | | <AndroidAsset Include="Assets\Phone\LogicIcon\location.png" /> |
| | | <AndroidAsset Include="Assets\Phone\LogicIcon\changesinoutdoor.png" /> |
| | | <AndroidAsset Include="Assets\Phone\PersonalCenter\UserTypebg2.png" /> |
| | | <AndroidAsset Include="Assets\Phone\LogicIcon\sensor.png" /> |
| | | </ItemGroup> |
| | | <ItemGroup> |
| | | <AndroidNativeLibrary Include="libs\armeabi-v7a\libelianjni.so" /> |
| | |
| | | //------------------------------------------------------------------------------ |
| | | // <auto-generated> |
| | | // This code was generated by a tool. |
| | | // Runtime Version:4.0.30319.42000 |
| | | // |
| | | // Changes to this file may cause incorrect behavior and will be lost if |
| | | // the code is regenerated. |
| | |
| | | { |
| | | |
| | | |
| | | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Xamarin.Android.Build.Tasks", "1.0.0.0")] |
| | | [System.CodeDom.Compiler.GeneratedCodeAttribute("Xamarin.Android.Build.Tasks", "1.0.0.0")] |
| | | public partial class Resource |
| | | { |
| | | |
| | |
| | | <BundleResource Include="Resources\Phone\LogicIcon\location.png" /> |
| | | <BundleResource Include="Resources\Phone\LoginIcon\changesinoutdoor.png" /> |
| | | <BundleResource Include="Resources\Phone\PersonalCenter\UserTypebg2.png" /> |
| | | <BundleResource Include="Resources\Phone\LogicIcon\sensor.png" /> |
| | | </ItemGroup> |
| | | <ItemGroup> |
| | | <ITunesArtwork Include="iTunesArtwork" /> |
| | |
| | | 7105=轻度污染:75~115ug/m³ |
| | | 7106=中度污染:115~150ug/m³ |
| | | 7107=重度污染:>150ug/m³ |
| | | 7108=泄漏/无泄漏 |
| | | 7109=泄漏 |
| | | 7110=无泄漏 |
| | | 7111=漏水/无漏水 |
| | | 7112=漏水 |
| | | 7113=无漏水 |
| | | 7114=有人/无人 |
| | | 7115=有人 |
| | | 7116=无人 |
| | | 7117=开启/闭合 |
| | | 7118=开启 |
| | | 7119=闭合 |
| | | 7120=防拆功能 |
| | | 7121=在线 |
| | | 7122=不在线 |
| | | |
| | | |
| | | 9000=请使用新的手机账号登录APP |
| | |
| | | } |
| | | if (FunctionList.List.GetDeviceFunctionList().Count > 0) |
| | | { |
| | | |
| | | for (int i = 0; i < FunctionList.List.GetDeviceFunctionList().Count;) |
| | | { |
| | | var localFunction = FunctionList.List.GetDeviceFunctionList()[i]; |
| | |
| | | deviceList.list.Remove(newFunction);//操作完的数据清理掉,剩下的就是新增的功能 |
| | | } |
| | | } |
| | | |
| | | |
| | | } |
| | | //处理剩下的新增功能 |
| | | foreach (var newFunction in deviceList.list) |
| | |
| | | public const int pmqingdu= 7105; |
| | | public const int pmzhongdu = 7106; |
| | | public const int pmzhongduwuran= 7107; |
| | | |
| | | |
| | | public const int xieluoandwuxieluo=7108; |
| | | public const int xieluo = 7109; |
| | | public const int wuxieluo = 7110; |
| | | public const int luoshuiandwuluoshui = 7111; |
| | | public const int luoshui = 7112; |
| | | public const int wuluoshui = 7113; |
| | | public const int yourenandwuren = 7114; |
| | | public const int youren = 7115; |
| | | public const int wuren = 7116; |
| | | public const int kaiqiandbihe = 7117; |
| | | public const int kaiqi = 7118; |
| | | public const int bihe = 7119; |
| | | public const int fangchaigongneng = 7120; |
| | | public const int zaixian = 7121; |
| | | public const int buzaixian = 7122; |
| | | |
| | | #region LE新增 |
| | | /// <summary> |
| | |
| | | /// 湿度传感器 |
| | | /// </summary> |
| | | public const string SensorHumidity = "sensor.humidity"; |
| | | |
| | | /// <summary> |
| | | /// 烟雾传感器 |
| | | /// </summary> |
| | | public const string SensorSmoke = "sensor.smoke"; |
| | | /// <summary> |
| | | /// 水浸传感器 |
| | | /// </summary> |
| | | public const string SensorWater = "sensor.water"; |
| | | /// <summary> |
| | | /// 燃气传感器 |
| | | /// </summary> |
| | | public const string SensorGas= "sensor.gas"; |
| | | /// <summary> |
| | | /// 红外珊栏传感器 |
| | | /// </summary> |
| | | public const string SensorShanLan = "sensor.shanlan"; |
| | | /// <summary> |
| | | /// 红外对射传感器 |
| | | /// </summary> |
| | | public const string SensorDuiShe = "sensor.duishe"; |
| | | /// <summary> |
| | | /// 超声波传感器 |
| | | /// </summary> |
| | | public const string SensoruUtrasonic = "sensor.ultrasonic"; |
| | | |
| | | /// <summary> |
| | | /// (干接点) |
| | | /// </summary> |
| | | public const string DryContact = "dryContact.standard"; |
| | | public const string SensorDryContact = "sensor.dryContact"; |
| | | /// <summary> |
| | | /// 家电、插座 |
| | | /// </summary> |
| | |
| | | /// 环境传感器列表 |
| | | /// </summary> |
| | | public List<Sensor> sensorsEnvironmentalScience = new List<Sensor>(); |
| | | /// <summary> |
| | | /// 安防设备列表 |
| | | /// </summary> |
| | | public List<Sensor> sensorsArm = new List<Sensor>(); |
| | | |
| | | public List<Scene> scenes = new List<Scene>(); |
| | | /// <summary> |
| | |
| | | deviceFunctionList.Add(tv); |
| | | break; |
| | | case SPK.ElectricFan: |
| | | var fan = Newtonsoft.Json.JsonConvert.DeserializeObject<Fan>(functionDataString); |
| | | var fan = Newtonsoft.Json.JsonConvert.DeserializeObject<Fan>(functionDataString); |
| | | List.fans.Add(fan); |
| | | deviceFunctionList.Add(fan); |
| | | break; |
| | | case SPK.SensorSmoke: |
| | | case SPK.SensorWater: |
| | | case SPK.SensorGas: |
| | | var ser = Newtonsoft.Json.JsonConvert.DeserializeObject<Sensor>(functionDataString); |
| | | List.sensorsArm.Add(ser); |
| | | deviceFunctionList.Add(ser); |
| | | break; |
| | | } |
| | | } |
| | |
| | | deviceFunctionList.AddRange(floorHeatings); |
| | | deviceFunctionList.AddRange(electricals); |
| | | deviceFunctionList.AddRange(sensorsEnvironmentalScience); |
| | | deviceFunctionList.AddRange(sensorsArm); |
| | | deviceFunctionList.AddRange(UI.Music.A31MusicModel.A31MusicModelList); |
| | | } |
| | | try |
| | |
| | | } |
| | | break; |
| | | case FunctionCategory.Sensor: |
| | | switch(f.spk) |
| | | switch (f.spk) |
| | | { |
| | | case SPK.SensorTVOC: |
| | | case SPK.SensorCO2: |
| | |
| | | case SPK.SensorTemperature: |
| | | List.sensorsEnvironmentalScience.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<Sensor>(obj.ToString())); |
| | | break; |
| | | case SPK.SensorWater: |
| | | case SPK.SensorSmoke: |
| | | case SPK.SensorGas: |
| | | case SPK.SensorDryContact: |
| | | case SPK.SensorShanLan: |
| | | case SPK.SensorDuiShe: |
| | | case SPK.SensorPir: |
| | | case SPK.SensorDoorWindow: |
| | | case SPK.SensoruUtrasonic: |
| | | List.sensorsArm.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<Sensor>(obj.ToString())); |
| | | break; |
| | | } |
| | | break; |
| | | } |
| | |
| | | <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" />
|
| | | </ItemGroup>
|
| | | <ItemGroup>
|
| | | <Folder Include="$(MSBuildThisFileDirectory)UI\" />
|
old mode 100755
new mode 100644
| | |
| | | addResidencePage.LoadView(); |
| | | return; |
| | | } |
| | | |
| | | new System.Threading.Thread(() => |
| | | { |
| | | try |
| | |
| | | }; |
| | | BaseView.AddChidren(BasePageView); |
| | | |
| | | |
| | | //跳转页面---- |
| | | var UserBasePage = new UserPage(); |
| | | BasePageView.AddChidren(UserBasePage); |
| | | UserBasePage.LoadPage(); |
| | | BasePageView.PageIndex = 0; |
| | | |
| | | |
| | | |
| | | if (isFirstOpen) |
| | | { |
| | |
| | | { |
| | | Application.RunOnMainThread(() => |
| | | { |
| | | |
| | | |
| | | if (downloadData) |
| | | { |
| | | ///初始化app数据 |
| | | Common.ApiUtlis.Ins.DownloadData(); |
| | | }; |
| | | |
| | | |
| | | |
| | | }); |
| | | } |
| | | }).Start(); |
| | |
| | | //地热 |
| | | case SPK.FloorHeatStandard: |
| | | { |
| | | LogicView.FunTypeView lightSwitchView = new LogicView.FunTypeView(); |
| | | lightSwitchView.btnText.TextID = StringId.switchLogic; |
| | | lightSwitchView.btnState.Text = ""; |
| | | fLayout.AddChidren(lightSwitchView.FLayoutView()); |
| | | lightSwitchView.btnClick.MouseUpEventHandler += (sender, e) => |
| | | { |
| | | FrameLayout frame = new FrameLayout |
| | | { |
| | | BackgroundColor = CSS.CSS_Color.viewTrans60lucence, |
| | | }; |
| | | this.AddChidren(frame); |
| | | LogicView.SwitchView switchView = new LogicView.SwitchView(); |
| | | switchView.FLayoutView(frame, 2, lightSwitchView.btnState.Text, (strValue) => |
| | | { |
| | | int id = 0; |
| | | switch (strValue) |
| | | { |
| | | case "on": |
| | | { |
| | | id = StringId.onLogic; |
| | | } |
| | | break; |
| | | case "off": |
| | | { |
| | | id = StringId.offLogic; |
| | | } |
| | | break; |
| | | } |
| | | //显示文本 |
| | | lightSwitchView.btnState.TextID = id; |
| | | selectedState = device.spk + "_" + strValue; |
| | | //设备属性值,云雀上定义好的; |
| | | string keyVlaue = "on_off"; |
| | | AddDictionary(keyVlaue, strValue); |
| | | |
| | | }); |
| | | LogicView.FunTypeView view = new LogicView.FunTypeView(); |
| | | view.btnText.TextID = StringId.switchLogic; |
| | | fLayout.AddChidren(view.FLayoutView()); |
| | | view.btnClick.MouseUpEventHandler += (sender, e) => |
| | | { |
| | | DeviceView(device, view.btnState, StringId.onLogic, StringId.offLogic); |
| | | }; |
| | | if (edit) |
| | | { |
| | | GetEditState(device, index, lightSwitchView.btnState, null, null, null); |
| | | GetEditState(device, index, view.btnState, null, null, null); |
| | | } |
| | | } |
| | | break; |
| | | case SPK.SensorWater: |
| | | { |
| | | LogicView.FunTypeView view = new LogicView.FunTypeView(); |
| | | view.btnText.TextID = StringId.luoshuiandwuluoshui; |
| | | fLayout.AddChidren(view.FLayoutView()); |
| | | view.btnClick.MouseUpEventHandler += (sender, e) => |
| | | { |
| | | DeviceView(device, view.btnState, StringId.luoshui, StringId.wuluoshui); |
| | | }; |
| | | if (edit) |
| | | { |
| | | GetEditState(device, index, view.btnState, null, null, null); |
| | | } |
| | | |
| | | } |
| | | break; |
| | | case SPK.SensorSmoke: |
| | | case SPK.SensorGas: |
| | | { |
| | | LogicView.FunTypeView view = new LogicView.FunTypeView(); |
| | | view.btnText.TextID = StringId.xieluoandwuxieluo; |
| | | fLayout.AddChidren(view.FLayoutView()); |
| | | view.btnClick.MouseUpEventHandler += (sender, e) => |
| | | { |
| | | DeviceView(device, view.btnState, StringId.xieluo, StringId.wuxieluo); |
| | | }; |
| | | if (edit) |
| | | { |
| | | GetEditState(device, index, view.btnState, null, null, null); |
| | | } |
| | | |
| | | } |
| | | break; |
| | | case SPK.SensorDryContact: |
| | | { |
| | | LogicView.FunTypeView view = new LogicView.FunTypeView(); |
| | | view.btnText.TextID = StringId.switchLogic; |
| | | fLayout.AddChidren(view.FLayoutView()); |
| | | view.btnClick.MouseUpEventHandler += (sender, e) => |
| | | { |
| | | DeviceView(device, view.btnState, StringId.onLogic, StringId.offLogic); |
| | | }; |
| | | if (edit) |
| | | { |
| | | GetEditState(device, index, view.btnState, null, null, null); |
| | | } |
| | | |
| | | } |
| | | break; |
| | | case SPK.SensorShanLan: |
| | | case SPK.SensorDuiShe: |
| | | case SPK.SensorPir: |
| | | { |
| | | LogicView.FunTypeView view = new LogicView.FunTypeView(); |
| | | view.btnText.TextID = StringId.yourenandwuren; |
| | | fLayout.AddChidren(view.FLayoutView()); |
| | | view.btnClick.MouseUpEventHandler += (sender, e) => |
| | | { |
| | | DeviceView(device, view.btnState, StringId.youren, StringId.wuren); |
| | | }; |
| | | if (edit) |
| | | { |
| | | GetEditState(device, index, view.btnState, null, null, null); |
| | | } |
| | | } |
| | | break; |
| | | case SPK.SensorDoorWindow: { |
| | | LogicView.FunTypeView view = new LogicView.FunTypeView(); |
| | | view.btnText.TextID = StringId.kaiqiandbihe; |
| | | fLayout.AddChidren(view.FLayoutView()); |
| | | view.btnClick.MouseUpEventHandler += (sender, e) => |
| | | { |
| | | DeviceView(device, view.btnState, StringId.kaiqi , StringId.bihe); |
| | | }; |
| | | if (edit) |
| | | { |
| | | GetEditState(device, index, view.btnState, null, null, null); |
| | | } |
| | | } |
| | | break; |
| | | case SPK.SensoruUtrasonic: |
| | | { |
| | | |
| | | LogicView.FunTypeView view = new LogicView.FunTypeView(); |
| | | view.btnText.TextID = StringId.yourenandwuren; |
| | | fLayout.AddChidren(view.FLayoutView()); |
| | | view.btnClick.MouseUpEventHandler += (sender, e) => |
| | | { |
| | | DeviceView(device, view.btnState, StringId.youren, StringId.wuren); |
| | | }; |
| | | LogicView.FunTypeView view1 = new LogicView.FunTypeView(); |
| | | view1.frameLayout.Y = view.frameLayout.Bottom; |
| | | view1.btnText.TextID = StringId.fangchaigongneng; |
| | | fLayout.AddChidren(view1.FLayoutView()); |
| | | view1.btnClick.MouseUpEventHandler += (sender, e) => |
| | | { |
| | | DeviceView(device, view1.btnState, StringId.zaixian, StringId.buzaixian); |
| | | }; |
| | | |
| | | if (edit) |
| | | { |
| | | GetEditState(device, index, view.btnState, view1.btnState, null, null); |
| | | } |
| | | } |
| | | break; |
| | | |
| | |
| | | |
| | | } |
| | | /// <summary> |
| | | /// 设备选择条件界面 |
| | | /// </summary> |
| | | /// <param name="device">设备</param> |
| | | /// <param name="button">选中状态显示文本Btn控件</param> |
| | | /// <param name="btnText1">属性状态值文本1</param> |
| | | /// <param name="btnText2">属性状态值文本2</param> |
| | | private void DeviceView(Entity.Function device,Button button,int btnText1,int btnText2) { |
| | | FrameLayout frame = new FrameLayout { BackgroundColor = CSS.CSS_Color.viewTrans60lucence }; |
| | | this.AddChidren(frame); |
| | | LogicView.SwitchView switchView = new LogicView.SwitchView(); |
| | | switchView.FLayoutView(frame, btnText1, btnText2, button.Text, (intValue) => |
| | | { |
| | | //设备属性值,云雀上定义好的; |
| | | string keyVlaue = "on_off"; |
| | | string value = ""; |
| | | switch (device.spk) |
| | | { |
| | | //传感器 |
| | | case SPK.SensorWater: |
| | | case SPK.SensorSmoke: |
| | | case SPK.SensorGas: |
| | | case SPK.SensorDryContact: |
| | | case SPK.SensorShanLan: |
| | | case SPK.SensorDuiShe: |
| | | case SPK.SensorPir: |
| | | case SPK.SensorDoorWindow: |
| | | case SPK.SensoruUtrasonic: |
| | | { |
| | | keyVlaue = "status"; |
| | | } |
| | | break; |
| | | |
| | | } |
| | | switch (intValue) |
| | | { |
| | | case StringId.xieluo: |
| | | case StringId.luoshui: |
| | | { |
| | | value = "alarm"; |
| | | } |
| | | break; |
| | | case StringId.wuxieluo: |
| | | case StringId.wuluoshui: |
| | | { |
| | | value = "normal"; |
| | | } |
| | | break; |
| | | case StringId.onLogic: |
| | | { |
| | | value = "on"; |
| | | } |
| | | break; |
| | | case StringId.offLogic: |
| | | { |
| | | value = "off"; |
| | | } |
| | | break; |
| | | case StringId.youren: |
| | | case StringId.kaiqi: |
| | | { |
| | | value = "true"; |
| | | } |
| | | break; |
| | | case StringId.wuren: |
| | | case StringId.bihe: |
| | | { |
| | | value = "false"; |
| | | } |
| | | break; |
| | | case StringId.zaixian: { |
| | | keyVlaue = "dismantle"; |
| | | value = "true"; |
| | | };break; |
| | | case StringId.buzaixian: |
| | | { |
| | | keyVlaue = "dismantle"; |
| | | value = "false"; |
| | | }; break; |
| | | } |
| | | //显示文本 |
| | | button.TextID = intValue; |
| | | selectedState = device.spk + "_" + value; |
| | | AddDictionary(keyVlaue, value); |
| | | |
| | | }); |
| | | |
| | | } |
| | | /// <summary> |
| | | /// 显示编辑之前的设备状态 |
| | | /// </summary> |
| | | /// <param name="device">编辑设备</param> |
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.Intelligence.Automation |
| | | { |
| | | public class EmptyClass : FrameLayout |
| | | { |
| | | /// <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) |
| | | { |
| | | |
| | | |
| | | //string text = "30"; |
| | | //byte[] bytes = new byte[text.Length / 2]; |
| | | //for (int i = 0, j = 0; i < bytes.Length; j += 2, i++) |
| | | //{ |
| | | // //把16进度转换成byte |
| | | // bytes[i] = Convert.ToByte(text.Substring(j, 2), 16); |
| | | //} |
| | | ////把byte数组转换成文字 |
| | | //string str = System.Text.Encoding.UTF8.GetString(bytes); |
| | | |
| | | |
| | | var frameLayout = new FrameLayout |
| | | { |
| | | BackgroundColor = CSS.CSS_Color.viewTop, |
| | | Height = Application.GetRealHeight(112), |
| | | Width = Application.GetRealWidth(375), |
| | | }; |
| | | this.AddChidren(frameLayout); |
| | | |
| | | var 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), |
| | | Text = "请选择品牌", |
| | | |
| | | }; |
| | | frameLayout.AddChidren(topNameBtn); |
| | | |
| | | var backBtn = new Button |
| | | { |
| | | Width = Application.GetRealWidth(12), |
| | | Height = Application.GetRealWidth(20), |
| | | X = Application.GetRealWidth(TextSize.left16), |
| | | Y = Application.GetRealHeight(32), |
| | | UnSelectedImagePath = "LogicIcon/back.png", |
| | | }; |
| | | frameLayout.AddChidren(backBtn); |
| | | backBtn.MouseUpEventHandler += (sen, e) => |
| | | { |
| | | this.RemoveFromParent(); |
| | | }; |
| | | |
| | | var editText = new EditText |
| | | { |
| | | Width = Application.GetRealWidth(343), |
| | | Height = Application.GetRealWidth(28), |
| | | X = Application.GetRealWidth(TextSize.left16), |
| | | Y = Application.GetRealHeight(76), |
| | | BackgroundColor = CSS.CSS_Color.view, |
| | | TextColor = CSS.CSS_Color.textColor, |
| | | TextAlignment = TextAlignment.Center, |
| | | |
| | | }; |
| | | frameLayout.AddChidren(editText); |
| | | |
| | | var fram = new FrameLayout |
| | | { |
| | | Y = Application.GetRealHeight(112), |
| | | Height = Application.GetRealHeight(667 - 112), |
| | | Width = Application.GetRealWidth(375), |
| | | BackgroundColor = CSS.CSS_Color.view, |
| | | }; |
| | | this.AddChidren(fram); |
| | | |
| | | |
| | | //var list11 = new List<string> { |
| | | // "爱你", "哎呦","埃及","哈弗换壳哈弗", "爱德华多v","俺几个疯了", |
| | | // "拜了", "巴士", "百夫", "百合地理课你打算", "不度老骥伏枥", "比到九点", |
| | | // "车站","测试","此地", "才看见好得快","吃软饭","从看见二十多", |
| | | // "等待机会吧","的客户", "多喝点", "登记哦然后", "打电话", |
| | | // "恩肤霜看就看了", "饿死os","恶魔城","儿科联动", "恩六颗子弹拉拉裤洗澡了","发大学生发发", |
| | | // "真厉害i发多少", "知道你付款了发", "尬酒回复", "改进的话", "天天速度回答", "太好了开车", |
| | | // "减肥的看过","桡出口处那","如果觉得", "很舒服的","吃软饭","从看见二十多", |
| | | // "龙卷风亏大发","去好看", "多喝点", "好浪费好", "打电话"}; |
| | | if (list == null) |
| | | { |
| | | list = new List<string>(); |
| | | } |
| | | if (list6 == null) |
| | | { |
| | | list6 = new List<string>(); |
| | | } |
| | | var list1 = GetDateList(list); |
| | | list1.Add("1"); |
| | | list1.InsertRange(0, list6); |
| | | |
| | | |
| | | |
| | | var vv = new VerticalScrolViewLayout(); |
| | | fram.AddChidren(vv); |
| | | var listStr = new List<string>(); |
| | | listStr.AddRange(list1); |
| | | editText.TextChangeEventHandler += (view, strView) => |
| | | { |
| | | listStr.Clear(); |
| | | for (int i = 0; i < list1.Count; i++) |
| | | { |
| | | var s = list1[i]; |
| | | if (s.Contains(strView)) |
| | | { |
| | | listStr.Add(s); |
| | | } |
| | | } |
| | | RefreshLayout(vv, listStr, action); |
| | | |
| | | }; |
| | | |
| | | #region A-Z |
| | | |
| | | |
| | | var a_zFra = new FrameLayout |
| | | { |
| | | Y = Application.GetRealHeight(46), |
| | | X = Application.GetRealWidth(362 - 6), |
| | | Height = Application.GetRealHeight(351), |
| | | Width = Application.GetRealWidth(10 + 6), |
| | | }; |
| | | fram.AddChidren(a_zFra); |
| | | var list2 = GetList(); |
| | | for (int i = 0; i < list2.Count; i++) |
| | | { |
| | | |
| | | var a_zBtn = new Button |
| | | { |
| | | Padding = new Padding(0, 6, 0, 0), |
| | | Y = Application.GetRealHeight(i * 13), |
| | | Width = Application.GetRealWidth(16), |
| | | Height = Application.GetRealHeight(10), |
| | | Text = list2[i], |
| | | TextSize = TextSize.text10, |
| | | TextColor = CSS.CSS_Color.textConfirmColor, |
| | | Tag = list2[i], |
| | | }; |
| | | a_zFra.AddChidren(a_zBtn); |
| | | |
| | | |
| | | a_zBtn.MouseUpEventHandler += (sender, e) => |
| | | { |
| | | |
| | | try |
| | | { |
| | | //找到索引值 |
| | | var index = listStr.IndexOf(a_zBtn.Tag.ToString()); |
| | | if (index != -1) |
| | | { |
| | | vv.ScrollToViewIndex(index); |
| | | } |
| | | else |
| | | { |
| | | if (a_zBtn.Tag.ToString() == "#") |
| | | { |
| | | vv.ScrollToViewIndex(0); |
| | | } |
| | | } |
| | | } |
| | | catch { } |
| | | }; |
| | | |
| | | } |
| | | #endregion |
| | | |
| | | RefreshLayout(vv, list1,action); |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | } |
| | | /// <summary> |
| | | /// 更新列表Viev |
| | | /// </summary> |
| | | /// <param name="vv">父控件</param> |
| | | /// <param name="list">显示列表</param> |
| | | private void RefreshLayout(VerticalScrolViewLayout vv, List<string> list,Action<string> action) |
| | | { |
| | | vv.RemoveAll(); |
| | | foreach (var str in list) |
| | | { |
| | | var rowLayout = new RowLayout { LineColor = CSS.CSS_Color.view }; |
| | | var textName = new Button |
| | | { |
| | | TextSize = TextSize.text16, |
| | | TextColor = CSS.CSS_Color.textColor, |
| | | Width = Application.GetRealWidth(300), |
| | | Height = Application.GetRealHeight(22), |
| | | X = Application.GetRealWidth(16), |
| | | Gravity = Gravity.CenterVertical, |
| | | TextAlignment = TextAlignment.CenterLeft, |
| | | Text = str, |
| | | }; |
| | | var clickBtn = new Button |
| | | { |
| | | Tag = str, |
| | | Width = Application.GetRealWidth(350), |
| | | }; |
| | | |
| | | if (Exist(str)) |
| | | { |
| | | //因为字母没有点击事件 |
| | | rowLayout.Height = Application.GetRealHeight(24); |
| | | rowLayout.BackgroundColor = CSS.CSS_Color.viewTop; |
| | | textName.TextSize = TextSize.text12; |
| | | rowLayout.AddChidren(textName); |
| | | } |
| | | else |
| | | { |
| | | rowLayout.Height = Application.GetRealHeight(44); |
| | | rowLayout.AddChidren(textName); |
| | | rowLayout.AddChidren(clickBtn); |
| | | } |
| | | vv.AddChidren(rowLayout); |
| | | clickBtn.MouseUpEventHandler += (sen, e) => |
| | | { |
| | | //找到索引值 |
| | | var index = list.IndexOf(clickBtn.Tag.ToString()); |
| | | |
| | | this.RemoveFromParent(); |
| | | }; |
| | | |
| | | } |
| | | |
| | | } |
| | | /// <summary> |
| | | /// 列表是否包含该值(true=包含,false=不包含) |
| | | /// </summary> |
| | | /// <param name="str"></param> |
| | | /// <returns></returns> |
| | | private bool Exist(string str) |
| | | { |
| | | |
| | | if (GetList().Contains(str) || "主流品牌" == str) |
| | | { |
| | | return true; |
| | | } |
| | | else |
| | | { |
| | | return false; |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 获取显示列表 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | private List<string> GetDateList(List<string> mList) |
| | | { |
| | | var list = new List<string>(); |
| | | //获取A-Z字母列表 |
| | | var a_zList = GetList(false); |
| | | //遍历A-Z字母列表 |
| | | for (int i = 0; i < a_zList.Count; i++) |
| | | { |
| | | var zimu = a_zList[i]; |
| | | //遍历字符串列表 |
| | | for (int a = 0; a < mList.Count; a++) |
| | | { |
| | | var str = mList[a]; |
| | | //提取字符串第一位 |
| | | string s = str.Substring(0, 1); |
| | | //返回字符串第一位首字母(大写) |
| | | var a_z = GetCharSpellCode(s); |
| | | //判断是否同字母 |
| | | if (zimu == a_z) |
| | | { |
| | | //判断列表是否存在字母 |
| | | if (!list.Contains(zimu)) |
| | | { |
| | | //添加字母 |
| | | list.Add(zimu); |
| | | } |
| | | //添加首字同一个字母的数据 |
| | | list.Add(str); |
| | | } |
| | | |
| | | } |
| | | } |
| | | return list; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 获取A-Z字母列表 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | private List<string> GetList(bool value = true) |
| | | { |
| | | var list = new List<string>(); |
| | | if (value) |
| | | { |
| | | list.Add("#"); |
| | | } |
| | | for (int j = 65; j <= 90; j++) |
| | | { |
| | | char c = (char)j; |
| | | string s = c.ToString(); |
| | | list.Add(s); |
| | | |
| | | } |
| | | return list; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 获取汉字首字母 |
| | | /// </summary> |
| | | /// <param name="textValue"></param> |
| | | /// <returns></returns> |
| | | private string GetCharSpellCode(string textValue) |
| | | { |
| | | long iCnChar; |
| | | |
| | | byte[] ZW = Encoding.GetEncoding("gb2312").GetBytes(textValue); |
| | | |
| | | //如果是字母,则直接返回 |
| | | if (ZW.Length == 1) |
| | | { |
| | | return textValue.ToUpper(); |
| | | } |
| | | else |
| | | { |
| | | // get the array of byte from the single char |
| | | int i1 = (short)(ZW[0]); |
| | | int i2 = (short)(ZW[1]); |
| | | 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)) |
| | | { |
| | | return "A"; |
| | | } |
| | | else if ((iCnChar >= 45253) && (iCnChar <= 45760)) |
| | | { |
| | | return "B"; |
| | | } |
| | | else if ((iCnChar >= 45761) && (iCnChar <= 46317)) |
| | | { |
| | | return "C"; |
| | | } |
| | | else if ((iCnChar >= 46318) && (iCnChar <= 46825)) |
| | | { |
| | | return "D"; |
| | | } |
| | | else if ((iCnChar >= 46826) && (iCnChar <= 47009)) |
| | | { |
| | | return "E"; |
| | | } |
| | | else if ((iCnChar >= 47010) && (iCnChar <= 47296)) |
| | | { |
| | | return "F"; |
| | | } |
| | | else if ((iCnChar >= 47297) && (iCnChar <= 47613)) |
| | | { |
| | | return "G"; |
| | | } |
| | | else if ((iCnChar >= 47614) && (iCnChar <= 48118)) |
| | | { |
| | | return "H"; |
| | | } |
| | | else if ((iCnChar >= 48119) && (iCnChar <= 49061)) |
| | | { |
| | | return "J"; |
| | | } |
| | | else if ((iCnChar >= 49062) && (iCnChar <= 49323)) |
| | | { |
| | | return "K"; |
| | | } |
| | | else if ((iCnChar >= 49324) && (iCnChar <= 49895)) |
| | | { |
| | | return "L"; |
| | | } |
| | | else if ((iCnChar >= 49896) && (iCnChar <= 50370)) |
| | | { |
| | | return "M"; |
| | | } |
| | | |
| | | else if ((iCnChar >= 50371) && (iCnChar <= 50613)) |
| | | { |
| | | return "N"; |
| | | } |
| | | else if ((iCnChar >= 50614) && (iCnChar <= 50621)) |
| | | { |
| | | return "O"; |
| | | } |
| | | else if ((iCnChar >= 50622) && (iCnChar <= 50905)) |
| | | { |
| | | return "P"; |
| | | } |
| | | else if ((iCnChar >= 50906) && (iCnChar <= 51386)) |
| | | { |
| | | return "Q"; |
| | | } |
| | | else if ((iCnChar >= 51387) && (iCnChar <= 51445)) |
| | | { |
| | | return "R"; |
| | | } |
| | | else if ((iCnChar >= 51446) && (iCnChar <= 52217)) |
| | | { |
| | | return "S"; |
| | | } |
| | | else if ((iCnChar >= 52218) && (iCnChar <= 52697)) |
| | | { |
| | | return "T"; |
| | | } |
| | | else if ((iCnChar >= 52698) && (iCnChar <= 52979)) |
| | | { |
| | | return "W"; |
| | | } |
| | | else if ((iCnChar >= 52980) && (iCnChar <= 53640)) |
| | | { |
| | | return "X"; |
| | | } |
| | | else if ((iCnChar >= 53689) && (iCnChar <= 54480)) |
| | | { |
| | | return "Y"; |
| | | } |
| | | else if ((iCnChar >= 54481) && (iCnChar <= 55289)) |
| | | { |
| | | return "Z"; |
| | | } |
| | | else return ("ZZ"); |
| | | } |
| | | } |
| | | } |
| | |
| | | { |
| | | strtext = Language.StringByID(StringId.sunrise); |
| | | statetext = Language.StringByID(StringId.advanced); |
| | | |
| | | |
| | | } |
| | | break; |
| | | case "before_sunset": |
| | |
| | | |
| | | strtext = Language.StringByID(StringId.sunset); |
| | | statetext = Language.StringByID(StringId.advanced); |
| | | |
| | | } break; |
| | | |
| | | } |
| | | break; |
| | | case "before_noon": |
| | | { |
| | | strtext = Language.StringByID(StringId.at); |
| | |
| | | { |
| | | strtext = Language.StringByID(StringId.sunrise); |
| | | statetext = Language.StringByID(StringId.delayLogic); |
| | | } break; |
| | | } |
| | | break; |
| | | case "after_sunset": |
| | | { |
| | | strtext = Language.StringByID(StringId.sunset); |
| | | statetext = Language.StringByID(StringId.delayLogic); |
| | | } break; |
| | | } |
| | | break; |
| | | case "after_noon": |
| | | { |
| | | strtext = Language.StringByID(StringId.at); |
| | |
| | | } |
| | | } |
| | | break; |
| | | //传感器 |
| | | case SPK.SensorSmoke: |
| | | case SPK.SensorGas: |
| | | { |
| | | foreach (var dic in dicList) |
| | | { |
| | | string value = dic["value"]; |
| | | if (value == "alarm") |
| | | { |
| | | inputView.btnState.Text = Language.StringByID(StringId.xieluo); |
| | | |
| | | } |
| | | else |
| | | { |
| | | inputView.btnState.Text = Language.StringByID(StringId.wuxieluo); |
| | | } |
| | | } |
| | | } |
| | | break; |
| | | case SPK.SensorWater: |
| | | { |
| | | foreach (var dic in dicList) |
| | | { |
| | | string value = dic["value"]; |
| | | if (value == "alarm") |
| | | { |
| | | inputView.btnState.Text = Language.StringByID(StringId.luoshui); |
| | | |
| | | } |
| | | else |
| | | { |
| | | inputView.btnState.Text = Language.StringByID(StringId.wuluoshui); |
| | | } |
| | | } |
| | | } |
| | | break; |
| | | case SPK.SensorDryContact: |
| | | { |
| | | foreach (var dic in dicList) |
| | | { |
| | | |
| | | string value = dic["value"]; |
| | | if (value == "on") |
| | | { |
| | | inputView.btnState.Text = Language.StringByID(StringId.onLogic); |
| | | |
| | | } |
| | | else |
| | | { |
| | | inputView.btnState.Text = Language.StringByID(StringId.offLogic); |
| | | } |
| | | } |
| | | } |
| | | break; |
| | | case SPK.SensorShanLan: |
| | | case SPK.SensorDuiShe: |
| | | case SPK.SensorPir: |
| | | { |
| | | foreach (var dic in dicList) |
| | | { |
| | | |
| | | string value = dic["value"]; |
| | | if (value == "true") |
| | | { |
| | | inputView.btnState.Text = Language.StringByID(StringId.youren); |
| | | |
| | | } |
| | | else |
| | | { |
| | | inputView.btnState.Text = Language.StringByID(StringId.wuren); |
| | | } |
| | | } |
| | | } |
| | | break; |
| | | case SPK.SensorDoorWindow: |
| | | { |
| | | foreach (var dic in dicList) |
| | | { |
| | | |
| | | string value = dic["value"]; |
| | | if (value == "true") |
| | | { |
| | | inputView.btnState.Text = Language.StringByID(StringId.kaiqi); |
| | | |
| | | } |
| | | else |
| | | { |
| | | inputView.btnState.Text = Language.StringByID(StringId.bihe); |
| | | } |
| | | } |
| | | } |
| | | break; |
| | | case SPK.SensoruUtrasonic: |
| | | { |
| | | string str = ""; |
| | | foreach (var dic in dicList) |
| | | { |
| | | string value = dic["value"]; |
| | | switch (dic["key"]) |
| | | { |
| | | case "status": |
| | | { |
| | | if (value == "true") |
| | | { |
| | | str+= Language.StringByID(StringId.youren)+";"; |
| | | } |
| | | else |
| | | { |
| | | str += Language.StringByID(StringId.wuren) + ";"; |
| | | } |
| | | |
| | | |
| | | } |
| | | break; |
| | | case "dismantle": |
| | | { |
| | | if (value == "true") |
| | | { |
| | | str += Language.StringByID(StringId.zaixian); |
| | | } |
| | | else |
| | | { |
| | | str += Language.StringByID(StringId.buzaixian); |
| | | } |
| | | } |
| | | break; |
| | | |
| | | } |
| | | |
| | | } |
| | | inputView.btnState.Text = str; |
| | | } |
| | | break; |
| | | |
| | | } |
| | | } |
| | | break; |
| | |
| | | case "outdoor_temp": |
| | | { |
| | | strvalue = value; |
| | | if (comparator==">") { |
| | | if (comparator == ">") |
| | | { |
| | | strtext = Language.StringByID(StringId.wendugaoyu); |
| | | } |
| | | else if(comparator == "<"){ |
| | | else if (comparator == "<") |
| | | { |
| | | strtext = Language.StringByID(StringId.wendudiyu); |
| | | } |
| | | |
| | |
| | | |
| | | } |
| | | |
| | | |
| | | |
| | | } |
| | | inputView.btnText.Text = strtext; |
| | | inputView.btnState.Text = strvalue; |
| | |
| | | strtext = Language.StringByID(StringId.rain); |
| | | } |
| | | break; |
| | | |
| | | |
| | | } |
| | | inputView.btnText.TextID =StringId.tianqibianhua; |
| | | inputView.btnText.TextID = StringId.tianqibianhua; |
| | | inputView.btnState.Text = strtext; |
| | | } |
| | | } |
| | |
| | | { |
| | | if (comparator == ">") |
| | | { |
| | | intValue=StringId.wendugaoyu; |
| | | intValue = StringId.wendugaoyu; |
| | | } |
| | | else if (comparator == "<") |
| | | { |
| | | intValue = StringId.wendudiyu; |
| | | |
| | | |
| | | } |
| | | |
| | | } |
| | |
| | | /// <param name="viewLayout">上下滑动控件</param> |
| | | public static void OutputTarget(FrameLayout thisView, VerticalScrolViewLayout viewLayout) |
| | | { |
| | | |
| | | |
| | | for (int i = 0; i < Logic.currlogic.output.Count; i++) |
| | | { |
| | | Output outputTarget = Logic.currlogic.output[i]; |
| | |
| | | targetView.btnState.Text = stateStr; |
| | | } |
| | | break; |
| | | case SPK.AcStandard: { |
| | | case SPK.AcStandard: |
| | | { |
| | | string on_off = GetKeyValue("on_off", dicList); |
| | | string set_temp = GetKeyValue("set_temp", dicList); |
| | | string mode = GetKeyValue("mode", dicList); |
| | | string fan = GetKeyValue("fan", dicList); |
| | | if (on_off != "") { |
| | | if (on_off != "") |
| | | { |
| | | switch (on_off) |
| | | { |
| | | case "on": |
| | | { |
| | | stateStr = Language.StringByID(StringId.onLogic)+","; |
| | | stateStr = Language.StringByID(StringId.onLogic) + ","; |
| | | } |
| | | break; |
| | | case "off": |
| | |
| | | stateStr = Language.StringByID(StringId.offLogic) + ","; |
| | | } |
| | | break; |
| | | |
| | | |
| | | } |
| | | } |
| | | |
| | |
| | | { |
| | | case "cool": |
| | | { |
| | | stateStr += Language.StringByID(StringId.coolLogic)+","; |
| | | stateStr += Language.StringByID(StringId.coolLogic) + ","; |
| | | } |
| | | break; |
| | | case "heat": |
| | |
| | | { |
| | | case "high": |
| | | { |
| | | stateStr += Language.StringByID(StringId.HighWindSpeed)+","; |
| | | stateStr += Language.StringByID(StringId.HighWindSpeed) + ","; |
| | | } |
| | | break; |
| | | case "medium": |
| | |
| | | { |
| | | targetView.btnState.Text = Language.StringByID(StringId.offLogic); |
| | | } |
| | | else { |
| | | else |
| | | { |
| | | targetView.btnState.Text = stateStr.TrimEnd(','); |
| | | |
| | | } |
| | |
| | | { |
| | | case "day": |
| | | { |
| | | stateStr += Language.StringByID(StringId.dayMode)+","; |
| | | stateStr += Language.StringByID(StringId.dayMode) + ","; |
| | | } |
| | | break; |
| | | case "night": |
| | |
| | | } |
| | | if (on_off != "" && on_off == "off") |
| | | { |
| | | targetView.btnState.Text =Language.StringByID(StringId.offLogic); |
| | | targetView.btnState.Text = Language.StringByID(StringId.offLogic); |
| | | } |
| | | else |
| | | { |
| | |
| | | { |
| | | Button button = (Button)sen; |
| | | //找到当前编辑的索引 |
| | | int indexVulae =0; |
| | | int indexVulae = 0; |
| | | for (int index = 0; index < Logic.currlogic.output.Count; index++) |
| | | { |
| | | Output target = Logic.currlogic.output[index]; |
| | |
| | | |
| | | } |
| | | break; |
| | | case SPK.SensorGas: |
| | | case SPK.SensorSmoke: |
| | | { |
| | | foreach (var dic in dicList) |
| | | { |
| | | string value = dic["value"]; |
| | | if (value == "alarm") |
| | | { |
| | | button1.Text = Language.StringByID(StringId.xieluo); |
| | | } |
| | | else |
| | | { |
| | | button1.Text = Language.StringByID(StringId.wuxieluo); |
| | | } |
| | | } |
| | | } |
| | | break; |
| | | case SPK.SensorWater: |
| | | { |
| | | foreach (var dic in dicList) |
| | | { |
| | | string value = dic["value"]; |
| | | if (value == "alarm") |
| | | { |
| | | button1.Text = Language.StringByID(StringId.luoshui); |
| | | } |
| | | else |
| | | { |
| | | button1.Text = Language.StringByID(StringId.wuluoshui); |
| | | } |
| | | } |
| | | } |
| | | break; |
| | | case SPK.SensorDryContact: |
| | | { |
| | | foreach (var dic in dicList) |
| | | { |
| | | string value = dic["value"]; |
| | | if (value == "on") |
| | | { |
| | | button1.Text = Language.StringByID(StringId.onLogic); |
| | | } |
| | | else |
| | | { |
| | | button1.Text = Language.StringByID(StringId.offLogic); |
| | | } |
| | | } |
| | | } |
| | | break; |
| | | case SPK.SensorShanLan: |
| | | case SPK.SensorDuiShe: |
| | | case SPK.SensorPir: |
| | | { |
| | | foreach (var dic in dicList) |
| | | { |
| | | string value = dic["value"]; |
| | | if (value == "true") |
| | | { |
| | | button1.Text = Language.StringByID(StringId.youren); |
| | | } |
| | | else |
| | | { |
| | | button1.Text = Language.StringByID(StringId.wuren); |
| | | } |
| | | } |
| | | } |
| | | break; |
| | | case SPK.SensorDoorWindow: |
| | | { |
| | | foreach (var dic in dicList) |
| | | { |
| | | string value = dic["value"]; |
| | | if (value == "true") |
| | | { |
| | | button1.Text = Language.StringByID(StringId.kaiqi); |
| | | } |
| | | else |
| | | { |
| | | button1.Text = Language.StringByID(StringId.bihe); |
| | | } |
| | | } |
| | | } |
| | | break; |
| | | case SPK.SensoruUtrasonic: |
| | | { |
| | | foreach (var dic in dicList) |
| | | { |
| | | string value = dic["value"]; |
| | | switch (dic["key"]) |
| | | { |
| | | case "status": |
| | | { |
| | | if (value == "true") |
| | | { |
| | | button1.Text = Language.StringByID(StringId.youren); |
| | | } |
| | | else |
| | | { |
| | | button1.Text = Language.StringByID(StringId.wuren); |
| | | } |
| | | |
| | | |
| | | } |
| | | break; |
| | | case "dismantle": |
| | | { |
| | | if (value == "true") |
| | | { |
| | | button1.Text = Language.StringByID(StringId.zaixian); |
| | | } |
| | | else |
| | | { |
| | | button1.Text = Language.StringByID(StringId.buzaixian); |
| | | } |
| | | } |
| | | break; |
| | | |
| | | } |
| | | |
| | | } |
| | | } |
| | | break; |
| | | } |
| | | } |
| | | /// <summary> |
| | |
| | | { |
| | | MainPage.BasePageView.RemoveViewByTag("Logic"); |
| | | } |
| | | |
| | | |
| | | /// <summary> Converts an array of bytes into a formatted string of hex digits (ex: E4 CA B2)</summary> |
| | | /// <param name="data"> The array of bytes to be translated into a string of hex digits. </param> |
| | | /// <returns> Returns a well formatted string of hex digits with spacing. </returns> |
| | |
| | | |
| | | return roomName.TrimEnd(','); |
| | | } |
| | | #region 动一改四 |
| | | /// <summary> |
| | | /// 获取设备类型图标 |
| | | /// </summary> |
| | |
| | | case SPK.FloorHeatStandard: |
| | | { |
| | | strPath = "LogicIcon/heatlogic.png"; |
| | | } |
| | | break; |
| | | case SPK.SensorSmoke: |
| | | case SPK.SensorWater: |
| | | case SPK.SensorGas: |
| | | case SPK.SensorDryContact: |
| | | case SPK.SensorShanLan: |
| | | case SPK.SensorDuiShe: |
| | | case SPK.SensorPir: |
| | | case SPK.SensorDoorWindow: |
| | | case SPK.SensoruUtrasonic: |
| | | { |
| | | strPath = "LogicIcon/sensor.png"; |
| | | } |
| | | break; |
| | | |
| | |
| | | { |
| | | deviceStrTypeList.Add(Language.StringByID(StringId.FloorHeating)); |
| | | } |
| | | var sensor = deviceList.Find((device) => |
| | | device.spk == SPK.SensorWater |
| | | || device.spk == SPK.SensorGas |
| | | || device.spk == SPK.SensorSmoke |
| | | || device.spk == SPK.SensorDryContact |
| | | || device.spk == SPK.SensorShanLan |
| | | || device.spk == SPK.SensorDuiShe |
| | | || device.spk == SPK.SensorPir |
| | | || device.spk == SPK.SensorDoorWindow |
| | | || device.spk == SPK.SensoruUtrasonic |
| | | ); |
| | | if (sensor != null) |
| | | { |
| | | deviceStrTypeList.Add(Language.StringByID(StringId.Sensor)); |
| | | } |
| | | return deviceStrTypeList; |
| | | |
| | | } |
| | |
| | | { |
| | | functionTypeList.Add(SPK.FloorHeatStandard); |
| | | } |
| | | else if (deviceType == Language.StringByID(StringId.Sensor)) |
| | | { |
| | | functionTypeList.Add(SPK.SensorSmoke); |
| | | functionTypeList.Add(SPK.SensorWater); |
| | | functionTypeList.Add(SPK.SensorGas); |
| | | functionTypeList.Add(SPK.SensorDryContact); |
| | | functionTypeList.Add(SPK.SensorShanLan); |
| | | functionTypeList.Add(SPK.SensorDuiShe); |
| | | functionTypeList.Add(SPK.SensorPir); |
| | | functionTypeList.Add(SPK.SensorDoorWindow); |
| | | functionTypeList.Add(SPK.SensoruUtrasonic); |
| | | |
| | | } |
| | | return functionTypeList; |
| | | |
| | | } |
| | |
| | | deviceTypeList.Add(SPK.CurtainTrietex); |
| | | deviceTypeList.Add(SPK.AcStandard); |
| | | deviceTypeList.Add(SPK.FloorHeatStandard); |
| | | deviceTypeList.Add(SPK.SensorSmoke); |
| | | deviceTypeList.Add(SPK.SensorWater); |
| | | deviceTypeList.Add(SPK.SensorGas); |
| | | deviceTypeList.Add(SPK.SensorDryContact); |
| | | deviceTypeList.Add(SPK.SensorShanLan); |
| | | deviceTypeList.Add(SPK.SensorDuiShe); |
| | | deviceTypeList.Add(SPK.SensorPir); |
| | | deviceTypeList.Add(SPK.SensorDoorWindow); |
| | | deviceTypeList.Add(SPK.SensoruUtrasonic); |
| | | } |
| | | break; |
| | | case target_if: |
| | |
| | | } |
| | | return deviceTypeList; |
| | | } |
| | | #endregion |
| | | /// <summary> |
| | | /// 显示的设备列表 |
| | | /// </summary> |
| | |
| | | for (int i = 0; i < deviceList.Count; i++) |
| | | { |
| | | var dev = deviceList[i]; |
| | | //过滤掉不需要显示的设备 |
| | | if (functionType.Contains(dev.spk)) |
| | | { |
| | | ///过滤掉不需要显示的设备 |
| | | devList.Add(dev); |
| | | } |
| | | |
| | |
| | | var list = GetShowDeviceList(functionTypeList, roomDeviceList); |
| | | return list; |
| | | } |
| | | /// <summary> |
| | | /// 网关ID(获取嘉乐网关ID) |
| | | /// </summary> |
| | | public static string GatewayId |
| | | { |
| | | get |
| | | { |
| | | if (Entity.DB_ResidenceData.Instance.HomeGateway == null) |
| | | { |
| | | return DriverLayer.Control.Ins.GatewayId; |
| | | } |
| | | return Entity.DB_ResidenceData.Instance.HomeGateway.gatewayId; |
| | | } |
| | | } |
| | | /// <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; |
| | | } |
| | | } |
| | | } |
| | | } |
old mode 100755
new mode 100644
| | |
| | | Height = Application.GetRealHeight(50), |
| | | BackgroundColor = CSS.CSS_Color.view, |
| | | }; |
| | | |
| | | /// <summary> |
| | | /// 文本描述 |
| | | /// </summary> |
old mode 100755
new mode 100644
| | |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// View的方法 |
| | | /// </summary> |
| | | /// <param name="frame">父控件</param> |
| | | /// <param name="text1">父控件</param> |
| | | /// <param name="text2">显示选择View数量</param> |
| | | ///<param name="stateVuale">之前的状态值</param> |
| | | /// <param name="action">返回回调</param> |
| | | /// <returns></returns> |
| | | public void FLayoutView(FrameLayout frame, int text1, int text2, string stateVuale, Action<int> action) |
| | | { |
| | | int i = 2; |
| | | frameLayout.Y = Application.GetRealHeight(603 - (44 * i)); |
| | | frameLayout.Height = Application.GetRealHeight(44 * i); |
| | | frame.AddChidren(frameLayout); |
| | | frame.AddChidren(btnCancel); |
| | | btnOn.TextID = text1; |
| | | btnOff.TextID = text2; |
| | | frameLayout.AddChidren(btnOn); |
| | | frameLayout.AddChidren(btnLine); |
| | | frameLayout.AddChidren(btnOff); |
| | | //取消点击事件 |
| | | btnCancel.MouseUpEventHandler += (sender1, e1) => |
| | | { |
| | | frame.RemoveFromParent(); |
| | | }; |
| | | |
| | | ///显示之前状态 |
| | | if (stateVuale != "") |
| | | { |
| | | if (stateVuale == btnOn.Text) |
| | | { |
| | | btnOn.TextColor = CSS.CSS_Color.textConfirmColor; |
| | | } |
| | | else if (stateVuale == btnOff.Text) |
| | | { |
| | | btnOff.TextColor = CSS.CSS_Color.textConfirmColor; |
| | | } |
| | | |
| | | } |
| | | |
| | | //点击事件 |
| | | btnOn.MouseUpEventHandler += (sender2, e2) => |
| | | { |
| | | action(btnOn.TextID); |
| | | frame.RemoveFromParent(); |
| | | }; |
| | | //点击事件 |
| | | btnOff.MouseUpEventHandler += (sender3, e3) => |
| | | { |
| | | action(btnOff.TextID); |
| | | frame.RemoveFromParent(); |
| | | }; |
| | | |
| | | |
| | | } |
| | | |
| | | |
| | | ///// <summary> |
| | |
| | | public class MainView |
| | | { |
| | | /// <summary> |
| | | /// 记录逻辑自动化父控件 |
| | | /// VerticalRefreshLayout父控件 |
| | | /// </summary> |
| | | public static FrameLayout automationPage; |
| | | /// <summary> |
| | |
| | | /// 显示条件或者目标类型图标 |
| | | /// </summary> |
| | | /// <param name="layouFrame">父控件</param> |
| | | /// <param name="logic">当前逻辑</param> |
| | | /// <param name="logic">当前自动化</param> |
| | | private static void GetSelectIcon(FrameLayout layouFrame, Logic logic) |
| | | { |
| | | |
| | |
| | | //2-功能图标 |
| | | for (int i = 0; i < logic.input.Count; i++) |
| | | { |
| | | if (logic.input[i] == null || logic.input[i].ToString() == "") |
| | | { |
| | | //防止有的空对象; |
| | | //正常情况下不会该现象; |
| | | continue; |
| | | } |
| | | |
| | | var int1 = int.Parse(logic.input[i].condition_type); |
| | | int iconInt = 0; |
old mode 100755
new mode 100644
| | |
| | | public class Send |
| | | { |
| | | /// <summary> |
| | | /// 网关ID(获取嘉乐网关ID) |
| | | /// </summary> |
| | | public static string GatewayId |
| | | { |
| | | get |
| | | { |
| | | if (Entity.DB_ResidenceData.Instance.HomeGateway == null) |
| | | { |
| | | return DriverLayer.Control.Ins.GatewayId; |
| | | } |
| | | return Entity.DB_ResidenceData.Instance.HomeGateway.gatewayId; |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 住宅ID |
| | | /// </summary> |
| | | public static string HomeId |
| | | { |
| | | get |
| | | { |
| | | return Entity.DB_ResidenceData.Instance.CurrentRegion.RegionID; |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 获取逻辑ID列表 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | public static ResponsePackNew GetLogicIdList() |
| | | { |
| | | var jObject = new JObject { { "homeId", HomeId } }; |
| | | var jObject = new JObject { { "homeId", LogicMethod.HomeId } }; |
| | | var responsePackNew = RequestServerhomeId(jObject, NewAPI.API_POST_Logic_List); |
| | | //如果是token过期则刷新token |
| | | if (responsePackNew.Code == StateCode.TOKEN_EXPIRED) |
| | |
| | | var logicjArray = new JArray { }; |
| | | var logicIfon = new JObject { }; |
| | | logicIfon.Add("sid", logic.sid); |
| | | logicIfon.Add("gatewayId", GatewayId); |
| | | logicIfon.Add("gatewayId", LogicMethod.GatewayId); |
| | | logicIfon.Add("name", logic.name); |
| | | logicIfon.Add("relation", logic.relation); |
| | | logicIfon.Add("enable", logic.enable); |
| | |
| | | logicIfon.Add("input", inputArray); |
| | | logicIfon.Add("output", outputArray); |
| | | logicjArray.Add(logicIfon); |
| | | var jObject = new JObject { { "homeId", HomeId }, { "logics", logicjArray } }; |
| | | var jObject = new JObject { { "homeId", LogicMethod.HomeId }, { "logics", logicjArray } }; |
| | | responsePackNew = RequestServerhomeId(jObject, NewAPI.API_POST_Logic_Add); |
| | | //如果是token过期则刷新token |
| | | if (responsePackNew.Code == StateCode.TOKEN_EXPIRED) |
| | |
| | | var logicIfon = new JObject { }; |
| | | logicIfon.Add("userLogicId", logic.userLogicId); |
| | | logicIfon.Add("sid", logic.sid); |
| | | logicIfon.Add("gatewayId", GatewayId); |
| | | logicIfon.Add("gatewayId", LogicMethod.GatewayId); |
| | | logicIfon.Add("name", logic.name); |
| | | logicIfon.Add("relation", logic.relation); |
| | | logicIfon.Add("enable", logic.enable); |
| | |
| | | logicIfon.Add("input", inputArray); |
| | | logicIfon.Add("output", outputArray); |
| | | logicjArray.Add(logicIfon); |
| | | var jObject = new JObject { { "homeId", HomeId }, { "logics", logicjArray } }; |
| | | var jObject = new JObject { { "homeId", LogicMethod.HomeId }, { "logics", logicjArray } }; |
| | | responsePackNew = RequestServerhomeId(jObject, NewAPI.API_POST_Logic_Update); |
| | | //如果是token过期则刷新token |
| | | if (responsePackNew.Code == StateCode.TOKEN_EXPIRED) |
| | |
| | | private void SwitchViewMethod(Entity.Function device, Button button, int len) |
| | | { |
| | | #region 界面 |
| | | FrameLayout frame = new FrameLayout |
| | | { |
| | | BackgroundColor = CSS.CSS_Color.viewTrans60lucence, |
| | | }; |
| | | FrameLayout frame = new FrameLayout { BackgroundColor = CSS.CSS_Color.viewTrans60lucence }; |
| | | this.AddChidren(frame); |
| | | LogicView.SwitchView switchView = new LogicView.SwitchView(); |
| | | switchView.FLayoutView(frame, len, button.Text, (strValue) => |
| | |
| | | bodyView.AddChidren(topView); |
| | | |
| | | //不是A网关或者是成员 只允许添加场景隐藏自动化 |
| | | var HideAutoPage = DB_ResidenceData.Instance.GatewayType != 1 || DB_ResidenceData.Instance.CurrentRegion.IsOthreShare; |
| | | var HideAutoPage = DB_ResidenceData.Instance.GatewayType != 1|| DB_ResidenceData.Instance.CurrentRegion.IsOthreShare; |
| | | //判断是否需要隐藏自动化 |
| | | if (HideAutoPage) |
| | | { |
| | |
| | | EventHandler<MouseEventArgs> eventHandler = (sender, e) => |
| | | { |
| | | var page = new ThirdPartyBrandListPage(); |
| | | var page = new HDL_ON.UI.UI2.Intelligence.Automation.EmptyClass(); |
| | | MainPage.BasePageView.AddChidren(page); |
| | | page.LoadPage(); |
| | | page.Show(new System.Collections.Generic.List<string>(),null,(str)=> { |
| | | |
| | | }); |
| | | MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; |
| | | }; |
| | | btnResidenceAddFunctionIcon.MouseUpEventHandler = eventHandler; |
old mode 100755
new mode 100644
| | |
| | | }; |
| | | bodyView.AddChidren(contentView); |
| | | |
| | | |
| | | |
| | | contentView.BeginHeaderRefreshingAction += () => |
| | | { |
| | | deviceIpList.Clear(); |