From f16e7e4df7e7813e4a3052dae752aae3e6937b30 Mon Sep 17 00:00:00 2001
From: wxr <464027401@qq.com>
Date: 星期五, 08 七月 2022 16:53:12 +0800
Subject: [PATCH] 自研可视对讲、毫米波

---
 HDL_ON/UI/UI2/3-Intelligence/Automation/ConditionDeviceFunList.cs |  139 +++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 129 insertions(+), 10 deletions(-)

diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/ConditionDeviceFunList.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/ConditionDeviceFunList.cs
index 01a0587..abf4b91 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Automation/ConditionDeviceFunList.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/ConditionDeviceFunList.cs
@@ -24,10 +24,20 @@
         /// 瀹氫箟涓�涓彉閲忥紝璁板綍閫変腑鐘舵��
         /// </summary>
         private string selectedState = "unknown";
+        /// <summary>
+        /// 鏄笉鏄啀娆$紪杈�
+        /// </summary>
+        private bool mEdit;
+        /// <summary>
+        /// 杈撳叆鏉′欢鍒楄〃绱㈠紩鍊�
+        /// </summary>
+        private int mIndex;
 
         public void Show(Entity.Function device, int index, bool edit)
         {
             this.function = device;
+            this.mEdit = edit;
+            this.mIndex = index;
             #region 鐣岄潰甯冨眬
             this.BackgroundColor = CSS.CSS_Color.viewMiddle;
             LogicView.TopView topView = new LogicView.TopView();
@@ -53,7 +63,7 @@
                 case SPK.LightRGB:
                 case SPK.LightRGBW:
                 case SPK.LightCCT:
-                case SPK.LightSwitch:
+                //case SPK.LightSwitch:
                 //绐楀笜
                 case SPK.CurtainSwitch:
                 case SPK.CurtainRoller:
@@ -200,8 +210,36 @@
                         }
                     }
                     break;
-                //姣背娉紶鎰熷櫒
+                //姣背娉紶鎰熷櫒(鑷爺鍖楅偖)
                 case SPK.SenesorMegahealth:
+                    {
+
+                        LogicView.FunTypeView view1= new LogicView.FunTypeView(); 
+                        view1.btnText.TextID = StringId.diedaobaojing;
+                        view1.btnState.Name = Language.StringByID(StringId.diedaobaojing);
+                        fLayout.AddChidren(view1.FLayoutView());
+                        view1.btnClick.MouseUpEventHandler += (sender, e) =>
+                        {
+                            DeviceView(device, view1.btnState, StringId.shi, StringId.offLogic, 1);
+                        };
+                        
+                        LogicView.FunTypeView view2 = new LogicView.FunTypeView();
+                        view2.frameLayout.Y = view1.frameLayout.Bottom;
+                        view2.btnText.TextID = StringId.yourenbaojing;
+                        view2.btnState.Name = Language.StringByID(StringId.yourenbaojing);
+                        fLayout.AddChidren(view2.FLayoutView());
+                        view2.btnClick.MouseUpEventHandler += (sender, e) =>
+                        {
+                            DeviceView(device, view2.btnState, StringId.youren, StringId.wuren, 2);
+                        };
+                        if (edit)
+                        {
+                            GetEditState(device, index, view1.btnState, view2.btnState, null, null);
+                        }
+
+                    }
+                    break;
+                //姣背娉紶鎰熷櫒(鍏嗚涓撶敤浜戜簯瀵规帴)
                 case SPK.SenesorMegahealth2:
                     {
                         LogicView.FunTypeView view = new LogicView.FunTypeView();
@@ -360,6 +398,7 @@
                 //tvoc
                 case SPK.SensorTVOC:
                     {
+                        
                         ///tvoc
                         LogicView.FunTypeView tvocView = new LogicView.FunTypeView();
                         tvocView.btnText.TextID = StringId.tvoc;
@@ -386,6 +425,23 @@
                             PmCo2TvocAction(this, device, "hcho", StringId.Formaldehyde, index, edit);
 
                         };
+                    }
+                    break;
+                //闂ㄩ攣
+                case SPK.DoorLock:
+                    {
+
+                        LogicView.FunTypeView view = new LogicView.FunTypeView();
+                        view.btnText.TextID = StringId.shifoukaisuoshi;
+                        fLayout.AddChidren(view.FLayoutView());
+                        view.btnClick.MouseUpEventHandler += (sender, e) =>
+                        {
+                            DeviceView(device, view.btnState, StringId.shi, StringId.offLogic,1);
+                        };
+                        if (edit)
+                        {
+                            GetEditState(device, index, view.btnState, null, null, null);
+                        }
                     }
                     break;
             }
@@ -465,12 +521,13 @@
         /// <param name="button">閫変腑鐘舵�佹樉绀烘枃鏈珺tn鎺т欢</param>
         /// <param name="btnText1">灞炴�х姸鎬佸�兼枃鏈�1</param>
         /// <param name="btnText2">灞炴�х姸鎬佸�兼枃鏈�2</param>
-        private void DeviceView(Entity.Function device, Button button, int btnText1, int btnText2)
+        /// <param name="viewCount">view鏁伴噺</param>
+        private void DeviceView(Entity.Function device, Button button, int btnText1, int btnText2,int viewCount=2)
         {
             FrameLayout frame = new FrameLayout { BackgroundColor = CSS.CSS_Color.viewTrans60lucence };
             this.AddChidren(frame);
             LogicView.SwitchView switchView = new LogicView.SwitchView();
-            switchView.FLayoutView(frame, btnText1, btnText2, button.Text, (intValue) =>
+            switchView.FLayoutView(frame, btnText1, btnText2, button.Text, viewCount,(intValue) =>
             {
                 //璁惧灞炴�у�硷紝浜戦泙涓婂畾涔夊ソ鐨�;
                 string keyVlaue = "on_off";
@@ -513,6 +570,23 @@
                         }
                         break;
                     case SPK.SenesorMegahealth:
+                        {
+                            if (button != null)
+                            {
+                                
+                                if (button.Name == Language.StringByID(StringId.yourenbaojing))
+                                {
+                                    keyVlaue = "people_status";
+                                   
+                                }
+                                else
+                                {
+                                    keyVlaue = "target_status";
+                                }
+                            }
+
+                        }
+                        break;
                     case SPK.SenesorMegahealth2:
                         {
                             keyVlaue = "action_state";
@@ -520,6 +594,11 @@
                             {
                                 keyVlaue = "megahealth_state";
                             }
+                        }
+                        break;
+                    case SPK.DoorLock:
+                        {
+                            keyVlaue = "door_status";
                         }
                         break;
 
@@ -555,13 +634,33 @@
                         break;
                     case StringId.wuren:
                         {
-                            if (device.spk == SPK.SenesorMegahealth || device.spk == SPK.SenesorMegahealth2)
+                            if (device.spk == SPK.SenesorMegahealth2)
                             {
                                 value = "uninhabited";
                             }
                             else
                             {
                                 value = "false";
+                            }
+                        }
+                        break;
+                    case StringId.shi:
+                        {
+                            value = "open";
+                            if (button != null)
+                            {
+
+                                if (button.Name == Language.StringByID(StringId.yourenbaojing))
+                                {
+                                    //鐘舵��(鏈変汉)
+                                    value = "true";
+
+                                }
+                                else if(button.Name == Language.StringByID(StringId.diedaobaojing))
+                                {
+                                    //璺屽��
+                                    value = "4";
+                                }
                             }
                         }
                         break;
@@ -589,11 +688,24 @@
                         {
                             value = "fall";
                         }; break;
+                   
+
                 }
                 //鏄剧ず鏂囨湰
                 button.TextID = intValue;
                 selectedState = device.spk + "_" + value;
                 AddDictionary(keyVlaue, value, "string");
+                if (button != null)
+                {
+
+                    if (button.Name == Language.StringByID(StringId.yourenbaojing)
+                    || (button.Name == Language.StringByID(StringId.diedaobaojing)))
+                    {
+                        //鍙湁姣背娉紶鎰熷櫒(鑷爺)
+                        Save(device, mIndex, mEdit);
+                    }
+                }
+            
 
             });
 
@@ -665,8 +777,10 @@
         /// <param name="stateValue">缂栬緫涔嬪墠鐨勭姸鎬佸��,榛樿涓�""</param>
         public void PmCo2TvocAction(FrameLayout frame, Entity.Function device, string key, int title, int index, bool edit, string stateValue = "")
         {
-            if (edit)
+            if (edit) 
             {
+                ///
+                this.function = device;
                 Input inputs = Logic.currlogic.input[index];
                 //娓呴櫎涔嬪墠鏃ф暟鎹�
                 dicSateteList.Clear();
@@ -677,12 +791,14 @@
                 }
             }
             PublicInterface view = new PublicInterface();
-            var listStr = view.GetViewList(key);
-            view.SingleSelectionShow(frame, listStr, Language.StringByID(title), view.GetString(key, stateValue)
+            //var listStr = view.GetViewList(key);
+            var listStr = view.GetSensorLevelList(device);//2022骞�05鏈�25鏃�10:01:33 浜у搧缁忕悊鍚涚厡瑕佹眰鏀规垚鍔ㄦ��
+            view.SingleSelectionShow(frame, listStr, Language.StringByID(title), view.GetSensorLevelText(device, stateValue,true)
                , (text) =>
                {
                   
-                   var value = view.GetValue(key, text);
+                   //var value = view.GetValue(key, text);
+                   var values = view.GetSensorLevelText(device,text,false);
                    selectedState = device.spk + "_" + key;
                    switch (device.spk)
                    {
@@ -700,7 +816,7 @@
                            }
                            break;
                    }
-                   AddDictionary(key, value, "integer", "in");
+                   AddDictionary(key, values, "integer", "in");
                    Save(device, index, edit);
                });
         }
@@ -854,6 +970,9 @@
         private bool Is_SpkAttribute(string key) {
             ///淇敼鏂板睘鎬�
             ///璇嗗埆浣跨敤鍔熻兘鏄惁瀛樺湪灞炴��
+            if (this.function==null) {
+                return false;
+            }
             var job = this.function.GetAttribute(key);
             if (job != null)
             {

--
Gitblit v1.8.0