| | |
| | | listBodyContr.RecoverTableHeight();
|
| | | }
|
| | |
|
| | | //初始化默认楼层ID
|
| | | this.InitDefultFloorId();
|
| | |
|
| | | //初始化头部控件
|
| | | this.InitTopFrameLayoutControl();
|
| | | //初始化中间控件
|
| | |
| | | this.AddNormalDeviceReportEvent();
|
| | | //添加传感器状态上报事件
|
| | | this.AddSensorDeviceReportEvent();
|
| | | //开启传感器状态还原的线程
|
| | | this.StartRecoverSenorStatuThread();
|
| | | }
|
| | |
|
| | | /// <summary>
|
| | |
| | | btnHouseName.TextColor = ZigbeeColor.Current.GXCTextDeepBlackColor;
|
| | | btnHouseName.IsBold = true;
|
| | | btnHouseName.Text = Config.Instance.Home.Name;
|
| | | btnHouseName.Width = btnHouseName.GetRealWidthByText();
|
| | | btnHouseName.Width = btnHouseName.GetRealWidthByText() + Application.GetRealWidth(100);
|
| | | this.listBodyContr.frameTable.AddChidren(btnHouseName);
|
| | |
|
| | | //切换住宅
|
| | |
| | | this.listBodyContr.frameTable.AddChidren(bg);
|
| | |
|
| | | var tip = new NormalViewControl(this.GetPictrueRealSize(717), this.GetPictrueRealSize(58), false);
|
| | | tip.Y = Application.GetRealHeight(815);
|
| | | tip.Y = bg.Bottom + Application.GetRealHeight(35);
|
| | | tip.Gravity = Gravity.CenterHorizontal;
|
| | | tip.TextID = R.MyInternationalizationString.NewAccountNeedBingGW;
|
| | | tip.TextColor = ZigbeeColor.Current.GXCTextGrayColor;
|
| | |
| | | this.listBodyContr.frameTable.AddChidren(tip);
|
| | |
|
| | | var addBG = new PicViewControl(971, 366);
|
| | | addBG.Y = Application.GetRealHeight(1048);
|
| | | addBG.Y = tip.Bottom + Application.GetRealHeight(176);
|
| | | addBG.UnSelectedImagePath = "Item/VirtualFrame.png";
|
| | | addBG.Gravity = Gravity.CenterHorizontal;
|
| | | this.listBodyContr.frameTable.AddChidren(addBG);
|
| | |
|
| | | var addGatewayBtn = new IconViewControl(89);
|
| | | addGatewayBtn.Y = Application.GetRealHeight(1143);
|
| | | addGatewayBtn.Y = tip.Bottom + Application.GetRealHeight(271);
|
| | | addGatewayBtn.UnSelectedImagePath = "Item/Add_GW.png";
|
| | | addGatewayBtn.Gravity = Gravity.CenterHorizontal;
|
| | | this.listBodyContr.frameTable.AddChidren(addGatewayBtn);
|
| | |
| | | };
|
| | |
|
| | | var addTip = new PicViewControl(717, 58);
|
| | | addTip.Y = Application.GetRealHeight(1256);
|
| | | addTip.Y = addGatewayBtn.Bottom + Application.GetRealHeight(23);
|
| | | addTip.Gravity = Gravity.CenterHorizontal;
|
| | | addTip.TextID = R.MyInternationalizationString.AddSmartGW;
|
| | | addTip.TextColor = ZigbeeColor.Current.GXCTextBlackColor;
|
| | |
| | | bodyFrameLayout.RemoveAll();
|
| | | bodyFrameLayout.Height = Application.GetRealHeight(750);
|
| | | this.listBodyContr.RecoverTableHeight();
|
| | | this.dicSceneCardControl.Clear();
|
| | | this.dicDeviceCardControl.Clear();
|
| | | this.dicSceneCardControl = new Dictionary<int, Controls.SceneCardControl>();
|
| | | this.dicDeviceCardControl = new Dictionary<string, Controls.DeviceCardCommon>();
|
| | |
|
| | | var listDevice = new List<CommonDevice>();
|
| | | foreach (var mainkeys in HdlRoomLogic.Current.NowMainPageRoom.ListDevice)
|
| | |
| | | {
|
| | | cardContr = new Controls.DeviceFreshAirCardControl();
|
| | | }
|
| | | // PM2.5
|
| | | else if (device.Type == DeviceType.PMSensor)
|
| | | {
|
| | | cardContr = new Controls.DevicePmSensorCardControl();
|
| | | }
|
| | | //彩灯(调光器)
|
| | | else if (device.Type == DeviceType.DimmableLight)
|
| | | {
|
| | |
| | | }
|
| | | HdlThreadLogic.Current.RunThread(() =>
|
| | | {
|
| | | for (int i = 0; i < listContr.Count; i++)
|
| | | while (listDeviceBackContr.Parent != null)
|
| | | {
|
| | | if (listDeviceBackContr.Parent == null)
|
| | | bool hadSend = false;
|
| | | for (int i = 0; i < listContr.Count; i++)
|
| | | {
|
| | | return;
|
| | | if (listDeviceBackContr.Parent == null)
|
| | | {
|
| | | return;
|
| | | }
|
| | | //如果还没有接收到数据,则再次发送
|
| | | if (listContr[i].ReceiveResponeResultStatu() == false)
|
| | | {
|
| | | //发送获取状态的命令
|
| | | listContr[i].SendStatuComand();
|
| | | hadSend = true;
|
| | | System.Threading.Thread.Sleep(200);
|
| | | }
|
| | | }
|
| | | System.Threading.Thread.Sleep(200);
|
| | | //发送获取状态的命令
|
| | | listContr[i].SendStatuComand();
|
| | | if (hadSend == false)
|
| | | {
|
| | | //如果已经全部回路都接收了网关回复,则不再二次发送
|
| | | break;
|
| | | }
|
| | | System.Threading.Thread.Sleep(2000);
|
| | | }
|
| | |
|
| | | }, ShowErrorMode.NO);
|
| | | }
|
| | | });
|
| | |
| | | bodyFrameLayout.RemoveAll();
|
| | | bodyFrameLayout.Height = Application.GetRealHeight(750);
|
| | | this.listBodyContr.RecoverTableHeight();
|
| | | this.dicSceneCardControl.Clear();
|
| | | this.dicDeviceCardControl.Clear();
|
| | | this.dicSceneCardControl = new Dictionary<int, Controls.SceneCardControl>();
|
| | | this.dicDeviceCardControl = new Dictionary<string, Controls.DeviceCardCommon>();
|
| | |
|
| | | var listScene = new List<SceneUI>();
|
| | | foreach (int sceneId in HdlRoomLogic.Current.NowMainPageRoom.ListSceneId)
|
| | |
| | | this.ShowProgressBar();
|
| | |
|
| | | //切换住宅
|
| | | HdlResidenceLogic.Current.SwitchResidence(home.Id);
|
| | | var result = HdlResidenceLogic.Current.SwitchResidence(home.Id);
|
| | |
|
| | | HdlThreadLogic.Current.RunMain(() =>
|
| | | {
|
| | | //刷新界面
|
| | | this.ShowForm();
|
| | |
|
| | | if (result == true)
|
| | | {
|
| | | //刷新界面
|
| | | this.ShowForm();
|
| | | }
|
| | | this.CloseProgressBar();
|
| | | });
|
| | | });
|
| | |
| | | {
|
| | | //传感器不需要属性上报(但是那个球型传感器居然会属性上报)
|
| | | this.dicDeviceCardControl[mainKeys].RefreshControlInfo(locadevice);
|
| | | }
|
| | | else if (report.DeviceStatusReport.CluterID == 1)
|
| | | {
|
| | | //这个是电量推送
|
| | | this.dicDeviceCardControl[mainKeys].RefreshBatteryStatu();
|
| | | }
|
| | | }
|
| | | }, ShowErrorMode.NO);
|
| | |
| | | }
|
| | |
|
| | | }, ShowErrorMode.NO);
|
| | | });
|
| | | }
|
| | |
|
| | | #endregion
|
| | |
|
| | | #region ■ 传感器状态还原_____________________
|
| | |
|
| | | /// <summary>
|
| | | /// 开启传感器状态还原的线程
|
| | | /// </summary>
|
| | | private void StartRecoverSenorStatuThread()
|
| | | {
|
| | | HdlThreadLogic.Current.RunThread(() =>
|
| | | {
|
| | | while (this.Parent != null)
|
| | | {
|
| | | try
|
| | | {
|
| | | var dicControl = this.dicDeviceCardControl;
|
| | | foreach (var contr in dicControl.Values)
|
| | | {
|
| | | //如果是传感器,则刷新状态
|
| | | if (contr.device.Type == DeviceType.IASZone && contr.Parent != null
|
| | | && ((IASZone)contr.device).iASInfo == null)
|
| | | {
|
| | | HdlThreadLogic.Current.RunMain(() =>
|
| | | {
|
| | | //设备状态必须刷新
|
| | | string statuText = HdlDeviceOtherLogic.Current.GetDeviceStatu(contr.device);
|
| | | contr.SetDeviceStatuText(statuText);
|
| | | //传感器切换为灰色状态
|
| | | contr.SwitchCardStatuAppeal(false);
|
| | |
|
| | | }, ShowErrorMode.NO);
|
| | | }
|
| | | }
|
| | | System.Threading.Thread.Sleep(8000);
|
| | | }
|
| | | catch { System.Threading.Thread.Sleep(3000); }
|
| | | }
|
| | | });
|
| | | }
|
| | |
|
| | |
| | | return false;
|
| | | }
|
| | | return true;
|
| | | }
|
| | |
|
| | | /// <summary>
|
| | | /// 初始化默认楼层ID
|
| | | /// </summary>
|
| | | private void InitDefultFloorId()
|
| | | {
|
| | | if (Config.Instance.Home.CurrentFloorId != string.Empty)
|
| | | {
|
| | | return;
|
| | | }
|
| | | var dicFloor = HdlRoomLogic.Current.GetFloorSortList();
|
| | | foreach (var floorId in dicFloor.Keys)
|
| | | {
|
| | | Config.Instance.Home.CurrentFloorId = floorId;
|
| | | break;
|
| | | }
|
| | | }
|
| | |
|
| | | #endregion
|