HDL Home App 第二版本 旧平台金堂用 正在使用
黄学彪
2020-05-07 e2cd94abacc0101af8d0db7fed3a785c1a045b5d
上传
15个文件已添加
1个文件已删除
19个文件已修改
820 ■■■■ 已修改文件
ZigbeeApp/GateWay.Droid/Assets/Language.ini 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorCeilingGas.png 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorCeilingGasSelected.png 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorCeilingGasSelected2.png 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorPMTwoPointFive.png 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/GateWay.Droid/Assets/Phone/Instruct/SensorCeilingGas.png 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/GateWay.Droid/Assets/Phone/Instruct/SensorPMTwoPointFive.png 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/GateWay.Droid/Assets/Phone/RealDevice/SensorCeilingGas.png 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/GateWay.Droid/GateWay.Droid.csproj 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/GateWay.Droid/Properties/AndroidManifest.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Home.Ios/Home.IOS.csproj 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Home.Ios/Resources/Language.ini 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Home.Ios/Resources/Phone/Device/SensorCeilingGas.png 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Home.Ios/Resources/Phone/Device/SensorCeilingGasSelected.png 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Home.Ios/Resources/Phone/Device/SensorCeilingGasSelected2.png 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Home.Ios/Resources/Phone/Device/SensorPMTwoPointFive.png 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Home.Ios/Resources/Phone/Instruct/SensorCeilingGas.png 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Home.Ios/Resources/Phone/Instruct/SensorPMTwoPointFive.png 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Home.Ios/Resources/Phone/RealDevice/SensorCeilingGas.png 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Common/CommonPage.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/Device/Logic/SoneLogicList.cs 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/Login/AccountLoginForm.cs 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlDevicePanelLogic.cs 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlExperienceAccountLogic.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Resourse/ControlCommonResourse.cs 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/UserCenter/Device/Direction/AddDeviceTypeListForm.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/UserCenter/Device/Direction/SensorPMTwoPointFiveForm.cs 95 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelFangyueFreshAirBackLightSettionForm.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelFangyueFreshAirTargetForm.cs 323 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelFangyueFreshAirTargetsForm.cs 151 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/UserCenter/DoorLock/DoorLockCommonInfo.cs 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UserDoorLockPage.cs 110 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/ZigBee/Device/ZbGateway.cs 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/R.cs 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Shared.projitems 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/GateWay.Droid/Assets/Language.ini
@@ -315,6 +315,7 @@
310=请输入合法的数字
311=手动
312= 背光灯颜色
313=长按图示按键5秒以上,信号图标{0}快闪, 进入配网状态。信号图标常亮则配网成功
5097=取消
5098=确定
@@ -1837,6 +1838,7 @@
16113=灯全开
16114=灯全关
16115=常开自动化手动取消
16116=游客体验
;★★★★下面这些是接口的返回信息翻译,从18000开始★★★★
18004=指定网关已经被绑定
@@ -2069,4 +2071,5 @@
70022=温湿度传感器
70023=中继器
70024=智能空开
70025=吸顶燃气传感器
70025=吸顶燃气传感器
70026=PM2.5空气质量传感器
ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorCeilingGas.png
ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorCeilingGasSelected.png
ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorCeilingGasSelected2.png
ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorPMTwoPointFive.png
ZigbeeApp/GateWay.Droid/Assets/Phone/Instruct/SensorCeilingGas.png
ZigbeeApp/GateWay.Droid/Assets/Phone/Instruct/SensorPMTwoPointFive.png
ZigbeeApp/GateWay.Droid/Assets/Phone/RealDevice/SensorCeilingGas.png
ZigbeeApp/GateWay.Droid/GateWay.Droid.csproj
@@ -2116,6 +2116,27 @@
  <ItemGroup>
    <AndroidAsset Include="Assets\Phone\FreshAir\FreshAirRealDevicePic.png" />
  </ItemGroup>
  <ItemGroup>
    <AndroidAsset Include="Assets\Phone\RealDevice\SensorCeilingGas.png" />
  </ItemGroup>
  <ItemGroup>
    <AndroidAsset Include="Assets\Phone\Device\SensorCeilingGas.png" />
  </ItemGroup>
  <ItemGroup>
    <AndroidAsset Include="Assets\Phone\Device\SensorCeilingGasSelected.png" />
  </ItemGroup>
  <ItemGroup>
    <AndroidAsset Include="Assets\Phone\Device\SensorCeilingGasSelected2.png" />
  </ItemGroup>
  <ItemGroup>
    <AndroidAsset Include="Assets\Phone\Instruct\SensorCeilingGas.png" />
  </ItemGroup>
  <ItemGroup>
    <AndroidAsset Include="Assets\Phone\Device\SensorPMTwoPointFive.png" />
  </ItemGroup>
  <ItemGroup>
    <AndroidAsset Include="Assets\Phone\Instruct\SensorPMTwoPointFive.png" />
  </ItemGroup>
  <Import Project="..\Shared\Shared.projitems" Label="Shared" Condition="Exists('..\Shared\Shared.projitems')" />
  <Import Project="$(MSBuildExtensionsPath)\Xamarin\Android\Xamarin.Android.CSharp.targets" />
  <Import Project="..\packages\Xamarin.Android.Support.Annotations.26.0.2\build\MonoAndroid80\Xamarin.Android.Support.Annotations.targets" Condition="Exists('..\packages\Xamarin.Android.Support.Annotations.26.0.2\build\MonoAndroid80\Xamarin.Android.Support.Annotations.targets')" />
ZigbeeApp/GateWay.Droid/Properties/AndroidManifest.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.hdl.home" android:versionCode="2020042701" android:installLocation="auto" android:versionName="1.0.20042701">
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.hdl.home" android:versionCode="2020050601" android:installLocation="auto" android:versionName="1.0.20050601">
    <uses-sdk android:minSdkVersion="23" android:targetSdkVersion="26" />
    <permission android:name="com.hdl.home.permission.JPUSH_MESSAGE" android:protectionLevel="signature" />
    <uses-permission android:name="android.permission.WAKE_LOCK" />
ZigbeeApp/Home.Ios/Home.IOS.csproj
@@ -231,9 +231,11 @@
      <BundleResource Include="Resources\Phone\Instruct\PanelFangyueFourButton.png" />
      <BundleResource Include="Resources\Phone\Instruct\PanelFourButton.png" />
      <BundleResource Include="Resources\Phone\Instruct\AirConditionerZbGateway.png" />
      <BundleResource Include="Resources\Phone\Instruct\SensorCeilingGas.png" />
      <BundleResource Include="Resources\Phone\Instruct\IntelligentLocksH06C.png" />
      <BundleResource Include="Resources\Phone\Instruct\SensorDoorWindow.png" />
      <BundleResource Include="Resources\Phone\Instruct\SensorFire.png" />
      <BundleResource Include="Resources\Phone\Instruct\SensorPMTwoPointFive.png" />
      <BundleResource Include="Resources\Phone\Instruct\PanelThreeButton.png" />
      <BundleResource Include="Resources\Phone\Instruct\SensorCarbonMonoxide.png" />
      <BundleResource Include="Resources\Phone\Instruct\DimmableLightOneLoad.png" />
@@ -714,6 +716,7 @@
      <BundleResource Include="Resources\Phone\Device\SensorCarbonMonoxideSelected.png" />
      <BundleResource Include="Resources\Phone\Device\ButtonPanelFour.png" />
      <BundleResource Include="Resources\Phone\Device\RelayEpointSelected.png" />
      <BundleResource Include="Resources\Phone\Device\SensorCeilingGasSelected.png" />
      <BundleResource Include="Resources\Phone\Device\ButtonPanelSelected.png" />
      <BundleResource Include="Resources\Phone\Device\SensorTemperatureHumidity.png" />
      <BundleResource Include="Resources\Phone\Device\RepeaterZigbeeSelected2.png" />
@@ -734,6 +737,7 @@
      <BundleResource Include="Resources\Phone\Device\Sensor.png" />
      <BundleResource Include="Resources\Phone\Device\FreshAirEpointSelected2.png" />
      <BundleResource Include="Resources\Phone\Device\RepeaterSelected.png" />
      <BundleResource Include="Resources\Phone\Device\SensorCeilingGasSelected2.png" />
      <BundleResource Include="Resources\Phone\Device\AirSwitchSelected2.png" />
      <BundleResource Include="Resources\Phone\Device\ConverterSelected2.png" />
      <BundleResource Include="Resources\Phone\Device\AirSwitchSelected.png" />
@@ -776,6 +780,7 @@
      <BundleResource Include="Resources\Phone\Device\ButtonPanelFourSelected.png" />
      <BundleResource Include="Resources\Phone\Device\ButtonPanelOneSelected.png" />
      <BundleResource Include="Resources\Phone\Device\SensorPirSelected.png" />
      <BundleResource Include="Resources\Phone\Device\SensorCeilingGas.png" />
      <BundleResource Include="Resources\Phone\Device\CurtainSiphonateSelected2.png" />
      <BundleResource Include="Resources\Phone\Device\LightSelected2.png" />
      <BundleResource Include="Resources\Phone\Device\ButtonPanelThreeSelected.png" />
@@ -801,6 +806,7 @@
      <BundleResource Include="Resources\Phone\Device\ButtonPanelThree.png" />
      <BundleResource Include="Resources\Phone\Device\SensorInfraredSelected.png" />
      <BundleResource Include="Resources\Phone\Device\RepeaterSelected2.png" />
      <BundleResource Include="Resources\Phone\Device\SensorPMTwoPointFive.png" />
      <BundleResource Include="Resources\Phone\Device\ConverterSelected.png" />
      <BundleResource Include="Resources\Phone\Device\RepeaterZigbeeSelected.png" />
      <BundleResource Include="Resources\Phone\Device\SensorCarbonMonoxide.png" />
@@ -992,6 +998,7 @@
      <BundleResource Include="Resources\Phone\RealDevice\CommonDevice.png" />
      <BundleResource Include="Resources\Phone\RealDevice\ButtonPanelFangyueEnvironment.png" />
      <BundleResource Include="Resources\Phone\RealDevice\AirConditionerZbGateway.png" />
      <BundleResource Include="Resources\Phone\RealDevice\SensorCeilingGas.png" />
      <BundleResource Include="Resources\Phone\RealDevice\IntelligentLocksH06C.png" />
      <BundleResource Include="Resources\Phone\RealDevice\SensorDoorWindow.png" />
      <BundleResource Include="Resources\Phone\RealDevice\ButtonPanelFangyueEight.png" />
ZigbeeApp/Home.Ios/Resources/Language.ini
@@ -315,6 +315,7 @@
310=请输入合法的数字
311=手动
312= 背光灯颜色
313=长按图示按键5秒以上,信号图标{0}快闪, 进入配网状态。信号图标常亮则配网成功
5097=取消
5098=确定
@@ -1837,6 +1838,7 @@
16113=灯全开
16114=灯全关
16115=常开自动化手动取消
16116=游客体验
;★★★★下面这些是接口的返回信息翻译,从18000开始★★★★
18004=指定网关已经被绑定
@@ -2069,4 +2071,5 @@
70022=温湿度传感器
70023=中继器
70024=智能空开
70025=吸顶燃气传感器
70025=吸顶燃气传感器
70026=PM2.5空气质量传感器
ZigbeeApp/Home.Ios/Resources/Phone/Device/SensorCeilingGas.png
ZigbeeApp/Home.Ios/Resources/Phone/Device/SensorCeilingGasSelected.png
ZigbeeApp/Home.Ios/Resources/Phone/Device/SensorCeilingGasSelected2.png
ZigbeeApp/Home.Ios/Resources/Phone/Device/SensorPMTwoPointFive.png
ZigbeeApp/Home.Ios/Resources/Phone/Instruct/SensorCeilingGas.png
ZigbeeApp/Home.Ios/Resources/Phone/Instruct/SensorPMTwoPointFive.png
ZigbeeApp/Home.Ios/Resources/Phone/RealDevice/SensorCeilingGas.png
ZigbeeApp/Shared/Common/CommonPage.cs
@@ -57,7 +57,7 @@
        /// <summary>
        /// 版本号
        /// </summary>
        public static string CodeIDString = "1.0.20042801";
        public static string CodeIDString = "1.0.20050601";
        /// <summary>
        /// 注册来源(0:HDL On 1:Zigbee)
        /// </summary>
ZigbeeApp/Shared/Phone/Device/Logic/SoneLogicList.cs
@@ -400,11 +400,7 @@
        private void RefreshView(VerticalRefreshLayout verticalRefresh)
        {
            verticalRefresh.RemoveAll();
            for (int i = 0; i < 6; i++)
            {
                Common.Logic.SoneLogicList.Add(new Common.Logic { LogicName = i.ToString() });
            }
            foreach (var logic in Common.Logic.SoneLogicList)
            {
                #region  自动化布局View
ZigbeeApp/Shared/Phone/Login/AccountLoginForm.cs
@@ -189,10 +189,10 @@
            var btnTiyan = new NormalViewControl(300, 100, true);
            btnTiyan.Y = btnLoginByCode.Y;
            btnTiyan.TextAlignment = TextAlignment.Center;
            btnTiyan.TextColor = UserCenterColor.Current.TextGrayColor3;
            btnTiyan.TextColor = UserCenterColor.Current.TextOrangeColor;
            btnTiyan.TextSize = 12;
            btnTiyan.Gravity = Gravity.CenterHorizontal;
            btnTiyan.Text = "游客体验";
            btnTiyan.TextID = R.MyInternationalizationString.uExperienceAccount;
            frameMidBack.AddChidren(btnTiyan);
            btnTiyan.ButtonClickEvent += (sender, e) =>
            {
@@ -637,14 +637,10 @@
            //字体总宽度
            int fontWidth = 0;
            int btnWidth = 0;
#if Android
            //特殊的误差值
            int speceilValue = Application.GetRealWidth(20);
#endif
#if iOS
            //特殊的误差值
            int speceilValue = Application.GetRealWidth(10);
#endif
            int speceilValue = ControlCommonResourse.TwoTextSpace;
            //我已阅读并同意
            var btnMsg1 = new NormalViewControl(100, 90, true);
            btnMsg1.Gravity = Gravity.CenterVertical;
ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlDevicePanelLogic.cs
@@ -82,6 +82,34 @@
        }
        /// <summary>
        /// 获取面板颜色的信息(出错会返回null)
        /// </summary>
        /// <param name="panel">按键面板的某一个回路</param>
        /// <returns></returns>
        public async Task<Panel.KeyColorData> GetPanelColorInfo(Panel panel)
        {
            panel.DeviceEpoint = 1;
            Panel.KeyNum keyNum = (Panel.KeyNum)panel.DeviceEpoint;
            var result = await panel.GetPanelColorInfoAsync(keyNum);
            //共通错误检测
            string error = HdlCheckLogic.Current.CheckCommonErrorCode(result);
            if (error != null)
            {
                this.ShowErrorMsg(error);
                return null;
            }
            if (result == null || result.keyColorData == null)
            {
                //获取按键面板颜色调节信息失败
                string msg = Language.StringByID(R.MyInternationalizationString.uGetPanelColorRegulationInfoFail);
                this.ShowErrorMsg(msg);
                return null;
            }
            return result.keyColorData;
        }
        /// <summary>
        /// 设置按键面板指定端点的【指示灯开关颜色】的信息
        /// </summary>
        /// <param name="panel">按键面板的某一个回路</param>
ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlExperienceAccountLogic.cs
@@ -234,7 +234,6 @@
                list.Add(new AddDevicePra { DeviceType = VirtualDeviceEnum.A空气开关, RoomId = floorKey + "_XuanGuan", DeviceCount = 1 });
                list.Add(new AddDevicePra { DeviceType = VirtualDeviceEnum.A1路调光器, RoomId = floorKey + "_XuanGuan", DeviceCount = 1 });
                list.Add(new AddDevicePra { DeviceType = VirtualDeviceEnum.A门窗磁传感器, RoomId = floorKey + "_XuanGuan", DeviceCount = 1 });
                list.Add(new AddDevicePra { DeviceType = VirtualDeviceEnum.A智能门锁, RoomId = floorKey + "_XuanGuan", DeviceCount = 1 });
                //厨房
                list.Add(new AddDevicePra { DeviceType = VirtualDeviceEnum.A4按键面板, RoomId = floorKey + "_ChuFang", DeviceCount = 1 });
ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Resourse/ControlCommonResourse.cs
@@ -34,7 +34,7 @@
        /// </summary>
        public static int BodyFrameHeight
        {
            get { return UserView.HomePage.Instance.Height - Application.GetRealHeight(184); }
            get { return UserView.HomePage.Instance.Height - TopMenuFrameHeight - TopFrameHeight; }
        }
        /// <summary>
        /// 画面BottomFrameLayout的高度(高度:141 注:此变量在个人中心不使用)
@@ -68,5 +68,17 @@
        /// 徐梅的门锁界面是否是打开的状态
        /// </summary>
        public static bool IsDoorLockPageOpen = false;
#if Android
        /// <summary>
        /// 两个文本拼接时,为了看起来是正常的,需要减去它们之间的间隔误差
        /// </summary>
        public static int TwoTextSpace = Application.GetRealWidth(20);
#endif
#if iOS
        /// <summary>
        /// 两个文本拼接时,为了看起来是正常的,需要减去它们之间的间隔误差
        /// </summary>
        public static int TwoTextSpace = Application.GetRealWidth(10);
#endif
    }
}
ZigbeeApp/Shared/Phone/UserCenter/Device/Direction/AddDeviceTypeListForm.cs
@@ -176,6 +176,11 @@
            objectText = Language.StringByID(R.MyInternationalizationString.uDeviceDirectionName23);
            unSelectPic = "Device/SensorTemperatureHumidity.png";
            this.AddMenuRow(objectText, unSelectPic, "SensorTemperatureHumidityForm");
            //PM2.5空气质量传感器
            objectText = Language.StringByID(R.MyInternationalizationString.uDeviceDirectionName27);
            unSelectPic = "Device/SensorPMTwoPointFive.png";
            this.AddMenuRow(objectText, unSelectPic, "SensorPMTwoPointFiveForm");
            //中继器
            objectText = Language.StringByID(R.MyInternationalizationString.uDeviceDirectionName24);
ZigbeeApp/Shared/Phone/UserCenter/Device/Direction/SensorPMTwoPointFiveForm.cs
New file
@@ -0,0 +1,95 @@
using System;
namespace Shared.Phone.UserCenter.DeviceDirection
{
    /// <summary>
    /// PM2.5传感器的添加步骤界面
    /// </summary>
    public class SensorPMTwoPointFiveForm : DirectionCommonForm
    {
        #region ■ 初始化_____________________________
        /// <summary>
        /// 画面显示(底层会固定调用此方法,借以完成画面创建)
        /// </summary>
        public void ShowForm()
        {
            //设置头部信息
            base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uAddDevice));
            //初始化中部信息
            this.InitMiddleFrame();
        }
        /// <summary>
        /// 初始化中部信息
        /// </summary>
        private void InitMiddleFrame()
        {
            //图片
            var framePic = new FrameLayout();
            framePic.Width = this.GetPictrueRealSize(897);
            framePic.Height = this.GetPictrueRealSize(705);
            framePic.Gravity = Gravity.CenterHorizontal;
            framePic.Y = Application.GetRealHeight(130);
            bodyFrameLayout.AddChidren(framePic);
            var btnPic = new PicViewControl(framePic.Width, framePic.Height, false);
            btnPic.UnSelectedImagePath = "Instruct/SensorPMTwoPointFive.png";
            framePic.AddChidren(btnPic);
            //信号图标快闪
            var btnGreanLinght = new NormalViewControl(this.GetPictrueRealSize(455), this.GetPictrueRealSize(45), false);
            btnGreanLinght.X = this.GetPictrueRealSize(420);
            btnGreanLinght.Y = this.GetPictrueRealSize(295);
            btnGreanLinght.TextAlignment = TextAlignment.Center;
            btnGreanLinght.TextColor = UserCenterColor.Current.TextGrayColor3;
            btnGreanLinght.TextSize = 10;
            btnGreanLinght.TextID = R.MyInternationalizationString.uSignalIconFlash;
            framePic.AddChidren(btnGreanLinght);
            //信号图标
            var btnLinght = new NormalViewControl(this.GetPictrueRealSize(250), this.GetPictrueRealSize(45), false);
            btnLinght.X = this.GetPictrueRealSize(550);
            btnLinght.Y = this.GetPictrueRealSize(588);
            btnLinght.TextColor = UserCenterColor.Current.TextGrayColor3;
            btnLinght.TextSize = 10;
            btnLinght.TextID = R.MyInternationalizationString.uSignalIcon;
            framePic.AddChidren(btnLinght);
            //长按5秒(按键)
            string textMsg = Language.StringByID(R.MyInternationalizationString.uLongClickPanelSomeSecond);
            if (textMsg.Contains("{0}") == true)
            {
                textMsg = string.Format(textMsg, "5");
            }
            var btnSecond = new NormalViewControl(this.GetPictrueRealSize(360), this.GetPictrueRealSize(45), false);
            btnSecond.X = this.GetPictrueRealSize(48);
            btnSecond.Y = this.GetPictrueRealSize(107);
            btnSecond.TextColor = UserCenterColor.Current.TextGrayColor3;
            btnSecond.TextSize = 10;
            btnSecond.Text = textMsg;
            framePic.AddChidren(btnSecond);
            //长按图示按键5秒以上,信号图标
            //快闪, 进入配网状态。信号图标常亮则配网成功
            string[] msgArry = Language.StringByID(R.MyInternationalizationString.AddSensorPMMsg).Split(new string[] { "{0}" }, StringSplitOptions.RemoveEmptyEntries);
            var msg1 = new NormalViewControl(bodyFrameLayout.Width, Application.GetRealHeight(60), false);
            msg1.Y = Application.GetRealHeight(1037);
            msg1.Text = msgArry[0];
            msg1.TextColor = UserCenterColor.Current.TextGrayColor3;
            msg1.TextAlignment = TextAlignment.Center;
            bodyFrameLayout.AddChidren(msg1);
            var msg2 = new NormalViewControl(bodyFrameLayout.Width, Application.GetRealHeight(60), false);
            msg2.Y = msg1.Bottom;
            if (msgArry.Length > 1)
            {
                msg2.Text = msgArry[1];
            }
            msg2.TextColor = UserCenterColor.Current.TextGrayColor3;
            msg2.TextAlignment = TextAlignment.Center;
            bodyFrameLayout.AddChidren(msg2);
        }
        #endregion
    }
}
ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelFangyueFreshAirBackLightSettionForm.cs
@@ -514,7 +514,7 @@
                this.CloseProgressBar(ShowReLoadMode.YES);
                return false;
            }
            keyColorData = await HdlDevicePanelLogic.Current.GetPanelEpointColorInfo(panelDevice);
            keyColorData = await HdlDevicePanelLogic.Current.GetPanelColorInfo(panelDevice);
            if (this.keyColorData == null)
            {
                //关闭进度条
ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelFangyueFreshAirTargetForm.cs
File was deleted
ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelFangyueFreshAirTargetsForm.cs
@@ -274,9 +274,17 @@
            FrameLayout curentOldRoomFrameLayout = null;
            int index = 0;
            var roomTempList = GetSupportRoomList();
            Room slectedRoom = null;
            for (int i = 0; i < roomTempList.Count; i++)
            {
                var room = roomTempList[i];
                bool canSelect = false;
                if (curControlDev.currentSelectRoomId == room.Id)
                {
                    slectedRoom = room;
                    canSelect = true;
                }
                //房间
                var btnRoomFrameLayout = new FrameLayout
                {
@@ -303,7 +311,7 @@
                btnRoomFrameLayout.AddChidren(btnRoom);
                btnRoom.IsSelected = false;
                if (index == 0)
                if (canSelect)
                {
                    btnRoomFrameLayout.BackgroundImagePath = "Item/RoomIconBackgroundSelected.png";
                    btnRoom.TextColor = Shared.Common.ZigbeeColor.Current.XMWhite;
@@ -349,13 +357,20 @@
            }
            BindInfo.FinishDisplay(roomTempList, btnFinifh);
            if (roomTempList.Count != 0)
            if (roomTempList.Count == 0)
            {
                curRoom = roomTempList[0];
                curRoom = new Shared.Common.Room();
            }
            else
            {
                curRoom = new Shared.Common.Room();
                if (slectedRoom == null)
                {
                    curRoom = roomTempList[0];
                }
                else
                {
                    curRoom = slectedRoom;
                }
            }
            RefreshDeviceList(curRoom);
@@ -452,38 +467,38 @@
                }
                EventHandler<MouseEventArgs> hander = (sender, e) =>
               {
                   btnChoose.IsSelected = !btnChoose.IsSelected;
                   if (!btnChoose.IsSelected)
                   {
                       if (oldDevice != null)
                       {
                           oldDevice.IsSelected = false;
                           oldDevice.Visible = false;
                       }
                       oldDevice = btnChoose;
                       oldDevice.IsSelected = false;
                       oldDevice.Visible = false;
                       targetList.Clear();
                   }
                   else
                   {
                       if (oldDevice != null)
                       {
                           oldDevice.IsSelected = false;
                           oldDevice.Visible = false;
                       }
                       oldDevice = btnChoose;
                       oldDevice.IsSelected = true;
                       oldDevice.Visible = true;
                       targetList.Clear();
                       targetList.Add(device);
                   }
                {
                    btnChoose.IsSelected = !btnChoose.IsSelected;
                    if (!btnChoose.IsSelected)
                    {
                        if (oldDevice != null)
                        {
                            oldDevice.IsSelected = false;
                            oldDevice.Visible = false;
                        }
                        oldDevice = btnChoose;
                        oldDevice.IsSelected = false;
                        oldDevice.Visible = false;
                        targetList.Clear();
                    }
                    else
                    {
                        if (oldDevice != null)
                        {
                            oldDevice.IsSelected = false;
                            oldDevice.Visible = false;
                        }
                        oldDevice = btnChoose;
                        oldDevice.IsSelected = true;
                        oldDevice.Visible = true;
                        targetList.Clear();
                        targetList.Add(device);
                    }
                   //新风面板:由于目标没有提供删除接口,所以可以取消选中能保存
                   btnFinifh.Enable = true;
                   btnFinifh.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack;
               };
                    //新风面板:由于目标没有提供删除接口,所以可以取消选中能保存
                    btnFinifh.Enable = true;
                    btnFinifh.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack;
                };
                rowLayout.MouseUpEventHandler += hander;
                devicePic.MouseUpEventHandler += hander;
                btnBindName.MouseUpEventHandler += hander;
@@ -593,7 +608,7 @@
                    btnFloorText.Text = dicFloorList[floorId];
                    //获取楼层中房间列表 
                    supportRoomList = GetFloorRoomList();
                    supportRoomList = GetFloorRoomList(curFloorId);
                    if (!btnMethodText.IsSelected)
                    {
                        if (oldbutton != null)
@@ -653,21 +668,8 @@
                    //获取楼层
                    dicFloorList = HdlRoomLogic.Current.GetFloorSortList();
                    curControlDev.currentSelectFloorId = BindInfo.GetCurrentSelectFloorId();
                    if (BindInfo.GetCurrentSelectFloorIdName() != null)
                    {
                        Application.RunOnMainThread(() =>
                        {
                            btnFloorText.Text = BindInfo.GetCurrentSelectFloorIdName();
                        });
                    }
                    //获取楼层中房间列表
                    supportRoomList = GetFloorRoomList();
                    if (supportRoomList.Count == 0)
                    {
                        return;
                    }
                    supportRoomList = GetFloorRoomList(curControlDev.currentSelectFloorId);
                    //获取所有房间中匹配的能绑的目标
                    currentPanelSupportBindDeviceList = GetAllRoomSupportDeviceList();
@@ -752,21 +754,56 @@
                {
                    Application.RunOnMainThread(() =>
                    {
                        if (supportRoomList.Count != 0)
                        {
                            RefreshRoomList();
                        }
                        //首次是否能点击保存
                        if (targetList.Count == 0)
                        {
                            curControlDev.currentSelectFloorId = BindInfo.GetCurrentSelectFloorId();
                            if (BindInfo.GetCurrentSelectFloorIdName() != null)
                            {
                                Application.RunOnMainThread(() =>
                                {
                                    btnFloorText.Text = BindInfo.GetCurrentSelectFloorIdName();
                                });
                            }
                            btnFinifh.Enable = false;
                            btnFinifh.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMUnSelect;
                        }
                        else
                        {
                            foreach (var dev in targetList)
                            {
                                //获取本地设备列表
                                var localDeviceList = Shared.Common.LocalDevice.Current.listAllDevice;
                                var tempDev = localDeviceList.Find(obj => obj.DeviceAddr == dev.DeviceAddr && obj.DeviceEpoint == dev.DeviceEpoint);
                                if (tempDev != null)
                                {
                                    //获取设备所属房间
                                    var tempDevRoom = HdlRoomLogic.Current.GetRoomByDevice(tempDev);
                                    if (tempDevRoom != null)
                                    {
                                        curControlDev.currentSelectRoomId = tempDevRoom.Id;
                                        curControlDev.currentSelectFloorId = tempDevRoom.FloorId;
                                    }
                                }
                            }
                            if (!string.IsNullOrEmpty(curControlDev.currentSelectFloorId))
                            {
                                if (BindInfo.GetBindTargetsFloorIdName(curControlDev.currentSelectFloorId) != null)
                                {
                                    btnFloorText.Text = BindInfo.GetBindTargetsFloorIdName(curControlDev.currentSelectFloorId);
                                }
                            }
                            btnFinifh.Enable = true;
                            btnFinifh.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack;
                        }
                        //获取楼层中房间列表
                        if (supportRoomList.Count != 0)
                        {
                            RefreshRoomList();
                        }
                        CommonPage.Loading.Hide();
@@ -1230,7 +1267,7 @@
        /// 获取楼层对应的房间列表
        /// </summary>
        /// <returns></returns>
        private List<Room> GetFloorRoomList()
        private List<Room> GetFloorRoomList(string floorId)
        {
            supportRoomList.Clear();
            var supportRoomListTemp = new List<Room>();
@@ -1242,6 +1279,10 @@
                {
                    if (string.IsNullOrEmpty(room.FloorId))
                    {
                        if (room.FloorId != floorId)
                        {
                            continue;
                        }
                        if (room.IsLove)
                        {
                            continue;
ZigbeeApp/Shared/Phone/UserCenter/DoorLock/DoorLockCommonInfo.cs
@@ -132,7 +132,7 @@
        /// 门锁是否支持常开[这里暂时只有S-One门锁支持,H06C不支持, 后期通过能力值支持]
        /// </summary>
        /// <param name="doorLock:当前门锁"></param> 
        /// <returns></returns>
        /// <returns>true:支持常开;false: 不支持常开</returns>
        public static bool CanNormallyOpen(ZigBee.Device.DoorLock doorLock)
        {
            var listDevice = new List<CommonDevice> { };
@@ -324,8 +324,7 @@
            };
        }
/// <summary>
        /// <summary>
        /// 删除常开模式
        /// </summary>
        /// <param name="doorLock">当前门锁</param>
@@ -351,8 +350,7 @@
            return false;
        }
         /// <summary>
        /// <summary>
        /// 设置常开模式
        /// </summary>
        /// <param name="doorLock">当前门锁</param>
@@ -375,6 +373,7 @@
            }
            return false;
        }
        /// <summary>
        /// 启动常开模式【弹窗】
        /// </summary>
ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UserDoorLockPage.cs
@@ -1025,49 +1025,99 @@
        private async void NomallyOpenDialog()
        {
            #region 后续版本
            //if (UserCenterResourse.UserInfo.AuthorityNo != 1)
            //{
            //    this.ShowMassage(ShowMsgType.Tip, Language.StringByID(R.MyInternationalizationString.OnlyMasterOperate));
            //    return;
            //}
            if (UserCenterResourse.UserInfo.AuthorityNo != 1)
            {
                this.ShowMassage(ShowMsgType.Tip, Language.StringByID(R.MyInternationalizationString.OnlyMasterOperate));
                return;
            }
            //if (!UserCenterResourse.AccountOption.DoorUnLockByRemote)
            //{
            //    SystemSecondAuthentication();
            //    return;
            //}
            if (!UserCenterResourse.AccountOption.DoorUnLockByRemote)
            {
                SystemSecondAuthentication();
                return;
            }
            action = () =>
            {
                //系统密码支持操作门锁后,调用温居城的界面【常开自动化】
                if (doorLock == null)
                var functionSetting = new Shared.Phone.UserCenter.DoorLock.FunctionSetting(currentRoom, doorLock);
                Shared.Phone.UserView.HomePage.Instance.AddChidren(functionSetting);
                Shared.Phone.UserView.HomePage.Instance.PageIndex += 1;
                functionSetting.Show();
                // functionSetting.aaaAction = () =>
                //{
                //    UpdateNomallyOpenStatus();
                //};
            };
            HdlCheckLogic.Current.CheckSecondarySecurity(action);
            #endregion
            #region 暂时版本 (最终去掉)
            if (!btnNormallyOpen.IsSelected)
            {
                if (UserCenterResourse.UserInfo.AuthorityNo != 1)
                {
                    ///防止抛异常
                    this.ShowMassage(ShowMsgType.Tip, Language.StringByID(R.MyInternationalizationString.OnlyMasterOperate));
                    return;
                }
                ///备注:WJC的
                Shared.Phone.Device.Logic.Send.CurrentDoorLock = doorLock;
                ///进来刷新一次设备列表;
                Common.Logic.LogicDviceList.Clear();
                if (Common.Logic.LogicDviceList.Count == 0)
                if (!UserCenterResourse.AccountOption.DoorUnLockByRemote)
                {
                    Common.Logic.LogicDviceList.AddRange(LocalDevice.Current.listAllDevice.ToArray());
                    SystemSecondAuthentication();
                    return;
                }
                var addLogicPage = new Shared.Phone.Device.Logic.SoneLogicList();
                UserView.HomePage.Instance.AddChidren(addLogicPage);
                UserView.HomePage.Instance.PageIndex += 1;
                addLogicPage.Show();
                addLogicPage.action += (w) =>
                action = () =>
                {
                    doorLock.IsDoorLockNormallyMode = w;
                    ///留给徐梅用的
                    UpdateNomallyOpenStatus();
                    string msg = Language.StringByID(R.MyInternationalizationString.SetDoorLockNomallyOpen).Replace("{0}", "\r\n");
                    var confirm = Language.StringByID(R.MyInternationalizationString.Confrim);
                    var alert = new ShowDoorLockMsgControl(ShowDoorLockMsgControl.DoorLockMsgType.Confirm, msg, confirm);
                    alert.Show();
                    alert.ConfirmClickEvent += async () =>
                    {
                        Application.RunOnMainThread(() => { CommonPage.Loading.Start(""); });
                        var result = await doorLock.SetNormallyOpenModeFuncAsync(true);
                        if (result == null || result.defaultControlResponseData == null)
                        {
                            string msg0 = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime);
                            this.ShowTipMsg(msg0);
                            return;
                        }
                        if (result.defaultControlResponseData.status != 0)
                        {
                            string msg1 = Language.StringByID(R.MyInternationalizationString.OpenNormallyOpenModeFailed);
                            this.ShowTipMsg(msg1);
                            return;
                        }
                        else
                        {
                            //添加App开启常开模式的历史记录
                            HdlDeviceDoorLockLogic.Current.AddDoorHistoryLog(this.doorLock, 9001, string.Empty);
                            //每次重新设置常开,默认时间都是12小时
                            DoorLockCommonInfo.NormallyOpenModeInvalidTime = 12;
                            DoorLockCommonInfo.NormallyOpenModeValue(doorLock, true);
                            Application.RunOnMainThread(() =>
                            {
                                UpdateNomallyOpenStatus();
                                CommonPage.Loading.Hide();
                            });
                            //常开模式开启提示
                            AlreadyOpenNormallyMode();
                        }
                    };
                };
            };
            //HdlCheckLogic.Current.CheckSecondarySecurity(action);
                HdlCheckLogic.Current.CheckSecondarySecurity(action);
            }
            else
            {
                NomallyOpenModeInvalidDialog();
            }
            #endregion
        }
        /// <summary>
ZigbeeApp/Shared/Phone/ZigBee/Device/ZbGateway.cs
@@ -3111,7 +3111,8 @@
                    await RemoteMqttClient.DisconnectAsync();
                }
            }
            catch(Exception e) {
            catch (Exception e)
            {
                DebugPrintLog($"Remote断开通讯连接出异常:{e.Message}");
            }
        }
@@ -3336,7 +3337,8 @@
                {
                    return;
                }
                if (topics[2]== "NotifyGateWayInfoChange") {
                if (topics[2] == "NotifyGateWayInfoChange")
                {
                    initGateWayBaseInfomation();
                    return;
                }
ZigbeeApp/Shared/R.cs
@@ -562,6 +562,10 @@
        /// 背光灯颜色
        /// </summary>
        public const int BackgroundLightColor = 312;
        /// <summary>
        /// PM2.5感器 -> 长按图示按键5秒以上,信号图标{0}快闪, 进入配网状态。信号图标常亮则配网成功
        /// </summary>
        public const int AddSensorPMMsg = 313;
        public readonly static int cancel = 5097;
        public readonly static int confrim = 5098;
@@ -5742,6 +5746,10 @@
        /// 常开自动化手动取消
        /// </summary>
        public const int uNormallyOpenLogicManualClose = 16115;
        /// <summary>
        /// 游客体验
        /// </summary>
        public const int uExperienceAccount = 16116;
        //★★★★下面这些是接口的返回信息翻译,从18000开始★★★★
@@ -6327,5 +6335,9 @@
        /// 吸顶燃气传感器
        /// </summary>
        public const int uDeviceDirectionName26 = 70025;
        /// <summary>
        /// PM2.5空气质量传感器
        /// </summary>
        public const int uDeviceDirectionName27 = 70026;
    }
}
ZigbeeApp/Shared/Shared.projitems
@@ -192,6 +192,7 @@
    <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Device\Direction\SensorFireDirectionForm.cs" />
    <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Device\Direction\SensorInfraredDirectionForm.cs" />
    <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Device\Direction\SensorPirDirectionForm.cs" />
    <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Device\Direction\SensorPMTwoPointFiveForm.cs" />
    <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Device\Direction\SensorTemperatureHumidityForm.cs" />
    <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Device\Direction\SensorWaterDirectionForm.cs" />
    <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Device\Panel\PanelBackLighWithSensorForm.cs" />
@@ -201,7 +202,6 @@
    <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Device\Panel\PanelFangyueEnvironmentTargetForm.cs" />
    <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Device\Panel\PanelFangyueFreshAirBackLightSettionForm.cs" />
    <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Device\Panel\PanelFangyueFreshAirButtonSettionForm.cs" />
    <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Device\Panel\PanelFangyueFreshAirTargetForm.cs" />
    <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Device\Panel\PanelFangyueFreshAirTargetsForm.cs" />
    <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Device\Panel\PanelFangyueFunctionSettionForm.cs" />
    <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Device\PirSensor\PirSensorDimmingModeForm.cs" />