old mode 100755
new mode 100644
| | |
| | | //先清除吧
|
| | | this.RemoveAll();
|
| | |
|
| | | //初始化默认楼层ID
|
| | | this.InitDefultFloorId();
|
| | |
|
| | | //初始化头部控件
|
| | | this.InitTopControl();
|
| | | //初始化中间控件
|
| | |
| | | topFrameLayout.BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor;
|
| | | this.AddChidren(topFrameLayout);
|
| | | //标题分类
|
| | | var btnTitle = new NormalViewControl(300, 95, true);
|
| | | var btnTitle = new NormalViewControl(400, 95, true);
|
| | | btnTitle.X = ControlCommonResourse.XXLeft;
|
| | | btnTitle.Gravity = Gravity.CenterVertical;
|
| | | btnTitle.TextID = R.MyInternationalizationString.Category;
|
| | |
| | | frameDeviceBack.AddChidren(listDeviceView);
|
| | |
|
| | | //上一次选择的菜单
|
| | | MainPage.Controls.DeviceFunctionUnallocatedControl oldSelectContr = null;
|
| | | MainPage.Controls.DeviceFunctionMenuControl oldSelectContr = null;
|
| | | DeviceRowInfo nowSelectDeviceInfo = null;
|
| | | foreach (string strText in dicGroupDevice.Keys)
|
| | | {
|
| | |
| | | HorizontalView.AddChidren(devieFrame);
|
| | |
|
| | | //菜单图片控件
|
| | | var deviceObjContr = new MainPage.Controls.DeviceFunctionUnallocatedControl();
|
| | | var deviceObjContr = new MainPage.Controls.DeviceFunctionMenuControl();
|
| | | devieFrame.AddChidren(deviceObjContr);
|
| | | deviceObjContr.InitControl(strText, rowInfo.IconPath, rowInfo.IconPathSelected, rowInfo.listDeviceKeys);
|
| | | deviceObjContr.InitControl(strText, rowInfo.IconPath, rowInfo.IconPathSelected);
|
| | | deviceObjContr.ButtonClickEvent += (sender, e) =>
|
| | | {
|
| | | //选择的是同一个东西的话,不处理
|
| | |
| | | {
|
| | | cardContr = new Controls.DeviceCurtainRowControl();
|
| | | }
|
| | | //晾衣架 Airer
|
| | | if (device.Type == DeviceType.Airer)
|
| | | {
|
| | | cardContr = new Controls.DeviceAirerRowControl();
|
| | | }
|
| | | //继电器
|
| | | else if (device.Type == DeviceType.OnOffOutput)
|
| | | {
|
| | |
| | | {
|
| | | cardContr = new Controls.DevicePmSensorRowControl();
|
| | | }
|
| | | // 空气质量传感器
|
| | | else if (device.Type == DeviceType.TemperatureSensor)
|
| | | {
|
| | | //获取设备类型
|
| | | var deviceEnumInfo = Common.LocalDevice.Current.GetMyDeviceEnumInfo(new List<CommonDevice>() { device });
|
| | | //空气质量传感器
|
| | | if (deviceEnumInfo.ConcreteType == Common.DeviceConcreteType.AirQualitySensor)
|
| | | {
|
| | | cardContr = new Controls.DeviceAirQualitySensorRowControl();
|
| | | }
|
| | | else
|
| | | {
|
| | | //温湿度
|
| | | cardContr = new Controls.DeviceTemperatureRowControl();
|
| | | }
|
| | | }
|
| | | //彩灯(调光器)
|
| | | else if (device.Type == DeviceType.DimmableLight)
|
| | | {
|
| | |
| | | else if (device.Type == DeviceType.IASZone)
|
| | | {
|
| | | cardContr = new Controls.DeviceSensorRowControl();
|
| | | }
|
| | | //温湿度
|
| | | else if (device.Type == DeviceType.TemperatureSensor)
|
| | | {
|
| | | cardContr = new Controls.DeviceTemperatureRowControl();
|
| | | }
|
| | | //门锁
|
| | | else if (device.Type == DeviceType.DoorLock)
|
| | |
| | | cardContr = new Controls.DeviceColorTemperatureRowControl();
|
| | | }
|
| | | //无法识别
|
| | | else
|
| | | if (cardContr == null)
|
| | | {
|
| | | cardContr = new Controls.DeviceRowCommon();
|
| | | //没有状态功能
|
| | |
| | | }
|
| | | HdlThreadLogic.Current.RunThread(() =>
|
| | | {
|
| | | for (int i = 0; i < listContr.Count; i++)
|
| | | int sendCount = 0;
|
| | | while (listView.Parent != null)
|
| | | {
|
| | | if (listView.Parent == null)
|
| | | bool hadSend = false;
|
| | | for (int i = 0; i < listContr.Count; i++)
|
| | | {
|
| | | return;
|
| | | if (listView.Parent == null)
|
| | | {
|
| | | return;
|
| | | }
|
| | | //如果还没有接收到数据,则再次发送
|
| | | if (listContr[i].ReceiveResponeResultStatu() == false)
|
| | | {
|
| | | //发送获取状态的命令
|
| | | listContr[i].SendStatuComand();
|
| | | hadSend = true;
|
| | | System.Threading.Thread.Sleep(300);
|
| | | }
|
| | | }
|
| | | System.Threading.Thread.Sleep(200);
|
| | | //发送获取状态的命令
|
| | | listContr[i].SendStatuComand();
|
| | | if (hadSend == false)
|
| | | {
|
| | | //如果已经全部回路都接收了网关回复,则不再二次发送
|
| | | break;
|
| | | }
|
| | | sendCount++;
|
| | | if (sendCount == 2)
|
| | | {
|
| | | //就发2次
|
| | | break;
|
| | | }
|
| | | System.Threading.Thread.Sleep(5000);
|
| | | }
|
| | |
|
| | | }, ShowErrorMode.NO);
|
| | |
| | | {
|
| | | //处理一般设备的上报数据
|
| | | string mainKeys = LocalDevice.Current.GetDeviceMainKeys(report);
|
| | | //晾衣架上报需要特殊处理,其他上报的回路统一转为端点1
|
| | | var tempList = LocalDevice.Current.GetDevicesByMac(report.DeviceAddr);
|
| | | if (tempList.Count > 0)
|
| | | {
|
| | | var tempDeviceEnum = LocalDevice.Current.GetMyDeviceEnumInfo(tempList);
|
| | | if (tempDeviceEnum.ConcreteType == Common.DeviceConcreteType.Airer)
|
| | | {
|
| | | mainKeys = report.DeviceAddr + "_" + 1;
|
| | | }
|
| | | }
|
| | | if (this.dicDeviceRowControl.ContainsKey(mainKeys) == true)
|
| | | {
|
| | | //刷新卡片信息
|
| | |
| | | //设备状态必须刷新
|
| | | string statuText = HdlDeviceOtherLogic.Current.GetDeviceStatu(contr.device);
|
| | | contr.SetDeviceStatuText(statuText);
|
| | |
|
| | | //传感器切换为灰色状态
|
| | | contr.SwitchRowStatuAppeal(false);
|
| | | }, ShowErrorMode.NO);
|
| | | }
|
| | | }
|
| | |
| | | string path1 = string.Empty;
|
| | | string path2 = string.Empty;
|
| | | //获取图片
|
| | | LocalDevice.Current.GetDeviceFunctionTypeMenuIcon(typeInfo.ConcreteType, ref path1, ref path2);
|
| | | LocalDevice.Current.GetDeviceFunctionTypeMenuIcon(typeInfo, ref path1, ref path2);
|
| | | dic[typeInfo.BeloneText].IconPath = path1;
|
| | | dic[typeInfo.BeloneText].IconPathSelected = path2;
|
| | | dic[typeInfo.BeloneText].Text = typeInfo.BeloneText;
|
| | |
| | | timeStr += sec + secondText;
|
| | | }
|
| | | return timeStr;
|
| | | }
|
| | |
|
| | | /// <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
|