From 9cc8fd11b13813adbdd3c6c31554e5c0bebf4026 Mon Sep 17 00:00:00 2001
From: 黄学彪 <hxb@hdlchina.com.cn>
Date: 星期五, 21 八月 2020 19:53:49 +0800
Subject: [PATCH] 发布到商店的版本

---
 ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceMacInfoEditorForm.cs |  139 +++++++++++++++++++++++++++++++++-------------
 1 files changed, 100 insertions(+), 39 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceMacInfoEditorForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceMacInfoEditorForm.cs
old mode 100755
new mode 100644
index 721ae90..e575691
--- a/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceMacInfoEditorForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceMacInfoEditorForm.cs
@@ -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 @@
             //妫�娴嬫鍥炶矾鏄惁鎷ユ湁瀹氫綅鍔熻兘(鎷跨鐐规渶灏忕殑閭d釜鍥炶矾鍘诲畾浣�)
             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;
+                });
             });
         }
 

--
Gitblit v1.8.0