wxr
2021-01-27 df7dd3e3f8830eceb615c59099631fc2a744b0ee
Merge branch 'WJC' into NewFilePath
6个文件已添加
32个文件已修改
1672 ■■■■■ 已修改文件
.vs/HDL_APP_Project/xs/project-cache/Blufi-Debug.json 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
.vs/HDL_APP_Project/xs/sqlite3/storage.ide 补丁 | 查看 | 原始文档 | blame | 历史
.vs/HDL_APP_Project/xs/sqlite3/storage.ide-shm 补丁 | 查看 | 原始文档 | blame | 历史
.vs/HDL_APP_Project/xs/sqlite3/storage.ide-wal 补丁 | 查看 | 原始文档 | blame | 历史
DLL/.DS_Store 补丁 | 查看 | 原始文档 | blame | 历史
DLL/IOS/Shared.IOS.JLCountryCode.dll 补丁 | 查看 | 原始文档 | blame | 历史
DLL/Shared.Droid.HDLWidget.dll 补丁 | 查看 | 原始文档 | blame | 历史
DLL/Shared.Droid.dll 补丁 | 查看 | 原始文档 | blame | 历史
DLL/Shared.Droid.xml 147 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DLL/Shared.IOS.TBL.dll 补丁 | 查看 | 原始文档 | blame | 历史
DLL/Shared.IOS.dll 补丁 | 查看 | 原始文档 | blame | 历史
DLL/Shared.IOS.xml 175 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Language.ini 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Phone/LogicIcon/sensor.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/HDL-ON_Android.csproj 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Resources/Resource.designer.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_iOS/HDL-ON_iOS.csproj 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_iOS/Resources/Language.ini 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_iOS/Resources/Phone/LogicIcon/sensor.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/Common/ApiUtlis.cs 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/Common/R.cs 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/Entity/Function/Function.cs 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/Entity/FunctionList.cs 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/HDL_ON.projitems 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/CSS/CSS.cs 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/MainPage.cs 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/3-Intelligence/Automation/ConditionDeviceFunList.cs 235 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/3-Intelligence/Automation/EmptyClass.cs 475 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/3-Intelligence/Automation/InpOrOutLogicMethod.cs 310 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/3-Intelligence/Automation/LogicMethod.cs 90 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/3-Intelligence/Automation/LogicView/FunTypeView.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/3-Intelligence/Automation/LogicView/SwitchView.cs 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/3-Intelligence/Automation/MainView.cs 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/3-Intelligence/Automation/Send.cs 36 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/3-Intelligence/Automation/TargetDeviceFunList.cs 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/3-Intelligence/IntelligencePage.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/4-PersonalCenter/PersonalCenterPageBLL.cs 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/4-PersonalCenter/SearchDevice/SearchDevicePage.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.vs/HDL_APP_Project/xs/project-cache/Blufi-Debug.json
@@ -1 +1 @@
{"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":[]}
.vs/HDL_APP_Project/xs/sqlite3/storage.ide
Binary files differ
.vs/HDL_APP_Project/xs/sqlite3/storage.ide-shm
Binary files differ
.vs/HDL_APP_Project/xs/sqlite3/storage.ide-wal
Binary files differ
DLL/.DS_Store
Binary files differ
DLL/IOS/Shared.IOS.JLCountryCode.dll
Binary files differ
DLL/Shared.Droid.HDLWidget.dll
Binary files differ
DLL/Shared.Droid.dll
Binary files differ
DLL/Shared.Droid.xml
@@ -1054,6 +1054,18 @@
        <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>
@@ -1331,6 +1343,13 @@
            设备控件背景图
            </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>
@@ -2973,16 +2992,6 @@
            </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>
            是否离线 离线的话禁止滑动并绘制背景遮挡层
@@ -4249,6 +4258,23 @@
             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
@@ -4259,6 +4285,11 @@
        <member name="M:Shared.MyEchartsViewOn.refreshEcharts">
            <summary>
            刷新界面
            </summary>
        </member>
        <member name="P:Shared.MyEchartsViewOn.webView">
            <summary>
            MyWebView
            </summary>
        </member>
        <member name="T:Shared.WebView">
@@ -4302,6 +4333,102 @@
            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>
DLL/Shared.IOS.TBL.dll
Binary files differ
DLL/Shared.IOS.dll
Binary files differ
DLL/Shared.IOS.xml
@@ -1177,6 +1177,18 @@
        <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>
            位置布局
@@ -3369,16 +3381,6 @@
            </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>
            是否离线 离线的话禁止滑动并绘制背景遮挡层
@@ -5001,7 +5003,6 @@
        <member name="T:Shared.MyEchartsViewOn">
            <summary>
            MyEchartsViewOn HDLON+
            </summary>
        </member>
        <member name="F:Shared.MyEchartsViewOn.optionJsonString">
@@ -5014,15 +5015,47 @@
            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">
@@ -5172,6 +5205,122 @@
            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>
            声音变化事件
HDL-ON_Android/Assets/Language.ini
@@ -1202,7 +1202,21 @@
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
HDL-ON_Android/Assets/Phone/LogicIcon/sensor.png
HDL-ON_Android/HDL-ON_Android.csproj
@@ -679,6 +679,7 @@
    <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" />
HDL-ON_Android/Resources/Resource.designer.cs
@@ -2,6 +2,7 @@
//------------------------------------------------------------------------------
// <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.
@@ -14,7 +15,7 @@
{
    
    
    [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
    {
        
HDL-ON_iOS/HDL-ON_iOS.csproj
@@ -659,6 +659,7 @@
      <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" />
HDL-ON_iOS/Resources/Language.ini
@@ -1209,6 +1209,21 @@
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
HDL-ON_iOS/Resources/Phone/LogicIcon/sensor.png
HDL_ON/Common/ApiUtlis.cs
@@ -161,6 +161,7 @@
                        }
                        if (FunctionList.List.GetDeviceFunctionList().Count > 0)
                        {
                            for (int i = 0; i < FunctionList.List.GetDeviceFunctionList().Count;)
                            {
                                var localFunction = FunctionList.List.GetDeviceFunctionList()[i];
@@ -191,6 +192,8 @@
                                    deviceList.list.Remove(newFunction);//操作完的数据清理掉,剩下的就是新增的功能
                                }
                            }
                        }
                        //处理剩下的新增功能
                        foreach (var newFunction in deviceList.list)
HDL_ON/Common/R.cs
@@ -566,8 +566,21 @@
        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>
HDL_ON/Entity/Function/Function.cs
@@ -837,10 +837,36 @@
        /// 湿度传感器
        /// </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>
HDL_ON/Entity/FunctionList.cs
@@ -91,6 +91,10 @@
        /// 环境传感器列表
        /// </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>
@@ -182,9 +186,16 @@
                            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;
                    }
                }
@@ -212,6 +223,7 @@
                deviceFunctionList.AddRange(floorHeatings);
                deviceFunctionList.AddRange(electricals);
                deviceFunctionList.AddRange(sensorsEnvironmentalScience);
                deviceFunctionList.AddRange(sensorsArm);
                deviceFunctionList.AddRange(UI.Music.A31MusicModel.A31MusicModelList);
            }
            try
@@ -350,7 +362,7 @@
                    }
                    break;
                case FunctionCategory.Sensor:
                    switch(f.spk)
                    switch (f.spk)
                    {
                        case SPK.SensorTVOC:
                        case SPK.SensorCO2:
@@ -359,6 +371,17 @@
                        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;
            }
HDL_ON/HDL_ON.projitems
@@ -275,6 +275,7 @@
    <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\" />
HDL_ON/UI/CSS/CSS.cs
old mode 100755 new mode 100644
HDL_ON/UI/MainPage.cs
@@ -171,7 +171,6 @@
                addResidencePage.LoadView();
                return;
            }
            new System.Threading.Thread(() =>
            {
                try
@@ -209,11 +208,14 @@
                        };
                        BaseView.AddChidren(BasePageView);
                        //跳转页面----
                        var UserBasePage = new UserPage();
                        BasePageView.AddChidren(UserBasePage);
                        UserBasePage.LoadPage();
                        BasePageView.PageIndex = 0;
                        if (isFirstOpen)
                        {
@@ -232,11 +234,16 @@
                {
                    Application.RunOnMainThread(() =>
                    {
                        if (downloadData)
                        {
                            ///初始化app数据
                            Common.ApiUtlis.Ins.DownloadData();
                        };
                    });
                }
            }).Start();
HDL_ON/UI/UI2/3-Intelligence/Automation/ConditionDeviceFunList.cs
@@ -55,48 +55,123 @@
                //地热
                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;
@@ -149,6 +224,94 @@
        }
        /// <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>
HDL_ON/UI/UI2/3-Intelligence/Automation/EmptyClass.cs
New file
@@ -0,0 +1,475 @@
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");
        }
    }
}
HDL_ON/UI/UI2/3-Intelligence/Automation/InpOrOutLogicMethod.cs
@@ -50,7 +50,7 @@
                                            {
                                                strtext = Language.StringByID(StringId.sunrise);
                                                statetext = Language.StringByID(StringId.advanced);
                                            }
                                            break;
                                        case "before_sunset":
@@ -58,8 +58,9 @@
                                                strtext = Language.StringByID(StringId.sunset);
                                                statetext = Language.StringByID(StringId.advanced);
                                            } break;
                                            }
                                            break;
                                        case "before_noon":
                                            {
                                                strtext = Language.StringByID(StringId.at);
@@ -70,12 +71,14 @@
                                            {
                                                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);
@@ -161,6 +164,140 @@
                                        }
                                    }
                                    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;
@@ -180,10 +317,12 @@
                                    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);
                                            }
@@ -212,7 +351,7 @@
                                }
                            }
                            inputView.btnText.Text = strtext;
                            inputView.btnState.Text = strvalue;
@@ -245,9 +384,9 @@
                                            strtext = Language.StringByID(StringId.rain);
                                        }
                                        break;
                                }
                                inputView.btnText.TextID =StringId.tianqibianhua;
                                inputView.btnText.TextID = StringId.tianqibianhua;
                                inputView.btnState.Text = strtext;
                            }
                        }
@@ -357,12 +496,12 @@
                                            {
                                                if (comparator == ">")
                                                {
                                                    intValue=StringId.wendugaoyu;
                                                    intValue = StringId.wendugaoyu;
                                                }
                                                else if (comparator == "<")
                                                {
                                                    intValue = StringId.wendudiyu;
                                                }
                                            }
@@ -428,7 +567,7 @@
        /// <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];
@@ -533,17 +672,19 @@
                                        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":
@@ -551,7 +692,7 @@
                                                        stateStr = Language.StringByID(StringId.offLogic) + ",";
                                                    }
                                                    break;
                                            }
                                        }
@@ -568,7 +709,7 @@
                                            {
                                                case "cool":
                                                    {
                                                        stateStr += Language.StringByID(StringId.coolLogic)+",";
                                                        stateStr += Language.StringByID(StringId.coolLogic) + ",";
                                                    }
                                                    break;
                                                case "heat":
@@ -597,7 +738,7 @@
                                            {
                                                case "high":
                                                    {
                                                        stateStr += Language.StringByID(StringId.HighWindSpeed)+",";
                                                        stateStr += Language.StringByID(StringId.HighWindSpeed) + ",";
                                                    }
                                                    break;
                                                case "medium":
@@ -622,7 +763,8 @@
                                        {
                                            targetView.btnState.Text = Language.StringByID(StringId.offLogic);
                                        }
                                        else {
                                        else
                                        {
                                            targetView.btnState.Text = stateStr.TrimEnd(',');
                                        }
@@ -663,7 +805,7 @@
                                            {
                                                case "day":
                                                    {
                                                        stateStr += Language.StringByID(StringId.dayMode)+",";
                                                        stateStr += Language.StringByID(StringId.dayMode) + ",";
                                                    }
                                                    break;
                                                case "night":
@@ -717,7 +859,7 @@
                                        }
                                        if (on_off != "" && on_off == "off")
                                        {
                                            targetView.btnState.Text =Language.StringByID(StringId.offLogic);
                                            targetView.btnState.Text = Language.StringByID(StringId.offLogic);
                                        }
                                        else
                                        {
@@ -755,7 +897,7 @@
                {
                    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];
@@ -1064,6 +1206,128 @@
                    }
                    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>
HDL_ON/UI/UI2/3-Intelligence/Automation/LogicMethod.cs
@@ -23,7 +23,7 @@
        {
            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>
@@ -262,6 +262,7 @@
            return roomName.TrimEnd(',');
        }
        #region   动一改四
        /// <summary>
        /// 获取设备类型图标
        /// </summary>
@@ -296,6 +297,19 @@
                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;
@@ -333,6 +347,21 @@
            {
                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;
        }
@@ -366,6 +395,19 @@
            {
                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;
        }
@@ -390,6 +432,15 @@
                        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:
@@ -409,6 +460,7 @@
            }
            return deviceTypeList;
        }
        #endregion
        /// <summary>
        /// 显示的设备列表
        /// </summary>
@@ -421,9 +473,9 @@
            for (int i = 0; i < deviceList.Count; i++)
            {
                var dev = deviceList[i];
                //过滤掉不需要显示的设备
                if (functionType.Contains(dev.spk))
                {
                    ///过滤掉不需要显示的设备
                    devList.Add(dev);
                }
@@ -446,5 +498,39 @@
            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;
            }
        }
    }
}
HDL_ON/UI/UI2/3-Intelligence/Automation/LogicView/FunTypeView.cs
old mode 100755 new mode 100644
@@ -12,7 +12,6 @@
            Height = Application.GetRealHeight(50),
            BackgroundColor = CSS.CSS_Color.view,
        };
        /// <summary>
        /// 文本描述
        /// </summary>
HDL_ON/UI/UI2/3-Intelligence/Automation/LogicView/SwitchView.cs
old mode 100755 new mode 100644
@@ -162,6 +162,62 @@
        }
        /// <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>
HDL_ON/UI/UI2/3-Intelligence/Automation/MainView.cs
@@ -9,7 +9,7 @@
    public class MainView
    {
        /// <summary>
        /// 记录逻辑自动化父控件
        /// VerticalRefreshLayout父控件
        /// </summary>
        public static FrameLayout automationPage;
        /// <summary>
@@ -328,7 +328,7 @@
        /// 显示条件或者目标类型图标
        /// </summary>
        /// <param name="layouFrame">父控件</param>
        /// <param name="logic">当前逻辑</param>
        /// <param name="logic">当前自动化</param>
        private static void GetSelectIcon(FrameLayout layouFrame, Logic logic)
        {
@@ -341,12 +341,6 @@
            //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;
HDL_ON/UI/UI2/3-Intelligence/Automation/Send.cs
old mode 100755 new mode 100644
@@ -10,38 +10,12 @@
    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)
@@ -134,7 +108,7 @@
                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);
@@ -142,7 +116,7 @@
                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)
@@ -222,7 +196,7 @@
                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);
@@ -230,7 +204,7 @@
                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)
HDL_ON/UI/UI2/3-Intelligence/Automation/TargetDeviceFunList.cs
@@ -426,10 +426,7 @@
        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) =>
HDL_ON/UI/UI2/3-Intelligence/IntelligencePage.cs
@@ -71,7 +71,7 @@
            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)
            {
HDL_ON/UI/UI2/4-PersonalCenter/PersonalCenterPageBLL.cs
@@ -262,8 +262,11 @@
            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;
HDL_ON/UI/UI2/4-PersonalCenter/SearchDevice/SearchDevicePage.cs
old mode 100755 new mode 100644
@@ -30,6 +30,8 @@
            };
            bodyView.AddChidren(contentView);
            contentView.BeginHeaderRefreshingAction += () =>
            {
                deviceIpList.Clear();