From b9cb076fe6127160c96c35bf9c8cebcffe1d5ccd Mon Sep 17 00:00:00 2001
From: gxc <guoxuecheng@guoxuechengdeMacBook-Pro.local>
Date: 星期五, 10 一月 2020 17:35:23 +0800
Subject: [PATCH] 2020.1.10

---
 ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceMacInfoEditorForm.cs |  235 ++++++++++++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 203 insertions(+), 32 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceMacInfoEditorForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceMacInfoEditorForm.cs
index 98c72f0..6e1ff95 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,13 +224,15 @@
                 //娣诲姞銆愬共鎺ョ偣璁剧疆銆戣
                 this.AddDryContactSettionRow();
             }
+            //娣诲姞銆愬姛鑳界被鍨嬨�戣(绌烘皵寮�鍏充笓鐢�)
+            this.AddAirSwitchFunctionTypeRow();
             //娣诲姞銆愰�氱敤淇℃伅銆戣
             this.AddGeneralInformationRow();
 
             //娣诲姞銆愮┖璋冩ā鍧楃増鏈�(绌鸿皟涓撶敤)銆戣
             this.AddAirConditionerModelVersionRow();
 
-            if (isHdlDevice == true)
+            if (deviceEnumInfo.IsHdlDevice == true)
             {
                 //娣诲姞銆愬浐浠跺崌绾с�戣
                 this.AddFirmwareUpdateRow();
@@ -500,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>
@@ -667,7 +703,10 @@
                         //鎵嬫媺鎺у埗
                         if (0 < (attriBute.AttriButeData & 0x04))
                         {
-                            btnSwitch.IsSelected = true;
+                            HdlThreadLogic.Current.RunMain(() =>
+                            {
+                                btnSwitch.IsSelected = true;
+                            });
                         }
                     }
                 }
@@ -702,6 +741,101 @@
             {
                 var form = new DeviceAirConditioner.IndoorUnitListForm();
                 form.AddForm(listNewDevice[0].DeviceAddr);
+            };
+        }
+
+        #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();
+                };
             };
         }
 
@@ -749,29 +883,12 @@
             listview.AddChidren(rowVersion);
             rowVersion.AddLeftCaption(caption, 600);
             //鐗堟湰
-            var btnVersion = rowVersion.AddMostRightView(Language.StringByID(R.MyInternationalizationString.uGetting), 800);
+            this.btnAirConditionerVersion = rowVersion.AddMostRightView("", 800);
             //搴曠嚎
             rowVersion.AddBottomLine();
-            HdlThreadLogic.Current.RunThread(async () =>
-            {
-                //璇诲彇绌鸿皟妯″潡鐗堟湰
-                var result = await ((AC)listNewDevice[0]).ReadACFirewareVersionAsync();
-                if (result == null || result.readACFirewareVersionResponData == null || result.readACFirewareVersionResponData.Status != 0)
-                {
-                    HdlThreadLogic.Current.RunMain(() =>
-                    {
-                        //鑾峰彇澶辫触
-                        btnVersion.TextID = R.MyInternationalizationString.uGettingFail;
-                    });
-                }
-                else
-                {
-                    HdlThreadLogic.Current.RunMain(() =>
-                    {
-                        btnVersion.Text = result.readACFirewareVersionResponData.FirewareVersion.Replace("-", string.Empty);
-                    });
-                }
-            });
+
+            //鑾峰彇涓ぎ绌鸿皟妯″潡鐨勭増鏈�
+            this.ReadAirConditionerVersion();
         }
 
         #endregion
@@ -820,7 +937,7 @@
                 {
                     //涓ぎ绌鸿皟鐨勫崌绾х殑璇濓紝鏄壒娈婄殑
                     var form = new DeviceAirConditioner.ACZbGatewayUpdateMenuForm();
-                    form.AddForm(listNewDevice[0].DeviceAddr, btnNewVersion.Visible);
+                    form.AddForm((AC)listNewDevice[0], btnNewVersion.Visible);
                 }
                 btnNewVersion.Visible = false;
             };
@@ -938,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)
             {
                 //瀹氫綅
@@ -1042,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 HdlDeviceAirConditionerLogic.Current.ReadACFirewareVersionAsync(listNewDevice[0]);
+                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