黄学彪
2020-07-06 f23ad1b3f9f6193f35f72104d690b21dc67d5c1f
ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceListMainForm.cs
@@ -826,18 +826,31 @@
            string gwId = GatewayResourse.NowSelectGatewayId;
            HdlThreadLogic.Current.RunThread(() =>
            {
                System.Threading.Thread.Sleep(2000);
                //这里主要只是获取在线状态
                var list = LocalDevice.Current.GetDeviceOnlineList(gwId);
                HdlThreadLogic.Current.RunMain(() =>
                if (this.Parent == null) { return; }
                //获取设备列表
                var listDevice = Common.LocalDevice.Current.GetDeviceByGatewayID(gwId);
                var listCheck = new List<string>();
                foreach (var device in listDevice)
                {
                    for (int i = 0; i < list.Count; i++)
                    if (this.Parent == null) { return; }
                    if (listCheck.Contains(device.DeviceAddr) == false)
                    {
                        //设置设备在线状态
                        this.ReceiveDeviceStatu(list[i]);
                        //只要一个回路即可
                        listCheck.Add(device.DeviceAddr);
                        var deviceInfo = Common.LocalDevice.Current.ReadDeviceEpointDeviceInfo(device);
                        if (deviceInfo != null)
                        {
                            //变更在线状态
                            device.IsOnline = deviceInfo.IsOnline;
                            HdlThreadLogic.Current.RunMain(() =>
                            {
                                //设置设备在线状态
                                this.ReceiveDeviceStatu(device);
                            }, ShowErrorMode.NO);
                        }
                        System.Threading.Thread.Sleep(30);
                    }
                }, ShowErrorMode.NO);
                }
            });
        }
@@ -861,13 +874,8 @@
            var localDevice = Common.LocalDevice.Current.GetDevice(mainkeys);
            if (localDevice != null)
            {
                //在线状态一样的话,不需要刷新
                if (localDevice.IsOnline != device.IsOnline)
                {
                    //保存状态
                    localDevice.IsOnline = device.IsOnline;
                    localDevice.ReSave();
                }
                //保存状态
                localDevice.IsOnline = device.IsOnline;
            }
            rowInfo.MenuRow.IsOnline = Common.LocalDevice.Current.CheckDeviceIsOnline(device);
@@ -936,9 +944,9 @@
        /// <param name="list">ota设备</param>
        private void CheckDeviceNewVersion(List<OTADevice> list)
        {
            HdlThreadLogic.Current.RunThread(async () =>
            HdlThreadLogic.Current.RunThread(() =>
            {
                await System.Threading.Tasks.Task.Delay(2000);
                System.Threading.Thread.Sleep(2000);
                foreach (var ota in list)
                {
                    if (this.Parent == null)
@@ -946,7 +954,7 @@
                        return;
                    }
                    //添加升级固件信息(成不成功都无所谓)
                    var result = await HdlFirmwareUpdateLogic.AddFirmwareVersionInfo(FirmwareLevelType.ZigbeeDevice, ota.HwVersion.ToString(), ota.ImgTypeId.ToString());
                    var result = HdlFirmwareUpdateLogic.AddFirmwareVersionInfo(FirmwareLevelType.ZigbeeDevice, ota.HwVersion.ToString(), ota.ImgTypeId.ToString());
                    //获取设备最新版本
                    var deviceFirmware = HdlFirmwareUpdateLogic.GetFirmwareMostVersionInfo(FirmwareLevelType.ZigbeeDevice,
@@ -960,7 +968,7 @@
                    }
                    //拥有新版本
                    Application.RunOnMainThread(() =>
                    HdlThreadLogic.Current.RunMain(() =>
                    {
                        if (this.dicRowInfo.ContainsKey(ota.DeviceAddr) == true)
                        {