| | |
| | | private void AddDeviceDetailRow(FrameListControl frame, CommonDevice device)
|
| | | {
|
| | | var rowInfo = this.dicRowInfo[device.DeviceAddr];
|
| | | rowInfo.dicDetailRow = new Dictionary<string, DeviceRoomControl>();
|
| | | if (rowInfo.dicDetailRow == null)
|
| | | {
|
| | | rowInfo.dicDetailRow = new Dictionary<string, DeviceRoomControl>();
|
| | | }
|
| | |
|
| | | //行控件
|
| | | var rowDevice = new DeviceRoomControl(device, frame.rowSpace / 2);
|
| | |
| | | rowDevice.frameTable.AddBottomLine();
|
| | | //右箭头
|
| | | rowDevice.frameTable.AddRightArrow();
|
| | | //在线状态
|
| | | rowDevice.isOnline = device.IsOnline == 1;
|
| | |
|
| | | //保存控件
|
| | | string maikey = Common.LocalDevice.Current.GetDeviceMainKeys(device);
|
| | |
| | | {
|
| | | //这里主要只是获取在线状态
|
| | | var zbway = HdlGatewayLogic.Current.GetLocalGateway(gwId);
|
| | | var result = await Common.LocalDevice.Current.GetDeviceListFromGateway(zbway, this.ReceiveDeviceStatuPush);
|
| | | var result = await Common.LocalDevice.Current.GetDeviceListFromGateway(zbway, false, this.ReceiveDeviceStatuPush, ShowErrorMode.NO);
|
| | | });
|
| | | }
|
| | |
|
| | | /// <summary>
|
| | | /// 接受设备在线推送(网关在线推送即在线)
|
| | | /// 接受设备在线推送
|
| | | /// </summary>
|
| | | /// <param name="device"></param>
|
| | | private void ReceiveDeviceStatuPush(CommonDevice device)
|
| | | {
|
| | | lock (dicRowInfo)
|
| | | {
|
| | | if (device == null || this.Parent == null)
|
| | | if (this.Parent == null)
|
| | | {
|
| | | return;
|
| | | }
|
| | | DeviceObjectControl row = null;
|
| | | DeviceObjRowInfo rowInfo = null;
|
| | | if (this.dicRowInfo.ContainsKey(device.DeviceAddr) == true)
|
| | | {
|
| | | row = this.dicRowInfo[device.DeviceAddr].MenuRow;
|
| | | rowInfo = this.dicRowInfo[device.DeviceAddr];
|
| | | }
|
| | | if (row == null)
|
| | | if (rowInfo == null || rowInfo.MenuRow == null)
|
| | | {
|
| | | return;
|
| | | }
|
| | |
| | | localDevice.ReSave();
|
| | | }
|
| | |
|
| | | Application.RunOnMainThread(() =>
|
| | | HdlThreadLogic.Current.RunMain(() =>
|
| | | {
|
| | | if (row != null)
|
| | | if (rowInfo != null)
|
| | | {
|
| | | row.isOnline = device.IsOnline == 1;
|
| | | rowInfo.MenuRow.isOnline = device.IsOnline == 1;
|
| | | if (rowInfo.dicDetailRow != null)
|
| | | {
|
| | | foreach (var detailRow in rowInfo.dicDetailRow.Values)
|
| | | {
|
| | | detailRow.isOnline = rowInfo.MenuRow.isOnline;
|
| | | }
|
| | | }
|
| | | }
|
| | | });
|
| | | }
|
| | |
| | | /// <param name="listDevice"></param>
|
| | | private void MargeAllDeviceByMac(List<CommonDevice> listDevice)
|
| | | {
|
| | | //设备排序
|
| | | List<CommonDevice> listSort = Common.LocalDevice.Current.SortDeviceList(listDevice);
|
| | | //根据Mac全部分组
|
| | | var dic = new Dictionary<string, List<CommonDevice>>();
|
| | | foreach (CommonDevice device in listSort)
|
| | | foreach (CommonDevice device in listDevice)
|
| | | {
|
| | | if (device == null || device.DeviceAddr == null)
|
| | | {
|