HDL Home App 第二版本 旧平台金堂用 正在使用
请合并最新代码「20200522:添加门锁晚上9点上报常开功能,优化PM2.5测试功能」
13个文件已修改
1115 ■■■■■ 已修改文件
ZigbeeApp20200519/Home.Ios/Resources/Language.ini 223 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp20200519/Shared/Phone/Device/Logic/SoneLogicList.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp20200519/Shared/Phone/MainPage/ControlForm/DevicePmSensorDetailCardForm.cs 108 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp20200519/Shared/Phone/UserCenter/CommonBase/Common/UserCenterCommon.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp20200519/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayReceiveLogic.cs 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp20200519/Shared/Phone/UserCenter/Device/Panel/PanelFangyueFreshAirButtonSettionForm.cs 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp20200519/Shared/Phone/UserCenter/Device/Panel/PanelFangyueFreshAirTargetsForm.cs 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp20200519/Shared/Phone/UserCenter/DoorLock/DoorLockCommonInfo.cs 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp20200519/Shared/Phone/UserCenter/DoorLock/ShowDoorLockMsgControl.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp20200519/Shared/Phone/UserCenter/DoorLock/UserDoorLockPage.cs 79 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp20200519/Shared/Phone/ZigBee/Common/Application.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp20200519/Shared/Phone/ZigBee/Device/DoorLock.cs 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp20200519/Shared/R.cs 583 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp20200519/Home.Ios/Resources/Language.ini
@@ -23,24 +23,24 @@
17=请选择模式
18=未命名
19=模式类型
20=绑定设备
21=绑定场景
22=保存
23=移除成功
24=移除失败
25=模式配置失败
26=请先配置按键模式
28=删除
29=模式设置失败
30=失败,节点设备或场景不存在
31=绑定已经存在
32=绑定失败
33=失败,控制设备的绑定列表已满
20=绑定设备
21=绑定场景
22=保存
23=移除成功
24=移除失败
25=模式配置失败
26=请先配置按键模式
28=删除
29=模式设置失败
30=失败,节点设备或场景不存在
31=绑定已经存在
32=绑定失败
33=失败,控制设备的绑定列表已满
34=获取数据失败,请检查设备是否在线
35=当前已经存在场景,确定要替换吗?
36=切换场景失败,请检查设备是否在线
37=该按键已经存在场景,请删除当前场景后再重新绑定
38=按键中已存在设备,请删除当前被绑定的设备后才能添加场景。 (点确定按钮前往场景编辑,将当前的绑定设备添加到场景中)
35=当前已经存在场景,确定要替换吗?
36=切换场景失败,请检查设备是否在线
37=该按键已经存在场景,请删除当前场景后再重新绑定
38=按键中已存在设备,请删除当前被绑定的设备后才能添加场景。 (点确定按钮前往场景编辑,将当前的绑定设备添加到场景中)
39=该绑定已经存在
40=当前按键没有支持的模式
41=场景触发
@@ -323,6 +323,7 @@
320=中度污染
321=重度污染
322=严重污染 
323=自动化关闭【门锁常开模式】,门锁已关
5097=取消
5098=确定
@@ -1017,7 +1018,7 @@
15224=编辑备份
15225=备注
15226=请输入备份名称
15227=恢复文件成功
15227=恢复文件成功
15246=报警目标设置
15247=当该防区报警时,以下目标将会响应
15248=推送通知
@@ -1861,95 +1862,95 @@
16120=联系方式
16121=请输入您的联系方式
;★★★★下面这些是接口的返回信息翻译,从18000开始★★★★
18004=指定网关已经被绑定
18005=用户不存在于此住宅
18006=账号已经存在于此住宅
18009=操作权限不足
18010=被绑定的子账号不存在,请注册后再试
18011=操作的子账号不存在
18012=解除绑定的子账号不存在
18013=验证码发送失败
18015=账号已经存在
18016=验证码错误
18017=验证码已失效
18018=绑定的账号不存在
18019=指定账号已存在
18022=验证码发送失败
18024=指定账号不存在
18025=原密码和新密码相同
18026=原密码错误
18034=账号未注册
18035=请求参数错误
18036=无效的登录密匙
18039=当前编辑的住宅名称已经存在
18040=当前添加的住宅名称已经存在
18041=指定的住宅不存在
18042=当前备份不属于您当前的住宅
18043=备注名称已经存在,请更换后重试!
18044=指定的网关ID并不存在
18045=当前住宅下并没有绑定指定的网关
18046=当前住宅还存在着未解除绑定的网关
18047=共享数据不存在
18048=分享的目标账号不存在
18049=分享数据操作失败
18050=不能把自己添加为成员
18051=不能把主账号添加为成员
;★★★★下面这些是设备的入网步骤,从21000开始★★★★
;智能门锁入网操作指示
21000=唤醒门锁,输入“*”、“#”、“管理员密码”{0}按语音提示,输入“4”选择功能菜单{0}输入“1”,确认设备入网
;3路继电器入网操作指示
21001=长按图示按键5秒以上,指示灯变绿、闪烁{0}进入配网状态。绿灯熄灭则配网成功
;1路调光器小模块入网操作指示
21002=长按图示按键5秒以上,指示灯变绿、闪烁{0}进入配网状态。绿灯熄灭则配网成功
;二按键面板入网操作指示
21003=长按图示按键5秒以上,指示灯变绿、闪烁{0}进入配网状态。绿灯快闪3秒则配网成功
;三按键面板入网操作指示
21004=长按图示按键5秒以上,指示灯变绿、闪烁{0}进入配网状态。绿灯快闪3秒则配网成功
;四按键面板入网操作指示
21005=长按图示按键5秒以上,指示灯变绿、闪烁{0}进入配网状态。绿灯快闪3秒则配网成功
;Zigbee智能开合帘电机入网操作指示
21006=长按图示按键5秒以上,指示灯{0}变绿闪烁,则进入配网状态{0}绿灯熄灭则配网成功
;Zigbee智能管状电机入网操作指示
21007=长按图示按键5秒以上,指示灯{0}变绿闪烁,则进入配网状态{0}绿灯熄灭则配网成功
;红外传感器入网操作指示
21008=长按图示按键5秒以上,绿色快闪{0}进入配网状态,绿灯常亮则入网成功
;门窗传感器入网操作指示
21009=长按图示按键5秒以上,绿色快闪{0}进入配网状态,绿灯常亮则入网成功
;燃气传感器入网操作指示
21010=长按图示按键5秒以上,绿色快闪{0}进入配网状态,绿灯常亮则入网成功
;烟雾传感器入网操作指示
21011=长按图示按键5秒以上,绿色快闪{0}进入配网状态,绿灯常亮则入网成功
;水浸传感器入网操作指示
21012=长按图示按键5秒以上,绿色快闪{0}进入配网状态,绿灯常亮则入网成功
;空气开关入网操作指示
21013=按键从工作模式拨到配对模式,5秒后红灯{0}慢闪烁时拨回工作模式,{0}进入配网模式,红灯常亮则配网成功
;中继器入网操作指示
21014=长按图示按键5秒以上,指示灯变绿闪烁{0}进入配网状态,绿灯熄灭则入网成功
;空调入网操作指示
21015=长按编程按键5秒,DATA绿色LED闪烁,{0}频率为亮0.5秒,灭0.5秒
;pir传感器入网操作指示
21016=长按图示按键5秒以上,指示灯变绿、{0}闪烁进入配网状态。绿灯熄灭则配网成功
;温湿度传感器入网操作指示
21017=长按图示按键5秒以上,信号图标{0}快闪, 进入配网状态。图标常亮则配网成功
;方悦2按键轻触式面板入网操作指示
21018=长按BUTTON1按键5秒,所有指示灯{0}变为绿色并闪烁,进入配网状态
;方悦4按键轻触式面板入网操作指示
21019=长按BUTTON1按键5秒,所有指示灯{0}变为绿色并闪烁,进入配网状态
;方悦8按键轻触式面板入网操作指示
21020=长按BUTTON1按键5秒,所有指示灯{0}变为绿色并闪烁,进入配网状态
;方悦环境面板入网操作指示
21021=按住面板功能(function)按键,所有按键{0}指示灯亮起,则配网成功
;窗帘面板的入网操作指示
21022=长按面板左上角按键,所有按键{0}指示灯亮起,则配网成功
;吸顶燃气传感器的入网操作指示
21023=长按图示按键5秒以上,绿色快闪{0}进入配网状态,绿灯常亮则入网成功
;★★★★下面这些是模块ID的官方名字,从30000开始★★★★
30000=紧急按钮
30001=燃气传感器
;★★★★下面这些是接口的返回信息翻译,从18000开始★★★★
18004=指定网关已经被绑定
18005=用户不存在于此住宅
18006=账号已经存在于此住宅
18009=操作权限不足
18010=被绑定的子账号不存在,请注册后再试
18011=操作的子账号不存在
18012=解除绑定的子账号不存在
18013=验证码发送失败
18015=账号已经存在
18016=验证码错误
18017=验证码已失效
18018=绑定的账号不存在
18019=指定账号已存在
18022=验证码发送失败
18024=指定账号不存在
18025=原密码和新密码相同
18026=原密码错误
18034=账号未注册
18035=请求参数错误
18036=无效的登录密匙
18039=当前编辑的住宅名称已经存在
18040=当前添加的住宅名称已经存在
18041=指定的住宅不存在
18042=当前备份不属于您当前的住宅
18043=备注名称已经存在,请更换后重试!
18044=指定的网关ID并不存在
18045=当前住宅下并没有绑定指定的网关
18046=当前住宅还存在着未解除绑定的网关
18047=共享数据不存在
18048=分享的目标账号不存在
18049=分享数据操作失败
18050=不能把自己添加为成员
18051=不能把主账号添加为成员
;★★★★下面这些是设备的入网步骤,从21000开始★★★★
;智能门锁入网操作指示
21000=唤醒门锁,输入“*”、“#”、“管理员密码”{0}按语音提示,输入“4”选择功能菜单{0}输入“1”,确认设备入网
;3路继电器入网操作指示
21001=长按图示按键5秒以上,指示灯变绿、闪烁{0}进入配网状态。绿灯熄灭则配网成功
;1路调光器小模块入网操作指示
21002=长按图示按键5秒以上,指示灯变绿、闪烁{0}进入配网状态。绿灯熄灭则配网成功
;二按键面板入网操作指示
21003=长按图示按键5秒以上,指示灯变绿、闪烁{0}进入配网状态。绿灯快闪3秒则配网成功
;三按键面板入网操作指示
21004=长按图示按键5秒以上,指示灯变绿、闪烁{0}进入配网状态。绿灯快闪3秒则配网成功
;四按键面板入网操作指示
21005=长按图示按键5秒以上,指示灯变绿、闪烁{0}进入配网状态。绿灯快闪3秒则配网成功
;Zigbee智能开合帘电机入网操作指示
21006=长按图示按键5秒以上,指示灯{0}变绿闪烁,则进入配网状态{0}绿灯熄灭则配网成功
;Zigbee智能管状电机入网操作指示
21007=长按图示按键5秒以上,指示灯{0}变绿闪烁,则进入配网状态{0}绿灯熄灭则配网成功
;红外传感器入网操作指示
21008=长按图示按键5秒以上,绿色快闪{0}进入配网状态,绿灯常亮则入网成功
;门窗传感器入网操作指示
21009=长按图示按键5秒以上,绿色快闪{0}进入配网状态,绿灯常亮则入网成功
;燃气传感器入网操作指示
21010=长按图示按键5秒以上,绿色快闪{0}进入配网状态,绿灯常亮则入网成功
;烟雾传感器入网操作指示
21011=长按图示按键5秒以上,绿色快闪{0}进入配网状态,绿灯常亮则入网成功
;水浸传感器入网操作指示
21012=长按图示按键5秒以上,绿色快闪{0}进入配网状态,绿灯常亮则入网成功
;空气开关入网操作指示
21013=按键从工作模式拨到配对模式,5秒后红灯{0}慢闪烁时拨回工作模式,{0}进入配网模式,红灯常亮则配网成功
;中继器入网操作指示
21014=长按图示按键5秒以上,指示灯变绿闪烁{0}进入配网状态,绿灯熄灭则入网成功
;空调入网操作指示
21015=长按编程按键5秒,DATA绿色LED闪烁,{0}频率为亮0.5秒,灭0.5秒
;pir传感器入网操作指示
21016=长按图示按键5秒以上,指示灯变绿、{0}闪烁进入配网状态。绿灯熄灭则配网成功
;温湿度传感器入网操作指示
21017=长按图示按键5秒以上,信号图标{0}快闪, 进入配网状态。图标常亮则配网成功
;方悦2按键轻触式面板入网操作指示
21018=长按BUTTON1按键5秒,所有指示灯{0}变为绿色并闪烁,进入配网状态
;方悦4按键轻触式面板入网操作指示
21019=长按BUTTON1按键5秒,所有指示灯{0}变为绿色并闪烁,进入配网状态
;方悦8按键轻触式面板入网操作指示
21020=长按BUTTON1按键5秒,所有指示灯{0}变为绿色并闪烁,进入配网状态
;方悦环境面板入网操作指示
21021=按住面板功能(function)按键,所有按键{0}指示灯亮起,则配网成功
;窗帘面板的入网操作指示
21022=长按面板左上角按键,所有按键{0}指示灯亮起,则配网成功
;吸顶燃气传感器的入网操作指示
21023=长按图示按键5秒以上,绿色快闪{0}进入配网状态,绿灯常亮则入网成功
;★★★★下面这些是模块ID的官方名字,从30000开始★★★★
30000=紧急按钮
30001=燃气传感器
30002=烟雾传感器
30003=水侵传感器
30004=钥匙扣
@@ -2012,9 +2013,9 @@
40018=新风
40019=空气质量
;★★★★下面这些是模块ID的设备默认备注名字,从50000开始.注:它并不需要再R.cs文件中定义★★★★
50000=紧急按钮
50001=Zigbee燃气传感器
;★★★★下面这些是模块ID的设备默认备注名字,从50000开始.注:它并不需要再R.cs文件中定义★★★★
50000=紧急按钮
50001=Zigbee燃气传感器
50002=Zigbee燃气传感器
50003=Zigbee水浸传感器
50004=钥匙扣
@@ -2055,7 +2056,7 @@
50039=Zigbee吸顶燃气传感器
50040=PM2.5空气质量传感器
;★★★★下面这些是模块ID的设备类型名字,从60000开始.注:它并不需要再R.cs文件中定义★★★★
;★★★★下面这些是模块ID的设备类型名字,从60000开始.注:它并不需要再R.cs文件中定义★★★★
60000=传感器
60001=开关模块
60002=遮阳模块
ZigbeeApp20200519/Shared/Phone/Device/Logic/SoneLogicList.cs
@@ -41,7 +41,6 @@
        public long timeLong = 0;
        public async void Show()
        {
            #region  界面的布局代码
            UserView.HomePage.Instance.ScrollEnabled = false;//锁住左滑
            TopView view = new TopView();
@@ -320,7 +319,7 @@
                    }
                };
                if (logicId != 0)
                {
                    ///显示失效设置时间文本控件
@@ -328,7 +327,7 @@
                    {
                        Y = Application.GetRealHeight(127 + 69),
                        X = Application.GetRealWidth(80),//125
                        Width = Application.GetRealWidth(907+12),//634 + 200
                        Width = Application.GetRealWidth(907 + 12),//634 + 200
                        Height = Application.GetRealHeight(60),
                        TextSize = 15,
                        TextColor = ZigbeeColor.Current.LogicTextBlackColor,
ZigbeeApp20200519/Shared/Phone/MainPage/ControlForm/DevicePmSensorDetailCardForm.cs
old mode 100755 new mode 100644
@@ -72,7 +72,7 @@
            btnHumidityText.TextAlignment = TextAlignment.Center;
            frameHumidityPic.AddChidren(btnHumidityText);
            //湿度数据(第1个,listControl【0】)
            //湿度数据
            var btnHumidityStatus = new NormalViewControl(193, 92, true);
            btnHumidityStatus.Y = Application.GetRealHeight(181);
            btnHumidityStatus.Text = "20";
@@ -80,12 +80,11 @@
            btnHumidityStatus.TextColor = ZigbeeColor.Current.XMWhite;
            btnHumidityStatus.TextAlignment = TextAlignment.CenterRight;
            frameHumidityPic.AddChidren(btnHumidityStatus);
            this.listControl.Add(btnHumidityStatus);
            //湿度单位
            var btnHumidityUnit = new NormalViewControl(37 + 81, 40, true);
            var btnHumidityUnit = new NormalViewControl(60, 40, true);
            btnHumidityUnit.Y = Application.GetRealHeight(181 + 46);
            btnHumidityUnit.X = Application.GetRealWidth(180);
            btnHumidityUnit.X = btnHumidityStatus.Right;
            btnHumidityUnit.Text = "%";
            btnHumidityUnit.TextSize = 14;
            btnHumidityUnit.TextColor = ZigbeeColor.Current.XMWhite;
@@ -109,7 +108,7 @@
            btnTemperatureText.TextAlignment = TextAlignment.Center;
            frameTemperaturePic.AddChidren(btnTemperatureText);
            //温度数据(第2个,listControl【1】)
            //温度数据
            var btnTemperatureStatus = new NormalViewControl(193, 92, true);
            btnTemperatureStatus.Y = Application.GetRealHeight(181);
            btnTemperatureStatus.Text = "20";
@@ -117,12 +116,11 @@
            btnTemperatureStatus.TextColor = ZigbeeColor.Current.XMWhite;
            btnTemperatureStatus.TextAlignment = TextAlignment.CenterRight;
            frameTemperaturePic.AddChidren(btnTemperatureStatus);
            this.listControl.Add(btnTemperatureStatus);
            //温度单位
            var btnTemperatureUnit = new NormalViewControl(40 + 81, 40, true);
            var btnTemperatureUnit = new NormalViewControl(50, 40, true);
            btnTemperatureUnit.Y = Application.GetRealHeight(181 + 46);
            btnTemperatureUnit.X = Application.GetRealWidth(180);
            btnTemperatureUnit.X = btnTemperatureStatus.Right;
            btnTemperatureUnit.Text = "℃";
            btnTemperatureUnit.TextSize = 14;
            btnTemperatureUnit.TextColor = ZigbeeColor.Current.XMWhite;
@@ -146,7 +144,7 @@
            btnPmText.TextAlignment = TextAlignment.Center;
            framePmPic.AddChidren(btnPmText);
            //PM2.5数据(第3个,listControl【2】)
            //PM2.5数据
            var btnPmStatus = new NormalViewControl(162, 92, true);
            btnPmStatus.Y = Application.GetRealHeight(181);
            btnPmStatus.Text = "155";
@@ -154,18 +152,24 @@
            btnPmStatus.TextColor = ZigbeeColor.Current.XMWhite;
            btnPmStatus.TextAlignment = TextAlignment.CenterRight;
            framePmPic.AddChidren(btnPmStatus);
            this.listControl.Add(btnPmStatus);
            //PM2.5单位  (第4个,listControl【3】) 
            var btnPmUnit = new NormalViewControl(120 + 26, 43, true);
            var btnPmUnit = new NormalViewControl(144, 43, true);
            btnPmUnit.Y = Application.GetRealHeight(181 + 46);
            btnPmUnit.X = Application.GetRealWidth(153);
            btnPmUnit.X = btnPmStatus.Right;
            btnPmUnit.Text = "μg/m³";
            btnPmUnit.TextSize = 14;
            btnPmUnit.TextColor = ZigbeeColor.Current.XMWhite;
            btnPmUnit.TextAlignment = TextAlignment.CenterLeft;
            framePmPic.AddChidren(btnPmUnit);
            this.listControl.Add(btnPmUnit);
            this.listControl.Add(btnHumidityStatus);//(第1个,listControl【0】)
            this.listControl.Add(btnTemperatureStatus);//(第2个,listControl【1】)
            this.listControl.Add(btnPmStatus);//(第3个,listControl【2】)
            this.listControl.Add(btnPmUnit);//(第4个,listControl【3】)
            this.listControl.Add(btnHumidityUnit);//(第5个,listControl【4】)
            this.listControl.Add(btnTemperatureUnit);//(第6个,listControl【5】)
        }
        #endregion
@@ -244,12 +248,46 @@
        private void UpdateStatus()
        {
            //设置状态文字
            this.listControl[0].Text = pMSensor.currentTemperature.ToString();
            this.listControl[1].Text = pMSensor.currentHumidity.ToString();
            this.listControl[0].Text = pMSensor.currentHumidity.ToString();
            this.listControl[1].Text = pMSensor.currentTemperature.ToString();
            this.listControl[2].Text = pMSensor.currentPmData.ToString();
            //设置状态文字
            var curText = Language.StringByID(R.MyInternationalizationString.AirQuality) + QuailityType();
            this.SetStatuText(curText);
            if (pMSensor.currentHumidity <= 9 && pMSensor.currentHumidity >= 0)
            {
                this.listControl[0].Width = Application.GetRealWidth(168);
                this.listControl[4].X = this.listControl[0].Right;
            }
            else if (pMSensor.currentHumidity < 100 && pMSensor.currentHumidity >= 10)
            {
                this.listControl[0].Width = Application.GetRealWidth(184);
                this.listControl[4].X = this.listControl[0].Right;
            }
            else
            {
                this.listControl[0].Width = Application.GetRealWidth(188 + 30);
                this.listControl[4].X = this.listControl[0].Right;
            }
            if (pMSensor.currentTemperature <= 9 && pMSensor.currentTemperature >= 0)
            {
                this.listControl[1].Width = Application.GetRealWidth(168);
                this.listControl[5].X = this.listControl[1].Right;
            }
            else if (pMSensor.currentTemperature < 100 && pMSensor.currentTemperature >= 10)
            {
                this.listControl[1].Width = Application.GetRealWidth(190);
                this.listControl[5].X = this.listControl[1].Right;
            }
            else
            {
                this.listControl[1].Width = Application.GetRealWidth(188 + 30);
                this.listControl[5].X = this.listControl[1].Right;
            }
        }
        /// <summary>
@@ -265,60 +303,60 @@
                if (pMSensor.currentPmData < 10)
                {
                    this.listControl[2].Width = Application.GetRealWidth(188 - 70);
                    this.listControl[3].X = Application.GetRealWidth(180 - 70);
                    this.listControl[2].Width = Application.GetRealWidth(125);
                    this.listControl[3].X = this.listControl[2].Right;
                }
                else
                {
                    this.listControl[2].Width = Application.GetRealWidth(193 - 40);
                    this.listControl[3].X = Application.GetRealWidth(137);
                    this.listControl[2].Width = Application.GetRealWidth(145);
                    this.listControl[3].X = this.listControl[2].Right;
                }
            }
            else if (pMSensor.currentPmData <= 75 && pMSensor.currentPmData > 35)
            {
                curQuality = Language.StringByID(R.MyInternationalizationString.ExcellentAirQuality);
                this.listControl[2].Width = Application.GetRealWidth(193 - 40);
                this.listControl[3].X = Application.GetRealWidth(137);
                curQuality = Language.StringByID(R.MyInternationalizationString.GoodAirQuality);
                this.listControl[2].Width = Application.GetRealWidth(145);
                this.listControl[3].X = this.listControl[2].Right;
            }
            else if (pMSensor.currentPmData <= 115 && pMSensor.currentPmData > 75)
            {
                curQuality = Language.StringByID(R.MyInternationalizationString.ExcellentAirQuality);
                curQuality = Language.StringByID(R.MyInternationalizationString.LightPollution);
                if (pMSensor.currentPmData < 100)
                {
                    this.listControl[2].Width = Application.GetRealWidth(193 - 40);
                    this.listControl[3].X = Application.GetRealWidth(137);
                    this.listControl[2].Width = Application.GetRealWidth(145);
                    this.listControl[3].X = this.listControl[2].Right;
                }
                else
                {
                    this.listControl[2].Width = Application.GetRealWidth(162);
                    this.listControl[3].X = Application.GetRealWidth(153);
                    this.listControl[3].X = this.listControl[2].Right;
                }
            }
            else if (pMSensor.currentPmData <= 150 && pMSensor.currentPmData > 115)
            {
                curQuality = Language.StringByID(R.MyInternationalizationString.ExcellentAirQuality);
                curQuality = Language.StringByID(R.MyInternationalizationString.Moderatelyolluted);
                this.listControl[2].Width = Application.GetRealWidth(162);
                this.listControl[3].X = Application.GetRealWidth(153);
                this.listControl[3].X = this.listControl[2].Right;
            }
            else if (pMSensor.currentPmData <= 250 && pMSensor.currentPmData > 150)
            {
                curQuality = Language.StringByID(R.MyInternationalizationString.ExcellentAirQuality);
                this.listControl[2].Width = Application.GetRealWidth(162);
                this.listControl[3].X = Application.GetRealWidth(153);
                curQuality = Language.StringByID(R.MyInternationalizationString.HeavyPollution);
                this.listControl[2].Width = Application.GetRealWidth(176);
                this.listControl[3].X = this.listControl[2].Right;
            }
            else if (pMSensor.currentPmData > 250)
            {
                curQuality = Language.StringByID(R.MyInternationalizationString.ExcellentAirQuality);
                this.listControl[2].Width = Application.GetRealWidth(162);
                this.listControl[3].X = Application.GetRealWidth(153);
                curQuality = Language.StringByID(R.MyInternationalizationString.SeriousPollution);
                this.listControl[2].Width = Application.GetRealWidth(176);
                this.listControl[3].X = this.listControl[2].Right;
            }
            else
            {
                curQuality = "";
                this.listControl[2].Width = Application.GetRealWidth(162);
                this.listControl[3].X = Application.GetRealWidth(153);
                this.listControl[3].X = this.listControl[2].Right;
            }
            //设置状态文字
            return curQuality;
ZigbeeApp20200519/Shared/Phone/UserCenter/CommonBase/Common/UserCenterCommon.cs
old mode 100755 new mode 100644
@@ -882,7 +882,7 @@
    /// <summary>
    /// 安防报警信息类
    /// </summary>
    public class SafeguardAlarmInfo: DeviceAlarmInfo
    public class SafeguardAlarmInfo : DeviceAlarmInfo
    {
        /// <summary>
        /// 上报类型
@@ -1295,7 +1295,7 @@
        /// <summary>
        /// 自动化常开时间变更为分钟,而不是小时 1->强制变更为分钟
        /// </summary>
        public int DoorLockNomallyOpenTimeMode = 0;
        public int DoorLockNomallyOpenTimeMode = 1;
    }
    #endregion
ZigbeeApp20200519/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayReceiveLogic.cs
@@ -2,6 +2,7 @@
using System.Collections.Generic;
using System.Text;
using Newtonsoft.Json.Linq;
using Shared.Common;
using ZigBee.Device;
namespace Shared.Phone.UserCenter
@@ -839,14 +840,21 @@
                        }
                        HdlThreadLogic.Current.RunThread(async () =>
                        {
                            var result = await Shared.Phone.Device.Logic.SkipView.Exist(3, (ZigBee.Device.DoorLock)device[0]);
                            HdlThreadLogic.Current.RunMain(() =>
                            {
                                //弹出徐梅的那个窗口
                                DoorLock.DoorLockCommonInfo.NomallyOpenModeInvalidDialog((ZigBee.Device.DoorLock)device[0], DoorLock.DoorLockCommonInfo.DoorLockMessType.ServicePush,
                                    result != 0 ? true : false, ControlCommonResourse.UpdateDoorLockStatusAction);
                            });
                        {
                            HdlThreadLogic.Current.RunMain(() =>
                            {
                                //提示门锁已经失效
                                new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.NormallyClosed), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(CommonPage.Instance);
                            });
                            //更新门锁的深度控制页
                            ControlCommonResourse.UpdateDoorLockStatusAction?.Invoke(false);
                            //逻辑执行的失效要更新状态
                            if (DoorLock.DoorLockCommonInfo.LogicAction != null)
                            {
                                DoorLock.DoorLockCommonInfo.LogicAction(false);
                            }
                        });
                    }
                }
ZigbeeApp20200519/Shared/Phone/UserCenter/Device/Panel/PanelFangyueFreshAirButtonSettionForm.cs
old mode 100755 new mode 100644
@@ -261,7 +261,7 @@
                        }
                        if (string.IsNullOrEmpty(bDev.ESName))
                        {
                            bindFreshAirName = device.DeviceEpointName;
                            bindFreshAirName = Common.LocalDevice.Current.GetDeviceEpointName(device);
                        }
                        else
                        {
@@ -277,7 +277,7 @@
                        {
                            if (string.IsNullOrEmpty(bDev.ESName))
                            {
                                bindTemperatureName = device.DeviceEpointName;
                                bindTemperatureName = Common.LocalDevice.Current.GetDeviceEpointName(device);
                            }
                            else
                            {
@@ -289,7 +289,7 @@
                        {
                            if (string.IsNullOrEmpty(bDev.ESName))
                            {
                                bindHumidityName = device.DeviceEpointName;
                                bindHumidityName = Common.LocalDevice.Current.GetDeviceEpointName(device);
                            }
                            else
                            {
@@ -303,7 +303,7 @@
                    {
                        if (string.IsNullOrEmpty(bDev.ESName))
                        {
                            bindHumidityName = device.DeviceEpointName;
                            bindHumidityName = Common.LocalDevice.Current.GetDeviceEpointName(device);
                        }
                        else
                        {
@@ -328,7 +328,7 @@
                        {
                            if (string.IsNullOrEmpty(bDev.ESName))
                            {
                                bindPmName = device.DeviceEpointName;
                                bindPmName = Common.LocalDevice.Current.GetDeviceEpointName(device);
                            }
                            else
                            {
ZigbeeApp20200519/Shared/Phone/UserCenter/Device/Panel/PanelFangyueFreshAirTargetsForm.cs
old mode 100755 new mode 100644
@@ -1080,7 +1080,8 @@
                                var delDevice = DelBindDevice(bd);
                                var delResult = new DelDeviceBindResponseAllData();
                                delResult = HdlDeviceBindLogic.Current.DelDeviceBindAsync(delDevice);
                                if (delResult == null || delResult.removeBindResultResponseData == null)
                                if (delResult == null)
                                {
                                    Application.RunOnMainThread(() =>
                                    {
@@ -1090,6 +1091,29 @@
                                        CommonPage.Loading.Hide();
                                    });
                                    return;
                                }
                                else
                                {
                                    if (delResult.removeBindResultResponseData == null)
                                    {
                                        if (delResult.delDeviceBindResponseData != null)
                                        {
                                            foreach (var d in delResult.delDeviceBindResponseData.RemoveBindList)
                                            {
                                                if (d.Result != 1)
                                                {
                                                    Application.RunOnMainThread(() =>
                                                    {
                                                        new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.BindFailed), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(CommonPage.Instance);
                                                        btnFinifh.Enable = true;
                                                        btnFinifh.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack;
                                                        CommonPage.Loading.Hide();
                                                    });
                                                    return;
                                                }
                                            }
                                        }
                                    }
                                }
                                if (delResult != null && delResult.removeBindResultResponseData != null)
                                {
@@ -1116,7 +1140,8 @@
                                var delDevice = DelBindDevice(curBindDevice);
                                var delResult = new DelDeviceBindResponseAllData();
                                delResult = HdlDeviceBindLogic.Current.DelDeviceBindAsync(delDevice);
                                if (delResult == null || delResult.removeBindResultResponseData == null)
                                if (delResult == null)
                                {
                                    Application.RunOnMainThread(() =>
                                    {
@@ -1126,6 +1151,29 @@
                                        CommonPage.Loading.Hide();
                                    });
                                    return;
                                }
                                else
                                {
                                    if (delResult.removeBindResultResponseData == null)
                                    {
                                        if (delResult.delDeviceBindResponseData != null)
                                        {
                                            foreach (var d in delResult.delDeviceBindResponseData.RemoveBindList)
                                            {
                                                if (d.Result != 1)
                                                {
                                                    Application.RunOnMainThread(() =>
                                                    {
                                                        new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.BindFailed), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(CommonPage.Instance);
                                                        btnFinifh.Enable = true;
                                                        btnFinifh.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack;
                                                        CommonPage.Loading.Hide();
                                                    });
                                                    return;
                                                }
                                            }
                                        }
                                    }
                                }
                                if (delResult != null && delResult.removeBindResultResponseData != null)
                                {
@@ -1171,7 +1219,7 @@
                            addBindInfo.BindType = 0;
                            addBindInfo.BindMacAddr = de.DeviceAddr;
                            addBindInfo.BindEpoint = de.DeviceEpoint;
                            addBindeDev.BindName = de.DeviceEpointName;
                            addBindeDev.BindName = Common.LocalDevice.Current.GetDeviceEpointName(de);
                            switch (curDeviceBindType)
                            {
                                case 2:
ZigbeeApp20200519/Shared/Phone/UserCenter/DoorLock/DoorLockCommonInfo.cs
@@ -23,6 +23,12 @@
        /// </summary>
        public static DateTime DoorlockZoneTime = DateTime.Now;
        /// <summary>
        /// 所有门锁中的常开模式值[用于推送查询,提示门锁失效)
        /// keys:门锁mac+epoint value:是否常开模式
        /// ture:常开; false:关闭
        /// </summary>
        public static Dictionary<string, bool?> DoorLockNormallyMode = new Dictionary<string, bool?> { };
        /// <summary>
        /// 常开模式执行时间
        /// </summary>
        public static int NormallyOpenModeInvalidTime = 12;
@@ -155,6 +161,14 @@
        public static void NormallyOpenModeValue(ZigBee.Device.DoorLock doorLock, bool value)
        {
            doorLock.IsDoorLockNormallyMode = value;
            if (DoorLockCommonInfo.DoorLockNormallyMode.ContainsKey(doorLock.DeviceAddr + doorLock.DeviceEpoint))
            {
                DoorLockCommonInfo.DoorLockNormallyMode[doorLock.DeviceAddr + doorLock.DeviceEpoint] = value;
            }
            else
            {
                DoorLockCommonInfo.DoorLockNormallyMode.Add(doorLock.DeviceAddr + doorLock.DeviceEpoint, value);
            }
        }
        /// <summary>
@@ -162,9 +176,10 @@
        /// </summary>
        /// <param name="doorLock">当前门锁</param>
        /// <param name="doorLockMessType">导致门锁失效的操作类型</param>
        /// <param name="haveLogic">网关中是否存在逻辑常开模式</param>
        /// <param name="haveLogic">网关中是否存在逻辑常开模式</param>
        /// <param name="action">回调处理更新内容</param>
        public static async void NomallyOpenModeInvalidDialog(ZigBee.Device.DoorLock doorLock, DoorLockMessType doorLockMessType, bool haveLogic, Action<bool> action = null)
        /// <param name="type">1:确认常开模式已经开启;0:常开模式失效提示</param>
        public static async void NomallyOpenModeInvalidDialog(ZigBee.Device.DoorLock doorLock, DoorLockMessType doorLockMessType, bool haveLogic, Action<bool> action = null, int type = 0)
        {
            //常开模式只能主人操作
            if (UserCenterResourse.UserInfo.AuthorityNo != 1)
ZigbeeApp20200519/Shared/Phone/UserCenter/DoorLock/ShowDoorLockMsgControl.cs
old mode 100755 new mode 100644
@@ -516,7 +516,7 @@
            /// <summary>
            /// 取消带有逻辑的常开模式
            /// </summary>
            CancelNomallyOpenModeWithLogic = 5,
            CancelNomallyOpenModeWithLogic = 5,
        }
    }
}
ZigbeeApp20200519/Shared/Phone/UserCenter/DoorLock/UserDoorLockPage.cs
@@ -705,6 +705,20 @@
                        CommonPage.Loading.Start("");
                    });
                    //放在设备启动的地方
                    //HdlGatewayReceiveLogic
                    //1、启动获取门锁设备对象,
                    //2、再获取当前门锁对象的常开模式
                    var res = await DoorLockCommonInfo.GetNormallyOpenMode(doorLock);
                    if (DoorLockCommonInfo.DoorLockNormallyMode.ContainsKey(doorLock.DeviceAddr + doorLock.DeviceEpoint))
                    {
                        DoorLockCommonInfo.DoorLockNormallyMode[doorLock.DeviceAddr + doorLock.DeviceEpoint] = res;
                    }
                    else
                    {
                        DoorLockCommonInfo.DoorLockNormallyMode.Add(doorLock.DeviceAddr + doorLock.DeviceEpoint, res);
                    }
                    //是否支持常开
                    canOpenNormallyMode = DoorLockCommonInfo.CanNormallyOpen(doorLock);
                    if (canOpenNormallyMode)
@@ -734,18 +748,18 @@
                            }
                            DoorLockCommonInfo.NormallyOpenModeValue(doorLock, tempRes);
                            //Application.RunOnMainThread(async () =>
                            //{
                            //var resTemp = await Shared.Phone.Device.Logic.SkipView.Exist(3, doorLock);
                            //if (resTemp == 1)
                            //{
                            //    haveLogicNormallyOpenMode = true;
                            //}
                            //else if (resTemp == 0)
                            //{
                            //    haveLogicNormallyOpenMode = false;
                            //}
                            //});
                            Application.RunOnMainThread(async () =>
                            {
                                var resTemp = await Shared.Phone.Device.Logic.SkipView.Exist(3, doorLock);
                                if (resTemp == 0)
                                {
                                    haveLogicNormallyOpenMode = false;
                                }
                                else
                                {
                                    haveLogicNormallyOpenMode = true;
                                }
                            });
                        }
                    }
                    else
@@ -811,6 +825,43 @@
                        CommonPage.Loading.Hide();
                    });
                }
                //定时检测时间变化
                var curDateNow = DateTime.Now;
                var curDateDelay = DateTime.MinValue;
                new System.Threading.Thread(async () =>
                {
                    while (true)
                    {
                        try
                        {
                            curDateNow = DateTime.Now;
                            if (curDateNow > curDateDelay)
                            {
                                //晚上9点提示用户门锁是否还开着
                                if (DoorLockCommonInfo.DoorLockNormallyMode[doorLock.DeviceAddr + doorLock.DeviceEpoint] == true)
                                {
                                    if (curDateNow.Hour == 21)
                                    {
                                        curDateDelay = curDateNow;
                                        curDateDelay = curDateDelay.AddHours(+1);
                                        var result = await Shared.Phone.Device.Logic.SkipView.Exist(3, (ZigBee.Device.DoorLock)doorLock);
                                        HdlThreadLogic.Current.RunMain(() =>
                                        {
                                            //弹出徐梅的那个窗口
                                            DoorLock.DoorLockCommonInfo.NomallyOpenModeInvalidDialog((ZigBee.Device.DoorLock)doorLock, DoorLock.DoorLockCommonInfo.DoorLockMessType.AppOperate,
                                             result != 0 ? true : false, ControlCommonResourse.UpdateDoorLockStatusAction);
                                        });
                                    }
                                }
                            }
                        }
                        catch { }
                        System.Threading.Thread.Sleep(1000 * 60);
                    }
                })
                { IsBackground = true }.Start();
            });
        }
@@ -1121,8 +1172,8 @@
                UserView.HomePage.Instance.PageIndex += 1;
                addLogicPage.Show();
                addLogicPage.action += (w) =>
                {
                    doorLock.IsDoorLockNormallyMode = w;
                {
                    DoorLockCommonInfo.NormallyOpenModeValue(doorLock, w);
                    UpdateNomallyOpenStatus();
                    //返回按键清空当前逻辑定义的LogicAction
                    UserCenter.DoorLock.DoorLockCommonInfo.LogicAction = null;
ZigbeeApp20200519/Shared/Phone/ZigBee/Common/Application.cs
old mode 100755 new mode 100644
@@ -153,8 +153,8 @@
                                    }
                                }
                                catch
                                {
                                    //关闭Socket,下次发送会自动连接
                                {
                                    //关闭Socket,下次发送会自动连接
                                    FindGateWaySocket.Stop();
                                }
                                System.Threading.Thread.Sleep(500);
ZigbeeApp20200519/Shared/Phone/ZigBee/Device/DoorLock.cs
old mode 100755 new mode 100644
ZigbeeApp20200519/Shared/R.cs
old mode 100755 new mode 100644
@@ -602,7 +602,10 @@
        /// 严重污染
        /// </summary>
        public const int SeriousPollution = 322;
        /// <summary>
        /// 门锁常开模式已关
        /// </summary>
        public const int NormallyClosed = 323;
        public readonly static int cancel = 5097;
        public readonly static int confrim = 5098;
@@ -644,7 +647,7 @@
        public readonly static int Sunrisesunset = 5134;
        public readonly static int cycle = 5135;
        public readonly static int completeNext = 5136;
        public readonly static int Selectedtimetype= 5137;
        public readonly static int Selectedtimetype = 5137;
        public readonly static int Timecondition = 5138;
        public readonly static int condition = 5139;
        public readonly static int pushset = 5140;
@@ -702,7 +705,7 @@
        public readonly static int addtime = 5192;
        public readonly static int selectcommontimetype = 5193;
        public readonly static int newautomation = 5194;
        public readonly static int editautomation= 5195;
        public readonly static int editautomation = 5195;
        public readonly static int open1 = 5196;
        public readonly static int disable = 5197;
        public readonly static int selectsavedautomationstate = 5198;
@@ -838,10 +841,10 @@
        public readonly static int logictemplate = 5358;
        public readonly static int onlight = 5359;
        public readonly static int offlight = 5360;
        public readonly static int OnOffSwitch=5361;
        public readonly static int OnOffSwitch = 5361;
        public readonly static int addlinkageevent = 5362;
        public readonly static int editlinkageevent = 5363;
        public readonly static int selectunlockingmode=5364;
        public readonly static int selectunlockingmode = 5364;
        public readonly static int lockaddaction = 5365;
        public readonly static int linkageevent = 5366;
        public readonly static int current = 5367;
@@ -866,7 +869,7 @@
        public readonly static int daySone = 5386;
        public readonly static int numberSone = 5387;
        public readonly static int openAutomationSone = 5388;
        public readonly static int timeSetSone= 5389;
        public readonly static int timeSetSone = 5389;
        public readonly static int invalidSetting = 5390;
        public readonly static int hour = 5391;
        public readonly static int lockOpen = 5392;
@@ -897,114 +900,114 @@
        /// <summary>
        /// 手机号
        /// </summary>
        public const int PhoneNum = 10100;
        /// <summary>
        /// 邮箱
        /// </summary>
        public const int Email = 10101;
        /// <summary>
        /// 请输入手机号
        /// </summary>
        public const int PleaseInputPhoneNum = 10102;
        /// <summary>
        /// 请输入不少于6位的密码
        /// </summary>
        public const int PleaseInputPWD = 10103;
        /// <summary>
        /// 登录
        /// </summary>
        public const int Login = 10104;
        /// <summary>
        /// 验证码登录
        /// </summary>
        public const int LoginByCode = 10105;
        /// <summary>
        /// 注册用户
        /// </summary>
        public const int Register = 10106;
        /// <summary>
        /// 请输入邮箱
        /// </summary>
        public const int PleaseInputEmail = 10107;
        /// <summary>
        /// 搜索
        /// </summary>
        public const int Search = 10108;
        /// <summary>
        /// 完成
        /// </summary>
        public const int Complete = 10109;
        /// <summary>
        /// 账号登录
        /// </summary>
        public const int LoginByAccountPWD = 10110;
        /// <summary>
        /// 获取验证码
        /// </summary>
        public const int SendVerificationCode = 10111;
        /// <summary>
        /// 后重发
        /// </summary>
        public const int SendVerificationCodeAgain = 10112;
        /// <summary>
        /// 请再次输入密码
        /// </summary>
        public const int PleaseComfirePWD = 10113;
        /// <summary>
        /// 发送验证码成功,请注意查收
        /// </summary>
        public const int SendVerificationCodeSuccess = 10114;
        /// <summary>
        /// 确定
        /// </summary>
        public const int Confrim = 10115;
        /// <summary>
        /// 手机号
        /// </summary>
        public const int PhoneNum = 10100;
        /// <summary>
        /// 邮箱
        /// </summary>
        public const int Email = 10101;
        /// <summary>
        /// 请输入手机号
        /// </summary>
        public const int PleaseInputPhoneNum = 10102;
        /// <summary>
        /// 请输入不少于6位的密码
        /// </summary>
        public const int PleaseInputPWD = 10103;
        /// <summary>
        /// 登录
        /// </summary>
        public const int Login = 10104;
        /// <summary>
        /// 验证码登录
        /// </summary>
        public const int LoginByCode = 10105;
        /// <summary>
        /// 注册用户
        /// </summary>
        public const int Register = 10106;
        /// <summary>
        /// 请输入邮箱
        /// </summary>
        public const int PleaseInputEmail = 10107;
        /// <summary>
        /// 搜索
        /// </summary>
        public const int Search = 10108;
        /// <summary>
        /// 完成
        /// </summary>
        public const int Complete = 10109;
        /// <summary>
        /// 账号登录
        /// </summary>
        public const int LoginByAccountPWD = 10110;
        /// <summary>
        /// 获取验证码
        /// </summary>
        public const int SendVerificationCode = 10111;
        /// <summary>
        /// 后重发
        /// </summary>
        public const int SendVerificationCodeAgain = 10112;
        /// <summary>
        /// 请再次输入密码
        /// </summary>
        public const int PleaseComfirePWD = 10113;
        /// <summary>
        /// 发送验证码成功,请注意查收
        /// </summary>
        public const int SendVerificationCodeSuccess = 10114;
        /// <summary>
        /// 确定
        /// </summary>
        public const int Confrim = 10115;
        /// <summary>
        /// 该用户已存在,可直接登录
        /// </summary>
        public const int AccountHasBeenRegistered = 10116;
        /// <summary>
        /// 提供的参数错误
        /// </summary>
        public const int PARAMETEROREMPTY = 10117;
        /// <summary>
        /// 提供的参数错误
        /// </summary>
        public const int PARAMETEROREMPTY = 10117;
        /// <summary>
        /// 确认密码不一致,请重新输入
        /// </summary>
        public const int TwoPasswordInconsistency = 10118;
        /// <summary>
        /// 验证码错误,请重新输入
        /// </summary>
        public const int VALIDCODEANDPHONENOEQUAL = 10119;
        /// <summary>
        /// 请求服务器失败
        /// </summary>
        public const int RequestServerFailed = 10120;
        /// <summary>
        /// 恭喜注册成功!
        /// </summary>
        public const int RegisterSuccessTip = 10121;
        /// <summary>
        /// 即将自动登录
        /// </summary>
        public const int WillAutoLogin = 10122;
        /// <summary>
        /// 忘记密码
        /// </summary>
        public const int ForgotPWD = 10123;
        /// <summary>
        /// 确认重置
        /// </summary>
        public const int ComfirmReset = 10124;
        /// <summary>
        /// 修改成功
        /// </summary>
        public const int ResetSuccess = 10125;
        /// <summary>
        /// 你的密码修改成功,请重新登录
        /// </summary>
        public const int ResetScucessPleaseLogin = 10126;
        /// <summary>
        /// 验证码错误,请重新输入
        /// </summary>
        public const int VALIDCODEANDPHONENOEQUAL = 10119;
        /// <summary>
        /// 请求服务器失败
        /// </summary>
        public const int RequestServerFailed = 10120;
        /// <summary>
        /// 恭喜注册成功!
        /// </summary>
        public const int RegisterSuccessTip = 10121;
        /// <summary>
        /// 即将自动登录
        /// </summary>
        public const int WillAutoLogin = 10122;
        /// <summary>
        /// 忘记密码
        /// </summary>
        public const int ForgotPWD = 10123;
        /// <summary>
        /// 确认重置
        /// </summary>
        public const int ComfirmReset = 10124;
        /// <summary>
        /// 修改成功
        /// </summary>
        public const int ResetSuccess = 10125;
        /// <summary>
        /// 你的密码修改成功,请重新登录
        /// </summary>
        public const int ResetScucessPleaseLogin = 10126;
        /// <summary>
        /// 请选择区号
        /// </summary>
@@ -1175,112 +1178,112 @@
        /// 功能
        /// </summary>
        public const int Function = 11000;
        /// <summary>
        /// 场景
        /// </summary>
        public const int Scence = 11001;
        /// <summary>
        /// 自动化
        /// </summary>
        public const int Automation = 11002;
        /// <summary>
        /// 场景
        /// </summary>
        public const int Scence = 11001;
        /// <summary>
        /// 自动化
        /// </summary>
        public const int Automation = 11002;
        /// <summary>
        /// 没有功能 请在个人中心--设备管理处添加
        /// </summary>
        public const int NoFunction = 11010;
        /// <summary>
        /// 编辑
        /// </summary>
        public const int Edit = 11011;
        /// <summary>
        /// 没有功能 请在个人中心--设备管理处添加
        /// </summary>
        public const int NoFunction = 11010;
        /// <summary>
        /// 编辑
        /// </summary>
        public const int Edit = 11011;
        /// <summary>
        /// 功能设置
        /// </summary>
        public const int FunctionSetting = 11012;
        /// <summary>
        /// 信息编辑
        /// </summary>
        public const int EditInfo = 11013;
        /// <summary>
        /// 功能名称
        /// </summary>
        public const int FunctionName = 11014;
        /// <summary>
        /// 所属区域
        /// </summary>
        public const int BelongZone = 11015;
        /// <summary>
        /// 所属设备
        /// </summary>
        public const int BelongDevice = 11016;
        /// <summary>
        /// 未知
        /// </summary>
        public const int UNKnown = 11017;
        /// <summary>
        /// 分享
        /// </summary>
        public const int Share = 11018;
        /// <summary>
        /// 分享的
        /// </summary>
        public const int Shared = 11019;
        /// <summary>
        /// 选择图标
        /// </summary>
        public const int SelectIcon = 11020;
        /// <summary>
        /// 保存
        /// </summary>
        public const int Save = 11021;
        /// <summary>
        /// 提醒
        /// </summary>
        public const int TIP = 11022;
        /// <summary>
        /// 取消
        /// </summary>
        public const int Cancel = 11023;
        /// <summary>
        /// 没有场景{0}请点击右上角添加
        /// </summary>
        public const int NoScene = 11024;
        /// <summary>
        /// 设置
        /// </summary>
        public const int Setting = 11025;
        /// <summary>
        /// 延时
        /// </summary>
        public const int Delay = 11026;
        /// <summary>
        /// 确定删除吗?
        /// </summary>
        public const int ConfirmDelete = 11027;
        /// <summary>
        /// 添加场景
        /// </summary>
        public const int AddScence = 11028;
        /// <summary>
        /// 场景名称
        /// </summary>
        public const int SceneName = 11029;
        /// <summary>
        /// 请输入场景名称
        /// </summary>
        public const int PleaseInputSceneName = 11030;
        /// <summary>
        /// 添加执行目标
        /// </summary>
        public const int AddScentTargetAction = 11031;
        /// <summary>
        /// 选择区域
        /// </summary>
        public const int SelectZone = 11032;
        /// <summary>
        /// 选择场景图片
        /// </summary>
        public const int SelectScenePic = 11033;
        /// <summary>
        /// 信息编辑
        /// </summary>
        public const int EditInfo = 11013;
        /// <summary>
        /// 功能名称
        /// </summary>
        public const int FunctionName = 11014;
        /// <summary>
        /// 所属区域
        /// </summary>
        public const int BelongZone = 11015;
        /// <summary>
        /// 所属设备
        /// </summary>
        public const int BelongDevice = 11016;
        /// <summary>
        /// 未知
        /// </summary>
        public const int UNKnown = 11017;
        /// <summary>
        /// 分享
        /// </summary>
        public const int Share = 11018;
        /// <summary>
        /// 分享的
        /// </summary>
        public const int Shared = 11019;
        /// <summary>
        /// 选择图标
        /// </summary>
        public const int SelectIcon = 11020;
        /// <summary>
        /// 保存
        /// </summary>
        public const int Save = 11021;
        /// <summary>
        /// 提醒
        /// </summary>
        public const int TIP = 11022;
        /// <summary>
        /// 取消
        /// </summary>
        public const int Cancel = 11023;
        /// <summary>
        /// 没有场景{0}请点击右上角添加
        /// </summary>
        public const int NoScene = 11024;
        /// <summary>
        /// 设置
        /// </summary>
        public const int Setting = 11025;
        /// <summary>
        /// 延时
        /// </summary>
        public const int Delay = 11026;
        /// <summary>
        /// 确定删除吗?
        /// </summary>
        public const int ConfirmDelete = 11027;
        /// <summary>
        /// 添加场景
        /// </summary>
        public const int AddScence = 11028;
        /// <summary>
        /// 场景名称
        /// </summary>
        public const int SceneName = 11029;
        /// <summary>
        /// 请输入场景名称
        /// </summary>
        public const int PleaseInputSceneName = 11030;
        /// <summary>
        /// 添加执行目标
        /// </summary>
        public const int AddScentTargetAction = 11031;
        /// <summary>
        /// 选择区域
        /// </summary>
        public const int SelectZone = 11032;
        /// <summary>
        /// 选择场景图片
        /// </summary>
        public const int SelectScenePic = 11033;
        /// <summary>
        /// 确定要移除该功能?
        /// </summary>
@@ -1396,82 +1399,82 @@
        /// </summary>
        public const int RoomList = 13100;
        /// <summary>
        /// 选择楼层
        /// </summary>
        public const int SelectFloor = 13101;
        /// <summary>
        /// 选择住宅
        /// </summary>
        public const int ChangeHome = 13102;
        /// <summary>
        /// 新用户登录,请先绑定网关
        /// </summary>
        public const int NewAccountNeedBingGW = 13103;
        /// <summary>
        /// 添加智能网关
        /// </summary>
        public const int AddSmartGW = 13104;
        /// <summary>
        /// 编辑房间
        /// </summary>
        public const int EditRoom = 13105;
        /// <summary>
        /// 房间名称
        /// </summary>
        public const int RoomName = 13106;
        /// <summary>
        /// 所属楼层
        /// </summary>
        public const int BelongFloor = 13107;
        /// <summary>
        /// 温度
        /// </summary>
        public const int Temperature = 13108;
        /// <summary>
        /// 湿度
        /// </summary>
        public const int Humidity = 13109;
        /// <summary>
        /// 当前
        /// </summary>
        public const int Current = 13110;
        /// <summary>
        /// 开
        /// </summary>
        public const int Open = 13111;
        /// <summary>
        /// 关闭
        /// </summary>
        public const int Close = 13112;
        /// <summary>
        /// 不开启
        /// </summary>
        public const int NotOpen = 13113;
        /// <summary>
        /// 秒
        /// </summary>
        public const int Second = 13114;
        /// <summary>
        /// 分钟
        /// </summary>
        public const int Minute = 13115;
        /// <summary>
        /// 小时
        /// </summary>
        public const int Hour = 13116;
        /// <summary>
        /// 未分配
        /// </summary>
        public const int Unallocated = 13117;
        /// <summary>
        /// 全选
        /// </summary>
        public const int AllSelect = 13118;
        /// <summary>
        /// 添加到
        /// </summary>
        public const int AddTo = 13119;
        /// <summary>
        /// 选择楼层
        /// </summary>
        public const int SelectFloor = 13101;
        /// <summary>
        /// 选择住宅
        /// </summary>
        public const int ChangeHome = 13102;
        /// <summary>
        /// 新用户登录,请先绑定网关
        /// </summary>
        public const int NewAccountNeedBingGW = 13103;
        /// <summary>
        /// 添加智能网关
        /// </summary>
        public const int AddSmartGW = 13104;
        /// <summary>
        /// 编辑房间
        /// </summary>
        public const int EditRoom = 13105;
        /// <summary>
        /// 房间名称
        /// </summary>
        public const int RoomName = 13106;
        /// <summary>
        /// 所属楼层
        /// </summary>
        public const int BelongFloor = 13107;
        /// <summary>
        /// 温度
        /// </summary>
        public const int Temperature = 13108;
        /// <summary>
        /// 湿度
        /// </summary>
        public const int Humidity = 13109;
        /// <summary>
        /// 当前
        /// </summary>
        public const int Current = 13110;
        /// <summary>
        /// 开
        /// </summary>
        public const int Open = 13111;
        /// <summary>
        /// 关闭
        /// </summary>
        public const int Close = 13112;
        /// <summary>
        /// 不开启
        /// </summary>
        public const int NotOpen = 13113;
        /// <summary>
        /// 秒
        /// </summary>
        public const int Second = 13114;
        /// <summary>
        /// 分钟
        /// </summary>
        public const int Minute = 13115;
        /// <summary>
        /// 小时
        /// </summary>
        public const int Hour = 13116;
        /// <summary>
        /// 未分配
        /// </summary>
        public const int Unallocated = 13117;
        /// <summary>
        /// 全选
        /// </summary>
        public const int AllSelect = 13118;
        /// <summary>
        /// 添加到
        /// </summary>
        public const int AddTo = 13119;
        /// <summary>
        /// 该房间是分享过来的,不允许进行该操作
        /// </summary>
@@ -1598,7 +1601,7 @@
        /// <summary>
        /// 选择摆风
        /// </summary>
        public const int SelectSwing=13500;
        public const int SelectSwing = 13500;
        /// <summary>
        /// 自动
        /// </summary>
@@ -1654,15 +1657,15 @@
        #endregion
        /// <summary>
        /// 密码长度为{0}个字符
        /// </summary>
        public const int PswLengthMsg = 15000;
        /// <summary>
        /// 密码长度为{0}个字符
        /// </summary>
        public const int PswLengthMsg = 15000;
        /// <summary>
        /// 1个小写字母
        /// </summary>
@@ -3466,7 +3469,7 @@
        /// <summary>
        /// 协调器
        /// </summary>
        public const int uCoordinator= 15514;
        public const int uCoordinator = 15514;
        /// <summary>
        /// 虚拟驱动
        /// </summary>
@@ -4958,7 +4961,7 @@
        /// <summary>
        /// 跳转到移动设备
        /// </summary>
        public const int uJumpToMobileDevice= 15905;
        public const int uJumpToMobileDevice = 15905;
        /// <summary>
        /// WLAN设置连接家庭WiFi
        /// </summary>