From e90209beae6a4e822cecb18e6889f8bda23f630e Mon Sep 17 00:00:00 2001
From: 黄学彪 <hxb@hdlchina.com.cn>
Date: 星期一, 14 十二月 2020 11:16:06 +0800
Subject: [PATCH] 合并了晾衣架(非新云端)

---
 ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceFunctionSettionForm.cs |  243 +++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 219 insertions(+), 24 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceFunctionSettionForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceFunctionSettionForm.cs
index f99f0f5..d8b96a3 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceFunctionSettionForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceFunctionSettionForm.cs
@@ -88,6 +88,13 @@
             {
                 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
             {
                 this.listview = tableContr.InitControl(listBackControl.frameTable, Language.StringByID(R.MyInternationalizationString.uDeviceEditor), 1128);
@@ -106,26 +113,37 @@
                 dicDeviceSaveName[nowSelectDevice.DeviceEpoint] = frameDeviceName.Text.Trim();
                 foreach (var epoint in dicDeviceSaveName.Keys)
                 {
-                    var device = HdlDeviceCommonLogic.Current.GetDevice(deviceObj.DeviceAddr, epoint);
+                    var device = Common.LocalDevice.Current.GetDevice(deviceObj.DeviceAddr, epoint);
                     if (device == null || dicDeviceSaveName[epoint] == string.Empty)
                     {
                         //涓嶈兘鍏佽绌虹櫧鍚嶅瓧
                         continue;
                     }
                     string newName = dicDeviceSaveName[epoint];
-                    string oldName = HdlDeviceCommonLogic.Current.GetDeviceEpointName(device);
+                    string oldName = Common.LocalDevice.Current.GetDeviceEpointName(device);
                     if (oldName != newName)
                     {
                         //璁惧鍚嶇О淇敼
-                        var result = HdlDeviceCommonLogic.Current.ReName(device, newName);
+                        var result = Common.LocalDevice.Current.ReName(device, newName);
                         if (result == false)
                         {
                             return;
                         }
                     }
                 }
+
+                //濡傛灉鏄櫨琛f灦銆屾椂闂村厛涓嶅鐞嗐��
+                //if (deviceObj.Type == DeviceType.Airer)
+                //{
+                //  var airer = deviceObj as Airer;
+                //  SetAirerFunTimeDevice(airer);
+                //}
+                //else
+                //{
                 //鍏抽棴鑷韩
                 this.CloseForm();
+                //}
+
             };
             //濡傛灉褰撳墠鏄睍绀烘ā鏉�,鍒欎笉鑳界紪杈�
             if (Common.Config.Instance.Home.IsShowTemplate == true)
@@ -143,7 +161,8 @@
 
             //鍥炶矾澶囨敞
             string caption = Language.StringByID(R.MyInternationalizationString.uDeviceEpointNote);
-            string nameValue = HdlDeviceCommonLogic.Current.GetDeviceEpointName(nowSelectDevice);
+            string nameValue = Common.LocalDevice.Current.GetDeviceEpointName(nowSelectDevice);
+
             if (dicDeviceSaveName.ContainsKey(nowSelectDevice.DeviceEpoint) == true)
             {
                 nameValue = dicDeviceSaveName[nowSelectDevice.DeviceEpoint];
@@ -159,7 +178,7 @@
             {
                 frameDeviceName.txtInput.FinishInputEvent += () =>
                 {
-                    string oldName = HdlDeviceCommonLogic.Current.GetDeviceEpointName(nowSelectDevice);
+                    string oldName = Common.LocalDevice.Current.GetDeviceEpointName(nowSelectDevice);
                     if (frameDeviceName.Text.Trim() == string.Empty)
                     {
                         //灏嗗悕瀛楄繕鍘�
@@ -168,7 +187,7 @@
                     if (oldName != frameDeviceName.Text.Trim())
                     {
                         //璁惧鍚嶇О淇敼
-                        var result = HdlDeviceCommonLogic.Current.ReName(nowSelectDevice, frameDeviceName.Text.Trim());
+                        var result = Common.LocalDevice.Current.ReName(nowSelectDevice, frameDeviceName.Text.Trim());
                         if (result == false)
                         {
                             return;
@@ -191,9 +210,20 @@
                 //鍙樻洿鎴块棿
                 HdlRoomLogic.Current.ChangedRoom(nowSelectDevice, roomKeys);
             };
-
             //娣诲姞鍔熻兘绫诲瀷琛�
             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();
         }
@@ -208,7 +238,7 @@
         private void InitTopRightMenu()
         {
             //妫�娴嬫鍥炶矾鏄惁鎷ユ湁瀹氫綅鍔熻兘
-            if (HdlDeviceCommonLogic.Current.DeviceIsCanFixedPosition(nowSelectDevice) == false
+            if (Common.LocalDevice.Current.DeviceIsCanFixedPosition(nowSelectDevice) == false
                 || Common.Config.Instance.Home.IsShowTemplate == true)
             {
                 return;
@@ -232,7 +262,7 @@
             int menuCount = 1;
             string deviceMenu = string.Empty;
             //妫�娴嬫鍥炶矾鏄惁鎷ユ湁瀹氫綅鍔熻兘
-            bool canTest = HdlDeviceCommonLogic.Current.DeviceIsCanFixedPosition(nowSelectDevice);
+            bool canTest = Common.LocalDevice.Current.DeviceIsCanFixedPosition(nowSelectDevice);
             //if (canTest == true)
             //{
             //    menuCount = 2;
@@ -245,7 +275,7 @@
                 frame.AddRowMenu(deviceMenu, "Item/FixedPosition.png", "Item/FixedPositionSelected.png", () =>
                 {
                     //鍙戦�佸畾浣嶅姛鑳�
-                    HdlDeviceCommonLogic.Current.SetFixedPositionCommand(nowSelectDevice);
+                    Common.LocalDevice.Current.SetFixedPositionCommand(nowSelectDevice);
                 });
             }
 
@@ -276,7 +306,151 @@
             //搴曠嚎
             rowFunction.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 鈻� 鍒濆鍖栬澶囧洖璺浘鏍嘷________________
@@ -354,6 +528,19 @@
                         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;
+                    }
                 }
                 else
                 {
@@ -361,16 +548,20 @@
                 }
             }
 
-            if (listIcon.Count > 2)
+            //濡傛灉鏄櫨琛f灦,鏈�5涓洖璺紝浣嗘槸5涓洖璺彧鏄唬琛ㄤ笉鍚屽姛鑳戒娇鐢紝涓嶆槸鐪熷疄鐨勫搴旇澶囷紝鎵�浠ラ粯璁ゅ彧鏄剧ず绗竴鍥炶矾
+            if (deviceObj.Type != DeviceType.Airer)
             {
-                //璁$畻鐪熷疄楂樺害
-                int realHeight = this.GetPictrueRealSize(58 + 58);//涓婁笅闂磋窛
-                realHeight += frameBack.ChildrenCount * this.GetPictrueRealSize(124);//鍦嗗湀楂樺害
-                realHeight += (frameBack.ChildrenCount - 1) * this.GetPictrueRealSize(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;
+                    }
                 }
             }
         }
@@ -424,7 +615,7 @@
         private List<List<CommonDevice>> GetAllDeviceGroup()
         {
             bool hadDevice = false;
-            var listDevice = HdlDeviceCommonLogic.Current.GetDevicesByMac(deviceObj.DeviceAddr);
+            var listDevice = Common.LocalDevice.Current.GetDevicesByMac(deviceObj.DeviceAddr);
             var listRelay = new List<CommonDevice>();
             foreach (var device in listDevice)
             {
@@ -440,8 +631,8 @@
                 }
 
                 //鑾峰彇璁惧灞炰簬銆愮畝绾﹀鍔熻兘闈㈡澘銆�
-                var deviceEnumInfo = HdlDeviceCommonLogic.Current.GetMyDeviceEnumInfo(listDevice);
-                if (deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_SimpleMultifunction)
+                var deviceEnumInfo = Common.LocalDevice.Current.GetMyDeviceEnumInfo(listDevice);
+                if (deviceEnumInfo.ConcreteType == Common.DeviceConcreteType.ButtonPanel_SimpleMultifunction)
                 {
                     if (device.Type == DeviceType.TemperatureSensor && device.DeviceEpoint == 1)
                     {
@@ -505,10 +696,14 @@
             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;
@@ -522,7 +717,7 @@
             nowContr.TextColor = UserCenterColor.Current.TextColor1;
 
             nowSelectControl = nowContr;
-            nowSelectDevice = HdlDeviceCommonLogic.Current.GetDevice(deviceObj.DeviceAddr, Convert.ToInt32(nowContr.Name.Replace("btn", string.Empty)));
+            nowSelectDevice = Common.LocalDevice.Current.GetDevice(deviceObj.DeviceAddr, Convert.ToInt32(nowContr.Name.Replace("btn", string.Empty)));
 
             //閲嶆柊鍒濆鍖栬彍鍗曡
             this.InitMenuRow();

--
Gitblit v1.8.0