| | |
| | | /// 控件信息
|
| | | /// </summary>
|
| | | private Dictionary<string, RowControlInfo> dicControl = new Dictionary<string, RowControlInfo>();
|
| | | /// <summary>
|
| | | /// 激活的设备地址
|
| | | /// </summary>
|
| | | private string actionDeviceKeys = null;
|
| | |
|
| | | #endregion
|
| | |
|
| | |
| | |
|
| | | var frameTemp = new FrameLayout();
|
| | | frameTemp.Height = Application.GetRealHeight(69);
|
| | | listView.AddChidrenFrame(frameTemp);
|
| | | listView.AddChidren(frameTemp);
|
| | |
|
| | | HdlThreadLogic.Current.RunMainInThread(() =>
|
| | | {
|
| | |
| | | }
|
| | | var frameTemp2 = new FrameLayout();
|
| | | frameTemp2.Height = Application.GetRealHeight(29);
|
| | | listView.AddChidrenFrame(frameTemp2);
|
| | | listView.AddChidren(frameTemp2);
|
| | |
|
| | | //数据接收
|
| | | this.StartReceiveDataEvent();
|
| | |
| | | {
|
| | | var rowInfo = new RowControlInfo();
|
| | |
|
| | | var frameTable = new FrameLayoutControl();
|
| | | var frameTable = new FrameLayoutStatuControl();
|
| | | frameTable.UseClickStatu = false;
|
| | | frameTable.Width = Application.GetRealWidth(994);
|
| | | frameTable.Height = Application.GetRealHeight(337);
|
| | | frameTable.BackgroundImagePath = "Item/IndoorUnitGround.png";
|
| | | frameTable.Gravity = Gravity.CenterHorizontal;
|
| | | listView.AddChidrenFrame(frameTable);
|
| | | listView.AddChidren(frameTable);
|
| | |
|
| | | //设备图标
|
| | | var btnIconBack = new FrameLayout();
|
| | | btnIconBack.X = Application.GetRealWidth(46);
|
| | | btnIconBack.Y = Application.GetRealHeight(43);
|
| | | btnIconBack.Height = Application.GetMinRealAverage(112);
|
| | | btnIconBack.Width = Application.GetMinRealAverage(112);
|
| | | btnIconBack.Radius = (uint)Application.GetMinRealAverage(112) / 2;
|
| | | btnIconBack.Height = this.GetPictrueRealSize(112);
|
| | | btnIconBack.Width = this.GetPictrueRealSize(112);
|
| | | btnIconBack.Radius = (uint)this.GetPictrueRealSize(112) / 2;
|
| | | btnIconBack.BackgroundColor = 0xfff5f6fa;
|
| | | frameTable.AddChidren(btnIconBack, ChidrenBindMode.NotBind);
|
| | | rowInfo.btnIconBack = btnIconBack;
|
| | |
| | | btnIcon.Gravity = Gravity.Center;
|
| | | Common.LocalDevice.Current.SetDeviceIconToControl(btnIcon, device);
|
| | | btnIconBack.AddChidren(btnIcon);
|
| | | frameTable.ChangedChidrenBindMode(btnIconBack, ChidrenBindMode.BindEventOnly);
|
| | | frameTable.ChangedChidrenBindMode(btnIconBack, ChidrenBindMode.BindEvent);
|
| | | rowInfo.btnIcon = btnIcon;
|
| | |
|
| | | //设备名称
|
| | | var btnDeviceName = new NormalViewControl(400, 60, true);
|
| | | var btnDeviceName = new NormalViewControl(700, 60, true);
|
| | | btnDeviceName.Text = Common.LocalDevice.Current.GetDeviceEpointName(device);
|
| | | btnDeviceName.X = Application.GetRealWidth(193);
|
| | | btnDeviceName.Y = Application.GetRealHeight(45);
|
| | | frameTable.AddChidren(btnDeviceName, ChidrenBindMode.BindEventOnly);
|
| | | frameTable.AddChidren(btnDeviceName, ChidrenBindMode.BindEvent);
|
| | | rowInfo.btnDeviceName = btnDeviceName;
|
| | | //房间
|
| | | var btnRoom = new NormalViewControl(400, 50, true);
|
| | | btnRoom.X = btnDeviceName.X;
|
| | | btnRoom.Y = btnDeviceName.Bottom + Application.GetRealHeight(12);
|
| | | btnRoom.TextSize = 12;
|
| | | btnRoom.TextColor = UserCenterColor.Current.TextGrayColor1;
|
| | | btnRoom.Text = Common.Room.CurrentRoom.GetRoomNameByDevice(device);
|
| | | frameTable.AddChidren(btnRoom, ChidrenBindMode.BindEventOnly);
|
| | | btnRoom.Text = HdlRoomLogic.Current.GetRoomNameByDevice(device);
|
| | | frameTable.AddChidren(btnRoom, ChidrenBindMode.BindEvent);
|
| | | rowInfo.btnRoom = btnRoom;
|
| | | //摄氏度
|
| | | var btnValue = new NormalViewControl(300, 60, true);
|
| | | btnValue.Y = Application.GetRealHeight(58);
|
| | | btnValue.X = frameTable.Width - Application.GetRealWidth(300 + 58);
|
| | | btnValue.TextAlignment = TextAlignment.CenterRight;
|
| | | btnValue.TextID = R.MyInternationalizationString.uGetting;
|
| | | frameTable.AddChidren(btnValue, ChidrenBindMode.BindEventOnly);
|
| | | frameTable.AddChidren(btnValue, ChidrenBindMode.BindEvent);
|
| | | rowInfo.btnValue = btnValue;
|
| | | //警告图标
|
| | | var btnWarningIcon = new IconViewControl(69);
|
| | |
| | |
|
| | | frameTable.ButtonClickEvent += (sender, e) =>
|
| | | {
|
| | | this.actionDeviceKeys = Common.LocalDevice.Current.GetDeviceMainKeys(device);
|
| | |
|
| | | var form = new IndoorUnitSettionForm();
|
| | | form.AddForm(device);
|
| | | };
|
| | |
| | | {
|
| | | for (int i = 0; i < listDevice.Count; i++)
|
| | | {
|
| | | if (i != 0 && i % 5 == 0)
|
| | | if (this.Parent == null)
|
| | | {
|
| | | //读取5个后,间隔一段时间
|
| | | System.Threading.Thread.Sleep(200);
|
| | | if (this.Parent == null)
|
| | | {
|
| | | return;
|
| | | }
|
| | | return;
|
| | | }
|
| | | //获取当前室温
|
| | | ((AC)listDevice[i]).ReadLocalTemperature();
|
| | | //获取开关状态(处于某种工作状态,即为打开状态)
|
| | | ((AC)listDevice[i]).ReadSystemMode();
|
| | | //清洗滤网
|
| | | listDevice[i].ReadAttri(Cluster_ID.Thermostat, AttriButeId.FilterCleaningStatus);
|
| | | //读取状态
|
| | | HdlDeviceAttributeLogic.Current.SendThermostatStatuComand(listDevice[i]);
|
| | | System.Threading.Thread.Sleep(200);
|
| | | }
|
| | | });
|
| | | }
|
| | |
| | | /// </summary>
|
| | | private void StartReceiveDataEvent()
|
| | | {
|
| | | HdlDeviceAttributeLogic.Current.AddAttributeEvent("IndoorUnitListFormEvent", "DeviceStatusReport", (device) =>
|
| | | HdlGatewayReceiveLogic.Current.AddAttributeEvent("IndoorUnitListFormEvent", ReceiveComandDiv.A设备属性上报, (device) =>
|
| | | {
|
| | | string mainkeys = Common.LocalDevice.Current.GetDeviceMainKeys(device);
|
| | | if (dicControl.ContainsKey(mainkeys) == false || device.DeviceStatusReport.CluterID != 513)
|
| | |
| | | var data = device.DeviceStatusReport.AttriBute[i];
|
| | | if (data.AttributeId == 0)
|
| | | {
|
| | | //室内温度
|
| | | if (data.AttriButeData == 0)
|
| | | HdlThreadLogic.Current.RunMain(() =>
|
| | | {
|
| | | //0℃
|
| | | rowInfo.btnValue.Text = "0.0℃";
|
| | | }
|
| | | else if (data.AttriButeData > 32767)
|
| | | {
|
| | | //负数(特殊处理)
|
| | | string strValue = (data.AttriButeData - 65536).ToString();
|
| | | //小数点需要一位
|
| | | strValue = strValue.Substring(0, strValue.Length - 1);
|
| | | rowInfo.btnValue.Text = strValue.Insert(strValue.Length - 1, ".") + "℃";
|
| | | }
|
| | | else
|
| | | {
|
| | | //小数点需要一位
|
| | | string strValue = data.AttriButeData.ToString();
|
| | | strValue = strValue.Substring(0, strValue.Length - 1);
|
| | | rowInfo.btnValue.Text = strValue.Insert(strValue.Length - 1, ".") + "℃";
|
| | | }
|
| | | //室内温度
|
| | | if (data.AttriButeData == 0)
|
| | | {
|
| | | //0℃
|
| | | rowInfo.btnValue.Text = "0.0℃";
|
| | | }
|
| | | else if (data.AttriButeData > 32767)
|
| | | {
|
| | | //负数(特殊处理)
|
| | | string strValue = (data.AttriButeData - 65536).ToString();
|
| | | //小数点需要一位
|
| | | strValue = strValue.Substring(0, strValue.Length - 1);
|
| | | rowInfo.btnValue.Text = strValue.Insert(strValue.Length - 1, ".") + "℃";
|
| | | }
|
| | | else
|
| | | {
|
| | | //小数点需要一位
|
| | | string strValue = data.AttriButeData.ToString();
|
| | | strValue = strValue.Substring(0, strValue.Length - 1);
|
| | | rowInfo.btnValue.Text = strValue.Insert(strValue.Length - 1, ".") + "℃";
|
| | | }
|
| | | });
|
| | | }
|
| | | else if (data.AttributeId == 28)
|
| | | {
|
| | |
| | | //Off = 0 Auto = 1 Cool = 3 Heat = 4 FanOnly = 7 Dry = 8
|
| | | if (data.AttriButeData != 0)
|
| | | {
|
| | | rowInfo.btnSwitch.IsSelected = true;
|
| | | rowInfo.btnIcon.IsSelected = true;
|
| | | rowInfo.btnIconBack.BackgroundColor = 0xfffef1ed;
|
| | | HdlThreadLogic.Current.RunMain(() =>
|
| | | {
|
| | | rowInfo.btnSwitch.IsSelected = true;
|
| | | rowInfo.btnIcon.IsSelected = true;
|
| | | rowInfo.btnIconBack.BackgroundColor = 0xfffef1ed;
|
| | | });
|
| | | }
|
| | | }
|
| | | else if (data.AttributeId == 4097)
|
| | |
| | | //42:需要清洗滤网
|
| | | if (data.AttriButeData == 42)
|
| | | {
|
| | | rowInfo.btnWarningIcon.Visible = true;
|
| | | //请注意清洗滤网哦
|
| | | rowInfo.btnWarningMsg.TextID = R.MyInternationalizationString.uPleaseClreanACfilter;
|
| | | HdlThreadLogic.Current.RunMain(() =>
|
| | | {
|
| | | rowInfo.btnWarningIcon.Visible = true;
|
| | | //请注意清洗滤网哦
|
| | | rowInfo.btnWarningMsg.TextID = R.MyInternationalizationString.uPleaseClreanACfilter;
|
| | | });
|
| | | }
|
| | | }
|
| | | }
|
| | |
| | | /// <summary>
|
| | | /// 界面关闭
|
| | | /// </summary>
|
| | | public override void CloseForm()
|
| | | public override void CloseFormBefore()
|
| | | {
|
| | | HdlDeviceAttributeLogic.Current.RemoveEvent("IndoorUnitListFormEvent");
|
| | | HdlGatewayReceiveLogic.Current.RemoveEvent("IndoorUnitListFormEvent");
|
| | |
|
| | | base.CloseForm();
|
| | | base.CloseFormBefore();
|
| | | }
|
| | |
|
| | | #endregion
|
| | |
|
| | | #region ■ 界面重新激活事件___________________
|
| | |
|
| | | /// <summary>
|
| | | /// 自身的上层界面关闭后,它自身处于最上层时,触发的事件
|
| | | /// </summary>
|
| | | public override int FormActionAgainEvent()
|
| | | {
|
| | | if (this.actionDeviceKeys != null && dicControl.ContainsKey(this.actionDeviceKeys) == true)
|
| | | {
|
| | | //刷新设备信息
|
| | | var device = Common.LocalDevice.Current.GetDevice(this.actionDeviceKeys);
|
| | | if (device != null)
|
| | | {
|
| | | var contr = dicControl[this.actionDeviceKeys];
|
| | | contr.btnDeviceName.Text = Common.LocalDevice.Current.GetDeviceEpointName(device);
|
| | | contr.btnRoom.Text = HdlRoomLogic.Current.GetRoomNameByDevice(device);
|
| | | }
|
| | | }
|
| | | this.actionDeviceKeys = null;
|
| | |
|
| | | return 1;
|
| | | }
|
| | |
|
| | | #endregion
|
| | |
| | | private class RowControlInfo
|
| | | {
|
| | | /// <summary>
|
| | | /// 设备名字
|
| | | /// </summary>
|
| | | public NormalViewControl btnDeviceName = null;
|
| | | /// <summary>
|
| | | /// 设备房间
|
| | | /// </summary>
|
| | | public NormalViewControl btnRoom = null;
|
| | | /// <summary>
|
| | | /// 设备图标背景
|
| | | /// </summary>
|
| | | public FrameLayout btnIconBack = null;
|