| | |
| | | };
|
| | | }
|
| | | //初始化网关行控件
|
| | | GatewayResourse.NowSelectGatewayId = GatewayResourse.AppOldSelectGatewayId;
|
| | | var nowGateway = HdlGatewayLogic.Current.GetLocalGateway(GatewayResourse.AppOldSelectGatewayId);
|
| | | HdlGatewayResourse.NowSelectGatewayId = HdlGatewayResourse.AppOldSelectGatewayId;
|
| | | var nowGateway = HdlGatewayLogic.Current.GetLocalGateway(HdlGatewayResourse.AppOldSelectGatewayId);
|
| | | this.gatewayViewRow = new MyGatewayControl(nowGateway);
|
| | | bodyFrameLayout.AddChidren(gatewayViewRow);
|
| | | gatewayViewRow.InitControl();
|
| | |
| | | private void InitDeviceListControl()
|
| | | {
|
| | | //获取设备列表
|
| | | var listDevice = Common.LocalDevice.Current.GetDeviceByGatewayID(GatewayResourse.NowSelectGatewayId);
|
| | | var listSpecialOta = Common.LocalDevice.Current.GetSpecialOtaDevice(GatewayResourse.NowSelectGatewayId);
|
| | | var listDevice = HdlDeviceCommonLogic.Current.GetDeviceByGatewayID(HdlGatewayResourse.NowSelectGatewayId);
|
| | | var listSpecialOta = HdlDeviceCommonLogic.Current.GetSpecialOtaDevice(HdlGatewayResourse.NowSelectGatewayId);
|
| | | listDevice.AddRange(listSpecialOta);
|
| | |
|
| | | this.dicRowInfo.Clear();
|
| | |
| | | foreach (var macAddress in this.dicRowInfo.Keys)
|
| | | {
|
| | | //获取ota设备
|
| | | var ota = Common.LocalDevice.Current.GetOTADevice(macAddress);
|
| | | var ota = HdlDeviceCommonLogic.Current.GetOTADevice(macAddress);
|
| | | if (ota != null)
|
| | | {
|
| | | listOta.Add(ota);
|
| | |
| | |
|
| | | //创建一个可以展开和收缩的FrameLayout,相当于菜单栏
|
| | | var frameTable = new FrameListControl(29);
|
| | | frameTable.Height = ControlCommonResourse.ListViewRowHeight + frameTable.rowSpace;
|
| | | frameTable.Height = HdlControlResourse.ListViewRowHeight + frameTable.rowSpace;
|
| | | listView.AddChidren(frameTable);
|
| | | rowInfo.frameTable = frameTable;
|
| | |
|
| | |
| | | rowMenu.AddTag("btnNew", btnNew);
|
| | |
|
| | | //检测设备是否拥有定位的功能
|
| | | var listdevice = Common.LocalDevice.Current.GetDevicesByMac(deviceMac);
|
| | | if (listdevice.Count > 0 && Common.LocalDevice.Current.DeviceIsCanFixedPosition(listdevice[0]) == true)
|
| | | var listdevice = HdlDeviceCommonLogic.Current.GetDevicesByMac(deviceMac);
|
| | | if (listdevice.Count > 0 && HdlDeviceCommonLogic.Current.DeviceIsCanFixedPosition(listdevice[0]) == true)
|
| | | {
|
| | | //定位
|
| | | var btnPosition = rowMenu.AddEditorControl(false);
|
| | |
| | | btnPosition.ButtonClickEvent += (sender, e) =>
|
| | | {
|
| | | //定位
|
| | | Common.LocalDevice.Current.SetFixedPositionCommand(listdevice[0], true);
|
| | | HdlDeviceCommonLogic.Current.SetFixedPositionCommand(listdevice[0], true);
|
| | | };
|
| | | }
|
| | |
|
| | |
| | | btnRight.ButtonClickEvent += (sender, e) =>
|
| | | {
|
| | | //回路数大于1才展开
|
| | | var listMacDevice = LocalDevice.Current.GetDevicesByMac(deviceMac, false);
|
| | | var listMacDevice = HdlDeviceCommonLogic.Current.GetDevicesByMac(deviceMac, false);
|
| | | if (listMacDevice.Count > 1)
|
| | | {
|
| | | btnRight.IsSelected = !btnRight.IsSelected;
|
| | |
| | | }
|
| | | else
|
| | | {
|
| | | if (LocalDevice.Current.IsMiniLight(listMacDevice[0]) == true)
|
| | | if (HdlDeviceCommonLogic.Current.IsMiniLight(listMacDevice[0]) == true)
|
| | | {
|
| | | //mini夜灯的功能设置界面
|
| | | var room = HdlRoomLogic.Current.GetRoomByDevice(listMacDevice[0]);
|
| | |
| | | //隐藏菜单
|
| | | rowMenu.HideMenu();
|
| | | //强制跳转真实设备界面
|
| | | if (UserCenterResourse.HideOption.GotoRealDeviceForm == 1)
|
| | | if (HdlUserCenterResourse.HideOption.GotoRealDeviceForm == 1)
|
| | | {
|
| | | var form2 = new DeviceAddSuccessForm();
|
| | | form2.AddForm(deviceMac);
|
| | | return;
|
| | | }
|
| | | var listMacDevice = LocalDevice.Current.GetDevicesByMac(deviceMac, false);
|
| | | if (listMacDevice.Count > 0 && LocalDevice.Current.IsMiniLight(listMacDevice[0]) == true)
|
| | | var listMacDevice = HdlDeviceCommonLogic.Current.GetDevicesByMac(deviceMac, false);
|
| | | if (listMacDevice.Count > 0 && HdlDeviceCommonLogic.Current.IsMiniLight(listMacDevice[0]) == true)
|
| | | {
|
| | | //mini夜灯的功能设置界面
|
| | | var room = HdlRoomLogic.Current.GetRoomByDevice(listMacDevice[0]);
|
| | |
| | | //它原来的高度
|
| | | int oldHeight = rowInfo.frameTable.Height;
|
| | | //变更的高度,默认为列表隐藏
|
| | | int heightValue = ControlCommonResourse.ListViewRowHeight + rowInfo.frameTable.rowSpace;
|
| | | var listDevice = Common.LocalDevice.Current.GetDevicesByMac(deviceMac);
|
| | | int heightValue = HdlControlResourse.ListViewRowHeight + rowInfo.frameTable.rowSpace;
|
| | | var listDevice = HdlDeviceCommonLogic.Current.GetDevicesByMac(deviceMac);
|
| | | if (isShow == true)
|
| | | {
|
| | | //备注:面板中只显示真实的设备,其他属于绑定的回路不显示
|
| | | //获取这一堆设备时属于什么类型的
|
| | | var deviceEnumInfo = Common.LocalDevice.Current.GetMyDeviceEnumInfo(listDevice);
|
| | | var deviceEnumInfo = HdlDeviceCommonLogic.Current.GetMyDeviceEnumInfo(listDevice);
|
| | | if (deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_SimpleMultifunction)
|
| | | {
|
| | | var listTemp = Common.LocalDevice.Current.GetMutilfunctionPanelByMac(listDevice);
|
| | | var listTemp = HdlDeviceCommonLogic.Current.GetMutilfunctionPanelByMac(listDevice);
|
| | | //展开模式时,扩大依据为:它有几个子控件
|
| | | heightValue = (listTemp.Count + 1) * (ControlCommonResourse.ListViewRowHeight + rowInfo.frameTable.rowSpace);
|
| | | heightValue = (listTemp.Count + 1) * (HdlControlResourse.ListViewRowHeight + rowInfo.frameTable.rowSpace);
|
| | | //标题自己就是一个子控件
|
| | | if (rowInfo.frameTable.ChildrenCount == 1)
|
| | | {
|
| | |
| | | || deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_SimpleEnvironment
|
| | | || deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_FangyueEnvironment)
|
| | | {
|
| | | var listTemp = Common.LocalDevice.Current.GetPanelMatchEpointByMac(listDevice);
|
| | | var listTemp = HdlDeviceCommonLogic.Current.GetPanelMatchEpointByMac(listDevice);
|
| | | //展开模式时,扩大依据为:它有几个子控件
|
| | | heightValue = (listTemp.Count + 1) * (ControlCommonResourse.ListViewRowHeight + rowInfo.frameTable.rowSpace);
|
| | | heightValue = (listTemp.Count + 1) * (HdlControlResourse.ListViewRowHeight + rowInfo.frameTable.rowSpace);
|
| | | //标题自己就是一个子控件
|
| | | if (rowInfo.frameTable.ChildrenCount == 1)
|
| | | {
|
| | |
| | | else
|
| | | {
|
| | | //展开模式时,扩大依据为:它有几个子控件
|
| | | heightValue = (listDevice.Count + 1) * (ControlCommonResourse.ListViewRowHeight + rowInfo.frameTable.rowSpace);
|
| | | heightValue = (listDevice.Count + 1) * (HdlControlResourse.ListViewRowHeight + rowInfo.frameTable.rowSpace);
|
| | | //标题自己就是一个子控件
|
| | | if (rowInfo.frameTable.ChildrenCount == 1)
|
| | | {
|
| | |
| | |
|
| | | //行控件
|
| | | var rowDevice = new DeviceRoomControl(device, frame.rowSpace / 2);
|
| | | rowDevice.MainKeys = LocalDevice.Current.GetDeviceMainKeys(device);
|
| | | rowDevice.MainKeys = HdlDeviceCommonLogic.Current.GetDeviceMainKeys(device);
|
| | | frame.AddChidren(rowDevice);
|
| | | rowDevice.frameTable.LeftOffset = Application.GetRealWidth(173) - ControlCommonResourse.XXLeft;
|
| | | rowDevice.frameTable.LeftOffset = Application.GetRealWidth(173) - HdlControlResourse.XXLeft;
|
| | | rowDevice.InitControl();
|
| | | //底线
|
| | | rowDevice.frameTable.AddBottomLine();
|
| | |
| | | //在线状态
|
| | | rowDevice.IsOnline = rowInfo.MenuRow.IsOnline;
|
| | | //保存控件
|
| | | string maikey = Common.LocalDevice.Current.GetDeviceMainKeys(device);
|
| | | string maikey = HdlDeviceCommonLogic.Current.GetDeviceMainKeys(device);
|
| | | rowInfo.dicDetailRow[maikey] = rowDevice;
|
| | |
|
| | | //检测设备是否拥有定位的功能
|
| | | if (Common.LocalDevice.Current.DeviceIsCanFixedPosition(device) == true)
|
| | | if (HdlDeviceCommonLogic.Current.DeviceIsCanFixedPosition(device) == true)
|
| | | {
|
| | | //定位
|
| | | var btnPosition = rowDevice.AddEditorControl(false);
|
| | |
| | | btnPosition.ButtonClickEvent += (sender, e) =>
|
| | | {
|
| | | //定位
|
| | | Common.LocalDevice.Current.SetFixedPositionCommand(device);
|
| | | HdlDeviceCommonLogic.Current.SetFixedPositionCommand(device);
|
| | | };
|
| | | }
|
| | |
|
| | |
| | | {
|
| | | //智能门锁
|
| | | if (deviceEnumInfo.BeloneType == DeviceBeloneType.A智能门锁)
|
| | | {
|
| | | var form = new DeviceMacInfoEditorForm();
|
| | | form.AddForm(device.DeviceAddr);
|
| | | }
|
| | | else if (deviceEnumInfo.BeloneType == DeviceBeloneType.A晾衣架)
|
| | | {
|
| | | var form = new DeviceMacInfoEditorForm();
|
| | | form.AddForm(device.DeviceAddr);
|
| | | }
|
| | | else if (deviceEnumInfo.BeloneType == DeviceBeloneType.A空气质量)
|
| | | {
|
| | | var form = new DeviceMacInfoEditorForm();
|
| | | form.AddForm(device.DeviceAddr);
|
| | |
| | | return;
|
| | | }
|
| | | //如果是在线的
|
| | | var nowGateway = HdlGatewayLogic.Current.GetLocalGateway(GatewayResourse.NowSelectGatewayId);
|
| | | var nowGateway = HdlGatewayLogic.Current.GetLocalGateway(HdlGatewayResourse.NowSelectGatewayId);
|
| | | if (HdlGatewayLogic.Current.CheckGatewayOnlineByMemory(nowGateway) == true)
|
| | | {
|
| | | //检测广播到的这个网关是否拥有住宅ID
|
| | |
| | | }
|
| | |
|
| | | //获取全部设备
|
| | | int result = LocalDevice.Current.SetDeviceToMemmoryByGateway(nowGateway.GwId, false);
|
| | | int result = HdlDeviceCommonLogic.Current.SetDeviceToMemmoryByGateway(nowGateway.GwId, false);
|
| | | if (this.Parent == null)
|
| | | {
|
| | | return;
|
| | |
| | | /// </summary>
|
| | | private void StartGatewayOnlieCheckThread()
|
| | | {
|
| | | string selectGwId = GatewayResourse.NowSelectGatewayId;
|
| | | string selectGwId = HdlGatewayResourse.NowSelectGatewayId;
|
| | | HdlThreadLogic.Current.RunThread(() =>
|
| | | {
|
| | | ZbGateway zbGateway = HdlGatewayLogic.Current.GetLocalGateway(selectGwId);
|
| | |
| | | /// </summary>
|
| | | private void RefreshDeviceOnlineStatu()
|
| | | {
|
| | | string gwId = GatewayResourse.NowSelectGatewayId;
|
| | | string gwId = HdlGatewayResourse.NowSelectGatewayId;
|
| | | HdlThreadLogic.Current.RunThread(() =>
|
| | | {
|
| | | if (this.Parent == null) { return; }
|
| | | //获取设备列表
|
| | | var listDevice = Common.LocalDevice.Current.GetDeviceByGatewayID(gwId);
|
| | | var listDevice = HdlDeviceCommonLogic.Current.GetDeviceByGatewayID(gwId);
|
| | | var listCheck = new List<string>();
|
| | | foreach (var device in listDevice)
|
| | | {
|
| | |
| | | {
|
| | | //只要一个回路即可
|
| | | listCheck.Add(device.DeviceAddr);
|
| | | var deviceInfo = Common.LocalDevice.Current.ReadDeviceEpointDeviceInfo(device);
|
| | | var deviceInfo = HdlDeviceCommonLogic.Current.ReadDeviceEpointDeviceInfo(device);
|
| | | if (deviceInfo != null)
|
| | | {
|
| | | //变更在线状态
|
| | |
| | | return;
|
| | | }
|
| | | //刷新设备的在线状态
|
| | | string mainkeys = Common.LocalDevice.Current.GetDeviceMainKeys(device);
|
| | | var localDevice = Common.LocalDevice.Current.GetDevice(mainkeys);
|
| | | string mainkeys = HdlDeviceCommonLogic.Current.GetDeviceMainKeys(device);
|
| | | var localDevice = HdlDeviceCommonLogic.Current.GetDevice(mainkeys);
|
| | | if (localDevice != null)
|
| | | {
|
| | | //保存状态
|
| | | localDevice.IsOnline = device.IsOnline;
|
| | | }
|
| | |
|
| | | rowInfo.MenuRow.IsOnline = Common.LocalDevice.Current.CheckDeviceIsOnline(device);
|
| | | rowInfo.MenuRow.IsOnline = HdlDeviceCommonLogic.Current.CheckDeviceIsOnline(device);
|
| | | if (rowInfo.dicDetailRow != null)
|
| | | {
|
| | | foreach (var detailRow in rowInfo.dicDetailRow.Values)
|
| | |
| | | return;
|
| | | }
|
| | | //添加升级固件信息(成不成功都无所谓)
|
| | | var result = HdlFirmwareUpdateLogic.AddFirmwareVersionInfo(FirmwareLevelType.A设备, ota.HwVersion.ToString(), ota.ImgTypeId.ToString());
|
| | | var result = HdlFirmwareUpdateLogic.Current.AddFirmwareVersionInfo(FirmwareLevelType.A设备, ota.HwVersion.ToString(), ota.ImgTypeId.ToString());
|
| | |
|
| | | //获取设备最新版本
|
| | | var deviceFirmware = HdlFirmwareUpdateLogic.GetFirmwareMostVersionInfo(FirmwareLevelType.A设备,
|
| | | var deviceFirmware = HdlFirmwareUpdateLogic.Current.GetFirmwareMostVersionInfo(FirmwareLevelType.A设备,
|
| | | ota.HwVersion.ToString(),
|
| | | ota.ImgTypeId.ToString(),
|
| | | ota.ImgVersion);
|
| | |
| | | //新建一个对象
|
| | | if (this.dicRowInfo.ContainsKey(deviceAddr) == false)
|
| | | {
|
| | | var localDevice = Common.LocalDevice.Current.GetDevicesByMac(deviceAddr);
|
| | | var localDevice = HdlDeviceCommonLogic.Current.GetDevicesByMac(deviceAddr);
|
| | | if (localDevice.Count == 0)
|
| | | {
|
| | | //针对单纯只有一个200端点的设备
|
| | | var ota = Common.LocalDevice.Current.GetOTADevice(deviceAddr);
|
| | | var ota = HdlDeviceCommonLogic.Current.GetOTADevice(deviceAddr);
|
| | | if (ota == null)
|
| | | {
|
| | | //入网之后,又把它删了
|
| | |
| | | }
|
| | | var rowNewInfo = new DeviceObjRowInfo();
|
| | | rowNewInfo.DeviceMac = deviceAddr;
|
| | | rowNewInfo.MacName = Common.LocalDevice.Current.GetDeviceMacName(localDevice[0]);
|
| | | rowNewInfo.DeviveTypeName = Common.LocalDevice.Current.GetDeviceObjectText(localDevice);
|
| | | rowNewInfo.MacName = HdlDeviceCommonLogic.Current.GetDeviceMacName(localDevice[0]);
|
| | | rowNewInfo.DeviveTypeName = HdlDeviceCommonLogic.Current.GetDeviceObjectText(localDevice);
|
| | | this.dicRowInfo[deviceAddr] = rowNewInfo;
|
| | |
|
| | | //创建新的行
|
| | |
| | | {
|
| | | var rowInfo = this.dicRowInfo[deviceAddr];
|
| | | //检测这个设备是否被删除 2020.01.13变更:追加Ota设备的判断
|
| | | if (LocalDevice.Current.GetDevicesByMac(deviceAddr).Count == 0
|
| | | && LocalDevice.Current.GetOTADevice(deviceAddr) == null)
|
| | | if (HdlDeviceCommonLogic.Current.GetDevicesByMac(deviceAddr).Count == 0
|
| | | && HdlDeviceCommonLogic.Current.GetOTADevice(deviceAddr) == null)
|
| | | {
|
| | | //移除控件
|
| | | rowInfo.dicDetailRow = null;
|
| | |
| | | }
|
| | |
|
| | | //获取设备类型的
|
| | | var deviceEnumInfo = Common.LocalDevice.Current.GetMyDeviceEnumInfo(new List<CommonDevice>() { device });
|
| | | if (deviceEnumInfo.ConcreteType == Common.DeviceConcreteType.ButtonPanel_SimpleEnvironment)
|
| | | var deviceEnumInfo = HdlDeviceCommonLogic.Current.GetMyDeviceEnumInfo(new List<CommonDevice>() { device });
|
| | | if (deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_SimpleEnvironment)
|
| | | {
|
| | | foreach (var outClu in device.OutClusterList)
|
| | | {
|
| | |
| | | {
|
| | | var info = new DeviceObjRowInfo();
|
| | | info.DeviceMac = mac;
|
| | | info.MacName = Common.LocalDevice.Current.GetDeviceMacName(dic[mac][0]);
|
| | | info.DeviveTypeName = Common.LocalDevice.Current.GetDeviceObjectText(dic[mac]);
|
| | | info.MacName = HdlDeviceCommonLogic.Current.GetDeviceMacName(dic[mac][0]);
|
| | | info.DeviveTypeName = HdlDeviceCommonLogic.Current.GetDeviceObjectText(dic[mac]);
|
| | | this.dicRowInfo[mac] = info;
|
| | | }
|
| | | }
|
| | |
| | | /// </summary>
|
| | | public override int FormActionAgainEvent()
|
| | | {
|
| | | if (GatewayResourse.AppOldSelectGatewayId != this.gatewayViewRow.zbGatewayId)
|
| | | if (HdlGatewayResourse.AppOldSelectGatewayId != this.gatewayViewRow.zbGatewayId)
|
| | | {
|
| | | //这个网关被整掉了,需要重新初始化界面
|
| | | this.nowActionDeviceMac = null;
|
| | | this.oldShowRightMuneRow = null;
|
| | | //重新选择网关
|
| | | HdlGatewayLogic.Current.RefreshAppOldSelectGatewayId();
|
| | |
|
| | | //初始化界面
|
| | | this.InitMiddleFrame();
|
| | |
|
| | | return 1;
|
| | | }
|
| | |
|