From 6d73bf6e816570291865674bef8bce8972e4de3f Mon Sep 17 00:00:00 2001
From: xm <1271024303@qq.com>
Date: 星期三, 01 十二月 2021 16:32:57 +0800
Subject: [PATCH] 2021-12-01-01

---
 HDL_ON/UI/UI2/3-Intelligence/Automation/ConditionDeviceFunList.cs |  198 ++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 185 insertions(+), 13 deletions(-)

diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/ConditionDeviceFunList.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/ConditionDeviceFunList.cs
index 9423a49..01a0587 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Automation/ConditionDeviceFunList.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/ConditionDeviceFunList.cs
@@ -13,6 +13,10 @@
             Tag = "Logic";
         }
         /// <summary>
+        /// 褰撳墠閫変腑鐨勫姛鑳�
+        /// </summary>
+        private Entity.Function function = null;
+        /// <summary>
         /// 瀹氫箟涓�涓褰曢�変腑璁惧鐘舵�佸垪琛紱
         /// </summary>
         private List<Dictionary<string, string>> dicSateteList = new List<Dictionary<string, string>>();
@@ -23,6 +27,7 @@
 
         public void Show(Entity.Function device, int index, bool edit)
         {
+            this.function = device;
             #region 鐣岄潰甯冨眬
             this.BackgroundColor = CSS.CSS_Color.viewMiddle;
             LogicView.TopView topView = new LogicView.TopView();
@@ -43,6 +48,7 @@
             switch (device.spk)
             {
                 //寮�鍏崇伅鍏� light.Switch
+                case SPK.AirSwitch:
                 case SPK.LightDimming:
                 case SPK.LightRGB:
                 case SPK.LightRGBW:
@@ -54,8 +60,16 @@
                 case SPK.CurtainTrietex:
                 //绌鸿皟
                 case SPK.AcStandard:
+                case SPK.HvacAC:
                 //鍦扮儹
                 case SPK.FloorHeatStandard:
+                case SPK.HvacFloorHeat:
+                //鏂伴
+                case SPK.AirFreshStandard:
+                case SPK.HvacAirFresh:
+                //鎻掑骇
+                case SPK.PanelSocket:
+                case SPK.ElectricSocket:
                     {
 
                         LogicView.FunTypeView view = new LogicView.FunTypeView();
@@ -104,11 +118,11 @@
                         {
                             GetEditState(device, index, view.btnState, null, null, null);
                         }
-
                     }
                     break;
                 //骞叉帴鐐�
                 case SPK.SensorDryContact:
+                case SPK.SensorDryContact2:
                     {
                         LogicView.FunTypeView view = new LogicView.FunTypeView();
                         view.btnText.TextID = StringId.switchLogic;
@@ -188,6 +202,7 @@
                     break;
                 //姣背娉紶鎰熷櫒
                 case SPK.SenesorMegahealth:
+                case SPK.SenesorMegahealth2:
                     {
                         LogicView.FunTypeView view = new LogicView.FunTypeView();
                         view.btnText.TextID = StringId.mubiaozhuangtai;//鐩爣鐘舵��
@@ -272,6 +287,105 @@
 
                         };
                         #endregion
+                    }
+                    break;
+                    //娓╁害浼犳劅鍣�
+                case SPK.SensorTemperature:
+                    {
+                        ///娓╁害
+                        LogicView.FunTypeView wenuView = new LogicView.FunTypeView();
+                        wenuView.btnText.TextID = StringId.wendu;
+                        fLayout.AddChidren(wenuView.FLayoutView());
+
+                        ///娓╁害鐐瑰嚮浜嬩欢
+                        wenuView.btnClick.MouseUpEventHandler += (sender, e) =>
+                        {
+                            new PublicInterface { }.ViewZuHe(this, StringId.wendugaoyu, StringId.wendudiyu, (intText, view) =>
+                            {
+                                InputBoxAction(device, intText, index, edit);
+                            });
+                        };
+                    }
+                    break;
+                //婀垮害浼犳劅鍣�
+                case SPK.SensorHumidity:
+                    {
+                        ///婀垮害
+                        LogicView.FunTypeView shiduView = new LogicView.FunTypeView();
+                        shiduView.btnText.TextID = StringId.shidu;
+                        fLayout.AddChidren(shiduView.FLayoutView());
+                        ///婀垮害鐐瑰嚮浜嬩欢
+                        shiduView.btnClick.MouseUpEventHandler += (sender, e) =>
+                        {
+                            new PublicInterface { }.ViewZuHe(this, StringId.shidugaoyu, StringId.shidudiyu, (intText, view) =>
+                            {
+                                InputBoxAction(device, intText, index, edit);
+                            });
+
+                        };
+                    }
+                    break;
+                //co2
+                case SPK.SensorCO2:
+                    {
+
+
+                        ///co2
+                        LogicView.FunTypeView co2View = new LogicView.FunTypeView();
+                        co2View.btnText.TextID = StringId.co2;
+                        fLayout.AddChidren(co2View.FLayoutView());
+
+                        ///co2鐐瑰嚮浜嬩欢
+                        co2View.btnClick.MouseUpEventHandler += (sender, e) =>
+                        {
+                            PmCo2TvocAction(this, device, "co2", StringId.co2, index, edit);
+                        };
+                    }
+                    break;
+                //pm2.5
+                case SPK.SensorPm25:
+                    {
+                        ///pm2.5
+                        LogicView.FunTypeView pm25View = new LogicView.FunTypeView();
+                        pm25View.btnText.TextID = StringId.pm25;
+                        fLayout.AddChidren(pm25View.FLayoutView());
+
+                        ///pm2.5鐐瑰嚮浜嬩欢
+                        pm25View.btnClick.MouseUpEventHandler += (sender, e) =>
+                        {
+                            PmCo2TvocAction(this, device, "pm25", StringId.pm25, index, edit);
+                        };
+                    }
+                    break;
+                //tvoc
+                case SPK.SensorTVOC:
+                    {
+                        ///tvoc
+                        LogicView.FunTypeView tvocView = new LogicView.FunTypeView();
+                        tvocView.btnText.TextID = StringId.tvoc;
+                        fLayout.AddChidren(tvocView.FLayoutView());
+
+                        ///tvoc鐐瑰嚮浜嬩欢
+                        tvocView.btnClick.MouseUpEventHandler += (sender, e) =>
+                        {
+                            PmCo2TvocAction(this, device, "tvoc", StringId.tvoc, index, edit);
+
+                        };
+                    }
+                    break;
+                //鐢查啗
+                case SPK.SensorHcho:
+                    {
+                        ///hcho
+                        LogicView.FunTypeView hchoView = new LogicView.FunTypeView();
+                        hchoView.btnText.TextID = StringId.Formaldehyde;
+                        fLayout.AddChidren(hchoView.FLayoutView());
+                        ///hcho鐐瑰嚮浜嬩欢
+                        hchoView.btnClick.MouseUpEventHandler += (sender, e) =>
+                        {
+                            PmCo2TvocAction(this, device, "hcho", StringId.Formaldehyde, index, edit);
+
+                        };
                     }
                     break;
             }
@@ -364,22 +478,48 @@
                 switch (device.spk)
                 {
                     //浼犳劅鍣�
+                    case SPK.SensorGas:
                     case SPK.SensorWater:
                     case SPK.SensorSmoke:
-                    case SPK.SensorGas:
-                    case SPK.SensorDryContact:
-                    case SPK.SensorShanLan:
-                    case SPK.SensorDuiShe:
-                    case SPK.SensorPir:
+                        {
+                            keyVlaue = "status";
+                            if (!Is_SpkAttribute(keyVlaue)) {
+                                keyVlaue = "alarm_status";
+                            } 
+                        };
+                        break;
                     case SPK.SensorDoorWindow:
+                    case SPK.SensorDryContact:
+                    case SPK.SensorDryContact2:
+                        {
+                            keyVlaue = "status";
+                            if (!Is_SpkAttribute(keyVlaue))
+                            {
+                                keyVlaue = "contact_status";
+                            }
+                        }
+                        break;
+                    case SPK.SensorDuiShe:
+                    case SPK.SensorShanLan:
+                    case SPK.SensorPir:
                     case SPK.SensorUtrasonic:
                         {
                             keyVlaue = "status";
+                            if (!Is_SpkAttribute(keyVlaue))
+                            {
+                                keyVlaue = "people_status";
+                            }
+
                         }
                         break;
                     case SPK.SenesorMegahealth:
+                    case SPK.SenesorMegahealth2:
                         {
                             keyVlaue = "action_state";
+                            if (!Is_SpkAttribute(keyVlaue))
+                            {
+                                keyVlaue = "megahealth_state";
+                            }
                         }
                         break;
 
@@ -415,7 +555,7 @@
                         break;
                     case StringId.wuren:
                         {
-                            if (device.spk == SPK.SenesorMegahealth)
+                            if (device.spk == SPK.SenesorMegahealth || device.spk == SPK.SenesorMegahealth2)
                             {
                                 value = "uninhabited";
                             }
@@ -523,7 +663,7 @@
         /// <param name="index"></param>
         /// <param name="edit"></param>
         /// <param name="stateValue">缂栬緫涔嬪墠鐨勭姸鎬佸��,榛樿涓�""</param>
-        public void PmCo2TvocAction(FrameLayout frame, Entity.Function device,string key,int title, int index, bool edit, string stateValue = "")
+        public void PmCo2TvocAction(FrameLayout frame, Entity.Function device, string key, int title, int index, bool edit, string stateValue = "")
         {
             if (edit)
             {
@@ -536,15 +676,32 @@
                     dicSateteList = inputs.condition;
                 }
             }
-            PublicInterface view = new PublicInterface();  
-            var listStr = view.GetViewList(key); 
+            PublicInterface view = new PublicInterface();
+            var listStr = view.GetViewList(key);
             view.SingleSelectionShow(frame, listStr, Language.StringByID(title), view.GetString(key, stateValue)
                , (text) =>
                {
+                  
                    var value = view.GetValue(key, text);
-                   selectedState = device.spk + "_"+ key;
-                   AddDictionary(key, value, "integer","in");
-                   Save(device,index, edit);
+                   selectedState = device.spk + "_" + key;
+                   switch (device.spk)
+                   {
+                       case SPK.SensorTemperature:
+                       case SPK.SensorHumidity:
+                       case SPK.SensorCO2:
+                       case SPK.SensorPm25:
+                       case SPK.SensorTVOC:
+                       case SPK.SensorHcho:
+                           {
+                               if (!Is_SpkAttribute(key))
+                               {
+                                   key = "value";
+                               }
+                           }
+                           break;
+                   }
+                   AddDictionary(key, value, "integer", "in");
+                   Save(device, index, edit);
                });
         }
         /// <summary>
@@ -689,6 +846,21 @@
             return false;
         }
 
+        /// <summary>
+        /// 璇嗗埆浣跨敤鍔熻兘鏄惁瀛樺湪灞炴��
+        /// </summary>
+        /// <param name="key">璁惧灞炴�э紝浜戦泙涓婂畾涔夊ソ鐨�</param>
+        /// <returns></returns>
+        private bool Is_SpkAttribute(string key) {
+            ///淇敼鏂板睘鎬�
+            ///璇嗗埆浣跨敤鍔熻兘鏄惁瀛樺湪灞炴��
+            var job = this.function.GetAttribute(key);
+            if (job != null)
+            {
+                return true;
+            }
+            return false;
+        }
        
     }
 }

--
Gitblit v1.8.0