New file |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using Shared.Common; |
| | | using Shared.Phone.UserCenter.Device.Bind; |
| | | using ZigBee.Common; |
| | | using ZigBee.Device; |
| | | |
| | | namespace Shared.Phone.UserCenter.DevicePanel |
| | | { |
| | | /// <summary>
|
| | | /// 面板的按键配置界面【该类暂时舍弃】
|
| | | /// </summary> |
| | | public class PanelSimpleEnvironmentButtonSettionForm : EditorCommonForm |
| | | { |
| | | #region ■ 变量声明___________________________
|
| | | |
| | | /// <summary>
|
| | | /// 列表控件
|
| | | /// </summary>
|
| | | private FrameListControl listview = null;
|
| | | /// <summary>
|
| | | /// 设备的某一回路
|
| | | /// </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 bindAcName = string.Empty; |
| | | /// <summary> |
| | | /// 被绑目标是新风 |
| | | /// </summary> |
| | | private CommonDevice bindFreshAirDev; |
| | | /// <summary> |
| | | /// 被绑目标是温度 |
| | | /// </summary> |
| | | private CommonDevice bindTemperatureDev; |
| | | /// <summary> |
| | | /// 被绑目标是湿度 |
| | | /// </summary> |
| | | private CommonDevice bindHumidityDev; |
| | | /// <summary> |
| | | /// 被绑目标是空调 |
| | | /// </summary> |
| | | private CommonDevice bindAcDev; |
| | | // <summary> |
| | | /// 按键中被绑定的目标列表 |
| | | /// </summary> |
| | | public List<BindObj.BindListResponseObj> bindList = new List<BindObj.BindListResponseObj>(); |
| | | |
| | | #endregion |
| | | |
| | | #region ■ 初始化_____________________________
|
| | | |
| | | /// <summary>
|
| | | /// 画面显示(底层会固定调用此方法,借以完成画面创建)
|
| | | /// </summary>
|
| | | /// <param name="i_device">设备的某一回路</param>
|
| | | public void ShowForm(CommonDevice i_device)
|
| | | {
|
| | | this.deviceObj = i_device;
|
| | | //获取数据 |
| | | InitInfo(deviceObj); |
| | |
|
| | | //设置头部信息
|
| | | base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uPanelSettion));
|
| | |
|
| | | //初始化中部信息
|
| | | this.InitMiddleFrame();
|
| | |
|
| | | //初始化右上角菜单
|
| | | this.InitTopRightMenu();
|
| | | }
|
| | |
|
| | | /// <summary>
|
| | | /// 初始化中部信息
|
| | | /// </summary>
|
| | | private void InitMiddleFrame()
|
| | | {
|
| | | //清空bodyFrame
|
| | | this.ClearBodyFrame();
|
| | |
|
| | | var listBackControl = new VerticalFrameControl(); |
| | | listBackControl.Height = bodyFrameLayout.Height; |
| | | bodyFrameLayout.AddChidren(listBackControl); |
| | | |
| | | //图片
|
| | | var btnPic = new PicViewControl(426, 426);
|
| | | btnPic.Y = Application.GetRealHeight(150);
|
| | | btnPic.UnSelectedImagePath = "RealDevice/ButtonPanelSimpleEnvironment.png";
|
| | | btnPic.Gravity = Gravity.CenterHorizontal;
|
| | | listBackControl.frameTable.AddChidren(btnPic);
|
| | |
|
| | | //初始化桌布
|
| | | var tableContr = new InformationEditorControl();
|
| | | this.listview = tableContr.InitControl(listBackControl.frameTable, Language.StringByID(R.MyInternationalizationString.uDeviceEditor), 1028);
|
| | |
|
| | | //初始化菜单行
|
| | | this.InitMenuRow();
|
| | |
|
| | | //初始化桌布完成
|
| | | tableContr.FinishInitControl();
|
| | | tableContr = null;
|
| | |
|
| | | //保存
|
| | | var btnFinish = new BottomClickButton();
|
| | | btnFinish.TextID = R.MyInternationalizationString.uSave;
|
| | | bodyFrameLayout.AddChidren(btnFinish);
|
| | | btnFinish.ButtonClickEvent += (sender, e) =>
|
| | | {
|
| | | //关闭自身
|
| | | this.CloseForm();
|
| | | };
|
| | | }
|
| | |
|
| | | /// <summary>
|
| | | /// 初始化菜单行
|
| | | /// </summary>
|
| | | private void InitMenuRow()
|
| | | {
|
| | | this.listview.RemoveAll(); |
| | | //Ac来源 |
| | | this.AddAcRow();
|
| | | //添加新风目标 |
| | | this.AddFreshAirRow(); |
| | | //添加温度来源 |
| | | this.AddTemperatureSensorRow(); |
| | | //添加湿度来源 |
| | | this.AddHumiditySourceRow(); |
| | | //亮度调节 |
| | | this.AddLevelRow(); |
| | | } |
| | | #endregion |
| | | |
| | | #region ■ 数据处理_________________________ |
| | | /// <summary> |
| | | /// 初始化数据 |
| | | /// </summary> |
| | | void InitInfo(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) + "(" + "5007" + ")", Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance); |
| | | }); |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | var mess = ex.Message; |
| | | } |
| | | finally |
| | | { |
| | | Application.RunOnMainThread(() => |
| | | { |
| | | this.InitMenuRow(); |
| | | CommonPage.Loading.Hide(); |
| | | }); |
| | | } |
| | | }); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 获取绑定目标 |
| | | /// </summary> |
| | | /// <param name="curControlDev"></param> |
| | | /// <returns></returns> |
| | | private async System.Threading.Tasks.Task<bool> GetBindName(CommonDevice curDev) |
| | | { |
| | | bool result = false; |
| | | //获取面板中存在的绑定目标 |
| | | var curControlDev = new CommonDevice(); |
| | | curControlDev.DeviceAddr = curDev.DeviceAddr; |
| | | curControlDev.CurrentGateWayId = curDev.CurrentGateWayId; |
| | | curControlDev.Type = curDev.Type; |
| | | int count = 0; |
| | | for (int i = 1; i < 3; i++) |
| | | { |
| | | curControlDev.DeviceEpoint = i; |
| | | |
| | | var panelBindListRes = HdlDeviceBindLogic.Current.GetDeviceBindAsync(curControlDev); |
| | | if (panelBindListRes != null && panelBindListRes.getAllBindResponseData != null) |
| | | { |
| | | bindList = panelBindListRes.getAllBindResponseData.BindList; |
| | | foreach (var bDev in bindList) |
| | | { |
| | | var device = Common.LocalDevice.Current.GetDevice(bDev.BindMacAddr, bDev.BindEpoint); |
| | | if (device == null) |
| | | { |
| | | continue; |
| | | } |
| | | if (device.Type == DeviceType.FreshAir) |
| | | { |
| | | //获取设备类型的 |
| | | var deviceEnumInfo = Common.LocalDevice.Current.GetMyDeviceEnumInfo(new List<CommonDevice>() { device }); |
| | | //新风面板的新风设备,则不显示 |
| | | if (deviceEnumInfo.ConcreteType == Common.DeviceConcreteType.ButtonPanel_FangyueFreshAir) |
| | | { |
| | | continue; |
| | | } |
| | | bindFreshAirName = Common.LocalDevice.Current.GetDeviceEpointName(device); |
| | | bindFreshAirDev = device; |
| | | } |
| | | else if (device.Type == DeviceType.TemperatureSensor) |
| | | { |
| | | var bD = device as TemperatureSensor; |
| | | if (bD.SensorDiv == 1) |
| | | { |
| | | bindTemperatureName = Common.LocalDevice.Current.GetDeviceEpointName(device); |
| | | bindTemperatureDev = device; |
| | | } |
| | | if (bD.SensorDiv == 2) |
| | | { |
| | | bindHumidityName = Common.LocalDevice.Current.GetDeviceEpointName(device); |
| | | bindHumidityDev = device; |
| | | } |
| | | } |
| | | else if (device.Type == DeviceType.FreshAirHumiditySensor) |
| | | { |
| | | bindHumidityName = Common.LocalDevice.Current.GetDeviceEpointName(device); |
| | | bindHumidityDev = device; |
| | | } |
| | | else if (device.Type == DeviceType.Thermostat) |
| | | { |
| | | bindAcName = Common.LocalDevice.Current.GetDeviceEpointName(device); |
| | | bindAcDev = device; |
| | | } |
| | | else if (device.Type == DeviceType.PMSensor) |
| | | { |
| | | if (bDev.BindCluster == 1026) |
| | | { |
| | | bindTemperatureName = Common.LocalDevice.Current.GetDeviceEpointName(device) + "-" + Language.StringByID(R.MyInternationalizationString.TemperatureSensor); |
| | | bindTemperatureDev = device; |
| | | } |
| | | if (bDev.BindCluster == 1029) |
| | | { |
| | | bindHumidityName = Common.LocalDevice.Current.GetDeviceEpointName(device) + "-" + Language.StringByID(R.MyInternationalizationString.HumiditySensor); |
| | | bindHumidityDev = device; |
| | | } |
| | | } |
| | | } |
| | | count++; |
| | | if (count == 2) |
| | | { |
| | | result = true; |
| | | } |
| | | } |
| | | } |
| | | |
| | | return result; |
| | | } |
| | | #endregion |
| | | |
| | | #region ■ Ac来源_________________________ |
| | | /// <summary> |
| | | /// Ac来源行 |
| | | /// </summary> |
| | | private void AddAcRow() |
| | | { |
| | | //Ac |
| | | var rowAc = new FrameRowControl(listview.rowSpace / 2); |
| | | listview.AddChidren(rowAc); |
| | | rowAc.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.AcTargets), 600); |
| | | //底线 |
| | | rowAc.AddBottomLine(); |
| | | //右箭头 |
| | | rowAc.AddRightArrow(); |
| | | var msg = Language.StringByID(R.MyInternationalizationString.nothing); |
| | | if (!string.IsNullOrEmpty(bindAcName)) |
| | | { |
| | | msg = bindAcName; |
| | | } |
| | | var btnAcStatu = rowAc.AddMostRightView(msg, 700); |
| | | rowAc.ButtonClickEvent += (sender, e) => |
| | | { |
| | | this.deviceObj.DeviceEpoint = 1; |
| | | var paneTargetsBaseFormp = new PaneTargetsBaseForm(this.deviceObj, bindAcDev, DeviceBind.BindInfo.BindType.AC); |
| | | Shared.Phone.UserView.HomePage.Instance.AddChidren(paneTargetsBaseFormp); |
| | | Shared.Phone.UserView.HomePage.Instance.PageIndex += 1; |
| | | paneTargetsBaseFormp.Show(); |
| | | |
| | | paneTargetsBaseFormp.actionAcTarget += (bindName) => |
| | | { |
| | | Application.RunOnMainThread(() => |
| | | { |
| | | if (string.IsNullOrEmpty(bindName)) |
| | | { |
| | | btnAcStatu.Text = Language.StringByID(R.MyInternationalizationString.nothing); |
| | | } |
| | | else |
| | | { |
| | | btnAcStatu.Text = bindName; |
| | | } |
| | | }); |
| | | }; |
| | | }; |
| | | } |
| | | #endregion |
| | |
|
| | | #region ■ 新风目标_________________________ |
| | | /// <summary> |
| | | /// 新风目标行 |
| | | /// </summary> |
| | | private void AddFreshAirRow() |
| | | { |
| | | //新风目标
|
| | | var rowNewWind = new FrameRowControl(listview.rowSpace / 2);
|
| | | listview.AddChidren(rowNewWind);
|
| | | rowNewWind.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.uNewWindTarget), 600);
|
| | | //底线
|
| | | rowNewWind.AddBottomLine();
|
| | | //右箭头
|
| | | 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) =>
|
| | | { |
| | | this.deviceObj.DeviceEpoint = 2; |
| | | var paneTargetsBaseFormp = new PaneTargetsBaseForm(this.deviceObj, bindAcDev, DeviceBind.BindInfo.BindType.FreshAir); |
| | | Shared.Phone.UserView.HomePage.Instance.AddChidren(paneTargetsBaseFormp); |
| | | Shared.Phone.UserView.HomePage.Instance.PageIndex += 1; |
| | | paneTargetsBaseFormp.Show(); |
| | | paneTargetsBaseFormp.actionFreshAirTarget += (bindName) => |
| | | { |
| | | Application.RunOnMainThread(() => |
| | | { |
| | | if (string.IsNullOrEmpty(bindName)) |
| | | { |
| | | btnNewWindStatu.Text = Language.StringByID(R.MyInternationalizationString.nothing); |
| | | } |
| | | else |
| | | { |
| | | btnNewWindStatu.Text = bindName; |
| | | } |
| | | }); |
| | | }; |
| | | |
| | | }; |
| | | } |
| | | #endregion |
| | | |
| | | #region ■ 温度来源_________________________ |
| | | /// <summary> |
| | | /// 温度来源行 |
| | | /// </summary> |
| | | private void AddTemperatureSensorRow()
|
| | | {
|
| | | //温度来源 |
| | | var rowTemPerature = new FrameRowControl(listview.rowSpace / 2); |
| | | listview.AddChidren(rowTemPerature); |
| | | rowTemPerature.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.TemperatureSource), 600); |
| | | //底线 |
| | | rowTemPerature.AddBottomLine(); |
| | | //右箭头 |
| | | rowTemPerature.AddRightArrow(); |
| | | var msg = Language.StringByID(R.MyInternationalizationString.nothing); |
| | | if (!string.IsNullOrEmpty(bindTemperatureName)) |
| | | { |
| | | msg = bindTemperatureName; |
| | | } |
| | | var btnTemperatureStatu = rowTemPerature.AddMostRightView(msg, 700); |
| | | rowTemPerature.ButtonClickEvent += (sender, e) => |
| | | { |
| | | this.deviceObj.DeviceEpoint = 1; |
| | | var paneTargetsBaseFormp = new PaneTargetsBaseForm(this.deviceObj, bindAcDev, DeviceBind.BindInfo.BindType.Temperature); |
| | | Shared.Phone.UserView.HomePage.Instance.AddChidren(paneTargetsBaseFormp); |
| | | Shared.Phone.UserView.HomePage.Instance.PageIndex += 1; |
| | | paneTargetsBaseFormp.Show(); |
| | | paneTargetsBaseFormp.actionTemperatureTarget += (bindName) => |
| | | { |
| | | Application.RunOnMainThread(() => |
| | | { |
| | | if (string.IsNullOrEmpty(bindName)) |
| | | { |
| | | btnTemperatureStatu.Text = Language.StringByID(R.MyInternationalizationString.nothing); |
| | | } |
| | | else |
| | | { |
| | | btnTemperatureStatu.Text = bindName; |
| | | } |
| | | }); |
| | | }; |
| | | }; |
| | | } |
| | | #endregion |
| | | |
| | | #region ■ 湿度来源_________________________ |
| | | /// <summary> |
| | | /// 湿度来源行 |
| | | /// </summary> |
| | | private void AddHumiditySourceRow() |
| | | { |
| | | //湿度 |
| | | var rowHumidity = new FrameRowControl(listview.rowSpace / 2); |
| | | listview.AddChidren(rowHumidity); |
| | | rowHumidity.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.HumiditySource), 600); |
| | | //底线 |
| | | rowHumidity.AddBottomLine(); |
| | | //右箭头 |
| | | rowHumidity.AddRightArrow(); |
| | | var msg = Language.StringByID(R.MyInternationalizationString.nothing); |
| | | if (!string.IsNullOrEmpty(bindHumidityName)) |
| | | { |
| | | msg = bindHumidityName; |
| | | } |
| | | var btnHumidityStatu = rowHumidity.AddMostRightView(msg, 700); |
| | | rowHumidity.ButtonClickEvent += (sender, e) => |
| | | { |
| | | this.deviceObj.DeviceEpoint = 1; |
| | | var paneTargetsBaseFormp = new PaneTargetsBaseForm(this.deviceObj, bindAcDev, DeviceBind.BindInfo.BindType.Humidity); |
| | | Shared.Phone.UserView.HomePage.Instance.AddChidren(paneTargetsBaseFormp); |
| | | Shared.Phone.UserView.HomePage.Instance.PageIndex += 1; |
| | | paneTargetsBaseFormp.Show(); |
| | | paneTargetsBaseFormp.actionHumidityTarget += (bindName) => |
| | | { |
| | | Application.RunOnMainThread(() => |
| | | { |
| | | if (string.IsNullOrEmpty(bindName)) |
| | | { |
| | | btnHumidityStatu.Text = Language.StringByID(R.MyInternationalizationString.nothing); |
| | | } |
| | | else |
| | | { |
| | | btnHumidityStatu.Text = bindName; |
| | | } |
| | | }); |
| | | }; |
| | | }; |
| | | } |
| | | #endregion |
| | | |
| | | #region ■ 亮度调节_________________________ |
| | | /// <summary> |
| | | /// 亮度调节行 |
| | | /// </summary> |
| | | private void AddLevelRow() |
| | | { |
| | | //亮度调节 |
| | | var rowLight = new FrameRowControl(listview.rowSpace / 2);
|
| | | listview.AddChidren(rowLight);
|
| | | rowLight.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.uLightRegulation), 600);
|
| | | //底线
|
| | | rowLight.AddBottomLine();
|
| | | //右箭头
|
| | | rowLight.AddRightArrow();
|
| | | rowLight.ButtonClickEvent += (sender, e) =>
|
| | | { |
| | | var form = new PanelBrightnessAdjustForm();
|
| | | form.AddForm(this.deviceObj);
|
| | | }; |
| | | } |
| | | #endregion
|
| | | |
| | | #region ■ 右上角菜单_________________________ |
| | | /// <summary>
|
| | | /// 初始化右上角菜单
|
| | | /// </summary>
|
| | | private void InitTopRightMenu()
|
| | | {
|
| | | //检测此回路是否拥有定位功能
|
| | | if (Common.LocalDevice.Current.DeviceIsCanFixedPosition(deviceObj) == false)
|
| | | {
|
| | | return;
|
| | | }
|
| | | var btnIcon = new MostRightIconControl(69, 69);
|
| | | btnIcon.UnSelectedImagePath = "Item/More.png";
|
| | | topFrameLayout.AddChidren(btnIcon);
|
| | | btnIcon.InitControl();
|
| | | btnIcon.ButtonClickEvent += ((sender, e) =>
|
| | | {
|
| | | //显示右上角菜单界面
|
| | | this.ShowTopRightMenu();
|
| | | });
|
| | | }
|
| | |
|
| | | /// <summary>
|
| | | /// 显示右上角菜单界面
|
| | | /// </summary>
|
| | | private void ShowTopRightMenu()
|
| | | {
|
| | | var frame = new TopRightMenuControl(1, 1);
|
| | | //定位
|
| | | string deviceMenu = Language.StringByID(R.MyInternationalizationString.uFixedPosition);
|
| | | frame.AddRowMenu(deviceMenu, "Item/FixedPosition.png", "Item/FixedPositionSelected.png", () =>
|
| | | {
|
| | | //发送定位功能
|
| | | Common.LocalDevice.Current.SetFixedPositionCommand(deviceObj);
|
| | | });
|
| | | }
|
| | |
|
| | | #endregion
|
| | | }
|
| | | } |