From 25429f085093d89d543a0b90e30d0d62d1b7dac9 Mon Sep 17 00:00:00 2001
From: hxb <hxb@hdlchina.com.cn>
Date: 星期二, 30 八月 2022 09:37:38 +0800
Subject: [PATCH] 合并了IOS的代码

---
 ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceFunctionSettionForm.cs |  570 +++++++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 395 insertions(+), 175 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceFunctionSettionForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceFunctionSettionForm.cs
index cd52804..891aeeb 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceFunctionSettionForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceFunctionSettionForm.cs
@@ -15,7 +15,7 @@
         /// <summary>
         /// 鍒楄〃鎺т欢
         /// </summary>
-        private VerticalListControl listview = null;
+        private FrameListControl listview = null;
         /// <summary>
         /// 褰撳墠閫夋嫨鐨勮澶�
         /// </summary>
@@ -27,7 +27,7 @@
         /// <summary>
         /// 璁惧澶囨敞鐨勬帶浠�
         /// </summary>
-        private FrameCaptionInputControl btnDeviceName = null;
+        private FrameCaptionInputControl frameDeviceName = null;
         /// <summary>
         /// 璁惧鐨勬煇涓�鍥炶矾
         /// </summary>
@@ -41,9 +41,9 @@
         /// </summary>
         private Dictionary<int, string> dicDeviceSaveName = new Dictionary<int, string>();
         /// <summary>
-        /// 璁惧闇�瑕佷繚瀛樼殑璁惧鍔熻兘
+        /// 淇℃伅缂栬緫鎺т欢
         /// </summary>
-        private Dictionary<int, DeviceFunctionType> dicDeviceFuncType = new Dictionary<int, DeviceFunctionType>();
+        private InformationEditorControl tableContr = null;
 
         #endregion
 
@@ -77,27 +77,50 @@
             //娓呯┖bodyFrame
             this.ClearBodyFrame();
 
+            var listBackControl = new VerticalFrameControl();
+            listBackControl.Height = bodyFrameLayout.Height;
+            bodyFrameLayout.AddChidren(listBackControl);
+
             //鍒濆鍖栨甯�
-            var tableContr = new InformationEditorControl();
-            this.listview = tableContr.InitControl(bodyFrameLayout, Language.StringByID(R.MyInternationalizationString.uDeviceEditor), 708, 1128);
+            this.tableContr = new InformationEditorControl();
+
+            if (this.deviceObj.Type == DeviceType.FreshAir || this.deviceObj.Type == DeviceType.PMSensor)
+            {
+                this.listview = tableContr.InitControl(listBackControl.frameTable, Language.StringByID(R.MyInternationalizationString.uDeviceEditor), 1028);
+            }
+            else if (this.deviceObj.Type == DeviceType.Airer)
+            {
+                //鏅捐。鏋惰澶囧彧瀛樺彇鍥炶矾1锛屽鏋滄槸鏅捐。鏋讹紝榛樿绔偣閮芥槸1锛�
+                this.deviceObj.DeviceEpoint = 1;
+                this.listview = tableContr.InitControl(listBackControl.frameTable, Language.StringByID(R.MyInternationalizationString.uDeviceEditor), 1342);
+            }
+            else if (this.deviceObj.Type == DeviceType.TemperatureSensor)
+            {
+                //绌烘皵璐ㄩ噺浼犳劅鍣� 
+                //鑾峰彇璁惧绫诲瀷
+                var deviceEnumInfo = Common.LocalDevice.Current.GetMyDeviceEnumInfo(new List<CommonDevice>() { this.deviceObj });
+                //绌烘皵璐ㄩ噺浼犳劅鍣�
+                if (deviceEnumInfo.ConcreteType == Common.DeviceConcreteType.AirQualitySensor)
+                {
+                    this.listview = tableContr.InitControl(listBackControl.frameTable, Language.StringByID(R.MyInternationalizationString.uDeviceEditor), 1368);
+                }
+            }
+            if (this.listview == null)
+            {
+                this.listview = tableContr.InitControl(listBackControl.frameTable, Language.StringByID(R.MyInternationalizationString.uDeviceEditor), 1128);
+            }
 
             //鍒濆鍖栬澶囧洖璺浘鏍�
-            this.InitDeviceEpointIcon();
-
-            //鍒濆鍖栨甯冨畬鎴�
-            tableContr.FinishInitControl(bodyFrameLayout, this.listview);
-            tableContr = null;
+            this.InitDeviceEpointIcon(listBackControl);
 
             //淇濆瓨
             var btnFinish = new BottomClickButton();
             btnFinish.TextID = R.MyInternationalizationString.uSave;
             bodyFrameLayout.AddChidren(btnFinish);
-            btnFinish.ButtonClickEvent += async (sender, e) =>
+            btnFinish.ButtonClickEvent += (sender, e) =>
             {
                 //璁板綍璧峰綋鍓嶆鍦ㄦ搷浣滅殑鍥炶矾鍚嶅瓧
-                dicDeviceSaveName[nowSelectDevice.DeviceEpoint] = btnDeviceName.Text.Trim();
-                //寮�鍚繘搴︽潯
-                this.ShowProgressBar();
+                dicDeviceSaveName[nowSelectDevice.DeviceEpoint] = frameDeviceName.Text.Trim();
                 foreach (var epoint in dicDeviceSaveName.Keys)
                 {
                     var device = Common.LocalDevice.Current.GetDevice(deviceObj.DeviceAddr, epoint);
@@ -111,47 +134,32 @@
                     if (oldName != newName)
                     {
                         //璁惧鍚嶇О淇敼
-                        var result = await Common.LocalDevice.Current.ReName(device, newName);
+                        var result = Common.LocalDevice.Current.ReName(device, newName);
                         if (result == false)
                         {
-                            //鍏抽棴
-                            this.CloseProgressBar();
                             return;
                         }
                     }
                 }
-                foreach (var epoint in dicDeviceFuncType.Keys)
-                {
-                    var device = Common.LocalDevice.Current.GetDevice(deviceObj.DeviceAddr, epoint);
-                    if (device == null)
-                    {
-                        continue;
-                    }
-                    //璁剧疆鍔熻兘绫诲瀷
-                    device.DfunctionType = dicDeviceFuncType[epoint];
-                    if (device.IsCustomizeImage == true)
-                    {
-                        continue;
-                    }
-                    //閲嶆柊璁剧疆鍥剧墖
-                    if (device.DfunctionType == DeviceFunctionType.A寮�鍏�)
-                    {
-                        device.IconPath = "Device/Switch.png";
-                    }
-                    else if (device.DfunctionType == DeviceFunctionType.A鎻掑骇)
-                    {
-                        device.IconPath = "Device/Socket1.png";
-                    }
-                    else if (device.DfunctionType == DeviceFunctionType.A鐏厜)
-                    {
-                        device.IconPath = "Device/Light.png";
-                    }
-                    device.ReSave();
-                }
-                this.CloseProgressBar();
+
+                //濡傛灉鏄櫨琛f灦銆屾椂闂村厛涓嶅鐞嗐��
+                //if (deviceObj.Type == DeviceType.Airer)
+                //{
+                //  var airer = deviceObj as Airer;
+                //  SetAirerFunTimeDevice(airer);
+                //}
+                //else
+                //{
                 //鍏抽棴鑷韩
                 this.CloseForm();
+                //}
+
             };
+            //濡傛灉褰撳墠鏄睍绀烘ā鏉�,鍒欎笉鑳界紪杈�
+            if (Common.Config.Instance.Home.IsShowTemplate == true)
+            {
+                btnFinish.CanClick = false;
+            }
         }
 
         /// <summary>
@@ -164,36 +172,42 @@
             //鍥炶矾澶囨敞
             string caption = Language.StringByID(R.MyInternationalizationString.uDeviceEpointNote);
             string nameValue = Common.LocalDevice.Current.GetDeviceEpointName(nowSelectDevice);
+
             if (dicDeviceSaveName.ContainsKey(nowSelectDevice.DeviceEpoint) == true)
             {
                 nameValue = dicDeviceSaveName[nowSelectDevice.DeviceEpoint];
             }
 
-            this.btnDeviceName = new FrameCaptionInputControl(caption, nameValue, listview.rowSpace / 2);
-            listview.AddChidren(btnDeviceName);
-            btnDeviceName.InitControl();
-            btnDeviceName.AddBottomLine();
-            btnDeviceName.txtInput.FinishInputEvent += async () =>
+            this.frameDeviceName = new FrameCaptionInputControl(caption, nameValue, listview.rowSpace / 2);
+            this.frameDeviceName.txtInput.MaxByte = 48;//闄愬埗鍙兘杈撳叆48涓瓧鑺�
+            listview.AddChidren(frameDeviceName);
+            frameDeviceName.InitControl();
+            frameDeviceName.AddBottomLine();
+            //濡傛灉褰撳墠鏄睍绀烘ā鏉�,鍒欓渶瑕佸鐞�
+            if (Common.Config.Instance.Home.IsShowTemplate == false)
             {
-                string oldName = Common.LocalDevice.Current.GetDeviceEpointName(nowSelectDevice);
-                if (btnDeviceName.Text.Trim() == string.Empty)
+                frameDeviceName.txtInput.FinishInputEvent += () =>
                 {
-                    //灏嗗悕瀛楄繕鍘�
-                    btnDeviceName.Text = oldName;
-                }
-                if (oldName != btnDeviceName.Text.Trim())
-                {
-                    //璁惧鍚嶇О淇敼
-                    var result = await Common.LocalDevice.Current.ReName(nowSelectDevice, btnDeviceName.Text.Trim());
-                    if (result == false)
+                    string oldName = Common.LocalDevice.Current.GetDeviceEpointName(nowSelectDevice);
+                    if (frameDeviceName.Text.Trim() == string.Empty)
                     {
-                        return;
+                        //灏嗗悕瀛楄繕鍘�
+                        frameDeviceName.Text = oldName;
                     }
-                    //鍥炶矾澶囨敞淇敼鎴愬姛!
-                    string msg = Language.StringByID(R.MyInternationalizationString.uDeviceEpointReNoteSuccess);
-                    this.ShowMassage(ShowMsgType.Tip, msg);
-                }
-            };
+                    if (oldName != frameDeviceName.Text.Trim())
+                    {
+                        //璁惧鍚嶇О淇敼
+                        var result = Common.LocalDevice.Current.ReName(nowSelectDevice, frameDeviceName.Text.Trim());
+                        if (result == false)
+                        {
+                            return;
+                        }
+                        //鍥炶矾澶囨敞淇敼鎴愬姛!
+                        string msg = Language.StringByID(R.MyInternationalizationString.uDeviceEpointReNoteSuccess);
+                        this.ShowMassage(ShowMsgType.Tip, msg);
+                    }
+                };
+            }
 
             //鎵�灞炲尯鍩�
             var rowBeloneArea = new BelongAreaControl(listview.rowSpace / 2);
@@ -204,11 +218,37 @@
             rowBeloneArea.SelectRoomEvent += (roomKeys) =>
             {
                 //鍙樻洿鎴块棿
-                Common.Room.CurrentRoom.ChangedRoom(nowSelectDevice, roomKeys);
+                HdlRoomLogic.Current.ChangedRoom(nowSelectDevice, roomKeys);
             };
+
+            if (this.deviceObj.Type == DeviceType.TemperatureSensor)
+            {
+                //鑾峰彇璁惧绫诲瀷
+                var deviceEnumInfo = Common.LocalDevice.Current.GetMyDeviceEnumInfo(new List<CommonDevice>() { this.deviceObj });
+                //绌烘皵璐ㄩ噺浼犳劅鍣�
+                if (deviceEnumInfo.ConcreteType == Common.DeviceConcreteType.AirQualitySensor)
+                {
+                    //璁惧绫诲瀷
+                    this.AddDeviceTypeRow();
+                }
+            }
 
             //娣诲姞鍔熻兘绫诲瀷琛�
             this.AddFunctionTypeRow();
+
+            if (this.deviceObj.Type == DeviceType.Airer)
+            {
+                var airer = this.deviceObj as Airer;
+                //娣诲姞鐑樺共鏃堕棿琛�
+                this.AddAirerDryTimeRow(airer);
+                //娣诲姞椋庡共鏃堕棿琛�
+                this.AddAirerWindTimeRow(airer);
+                //娣诲姞娑堟瘨鏃堕棿琛�
+                this.AddAirerDisinfectTimeRow(airer);
+            }
+
+            //鍒濆鍖栨甯冨畬鎴�
+            tableContr.FinishInitControl();
         }
 
         #endregion
@@ -220,6 +260,12 @@
         /// </summary>
         private void InitTopRightMenu()
         {
+            //妫�娴嬫鍥炶矾鏄惁鎷ユ湁瀹氫綅鍔熻兘
+            if (Common.LocalDevice.Current.DeviceIsCanFixedPosition(nowSelectDevice) == false
+                || Common.Config.Instance.Home.IsShowTemplate == true)
+            {
+                return;
+            }
             var btnIcon = new MostRightIconControl(69, 69);
             btnIcon.UnSelectedImagePath = "Item/More.png";
             topFrameLayout.AddChidren(btnIcon);
@@ -240,11 +286,11 @@
             string deviceMenu = string.Empty;
             //妫�娴嬫鍥炶矾鏄惁鎷ユ湁瀹氫綅鍔熻兘
             bool canTest = Common.LocalDevice.Current.DeviceIsCanFixedPosition(nowSelectDevice);
-            if (canTest == true)
-            {
-                menuCount = 2;
-            }
-            var frame = new TopRightMenuControl(menuCount);
+            //if (canTest == true)
+            //{
+            //    menuCount = 2;
+            //}
+            var frame = new TopRightMenuControl(menuCount, 1);
             if (canTest == true)
             {
                 //瀹氫綅
@@ -257,10 +303,10 @@
             }
 
             //鍒犻櫎
-            deviceMenu = Language.StringByID(R.MyInternationalizationString.uDelete);
-            frame.AddRowMenu(deviceMenu, "Item/DeleteIcon2.png", "Item/DeleteIcon2Selected.png", () =>
-            {
-            });
+            //deviceMenu = Language.StringByID(R.MyInternationalizationString.uDelete);
+            //frame.AddRowMenu(deviceMenu, "Item/DeleteIcon2.png", "Item/DeleteIcon2Selected.png", () =>
+            //{
+            //});
         }
 
         #endregion
@@ -272,85 +318,182 @@
         /// </summary>
         private void AddFunctionTypeRow()
         {
-            //濡傛灉鏄户鐢靛櫒鍜岃皟鍏夊櫒鐨勮瘽
-            if (nowSelectDevice.Type == DeviceType.OnOffOutput || nowSelectDevice.Type == DeviceType.DimmableLight
-                || nowSelectDevice.Type == DeviceType.ColorDimmableLight)
+            //鑷畾涔夊姛鑳界被鍨嬫帶浠�
+            var rowFunction = new DeviceFunctionTypeRowControl(nowSelectDevice, listview.rowSpace / 2);
+            if (rowFunction.CanShowRow == false)
             {
-                //鍔熻兘绫诲瀷
-                string caption = Language.StringByID(R.MyInternationalizationString.uFunctionType);
-                var DfunctionType = nowSelectDevice.DfunctionType;
-                if (this.dicDeviceFuncType.ContainsKey(nowSelectDevice.DeviceEpoint) == true)
-                {
-                    DfunctionType = this.dicDeviceFuncType[nowSelectDevice.DeviceEpoint];
-                }
-
-                //鍔熻兘绫诲瀷鐨勭炕璇戝悕瀛�
-                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 = false;
-                listview.AddChidren(btnFunction);
-                btnFunction.InitControl();
-                //搴曠嚎
-                btnFunction.AddBottomLine();
-
-                //濡傛灉鏄户鐢靛櫒鎵嶈兘澶熸洿鏀硅繖涓姛鑳界被鍨�
-                if (nowSelectDevice.Type == DeviceType.OnOffOutput)
-                {
-                    btnFunction.UseClickStatu = true;
-                    //鍙崇澶�
-                    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)
-                            {
-                                dicDeviceFuncType[nowSelectDevice.DeviceEpoint] = DeviceFunctionType.A寮�鍏�;
-                            }
-                            else if (selectNo == 1)
-                            {
-                                dicDeviceFuncType[nowSelectDevice.DeviceEpoint] = DeviceFunctionType.A鐏厜;
-                            }
-                            else
-                            {
-                                dicDeviceFuncType[nowSelectDevice.DeviceEpoint] = DeviceFunctionType.A鎻掑骇;
-                            }
-                        };
-                    };
-                }
+                return;
             }
+            listview.AddChidren(rowFunction);
+            rowFunction.InitControl();
+            //搴曠嚎
+            rowFunction.AddBottomLine();
+        }
+        #endregion
+
+        #region 鈻� 璁惧绫诲瀷___________________________
+
+        /// <summary>
+        /// 娣诲姞鍔熻兘绫诲瀷琛�
+        /// </summary>
+        private void AddDeviceTypeRow()
+        {
+            var caption = Language.StringByID(R.MyInternationalizationString.uDeviceType);
+            var listNewDevice = new List<CommonDevice>();
+            listNewDevice.Add(deviceObj);
+            var deviceName = Common.LocalDevice.Current.GetDeviceObjectText(listNewDevice);
+            var btnType = new FrameCaptionViewControl(caption, deviceName, listview.rowSpace / 2);
+            btnType.UseClickStatu = false;
+            listview.AddChidren(btnType);
+            btnType.InitControl();
+            //鍒掔嚎
+            btnType.AddBottomLine();
+        }
+        #endregion
+
+        #region 鈻� 鏅捐。鏋朵笓鐢╛________________________ 
+        #region 鈻� 鐑樺共鏃堕棿_________________________ 
+        /// <summary>
+        ///  鐑樺共鏃堕棿琛�
+        /// </summary>
+        private void AddAirerDryTimeRow(Airer airer)
+        {
+            var rowAirer = new AiererTimeControl(listview.rowSpace / 2);
+            listview.AddChidren(rowAirer);
+            var text = Language.StringByID(R.MyInternationalizationString.AirerDefault) + 3 + Language.StringByID(R.MyInternationalizationString.AirerHour);
+            if (airer.DryTime != 0)
+            {
+                double result = airer.DryTime / 60.0;
+                var hour = Math.Round(result, 2);
+                text = hour + Language.StringByID(R.MyInternationalizationString.AirerHour);
+            }
+            rowAirer.InitControl(airer, bodyFrameLayout, Language.StringByID(R.MyInternationalizationString.AirerDryTime), text, 1);
+            //搴曠嚎
+            rowAirer.AddBottomLine();
+            rowAirer.SelectTimeEvent += (v1, v2) =>
+            {
+                //double result = second / 3600.0;
+                //var hour = Math.Round(result, 1);
+                //text = hour + Language.StringByID(R.MyInternationalizationString.AirerHour);
+                //rowAirer.InitControl(airer, bodyFrameLayout, Language.StringByID(R.MyInternationalizationString.AirerDryTime), text, 1);
+            };
+
+        }
+        #endregion
+
+        #region 鈻� 椋庡共鏃堕棿_________________________ 
+        /// <summary>
+        ///  椋庡共鏃堕棿琛�
+        /// </summary>
+        private void AddAirerWindTimeRow(Airer airer)
+        {
+            var rowAirer = new AiererTimeControl(listview.rowSpace / 2);
+            listview.AddChidren(rowAirer);
+            var text = Language.StringByID(R.MyInternationalizationString.AirerDefault) + 3 + Language.StringByID(R.MyInternationalizationString.AirerHour);
+            if (airer.WindTime != 0)
+            {
+                double result = airer.WindTime / 60.0;
+                var hour = Math.Round(result, 1);
+                text = hour + Language.StringByID(R.MyInternationalizationString.AirerHour);
+            }
+            rowAirer.InitControl(airer, bodyFrameLayout, Language.StringByID(R.MyInternationalizationString.AirerWindTime), text, 2);
+            //搴曠嚎
+            rowAirer.AddBottomLine();
+            rowAirer.SelectTimeEvent += (v1, v2) =>
+            {
+                //double result = second / 3600.0;
+                //var hour = Math.Round(result, 1);
+                //text = hour + Language.StringByID(R.MyInternationalizationString.AirerHour);
+                //rowAirer.InitControl(airer, bodyFrameLayout, Language.StringByID(R.MyInternationalizationString.AirerDryTime), text, 1);
+            };
+        }
+        #endregion
+
+        #region 鈻� 娑堟瘨鏃堕棿_________________________ 
+        /// <summary>
+        ///  娑堟瘨鏃堕棿琛�
+        /// </summary>
+        private void AddAirerDisinfectTimeRow(Airer airer)
+        {
+            var rowAirer = new AiererTimeControl(listview.rowSpace / 2);
+            listview.AddChidren(rowAirer);
+            var text = Language.StringByID(R.MyInternationalizationString.AirerDefault) + 30 + Language.StringByID(R.MyInternationalizationString.AirerMin);
+            if (airer.DisinfectTime != 0)
+            {
+                text = airer.DisinfectTime + Language.StringByID(R.MyInternationalizationString.AirerMin);
+            }
+            rowAirer.InitControl(airer, bodyFrameLayout, Language.StringByID(R.MyInternationalizationString.AirerDisinfectTime), text, 3);
+            //搴曠嚎
+            rowAirer.AddBottomLine();
+            rowAirer.SelectTimeEvent += (v1, v2) =>
+            {
+
+            };
+        }
+        #endregion
+
+        #region 鈻�  璇诲彇鏃堕棿鍛戒护___________________
+
+        /// <summary>
+        /// 璇诲彇鏃堕棿鍛戒护
+        /// </summary>
+        public void ReadAirerFunTimeDevice()
+        {
+
         }
 
+        #endregion
+
+        /// <summary>
+        /// 璁惧鏃堕棿璁剧疆
+        /// </summary>
+        private void SetAirerFunTimeDevice(Airer airer)
+        {
+            HdlThreadLogic.Current.RunThread(async () =>
+            {
+                //鎵撳紑杩涘害鏉�
+                this.ShowProgressBar();
+
+                //鍒欒璁剧疆瀵瑰簲鐨勫姛鑳芥椂闂�
+                List<CommonDevice> listdevice = new List<CommonDevice>();
+
+                for (int i = 3; i < 6; i++)
+                {
+                    int time = 0;
+                    listdevice.Add(deviceObj);
+                    switch (i)
+                    {
+                        case 3:
+                            time = airer.WindTime;
+                            break;
+                        case 4:
+                            time = airer.DryTime;
+                            break;
+                        case 5:
+                            time = airer.DisinfectTime;
+                            break;
+                    }
+                    bool result = await Common.LocalDevice.Current.SetAirerTimeDevice(listdevice, airer, time, i);
+                    if (result == false)
+                    {
+                        airer.WindTime = airer.WindRemainTime = 0;
+                        airer.DryTime = airer.DryRemainTime = 0;
+                        airer.DisinfectTime = airer.DisinfectTime = 0;
+                        HdlThreadLogic.Current.RunMainInThread(() =>
+                  {
+                      this.InitMiddleFrame();
+                  });
+                        //鍏抽棴杩涘害鏉�
+                        this.CloseProgressBar();
+                        return;
+                    }
+                }
+                //鍏抽棴杩涘害鏉�
+                this.CloseProgressBar();
+                //鍏抽棴鑷韩
+                this.CloseForm();
+            });
+        }
         #endregion
 
         #region 鈻� 鍒濆鍖栬澶囧洖璺浘鏍嘷________________
@@ -358,7 +501,7 @@
         /// <summary>
         /// 鍒濆鍖栬澶囧洖璺浘鏍�
         /// </summary>
-        private void InitDeviceEpointIcon()
+        private void InitDeviceEpointIcon(VerticalFrameControl listBackControl)
         {
             //鑾峰彇鎸夌粍鍒嗛厤鐨勮澶�
             var listIcon = this.GetAllDeviceGroup();
@@ -366,11 +509,10 @@
             var frameBorder = new FrameLayout();
             frameBorder.Y = Application.GetRealHeight(147);
             frameBorder.Gravity = Gravity.CenterHorizontal;
-            frameBorder.Width = Application.GetMinRealAverage(887);
-            frameBorder.Height = Application.GetMinRealAverage(423);
-            frameBorder.BorderWidth = 3;
-            frameBorder.BorderColor = 0xffd0d0d0;
-            bodyFrameLayout.AddChidren(frameBorder);
+            frameBorder.Width = this.GetPictrueRealSize(887);
+            frameBorder.Height = Application.GetRealHeight(423);
+            frameBorder.Radius = (uint)Application.GetRealHeight(6);
+            listBackControl.frameTable.AddChidren(frameBorder);
 
             var frameBack = new FrameLayout();
             frameBack.Height = frameBorder.Height;
@@ -395,7 +537,7 @@
             {
                 var frame = new FrameLayout();
                 frame.Width = frameBorder.Width;
-                frame.Height = Application.GetMinRealAverage(124);
+                frame.Height = this.GetPictrueRealSize(124);
                 frameBack.AddChidren(frame);
                 //鍒濆鍖栦竴琛岃澶囧浘鏍�
                 this.InitDeviceIconFrame(frame, listIcon[i], ref index);
@@ -403,23 +545,86 @@
                 if (listIcon.Count == 1)
                 {
                     frame.Gravity = Gravity.CenterVertical;
+
+                    //濡傛灉鏄柊椋�
+                    if (deviceObj.Type == DeviceType.FreshAir)
+                    {
+                        frame.RemoveFromParent();
+                        frameBorder.Y = Application.GetRealHeight(0);
+                        frameBorder.Height = Application.GetRealHeight(709);
+                        frameBack.BackgroundImagePath = "FreshAir/FreshAirRealDevicePic.png";
+                        frameBack.Width = this.GetPictrueRealSize(878);
+                        frameBack.Height = this.GetPictrueRealSize(354);
+                        frameBack.Y = Application.GetRealHeight(153);
+                        frameBack.Gravity = Gravity.Center;
+                    }
+
+                    //濡傛灉鏄疨M2.5
+                    if (deviceObj.Type == DeviceType.PMSensor)
+                    {
+                        frame.RemoveFromParent();
+                        frameBorder.Y = Application.GetRealHeight(0);
+                        frameBorder.Height = Application.GetRealHeight(708);
+                        frameBack.BackgroundImagePath = "RealDevice/SensorPMTwoPointFive.png";
+                        frameBack.Width = this.GetPictrueRealSize(418);
+                        frameBack.Height = this.GetPictrueRealSize(403);
+                        frameBack.Y = Application.GetRealHeight(153);
+                        frameBack.Gravity = Gravity.Center;
+                    }
+
+                    //濡傛灉鏄櫨琛f灦
+                    if (deviceObj.Type == DeviceType.Airer)
+                    {
+                        frame.RemoveFromParent();
+                        frameBorder.Y = Application.GetRealHeight(0);
+                        frameBorder.Height = Application.GetRealHeight(299);
+                        frameBack.BackgroundImagePath = "Airer/Airer216.png";
+                        frameBack.Width = this.GetPictrueRealSize(207);
+                        frameBack.Height = this.GetPictrueRealSize(207);
+                        frameBack.Y = Application.GetRealHeight(92);
+                        frameBack.Gravity = Gravity.CenterHorizontal;
+                    }
+
+                    //濡傛灉鏄┖姘旇川閲忎紶鎰熷櫒
+                    if (this.deviceObj.Type == DeviceType.TemperatureSensor)
+                    {//绌烘皵璐ㄩ噺浼犳劅鍣� 
+                     //鑾峰彇璁惧绫诲瀷
+                        var deviceEnumInfo = Common.LocalDevice.Current.GetMyDeviceEnumInfo(new List<CommonDevice>() { this.deviceObj });
+                        //绌烘皵璐ㄩ噺浼犳劅鍣�
+                        if (deviceEnumInfo.ConcreteType == Common.DeviceConcreteType.AirQualitySensor)
+                        {
+                            frame.RemoveFromParent();
+                            frameBorder.Y = Application.GetRealHeight(0);
+                            frameBorder.Height = Application.GetRealHeight(299);
+                            //鍔犺浇鍥炬爣鎺т欢
+                            var btnPic = new DeviceInfoIconControl();
+                            btnPic.Y = Application.GetRealHeight(104);
+                            btnPic.Gravity = Gravity.CenterHorizontal;
+                            listBackControl.frameTable.AddChidren(btnPic);
+                            btnPic.InitControl(deviceObj);
+                        }
+                    }
                 }
                 else
                 {
-                    frame.Y = Application.GetMinRealAverage(58) + (frameBack.ChildrenCount - 1) * (frame.Height + Application.GetMinRealAverage(60));
+                    frame.Y = this.GetPictrueRealSize(58) + (frameBack.ChildrenCount - 1) * (frame.Height + this.GetPictrueRealSize(60));
                 }
             }
 
-            if (listIcon.Count > 2)
+            //濡傛灉鏄櫨琛f灦,鏈�5涓洖璺紝浣嗘槸5涓洖璺彧鏄唬琛ㄤ笉鍚屽姛鑳戒娇鐢紝涓嶆槸鐪熷疄鐨勫搴旇澶囷紝鎵�浠ラ粯璁ゅ彧鏄剧ず绗竴鍥炶矾
+            if (deviceObj.Type != DeviceType.Airer)
             {
-                //璁$畻鐪熷疄楂樺害
-                int realHeight = Application.GetMinRealAverage(58 + 58);//涓婁笅闂磋窛
-                realHeight += frameBack.ChildrenCount * Application.GetMinRealAverage(124);//鍦嗗湀楂樺害
-                realHeight += (frameBack.ChildrenCount-1) * Application.GetMinRealAverage(60);//鍦嗗湀闂磋窛
-                if (realHeight > frameBack.Height)
+                if (listIcon.Count > 2)
                 {
-                    //鍙樻洿楂樺害
-                    frameBack.Height = realHeight;
+                    //璁$畻鐪熷疄楂樺害
+                    int realHeight = this.GetPictrueRealSize(58 + 58);//涓婁笅闂磋窛
+                    realHeight += frameBack.ChildrenCount * this.GetPictrueRealSize(124);//鍦嗗湀楂樺害
+                    realHeight += (frameBack.ChildrenCount - 1) * this.GetPictrueRealSize(60);//鍦嗗湀闂磋窛
+                    if (realHeight > frameBack.Height)
+                    {
+                        //鍙樻洿楂樺害
+                        frameBack.Height = realHeight;
+                    }
                 }
             }
         }
@@ -435,7 +640,7 @@
         {
             NormalViewControl btnTemp = null;
             //闂磋窛
-            int space = Application.GetMinRealAverage(84);
+            int space = this.GetPictrueRealSize(84);
             int defultXX = (frame.Width - frame.Height * listDevice.Count - (listDevice.Count - 1) * space) / 2;
             for (int i = 0; i < listDevice.Count; i++)
             {
@@ -444,7 +649,7 @@
                 btnIcon.Name = "btn" + listDevice[i].DeviceEpoint;
                 btnIcon.X = defultXX + i * (frame.Height + space);
                 btnIcon.Radius = (uint)frame.Height / 2;
-                btnIcon.BorderWidth = (uint)Application.GetMinRealAverage(6);
+                btnIcon.BorderWidth = 2;
                 btnIcon.BorderColor = 0xff979797;
                 btnIcon.TextAlignment = TextAlignment.Center;
                 btnIcon.TextColor = UserCenterColor.Current.TextGrayColor3;
@@ -487,6 +692,18 @@
                     //鍙鍚屼竴绉嶇被鍨嬬殑
                     continue;
                 }
+
+                //鑾峰彇璁惧灞炰簬銆愮畝绾﹀鍔熻兘闈㈡澘銆�
+                var deviceEnumInfo = Common.LocalDevice.Current.GetMyDeviceEnumInfo(listDevice);
+                if (deviceEnumInfo.ConcreteType == Common.DeviceConcreteType.ButtonPanel_SimpleMultifunction)
+                {
+                    if (device.Type == DeviceType.TemperatureSensor && device.DeviceEpoint == 1)
+                    {
+                        //绠�绾﹀鍔熻兘闈㈡澘绗�1鍥炶矾鏄竴涓粦瀹氭俯婀垮害浼犳劅鍣ㄧ绫诲瀷锛屼笉鏄湡鐨勬俯婀垮害鐨勪紶鎰熷櫒锛岄渶瑕佸睆钄芥帀
+                        continue;
+                    }
+                }
+
                 listRelay.Add(device);
                 if (device.DeviceEpoint == deviceObj.DeviceEpoint)
                 {
@@ -527,7 +744,6 @@
             }
             return listIcon;
         }
-
         #endregion
 
         #region 鈻� 鍥炶矾閫夋嫨___________________________
@@ -543,16 +759,20 @@
             if (nowSelectControl != null)
             {
                 //鍚屼竴涓笢瑗�,涓嶉笩浠�
-                if (nowSelectControl.Name == nowContr.Name)
+                if (this.deviceObj.Type != DeviceType.Airer)
                 {
-                    return;
+                    if (nowSelectControl.Name == nowContr.Name)
+                    {
+                        return;
+                    }
                 }
+
                 //涓嶉�夋嫨鐘舵��
                 nowSelectControl.BorderColor = 0xff979797;
                 nowSelectControl.TextSize = 13;
                 nowSelectControl.TextColor = UserCenterColor.Current.TextGrayColor3;
                 //璁板綍瀹冪殑鍚嶅瓧
-                dicDeviceSaveName[nowSelectDevice.DeviceEpoint] = btnDeviceName.Text.Trim();
+                dicDeviceSaveName[nowSelectDevice.DeviceEpoint] = frameDeviceName.Text.Trim();
             }
             //閫夋嫨鐘舵��
             nowContr.BorderColor = 0xfffb744a;

--
Gitblit v1.8.0