黄学彪
2020-08-21 9cc8fd11b13813adbdd3c6c31554e5c0bebf4026
ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceMacInfoEditorForm.cs
old mode 100755 new mode 100644
@@ -102,10 +102,13 @@
            {
                //简约面板随便一个回路来获取设备信息
                var dev = Common.LocalDevice.Current.GetDevice(deviceMac, 62);
                var key = new ZigBee.Device.Panel();
                key.DeviceAddr = deviceMac;
                key.CurrentGateWayId = dev.CurrentGateWayId;
                InitBindInfo(key);
                if (dev != null)
                {
                    var key = new ZigBee.Device.Panel();
                    key.DeviceAddr = deviceMac;
                    key.CurrentGateWayId = dev.CurrentGateWayId;
                    InitBindInfo(key);
                }
            }
        }
@@ -599,7 +602,7 @@
            btnFunction.ButtonClickEvent += (sender, e) =>
            {
                //简约环境面板的按键配置
                var form = new DevicePanel.PanelSimpleEnvironmentButtonSettionForm();
                var form = new DevicePanel.PanelSettionWithSourceForm();
                form.AddForm(listNewDevice[0]);
            };
        }
@@ -640,16 +643,10 @@
                        var form = new DevicePanel.PanelFangyueButtonSettionForm();
                        form.AddForm(listNewDevice[0]);
                    }
                    else if (deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_FangyueEnvironment)
                    else if (deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_FangyueEnvironment || deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_FangyueFreshAir)
                    {
                        //方悦环境面板的按键配置
                        var form = new DevicePanel.PanelFangyueEnvironmentButtonSettionForm();
                        form.AddForm(listNewDevice[0]);
                    }
                    else if (deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_FangyueFreshAir)
                    {
                        //方悦新风面板的按键配置
                        var form = new DevicePanel.PanelFangyueFreshAirButtonSettionForm();
                        //方悦环境面板的按键配置&方悦新风面板的按键配置
                        var form = new DevicePanel.PanelSettionWithSourceForm();
                        form.AddForm(listNewDevice[0]);
                    }
                    else
@@ -1073,7 +1070,7 @@
                paneTargetsBaseFormp.Show();
                paneTargetsBaseFormp.actionHumidityTarget += (bindName) =>
                {
                    Application.RunOnMainThread(() =>
                    HdlThreadLogic.Current.RunMain(() =>
                    {
                        if (string.IsNullOrEmpty(bindName))
                        {
@@ -1124,7 +1121,7 @@
                paneTargetsBaseFormp.Show();
                paneTargetsBaseFormp.actionTemperatureTarget += (bindName) =>
                {
                    Application.RunOnMainThread(() =>
                    HdlThreadLogic.Current.RunMain(() =>
                    {
                        if (string.IsNullOrEmpty(bindName))
                        {
@@ -1159,7 +1156,7 @@
                    {
                        Application.RunOnMainThread(() =>
                        {
                            new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance);
                            new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime) + "(" + "5007_2" + ")", Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance);
                        });
                        return;
                    }
@@ -1171,7 +1168,7 @@
                    {
                        Application.RunOnMainThread(() =>
                        {
                            new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance);
                            new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime) + "(" + "5007_3" + ")", Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance);
                        });
                        return;
                    }
@@ -1207,6 +1204,10 @@
                foreach (var bDev in bindList)
                {
                    var device = Common.LocalDevice.Current.GetDevice(bDev.BindMacAddr, bDev.BindEpoint);
                    if (device == null)
                    {
                        continue;
                    }
                    if (device.Type == DeviceType.TemperatureSensor)
                    {
                        var bD = device as TemperatureSensor;
@@ -1326,7 +1327,7 @@
            listview.AddChidren(rowVersion);
            rowVersion.AddLeftCaption(caption, 600);
            //版本
            this.btnAirConditionerVersion = rowVersion.AddMostRightView("", 800);
            this.btnAirConditionerVersion = rowVersion.AddMostRightView(((AC)this.listNewDevice[0]).AcModelVersion, 800);
            //底线
            rowVersion.AddBottomLine();
@@ -1400,7 +1401,7 @@
        /// <param name="oTADevice">ota设备</param>
        private void SetDeviceVersionInfo(PicViewControl btnNewVersion, OTADevice oTADevice)
        {
            HdlThreadLogic.Current.RunThread(async () =>
            HdlThreadLogic.Current.RunThread(() =>
            {
                bool receiveImageInfo = false;
                //设置设备全部的镜像信息
@@ -1412,7 +1413,7 @@
                while (receiveImageInfo == false && count > 0)
                {
                    //等待设备镜像的反馈
                    await Task.Delay(300);
                    System.Threading.Thread.Sleep(300);
                    count--;
                }
                //移除事件
@@ -1420,7 +1421,7 @@
                oTADevice = Common.LocalDevice.Current.GetOTADevice(listNewDevice[0].DeviceAddr);
                //添加升级固件信息(成不成功都无所谓)
                var result = await HdlFirmwareUpdateLogic.AddFirmwareVersionInfo(FirmwareLevelType.ZigbeeDevice, oTADevice.HwVersion.ToString(), oTADevice.ImgTypeId.ToString());
                var result = HdlFirmwareUpdateLogic.AddFirmwareVersionInfo(FirmwareLevelType.ZigbeeDevice, oTADevice.HwVersion.ToString(), oTADevice.ImgTypeId.ToString());
                //获取设备最新版本
                var deviceFirmware = HdlFirmwareUpdateLogic.GetFirmwareMostVersionInfo(FirmwareLevelType.ZigbeeDevice,
@@ -1430,13 +1431,13 @@
                if (deviceFirmware != null && deviceFirmware.FirmwareVersion > oTADevice.ImgVersion)
                {
                    Application.RunOnMainThread(() =>
                    HdlThreadLogic.Current.RunMain(() =>
                    {
                        if (btnNewVersion != null)
                        {
                            btnNewVersion.Visible = true;
                        }
                    });
                    }, ShowErrorMode.NO);
                }
            });
        }
@@ -1499,7 +1500,17 @@
            //检测此回路是否拥有定位功能(拿端点最小的那个回路去定位)
            bool canTest = Common.LocalDevice.Current.DeviceIsCanFixedPosition(listNewDevice[0]);
            var frame = new TopRightMenuControl(canTest == true ? 2 : 1, 1);
            TopRightMenuControl frame = null;
            if (deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_SimpleMultifunction)
            {
                frame = new TopRightMenuControl(3, 1);
            }
            else
            {
                frame = new TopRightMenuControl(canTest == true ? 2 : 1, 1);
            }
            string deviceMenu = string.Empty;
            if (canTest == true)
            {
@@ -1530,6 +1541,23 @@
                });
            });
            //同步
            deviceMenu = Language.StringByID(R.MyInternationalizationString.Synchronization);
            if (Common.LocalDevice.Current.DeviceIsCanFixedPosition(listNewDevice[0]))
            {
                frame.AddRowMenu(deviceMenu, "", "Item/SynchronizationSelected.png", () =>
                {
                    //如果当前住宅是虚拟住宅,此功能无效
                    if (Common.Config.Instance.Home.IsVirtually == true)
                    {
                        return;
                    }
                    //同步指定设备
                    this.SynchronizationDevice();
                });
            }
        }
        /// <summary>
@@ -1555,6 +1583,27 @@
                    //关闭界面
                    this.CloseForm();
                });
            });
        }
        /// <summary>
        /// 同步指定设备
        /// </summary>
        private void SynchronizationDevice()
        {
            HdlThreadLogic.Current.RunThread(async () =>
            {
                //打开进度条
                this.ShowProgressBar();
                //同步设备
                bool result = await Common.LocalDevice.Current.SynchronizationDevice(listNewDevice);
                //关闭进度条
                this.CloseProgressBar();
                if (result == false)
                {
                    return;
                }
            });
        }
        #endregion
@@ -1633,27 +1682,39 @@
            {
                return;
            }
            //获取中....
            this.btnAirConditionerVersion.TextID = R.MyInternationalizationString.uGetting;
            //如果是虚拟住宅或者展示模板的话
            if (Config.Instance.Home.IsShowTemplate == true || Config.Instance.Home.IsVirtually == true)
            {
                return;
            }
            bool notVersion = ((AC)this.listNewDevice[0]).AcModelVersion == string.Empty;
            if (notVersion == true)
            {
                //获取中
                btnAirConditionerVersion.Text = Language.StringByID(R.MyInternationalizationString.uGetting);
            }
            HdlThreadLogic.Current.RunThread(async () =>
            {
                //读取空调模块版本
                var result = await HdlDeviceAirConditionerLogic.Current.ReadACFirewareVersionAsync(listNewDevice[0]);
                if (result == null || result.readACFirewareVersionResponData == null || result.readACFirewareVersionResponData.Status != 0)
                {
                    HdlThreadLogic.Current.RunMain(() =>
                    {
                        //获取失败
                        btnAirConditionerVersion.TextID = R.MyInternationalizationString.uGettingFail;
                    });
                {
                    if (notVersion == true)
                    {
                        //获取失败
                        HdlThreadLogic.Current.RunMain(() =>
                        {
                            btnAirConditionerVersion.Text = Language.StringByID(R.MyInternationalizationString.uGettingFail);
                        });
                    }
                    return;
                }
                else
                HdlThreadLogic.Current.RunMain(() =>
                {
                    HdlThreadLogic.Current.RunMain(() =>
                    {
                        btnAirConditionerVersion.Text = result.readACFirewareVersionResponData.FirewareVersion.Replace("-", string.Empty);
                    });
                }
                    ((AC)this.listNewDevice[0]).AcModelVersion = result.readACFirewareVersionResponData.FirewareVersion.Replace("-", string.Empty);
                    btnAirConditionerVersion.Text = ((AC)this.listNewDevice[0]).AcModelVersion;
                });
            });
        }