1个文件已添加
1个文件已删除
39个文件已修改
2 文件已重命名
| | |
| | | 16112=虚拟账号 |
| | | 16113=灯全开 |
| | | 16114=灯全关 |
| | | 16115=常开自动化手动取消 |
| | | |
| | | ;★★★★下面这些是接口的返回信息翻译,从18000开始★★★★
|
| | | 18004=指定网关已经被绑定
|
| | |
| | | 40015=插座 |
| | | 40016=灯光 |
| | | 40017=干接点 |
| | | 40018=新风 |
| | | |
| | | ;★★★★下面这些是模块ID的设备默认备注名字,从50000开始.注:它并不需要再R.cs文件中定义★★★★
|
| | | 50000=紧急按钮
|
| | |
| | | 231=接近感应 |
| | | 232=接近感应功能设置置失败 |
| | | 233=获取接近感应功能失败 |
| | | 235=按住面板模式(Mode)和风速(Fan)按键{0}绿色指示灯亮起。则配网成功 |
| | | ;三按键面板入网操作指示 |
| | | 235=按住面板模式(Mode)和风速(Fan)按键{0}绿色指示灯亮起。则配网成功 |
| | | 236=绿色指示灯闪烁 |
| | | 237=指示灯 |
| | | 238=长按5秒(按键) |
| | | 239=长按图示按键5秒以上,指示灯变绿、闪烁{0}进入配网状态。绿灯熄灭则配网成功 |
| | | ;三按键面板入网操作指示 |
| | | 239=长按图示按键5秒以上,指示灯变绿、闪烁{0}进入配网状态。绿灯熄灭则配网成功 |
| | | 241=设置常开模式后,您的门锁将始终{0}处于打开状态,确认开启? |
| | | 242=电量 |
| | | 243=常开模式已开启 |
| | |
| | | 309=时效性常开删除失败,继续“常开模式”请前往门锁用户界面设置; |
| | | 310=请输入合法的数字 |
| | | 311=手动 |
| | | 312=背光灯颜色 |
| | | 312= 背光灯颜色 |
| | | |
| | | 5097=取消 |
| | | 5098=确定 |
| | |
| | | 16112=虚拟账号 |
| | | 16113=灯全开 |
| | | 16114=灯全关 |
| | | 16115=常开自动化手动取消 |
| | | |
| | | ;★★★★下面这些是接口的返回信息翻译,从18000开始★★★★ |
| | | 18004=指定网关已经被绑定 |
| | |
| | | 40015=插座 |
| | | 40016=灯光 |
| | | 40017=干接点 |
| | | 40018=新风 |
| | | |
| | | ;★★★★下面这些是模块ID的设备默认备注名字,从50000开始.注:它并不需要再R.cs文件中定义★★★★ |
| | | 50000=紧急按钮 |
| | |
| | | /// <summary> |
| | | /// 版本号 |
| | | /// </summary> |
| | | public static string CodeIDString = "1.0.20042701"; |
| | | public static string CodeIDString = "1.0.20042801"; |
| | | /// <summary> |
| | | /// 注册来源(0:HDL On 1:Zigbee) |
| | | /// </summary> |
| | |
| | | Config.Instance.Save();
|
| | | CommonPage.Instance.RemoveAll();
|
| | | CommonPage.Instance.Show();
|
| | | var login = new Phone.Login.AccountLogin();
|
| | | var login = new Phone.Login.AccountLoginForm();
|
| | | CommonPage.Instance.AddChidren(login);
|
| | | login.ShowForm();
|
| | | });
|
old mode 100755
new mode 100644
| | |
| | | {
|
| | | CommonDevice device = null;
|
| | | //反序列化为指定的类,不然数据会丢失而导致无法强转
|
| | | try |
| | | try |
| | | {
|
| | | device = CommonDevice.CommonDeviceByFilePath(file);
|
| | | }
|
| | |
| | | list.Add(DeviceBeloneType.A插座);
|
| | | list.Add(DeviceBeloneType.A调光器);
|
| | | list.Add(DeviceBeloneType.A窗帘);
|
| | | list.Add(DeviceBeloneType.A新风);
|
| | | list.Add(DeviceBeloneType.A空调);
|
| | | list.Add(DeviceBeloneType.A继电器);
|
| | | list.Add(DeviceBeloneType.A干接点);
|
| | |
| | | list.Add(DeviceBeloneType.A传感器);
|
| | |
|
| | | //其他的看着办呗,都是排在后面的,都归为这个属性
|
| | | list.Add(DeviceBeloneType.A未知设备);
|
| | | |
| | | list.Add(DeviceBeloneType.A未知设备); |
| | | |
| | | return list;
|
| | | }
|
| | |
|
| | |
| | | this.dicDeviceModelIdEnum["MSS01/M-ZB.10"] = "1302-1300-60000";//烟雾传感器
|
| | | this.dicDeviceModelIdEnum["MSPIR01/M-ZB.10"] = "1303-1300-60000";//红外传感器
|
| | | this.dicDeviceModelIdEnum["MSW01/M-ZB.10"] = "1304-1300-60000";//水浸传感器
|
| | | this.dicDeviceModelIdEnum["MBU01/M-ZB.10"] = "1305-1300-60000";//紧急按键
|
| | | this.dicDeviceModelIdEnum["MBU01/M-ZB.10"] = "1305-1300-60000";//紧急按键DZ_PM100-V1.6
|
| | |
|
| | | this.dicDeviceModelIdEnum["MSW01/M-ZB.10"] = "1306-1300-60000";//水浸传感器
|
| | |
|
| | | //=========★★继电器类(2300-2499)★★=========
|
| | | this.dicDeviceModelIdEnum["MPR0310-ZB.10"] = "2300-2300-60001";//3路继电器小模块
|
| | |
| | | /// <summary>
|
| | | /// 方悦新风小模块 镜像id:2310
|
| | | /// </summary>
|
| | | Relay_FangyueFreshAirModul = 2310,
|
| | | |
| | | //=========★★调光器类(2500-2799)★★=========
|
| | | Relay_FangyueFreshAirModul = 2310, |
| | | |
| | | //=========★★调光器类(2500-2799)★★========= |
| | | /// <summary>
|
| | | /// 调光器
|
| | | /// </summary>
|
| | |
| | | /// </summary>
|
| | | A继电器 = 2300,
|
| | | /// <summary>
|
| | | /// 新风
|
| | | /// </summary>
|
| | | A新风 = 2310,
|
| | | /// <summary>
|
| | | /// 调光器(2500-2799)
|
| | | /// </summary>
|
| | | A调光器 = 2500,
|
| | |
| | | /// 干接点
|
| | | /// </summary>
|
| | | A干接点 = 16,
|
| | | /// <summary>
|
| | | /// 新风
|
| | | /// </summary>
|
| | | A新风 = 17
|
| | | }
|
| | |
|
| | | #endregion
|
File was renamed from ZigbeeApp/Shared/Phone/Login/AccountLogin.cs |
| | |
| | | /// <summary>
|
| | | /// 登录界面
|
| | | /// </summary>
|
| | | public class AccountLogin : FrameLayoutBase
|
| | | public class AccountLoginForm : FrameLayoutBase
|
| | | {
|
| | | #region ■ 变量声明___________________________
|
| | |
|
| | |
| | | //未登录成功弹出登录界面 同时需要标记为未登录状态
|
| | | Config.Instance.LoginDateTime = new DateTime(1970, 1, 1);
|
| | | Config.Instance.Save();
|
| | | var login = new AccountLogin();
|
| | | var login = new AccountLoginForm();
|
| | | CommonPage.Instance.AddChidren(login);
|
| | | login.ShowForm(account);
|
| | | });
|
| | |
| | | } |
| | | finally |
| | | { |
| | | var login = new AccountLogin(); |
| | | var login = new AccountLoginForm(); |
| | | CommonPage.Instance.AddChidren(login); |
| | | login.ShowForm(); |
| | | } |
File was renamed from ZigbeeApp/Shared/Phone/Login/AccountLogic.cs |
| | |
| | | }; |
| | | var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject(requestObj); |
| | | var revertObj = await RequestHttpsZigbeeAsync("ProcessRange/ReceiveAppLatAndLon", System.Text.Encoding.UTF8.GetBytes(requestJson)); |
| | | //if (revertObj.StateCode.ToUpper() == "SUCCESS") |
| | | //{ |
| | | // System.Console.WriteLine("上传位置成功" + lat + lon); |
| | | //} |
| | | } |
| | | catch { } |
| | | } |
old mode 100755
new mode 100644
| | |
| | | { |
| | | if (!btnManual.IsSelected) |
| | | { |
| | | this.SetFanComand(7); |
| | | this.SetFanComand(15); |
| | | } |
| | | }; |
| | | |
| | |
| | | ///3:High |
| | | ///4:On |
| | | ///5:Auto |
| | | /// 7:Manual |
| | | /// 15:Manual |
| | | /// </summary>
|
| | | private void SetFanComand(int command)
|
| | | {
|
| | |
| | | case 5: |
| | | FreshAirDev.SetAuto(); |
| | | break; |
| | | case 7: |
| | | case 15: |
| | | FreshAirDev.SetManual(); |
| | | break; |
| | | } |
| | |
| | | this.listControl[2].IsBold = false; |
| | | this.listControl[3].Visible = false; |
| | | }
|
| | | else if (FreshAirDev.currentFanMode == 7)
|
| | | else if (FreshAirDev.currentFanMode == 15)
|
| | | {
|
| | | this.listControl[0].TextColor = ZigbeeColor.Current.XMGray3; |
| | | this.listControl[0].IsBold = false; |
New file |
| | |
| | | using System; |
| | | using Shared.Phone.UserCenter; |
| | | using ZigBee.Device; |
| | | namespace Shared.Phone.MainPage.Controls |
| | | { |
| | | /// <summary>
|
| | | /// 新风卡片的控件
|
| | | /// </summary> |
| | | public class DeviceFreshAirCardControl : DeviceCardCommon |
| | | { |
| | | #region ■ 初始化_____________________________
|
| | | |
| | | /// <summary>
|
| | | /// 初始化控件
|
| | | /// </summary>
|
| | | /// <param name="i_device"></param>
|
| | | public override void InitControl(CommonDevice i_device)
|
| | | {
|
| | | base.InitControl(i_device);
|
| | |
|
| | | //添加跳转深度卡片信息事件
|
| | | this.AddDetailInfoEvent(i_device);
|
| | |
|
| | | //添加开关控件
|
| | | var btnSwitch = this.AddSwitchControl();
|
| | | btnSwitch.ButtonClickEvent += (sender, e) =>
|
| | | {
|
| | | //如果住宅为虚拟住宅
|
| | | if (Common.Config.Instance.Home.IsVirtually == true)
|
| | | {
|
| | | //直接变更缓存
|
| | | ((FreshAir)i_device).currentFanStatus = btnSwitch.IsSelected == true ? 4 : 0;
|
| | | this.RefreshControlInfo(this.device);
|
| | | return;
|
| | | }
|
| | |
|
| | | bool setStatu = !btnSwitch.IsSelected;
|
| | | //变更卡片状态
|
| | | this.SetCardOpenStatu(setStatu);
|
| | | //检测是否获取网关反馈的结果,如果网关没有回复,则会弹出消息
|
| | | this.StartCheckResponeResult(!setStatu);
|
| | |
|
| | | if (setStatu == true)
|
| | | {
|
| | | //打开
|
| | | this.SetDeviceStatuText(Language.StringByID(R.MyInternationalizationString.uOpen1));
|
| | | (i_device as FreshAir).Open();
|
| | | }
|
| | | else
|
| | | {
|
| | | //关闭
|
| | | this.SetDeviceStatuText(Language.StringByID(R.MyInternationalizationString.Close));
|
| | | (i_device as FreshAir).Close();
|
| | | }
|
| | | };
|
| | | }
|
| | |
|
| | | #endregion
|
| | |
|
| | | #region ■ 深度卡片信息_______________________
|
| | |
|
| | | /// <summary>
|
| | | /// 添加跳转深度卡片信息事件
|
| | | /// </summary>
|
| | | private void AddDetailInfoEvent(CommonDevice i_device)
|
| | | {
|
| | | //深度卡片信息
|
| | | this.ButtonClickEvent += (sender, e) =>
|
| | | {
|
| | | Common.CommonPage.Instance.IsDrawerLockMode = true; |
| | | |
| | | //新风类型的深度卡片界面 |
| | | var form = new MainPage.ControlForm.DeviceFreshAirDetailCardForm();
|
| | | form.AddForm(i_device, HdlRoomLogic.Current.CurrentRoom, 965, 1374);
|
| | | form.FormCloseEvent += this.CardDetailInfoBackEvent;
|
| | | };
|
| | | }
|
| | |
|
| | | #endregion
|
| | |
|
| | | #region ■ 检测设备打开状态___________________
|
| | |
|
| | | /// <summary>
|
| | | /// 检测设备打开状态
|
| | | /// </summary>
|
| | | /// <param name="i_device"></param>
|
| | | /// <returns></returns>
|
| | | public override bool CheckIsOpenStatu(CommonDevice i_device)
|
| | | {
|
| | | return ((FreshAir)i_device).currentFanStatus != 0;
|
| | | }
|
| | |
|
| | | #endregion
|
| | |
|
| | | #region ■ 发送获取状态命令___________________
|
| | |
|
| | | /// <summary>
|
| | | /// 发送获取状态命令
|
| | | /// </summary>
|
| | | public override void SendStatuComand()
|
| | | {
|
| | | if (Common.Config.Instance.Home.IsVirtually == true)
|
| | | {
|
| | | //如果住宅为虚拟住宅,则此功能无效
|
| | | return;
|
| | | }
|
| | | //检测能否发送获取状态命令
|
| | | if (this.CheckCanSendStatuComand() == true)
|
| | | {
|
| | | HdlDeviceAttributeLogic.Current.SendACStatuComand(this.device);
|
| | | }
|
| | | }
|
| | |
|
| | | #endregion
|
| | | }
|
| | | } |
| | |
| | | /// </summary>
|
| | | private void AddFunctionTypeRowByAdmin(NormalViewControl btnBelongType)
|
| | | {
|
| | | //如果是继电器,空气开关,调光器的话
|
| | | if (device.Type == DeviceType.OnOffOutput || device.Type == DeviceType.DimmableLight
|
| | | || device.Type == DeviceType.ColorDimmableLight || device.Type == DeviceType.AirSwitch)
|
| | | //自定义功能类型控件
|
| | | var rowFunction = new DeviceFunctionTypeRowControl(device, listview.rowSpace / 2);
|
| | | if (rowFunction.CanShowRow == true)
|
| | | {
|
| | | //功能类型的翻译名字
|
| | | int nowSelectNo = 1;
|
| | | string strType = string.Empty;
|
| | | if (this.device.DfunctionType == DeviceFunctionType.A灯光)
|
| | | {
|
| | | strType = Language.StringByID(R.MyInternationalizationString.uLight);
|
| | | nowSelectNo = 1;
|
| | | }
|
| | | else if (this.device.DfunctionType == DeviceFunctionType.A开关)
|
| | | {
|
| | | strType = Language.StringByID(R.MyInternationalizationString.uSwitch);
|
| | | nowSelectNo = 0;
|
| | | }
|
| | | else if (this.device.DfunctionType == DeviceFunctionType.A插座)
|
| | | {
|
| | | strType = Language.StringByID(R.MyInternationalizationString.uSocket1);
|
| | | nowSelectNo = 2;
|
| | | }
|
| | | //功能类型
|
| | | var btnFunction = new FrameCaptionViewControl(Language.StringByID(R.MyInternationalizationString.uFunctionType), strType, listview.rowSpace / 2);
|
| | | btnFunction.UseClickStatu = false;
|
| | | listview.AddChidren(btnFunction);
|
| | | btnFunction.InitControl();
|
| | | listview.AddChidren(rowFunction);
|
| | | rowFunction.InitControl();
|
| | | //底线
|
| | | btnFunction.AddBottomLine();
|
| | | //如果是空气开关和继电器,才能修改
|
| | | if (device.Type == DeviceType.OnOffOutput || device.Type == DeviceType.AirSwitch)
|
| | | rowFunction.AddBottomLine();
|
| | | rowFunction.FinishSelectEvent += (index) =>
|
| | | {
|
| | | //右箭头
|
| | | btnFunction.AddRightArrow();
|
| | | btnFunction.ButtonClickEvent += (sender, e) =>
|
| | | {
|
| | | //显示列表
|
| | | var listText = new List<string>();
|
| | | listText.Add(Language.StringByID(R.MyInternationalizationString.uSwitch));//开关
|
| | | listText.Add(Language.StringByID(R.MyInternationalizationString.uLight));//灯光
|
| | | listText.Add(Language.StringByID(R.MyInternationalizationString.uSocket1));//插座
|
| | | //标题:选择功能类型
|
| | | var title = Language.StringByID(R.MyInternationalizationString.uSelectFunctionType);
|
| | |
|
| | | var form = new BottomItemSelectForm();
|
| | | form.SelectRowCanCancel = false;//选择的不能取消
|
| | | form.AddForm(title, listText, nowSelectNo);
|
| | | form.FinishSelectEvent += (selectNo) =>
|
| | | {
|
| | | btnFunction.Text = listText[selectNo];
|
| | | //当类型变更时,头上的类型也一起变更
|
| | | btnBelongType.Text = listText[selectNo];
|
| | | nowSelectNo = selectNo;
|
| | | //记录起当前选择的功能类型
|
| | | if (selectNo == 0)
|
| | | {
|
| | | this.device.DfunctionType = DeviceFunctionType.A开关;
|
| | | if (this.device.IsCustomizeImage == false)
|
| | | {
|
| | | //重新设置图片
|
| | | this.device.IconPath = "Device/Switch.png";
|
| | | }
|
| | | }
|
| | | else if (selectNo == 1)
|
| | | {
|
| | | this.device.DfunctionType = DeviceFunctionType.A灯光;
|
| | | if (this.device.IsCustomizeImage == false)
|
| | | {
|
| | | //重新设置图片
|
| | | this.device.IconPath = "Device/Light.png";
|
| | | }
|
| | | }
|
| | | else
|
| | | {
|
| | | this.device.DfunctionType = DeviceFunctionType.A插座;
|
| | | if (this.device.IsCustomizeImage == false)
|
| | | {
|
| | | //重新设置图片
|
| | | this.device.IconPath = "Device/Socket1.png";
|
| | | }
|
| | | }
|
| | | this.device.ReSave();
|
| | | };
|
| | | };
|
| | | }
|
| | | }
|
| | |
|
| | | //如果是新风
|
| | | if (device.Type == DeviceType.FreshAir)
|
| | | {
|
| | | //功能类型
|
| | | string caption = Language.StringByID(R.MyInternationalizationString.uFunctionType);
|
| | | string strType = Language.StringByID(R.MyInternationalizationString.FreshAir);
|
| | | var btnFunction = new FrameCaptionViewControl(caption, strType, listview.rowSpace / 2);
|
| | | btnFunction.UseClickStatu = false;
|
| | | listview.AddChidren(btnFunction);
|
| | | btnFunction.InitControl();
|
| | | //底线
|
| | | btnFunction.AddBottomLine();
|
| | | //当类型变更时,头上的类型也一起变更
|
| | | btnBelongType.Text = rowFunction.Text;
|
| | | };
|
| | | }
|
| | | }
|
| | |
|
| | |
| | | /// </summary>
|
| | | private void AddFunctionTypeRowByMember()
|
| | | {
|
| | | //如果是继电器,空气开关,调光器的话
|
| | | if (device.Type == DeviceType.OnOffOutput || device.Type == DeviceType.DimmableLight
|
| | | || device.Type == DeviceType.ColorDimmableLight || device.Type == DeviceType.AirSwitch)
|
| | | //自定义功能类型控件
|
| | | var rowFunction = new DeviceFunctionTypeRowControl(device, listview.rowSpace / 2);
|
| | | if (rowFunction.CanShowRow == true)
|
| | | {
|
| | | //功能类型的翻译名字
|
| | | string strType = string.Empty;
|
| | | if (this.device.DfunctionType == DeviceFunctionType.A灯光)
|
| | | {
|
| | | strType = Language.StringByID(R.MyInternationalizationString.uLight);
|
| | | }
|
| | | else if (this.device.DfunctionType == DeviceFunctionType.A开关)
|
| | | {
|
| | | strType = Language.StringByID(R.MyInternationalizationString.uSwitch);
|
| | | }
|
| | | else if (this.device.DfunctionType == DeviceFunctionType.A插座)
|
| | | {
|
| | | strType = Language.StringByID(R.MyInternationalizationString.uSocket1);
|
| | | }
|
| | |
|
| | | //功能类型
|
| | | var btnFunction = new FrameCaptionViewControl(Language.StringByID(R.MyInternationalizationString.uFunctionType), strType, listview.rowSpace / 2);
|
| | | btnFunction.UseClickStatu = false;
|
| | | listview.AddChidren(btnFunction);
|
| | | btnFunction.InitControl();
|
| | | //强制干涉不能选择
|
| | | rowFunction.SetCanSelect = false;
|
| | | listview.AddChidren(rowFunction);
|
| | | rowFunction.InitControl();
|
| | | //底线
|
| | | btnFunction.AddBottomLine();
|
| | | rowFunction.AddBottomLine();
|
| | | }
|
| | | }
|
| | |
|
old mode 100755
new mode 100644
| | |
| | | {
|
| | | cardContr = new Controls.DeviceAcCardControl();
|
| | | }
|
| | | //新风
|
| | | else if (device.Type == DeviceType.FreshAir)
|
| | | {
|
| | | cardContr = new Controls.DeviceFreshAirCardControl();
|
| | | }
|
| | | //彩灯(调光器)
|
| | | else if (device.Type == DeviceType.DimmableLight)
|
| | | {
|
| | |
| | | {
|
| | | //空调是特殊的,它的开关是属性上报来着.已经接收到网关的反馈
|
| | | this.dicDeviceCardControl[mainKeys].SetHadGetResponeResultStatu();
|
| | | } |
| | | if (report.DeviceStatusReport.CluterID == 514 && report.DeviceStatusReport.AttriBute[0].AttributeId == 0)
|
| | | {
|
| | | //新风是特殊的,它的开关是属性上报来着.已经接收到网关的反馈
|
| | | this.dicDeviceCardControl[mainKeys].SetHadGetResponeResultStatu();
|
| | | }
|
| | | this.dicDeviceCardControl[mainKeys].RefreshControlInfo(locadevice);
|
| | | }
|
| | |
| | |
|
| | | #endregion
|
| | |
|
| | | #region ■ 重写彪哥的属性_____________________
|
| | |
|
| | | /// <summary>
|
| | | /// 重写Text属性
|
| | | /// </summary>
|
| | | public new string Text
|
| | | {
|
| | | //先这么弄先吧
|
| | | get { return base.Text == null ? string.Empty : base.Text; }
|
| | | set
|
| | | {
|
| | | base.Text = value == null ? string.Empty : value;
|
| | | }
|
| | | }
|
| | |
|
| | | #endregion
|
| | |
|
| | | #region ■ 初始化_____________________________
|
| | |
|
| | | /// <summary>
|
| | |
| | | this.BindChidrenEvent(view, chidrenBindMode);
|
| | | }
|
| | |
|
| | | /// <summary>
|
| | | /// 添加子控件
|
| | | /// </summary>
|
| | | /// <param name="view"></param>
|
| | | public override void AddChidren(View view)
|
| | | {
|
| | | this.AddChidren(view, ChidrenBindMode.NotBind);
|
| | | }
|
| | |
|
| | | #endregion
|
| | |
|
| | | #region ■ 控件事件___________________________
|
| | |
| | | /// <summary>
|
| | | /// 做成一个列表型的FrameLayout(它与VerticalListControl同一性质,但是它是FrameLayout,它会改变高度)
|
| | | /// </summary>
|
| | | public class FrameListControl : FrameLayout
|
| | | public class FrameListControl : FrameLayoutBase
|
| | | {
|
| | | /// <summary>
|
| | | /// 行之间的间距
|
old mode 100755
new mode 100644
| | |
| | | #region ■ 变量声明___________________________
|
| | |
|
| | | /// <summary>
|
| | | /// 判断该控件能否显示(最好确保设备对象不为null)
|
| | | /// 结束选择的事件 value:索引(从0开始) 文本信息请用Text获取
|
| | | /// </summary>
|
| | | public Action<int> FinishSelectEvent = null;
|
| | | /// <summary>
|
| | | /// 判断该控件能否显示
|
| | | /// </summary>
|
| | | public bool CanShowRow
|
| | | {
|
| | | get { return this.CheckCanShowRow(); }
|
| | | }
|
| | |
|
| | | private bool m_SetCanSelect = true;
|
| | | /// <summary>
|
| | | /// 强制设置能否进行选择(只对继电器和空气开关有效,个别界面需要这种操作)
|
| | | /// </summary>
|
| | | public bool SetCanSelect
|
| | | {
|
| | | set |
| | | {
|
| | | m_SetCanSelect = value;
|
| | | }
|
| | | }
|
| | | /// <summary>
|
| | | /// 设备对象
|
| | |
| | | #region ■ 初始化_____________________________
|
| | |
|
| | | /// <summary>
|
| | | /// 设备功能类型的自定义行控件(此方法选择之后,无条件直接变更类型)
|
| | | /// 设备功能类型的自定义行控件(选择功能之后,无条件直接变更类型)
|
| | | /// </summary>
|
| | | /// <param name="i_device">设备的对象</param>
|
| | | /// <param name="i_ChidrenYaxis">子控件Y轴偏移量(真实值,有些界面需要这种特殊操作)</param>
|
| | |
| | | //初始化底层数据
|
| | | base.InitControl();
|
| | |
|
| | | if (this.device == null)
|
| | | {
|
| | | //此控件采用的是另外一种初始化方式
|
| | | return;
|
| | | }
|
| | |
|
| | | //空气开关和继电器可以选择功能类型
|
| | | if (this.device.Type == DeviceType.AirSwitch
|
| | | || this.device.Type == DeviceType.OnOffOutput)
|
| | | {
|
| | | this.UseClickStatu = true;
|
| | | //右箭头
|
| | | this.AddRightArrow();
|
| | |
|
| | | this.ButtonClickEvent += (sender, e) =>
|
| | | //没被强制干涉的话
|
| | | if (m_SetCanSelect == true)
|
| | | {
|
| | | //显示选择设备功能类型的界面
|
| | | this.ShowSelectDeviceFunctionListForm();
|
| | | };
|
| | | this.UseClickStatu = true;
|
| | | //右箭头
|
| | | this.AddRightArrow();
|
| | |
|
| | | this.ButtonClickEvent += (sender, e) =>
|
| | | {
|
| | | //显示选择设备功能类型的界面
|
| | | this.ShowSelectDeviceFunctionListForm();
|
| | | };
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | |
| | |
|
| | | //记录起当前选择的功能类型
|
| | | this.RefreshDfunctionType();
|
| | |
|
| | | //调用回调函数
|
| | | this.FinishSelectEvent?.Invoke(nowSelectNo);
|
| | | };
|
| | | }
|
| | | #endregion
|
| | |
| | | //标题:功能类型
|
| | | this.btnCaption.Text = Language.StringByID(R.MyInternationalizationString.uFunctionType);
|
| | |
|
| | | var myFunType = DeviceFunctionType.A未定义;
|
| | | if (this.device != null)
|
| | | {
|
| | | myFunType = this.device.DfunctionType;
|
| | | }
|
| | |
|
| | | var myFunType = this.device.DfunctionType;
|
| | | //功能类型的翻译名字
|
| | | string strType = string.Empty;
|
| | | if (myFunType == DeviceFunctionType.A灯光)
|
| | |
| | | nowSelectNo = 2;
|
| | | }
|
| | |
|
| | | //如果设备不为null
|
| | | if (this.device != null)
|
| | | if (this.device.Type == DeviceType.ColorDimmableLight
|
| | | || this.device.Type == DeviceType.DimmableLight)
|
| | | {
|
| | | if (this.device.Type == DeviceType.ColorDimmableLight
|
| | | || this.device.Type == DeviceType.DimmableLight)
|
| | | {
|
| | | //灯光类固定为 灯光
|
| | | strType = Language.StringByID(R.MyInternationalizationString.uLight);
|
| | | nowSelectNo = 1;
|
| | | }
|
| | | else if (this.device.Type == DeviceType.WindowCoveringDevice)
|
| | | {
|
| | | //窗帘固定为 遮阳
|
| | | strType = Language.StringByID(R.MyInternationalizationString.uDeviceBelongId100);
|
| | | nowSelectNo = -1;
|
| | | }
|
| | | else if (this.device.Type == DeviceType.Thermostat)
|
| | | {
|
| | | //空调固定为 空调
|
| | | strType = Language.StringByID(R.MyInternationalizationString.uDeviceBelongId3600);
|
| | | nowSelectNo = -1;
|
| | | }
|
| | | else if (this.device.Type == DeviceType.DoorLock)
|
| | | {
|
| | | //门锁固定为 门锁
|
| | | strType = Language.StringByID(R.MyInternationalizationString.uDeviceBelongId2800);
|
| | | nowSelectNo = -1;
|
| | | }
|
| | | //灯光类固定为 灯光
|
| | | strType = Language.StringByID(R.MyInternationalizationString.uLight);
|
| | | nowSelectNo = 1;
|
| | | }
|
| | | else if (this.device.Type == DeviceType.WindowCoveringDevice)
|
| | | {
|
| | | //窗帘固定为 遮阳
|
| | | strType = Language.StringByID(R.MyInternationalizationString.uDeviceBelongId100);
|
| | | nowSelectNo = -1;
|
| | | }
|
| | | else if (this.device.Type == DeviceType.Thermostat)
|
| | | {
|
| | | //空调固定为 空调
|
| | | strType = Language.StringByID(R.MyInternationalizationString.uDeviceBelongId3600);
|
| | | nowSelectNo = -1;
|
| | | }
|
| | | else if (this.device.Type == DeviceType.DoorLock)
|
| | | {
|
| | | //门锁固定为 门锁
|
| | | strType = Language.StringByID(R.MyInternationalizationString.uDeviceBelongId2800);
|
| | | nowSelectNo = -1;
|
| | | }
|
| | | else if (this.device.Type == DeviceType.FreshAir)
|
| | | {
|
| | | //新风固定为 新风
|
| | | strType = Language.StringByID(R.MyInternationalizationString.FreshAir);
|
| | | nowSelectNo = -1;
|
| | | }
|
| | |
|
| | | //显示文本
|
| | | this.txtView.Text = strType;
|
| | | }
|
| | |
| | | || this.device.Type == DeviceType.DoorLock//门锁
|
| | | || this.device.Type == DeviceType.OnOffOutput//继电器
|
| | | || this.device.Type == DeviceType.Thermostat//空调
|
| | | || this.device.Type == DeviceType.FreshAir//新风
|
| | | || this.device.Type == DeviceType.WindowCoveringDevice)//窗帘
|
| | | {
|
| | | return true;
|
| | |
| | |
|
| | | #endregion
|
| | |
|
| | | #region ■ 控件摧毁___________________________
|
| | |
|
| | | /// <summary>
|
| | | /// 控件摧毁
|
| | | /// </summary>
|
| | | public override void RemoveFromParent()
|
| | | {
|
| | | this.FinishSelectEvent = null;
|
| | |
|
| | | base.RemoveFromParent();
|
| | | }
|
| | |
|
| | | #endregion
|
| | |
|
| | | #region ■ 一般方法___________________________
|
| | |
|
| | | /// <summary>
|
| | |
| | | /// 添加历史记录
|
| | | /// </summary>
|
| | | /// <param name="i_doorLock">门锁对象</param>
|
| | | /// <param name="OtherOpenLockMode">其他开锁方式 9001:常开打开 9002:常开取消 9003:常开持续</param>
|
| | | /// <param name="OtherOpenLockMode">其他开锁方式 9001:常开打开 9002:常开取消 9003:常开持续 9004:常开自动化手动取消</param>
|
| | | /// <param name="NormallyOpenContinuedTime">常开持续时间(1~72小时 OtherOpenLockMode=9003的时候有效)</param>
|
| | | public void AddDoorHistoryLog(ZigBee.Device.DoorLock i_doorLock, int OtherOpenLockMode, string NormallyOpenContinuedTime)
|
| | | {
|
old mode 100755
new mode 100644
| | |
| | | public async Task<bool> SetPanelEpointColorInfo(Panel panel, Panel.KeyColorData colorData)
|
| | | {
|
| | | var keyNum = new Panel.KeyNumStatus();
|
| | | Type type = keyNum.GetType();
|
| | | Type type = keyNum.GetType(); |
| | | type.InvokeMember("Key" + panel.DeviceEpoint, System.Reflection.BindingFlags.SetField, null, keyNum, new object[] { true });
|
| | |
|
| | | var result = await panel.SetPanelColorInfoAsync(colorData, keyNum);
|
| | |
| | | //备份设备
|
| | | await HdlGatewayLogic.Current.UpLoadDeviceBackupDataToGateway(panel, GatewayBackupEnum.A干接点颜色调节, colorData);
|
| | | return true;
|
| | | }
|
| | |
|
| | | } |
| | | |
| | | /// <summary>
|
| | | /// 设置面板颜色
|
| | | /// </summary>
|
| | | /// <param name="panel">按键面板的</param>
|
| | | /// <param name="colorData">只设置开的颜色</param>
|
| | | /// <returns></returns>
|
| | | public async Task<bool> SetPanelColorInfo(Panel panel, Panel.KeyColorData colorData)
|
| | | {
|
| | | var keyNum = new Panel.KeyNumStatus();
|
| | | //默认第一个用面板第一个按键颜色作为整个面板的颜色
|
| | | keyNum.Key1 = true;
|
| | | var result = await panel.SetPanelColorInfoAsync(colorData, keyNum);
|
| | | if (result == null || result.responseData == null)
|
| | | {
|
| | | //设置按键面板指示灯颜色失败
|
| | | string msg = Language.StringByID(R.MyInternationalizationString.uSetPanelPilolightSettionFail);
|
| | | this.ShowErrorMsg(msg);
|
| | | return false;
|
| | | }
|
| | | if (result.responseData.status != 0)
|
| | | {
|
| | | //设置按键面板指示灯颜色失败
|
| | | string msg = Language.StringByID(R.MyInternationalizationString.uSetPanelPilolightSettionFail);
|
| | | this.ShowErrorMsg(msg);
|
| | | return false;
|
| | | }
|
| | | //备份设备
|
| | | await HdlGatewayLogic.Current.UpLoadDeviceBackupDataToGateway(panel, GatewayBackupEnum.A干接点颜色调节, colorData);
|
| | | return true;
|
| | | } |
| | | |
| | | #endregion
|
| | |
|
| | | |
| | | #region ■ 亮度调节___________________________
|
| | | /// <summary>
|
| | | /// 获取设备亮度配置(ui叫亮度调节,使用返回值的panelDirectionsLevel)
|
old mode 100755
new mode 100644
| | |
| | | ((FreshAir)locadevice).currentFanSpeed = attData.AttriButeData;
|
| | | break;
|
| | | case 5:
|
| | | case 7:
|
| | | case 15:
|
| | | ((FreshAir)locadevice).currentFanMode = attData.AttriButeData;
|
| | | break;
|
| | | }
|
| | |
| | | /// 设备在线状态更新反馈
|
| | | /// </summary>
|
| | | /// <param name="receiveData"></param>
|
| | | private void DeviceOnlineChangePush (JObject receiveData)
|
| | | private void DeviceOnlineChangePush(JObject receiveData)
|
| | | {
|
| | | if (this.dicDeviceEvent.Count == 0)
|
| | | {
|
| | |
| | | CloseAllOpenForm();
|
| | |
|
| | | //显示登陆画面
|
| | | var formLogin = new Login.AccountLogin();
|
| | | var formLogin = new Login.AccountLoginForm();
|
| | | Shared.Common.CommonPage.Instance.AddChidren(formLogin);
|
| | | formLogin.ShowForm(account);
|
| | | });
|
| | |
| | | CloseAllOpenForm();
|
| | |
|
| | | //显示登陆画面
|
| | | var formLogin = new Login.AccountLogin();
|
| | | var formLogin = new Login.AccountLoginForm();
|
| | | Shared.Common.CommonPage.Instance.AddChidren(formLogin);
|
| | | formLogin.ShowForm(account);
|
| | | });
|
old mode 100755
new mode 100644
| | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 获取当前楼层名称 |
| | | /// fllodID:楼层ID |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | public static string GetBindTargetsFloorIdName(string curFllodID) |
| | | { |
| | | var dicFloor = HdlRoomLogic.Current.GetFloorSortList(); |
| | | foreach (var floorId in dicFloor.Keys) |
| | | { |
| | | //当前楼层 |
| | | if (curFllodID == floorId) |
| | | { |
| | | return dicFloor[floorId]; |
| | | break; |
| | | } |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 检测控制面板(按键类)所拥有的功能,现支持的有以下几种(必定存在键值,出错会返回null) |
| | | /// </summary> |
| | | /// <returns>The panel key function level2.</returns> |
old mode 100755
new mode 100644
| | |
| | | { |
| | | localDeviceList.Clear(); |
| | | scList.Clear(); |
| | | //获取本地设备列表 |
| | | foreach (var dev in Shared.Common.LocalDevice.Current.listAllDevice) |
| | | { |
| | | localDeviceList.Add(dev); |
| | | } |
| | | //获取本地设备列表 |
| | | localDeviceList = Shared.Common.LocalDevice.Current.listAllDevice; |
| | | //获取本地场景列表 |
| | | scList = HdlSceneLogic.Current.GetAllRoomSceneList(); |
| | | //获取网关场景表 |
| | |
| | | /// </summary>
|
| | | private Dictionary<int, string> dicDeviceSaveName = new Dictionary<int, string>();
|
| | | /// <summary>
|
| | | /// 设备需要保存的设备功能
|
| | | /// </summary>
|
| | | private Dictionary<int, DeviceFunctionType> dicDeviceFuncType = new Dictionary<int, DeviceFunctionType>();
|
| | | /// <summary>
|
| | | /// 信息编辑控件
|
| | | /// </summary>
|
| | | private InformationEditorControl tableContr = null;
|
| | |
| | | {
|
| | | //记录起当前正在操作的回路名字
|
| | | dicDeviceSaveName[nowSelectDevice.DeviceEpoint] = btnDeviceName.Text.Trim();
|
| | | //开启进度条
|
| | | this.ShowProgressBar();
|
| | | foreach (var epoint in dicDeviceSaveName.Keys)
|
| | | {
|
| | | var device = Common.LocalDevice.Current.GetDevice(deviceObj.DeviceAddr, epoint);
|
| | |
| | | var result = await Common.LocalDevice.Current.ReName(device, newName);
|
| | | if (result == false)
|
| | | {
|
| | | //关闭
|
| | | this.CloseProgressBar();
|
| | | return;
|
| | | }
|
| | | }
|
| | | }
|
| | | foreach (var epoint in dicDeviceFuncType.Keys)
|
| | | {
|
| | | var device = Common.LocalDevice.Current.GetDevice(deviceObj.DeviceAddr, epoint);
|
| | | if (device == null)
|
| | | {
|
| | | continue;
|
| | | }
|
| | | //设置功能类型
|
| | | device.DfunctionType = dicDeviceFuncType[epoint];
|
| | | if (device.IsCustomizeImage == true)
|
| | | {
|
| | | continue;
|
| | | }
|
| | | //重新设置图片
|
| | | if (device.DfunctionType == DeviceFunctionType.A开关)
|
| | | {
|
| | | device.IconPath = "Device/Switch.png";
|
| | | }
|
| | | else if (device.DfunctionType == DeviceFunctionType.A插座)
|
| | | {
|
| | | device.IconPath = "Device/Socket1.png";
|
| | | }
|
| | | else if (device.DfunctionType == DeviceFunctionType.A灯光)
|
| | | {
|
| | | device.IconPath = "Device/Light.png";
|
| | | }
|
| | | else
|
| | | {
|
| | | device.IconPath = "Device/RelayEpoint.png";
|
| | | }
|
| | | device.ReSave();
|
| | | }
|
| | | this.CloseProgressBar();
|
| | | //关闭自身
|
| | | this.CloseForm();
|
| | | };
|
| | |
| | | /// </summary>
|
| | | private void AddFunctionTypeRow()
|
| | | {
|
| | | //如果是继电器和调光器的话
|
| | | if (nowSelectDevice.Type == DeviceType.OnOffOutput || nowSelectDevice.Type == DeviceType.DimmableLight
|
| | | || nowSelectDevice.Type == DeviceType.ColorDimmableLight)
|
| | | //自定义功能类型控件
|
| | | var rowFunction = new DeviceFunctionTypeRowControl(nowSelectDevice, listview.rowSpace / 2);
|
| | | if (rowFunction.CanShowRow == false)
|
| | | {
|
| | | //功能类型
|
| | | string caption = Language.StringByID(R.MyInternationalizationString.uFunctionType);
|
| | | var DfunctionType = nowSelectDevice.DfunctionType;
|
| | | if (this.dicDeviceFuncType.ContainsKey(nowSelectDevice.DeviceEpoint) == true)
|
| | | {
|
| | | DfunctionType = this.dicDeviceFuncType[nowSelectDevice.DeviceEpoint];
|
| | | }
|
| | |
|
| | | //功能类型的翻译名字
|
| | | int nowSelectNo = 1;
|
| | | string strType = string.Empty;
|
| | | if (DfunctionType == DeviceFunctionType.A灯光)
|
| | | {
|
| | | strType = Language.StringByID(R.MyInternationalizationString.uLight);
|
| | | nowSelectNo = 1;
|
| | | }
|
| | | else if (DfunctionType == DeviceFunctionType.A开关)
|
| | | {
|
| | | strType = Language.StringByID(R.MyInternationalizationString.uSwitch);
|
| | | nowSelectNo = 0;
|
| | | }
|
| | | else if (DfunctionType == DeviceFunctionType.A插座)
|
| | | {
|
| | | strType = Language.StringByID(R.MyInternationalizationString.uSocket1);
|
| | | nowSelectNo = 2;
|
| | | }
|
| | |
|
| | | var btnFunction = new FrameCaptionViewControl(caption, strType, listview.rowSpace / 2);
|
| | | btnFunction.UseClickStatu = false;
|
| | | listview.AddChidren(btnFunction);
|
| | | btnFunction.InitControl();
|
| | | //底线
|
| | | btnFunction.AddBottomLine();
|
| | |
|
| | | //如果是继电器才能够更改这个功能类型
|
| | | if (nowSelectDevice.Type == DeviceType.OnOffOutput)
|
| | | {
|
| | | btnFunction.UseClickStatu = true;
|
| | | //右箭头
|
| | | btnFunction.AddRightArrow();
|
| | | btnFunction.ButtonClickEvent += (sender, e) =>
|
| | | {
|
| | | //显示列表
|
| | | var listText = new List<string>();
|
| | | listText.Add(Language.StringByID(R.MyInternationalizationString.uSwitch));//开关
|
| | | listText.Add(Language.StringByID(R.MyInternationalizationString.uLight));//灯光
|
| | | listText.Add(Language.StringByID(R.MyInternationalizationString.uSocket1));//插座
|
| | | //标题:选择功能类型
|
| | | var title = Language.StringByID(R.MyInternationalizationString.uSelectFunctionType);
|
| | |
|
| | | var form = new BottomItemSelectForm();
|
| | | form.CancelCallEvent = true;//允许取消
|
| | | form.AddForm(title, listText, nowSelectNo);
|
| | | form.FinishSelectEvent += (selectNo) =>
|
| | | {
|
| | | if (selectNo == -1)
|
| | | {
|
| | | //取消选择
|
| | | btnFunction.Text = string.Empty;
|
| | | }
|
| | | else
|
| | | {
|
| | | btnFunction.Text = listText[selectNo];
|
| | | }
|
| | | nowSelectNo = selectNo;
|
| | | //记录起当前选择的功能类型
|
| | | if (selectNo == 0)
|
| | | {
|
| | | dicDeviceFuncType[nowSelectDevice.DeviceEpoint] = DeviceFunctionType.A开关;
|
| | | }
|
| | | else if (selectNo == 1)
|
| | | {
|
| | | dicDeviceFuncType[nowSelectDevice.DeviceEpoint] = DeviceFunctionType.A灯光;
|
| | | }
|
| | | else if (selectNo == 2)
|
| | | {
|
| | | dicDeviceFuncType[nowSelectDevice.DeviceEpoint] = DeviceFunctionType.A插座;
|
| | | }
|
| | | else
|
| | | {
|
| | | dicDeviceFuncType[nowSelectDevice.DeviceEpoint] = DeviceFunctionType.A未定义;
|
| | | }
|
| | | };
|
| | | };
|
| | | }
|
| | | return;
|
| | | }
|
| | |
|
| | | //如果是新风
|
| | | if (nowSelectDevice.Type == DeviceType.FreshAir)
|
| | | {
|
| | | //功能类型
|
| | | string caption = Language.StringByID(R.MyInternationalizationString.uFunctionType);
|
| | | string strType = Language.StringByID(R.MyInternationalizationString.FreshAir);
|
| | | var btnFunction = new FrameCaptionViewControl(caption, strType, listview.rowSpace / 2);
|
| | | btnFunction.UseClickStatu = false;
|
| | | listview.AddChidren(btnFunction);
|
| | | btnFunction.InitControl();
|
| | | //底线
|
| | | btnFunction.AddBottomLine();
|
| | | }
|
| | | listview.AddChidren(rowFunction);
|
| | | rowFunction.InitControl();
|
| | | //底线
|
| | | rowFunction.AddBottomLine();
|
| | | }
|
| | |
|
| | | #endregion
|
| | |
| | | /// </summary>
|
| | | private void AddAirSwitchFunctionTypeRow()
|
| | | {
|
| | | if (this.deviceEnumInfo.BeloneType != DeviceBeloneType.A智能空开)
|
| | | //2020.04.28变更:有个别设备它除了继电器回路,什么都没有了,
|
| | | //这个时候也要现实出来
|
| | | if (this.listNewDevice.Count != 1)
|
| | | {
|
| | | //不是空气开关
|
| | | return;
|
| | | }
|
| | | if (this.listNewDevice[0].Type != DeviceType.OnOffOutput
|
| | | && this.listNewDevice[0].Type != DeviceType.AirSwitch)
|
| | | {
|
| | | return;
|
| | | }
|
| | | //自定义功能类型控件
|
old mode 100755
new mode 100644
| | |
| | |
|
| | | //长按图示按键5秒以上,指示灯变绿、闪烁
|
| | | //进入配网状态。绿灯快闪3秒则配网成功
|
| | | string[] msgArry = Language.StringByID(R.MyInternationalizationString.uAddTwoButtonPanelMsg).Split(new string[] { "{0}" }, StringSplitOptions.RemoveEmptyEntries);
|
| | | string[] msgArry = Language.StringByID(R.MyInternationalizationString.AddFreshAirModulPanelMsg).Split(new string[] { "{0}" }, StringSplitOptions.RemoveEmptyEntries);
|
| | |
|
| | | var msg1 = new NormalViewControl(bodyFrameLayout.Width, Application.GetRealHeight(60), false);
|
| | | msg1.Y = Application.GetRealHeight(1037);
|
| | |
| | | //常开模式启用{0}小时
|
| | | btnMsg.Text = Language.StringByID(R.MyInternationalizationString.uNormallyOpenModeOpenSomeTime).Replace("{0}", historyInfo.NormallyOpenContinuedTime);
|
| | | }
|
| | | else if (historyInfo.OtherOpenLockMode == 9004)
|
| | | {
|
| | | //常开自动化手动取消
|
| | | btnMsg.Text = Language.StringByID(R.MyInternationalizationString.uNormallyOpenLogicManualClose);
|
| | | }
|
| | | else
|
| | | {
|
| | | //上面是App手动推送,这里是网关或者门锁自己推送
|
| | |
| | | /// </summary>
|
| | | public string CloudAccountId = string.Empty;
|
| | | /// <summary>
|
| | | /// 其他开锁方式(OpenLockMode=9000时有效) 9001:常开打开 9002:常开取消 9003:常开持续 |
| | | /// 其他开锁方式(OpenLockMode=9000时有效) 9001:常开打开 9002:常开取消 9003:常开持续 9004:常开自动化手动取消
|
| | | /// </summary>
|
| | | public int? OtherOpenLockMode = -1;
|
| | | /// <summary>
|
old mode 100755
new mode 100644
| | |
| | | #region ■ 背光颜色_________________________
|
| | |
|
| | | /// <summary>
|
| | | /// 添加背光灯亮度控件
|
| | | /// 添加背光颜色控件
|
| | | /// </summary>
|
| | | private void AddBackLightControl()
|
| | | {
|
| | |
| | | //背景
|
| | | var frameBack = new FrameLayout();
|
| | | frameBack.Y = Application.GetRealHeight(490);
|
| | | frameBack.Height = Application.GetRealHeight(429);
|
| | | frameBack.Height = Application.GetRealHeight(170);
|
| | | frameBack.BackgroundColor = UserCenterColor.Current.White;
|
| | | listview.AddChidren(frameBack);
|
| | |
|
| | |
| | | var btnLevelView = new NormalViewControl(400, 60, true);
|
| | | btnLevelView.X = ControlCommonResourse.XXLeft;
|
| | | btnLevelView.Y = Application.GetRealHeight(54);
|
| | | btnLevelView.Gravity = Gravity.CenterVertical;
|
| | | btnLevelView.TextID = R.MyInternationalizationString.BackgroundLightColor;
|
| | | frameBack.AddChidren(btnLevelView);
|
| | |
|
| | | //当前亮度
|
| | | var btnProgressView1 = new NormalViewControl(200, 50, true);
|
| | | btnProgressView1.X = ControlCommonResourse.XXLeft;
|
| | | btnProgressView1.Y = Application.GetRealHeight(157);
|
| | | btnProgressView1.TextSize = 12;
|
| | | btnProgressView1.TextColor = UserCenterColor.Current.TextGrayColor1;
|
| | | btnProgressView1.TextID = R.MyInternationalizationString.uNowLuminance;
|
| | | frameBack.AddChidren(btnProgressView1);
|
| | | var btnProgress1 = new NormalViewControl(200, 50, true);
|
| | | btnProgress1.X = Application.GetRealWidth(222);
|
| | | btnProgress1.Y = Application.GetRealHeight(157);
|
| | | btnProgress1.TextSize = 12;
|
| | | btnProgress1.TextColor = UserCenterColor.Current.TextGrayColor1;
|
| | | btnProgress1.Text = "70%";
|
| | | frameBack.AddChidren(btnProgress1);
|
| | |
|
| | | //进度条
|
| | | var seekBar1 = new SeekBarControl();
|
| | | seekBar1.Y = Application.GetRealHeight(253);
|
| | | frameBack.AddChidren(seekBar1);
|
| | | seekBar1.ProgressChangedEvent += (div, value) =>
|
| | | {
|
| | | btnProgress1.Text = value + "%";
|
| | | };
|
| | | //seekBar1.Progress = linghtLevelInfo.panelBacklightLevel;
|
| | |
|
| | | var btnTemp1 = new NormalViewControl(200, 50, true);
|
| | | btnTemp1.X = ControlCommonResourse.XXLeft;
|
| | | btnTemp1.Y = Application.GetRealHeight(322);
|
| | | btnTemp1.TextSize = 12;
|
| | | btnTemp1.TextColor = UserCenterColor.Current.TextGrayColor3;
|
| | | btnTemp1.Text = "0%";
|
| | | frameBack.AddChidren(btnTemp1);
|
| | |
|
| | | var btnTemp2 = new NormalViewControl(200, 50, true);
|
| | | btnTemp2.X = frameBack.Width - ControlCommonResourse.XXLeft - Application.GetRealWidth(200);
|
| | | btnTemp2.Y = Application.GetRealHeight(322);
|
| | | btnTemp2.TextAlignment = TextAlignment.CenterRight;
|
| | | btnTemp2.TextSize = 12;
|
| | | btnTemp2.TextColor = UserCenterColor.Current.TextGrayColor3;
|
| | | btnTemp2.Text = "100%";
|
| | | frameBack.AddChidren(btnTemp2);
|
| | |
|
| | | frameBack.AddChidren(btnLevelView); |
| | | |
| | | var frameColor = new FrameLayoutStatuControl();
|
| | | frameColor.UseClickStatu = false;
|
| | | frameColor.Width = Application.GetRealHeight(262);
|
| | | frameColor.Height = this.GetPictrueRealSize(79);
|
| | | frameColor.Y = Application.GetRealHeight(26);
|
| | | frameColor.Gravity = Gravity.CenterVertical;
|
| | | frameColor.X = frameBack.Width - ControlCommonResourse.XXLeft - Application.GetRealHeight(262);
|
| | | frameBack.AddChidren(frameColor);
|
| | | //颜色
|
| | | var btnColorView = new NormalViewControl(Application.GetRealHeight(110), this.GetPictrueRealSize(50), false);
|
| | | frameBack.AddChidren(frameColor); |
| | | |
| | | //颜色 |
| | | var btnColorView = new NormalViewControl(Application.GetRealHeight(110), this.GetPictrueRealSize(49), false);
|
| | | btnColorView.Gravity = Gravity.CenterVertical;
|
| | | btnColorView.TextAlignment = TextAlignment.CenterRight;
|
| | | btnColorView.TextSize = 12;
|
| | | btnColorView.Y = Application.GetRealHeight(5);
|
| | | btnColorView.TextColor = UserCenterColor.Current.TextGrayColor1;
|
| | | btnColorView.TextID = R.MyInternationalizationString.uColor;
|
| | | frameColor.AddChidren(btnColorView, ChidrenBindMode.BindEventOnly);
|
| | |
|
| | | int R1 = Convert.ToInt32("d8", 16);
|
| | | int G1 = Convert.ToInt32("95", 16);
|
| | | int B1 = Convert.ToInt32("e3", 16);
|
| | | frameColor.AddChidren(btnColorView, ChidrenBindMode.BindEventOnly); |
| | | |
| | | int R1 = Convert.ToInt32(this.keyColorData.OpenColorR, 16);
|
| | | int G1 = Convert.ToInt32(this.keyColorData.OpenColorG, 16);
|
| | | int B1 = Convert.ToInt32(this.keyColorData.OpenColorB, 16);
|
| | | uint backColor = this.GetColorByRGB((byte)R1, (byte)G1, (byte)B1);
|
| | |
|
| | | //颜色外框
|
| | | var btnColorLine = new NormalViewControl(this.GetPictrueRealSize(79), this.GetPictrueRealSize(79), false);
|
| | | //颜色外框 |
| | | var btnColorLine = new FrameLayoutStatuControl();
|
| | | btnColorLine.Width = Application.GetRealHeight(79);
|
| | | btnColorLine.Height = this.GetPictrueRealSize(79);
|
| | | btnColorLine.X = btnColorView.Right + Application.GetRealHeight(18);
|
| | | btnColorLine.Radius = (uint)this.GetPictrueRealSize(79) / 2;
|
| | | btnColorLine.BorderWidth = 1;
|
| | | btnColorLine.BorderColor = 0xff666666;
|
| | | frameColor.AddChidren(btnColorLine, ChidrenBindMode.BindEventOnly);
|
| | |
|
| | | btnColorLine.BorderColor = 0xffcccccc;
|
| | | frameColor.AddChidren(btnColorLine, ChidrenBindMode.BindEventOnly); |
| | | |
| | | var btnColor = new NormalViewControl(this.GetPictrueRealSize(69), this.GetPictrueRealSize(69), false);
|
| | | btnColor.Y = Application.GetRealHeight(5);
|
| | | btnColor.X = btnColorView.Right + Application.GetRealHeight(23);
|
| | | btnColor.Gravity = Gravity.Center;
|
| | | btnColor.Radius = (uint)this.GetPictrueRealSize(69) / 2;
|
| | | btnColor.BackgroundColor = UserCenterColor.Current.ErrorColor;
|
| | | frameColor.AddChidren(btnColor, ChidrenBindMode.BindEventOnly);
|
| | |
|
| | | //变更滑动条的颜色
|
| | | seekBar1.ProgressBarColor = backColor;
|
| | |
|
| | | btnColor.BackgroundColor = backColor;
|
| | | btnColorLine.AddChidren(btnColor, ChidrenBindMode.BindEventOnly); |
| | | |
| | | var btnRight = new NormalViewControl(this.GetPictrueRealSize(58), this.GetPictrueRealSize(58), false);
|
| | | btnRight.UnSelectedImagePath = "Item/RightNext.png";
|
| | | btnRight.Y = Application.GetRealHeight(5);
|
| | |
| | | btnRight.Y += this.GetPictrueRealSize(8);
|
| | |
|
| | | frameColor.ButtonClickEvent += (sender, e) =>
|
| | | {
|
| | | { |
| | | var form = new PanelColorSelectForm();
|
| | | form.AddForm(R1, G1, B1);
|
| | | form.FinishSelectColorEvent += (Rcolor, Gcolor, Bcolor) =>
|
| | |
| | | G1 = Gcolor;
|
| | | B1 = Bcolor;
|
| | |
|
| | | //this.keyColorData.CloseColorR = Convert.ToString(Rcolor, 16);
|
| | | //this.keyColorData.CloseColorG = Convert.ToString(Gcolor, 16);
|
| | | //this.keyColorData.CloseColorB = Convert.ToString(Bcolor, 16);
|
| | | this.keyColorData.OpenColorR = Convert.ToString(Rcolor, 16);
|
| | | this.keyColorData.OpenColorG = Convert.ToString(Gcolor, 16);
|
| | | this.keyColorData.OpenColorB = Convert.ToString(Bcolor, 16);
|
| | |
|
| | | btnColor.BackgroundColor = this.GetColorByRGB((byte)Rcolor, (byte)Gcolor, (byte)Bcolor);
|
| | | //变更滑动条的颜色
|
| | | seekBar1.ProgressBarColor = btnColor.BackgroundColor;
|
| | | };
|
| | | };
|
| | | }
|
| | |
| | | //关闭进度条
|
| | | this.CloseProgressBar(ShowReLoadMode.YES);
|
| | | return false;
|
| | | }
|
| | | } |
| | | keyColorData = await HdlDevicePanelLogic.Current.GetPanelEpointColorInfo(panelDevice);
|
| | | if (this.keyColorData == null)
|
| | | {
|
| | | //关闭进度条
|
| | | this.CloseProgressBar(ShowReLoadMode.YES);
|
| | | return false;
|
| | | }
|
| | | //关闭进度条
|
| | | } |
| | | //关闭进度条 |
| | | this.CloseProgressBar();
|
| | |
|
| | | return true;
|
| | | return true; |
| | | }
|
| | |
|
| | | #endregion
|
| | |
| | | {
|
| | | this.CloseProgressBar();
|
| | | return;
|
| | | } |
| | | |
| | | //设置按键面板颜色的信息 |
| | | result = await HdlDevicePanelLogic.Current.SetPanelColorInfo(panelDevice, this.keyColorData);
|
| | | this.CloseProgressBar();
|
| | | if (result == false)
|
| | | {
|
| | | return;
|
| | | }
|
| | |
|
| | | //设置按键面板指定端点的【指示灯开关颜色】的信息
|
| | | //result = await HdlDevicePanelLogic.Current.SetPanelEpointColorInfo(panelDevice, this.keyColorData);
|
| | | //this.CloseProgressBar();
|
| | | //if (result == false)
|
| | | //{
|
| | | // return;
|
| | | //}
|
| | | //关闭自身
|
| | | this.CloseForm();
|
| | | }
|
| | |
|
| | | } |
| | | #endregion
|
| | |
|
| | | |
| | | #region ■ 补充容器___________________________
|
| | | /// <summary>
|
| | | /// 行数超过容器时,补一个空白FrameLayout,使之能滑动
|
old mode 100755
new mode 100644
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using Org.BouncyCastle.Bcpg.OpenPgp; |
| | | using Shared.Common; |
| | | using ZigBee.Common; |
| | | using ZigBee.Device; |
| | |
| | | private string bindPmName = string.Empty; |
| | | |
| | | #endregion |
| | | |
| | |
|
| | | #region ■ 初始化_____________________________
|
| | | |
| | | /// <summary>
|
| | |
| | | public void ShowForm(CommonDevice i_device)
|
| | | {
|
| | | this.deviceObj = i_device;
|
| | | //获取数据 |
| | | ReadDoorLockUserInfo(deviceObj); |
| | | //获取数据
|
| | | ReadDoorLockUserInfo(deviceObj);
|
| | |
|
| | | //设置头部信息
|
| | | base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uPanelSettion));
|
| | |
| | | this.listview = tableContr.InitControl(listBackControl.frameTable, Language.StringByID(R.MyInternationalizationString.uDeviceEditor), 1028);
|
| | |
|
| | | //初始化菜单行
|
| | | this.InitMenuRow();
|
| | |
|
| | | //初始化桌布完成
|
| | | this.InitMenuRow(); |
| | | |
| | | //初始化桌布完成 |
| | | tableContr.FinishInitControl();
|
| | | tableContr = null;
|
| | |
|
| | |
| | | {
|
| | | //关闭自身
|
| | | this.CloseForm();
|
| | | };
|
| | | }; |
| | | }
|
| | |
|
| | | /// <summary>
|
| | | /// 初始化菜单行
|
| | | /// </summary>
|
| | | private void InitMenuRow()
|
| | | {
|
| | | { |
| | | this.listview.RemoveAll();
|
| | | //添加新风目标 |
| | | this.AddFreshAirRow(); |
| | |
| | | }); |
| | | } |
| | | #endregion |
| | |
|
| | | |
| | | #region ■ 新风目标_________________________ |
| | | /// <summary> |
| | | /// 新风目标行 |
| | |
| | | //底线
|
| | | rowNewWind.AddBottomLine();
|
| | | //右箭头
|
| | | rowNewWind.AddRightArrow();
|
| | | rowNewWind.AddRightArrow(); |
| | | |
| | | var msg = Language.StringByID(R.MyInternationalizationString.nothing); |
| | | var msg = Language.StringByID(R.MyInternationalizationString.nothing);
|
| | | if (!string.IsNullOrEmpty(bindFreshAirName)) |
| | | { |
| | | msg = bindFreshAirName; |
| | | } |
| | | var btnNewWindStatu = rowNewWind.AddMostRightView(msg, 700);
|
| | | |
| | |
|
| | | rowNewWind.ButtonClickEvent += (sender, e) =>
|
| | | {
|
| | | var addDevicePage = new Shared.Phone.UserCenter.DeviceBind.PanelFangyueFreshAirTargetsForm(this.deviceObj, 1); |
old mode 100755
new mode 100644
| | |
| | | /// </summary>
|
| | | private Dictionary<int, string> dicDeviceSaveName = new Dictionary<int, string>();
|
| | | /// <summary>
|
| | | /// 设备需要保存的设备功能
|
| | | /// </summary>
|
| | | private Dictionary<int, DeviceFunctionType> dicDeviceFuncType = new Dictionary<int, DeviceFunctionType>();
|
| | | /// <summary>
|
| | | /// 信息编辑控件
|
| | | /// </summary>
|
| | | private InformationEditorControl tableContr = null;
|
| | |
| | | {
|
| | | //记录起当前正在操作的回路名字
|
| | | dicDeviceSaveName[nowSelectDevice.DeviceEpoint] = btnDeviceName.Text.Trim();
|
| | | //开启进度条
|
| | | this.ShowProgressBar();
|
| | | foreach (var epoint in dicDeviceSaveName.Keys)
|
| | | {
|
| | | var device = Common.LocalDevice.Current.GetDevice(deviceObj.DeviceAddr, epoint);
|
| | |
| | | var result = await Common.LocalDevice.Current.ReName(device, newName);
|
| | | if (result == false)
|
| | | {
|
| | | //关闭
|
| | | this.CloseProgressBar();
|
| | | return;
|
| | | }
|
| | | }
|
| | | }
|
| | | foreach (var epoint in dicDeviceFuncType.Keys)
|
| | | {
|
| | | var device = Common.LocalDevice.Current.GetDevice(deviceObj.DeviceAddr, epoint);
|
| | | if (device == null)
|
| | | {
|
| | | continue;
|
| | | }
|
| | | //设置功能类型
|
| | | device.DfunctionType = dicDeviceFuncType[epoint];
|
| | | if (device.IsCustomizeImage == true)
|
| | | {
|
| | | continue;
|
| | | }
|
| | | //重新设置图片
|
| | | if (device.DfunctionType == DeviceFunctionType.A开关)
|
| | | {
|
| | | device.IconPath = "Device/Switch.png";
|
| | | }
|
| | | else if (device.DfunctionType == DeviceFunctionType.A插座)
|
| | | {
|
| | | device.IconPath = "Device/Socket1.png";
|
| | | }
|
| | | else if (device.DfunctionType == DeviceFunctionType.A灯光)
|
| | | {
|
| | | device.IconPath = "Device/Light.png";
|
| | | }
|
| | | else
|
| | | {
|
| | | device.IconPath = "Device/RelayEpoint.png";
|
| | | }
|
| | | device.ReSave();
|
| | | }
|
| | | this.CloseProgressBar();
|
| | | //关闭自身
|
| | | this.CloseForm();
|
| | | };
|
| | |
| | | /// </summary>
|
| | | private void AddFunctionTypeRow()
|
| | | {
|
| | | //如果是继电器和调光器的话
|
| | | if (nowSelectDevice.Type == DeviceType.OnOffOutput || nowSelectDevice.Type == DeviceType.DimmableLight
|
| | | || nowSelectDevice.Type == DeviceType.ColorDimmableLight)
|
| | | //自定义功能类型控件
|
| | | var rowFunction = new DeviceFunctionTypeRowControl(nowSelectDevice, listview.rowSpace / 2);
|
| | | if (rowFunction.CanShowRow == true)
|
| | | {
|
| | | //功能类型
|
| | | string caption = Language.StringByID(R.MyInternationalizationString.uFunctionType);
|
| | | var DfunctionType = nowSelectDevice.DfunctionType;
|
| | | if (this.dicDeviceFuncType.ContainsKey(nowSelectDevice.DeviceEpoint) == true)
|
| | | {
|
| | | DfunctionType = this.dicDeviceFuncType[nowSelectDevice.DeviceEpoint];
|
| | | }
|
| | |
|
| | | //功能类型的翻译名字
|
| | | int nowSelectNo = 1;
|
| | | string strType = string.Empty;
|
| | | if (DfunctionType == DeviceFunctionType.A灯光)
|
| | | {
|
| | | strType = Language.StringByID(R.MyInternationalizationString.uLight);
|
| | | nowSelectNo = 1;
|
| | | }
|
| | | else if (DfunctionType == DeviceFunctionType.A开关)
|
| | | {
|
| | | strType = Language.StringByID(R.MyInternationalizationString.uSwitch);
|
| | | nowSelectNo = 0;
|
| | | }
|
| | | else if (DfunctionType == DeviceFunctionType.A插座)
|
| | | {
|
| | | strType = Language.StringByID(R.MyInternationalizationString.uSocket1);
|
| | | nowSelectNo = 2;
|
| | | }
|
| | |
|
| | | var btnFunction = new FrameCaptionViewControl(caption, strType, listview.rowSpace / 2);
|
| | | btnFunction.UseClickStatu = false;
|
| | | listview.AddChidren(btnFunction);
|
| | | btnFunction.InitControl();
|
| | | listview.AddChidren(rowFunction);
|
| | | rowFunction.InitControl();
|
| | | //底线
|
| | | btnFunction.AddBottomLine();
|
| | |
|
| | | //如果是继电器才能够更改这个功能类型
|
| | | if (nowSelectDevice.Type == DeviceType.OnOffOutput)
|
| | | {
|
| | | btnFunction.UseClickStatu = true;
|
| | | //右箭头
|
| | | btnFunction.AddRightArrow();
|
| | | btnFunction.ButtonClickEvent += (sender, e) =>
|
| | | {
|
| | | //显示列表
|
| | | var listText = new List<string>();
|
| | | listText.Add(Language.StringByID(R.MyInternationalizationString.uSwitch));//开关
|
| | | listText.Add(Language.StringByID(R.MyInternationalizationString.uLight));//灯光
|
| | | listText.Add(Language.StringByID(R.MyInternationalizationString.uSocket1));//插座
|
| | | //标题:选择功能类型
|
| | | var title = Language.StringByID(R.MyInternationalizationString.uSelectFunctionType);
|
| | |
|
| | | var form = new BottomItemSelectForm();
|
| | | form.CancelCallEvent = true;//允许取消
|
| | | form.AddForm(title, listText, nowSelectNo);
|
| | | form.FinishSelectEvent += (selectNo) =>
|
| | | {
|
| | | if (selectNo == -1)
|
| | | {
|
| | | //选择取消
|
| | | btnFunction.Text = string.Empty;
|
| | | }
|
| | | else
|
| | | {
|
| | | btnFunction.Text = listText[selectNo];
|
| | | }
|
| | | nowSelectNo = selectNo;
|
| | | //记录起当前选择的功能类型
|
| | | if (selectNo == 0)
|
| | | {
|
| | | dicDeviceFuncType[nowSelectDevice.DeviceEpoint] = DeviceFunctionType.A开关;
|
| | | }
|
| | | else if (selectNo == 1)
|
| | | {
|
| | | dicDeviceFuncType[nowSelectDevice.DeviceEpoint] = DeviceFunctionType.A灯光;
|
| | | }
|
| | | else if (selectNo == 2)
|
| | | {
|
| | | dicDeviceFuncType[nowSelectDevice.DeviceEpoint] = DeviceFunctionType.A插座;
|
| | | }
|
| | | else
|
| | | {
|
| | | dicDeviceFuncType[nowSelectDevice.DeviceEpoint] = DeviceFunctionType.A未定义;
|
| | | }
|
| | | };
|
| | | };
|
| | | }
|
| | | rowFunction.AddBottomLine();
|
| | | }
|
| | | }
|
| | |
|
| | |
| | | /// </summary>
|
| | | private Dictionary<int, string> dicDeviceSaveName = new Dictionary<int, string>();
|
| | | /// <summary>
|
| | | /// 设备需要保存的设备功能
|
| | | /// </summary>
|
| | | private Dictionary<int, DeviceFunctionType> dicDeviceFuncType = new Dictionary<int, DeviceFunctionType>();
|
| | | /// <summary>
|
| | | /// 信息编辑控件
|
| | | /// </summary>
|
| | | private InformationEditorControl tableContr = null;
|
| | |
| | | {
|
| | | //记录起当前正在操作的回路名字
|
| | | dicDeviceSaveName[nowSelectDevice.DeviceEpoint] = btnDeviceName.Text.Trim();
|
| | | //开启进度条
|
| | | this.ShowProgressBar();
|
| | | foreach (var epoint in dicDeviceSaveName.Keys)
|
| | | {
|
| | | var device = Common.LocalDevice.Current.GetDevice(deviceObj.DeviceAddr, epoint);
|
| | |
| | | var result = await Common.LocalDevice.Current.ReName(device, newName);
|
| | | if (result == false)
|
| | | {
|
| | | //关闭
|
| | | this.CloseProgressBar();
|
| | | return;
|
| | | }
|
| | | }
|
| | | }
|
| | | foreach (var epoint in dicDeviceFuncType.Keys)
|
| | | {
|
| | | var device = Common.LocalDevice.Current.GetDevice(deviceObj.DeviceAddr, epoint);
|
| | | if (device == null)
|
| | | {
|
| | | continue;
|
| | | }
|
| | | //设置功能类型
|
| | | device.DfunctionType = dicDeviceFuncType[epoint];
|
| | | if (device.IsCustomizeImage == true)
|
| | | {
|
| | | continue;
|
| | | }
|
| | | //重新设置图片
|
| | | if (device.DfunctionType == DeviceFunctionType.A开关)
|
| | | {
|
| | | device.IconPath = "Device/Switch.png";
|
| | | }
|
| | | else if (device.DfunctionType == DeviceFunctionType.A插座)
|
| | | {
|
| | | device.IconPath = "Device/Socket1.png";
|
| | | }
|
| | | else if (device.DfunctionType == DeviceFunctionType.A灯光)
|
| | | {
|
| | | device.IconPath = "Device/Light.png";
|
| | | }
|
| | | else
|
| | | {
|
| | | device.IconPath = "Device/RelayEpoint.png";
|
| | | }
|
| | | device.ReSave();
|
| | | }
|
| | | this.CloseProgressBar();
|
| | | //关闭自身
|
| | | this.CloseForm();
|
| | | };
|
| | |
| | | /// </summary>
|
| | | private void AddFunctionTypeRow()
|
| | | {
|
| | | //如果是继电器和调光器的话
|
| | | if (nowSelectDevice.Type == DeviceType.OnOffOutput || nowSelectDevice.Type == DeviceType.DimmableLight
|
| | | || nowSelectDevice.Type == DeviceType.ColorDimmableLight)
|
| | | //自定义功能类型控件
|
| | | var rowFunction = new DeviceFunctionTypeRowControl(nowSelectDevice, listview.rowSpace / 2);
|
| | | if (rowFunction.CanShowRow == true)
|
| | | {
|
| | | //功能类型
|
| | | string caption = Language.StringByID(R.MyInternationalizationString.uFunctionType);
|
| | | var DfunctionType = nowSelectDevice.DfunctionType;
|
| | | if (this.dicDeviceFuncType.ContainsKey(nowSelectDevice.DeviceEpoint) == true)
|
| | | {
|
| | | DfunctionType = this.dicDeviceFuncType[nowSelectDevice.DeviceEpoint];
|
| | | }
|
| | |
|
| | | //功能类型的翻译名字
|
| | | int nowSelectNo = 1;
|
| | | string strType = string.Empty;
|
| | | if (DfunctionType == DeviceFunctionType.A灯光)
|
| | | {
|
| | | strType = Language.StringByID(R.MyInternationalizationString.uLight);
|
| | | nowSelectNo = 1;
|
| | | }
|
| | | else if (DfunctionType == DeviceFunctionType.A开关)
|
| | | {
|
| | | strType = Language.StringByID(R.MyInternationalizationString.uSwitch);
|
| | | nowSelectNo = 0;
|
| | | }
|
| | | else if (DfunctionType == DeviceFunctionType.A插座)
|
| | | {
|
| | | strType = Language.StringByID(R.MyInternationalizationString.uSocket1);
|
| | | nowSelectNo = 2;
|
| | | }
|
| | |
|
| | | var btnFunction = new FrameCaptionViewControl(caption, strType, listview.rowSpace / 2);
|
| | | btnFunction.UseClickStatu = false;
|
| | | listview.AddChidren(btnFunction);
|
| | | btnFunction.InitControl();
|
| | | listview.AddChidren(rowFunction);
|
| | | rowFunction.InitControl();
|
| | | //底线
|
| | | btnFunction.AddBottomLine();
|
| | |
|
| | | //如果是继电器才能够更改这个功能类型
|
| | | if (nowSelectDevice.Type == DeviceType.OnOffOutput)
|
| | | {
|
| | | btnFunction.UseClickStatu = true;
|
| | | //右箭头
|
| | | btnFunction.AddRightArrow();
|
| | | btnFunction.ButtonClickEvent += (sender, e) =>
|
| | | {
|
| | | //显示列表
|
| | | var listText = new List<string>();
|
| | | listText.Add(Language.StringByID(R.MyInternationalizationString.uSwitch));//开关
|
| | | listText.Add(Language.StringByID(R.MyInternationalizationString.uLight));//灯光
|
| | | listText.Add(Language.StringByID(R.MyInternationalizationString.uSocket1));//插座
|
| | | //标题:选择功能类型
|
| | | var title = Language.StringByID(R.MyInternationalizationString.uSelectFunctionType);
|
| | |
|
| | | var form = new BottomItemSelectForm();
|
| | | form.CancelCallEvent = true;//允许取消
|
| | | form.AddForm(title, listText, nowSelectNo);
|
| | | form.FinishSelectEvent += (selectNo) =>
|
| | | {
|
| | | if (selectNo == -1)
|
| | | {
|
| | | //选择取消
|
| | | btnFunction.Text = string.Empty;
|
| | | }
|
| | | else
|
| | | {
|
| | | btnFunction.Text = listText[selectNo];
|
| | | }
|
| | | nowSelectNo = selectNo;
|
| | | //记录起当前选择的功能类型
|
| | | if (selectNo == 0)
|
| | | {
|
| | | dicDeviceFuncType[nowSelectDevice.DeviceEpoint] = DeviceFunctionType.A开关;
|
| | | }
|
| | | else if (selectNo == 1)
|
| | | {
|
| | | dicDeviceFuncType[nowSelectDevice.DeviceEpoint] = DeviceFunctionType.A灯光;
|
| | | }
|
| | | else if (selectNo == 2)
|
| | | {
|
| | | dicDeviceFuncType[nowSelectDevice.DeviceEpoint] = DeviceFunctionType.A插座;
|
| | | }
|
| | | else
|
| | | {
|
| | | dicDeviceFuncType[nowSelectDevice.DeviceEpoint] = DeviceFunctionType.A未定义;
|
| | | }
|
| | | };
|
| | | };
|
| | | }
|
| | | rowFunction.AddBottomLine();
|
| | | }
|
| | | }
|
| | |
|
| | |
| | | { |
| | | #region 本地变量 |
| | | /// <summary> |
| | | /// |
| | | /// 更新“逻辑常开”界面的回调 |
| | | /// </summary> |
| | | public static Action<bool> LogicAction = null; |
| | | /// <summary> |
| | |
| | | /// </summary> |
| | | public static void NormallyOpenModeValue(ZigBee.Device.DoorLock doorLock, bool value) |
| | | { |
| | | string key = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint; |
| | | if (doorLock.IsDoorLockNormallyMode.ContainsKey(key)) |
| | | { |
| | | doorLock.IsDoorLockNormallyMode[key] = value; |
| | | } |
| | | else |
| | | { |
| | | doorLock.IsDoorLockNormallyMode.Add(key, value); |
| | | } |
| | | doorLock.IsDoorLockNormallyMode = value; |
| | | |
| | | if (LogicAction != null) |
| | | { |
| | |
| | | { |
| | | //上报“常开模式”已被取消 |
| | | Application.RunOnMainThread(() => { CommonPage.Loading.Start(""); }); |
| | | //先删除已失效的“常开模式”的逻辑 |
| | | //if (resTemp == 1) |
| | | //{ |
| | | // var restulTemp = await Shared.Phone.Device.Logic.SkipView.Exist(3); |
| | | // //if (restulTemp == 3) |
| | | // //{ |
| | | // // string msg0 = Language.StringByID(R.MyInternationalizationString.CancelLogicNormallyModeFailed2); |
| | | // // this.ShowTipMsg(msg0); |
| | | // // return; |
| | | // //} |
| | | //} |
| | | |
| | | //温居城方法??? |
| | | //此处是否要删除温居城的特殊逻辑 |
| | | |
| | | //app重新开启“常开模式” |
| | | var result = await doorLock.SetNormallyOpenModeFuncAsync(true); |
| | |
| | | ShowTipMsg(msg0); |
| | | NormallyOpenModeValue(doorLock, false); |
| | | CommonPage.Loading.Hide(); |
| | | //new Tip() { MaxWidth = 150, Text = msg0, Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(CommonPage.Instance); |
| | | }); |
| | | action?.Invoke(); |
| | | return; |
| | |
| | | ShowTipMsg(msg1); |
| | | NormallyOpenModeValue(doorLock, false); |
| | | CommonPage.Loading.Hide(); |
| | | //new Tip() { MaxWidth = 150, Text = msg1, Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(CommonPage.Instance); |
| | | }); |
| | | action?.Invoke(); |
| | | return; |
| | |
| | | ShowTipMsg(msg0); |
| | | NormallyOpenModeValue(doorLock, true); |
| | | CommonPage.Loading.Hide(); |
| | | //new Tip() { MaxWidth = 150, Text = msg0, Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(CommonPage.Instance); |
| | | }); |
| | | } |
| | | } |
| | |
| | | NormallyOpenModeValue(doorLock, false); |
| | | if (haveLogic) |
| | | { |
| | | var resTemp2 = await Shared.Phone.Device.Logic.SkipView.Exist(3); |
| | | //if (resTemp2 == 3) |
| | | //{ |
| | | // string msg0 = Language.StringByID(R.MyInternationalizationString.CancelLogicNormallyModeFailed); |
| | | // this.ShowTipMsg(msg0); |
| | | //} |
| | | //温居城方法??? |
| | | //此处是否要删除温居城的特殊逻辑 |
| | | } |
| | | } |
| | | else |
| | |
| | | { |
| | | ShowTipMsg(Language.StringByID(R.MyInternationalizationString.GwResponseOvertime)); |
| | | CommonPage.Loading.Hide(); |
| | | //new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(CommonPage.Instance); |
| | | }); |
| | | action?.Invoke(); |
| | | return; |
| | |
| | | string msg1 = Language.StringByID(R.MyInternationalizationString.CloseNormallyOpenModeFailed); |
| | | ShowTipMsg(msg1); |
| | | CommonPage.Loading.Hide(); |
| | | //new Tip() { MaxWidth = 150, Text = msg1, Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(CommonPage.Instance); |
| | | }); |
| | | action?.Invoke(); |
| | | return; |
| | |
| | | if (haveLogic) |
| | | { |
| | | var resTemp1 = await Shared.Phone.Device.Logic.SkipView.Exist(3); |
| | | //因为目前机制问题,逻辑经常失败,所以不提示,后期机制要改,重新做一个这个界面 |
| | | //if (resTemp1 == 3) |
| | | //{ |
| | | //Application.RunOnMainThread(() => |
| | | //{ |
| | | // string msg0 = Language.StringByID(R.MyInternationalizationString.CancelLogicNormallyModeFailed); |
| | | // ShowTipMsg(msg0); |
| | | //}); |
| | | //} |
| | | //else if (resTemp1 == 2) |
| | | //{ |
| | | //Application.RunOnMainThread(() => |
| | | //{ |
| | | // string msg0 = Language.StringByID(R.MyInternationalizationString.CloseNormallyOpenModeSuccess); |
| | | // ShowTipMsg(msg0); |
| | | //}); |
| | | //温居城方法??? |
| | | //此处是否要删除温居城的特殊逻辑 |
| | | } |
| | | Application.RunOnMainThread(() => |
| | | { |
| | |
| | | }); |
| | | } |
| | | |
| | | //默认创建常开模式的特殊逻辑 |
| | | var res = await Shared.Phone.Device.Logic.SkipView.LockAddModifyLogic(DoorLockCommonInfo.NormallyOpenModeInvalidTime, doorLock); |
| | | //if (!res) |
| | | //{ |
| | | // Application.RunOnMainThread(() => |
| | | // { |
| | | // //默认创建常开模式失败 |
| | | // string msg0 = Language.StringByID(R.MyInternationalizationString.AddLogicNormallyModeFailed); |
| | | // var alert = new UserCenter.ShowMsgControl(UserCenter.ShowMsgType.Normal, msg0, Language.StringByID(R.MyInternationalizationString.confrim)); |
| | | // alert.Show(); |
| | | // //二次加载弹窗 常开模式开启提示 |
| | | // NomallyOpenModeInvalidTimeDialog(doorLock, action); |
| | | // }); |
| | | //} |
| | | //温居城方法??? |
| | | //此处是否要创建常开模式的特殊逻辑 |
| | | }; |
| | | } |
| | | #endregion |
| | |
| | | }); |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #endregion |
| | | } |
| | | } |
old mode 100644
new mode 100755
| | |
| | | } |
| | | }; |
| | | } |
| | | #endregion |
| | | #endregion |
| | | |
| | | #region 添加全部菜单 |
| | | /// <summary> |
| | |
| | | {
|
| | | return;
|
| | | } |
| | | string key = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint; |
| | | if (doorLock.IsDoorLockNormallyMode.ContainsKey(key)) |
| | | {
|
| | | if (doorLock.IsDoorLockNormallyMode[key] == true)
|
| | | {
|
| | | if (canOpenNormallyMode) |
| | | { |
| | | Application.RunOnMainThread(() => { NomallyOpenModeInvalidDialog(true); }); |
| | | } |
| | | if (doorLock.IsDoorLockNormallyMode) |
| | | { |
| | | if (canOpenNormallyMode) |
| | | { |
| | | Application.RunOnMainThread(() => { NomallyOpenModeInvalidDialog(true); }); |
| | | } |
| | | } |
| | | } |
| | |
| | | //开锁事件 |
| | | EventHandler<MouseEventArgs> hander1 = async (sender, e) => |
| | | { |
| | | |
| | | string key = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint; |
| | | if (doorLock.IsDoorLockNormallyMode.ContainsKey(key)) |
| | | if (doorLock.IsDoorLockNormallyMode) |
| | | { |
| | | if (doorLock.IsDoorLockNormallyMode[key] == true) |
| | | if (canOpenNormallyMode) |
| | | { |
| | | if (canOpenNormallyMode)
|
| | | {
|
| | | NomallyOpenModeInvalidDialog(false);
|
| | | }
|
| | | else |
| | | { |
| | | OpenDoorLockHandle(progressButton, btnDoorLockPic, btnStatus); |
| | | } |
| | | NomallyOpenModeInvalidDialog(false); |
| | | } |
| | | else |
| | | { |
| | | OpenDoorLockHandle(progressButton, btnDoorLockPic, btnStatus); |
| | | } |
| | | }
|
| | | } |
| | | else |
| | | { |
| | | OpenDoorLockHandle(progressButton, btnDoorLockPic, btnStatus); |
| | |
| | | { |
| | | if (canOpenNormallyMode) |
| | | { |
| | | var key = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint; |
| | | if (doorLock.IsDoorLockNormallyMode.ContainsKey(key)) |
| | | if (doorLock.IsDoorLockNormallyMode) |
| | | { |
| | | if (doorLock.IsDoorLockNormallyMode[key] == true) |
| | | { |
| | | NomallyOpenModeInvalidDialog(); |
| | | } |
| | | NomallyOpenModeInvalidDialog(); |
| | | } |
| | | } |
| | | else |
| | |
| | | |
| | | action = () => |
| | | { |
| | | //系统密码支持操作门锁后,调用问温居城的界面【常开自动化】 |
| | | //Action nomallyOpenModeStartAction = () => |
| | | //{ |
| | | // UpdateNomallyOpenStatus(); |
| | | //}; |
| | | |
| | | string msg = Language.StringByID(R.MyInternationalizationString.SetDoorLockNomallyOpen).Replace("{0}", "\r\n"); |
| | | var confirm = Language.StringByID(R.MyInternationalizationString.Confrim); |
| | | var alert = new ShowDoorLockMsgControl(ShowDoorLockMsgControl.DoorLockMsgType.Confirm, msg, confirm); |
| | |
| | | btnNormallyOpenFrameLayout.Width = Application.GetRealWidth(0); |
| | | return; |
| | | } |
| | | string key = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint;
|
| | | if (!doorLock.IsDoorLockNormallyMode.ContainsKey(key))
|
| | | {
|
| | | return;
|
| | | }
|
| | | if (doorLock.IsDoorLockNormallyMode[key] == true) |
| | | if (doorLock.IsDoorLockNormallyMode) |
| | | { |
| | | btnNormallyOpen.IsSelected = true; |
| | | btnDoorLockPic.IsSelected = true; |
| | |
| | | btnStatus.Text = Language.StringByID(R.MyInternationalizationString.Current) + Language.StringByID(R.MyInternationalizationString.DoorLockOpen); |
| | | |
| | | } |
| | | else if (doorLock.IsDoorLockNormallyMode[key] == false) |
| | | else if (!doorLock.IsDoorLockNormallyMode) |
| | | { |
| | | btnStatus.Text = Language.StringByID(R.MyInternationalizationString.Current) + Language.StringByID(R.MyInternationalizationString.CLose); |
| | | btnDoorLockPic.IsSelected = false; |
| | |
| | | else |
| | | { |
| | | //未登录弹出登录界面 |
| | | var accountLogin = new Login.AccountLogin { }; |
| | | var accountLogin = new Login.AccountLoginForm { }; |
| | | Shared.Common.CommonPage.Instance.AddChidren(accountLogin); |
| | | accountLogin.ShowForm(); |
| | | } |
old mode 100755
new mode 100644
| | |
| | | public string currentUserDisplayMethod = string.Empty;//当前用户显示方式 |
| | | //本地所有账户列表 |
| | | public List<Shared.Phone.UserCenter.MemberInfoRes> localAllAccountList = new List<Shared.Phone.UserCenter.MemberInfoRes> { }; |
| | | |
| | | /// <summary> |
| | | /// 是否常开模式【key = doorLock.DeviceAddr + "_" + doorLock.DeviceEpoint】 |
| | | /// 是否常开模式 |
| | | /// ture:常开; false:关闭 |
| | | /// </summary> |
| | | public Dictionary<string, bool> IsDoorLockNormallyMode = new Dictionary<string, bool> { };//是否冻结子账户 |
| | | public bool IsDoorLockNormallyMode = false; |
| | | public string LocalTempPassword = string.Empty;//本地生成的临时密码 |
| | | public Dictionary<string, bool> IsFreezeAccount = new Dictionary<string, bool> { };//是否冻结子账户 |
| | | public Dictionary<string, bool> HasRemoteUnlockAccess = new Dictionary<string, bool> { };//是否给子账户拥有远程开锁的条件 |
old mode 100755
new mode 100644
| | |
| | | /// 风速模式 |
| | | /// <para>5:自动</para> |
| | | /// <para>6:Smart</para> |
| | | /// <para>7:手动</para> |
| | | /// <para>15:手动</para> |
| | | /// </summary> |
| | | public int currentFanMode = 0; |
| | | /// <summary> |
| | |
| | | /// <summary> |
| | | /// 手动 |
| | | /// </summary> |
| | | Manual = 7, |
| | | Manual = 15, |
| | | }
|
| | | } |
| | | } |
old mode 100755
new mode 100644
| | |
| | | /// </summary> |
| | | public string currentSelectFloorId = string.Empty; |
| | | /// <summary> |
| | | /// 当前选择的房间ID【新风面板】 |
| | | /// </summary> |
| | | public string currentSelectRoomId = string.Empty; |
| | | /// <summary> |
| | | /// 当前开关模式 |
| | | /// </summary> |
| | | public string CurrentSwitchMode = ""; |
old mode 100755
new mode 100644
| | |
| | | /// <summary> |
| | | /// 远程MqttClient |
| | | /// </summary> |
| | | public static IMqttClient RemoteMqttClient= new MqttFactory().CreateMqttClient(); |
| | | static bool remoteIsConnected; |
| | | public static IMqttClient RemoteMqttClient = new MqttFactory().CreateMqttClient(); |
| | | static bool remoteIsConnected; |
| | | private int IsLogin = 0; |
| | | [Newtonsoft.Json.JsonIgnore] |
| | | static Action actionTemp; |
| | |
| | | .WithTcpServer(domain, int.Parse(port))
|
| | | .WithCredentials(connEmqUserName, connEmqPwd)
|
| | | .WithKeepAlivePeriod(TimeSpan.FromSeconds(20))
|
| | | .WithCleanSession()
|
| | | //.WithCommunicationTimeout(TimeSpan.FromSeconds(10))
|
| | | .WithCleanSession() |
| | | //.WithCommunicationTimeout(TimeSpan.FromSeconds(10)) |
| | | .Build();
|
| | | await DisConnectRemoteMqttClient("StartRemoteMqtt");
|
| | | await RemoteMqttClient.ConnectAsync(options, CancellationToken.None);
|
| | |
| | | localIsConnected = false;
|
| | | DebugPrintLog($"Local主动断开_{s}");
|
| | | //await localMqttClient.DisconnectAsync(new MQTTnet.Client.Disconnecting.MqttClientDisconnectOptions { }, CancellationToken.None);
|
| | | await localMqttClient.DisconnectAsync(); |
| | | await localMqttClient.DisconnectAsync(); |
| | | }
|
| | | } |
| | | catch (Exception ex) |
| | |
| | | /// <summary>
|
| | | /// 断开远程Mqtt的链接
|
| | | /// </summary> |
| | | public static async System.Threading.Tasks.Task DisConnectRemoteMqttClient(string s="")
|
| | | public static async System.Threading.Tasks.Task DisConnectRemoteMqttClient(string s = "")
|
| | | {
|
| | | try
|
| | | {
|
| | |
| | | await RemoteMqttClient.DisconnectAsync();
|
| | | }
|
| | | }
|
| | | catch(Exception e) { |
| | | catch (Exception e) |
| | | { |
| | | DebugPrintLog($"Remote断开通讯连接出异常:{e.Message}");
|
| | | }
|
| | | } |
| | |
| | | {
|
| | | await localMqttClient.PublishAsync(new MqttApplicationMessage { Topic = topic, Payload = message, QualityOfServiceLevel = MQTTnet.Protocol.MqttQualityOfServiceLevel.ExactlyOnce, Retain = retain });
|
| | | }
|
| | | catch(Exception e)
|
| | | catch (Exception e)
|
| | | { |
| | | DebugPrintLog($"Local主动断开_{e.Message}");
|
| | | await DisConnectLocalMqttClient(e.Message); |
| | |
| | | { |
| | | return; |
| | | } |
| | | if (topics[2]== "NotifyGateWayInfoChange") { |
| | | if (topics[2] == "NotifyGateWayInfoChange") |
| | | { |
| | | initGateWayBaseInfomation(); |
| | | return; |
| | | } |
| | |
| | | /// <param name="topic">Topic.</param> |
| | | /// <param name="message">Message.</param> |
| | | /// <param name="e">E.</param> |
| | | static void ReceiveMessage(string topic, string message, byte []payload) |
| | | static void ReceiveMessage(string topic, string message, byte[] payload) |
| | | { |
| | | try |
| | | { |
| | |
| | | /// 灯全关
|
| | | /// </summary>
|
| | | public const int uAllLightClose = 16114;
|
| | | /// <summary>
|
| | | /// 常开自动化手动取消
|
| | | /// </summary>
|
| | | public const int uNormallyOpenLogicManualClose = 16115;
|
| | |
|
| | |
|
| | | //★★★★下面这些是接口的返回信息翻译,从18000开始★★★★
|
| | | /// <summary>
|
| | |
| | | /// 自定义设备所属ID为16的翻译名字:干接点
|
| | | /// </summary>
|
| | | public const int uDeviceBelongId16 = 40017;
|
| | | /// <summary> |
| | | /// 自定义设备所属ID为2310的翻译名字:新风 |
| | | /// </summary> |
| | | public const int uDeviceBelongId2310 = 40018; |
| | |
|
| | | //★★★★模块ID的设备默认备注名字,从50000开始,这里不需要定义,只写在Language.ini文件里面★★★★
|
| | | //★★★★模块ID的设备类型名字,从60000开始,这里不需要定义,只写在Language.ini文件里面★★★★
|
old mode 100755
new mode 100644
| | |
| | | <Compile Include="$(MSBuildThisFileDirectory)Phone\Device\Logic\SkipView.cs" />
|
| | | <Compile Include="$(MSBuildThisFileDirectory)Phone\Device\Logic\SoneLogicList.cs" />
|
| | | <Compile Include="$(MSBuildThisFileDirectory)Phone\Login\AccountForgetPWD.cs" />
|
| | | <Compile Include="$(MSBuildThisFileDirectory)Phone\Login\AccountLogic.cs" />
|
| | | <Compile Include="$(MSBuildThisFileDirectory)Phone\Login\Logic\AccountLogic.cs" />
|
| | | <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\UserCenter\Device\Panel\PanelFangyueEnvironmentButtonSettionForm.cs" />
|
| | | <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Device\Panel\PanelFangyueEnvironmentLightSettionForm.cs" />
|
| | | <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Device\Panel\PanelFangyueEnvironmentTargetForm.cs" />
|
| | | <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Device\Panel\PanelFangyueFreshAirBackLightSettionForm.cs" />
|
| | | <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Device\Panel\PanelFangyueFreshAirButtonSettionForm.cs" />
|
| | | <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Device\Panel\PanelFangyueFreshAirTargetForm.cs" />
|
| | | <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Device\Panel\PanelFangyueFreshAirTargetsForm.cs" />
|
| | | <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Device\Panel\PanelFangyueFunctionSettionForm.cs" />
|
| | | <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Device\PirSensor\PirSensorDimmingModeForm.cs" />
|
| | |
| | | <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Device\PirSensor\PirSensorWorkModeMenuForm.cs" />
|
| | | <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\DoorLock\AddUnLockMethod.cs" />
|
| | | <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\DoorLock\AddUnLockMethodTip.cs" />
|
| | | <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\DoorLock\DoorLockCommonInfo.cs" />
|
| | | <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\DoorLock\DoorLockCommonLayout.cs" />
|
| | | <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\DoorLock\DoorlockDialog.cs" />
|
| | | <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\DoorLock\EntryStatusPage.cs" />
|
| | | <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\DoorLock\FunctionSetting.cs" />
|
| | | <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\DoorLock\MasterManagementPage.cs" />
|
| | | <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\DoorLock\MemberFrozenPage.cs" />
|
| | | <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\DoorLock\ShowDoorLockMsgControl.cs" />
|
| | | <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\DoorLock\TemporaryPassword.cs" />
|
| | | <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\DoorLock\TimeSettignPage.cs" />
|
| | | <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\DoorLock\UndistributeDoorlockUserPage.cs" />
|
| | | <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\DoorLock\UnLockMethod.cs" />
|
| | | <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\DoorLock\UserDoorLockPage.cs" />
|
| | | <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\DoorLock\UserManagement.cs" />
|
| | | <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Gateway\Add\AddGatewayHelpForm.cs" />
|
| | | <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Gateway\Add\WirelessApDirection1Form.cs" />
|
| | |
| | | <Compile Include="$(MSBuildThisFileDirectory)Phone\UserView\LoginLoading.cs" />
|
| | | <Compile Include="$(MSBuildThisFileDirectory)Phone\ZigBee\Device\AC.cs" />
|
| | | <Compile Include="$(MSBuildThisFileDirectory)Phone\ZigBee\Device\DimmableLight.cs" />
|
| | | <Compile Include="$(MSBuildThisFileDirectory)Phone\ZigBee\Device\DoorLock.cs" />
|
| | | <Compile Include="$(MSBuildThisFileDirectory)Phone\ZigBee\Device\FreshAir.cs" />
|
| | | <Compile Include="$(MSBuildThisFileDirectory)Phone\ZigBee\Device\HumiditySensor.cs" />
|
| | | <Compile Include="$(MSBuildThisFileDirectory)Phone\ZigBee\Device\Repeater.cs" />
|
| | |
| | | <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Gateway\Add\WiredGatewayDirectionForm.cs" />
|
| | | <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Gateway\Add\WiredGatewaySearchForm.cs" />
|
| | | <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Gateway\Manage\GatewayInfoEditorForm.cs" />
|
| | | <Compile Include="$(MSBuildThisFileDirectory)Phone\Login\AccountLogin.cs" />
|
| | | <Compile Include="$(MSBuildThisFileDirectory)Phone\Login\AccountLoginForm.cs" />
|
| | | <Compile Include="$(MSBuildThisFileDirectory)Common\CommonPage.cs" />
|
| | | <Compile Include="$(MSBuildThisFileDirectory)Common\ResponseEntity\GetAreaCode.cs" />
|
| | | <Compile Include="$(MSBuildThisFileDirectory)Common\ResponseEntity\ResidenceRes.cs" />
|
| | |
| | | <Compile Include="$(MSBuildThisFileDirectory)Phone\ZigBee\IO\LocalFileUtils.cs" />
|
| | | <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\CommonBase\Logic\HdlSafeguardLogic.cs" />
|
| | | <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\CommonBase\Logic\HdlAlarmsLogic.cs" />
|
| | | <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Device\Panel\PanelFangyueFreshAirBackLightSettionForm.cs" />
|
| | | <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\DoorLock\UserDoorLockPage.cs" />
|
| | | <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\DoorLock\DoorLockCommonInfo.cs" />
|
| | | <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\DoorLock\ShowDoorLockMsgControl.cs" />
|
| | | <Compile Include="$(MSBuildThisFileDirectory)Phone\ZigBee\Device\DoorLock.cs" />
|
| | | <Compile Include="$(MSBuildThisFileDirectory)Phone\MainPage\Controls\DeviceCard\DeviceFreshAirCardControl.cs" />
|
| | | </ItemGroup>
|
| | | <ItemGroup>
|
| | | <Folder Include="$(MSBuildThisFileDirectory)Phone\CommonForm\" />
|
| | | <Folder Include="$(MSBuildThisFileDirectory)Phone\Login\Logic\" />
|
| | | <Folder Include="$(MSBuildThisFileDirectory)Phone\MainPage\Controls\DeviceCard\Base\" />
|
| | | </ItemGroup>
|
| | | <ItemGroup>
|