| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using Org.BouncyCastle.Bcpg.OpenPgp; |
| | | using Shared.Common; |
| | | using ZigBee.Common; |
| | | using ZigBee.Device; |
| | | |
| | | namespace Shared.Phone.UserCenter.DevicePanel |
| | |
| | | /// 设备的某一回路
|
| | | /// </summary>
|
| | | private CommonDevice deviceObj = null; |
| | | /// <summary> |
| | | /// 新风目标名字 |
| | | /// </summary> |
| | | private string bindFreshAirName = string.Empty; |
| | | /// <summary> |
| | | /// 温度目标名字 |
| | | /// </summary> |
| | | private string bindTemperatureName = string.Empty; |
| | | /// <summary> |
| | | /// 湿度目标名字 |
| | | /// </summary> |
| | | private string bindHumidityName = string.Empty; |
| | | /// <summary> |
| | | /// PM目标名字 |
| | | /// </summary> |
| | | private string bindPmName = string.Empty; |
| | | |
| | | #endregion |
| | |
|
| | |
| | | public void ShowForm(CommonDevice i_device)
|
| | | {
|
| | | this.deviceObj = i_device;
|
| | | //获取数据
|
| | | 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(); |
| | | //PM2.5来源 |
| | | //this.AddPMRow(); |
| | | this.AddPMRow(); |
| | | //添加温度来源 |
| | | //this.AddTemperatureSensorRow(); |
| | | this.AddTemperatureSensorRow(); |
| | | //添加湿度来源 |
| | | //this.AddHumiditySourceRow(); |
| | | //添加新风目标 |
| | | //this.AddPMRow(); |
| | | this.AddHumiditySourceRow(); |
| | | //亮度调节 |
| | | this.AddLevelRow(); |
| | | } |
| | | #endregion |
| | |
|
| | | |
| | | #region ■ 初始化数据_________________________ |
| | | |
| | | /// <summary> |
| | | /// 初始化数据 |
| | | /// </summary> |
| | | void ReadDoorLockUserInfo(CommonDevice curControlDev) |
| | | { |
| | | System.Threading.Tasks.Task.Run(async () => |
| | | { |
| | | try |
| | | { |
| | | Application.RunOnMainThread(() => |
| | | { |
| | | CommonPage.Loading.Start(""); |
| | | }); |
| | | |
| | | var result = await GetBindName(curControlDev); |
| | | if (!result) |
| | | { |
| | | |
| | | Application.RunOnMainThread(() => |
| | | { |
| | | new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance); |
| | | }); |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | var mess = ex.Message; |
| | | } |
| | | finally |
| | | { |
| | | Application.RunOnMainThread(() => |
| | | { |
| | | this.InitMenuRow(); |
| | | CommonPage.Loading.Hide(); |
| | | }); |
| | | } |
| | | }); |
| | | } |
| | | #endregion |
| | | |
| | | #region ■ 新风目标_________________________ |
| | | /// <summary> |
| | | /// 新风目标行 |
| | |
| | | //底线
|
| | | rowNewWind.AddBottomLine();
|
| | | //右箭头
|
| | | rowNewWind.AddRightArrow();
|
| | | var msg = Language.StringByID(R.MyInternationalizationString.nothing); |
| | | // 回调新风绑定目标 |
| | | rowNewWind.AddRightArrow(); |
| | | |
| | | 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); |
| | | //Shared.Phone.UserView.HomePage.Instance.AddChidren(addDevicePage); |
| | | //Shared.Phone.UserView.HomePage.Instance.PageIndex += 1; |
| | | //addDevicePage.Show(); |
| | | var form = new PanelFangyueFreshAirTargetForm(); |
| | | form.AddForm(this.deviceObj, string.Empty, 3); |
| | | var addDevicePage = new Shared.Phone.UserCenter.DeviceBind.PanelFangyueFreshAirTargetsForm(this.deviceObj, 1); |
| | | Shared.Phone.UserView.HomePage.Instance.AddChidren(addDevicePage); |
| | | Shared.Phone.UserView.HomePage.Instance.PageIndex += 1; |
| | | addDevicePage.Show(); |
| | | |
| | | addDevicePage.actionFreshAirTarget += (bindName) => |
| | | { |
| | | Application.RunOnMainThread(() => |
| | | { |
| | | if (string.IsNullOrEmpty(bindName)) |
| | | { |
| | | btnNewWindStatu.Text = Language.StringByID(R.MyInternationalizationString.nothing); |
| | | } |
| | | else |
| | | { |
| | | btnNewWindStatu.Text = bindName; |
| | | } |
| | | }); |
| | | }; |
| | | |
| | | //var form = new PanelFangyueFreshAirTargetForm(); |
| | | //form.AddForm(this.deviceObj, string.Empty, 3); |
| | | }; |
| | | } |
| | | #endregion |
| | | |
| | | /// <summary> |
| | | /// 获取绑定目标 |
| | | /// </summary> |
| | | /// <param name="curControlDev"></param> |
| | | /// <returns></returns> |
| | | private async System.Threading.Tasks.Task<bool> GetBindName(CommonDevice curDev) |
| | | { |
| | | bool result = false; |
| | | //获取面板中存在的绑定目标 |
| | | FreshAir curControlDev = curDev as FreshAir; |
| | | var panelBindListRes = await curControlDev.GetDeviceBindAsync(); |
| | | if (panelBindListRes != null && panelBindListRes.getAllBindResponseData != null) |
| | | { |
| | | foreach (var bDev in panelBindListRes.getAllBindResponseData.BindList) |
| | | { |
| | | curControlDev.bindList.Add(bDev); |
| | | var device = Common.LocalDevice.Current.GetDevice(bDev.BindMacAddr, bDev.BindEpoint); |
| | | |
| | | //获取设备类型的 |
| | | var deviceEnumInfo = Common.LocalDevice.Current.GetMyDeviceEnumInfo(new List<CommonDevice>() { device }); |
| | | //新风面板的新风设备,则不显示 |
| | | if (deviceEnumInfo.ConcreteType == Common.DeviceConcreteType.ButtonPanel_FangyueFreshAir) |
| | | { |
| | | continue; |
| | | } |
| | | |
| | | if (device.Type == DeviceType.FreshAir) |
| | | { |
| | | bindFreshAirName = device.DeviceEpointName; |
| | | } |
| | | if (device.Type == DeviceType.TemperatureSensor) |
| | | { |
| | | bindTemperatureName = device.DeviceEpointName; |
| | | } |
| | | if (device.Type == DeviceType.FreshAirHumiditySensor) |
| | | { |
| | | bindHumidityName = device.DeviceEpointName; |
| | | } |
| | | //if (device.Type == DeviceType.FreshAir) |
| | | //{ |
| | | // bindPmName = device.DeviceEpointName; |
| | | //} |
| | | } |
| | | result = true; |
| | | } |
| | | return result; |
| | | } |
| | | |
| | | #region ■ PM2.5来源_________________________ |
| | | /// <summary> |
| | |
| | | private void AddPMRow() |
| | | { |
| | | //PM2.5 |
| | | var rowNewWind = new FrameRowControl(listview.rowSpace / 2); |
| | | listview.AddChidren(rowNewWind); |
| | | rowNewWind.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.PM25Source), 600); |
| | | var rowPM = new FrameRowControl(listview.rowSpace / 2); |
| | | listview.AddChidren(rowPM); |
| | | rowPM.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.PM25Source), 600); |
| | | //底线 |
| | | rowNewWind.AddBottomLine(); |
| | | rowPM.AddBottomLine(); |
| | | //右箭头 |
| | | rowNewWind.AddRightArrow(); |
| | | rowPM.AddRightArrow(); |
| | | var msg = Language.StringByID(R.MyInternationalizationString.nothing); |
| | | // 回调PM2.5来源绑定目标 |
| | | var btnNewWindStatu = rowNewWind.AddMostRightView(msg, 700); |
| | | rowNewWind.ButtonClickEvent += (sender, e) => |
| | | if (!string.IsNullOrEmpty(bindPmName)) |
| | | { |
| | | msg = bindPmName; |
| | | } |
| | | var btnPMStatu = rowPM.AddMostRightView(msg, 700); |
| | | rowPM.ButtonClickEvent += (sender, e) => |
| | | { |
| | | var addDevicePage = new Shared.Phone.UserCenter.DeviceBind.PanelFangyueFreshAirTargetsForm(this.deviceObj, 4); |
| | | Shared.Phone.UserView.HomePage.Instance.AddChidren(addDevicePage); |
| | | Shared.Phone.UserView.HomePage.Instance.PageIndex += 1; |
| | | addDevicePage.Show(); |
| | | |
| | | addDevicePage.actionPMTarget += (bindName) => |
| | | { |
| | | Application.RunOnMainThread(() => |
| | | { |
| | | if (string.IsNullOrEmpty(bindName)) |
| | | { |
| | | btnPMStatu.Text = Language.StringByID(R.MyInternationalizationString.nothing); |
| | | } |
| | | else |
| | | { |
| | | btnPMStatu.Text = bindName; |
| | | } |
| | | }); |
| | | }; |
| | | }; |
| | | } |
| | | #endregion |
| | |
| | | private void AddTemperatureSensorRow()
|
| | | {
|
| | | //温度来源 |
| | | var rowNewWind = new FrameRowControl(listview.rowSpace / 2); |
| | | listview.AddChidren(rowNewWind); |
| | | rowNewWind.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.TemperatureSource), 600); |
| | | var rowTemPerature = new FrameRowControl(listview.rowSpace / 2); |
| | | listview.AddChidren(rowTemPerature); |
| | | rowTemPerature.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.TemperatureSource), 600); |
| | | //底线 |
| | | rowNewWind.AddBottomLine(); |
| | | rowTemPerature.AddBottomLine(); |
| | | //右箭头 |
| | | rowNewWind.AddRightArrow(); |
| | | rowTemPerature.AddRightArrow(); |
| | | var msg = Language.StringByID(R.MyInternationalizationString.nothing); |
| | | // 回调温度来源绑定目标 |
| | | var btnNewWindStatu = rowNewWind.AddMostRightView(msg, 700); |
| | | rowNewWind.ButtonClickEvent += (sender, e) => |
| | | if (!string.IsNullOrEmpty(bindTemperatureName)) |
| | | { |
| | | msg = bindTemperatureName; |
| | | } |
| | | var btnTemperatureStatu = rowTemPerature.AddMostRightView(msg, 700); |
| | | rowTemPerature.ButtonClickEvent += (sender, e) => |
| | | { |
| | | var addDevicePage = new Shared.Phone.UserCenter.DeviceBind.PanelFangyueFreshAirTargetsForm(this.deviceObj, 2); |
| | | Shared.Phone.UserView.HomePage.Instance.AddChidren(addDevicePage); |
| | | Shared.Phone.UserView.HomePage.Instance.PageIndex += 1; |
| | | addDevicePage.Show(); |
| | | |
| | | addDevicePage.actionTemperatureTarget += (bindName) => |
| | | { |
| | | Application.RunOnMainThread(() => |
| | | { |
| | | if (string.IsNullOrEmpty(bindName)) |
| | | { |
| | | btnTemperatureStatu.Text = Language.StringByID(R.MyInternationalizationString.nothing); |
| | | } |
| | | else |
| | | { |
| | | btnTemperatureStatu.Text = bindName; |
| | | } |
| | | }); |
| | | }; |
| | | }; |
| | | } |
| | | #endregion |
| | |
| | | private void AddHumiditySourceRow() |
| | | { |
| | | //湿度 |
| | | var rowNewWind = new FrameRowControl(listview.rowSpace / 2); |
| | | listview.AddChidren(rowNewWind); |
| | | rowNewWind.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.HumiditySource), 600); |
| | | var rowHumidity = new FrameRowControl(listview.rowSpace / 2); |
| | | listview.AddChidren(rowHumidity); |
| | | rowHumidity.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.HumiditySource), 600); |
| | | //底线 |
| | | rowNewWind.AddBottomLine(); |
| | | rowHumidity.AddBottomLine(); |
| | | //右箭头 |
| | | rowNewWind.AddRightArrow(); |
| | | rowHumidity.AddRightArrow(); |
| | | var msg = Language.StringByID(R.MyInternationalizationString.nothing); |
| | | // 回调湿度来源绑定目标 |
| | | var btnNewWindStatu = rowNewWind.AddMostRightView(msg, 700); |
| | | rowNewWind.ButtonClickEvent += (sender, e) => |
| | | if (!string.IsNullOrEmpty(bindHumidityName)) |
| | | { |
| | | msg = bindHumidityName; |
| | | } |
| | | var btnHumidityStatu = rowHumidity.AddMostRightView(msg, 700); |
| | | rowHumidity.ButtonClickEvent += (sender, e) => |
| | | { |
| | | var addDevicePage = new Shared.Phone.UserCenter.DeviceBind.PanelFangyueFreshAirTargetsForm(this.deviceObj, 3); |
| | | Shared.Phone.UserView.HomePage.Instance.AddChidren(addDevicePage); |
| | | Shared.Phone.UserView.HomePage.Instance.PageIndex += 1; |
| | | addDevicePage.Show(); |
| | | |
| | | addDevicePage.actionHumidityTarget += (bindName) => |
| | | { |
| | | Application.RunOnMainThread(() => |
| | | { |
| | | if (string.IsNullOrEmpty(bindName)) |
| | | { |
| | | btnHumidityStatu.Text = Language.StringByID(R.MyInternationalizationString.nothing); |
| | | } |
| | | else |
| | | { |
| | | btnHumidityStatu.Text = bindName; |
| | | } |
| | | }); |
| | | }; |
| | | }; |
| | | } |
| | | #endregion |