| | |
| | | 295= 生效时间不能大于失效时间 |
| | | 296= 失效时间不能小于生效时间 |
| | | 297= 失效时间不能省略 |
| | | 298= 失效时间不能大于36小时 |
| | | 298= 失效时间不能大于72小时 |
| | | 299= 失效时间不能小于1小时 |
| | | 300=新风 |
| | | 301=非管理员不能在常开模式下操作 |
| | | 302=绑定新风 |
| | | 303=温度来源 |
| | | 304=湿度来源 |
| | | 305=PM2.5来源 |
| | | |
| | | |
| | | |
| | |
| | | 16088=常开模式开启(网关触发) |
| | | 16089=常开模式结束(网关触发) |
| | | 16090=常开模式 |
| | | 16091=常开模式手动开启 |
| | | 16092=常开模式手动取消 |
| | | 16093=常开模式启用{0}小时 |
| | | |
| | | ;★★★★下面这些是接口的返回信息翻译,从18000开始★★★★
|
| | | 18004=指定网关已经被绑定
|
| | |
| | | 295= 生效时间不能大于失效时间 |
| | | 296= 失效时间不能小于生效时间 |
| | | 297= 失效时间不能省略 |
| | | 298= 失效时间不能大于36小时 |
| | | 298= 失效时间不能大于72小时 |
| | | 299= 失效时间不能小于1小时 |
| | | 300=新风 |
| | | 301=非管理员不能在常开模式下操作 |
| | | 302=绑定新风 |
| | | 303=温度来源 |
| | | 304=湿度来源 |
| | | 305=PM2.5来源 |
| | | |
| | | |
| | | |
| | |
| | | 16088=常开模式开启(网关触发) |
| | | 16089=常开模式结束(网关触发) |
| | | 16090=常开模式 |
| | | 16091=常开模式手动开启 |
| | | 16092=常开模式手动取消 |
| | | 16093=常开模式启用{0}小时 |
| | | |
| | | ;★★★★下面这些是接口的返回信息翻译,从18000开始★★★★
|
| | | 18004=指定网关已经被绑定
|
| | |
| | | return false;
|
| | | }
|
| | | }
|
| | | //如果是新风面板的新风设备,则不显示
|
| | | else if (i_device.Type == DeviceType.FreshAir)
|
| | | {
|
| | | var myInfoType = LocalDevice.Current.GetMyDeviceEnumInfo(new List<CommonDevice>() { i_device });
|
| | | if (myInfoType.ConcreteType == DeviceConcreteType.ButtonPanel_FangyueFreshAir)
|
| | | {
|
| | | return false;
|
| | | }
|
| | | }
|
| | | //2020.03.30追加式样:如果是面板的温度探头,不显示
|
| | | else if (i_device.Type == DeviceType.TemperatureSensor && ((TemperatureSensor)i_device).SensorDiv == 1)
|
| | | {
|
| | |
| | | using Shared.Common; |
| | | using Shared.Phone.UserView; |
| | | using Shared.Phone.Device.CommonForm; |
| | | |
| | | using Shared.Phone.UserCenter;
|
| | |
|
| | | namespace Shared.Phone.Login |
| | | { |
| | | /// <summary> |
| | |
| | | { |
| | | loginBtn.Enable = loginBtn.IsSelected = false; |
| | | } |
| | | } |
| | | }
|
| | |
|
| | |
|
| | | #endregion |
| | |
|
| | |
|
| | |
|
| | |
|
| | | #region ■ 变量声明___________________________ |
| | | |
| | | /// <summary>
|
| | | /// 手机账号登陆的控件容器
|
| | | /// </summary> |
| | | private FrameLayout frameAccLoginPhoneback = null; |
| | | /// <summary>
|
| | | /// 邮箱账号登陆的控件容器
|
| | | /// </summary> |
| | | private FrameLayout frameEmailLoginPhoneback = null; |
| | | |
| | | #endregion |
| | |
|
| | | #region ■ 初始化_____________________________ |
| | | |
| | | /// <summary>
|
| | | /// 界面显示
|
| | | /// </summary>
|
| | | /// <param name="account">登陆账号</param>
|
| | | public void ShowForm(string account = "")
|
| | | {
|
| | | if (Config.Instance.IsLogin == true)
|
| | | {
|
| | | return;
|
| | | }
|
| | | CommonPage.Instance.IsDrawerLockMode = true; |
| | | this.Tag = "Login"; |
| | | |
| | | //界面上部的黑色图片 |
| | | var btnTopBlackPic = new NormalViewControl(this.Width, Application.GetRealHeight(619), false); |
| | | btnTopBlackPic.UnSelectedImagePath = "Account/Logo_loginBG.png"; |
| | | this.AddChidren(btnTopBlackPic); |
| | | |
| | | //中间浅白色的背景 |
| | | var frameMidBack = new FrameLayout(); |
| | | frameMidBack.Y = btnTopBlackPic.Bottom; |
| | | frameMidBack.Height = this.Height - btnTopBlackPic.Bottom; |
| | | frameMidBack.BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor; |
| | | this.AddChidren(frameMidBack); |
| | | |
| | | //HdlHome的图标 |
| | | var btnLogoIcon = new PicViewControl(184, 184); |
| | | btnLogoIcon.Y = Application.GetRealHeight(230); |
| | | btnLogoIcon.UnSelectedImagePath = "Account/Logo_White.png"; |
| | | btnLogoIcon.Gravity = Gravity.CenterHorizontal;
|
| | | this.AddChidren(btnLogoIcon); |
| | | //Hdl Home |
| | | var btnLogoName = new NormalViewControl(300, 69, true);
|
| | | btnLogoName.Y = btnLogoIcon.Bottom;
|
| | | btnLogoName.Gravity = Gravity.CenterHorizontal;
|
| | | btnLogoName.TextID = R.MyInternationalizationString.AppName;
|
| | | btnLogoName.TextColor = ZigbeeColor.Current.GXCTextWhiteColor;
|
| | | btnLogoName.TextSize = 16; |
| | | this.AddChidren(btnLogoName); |
| | | |
| | | //手机号,邮箱的菜单控件 |
| | | int defultIndex = account.Contains("@") == false ? 1 : 2; |
| | | var sitchControl = new Controls.PhoneEmailSelectControl(); |
| | | sitchControl.Y = Application.GetRealHeight(559); |
| | | this.AddChidren(sitchControl); |
| | | sitchControl.SelectMenuEvent += (selectIndex) =>
|
| | | {
|
| | | //手机号
|
| | | if (selectIndex == 1)
|
| | | {
|
| | | }
|
| | | //邮箱
|
| | | else if (selectIndex == 2)
|
| | | {
|
| | | }
|
| | | }; |
| | | //执行初始化 |
| | | sitchControl.InitControl(ZigbeeColor.Current.GXCButtonSelectedColor, defultIndex); |
| | | |
| | | |
| | | phoneEmailForm = new PhoneEmailForm(); |
| | | phoneEmailForm.Init(midFrameLayout); |
| | | |
| | | |
| | | //错误提示Btn |
| | | loginErrorBtn = new Button() |
| | | { |
| | | X = Application.GetRealWidth(242), |
| | | Y = Application.GetRealHeight(740), |
| | | Width = Application.GetRealWidth(700), |
| | | Height = Application.GetRealHeight(58), |
| | | TextColor = ZigbeeColor.Current.GXCTextRed, |
| | | TextAlignment = TextAlignment.CenterLeft, |
| | | TextSize = CommonFormResouce.TextSize, |
| | | IsBold = true |
| | | }; |
| | | midFrameLayout.AddChidren(loginErrorBtn); |
| | | |
| | | accountPwdFL = new FrameLayout() |
| | | { |
| | | Y = Application.GetRealHeight(801), |
| | | Height = Application.GetRealHeight(553), |
| | | Width = Application.GetRealWidth(942), |
| | | Gravity = Gravity.CenterHorizontal, |
| | | BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor, |
| | | Radius = (uint)Application.GetRealHeight(17) |
| | | }; |
| | | midFrameLayout.AddChidren(accountPwdFL); |
| | | |
| | | AddPhoneOrEmailFL(accountPwdFL, "Phone"); |
| | | |
| | | forgotPasswordBtn = new Button() |
| | | { |
| | | X = Application.GetRealWidth(CommonPage.AppRealWidth - 115 - 250), |
| | | Y = Application.GetRealHeight(1198), |
| | | Width = Application.GetRealWidth(250), |
| | | Height = Application.GetRealHeight(58), |
| | | TextID = R.MyInternationalizationString.ForgotPWD_1, |
| | | TextSize = CommonFormResouce.loginTextSize, |
| | | TextColor = Shared.Common.ZigbeeColor.Current.GXCTextGrayColor, |
| | | TextAlignment = TextAlignment.CenterRight |
| | | }; |
| | | midFrameLayout.AddChidren(forgotPasswordBtn); |
| | | |
| | | loginBtn = new Button() |
| | | { |
| | | Y = Application.GetRealHeight(1293), |
| | | Width = Application.GetRealWidth(688), |
| | | Height = Application.GetRealHeight(127), |
| | | Gravity = Gravity.CenterHorizontal, |
| | | TextID = R.MyInternationalizationString.Login, |
| | | TextSize = 16, |
| | | TextColor = ZigbeeColor.Current.GXCTextGrayColor, |
| | | SelectedTextColor = ZigbeeColor.Current.GXCTextWhiteColor, |
| | | SelectedBackgroundColor = ZigbeeColor.Current.GXCButtonBlackSelectedColor, |
| | | BackgroundColor = ZigbeeColor.Current.GXCButtonUnSelectedColor, |
| | | Radius = (uint)Application.GetRealHeight(127 / 2), |
| | | Enable = false, |
| | | IsBold = true |
| | | }; |
| | | midFrameLayout.AddChidren(loginBtn); |
| | | |
| | | loginByCodeBtn = new Button() |
| | | { |
| | | X = Application.GetRealWidth(98), |
| | | Y = Application.GetRealHeight(1466), |
| | | Width = Application.GetRealWidth(300), |
| | | Height = Application.GetRealHeight(49), |
| | | TextID = R.MyInternationalizationString.LoginByCode, |
| | | TextColor = ZigbeeColor.Current.GXCTextGrayColor, |
| | | TextAlignment = TextAlignment.CenterLeft, |
| | | TextSize = CommonFormResouce.loginTextSize |
| | | }; |
| | | midFrameLayout.AddChidren(loginByCodeBtn); |
| | | |
| | | registerBtn = new Button() |
| | | { |
| | | X = Application.GetRealWidth(738), |
| | | Y = Application.GetRealHeight(1466), |
| | | Width = Application.GetRealWidth(244), |
| | | Height = Application.GetRealHeight(49), |
| | | TextID = R.MyInternationalizationString.Register, |
| | | TextColor = ZigbeeColor.Current.GXCTextGrayColor, |
| | | TextAlignment = TextAlignment.CenterRight, |
| | | TextSize = CommonFormResouce.loginTextSize |
| | | }; |
| | | midFrameLayout.AddChidren(registerBtn); |
| | | |
| | | wechatBtn = new Button |
| | | { |
| | | X = Application.GetRealWidth(395), |
| | | Y = Application.GetRealHeight(1737), |
| | | Width = Application.GetMinRealAverage(115), |
| | | Height = Application.GetMinRealAverage(115), |
| | | UnSelectedImagePath = "Account/Wechat.png", |
| | | Gravity = Gravity.CenterHorizontal |
| | | }; |
| | | midFrameLayout.AddChidren(wechatBtn); |
| | | |
| | | qqBtn = new Button |
| | | { |
| | | X = Application.GetRealWidth(567), |
| | | Y = Application.GetRealHeight(1737), |
| | | Width = Application.GetMinRealAverage(115), |
| | | Height = Application.GetMinRealAverage(115), |
| | | UnSelectedImagePath = "Account/QQ.png" |
| | | }; |
| | | //midFrameLayout.AddChidren(qqBtn); |
| | | |
| | | BindEvent(); |
| | | |
| | | if (account.Contains("@") == true) |
| | | { |
| | | SelectPhoneOrEmail_MouseUpEvent(phoneEmailForm.SelectedEmail, null); |
| | | }
|
| | | }
|
| | |
|
| | | #endregion |
| | |
|
| | | #region ■ 初始化账号登陆窗口_________________ |
| | | |
| | | /// <summary>
|
| | | /// 初始化账号登陆窗口
|
| | | /// </summary>
|
| | | /// <param name="frameMidBack">中间浅色的背景容器</param>
|
| | | /// <param name="i_account">登陆账号</param>
|
| | | /// <param name="i_div">1:手机号 2:邮箱</param> |
| | | private void InitAccoutLoginWindow(FrameLayout frameMidBack, string i_account, int i_div)
|
| | | {
|
| | | //容器
|
| | | var frameBack = new FrameLayout();
|
| | | frameBack.Height = Application.GetRealHeight(620);
|
| | | frameBack.Y = Application.GetRealHeight(181);
|
| | | frameMidBack.AddChidren(frameBack);
|
| | | //白色背景
|
| | | var frameWhiteBack = new FrameLayout();
|
| | | frameWhiteBack.Width = Application.GetRealWidth(942);
|
| | | frameWhiteBack.Height = Application.GetRealHeight(553);
|
| | | frameWhiteBack.BackgroundColor = UserCenterColor.Current.White;
|
| | | frameWhiteBack.Radius = (uint)Application.GetRealHeight(17);
|
| | | frameWhiteBack.Gravity = Gravity.CenterHorizontal;
|
| | | frameBack.AddChidren(frameWhiteBack);
|
| | |
|
| | | //账号行
|
| | | var rowAccount = new FrameLayout();
|
| | | rowAccount.Y = Application.GetRealHeight(29);
|
| | | rowAccount.Width = Application.GetRealWidth(884);
|
| | | rowAccount.Height = Application.GetRealHeight(138);
|
| | | rowAccount.Gravity = Gravity.CenterHorizontal;
|
| | | frameWhiteBack.AddChidren(rowAccount);
|
| | | //账号图标
|
| | | var btnAccountIcon = new IconViewControl(92);
|
| | | btnAccountIcon.X = Application.GetRealWidth(69);
|
| | | btnAccountIcon.Gravity = Gravity.CenterVertical;
|
| | | btnAccountIcon.UnSelectedImagePath = "Account/Account.png";
|
| | | rowAccount.AddChidren(btnAccountIcon);
|
| | | //账号输入框
|
| | | var txtAccount = new TextInputControl(600, 92, true);
|
| | | txtAccount.X = btnAccountIcon.Right + Application.GetRealWidth(35);
|
| | | txtAccount.Gravity = Gravity.CenterVertical;
|
| | | if (i_div == 1)
|
| | | {
|
| | | //手机号
|
| | | txtAccount.IsNumberKeyboardType = true;
|
| | | txtAccount.PlaceholderText = Language.StringByID(R.MyInternationalizationString.PleaseInputPhoneNum);
|
| | | }
|
| | | else
|
| | | {
|
| | | //邮箱
|
| | | txtAccount.PlaceholderText = Language.StringByID(R.MyInternationalizationString.PleaseInputEmail);
|
| | | }
|
| | | txtAccount.PlaceholderTextColor = ZigbeeColor.Current.GXCPlaceHolderTextColor;
|
| | | txtAccount.Text = i_account;
|
| | | rowAccount.AddChidren(txtAccount);
|
| | | //底线
|
| | | var btnAccountLine = new NormalViewControl(rowAccount.Width, 1, false);
|
| | | btnAccountLine.BackgroundColor = ZigbeeColor.Current.GXCGrayLineColor;
|
| | | btnAccountLine.Y = rowAccount.Height - 1;
|
| | | rowAccount.AddChidren(btnAccountLine);
|
| | |
|
| | | //密码行
|
| | | var rowPassword = new FrameLayout();
|
| | | rowPassword.Y = rowAccount.Bottom + Application.GetRealHeight(58);
|
| | | rowPassword.Width = rowAccount.Width;
|
| | | rowPassword.Height = rowAccount.Height;
|
| | | rowPassword.Gravity = Gravity.CenterHorizontal;
|
| | | frameWhiteBack.AddChidren(rowPassword);
|
| | | //账号图标
|
| | | var btnPswIcon = new IconViewControl(92);
|
| | | btnPswIcon.X = btnAccountIcon.X;
|
| | | btnPswIcon.Gravity = Gravity.CenterVertical;
|
| | | btnPswIcon.UnSelectedImagePath = "Account/Password.png";
|
| | | rowPassword.AddChidren(btnPswIcon);
|
| | | //账号输入框
|
| | | var txtPsw = new TextInputControl(600, 92, true);
|
| | | txtPsw.X = txtAccount.X;
|
| | | txtPsw.Gravity = Gravity.CenterVertical;
|
| | | txtPsw.PlaceholderText = Language.StringByID(R.MyInternationalizationString.PleaseInputPWD);
|
| | | txtPsw.PlaceholderTextColor = ZigbeeColor.Current.GXCPlaceHolderTextColor;
|
| | | txtPsw.SecureTextEntry = true;
|
| | | rowPassword.AddChidren(txtPsw);
|
| | | //底线
|
| | | var btnPswLine = new NormalViewControl(rowPassword.Width, 1, false);
|
| | | btnPswLine.BackgroundColor = ZigbeeColor.Current.GXCGrayLineColor;
|
| | | btnPswLine.Y = rowPassword.Height - 1;
|
| | | rowPassword.AddChidren(btnPswLine);
|
| | | } |
| | | |
| | | #endregion |
| | | } |
| | | } |
New file |
| | |
| | | using Shared.Phone.UserCenter;
|
| | | using System;
|
| | | using System.Collections.Generic;
|
| | | using System.Text;
|
| | |
|
| | | namespace Shared.Phone.Login.Controls
|
| | | {
|
| | | /// <summary>
|
| | | /// 登陆界面的手机号和邮箱来回切换的控件
|
| | | /// </summary>
|
| | | public class PhoneEmailSelectControl : FrameLayout
|
| | | {
|
| | | #region ■ 变量声明___________________________
|
| | |
|
| | | /// <summary>
|
| | | /// 菜单选择事件 1:手机号 2:邮箱
|
| | | /// </summary>
|
| | | public Action<int> SelectMenuEvent = null;
|
| | | /// <summary>
|
| | | /// 手机号控件
|
| | | /// </summary>
|
| | | private NormalViewControl btnPhone = null;
|
| | | /// <summary>
|
| | | /// 邮箱控件
|
| | | /// </summary>
|
| | | private NormalViewControl btnEmail = null;
|
| | |
|
| | | #endregion
|
| | |
|
| | | #region ■ 初始化_____________________________
|
| | |
|
| | | /// <summary>
|
| | | /// 登陆界面的手机号和邮箱来回切换的控件
|
| | | /// </summary>
|
| | | public PhoneEmailSelectControl()
|
| | | {
|
| | | this.Width = HdlControlLogic.Current.GetPictrueRealSize(905);
|
| | | this.Height = HdlControlLogic.Current.GetPictrueRealSize(170);
|
| | | this.Gravity = Gravity.CenterHorizontal;
|
| | | this.BackgroundImagePath = "Account/PhoneEmail_White.png";
|
| | | }
|
| | |
|
| | | /// <summary>
|
| | | /// 初始化控件(索引会触发回调事件,SelectMenuEvent需要在它之前实现)
|
| | | /// </summary>
|
| | | /// <param name="selectBackColor">选择时的背景颜色</param>
|
| | | /// <param name="selectIndex">默认选择的索引 1:手机号 2:邮箱</param>
|
| | | public void InitControl(uint selectBackColor,int selectIndex)
|
| | | {
|
| | | //手机号
|
| | | this.btnPhone = new NormalViewControl(this.Width / 2 + HdlControlLogic.Current.GetPictrueRealSize(20), HdlControlLogic.Current.GetPictrueRealSize(127), false);
|
| | | btnPhone.X = HdlControlLogic.Current.GetPictrueRealSize(10);
|
| | | btnPhone.SelectedBackgroundColor = selectBackColor;
|
| | | btnPhone.TextID = R.MyInternationalizationString.PhoneNum;
|
| | | btnPhone.TextColor = UserCenterColor.Current.TextGrayColor3;
|
| | | btnPhone.SelectedTextColor = UserCenterColor.Current.White;
|
| | | btnPhone.Radius = (uint)HdlControlLogic.Current.GetPictrueRealSize(127) / 2;
|
| | | this.AddChidren(btnPhone);
|
| | | btnPhone.ButtonClickEvent += (sender, e) =>
|
| | | {
|
| | | if (btnPhone.IsSelected == false)
|
| | | {
|
| | | btnPhone.IsBold = true;
|
| | | btnPhone.IsSelected = true;
|
| | |
|
| | | btnEmail.IsBold = false;
|
| | | btnEmail.IsSelected = false;
|
| | | //调用回调函数
|
| | | this.SelectMenuEvent?.Invoke(1);
|
| | | }
|
| | | };
|
| | |
|
| | | //邮箱
|
| | | this.btnEmail = new NormalViewControl(this.btnPhone.Width, this.btnPhone.Height, false);
|
| | | btnEmail.X = this.btnPhone.Right - HdlControlLogic.Current.GetPictrueRealSize(40);
|
| | | btnEmail.SelectedBackgroundColor = selectBackColor;
|
| | | btnEmail.TextID = R.MyInternationalizationString.Email;
|
| | | btnEmail.TextColor = UserCenterColor.Current.TextGrayColor3;
|
| | | btnEmail.SelectedTextColor = UserCenterColor.Current.White;
|
| | | btnEmail.Radius = (uint)HdlControlLogic.Current.GetPictrueRealSize(127) / 2;
|
| | | this.AddChidren(btnEmail);
|
| | | btnEmail.ButtonClickEvent += (sender, e) =>
|
| | | {
|
| | | if (btnEmail.IsSelected == false)
|
| | | {
|
| | | btnPhone.IsBold = false;
|
| | | btnPhone.IsSelected = false;
|
| | |
|
| | | btnEmail.IsBold = true;
|
| | | btnEmail.IsSelected = true;
|
| | | //调用回调函数
|
| | | this.SelectMenuEvent?.Invoke(2);
|
| | | }
|
| | | };
|
| | |
|
| | | //设置初始值
|
| | | if (selectIndex == 1)
|
| | | {
|
| | | btnPhone.IsBold = true;
|
| | | btnPhone.IsSelected = true;
|
| | | //调用回调函数
|
| | | this.SelectMenuEvent?.Invoke(1);
|
| | | }
|
| | | else if (selectIndex == 2)
|
| | | {
|
| | | btnEmail.IsBold = true;
|
| | | btnEmail.IsSelected = true;
|
| | | //调用回调函数
|
| | | this.SelectMenuEvent?.Invoke(2);
|
| | | }
|
| | | }
|
| | |
|
| | | #endregion
|
| | |
|
| | | #region ■ 控件摧毁___________________________
|
| | |
|
| | | /// <summary>
|
| | | /// 控件摧毁
|
| | | /// </summary>
|
| | | public override void RemoveFromParent()
|
| | | {
|
| | | this.SelectMenuEvent = null;
|
| | |
|
| | | base.RemoveFromParent();
|
| | | }
|
| | |
|
| | | #endregion
|
| | | }
|
| | | }
|
| | |
| | | }, ShowErrorMode.NO);
|
| | | }
|
| | | });
|
| | |
|
| | | System.Threading.Thread.Sleep(50);
|
| | | if (contrCount > 6)
|
| | | {
|
| | | //让它呈现一种直接一次性刷出来的效果
|
| | | System.Threading.Thread.Sleep(50);
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | |
| | | });
|
| | | }
|
| | | });
|
| | | System.Threading.Thread.Sleep(50);
|
| | | if (contrCount > 6)
|
| | | {
|
| | | //让它呈现一种一次性显示出来的效果
|
| | | System.Threading.Thread.Sleep(50);
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | |
| | | public void AdjustChidrenFrameHeight(FrameLayout frame, int buttomSpace)
|
| | | {
|
| | | //获取坐标底部最下面的那个控件的底部坐标
|
| | | int value = this.GetLocationMostLastViewBottom();
|
| | | int value = this.GetLocationMostLastViewBottom(frame);
|
| | | if (value != -1)
|
| | | {
|
| | | //调整桌布高度
|
| | |
| | | public void AdjustTableHeight()
|
| | | {
|
| | | //获取坐标底部最下面的那个控件的底部坐标
|
| | | int value = this.GetLocationMostLastViewBottom();
|
| | | int value = this.GetLocationMostLastViewBottom(this.m_frameTable);
|
| | | if (value != -1)
|
| | | {
|
| | | //调整桌布高度
|
| | |
| | | return;
|
| | | }
|
| | | //添加临时控件,直至可以滑动超过底部按钮
|
| | | int oldRowSpace = this.rowSpace;
|
| | | this.rowSpace = 0;
|
| | | var frameBackTemp = new FrameLayout();
|
| | | frameBackTemp.Height = ControlCommonResourse.BodyFrameHeight - btnTemp.Yaxis + Application.GetRealHeight(23);
|
| | | this.AddChidrenFrame(frameBackTemp);
|
| | | this.rowSpace = oldRowSpace;
|
| | | }
|
| | |
|
| | | /// <summary>
|
| | |
| | | /// 获取坐标底部最下面的那个控件的底部坐标
|
| | | /// </summary>
|
| | | /// <returns></returns>
|
| | | private int GetLocationMostLastViewBottom()
|
| | | private int GetLocationMostLastViewBottom(FrameLayout frame)
|
| | | {
|
| | | int bottomHeight = -1;
|
| | |
|
| | | if (this.m_frameTable == null) { return bottomHeight; }
|
| | | if (frame == null) { return bottomHeight; }
|
| | |
|
| | | for (int i = 0; i < this.m_frameTable.ChildrenCount; i++)
|
| | | for (int i = 0; i < frame.ChildrenCount; i++)
|
| | | {
|
| | | var child = this.m_frameTable.GetChildren(i);
|
| | | var child = frame.GetChildren(i);
|
| | | if (child.Bottom > bottomHeight)
|
| | | {
|
| | | bottomHeight = child.Bottom;
|
| | |
| | | }
|
| | | }
|
| | | //检测楼层数据的合法性
|
| | | this.CheckFloorData(listRoomFile);
|
| | | if (UserCenterResourse.UserInfo.AuthorityNo == 3)
|
| | | {
|
| | | this.CheckMemberFloorData(listRoomFile);
|
| | | }
|
| | | else
|
| | | {
|
| | | this.CheckAdminFloorData(listRoomFile);
|
| | | }
|
| | |
|
| | | homeTemp.Save(false);
|
| | | InitAllRoom();
|
| | |
| | | /// 检测楼层数据的合法性
|
| | | /// </summary>
|
| | | /// <param name="listRoomFile"></param>
|
| | | private void CheckFloorData(List<string> listRoomFile)
|
| | | private void CheckAdminFloorData(List<string> listRoomFile)
|
| | | {
|
| | | //没有楼层,则无需处理
|
| | | if (Config.Instance.Home.FloorDics.Count == 0) { return; }
|
| | |
|
| | | //主人或者管理员的话,就检测是否存在未分配楼层的房间
|
| | | for (int i = 0; i < listRoomFile.Count; i++)
|
| | | {
|
| | | try
|
| | |
| | | }
|
| | | }
|
| | |
|
| | | /// <summary>
|
| | | /// 检测楼层数据的合法性
|
| | | /// </summary>
|
| | | /// <param name="listRoomFile"></param>
|
| | | private void CheckMemberFloorData(List<string> listRoomFile)
|
| | | {
|
| | | //没有楼层,则无需处理
|
| | | if (Config.Instance.Home.FloorDics.Count == 0) { return; }
|
| | |
|
| | | //成员的话,就检测是否存在没有房间的楼层
|
| | | var listEsixtFloor = new List<string>();
|
| | | for (int i = 0; i < listRoomFile.Count; i++)
|
| | | {
|
| | | try
|
| | | {
|
| | | var byteData = Global.ReadFileByHomeId(listRoomFile[i]);
|
| | | string valueData = System.Text.Encoding.UTF8.GetString(byteData);
|
| | | var roomTemp = Newtonsoft.Json.JsonConvert.DeserializeObject<Common.Room>(valueData);
|
| | | if (roomTemp.FloorId != string.Empty && listEsixtFloor.Contains(roomTemp.FloorId) == false)
|
| | | {
|
| | | //收集楼层
|
| | | listEsixtFloor.Add(roomTemp.FloorId);
|
| | | }
|
| | | }
|
| | | catch (Exception ex) { HdlLogLogic.Current.WriteLog(ex); }
|
| | | }
|
| | | var listDeleteId = new List<string>();
|
| | | foreach (var flootId in Config.Instance.Home.FloorDics.Keys)
|
| | | {
|
| | | if (listEsixtFloor.Contains(flootId) == false)
|
| | | {
|
| | | //如果这个id不存在于任何房间的话,收集它
|
| | | listDeleteId.Add(flootId);
|
| | | }
|
| | | }
|
| | | foreach (var deleteId in listDeleteId)
|
| | | {
|
| | | //删除这个id
|
| | | Config.Instance.Home.FloorDics.Remove(deleteId);
|
| | | }
|
| | | Config.Instance.Home.Save(false);
|
| | | }
|
| | |
|
| | | #endregion
|
| | |
|
| | | #region ■ 添加房间___________________________
|
| | |
| | | }
|
| | | }
|
| | |
|
| | | //清空楼层数据
|
| | | Common.Config.Instance.Home.FloorDics.Clear();
|
| | | //然后检测本地的文件
|
| | | var listLocalFile = Global.FileListByHomeId();
|
| | | foreach (string fileName in listLocalFile)
|
| | |
| | | var varData = Global.ReadFileByHomeId(fileName);
|
| | | var dicFloor = Newtonsoft.Json.JsonConvert.DeserializeObject<Dictionary<string, string>>(Encoding.UTF8.GetString(varData));
|
| | | Common.Config.Instance.Home.FloorDics = dicFloor;
|
| | | Common.Config.Instance.Home.Save(false);
|
| | |
|
| | | //暂时不保存,留在最后面才保存
|
| | | Global.DeleteFilebyHomeId(fileName);
|
| | | }
|
| | |
|
| | |
| | | dicUpdateTime.Remove(fileName);
|
| | | }
|
| | | }
|
| | |
|
| | | //保存楼层数据
|
| | | Common.Config.Instance.Home.Save(false);
|
| | |
|
| | | //网关文件非合法性是刷新设备列表的函数里面实现
|
| | |
|
| | | //保存全部分享文件的更新日期
|
| | |
| | | |
| | | var btnBindDown = new Button |
| | | { |
| | | Height = Application.GetRealHeight(69), |
| | | Width = Application.GetRealWidth(69), |
| | | Height = Application.GetMinReal(69), |
| | | Width = Application.GetMinReal(69), |
| | | X = Application.GetRealWidth(200 - 77), |
| | | UnSelectedImagePath = "BindPic/BindDown.png", |
| | | Gravity = Gravity.CenterVertical, |
| | |
| | | |
| | | var btnRoomFrameLayout = new FrameLayout |
| | | { |
| | | Height = Application.GetRealHeight(159), |
| | | Width = Application.GetRealWidth(255), |
| | | Height = Application.GetMinReal(159), |
| | | Width = Application.GetMinReal(255), |
| | | Y = Application.GetRealHeight(23), |
| | | X = Application.GetRealWidth(5), |
| | | BackgroundImagePath = "Item/RoomIconBackground.png", |
| | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 按键绑定场景表显示 |
| | | /// 按键绑定目标表显示 |
| | | /// </summary> |
| | | /// <param name="gateway">Gateway.</param> |
| | | /// <param name="key">Key.</param> |
| | |
| | | |
| | | var sidelipFrameLayout = new FrameLayout() |
| | | { |
| | | Height = Application.GetRealHeight(783), |
| | | Width = Application.GetRealWidth(449), |
| | | Height = Application.GetMinReal(783), |
| | | Width = Application.GetMinReal(449), |
| | | Y = Application.GetRealHeight(161), |
| | | X = Application.GetRealWidth(596), |
| | | BackgroundImagePath = "DoorLock/SideslipPic.png", |
| | |
| | | |
| | | var btnAllMethod = new Button() |
| | | { |
| | | Width = Application.GetRealWidth(81), |
| | | Height = Application.GetRealHeight(81), |
| | | Width = Application.GetMinReal(81), |
| | | Height = Application.GetMinReal(81), |
| | | Y = Application.GetRealHeight(55), |
| | | UnSelectedImagePath = "Floor/Floor.png", |
| | | SelectedImagePath = "Floor/FloorSelected.png", |
| | |
| | | |
| | | var btnBindDown = new Button |
| | | { |
| | | Height = Application.GetRealHeight(69), |
| | | Width = Application.GetRealWidth(69), |
| | | Height = Application.GetMinReal(69), |
| | | Width = Application.GetMinReal(69), |
| | | X = Application.GetRealWidth(200 - 77), |
| | | UnSelectedImagePath = "BindPic/BindDown.png", |
| | | Gravity = Gravity.CenterVertical, |
| | |
| | | |
| | | var btnRoomFrameLayout = new FrameLayout |
| | | { |
| | | Height = Application.GetRealHeight(159), |
| | | Width = Application.GetRealWidth(255), |
| | | Height = Application.GetMinReal(159), |
| | | Width = Application.GetMinReal(255), |
| | | Y = Application.GetRealHeight(23), |
| | | X = Application.GetRealWidth(5), |
| | | BackgroundImagePath = "Item/RoomIconBackground.png", |
| | |
| | | { |
| | | X = Application.GetMinRealAverage(58), |
| | | Y = Application.GetMinRealAverage(46), |
| | | Width = Application.GetMinRealAverage(81), |
| | | Height = Application.GetMinRealAverage(81), |
| | | Width = Application.GetMinReal(81), |
| | | Height = Application.GetMinReal(81), |
| | | UnSelectedImagePath = "Scene/SceneIcon.png",// scene.IconPath,
|
| | | }; |
| | | rowLayout.AddChidren(devicePic); |
| | |
| | | |
| | | var btnChoose = new Button() |
| | | { |
| | | Width = Application.GetRealWidth(60), |
| | | Height = Application.GetRealHeight(60), |
| | | Width = Application.GetMinReal(60), |
| | | Height = Application.GetMinReal(60), |
| | | X = Application.GetRealWidth(861 + 81), |
| | | Y = Application.GetRealHeight(35), |
| | | SelectedImagePath = "DoorLock/SelectedIcon.png", |
| | |
| | | |
| | | var sidelipFrameLayout = new FrameLayout() |
| | | { |
| | | Height = Application.GetRealHeight(783), |
| | | Width = Application.GetRealWidth(449), |
| | | Height = Application.GetMinReal(783), |
| | | Width = Application.GetMinReal(449), |
| | | Y = Application.GetRealHeight(161), |
| | | X = Application.GetRealWidth(596), |
| | | BackgroundImagePath = "DoorLock/SideslipPic.png", |
| | |
| | | |
| | | var btnAllMethod = new Button() |
| | | { |
| | | Width = Application.GetRealWidth(81), |
| | | Height = Application.GetRealHeight(81), |
| | | Width = Application.GetMinReal(81), |
| | | Height = Application.GetMinReal(81), |
| | | Y = Application.GetRealHeight(55), |
| | | UnSelectedImagePath = "Floor/Floor.png", |
| | | SelectedImagePath = "Floor/FloorSelected.png", |
| | |
| | | |
| | | public Button btnBack = new Button |
| | | { |
| | | Height = Application.GetRealHeight(51), |
| | | Width = Application.GetRealWidth(30), |
| | | Height = Application.GetMinReal(51), |
| | | Width = Application.GetMinReal(30), |
| | | UnSelectedImagePath = "DoorLock/Left.png", |
| | | }; |
| | | |
| | |
| | | var btnBindAdd = new Button |
| | | { |
| | | X = Application.GetRealWidth(62), |
| | | Height = Application.GetRealHeight(72), |
| | | Width = Application.GetRealWidth(72), |
| | | Height = Application.GetMinReal(72), |
| | | Width = Application.GetMinReal(72), |
| | | UnSelectedImagePath = "BindPic/BindAdd.png", |
| | | }; |
| | | btnAddFrameLayout.AddChidren(btnBindAdd); |
| | |
| | | |
| | | var sidelipFrameLayout = new FrameLayout() |
| | | { |
| | | Height = Application.GetRealHeight(628), |
| | | Width = Application.GetRealWidth(415), |
| | | Height = Application.GetMinReal(628), |
| | | Width = Application.GetMinReal(415), |
| | | Y = Application.GetRealHeight(115 + 45), |
| | | X = Application.GetRealWidth(605), |
| | | BackgroundImagePath = "DoorLock/SideslipPic.png", |
| | |
| | | |
| | | var btnChoose = new Button() |
| | | { |
| | | Width = Application.GetRealWidth(60), |
| | | Height = Application.GetRealHeight(60), |
| | | Width = Application.GetMinReal(60), |
| | | Height = Application.GetMinReal(60), |
| | | X = Application.GetRealWidth(861 + 81), |
| | | Y = Application.GetRealHeight(35), |
| | | SelectedImagePath = "DoorLock/SelectedIcon.png", |
| | |
| | | |
| | | var btnChoose = new Button() |
| | | { |
| | | Width = Application.GetRealWidth(60), |
| | | Height = Application.GetRealHeight(60), |
| | | Width = Application.GetMinReal(60), |
| | | Height = Application.GetMinReal(60), |
| | | X = Application.GetRealWidth(861 + 81), |
| | | Y = Application.GetRealHeight(35), |
| | | SelectedImagePath = "DoorLock/SelectedIcon.png", |
| | |
| | | |
| | | var btnChoose = new Button() |
| | | { |
| | | Width = Application.GetRealWidth(60), |
| | | Height = Application.GetRealHeight(60), |
| | | Width = Application.GetMinReal(60), |
| | | Height = Application.GetMinReal(60), |
| | | X = Application.GetRealWidth(861 + 81), |
| | | Y = Application.GetRealHeight(35), |
| | | SelectedImagePath = "DoorLock/SelectedIcon.png", |
| | |
| | | this.listView.AddChidrenFrame2(frameTable);
|
| | | //图标
|
| | | var btnIcon = frameTable.AddLeftIcon();
|
| | | //信息
|
| | | var btnMsg = frameTable.AddTopView("", 600);
|
| | | //人物
|
| | | string perName = dicName.ContainsKey(historyInfo.CloudAccountId) == true ? dicName[historyInfo.CloudAccountId] : Language.StringByID(R.MyInternationalizationString.uOther);
|
| | | frameTable.AddBottomView(perName, 600);
|
| | | //时间
|
| | | if (this.dateFromControl.dateValue == this.dateToControl.dateValue)
|
| | | {
|
| | | //如果日期范围一样,则不显示年月日
|
| | | frameTable.AddMostRightView(UserCenterLogic.ConvertUtcTimeToLocalTime(historyInfo.UnlockTime).ToString("HH:mm:ss"), 400);
|
| | | }
|
| | | else
|
| | | {
|
| | | //如果日期范围不一样,则显示年月日
|
| | | frameTable.AddMostRightView(UserCenterLogic.ConvertUtcTimeToLocalTime(historyInfo.UnlockTime).ToString("yyyy/MM/dd HH:mm:ss"), 700);
|
| | | }
|
| | | //底线
|
| | | if (addLine == true)
|
| | | {
|
| | | |
| | | frameTable.AddBottomLine();
|
| | | }
|
| | |
|
| | | //其他消息
|
| | | if (historyInfo.OpenLockMode == -1)
|
| | | {
|
| | | //其他消息
|
| | | //图片
|
| | | var device = Common.LocalDevice.Current.GetDevice(historyInfo.DeviceMac, historyInfo.DeviceEpoint);
|
| | | if (device == null)
|
| | | {
|
| | |
| | | {
|
| | | Common.LocalDevice.Current.SetDeviceIconToControl(btnIcon, device);
|
| | | }
|
| | | }
|
| | | else if (historyInfo.OpenLockMode == 9000)
|
| | | {
|
| | | btnIcon.UnSelectedImagePath = "Item/NormallyOpen.png";
|
| | | }
|
| | | else if (historyInfo.UnlockIsSuccess == true)
|
| | | {
|
| | | btnIcon.UnSelectedImagePath = "Item/UnLockSuccess.png";
|
| | | }
|
| | | else
|
| | | {
|
| | | btnIcon.UnSelectedImagePath = "Item/UnLockFail.png";
|
| | | }
|
| | |
|
| | | //信息
|
| | | var btnMsg = frameTable.AddTopView("", 600);
|
| | | if (historyInfo.OpenLockMode == -1 || historyInfo.OpenLockMode == 9000)
|
| | | {
|
| | | //其他消息
|
| | | //消息
|
| | | btnMsg.Text = historyInfo.AlarmMsg;
|
| | | }
|
| | | //门锁常开模式
|
| | | else if (historyInfo.OpenLockMode == 9000)
|
| | | {
|
| | | //图片
|
| | | btnIcon.UnSelectedImagePath = "Item/NormallyOpen.png";
|
| | | //消息
|
| | | if (historyInfo.OtherOpenLockMode == 9001)
|
| | | {
|
| | | //常开模式手动开启
|
| | | btnMsg.TextID = R.MyInternationalizationString.uNormallyOpenModeManualOpen;
|
| | | }
|
| | | else if (historyInfo.OtherOpenLockMode == 9002)
|
| | | {
|
| | | //常开模式手动取消
|
| | | btnMsg.TextID = R.MyInternationalizationString.uNormallyOpenModeManualClose;
|
| | | }
|
| | | else if (historyInfo.OtherOpenLockMode == 9003)
|
| | | {
|
| | | //常开模式启用{0}小时
|
| | | btnMsg.Text = Language.StringByID(R.MyInternationalizationString.uNormallyOpenModeOpenSomeTime).Replace("{0}", historyInfo.NormallyOpenContinuedTime);
|
| | | }
|
| | | else
|
| | | {
|
| | | //上面是App手动推送,这里是网关或者门锁自己推送
|
| | | btnMsg.Text = historyInfo.AlarmMsg;
|
| | | }
|
| | | }
|
| | | //开锁成功
|
| | | else if (historyInfo.UnlockIsSuccess == true)
|
| | | {
|
| | | //图片
|
| | | btnIcon.UnSelectedImagePath = "Item/UnLockSuccess.png";
|
| | | //消息
|
| | | if (historyInfo.OpenLockMode == 0)
|
| | | {
|
| | | //密码开锁成功
|
| | |
| | | btnMsg.TextID = R.MyInternationalizationString.uUnlockByFingerPrintSuccess;
|
| | | }
|
| | | }
|
| | | //开锁失败
|
| | | else
|
| | | {
|
| | | //图片
|
| | | btnIcon.UnSelectedImagePath = "Item/UnLockFail.png";
|
| | | //消息
|
| | | if (historyInfo.OpenLockMode == 0)
|
| | | {
|
| | | //密码开锁失败
|
| | |
| | | //指纹开锁失败
|
| | | btnMsg.TextID = R.MyInternationalizationString.uUnlockByFingerPrintFail;
|
| | | }
|
| | | }
|
| | |
|
| | | //人物
|
| | | string perName = dicName.ContainsKey(historyInfo.CloudAccountId) == true ? dicName[historyInfo.CloudAccountId] : Language.StringByID(R.MyInternationalizationString.uOther);
|
| | | frameTable.AddBottomView(perName, 600);
|
| | |
|
| | | //时间
|
| | | if (this.dateFromControl.dateValue == this.dateToControl.dateValue)
|
| | | {
|
| | | //如果日期范围一样,则不显示年月日
|
| | | frameTable.AddMostRightView(UserCenterLogic.ConvertUtcTimeToLocalTime(historyInfo.UnlockTime).ToString("HH:mm:ss"), 400);
|
| | | }
|
| | | else
|
| | | {
|
| | | //如果日期范围不一样,则显示年月日
|
| | | frameTable.AddMostRightView(UserCenterLogic.ConvertUtcTimeToLocalTime(historyInfo.UnlockTime).ToString("yyyy/MM/dd HH:mm:ss"), 700);
|
| | | }
|
| | |
|
| | | if (addLine == true)
|
| | | {
|
| | | //底线
|
| | | frameTable.AddBottomLine();
|
| | | }
|
| | | }
|
| | |
|
| | |
| | | //初始化记录列表
|
| | | this.InitLogListInfo(false);
|
| | | };
|
| | | }
|
| | |
|
| | | #endregion
|
| | |
|
| | | #region ■ 筛选记录___________________________
|
| | |
|
| | | /// <summary>
|
| | | /// 筛选历史记录
|
| | | /// </summary>
|
| | | /// <returns></returns>
|
| | | private List<HistoryInfo> ScreeningHistoryData(Dictionary<string, string> dicMemberName)
|
| | | {
|
| | | //历史记录太麻烦了,存在不同的数据库表里,并且数据还不一样,只能这样一个个判断了
|
| | | var listScreeningData = new List<HistoryInfo>();
|
| | | //清除掉之前的记录
|
| | | this.listOtherUserId = new List<string>();
|
| | | this.listOtherMsgId = new List<string>();
|
| | |
|
| | | //是否选择全选用户
|
| | | bool selectAllUser = this.listSearchUserId.Contains("-1");
|
| | | //是否单选了其他
|
| | | bool selectOtherUser = this.listSearchUserId.Contains("-9999");
|
| | | //是否选择全选开锁方式
|
| | | bool selectAllLockMode = this.listSearchLockId.Contains(-1);
|
| | |
|
| | | //一个个去遍历
|
| | | foreach (var data in this.listHistoryInfo)
|
| | | {
|
| | | //检测该历史记录能否显示
|
| | | bool result = this.CheckHistoryDataCanShow(data, dicMemberName, selectAllUser, selectOtherUser, selectAllLockMode);
|
| | | if (result == true)
|
| | | {
|
| | | listScreeningData.Add(data);
|
| | | }
|
| | | }
|
| | |
|
| | | return listScreeningData;
|
| | | }
|
| | |
|
| | | /// <summary>
|
| | | /// 检测该历史记录能否显示
|
| | | /// </summary>
|
| | | /// <param name="info">检测对象</param>
|
| | | /// <param name="dicMemberName">成员信息</param>
|
| | | /// <param name="selectAllUser">是否选择全选用户</param>
|
| | | /// <param name="selectOtherUser">是否单选了其他</param>
|
| | | /// <param name="slectAllLockMode">是否选择全选开锁方式</param>
|
| | | private bool CheckHistoryDataCanShow(HistoryInfo info, Dictionary<string, string> dicMemberName,
|
| | | bool selectAllUser, bool selectOtherUser, bool slectAllLockMode)
|
| | | {
|
| | | //如果没有选择 全选用户
|
| | | if (selectAllUser == false)
|
| | | {
|
| | | //如果这个用户ID不包含在指定选择的成员列表里面
|
| | | if (this.listSearchUserId.Contains(info.CloudAccountId) == false)
|
| | | {
|
| | | if (dicMemberName.ContainsKey(info.CloudAccountId) == true)
|
| | | {
|
| | | //如果能够识别这个id的话,则表示它不属于其他类,并且也不再选择目标内
|
| | | return false;
|
| | | }
|
| | | //如果没有选择 其他的话,不显示
|
| | | if (selectOtherUser == false)
|
| | | {
|
| | | return false;
|
| | | }
|
| | | }
|
| | | }
|
| | | //如果是成员身份,并且用户ID不为空
|
| | | if (UserCenterResourse.UserInfo.AuthorityNo == 3 && info.CloudAccountId != string.Empty)
|
| | | {
|
| | | //成员不能看到 其他人的记录(成员的时候,这个变量里面只有他自己一个)
|
| | | if (dicMemberName.ContainsKey(info.CloudAccountId) == false)
|
| | | {
|
| | | return false;
|
| | | }
|
| | | }
|
| | | //如果没有选择 全选开锁方式
|
| | | if (slectAllLockMode == false)
|
| | | {
|
| | | //如果这个开锁方式不在选择的列表里面的话
|
| | | if (this.listSearchLockId.Contains(info.OpenLockMode) == false)
|
| | | {
|
| | | return false;
|
| | | }
|
| | | }
|
| | |
|
| | | //另一张表的数据主键
|
| | | if (info.OpenLockMode == -1 || info.OpenLockMode == 9000)
|
| | | {
|
| | | if (info.MsgKeyId != string.Empty)
|
| | | {
|
| | | //其他消息的主键,它存在另外的一张数据库表中
|
| | | this.listOtherMsgId.Add(info.MsgKeyId);
|
| | | }
|
| | | }
|
| | | if (info.CloudAccountId != string.Empty && dicMemberName.ContainsKey(info.CloudAccountId) == false
|
| | | && this.listOtherUserId.Contains(info.CloudAccountId) == false)
|
| | | {
|
| | | //无法识别的开锁记录的用户ID(因为那个密码有可能没有分配给成员)
|
| | | this.listOtherUserId.Add(info.CloudAccountId);
|
| | | }
|
| | |
|
| | | return true;
|
| | | }
|
| | |
|
| | | #endregion
|
| | |
| | | }
|
| | |
|
| | | return listLog;
|
| | | }
|
| | |
|
| | | #endregion
|
| | |
|
| | | #region ■ 筛选记录___________________________
|
| | |
|
| | | /// <summary>
|
| | | /// 筛选历史记录
|
| | | /// </summary>
|
| | | /// <returns></returns>
|
| | | private List<HistoryInfo> ScreeningHistoryData(Dictionary<string, string> dicMemberName)
|
| | | {
|
| | | //历史记录太麻烦了,存在不同的数据库表里,并且数据还不一样,只能这样一个个判断了
|
| | | var listScreeningData = new List<HistoryInfo>();
|
| | | //清除掉之前的记录
|
| | | this.listOtherUserId = new List<string>();
|
| | | this.listOtherMsgId = new List<string>();
|
| | |
|
| | | //是否选择全选用户
|
| | | bool selectAllUser = this.listSearchUserId.Contains("-1");
|
| | | //是否单选了其他
|
| | | bool selectOtherUser = this.listSearchUserId.Contains("-9999");
|
| | | //是否选择全选开锁方式
|
| | | bool selectAllLockMode = this.listSearchLockId.Contains(-1);
|
| | |
|
| | | //一个个去遍历
|
| | | foreach (var data in this.listHistoryInfo)
|
| | | {
|
| | | //检测该历史记录能否显示
|
| | | bool result = this.CheckHistoryDataCanShow(data, dicMemberName, selectAllUser, selectOtherUser, selectAllLockMode);
|
| | | if (result == true)
|
| | | {
|
| | | listScreeningData.Add(data);
|
| | | }
|
| | | }
|
| | |
|
| | | return listScreeningData;
|
| | | }
|
| | |
|
| | | /// <summary>
|
| | | /// 检测该历史记录能否显示
|
| | | /// </summary>
|
| | | /// <param name="info">检测对象</param>
|
| | | /// <param name="dicMemberName">成员信息</param>
|
| | | /// <param name="selectAllUser">是否选择全选用户</param>
|
| | | /// <param name="selectOtherUser">是否单选了其他</param>
|
| | | /// <param name="slectAllLockMode">是否选择全选开锁方式</param>
|
| | | private bool CheckHistoryDataCanShow(HistoryInfo info, Dictionary<string, string> dicMemberName,
|
| | | bool selectAllUser, bool selectOtherUser, bool slectAllLockMode)
|
| | | {
|
| | | //如果没有选择 全选用户
|
| | | if (selectAllUser == false)
|
| | | {
|
| | | //如果这个用户ID不包含在指定选择的成员列表里面
|
| | | if (this.listSearchUserId.Contains(info.CloudAccountId) == false)
|
| | | {
|
| | | if (dicMemberName.ContainsKey(info.CloudAccountId) == true)
|
| | | {
|
| | | //如果能够识别这个id的话,则表示它不属于其他类,并且也不再选择目标内
|
| | | return false;
|
| | | }
|
| | | //如果没有选择 其他的话,不显示
|
| | | if (selectOtherUser == false)
|
| | | {
|
| | | return false;
|
| | | }
|
| | | }
|
| | | }
|
| | | //如果是成员身份,并且用户ID不为空
|
| | | if (UserCenterResourse.UserInfo.AuthorityNo == 3 && info.CloudAccountId != string.Empty)
|
| | | {
|
| | | //成员不能看到 其他人的记录(成员的时候,这个变量里面只有他自己一个)
|
| | | if (dicMemberName.ContainsKey(info.CloudAccountId) == false)
|
| | | {
|
| | | return false;
|
| | | }
|
| | | }
|
| | | //如果没有选择 全选开锁方式
|
| | | if (slectAllLockMode == false)
|
| | | {
|
| | | //如果这个开锁方式不在选择的列表里面的话
|
| | | if (this.listSearchLockId.Contains(info.OpenLockMode) == false)
|
| | | {
|
| | | return false;
|
| | | }
|
| | | }
|
| | |
|
| | | //另一张表的数据主键
|
| | | if (info.OpenLockMode == -1 || info.OpenLockMode == 9000)
|
| | | {
|
| | | if (info.MsgKeyId != string.Empty)
|
| | | {
|
| | | //其他消息的主键,它存在另外的一张数据库表中
|
| | | this.listOtherMsgId.Add(info.MsgKeyId);
|
| | | }
|
| | | }
|
| | | if (info.CloudAccountId != string.Empty && dicMemberName.ContainsKey(info.CloudAccountId) == false
|
| | | && this.listOtherUserId.Contains(info.CloudAccountId) == false)
|
| | | {
|
| | | //无法识别的开锁记录的用户ID(因为那个密码有可能没有分配给成员)
|
| | | this.listOtherUserId.Add(info.CloudAccountId);
|
| | | }
|
| | |
|
| | | return true;
|
| | | }
|
| | |
|
| | | #endregion
|
| | |
| | | /// </summary>
|
| | | public string CloudAccountId = string.Empty;
|
| | | /// <summary>
|
| | | /// 其他开锁方式(OpenLockMode=9000时有效) 9001:常开打开 9002:常开取消 9003:常开持续 |
| | | /// </summary>
|
| | | public int OtherOpenLockMode = -1;
|
| | | /// <summary>
|
| | | /// 常开持续时间(1~72小时 OtherOpenLockMode=9003的时候有效)
|
| | | /// </summary>
|
| | | public string NormallyOpenContinuedTime = string.Empty;
|
| | | /// <summary>
|
| | | /// 当开锁方式为-1时使用,它属于其他类
|
| | | /// </summary>
|
| | | public string AlarmMsg = string.Empty;
|
| | |
| | | btnLevel.Y = Application.GetRealHeight(54);
|
| | | btnLevel.TextAlignment = TextAlignment.CenterRight;
|
| | | btnLevel.TextColor = UserCenterColor.Current.TextGrayColor1;
|
| | | btnLevel.Text = "3" + strRank;
|
| | | frameBack.AddChidren(btnLevel);
|
| | |
|
| | | //当前亮度
|
| | |
| | | btnProgress1.Y = Application.GetRealHeight(157);
|
| | | btnProgress1.TextSize = 12;
|
| | | btnProgress1.TextColor = UserCenterColor.Current.TextGrayColor1;
|
| | | btnProgress1.Text = "4";
|
| | | frameBack.AddChidren(btnProgress1);
|
| | |
|
| | | //进度条
|
| | |
| | | seekBar1.ProgressChangedEvent += (div, value) =>
|
| | | {
|
| | | btnProgress1.Text = value.ToString();
|
| | | switch (value) |
| | | { |
| | | case 1: |
| | | linghtLevelInfo.panelDirectionsLevel = 20; |
| | | btnLevel.Text = "1" + strRank; |
| | | break; |
| | | case 2: |
| | | linghtLevelInfo.panelDirectionsLevel = 40; |
| | | btnLevel.Text = "2" + strRank; |
| | | break; |
| | | case 3: |
| | | linghtLevelInfo.panelDirectionsLevel = 60; |
| | | btnLevel.Text = "3" + strRank; |
| | | break; |
| | | case 4: |
| | | linghtLevelInfo.panelDirectionsLevel = 80; |
| | | btnLevel.Text = "4" + strRank; |
| | | break; |
| | | case 5: |
| | | linghtLevelInfo.panelDirectionsLevel = 100; |
| | | btnLevel.Text = "5" + strRank; |
| | | break; |
| | | default: |
| | | linghtLevelInfo.panelDirectionsLevel = 0; |
| | | btnLevel.Text = "0" + strRank; |
| | | break; |
| | | } |
| | | };
|
| | | //seekBar1.Progress = linghtLevelInfo.panelBacklightLevel;
|
| | |
|
| | | if (linghtLevelInfo.panelDirectionsLevel <= 20 && linghtLevelInfo.panelDirectionsLevel > 0) |
| | | { |
| | | btnLevel.Text = "1" + strRank; |
| | | btnProgress1.Text = "1"; |
| | | seekBar1.Progress = 1; |
| | | } |
| | | else if (linghtLevelInfo.panelDirectionsLevel <= 40 && linghtLevelInfo.panelDirectionsLevel > 20) |
| | | { |
| | | btnLevel.Text = "2" + strRank; |
| | | btnProgress1.Text = "2"; |
| | | seekBar1.Progress = 2; |
| | | } |
| | | else if (linghtLevelInfo.panelDirectionsLevel <= 60 && linghtLevelInfo.panelDirectionsLevel > 40) |
| | | { |
| | | btnLevel.Text = "3" + strRank; |
| | | btnProgress1.Text = "3"; |
| | | seekBar1.Progress = 3; |
| | | } |
| | | else if (linghtLevelInfo.panelDirectionsLevel <= 80 && linghtLevelInfo.panelDirectionsLevel > 60) |
| | | { |
| | | btnLevel.Text = "4" + strRank; |
| | | btnProgress1.Text = "4"; |
| | | seekBar1.Progress = 4; |
| | | } |
| | | else if (linghtLevelInfo.panelDirectionsLevel <= 100 && linghtLevelInfo.panelDirectionsLevel > 80) |
| | | { |
| | | btnLevel.Text = "5" + strRank; |
| | | btnProgress1.Text = "5"; |
| | | seekBar1.Progress = 5; |
| | | } |
| | | else |
| | | { |
| | | btnLevel.Text = "0" + strRank; |
| | | btnProgress1.Text = "0"; |
| | | seekBar1.Progress = 0; |
| | | } |
| | |
|
| | | var btnTemp1 = new NormalViewControl(200, 50, true);
|
| | | btnTemp1.X = ControlCommonResourse.XXLeft;
|
| | |
| | | seekBar1.ProgressChangedEvent += (div, value) =>
|
| | | {
|
| | | btnProgress1.Text = value + "%";
|
| | | //数据变更
|
| | | };
|
| | | //seekBar1.Progress = linghtLevelInfo.panelBacklightLevel;
|
| | |
|
| | |
| | | this.ShowProgressBar();
|
| | |
|
| | | //节能模式修改(他们说随便一个回路就行)
|
| | | //设备同事说默认去秒时间,这样接近感应功能才合理
|
| | | //设备同事说默认去1秒时间,这样接近感应功能才合理
|
| | | energyModeInfo.time = 1;
|
| | | var result = await HdlDevicePanelLogic.Current.SetDeviceEnergyConservationMode(panelDevice, energyModeInfo.enable, energyModeInfo.time, energyModeInfo.level);
|
| | | if (result == false)
|
| | |
| | | // return;
|
| | | //}
|
| | | //关闭自身
|
| | | this.CloseForm();
|
| | | }
|
| | |
|
| | | #endregion
|
| | |
|
| | | #region ■ 保存配置___________________________
|
| | |
|
| | | /// <summary>
|
| | | /// 保存配置
|
| | | /// </summary>
|
| | | private void SaveSettionData()
|
| | | {
|
| | | this.CloseForm();
|
| | | }
|
| | |
|
| | |
| | | rowNewWind.AddBottomLine();
|
| | | //右箭头
|
| | | rowNewWind.AddRightArrow();
|
| | | var msg = Language.StringByID(R.MyInternationalizationString.ReshAirRead); |
| | | var msg = Language.StringByID(R.MyInternationalizationString.nothing); |
| | | // 回调新风个数 |
| | | var btnNewWindStatu = rowNewWind.AddMostRightView(msg + 2, 700);
|
| | | var btnNewWindStatu = rowNewWind.AddMostRightView(msg, 700);
|
| | | rowNewWind.ButtonClickEvent += (sender, e) =>
|
| | | {
|
| | | var form = new PanelFangyueFreshAirTargetForm();
|
| | |
| | | {
|
| | | if (listDataRoom.Count > 0)
|
| | | {
|
| | | //初始化房间和设备列表
|
| | | //初始化房间和设备列表 |
| | | this.InitRoomAndDeviceRow(listDataRoom);
|
| | | }
|
| | | else
|
| | |
| | |
|
| | | DeviceSimpleSelectControl oldSelectContr = null;
|
| | | var listDevice = this.dicShowDevice[roomId];
|
| | | //获取设备类型的
|
| | | var deviceEnumInfo = Common.LocalDevice.Current.GetMyDeviceEnumInfo(listDevice);
|
| | | //检查符合的设备
|
| | | List<CommonDevice> listSupportDevice = new List<CommonDevice> { };
|
| | | foreach (var dev in listDevice)
|
| | | {
|
| | | //新风面板的新风设备,则不显示
|
| | | if (deviceEnumInfo.ConcreteType == Common.DeviceConcreteType.ButtonPanel_FangyueFreshAir)
|
| | | {
|
| | | continue;
|
| | | }
|
| | | if (dev.Type == DeviceType.FreshAir)
|
| | | {
|
| | | listSupportDevice.Add(dev);
|
| | | }
|
| | | }
|
| | |
|
| | | DeviceSimpleSelectControl oldDeviceSimpleSelectControl = null;
|
| | | int curIndex = 0;
|
| | | for (int i = 0; i < listSupportDevice.Count; i++)
|
| | | {
|
| | | string mainKey = Common.LocalDevice.Current.GetDeviceMainKeys(listSupportDevice[i]);
|
| | | var contr = new DeviceSimpleSelectControl(listDevice[i], false, this.listView.rowSpace / 2);
|
| | | var contr = new DeviceSimpleSelectControl(listSupportDevice[i], false, this.listView.rowSpace / 2);
|
| | | listView.AddChidren(contr);
|
| | | contr.InitControl();
|
| | | if (i != listDevice.Count - 1)
|
| | | if (i != listSupportDevice.Count - 1)
|
| | | {
|
| | | //底线
|
| | | contr.AddBottomLine();
|
| | | }
|
| | |
|
| | | contr.ButtonClickEvent += (sender, e) =>
|
| | | {
|
| | | contr.IsSelected = !contr.IsSelected;
|
| | | //选择了别的设备
|
| | | if (contr.IsSelected == true)
|
| | | if (contr.IsSelected)
|
| | | {
|
| | | if (oldSelectContr != null)
|
| | | {
|
| | | oldSelectContr.IsSelected = false;
|
| | | }
|
| | | oldSelectContr = contr;
|
| | | this.bindTargetKey = mainKey;
|
| | | return;
|
| | | }
|
| | | //取消选择
|
| | | else
|
| | | {
|
| | | oldSelectContr = null;
|
| | | this.bindTargetKey = string.Empty;
|
| | | }
|
| | | contr.IsSelected = true;
|
| | | oldSelectContr = contr;
|
| | | this.bindTargetKey = mainKey;
|
| | | //contr.IsSelected = !contr.IsSelected;
|
| | | ////选择了别的设备
|
| | | //if (contr.IsSelected == true)
|
| | | //{
|
| | | // if (oldSelectContr != null)
|
| | | // {
|
| | | // oldSelectContr.IsSelected = false;
|
| | | // }
|
| | | // oldSelectContr = contr;
|
| | | // this.bindTargetKey = mainKey;
|
| | | //}
|
| | | ////取消选择
|
| | | //else
|
| | | //{
|
| | | // oldSelectContr = null;
|
| | | // this.bindTargetKey = string.Empty;
|
| | | //}
|
| | | };
|
| | | if (this.bindTargetKey == mainKey)
|
| | | {
|
| | |
| | | var device = Common.LocalDevice.Current.GetDevice(deviceKeys);
|
| | | if (device != null)
|
| | | {
|
| | | canShow = true;
|
| | | //收集可以显示的设备
|
| | | this.dicShowDevice[room.Id].Add(device);
|
| | | if (device.Type == DeviceType.FreshAir)
|
| | | {
|
| | | //canShow = true;// 这个界面不显示房间
|
| | | //收集可以显示的设备
|
| | | this.dicShowDevice[room.Id].Add(device);
|
| | | }
|
| | | }
|
| | |
|
| | |
|
| | | }
|
| | | return canShow;
|
| | | }
|
| | |
| | | }
|
| | | if (tetxValue.Length >= 3)
|
| | | {
|
| | | var msg = Language.StringByID(R.MyInternationalizationString.InvalidTimeMoreThan36);
|
| | | var msg = Language.StringByID(R.MyInternationalizationString.InvalidTimeMoreThan72);
|
| | | var msgContr = new ShowMsgControl(ShowMsgType.Error, msg);
|
| | | msgContr.Show();
|
| | | return false;
|
| | |
| | | msgContr.Show();
|
| | | return false;
|
| | | }
|
| | | if (value > 36)
|
| | | if (value > 72)
|
| | | {
|
| | | var msg = Language.StringByID(R.MyInternationalizationString.InvalidTimeMoreThan36);
|
| | | var msg = Language.StringByID(R.MyInternationalizationString.InvalidTimeMoreThan72);
|
| | | var msgContr = new ShowMsgControl(ShowMsgType.Error, msg);
|
| | | msgContr.Show();
|
| | | return false;
|
| | |
| | | }; |
| | | flMain.AddChidren(progressBackground); |
| | | |
| | | var progressValue = (currentVolume * (Convert.ToInt32(((float)100 / 15) * 100))) / 100; |
| | | //var progressValue = (currentVolume * (Convert.ToInt32(((float)100 / 15) * 100))) / 100; |
| | | progressText = new Button() |
| | | { |
| | | Height = Application.GetRealHeight(58), |
| | | Y = Application.GetRealHeight(89), |
| | | TextColor = ZigbeeColor.Current.XMGray2, |
| | | TextAlignment = TextAlignment.Center, |
| | | Text = progressValue.ToString() + "%", |
| | | Text = currentVolume.ToString() + "%", |
| | | }; |
| | | |
| | | diyImageVerticalSeekBar = new DiyImageVerticalSeekBar() |
| | |
| | | ProgressTextColor = ZigbeeColor.Current.LogicBtnCancelColor, |
| | | ProgressTextSize = 12,//显示百分比字体大小 |
| | | SeekBarViewHeight = Application.GetRealHeight(17),//进度条的宽度 |
| | | Progress = progressValue, |
| | | Progress = currentVolume, |
| | | }; |
| | | progressBackground.AddChidren(progressText); |
| | | progressBackground.AddChidren(diyImageVerticalSeekBar); |
| | | diyImageVerticalSeekBar.OnProgressChangedEvent += (sender, e) => |
| | | { |
| | | int curVolume = -1; |
| | | if (e == 0) |
| | | { |
| | | curVolume = 0; |
| | | } |
| | | else if (e == 100) |
| | | { |
| | | curVolume = 14; |
| | | } |
| | | else |
| | | { |
| | | int comandValue = e; |
| | | int comandValueTemp = (comandValue * 100) / (Convert.ToInt32(((float)100 / 15) * 100)); |
| | | curVolume = comandValueTemp; |
| | | } |
| | | curVolume = e; |
| | | currentVolume = curVolume; |
| | | progressText.Text = e.ToString() + "%"; |
| | | }; |
| | |
| | | var doorLockInValidSetting = Language.StringByID(R.MyInternationalizationString.DoorLockInValidSetting); |
| | | var alertNomallyModeIsTurnOn = new ShowDoorLockMsgControl(ShowDoorLockMsgControl.DoorLockMsgType.DoorLockLogic, msgNomallyModeIsTurnOn, doorLockInValidSetting); |
| | | alertNomallyModeIsTurnOn.Show(); |
| | | alertNomallyModeIsTurnOn.MsgControlClickEvent += async () => |
| | | { |
| | | //默认创建特殊逻辑 |
| | | DoorLockCommonInfo.NormallyOpenModeInvalidTime = 12; |
| | | Shared.Phone.Device.Logic.SkipView.LockAddModifyLogic(DoorLockCommonInfo.NormallyOpenModeInvalidTime, doorLock); |
| | | }; |
| | | |
| | | //点击自动化 |
| | | alertNomallyModeIsTurnOn.LogicClickEvent += () => |
| | | { |
| | | //逻辑调用前记得移除 |
| | | ZbGateway.StatusList.Remove(this); |
| | | //调用逻辑界面 |
| | | Shared.Phone.Device.Logic.SkipView.SkipAddLogic(2, doorLock); |
| | | }; |
| | | alertNomallyModeIsTurnOn.InvalidClickEvent += async () => |
| | |
| | | alert = new ShowDoorLockMsgControl(ShowDoorLockMsgControl.DoorLockMsgType.CancelNomallyOpenModeWithLogic, msg, confirm); |
| | | } |
| | | alert.Show(); |
| | | |
| | | alert.MsgControlClickEvent += async () => |
| | | { |
| | | if (IsFromReport) |
| | | { |
| | | //取消常开 |
| | | //上报“常开模式”已被取消,app默认了“常开模式”被取消 |
| | | NormallyOpenModeValue(false); |
| | | UpdateNomallyOpenStatus(); |
| | | } |
| | | else |
| | | { |
| | | //保持常开 |
| | | //app默认“常开模式”还是开启 |
| | | NormallyOpenModeValue(true); |
| | | UpdateNomallyOpenStatus(); |
| | | } |
| | | }; |
| | | alert.CancelClickEvent += async () => |
| | | { |
| | | //保持常开 |
| | | if (IsFromReport) |
| | | { |
| | | //上报“常开模式”已被取消,app重新开启“常开模式” |
| | | Application.RunOnMainThread(() => { CommonPage.Loading.Start(""); }); |
| | | var result = await doorLock.SetNormallyOpenModeFuncAsync(true); |
| | | if (result == null || result.defaultControlResponseData == null) |
| | |
| | | } |
| | | else |
| | | { |
| | | //保持“常开成功” |
| | | NormallyOpenModeValue(true); |
| | | UpdateNomallyOpenStatus(); |
| | | CommonPage.Loading.Hide(); |
| | |
| | | } |
| | | else |
| | | { |
| | | //app操作不取消“常开模式” |
| | | NormallyOpenModeValue(true); |
| | | UpdateNomallyOpenStatus(); |
| | | } |
| | | }; |
| | | alert.ConfirmClickEvent += async () => |
| | | { |
| | | //确认取消常开 |
| | | if (IsFromReport) |
| | | { |
| | | //上报门锁“常开模式”已经取消,现在app确认“常开模式”取消 |
| | | NormallyOpenModeValue(false); |
| | | UpdateNomallyOpenStatus(); |
| | | } |
| | | else |
| | | { |
| | | //app操作取消“常开模式” |
| | | Application.RunOnMainThread(() => { CommonPage.Loading.Start(""); }); |
| | | var result = await doorLock.SetNormallyOpenModeFuncAsync(false); |
| | | if (result == null || result.defaultControlResponseData == null) |
| | |
| | | {
|
| | | //添加App开启常开模式的历史记录
|
| | | HdlDeviceDoorLockLogic.Current.AddDoorHistoryLog(this.doorLock, 9002, string.Empty); |
| | | |
| | | //app确认取消“常开模式”成功 |
| | | NormallyOpenModeValue(false); |
| | | UpdateNomallyOpenStatus(); |
| | | string msg2 = Language.StringByID(R.MyInternationalizationString.CloseNormallyOpenModeSuccess); |
| | |
| | | }; |
| | | } |
| | | |
| | | ///// <summary> |
| | | /// <summary> |
| | | /// 常开模式失效时间处理 |
| | | /// </summary> |
| | | private void NomallyOpenModeInvalidTimeDialog() |
| | |
| | | alertTimeInValidSetting2.Show(); |
| | | return; |
| | | } |
| | | //常开模式失效时间设置成功 |
| | | var temp = int.Parse(obj); |
| | | DoorLockCommonInfo.NormallyOpenModeInvalidTime = temp; |
| | | Shared.Phone.Device.Logic.SkipView.LockAddModifyLogic(DoorLockCommonInfo.NormallyOpenModeInvalidTime, doorLock); |
| | |
| | | { |
| | | var tempD = new VolumeResponseData(); |
| | | tempD.command = data[10].ToString() + data[11].ToString(); |
| | | tempD.value = Convert.ToInt32(data[13].ToString(), 16); |
| | | tempD.value = Convert.ToInt32(data[12].ToString() + data[13].ToString(), 16); |
| | | result = new VolumeResponseAllData { volumeResponseData = tempD }; |
| | | DebugPrintLog($"UI收到通知后的主题_command:0456_{ topic}"); |
| | | } |
| | |
| | | ///<summary > |
| | | ///音量 |
| | | ///<para>命令值: comandValue</para> |
| | | ///<para>comandValue: 0 静音</para> |
| | | ///<para>comandValue:1 最小音量</para> |
| | | ///<para>comandValue:2~13 音量 </para> |
| | | ///<para>comandValue:14 最大音量</para> |
| | | ///<para>comandValue: 0-0x64 音量</para> |
| | | /// </summary> |
| | | public async System.Threading.Tasks.Task<DefaultControlResponseAllData> SetVolumeAsync(int comandValue) |
| | | { |
| | |
| | | |
| | | /// <summary> |
| | | /// 音量发送数据 |
| | | ///<para>comandValue: 0 静音</para> |
| | | ///<para>comandValue:1 最小音量</para> |
| | | ///<para>comandValue:2~13 音量 </para> |
| | | ///<para>comandValue:14 最大音量</para> |
| | | ///<para>comandValue: 0-100 音量</para> |
| | | /// </summary> |
| | | public string VolumeData(int comandValue) |
| | | { |
| | |
| | | { |
| | | if (comandValue >= 1) |
| | | { |
| | | //comandValue = comandValue * 100; |
| | | //float v = (float)100 / 15; |
| | | //int vv = Convert.ToInt32(v * 100); |
| | | //var comandValueTemp = comandValue / vv; |
| | | //if (comandValueTemp == 0) |
| | | //{ |
| | | // comandValueTemp = 1; |
| | | //} |
| | | cValue = Convert.ToString(comandValue, 16).ToUpper(); |
| | | cValue = "F" + cValue; |
| | | if (cValue.Length == 1) |
| | | { |
| | | cValue = "0" + cValue; |
| | | } |
| | | else |
| | | { |
| | | cValue = cValue; |
| | | } |
| | | |
| | | } |
| | | else |
| | | { |
| | |
| | | /// </summary> |
| | | public const int InvalidTimeIsEmpty = 297; |
| | | /// <summary> |
| | | /// 失效时间不能大于36小时 |
| | | /// 失效时间不能大于72小时 |
| | | /// </summary> |
| | | public const int InvalidTimeMoreThan36 = 298; |
| | | public const int InvalidTimeMoreThan72 = 298; |
| | | /// <summary> |
| | | /// 失效时间不能小于1小时 |
| | | /// </summary> |
| | |
| | | /// 非管理员不能在常开模式下操作 |
| | | /// </summary> |
| | | public const int OnlyMasterOperate = 301; |
| | | /// <summary> |
| | | /// 绑定新风 |
| | | /// </summary> |
| | | public const int BindFreshAirTarget = 302; |
| | | /// <summary> |
| | | /// 温度来源 |
| | | /// </summary> |
| | | public const int TemperatureSource = 303; |
| | | /// <summary> |
| | | /// 湿度来源 |
| | | /// </summary> |
| | | public const int HumiditySource = 304; |
| | | /// <summary> |
| | | /// PM2.5来源 |
| | | /// </summary> |
| | | public const int PM25Source = 305; |
| | | |
| | | |
| | | public readonly static int cancel = 5097; |
| | |
| | | /// 常开模式
|
| | | /// </summary>
|
| | | public const int uNormallyOpenMode = 16090;
|
| | | /// <summary>
|
| | | /// 常开模式手动开启
|
| | | /// </summary>
|
| | | public const int uNormallyOpenModeManualOpen = 16091;
|
| | | /// <summary>
|
| | | /// 常开模式手动取消
|
| | | /// </summary>
|
| | | public const int uNormallyOpenModeManualClose = 16092;
|
| | | /// <summary>
|
| | | /// 常开模式启用{0}小时
|
| | | /// </summary>
|
| | | public const int uNormallyOpenModeOpenSomeTime = 16093;
|
| | |
|
| | |
|
| | | //★★★★下面这些是接口的返回信息翻译,从18000开始★★★★
|
| | | /// <summary>
|
| | |
| | | <Compile Include="$(MSBuildThisFileDirectory)Phone\Login\AccountRegister.cs" />
|
| | | <Compile Include="$(MSBuildThisFileDirectory)Phone\Login\AccountRegisterSuccess.cs" />
|
| | | <Compile Include="$(MSBuildThisFileDirectory)Phone\Login\AccountResetPWDSuccess.cs" />
|
| | | <Compile Include="$(MSBuildThisFileDirectory)Phone\Login\Controls\PhoneEmailSelectControl.cs" />
|
| | | <Compile Include="$(MSBuildThisFileDirectory)Phone\Login\PhoneEmailForm.cs" />
|
| | | <Compile Include="$(MSBuildThisFileDirectory)Phone\Login\PhoneZone.cs" />
|
| | | <Compile Include="$(MSBuildThisFileDirectory)Phone\Device\AC\ACControlBase.cs" />
|