From 3dcbd186c42c598c0c08d1cd37034cf2baa09e54 Mon Sep 17 00:00:00 2001
From: 黄学彪 <hxb@hdlchina.com.cn>
Date: 星期一, 30 十二月 2019 15:47:51 +0800
Subject: [PATCH] 合并了代码

---
 ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceMacInfoEditorForm.cs |  155 ++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 146 insertions(+), 9 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceMacInfoEditorForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceMacInfoEditorForm.cs
index abe2b33..f988ccb 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceMacInfoEditorForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceMacInfoEditorForm.cs
@@ -189,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();
@@ -210,6 +209,8 @@
             }
             else
             {
+                //娣诲姞銆愬伐浣滄ā寮忋�戣(pir浼犳劅鍣ㄤ笓鐢�)
+                this.AddPirSensorWorkModeRow();
                 //娣诲姞銆愮粦瀹氱洰鏍囥�戣(pir浼犳劅鍣ㄤ笓鐢�)
                 this.AddPirSensorBindRow();
                 //娣诲姞銆愭柟鍚戜笌闄愪綅銆戣(寮�鍚堝笜,鍗峰笜涓撶敤)
@@ -223,13 +224,15 @@
                 //娣诲姞銆愬共鎺ョ偣璁剧疆銆戣
                 this.AddDryContactSettionRow();
             }
+            //娣诲姞銆愬姛鑳界被鍨嬨�戣(绌烘皵寮�鍏充笓鐢�)
+            this.AddAirSwitchFunctionTypeRow();
             //娣诲姞銆愰�氱敤淇℃伅銆戣
             this.AddGeneralInformationRow();
 
             //娣诲姞銆愮┖璋冩ā鍧楃増鏈�(绌鸿皟涓撶敤)銆戣
             this.AddAirConditionerModelVersionRow();
 
-            if (isHdlDevice == true)
+            if (deviceEnumInfo.IsHdlDevice == true)
             {
                 //娣诲姞銆愬浐浠跺崌绾с�戣
                 this.AddFirmwareUpdateRow();
@@ -503,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>
@@ -670,7 +703,10 @@
                         //鎵嬫媺鎺у埗
                         if (0 < (attriBute.AttriButeData & 0x04))
                         {
-                            btnSwitch.IsSelected = true;
+                            HdlThreadLogic.Current.RunMain(() =>
+                            {
+                                btnSwitch.IsSelected = true;
+                            });
                         }
                     }
                 }
@@ -705,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();
+                };
             };
         }
 
@@ -924,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)
             {
                 //瀹氫綅

--
Gitblit v1.8.0