From 00ab3ddb140ba8bb88b5cf572b004a85e1da85e9 Mon Sep 17 00:00:00 2001
From: gxc <guoxuecheng@guoxuechengdeMacBook-Pro.local>
Date: 星期四, 02 一月 2020 19:51:56 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev-tzy' into DEV_GXC

---
 ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceMacInfoEditorForm.cs |  280 ++++++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 260 insertions(+), 20 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceMacInfoEditorForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceMacInfoEditorForm.cs
index 5759c49..f988ccb 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceMacInfoEditorForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceMacInfoEditorForm.cs
@@ -2,7 +2,6 @@
 using System.Collections.Generic;
 using System.Threading.Tasks;
 using Shared.Common;
-using Shared.Phone.UserView;
 using ZigBee.Device;
 
 namespace Shared.Phone.UserCenter.Device
@@ -30,6 +29,10 @@
         /// 璁惧鍏蜂綋绫诲瀷鐨勪俊鎭�
         /// </summary>
         private DeviceEnumInfo deviceEnumInfo = null;
+        /// <summary>
+        /// 涓ぎ绌鸿皟鐨勭増鏈帶浠�
+        /// </summary>
+        private NormalViewControl btnAirConditionerVersion = null;
 
         #endregion
 
@@ -186,11 +189,10 @@
         /// </summary>
         private void AddAllMenuRow()
         {
-            bool isHdlDevice = Common.LocalDevice.Current.IsHdlDevice(listNewDevice[0]);
             if (deviceEnumInfo.BeloneType == DeviceBeloneType.A鏅鸿兘闂ㄩ攣)
             {
                 //鍙湁鏄渤涓滅殑璁惧鐨勬椂鍊�
-                if (isHdlDevice == true)
+                if (deviceEnumInfo.IsHdlDevice == true)
                 {
                     //娣诲姞銆愮敤鎴风鐞嗐�戣
                     this.AddUserManageRow();
@@ -207,6 +209,8 @@
             }
             else
             {
+                //娣诲姞銆愬伐浣滄ā寮忋�戣(pir浼犳劅鍣ㄤ笓鐢�)
+                this.AddPirSensorWorkModeRow();
                 //娣诲姞銆愮粦瀹氱洰鏍囥�戣(pir浼犳劅鍣ㄤ笓鐢�)
                 this.AddPirSensorBindRow();
                 //娣诲姞銆愭柟鍚戜笌闄愪綅銆戣(寮�鍚堝笜,鍗峰笜涓撶敤)
@@ -220,10 +224,15 @@
                 //娣诲姞銆愬共鎺ョ偣璁剧疆銆戣
                 this.AddDryContactSettionRow();
             }
+            //娣诲姞銆愬姛鑳界被鍨嬨�戣(绌烘皵寮�鍏充笓鐢�)
+            this.AddAirSwitchFunctionTypeRow();
             //娣诲姞銆愰�氱敤淇℃伅銆戣
             this.AddGeneralInformationRow();
 
-            if (isHdlDevice == true)
+            //娣诲姞銆愮┖璋冩ā鍧楃増鏈�(绌鸿皟涓撶敤)銆戣
+            this.AddAirConditionerModelVersionRow();
+
+            if (deviceEnumInfo.IsHdlDevice == true)
             {
                 //娣诲姞銆愬浐浠跺崌绾с�戣
                 this.AddFirmwareUpdateRow();
@@ -497,6 +506,36 @@
 
         #endregion
 
+        #region 鈻� 宸ヤ綔妯″紡(pir浼犳劅鍣ㄤ笓鐢�)____________
+
+        /// <summary>
+        /// 娣诲姞銆愬伐浣滄ā寮忋�戣(pir浼犳劅鍣ㄤ笓鐢�)
+        /// </summary>
+        private void AddPirSensorWorkModeRow()
+        {
+            if (this.deviceEnumInfo.ConcreteType != DeviceConcreteType.Sensor_Pir
+                || deviceEnumInfo.IsHdlDevice == false)
+            {
+                return;
+            }
+            //宸ヤ綔妯″紡
+            string caption = Language.StringByID(R.MyInternationalizationString.uWorkMode);
+            var btnFunction = new FrameRowControl(listview.rowSpace / 2);
+            listview.AddChidren(btnFunction);
+            btnFunction.AddLeftCaption(caption, 600);
+            //鍚戝彸鍥炬爣
+            btnFunction.AddRightArrow();
+            //搴曠嚎
+            btnFunction.AddBottomLine();
+            btnFunction.ButtonClickEvent += (sender, e) =>
+            {
+                var form = new DevicePirSensor.PirSensorWorkModeMenuForm();
+                form.AddForm((IASZone)this.listNewDevice[0]);
+            };
+        }
+
+        #endregion;
+
         #region 鈻� 缁戝畾鐩爣(pir浼犳劅鍣ㄤ笓鐢�)____________
 
         /// <summary>
@@ -664,7 +703,10 @@
                         //鎵嬫媺鎺у埗
                         if (0 < (attriBute.AttriButeData & 0x04))
                         {
-                            btnSwitch.IsSelected = true;
+                            HdlThreadLogic.Current.RunMain(() =>
+                            {
+                                btnSwitch.IsSelected = true;
+                            });
                         }
                     }
                 }
@@ -704,6 +746,101 @@
 
         #endregion
 
+        #region 鈻� 鍔熻兘绫诲瀷(绌烘皵寮�鍏充笓鐢�)_____________
+
+        /// <summary>
+        /// 娣诲姞銆愬姛鑳界被鍨嬨�戣(绌烘皵寮�鍏充笓鐢�)
+        /// </summary>
+        private void AddAirSwitchFunctionTypeRow()
+        {
+            if (this.deviceEnumInfo.BeloneType != DeviceBeloneType.A鏅鸿兘绌哄紑)
+            {
+                //涓嶆槸绌烘皵寮�鍏�
+                return;
+            }
+
+            //鍔熻兘绫诲瀷
+            string caption = Language.StringByID(R.MyInternationalizationString.uFunctionType);
+            var DfunctionType = this.listNewDevice[0].DfunctionType;
+
+            //鍔熻兘绫诲瀷鐨勭炕璇戝悕瀛�
+            int nowSelectNo = 1;
+            string strType = string.Empty;
+            if (DfunctionType == DeviceFunctionType.A鐏厜)
+            {
+                strType = Language.StringByID(R.MyInternationalizationString.uLight);
+                nowSelectNo = 1;
+            }
+            else if (DfunctionType == DeviceFunctionType.A寮�鍏�)
+            {
+                strType = Language.StringByID(R.MyInternationalizationString.uSwitch);
+                nowSelectNo = 0;
+            }
+            else if (DfunctionType == DeviceFunctionType.A鎻掑骇)
+            {
+                strType = Language.StringByID(R.MyInternationalizationString.uSocket1);
+                nowSelectNo = 2;
+            }
+
+            var btnFunction = new FrameCaptionViewControl(caption, strType, listview.rowSpace / 2);
+            btnFunction.UseClickStatu = true;
+            listview.AddChidren(btnFunction);
+            btnFunction.InitControl();
+            //搴曠嚎
+            btnFunction.AddBottomLine();
+            //鍙崇澶�
+            btnFunction.AddRightArrow();
+            btnFunction.ButtonClickEvent += (sender, e) =>
+            {
+                //鏄剧ず鍒楄〃
+                var listText = new List<string>();
+                listText.Add(Language.StringByID(R.MyInternationalizationString.uSwitch));//寮�鍏�
+                listText.Add(Language.StringByID(R.MyInternationalizationString.uLight));//鐏厜
+                listText.Add(Language.StringByID(R.MyInternationalizationString.uSocket1));//鎻掑骇
+                //鏍囬:閫夋嫨鍔熻兘绫诲瀷
+                var title = Language.StringByID(R.MyInternationalizationString.uSelectFunctionType);
+
+                var form = new BottomItemSelectForm();
+                form.AddForm(title, listText, nowSelectNo);
+                form.FinishSelectEvent += (selectNo) =>
+                {
+                    btnFunction.Text = listText[selectNo];
+                    nowSelectNo = selectNo;
+                    //璁板綍璧峰綋鍓嶉�夋嫨鐨勫姛鑳界被鍨�
+                    if (selectNo == 0)
+                    {
+                        this.listNewDevice[0].DfunctionType = DeviceFunctionType.A寮�鍏�;
+                        if (this.listNewDevice[0].IsCustomizeImage == false)
+                        {
+                            //閲嶆柊璁剧疆鍥剧墖
+                            this.listNewDevice[0].IconPath = "Device/Switch.png";
+                        }
+                    }
+                    else if (selectNo == 1)
+                    {
+                        this.listNewDevice[0].DfunctionType = DeviceFunctionType.A鐏厜;
+                        if (this.listNewDevice[0].IsCustomizeImage == false)
+                        {
+                            //閲嶆柊璁剧疆鍥剧墖
+                            this.listNewDevice[0].IconPath = "Device/Light.png";
+                        }
+                    }
+                    else
+                    {
+                        this.listNewDevice[0].DfunctionType = DeviceFunctionType.A鎻掑骇;
+                        if (this.listNewDevice[0].IsCustomizeImage == false)
+                        {
+                            //閲嶆柊璁剧疆鍥剧墖
+                            this.listNewDevice[0].IconPath = "Device/Socket1.png";
+                        }
+                    }
+                    this.listNewDevice[0].ReSave();
+                };
+            };
+        }
+
+        #endregion
+
         #region 鈻� 閫氱敤淇℃伅___________________________
 
         /// <summary>
@@ -724,6 +861,34 @@
                 var form = new DeviceGeneralInformationForm();
                 form.AddForm(listNewDevice[0].DeviceAddr);
             };
+        }
+
+        #endregion
+
+        #region 鈻� 绌鸿皟妯″潡鐗堟湰(绌鸿皟涓撶敤)_____________
+
+        /// <summary>
+        /// 娣诲姞銆愮┖璋冩ā鍧楃増鏈�戣(娌充笢鐨勪腑澶┖璋�)
+        /// </summary>
+        private void AddAirConditionerModelVersionRow()
+        {
+            if (this.deviceEnumInfo.ConcreteType != DeviceConcreteType.AirConditioner_ZbGateway)
+            {
+                //涓嶆槸涓ぎ绌鸿皟
+                return;
+            }
+            string caption = Language.StringByID(R.MyInternationalizationString.uAirConditionerModelVersion);
+            var rowVersion = new FrameRowControl(listview.rowSpace / 2);
+            rowVersion.UseClickStatu = false;
+            listview.AddChidren(rowVersion);
+            rowVersion.AddLeftCaption(caption, 600);
+            //鐗堟湰
+            this.btnAirConditionerVersion = rowVersion.AddMostRightView("", 800);
+            //搴曠嚎
+            rowVersion.AddBottomLine();
+
+            //鑾峰彇涓ぎ绌鸿皟妯″潡鐨勭増鏈�
+            this.ReadAirConditionerVersion();
         }
 
         #endregion
@@ -762,9 +927,19 @@
 
             rowUpDate.ButtonClickEvent += (sender, e) =>
             {
+                if (this.deviceEnumInfo.ConcreteType != DeviceConcreteType.AirConditioner_ZbGateway)
+                {
+                    //杩欎釜鏄竴鑸澶囩殑鍗囩骇
+                    var form = new DeviceFirmwareUpdateForm();
+                    form.AddForm(listNewDevice[0].DeviceAddr);
+                }
+                else
+                {
+                    //涓ぎ绌鸿皟鐨勫崌绾х殑璇濓紝鏄壒娈婄殑
+                    var form = new DeviceAirConditioner.ACZbGatewayUpdateMenuForm();
+                    form.AddForm((AC)listNewDevice[0], btnNewVersion.Visible);
+                }
                 btnNewVersion.Visible = false;
-                var form = new DeviceFirmwareInfoForm();
-                form.AddForm(listNewDevice[0].DeviceAddr);
             };
 
             //璁剧疆璁惧鐨勭増鏈俊鎭�
@@ -880,15 +1055,21 @@
         /// </summary>
         private void ShowTopRightMenu()
         {
-            int menuCount = 1;
-            string deviceMenu = string.Empty;
             //妫�娴嬫鍥炶矾鏄惁鎷ユ湁瀹氫綅鍔熻兘(鎷跨鐐规渶灏忕殑閭d釜鍥炶矾鍘诲畾浣�)
             bool canTest = Common.LocalDevice.Current.DeviceIsCanFixedPosition(listNewDevice[0]);
-            if (canTest == true)
+            if (this.deviceEnumInfo.BeloneType == DeviceBeloneType.A鏅鸿兘闂ㄩ攣)
             {
-                menuCount = 2;
+                canTest = false;
             }
-            var frame = new TopRightMenuControl(menuCount);
+            else if (this.deviceEnumInfo.BeloneType == DeviceBeloneType.A浼犳劅鍣�
+                && this.deviceEnumInfo.ConcreteType != DeviceConcreteType.Sensor_Pir)
+            {
+                //浼犳劅鍣ㄩ櫎浜哖ir閮芥病鏈夊畾浣嶅姛鑳�
+                canTest = false;
+            }
+            var frame = new TopRightMenuControl(canTest == true ? 2 : 1, 1);
+
+            string deviceMenu = string.Empty;
             if (canTest == true)
             {
                 //瀹氫綅
@@ -918,16 +1099,27 @@
         /// <summary>
         /// 鍒犻櫎鎸囧畾璁惧
         /// </summary>
-        private async void DoDeleteDevice()
+        private void DoDeleteDevice()
         {
-            //鍒犻櫎璁惧
-            bool result = await Common.LocalDevice.Current.DeleteDevice(listNewDevice);
-            if (result == false)
+            HdlThreadLogic.Current.RunThread(async () =>
             {
-                return;
-            }
-            //鍏抽棴鐣岄潰
-            this.CloseForm();
+                //鎵撳紑杩涘害鏉�
+                this.ShowProgressBar();
+
+                //鍒犻櫎璁惧
+                bool result = await Common.LocalDevice.Current.DeleteDevice(listNewDevice);
+                //鍏抽棴杩涘害鏉�
+                this.CloseProgressBar();
+                if (result == false)
+                {
+                    return;
+                }
+                HdlThreadLogic.Current.RunMain(() =>
+                {
+                    //鍏抽棴鐣岄潰
+                    this.CloseForm();
+                });
+            });
         }
         #endregion
 
@@ -973,8 +1165,56 @@
 
         #endregion
 
+        #region 鈻� 鐣岄潰閲嶆柊婵�娲讳簨浠禵__________________
+
+        /// <summary>
+        /// 鑷韩鐨勪笂灞傜晫闈㈠叧闂悗,瀹冭嚜韬浜庢渶涓婂眰鏃�,瑙﹀彂鐨勪簨浠�
+        /// </summary>
+        public override int FormActionAgainEvent()
+        {
+            //閲嶆柊鑾峰彇涓ぎ绌鸿皟妯″潡鐨勭増鏈�
+            this.ReadAirConditionerVersion();
+
+            return 0;
+        }
+
+        #endregion
+
         #region 鈻� 涓�鑸柟娉昣__________________________
 
+        /// <summary>
+        /// 鑾峰彇涓ぎ绌鸿皟妯″潡鐨勭増鏈�
+        /// </summary>
+        private void ReadAirConditionerVersion()
+        {
+            if (this.btnAirConditionerVersion == null)
+            {
+                return;
+            }
+            //鑾峰彇涓�....
+            this.btnAirConditionerVersion.TextID = R.MyInternationalizationString.uGetting;
+            HdlThreadLogic.Current.RunThread(async () =>
+            {
+                //璇诲彇绌鸿皟妯″潡鐗堟湰
+                var result = await ((AC)listNewDevice[0]).ReadACFirewareVersionAsync();
+                if (result == null || result.readACFirewareVersionResponData == null || result.readACFirewareVersionResponData.Status != 0)
+                {
+                    HdlThreadLogic.Current.RunMain(() =>
+                    {
+                        //鑾峰彇澶辫触
+                        btnAirConditionerVersion.TextID = R.MyInternationalizationString.uGettingFail;
+                    });
+                }
+                else
+                {
+                    HdlThreadLogic.Current.RunMain(() =>
+                    {
+                        btnAirConditionerVersion.Text = result.readACFirewareVersionResponData.FirewareVersion.Replace("-", string.Empty);
+                    });
+                }
+            });
+        }
+
         #endregion
     }
 }

--
Gitblit v1.8.0