From 2fb0c39b09110be4f5a88a8c8004f03fc257f612 Mon Sep 17 00:00:00 2001
From: 陈嘉乐 <cjl@hdlchina.com.cn>
Date: 星期三, 06 一月 2021 11:11:53 +0800
Subject: [PATCH] 2021-1-6-1

---
 ZigbeeApp/Shared/Phone/Device/Logic/CurrentDeviceState.cs |  306 +++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 226 insertions(+), 80 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/Device/Logic/CurrentDeviceState.cs b/ZigbeeApp/Shared/Phone/Device/Logic/CurrentDeviceState.cs
index c831fc1..f3e6269 100644
--- a/ZigbeeApp/Shared/Phone/Device/Logic/CurrentDeviceState.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Logic/CurrentDeviceState.cs
@@ -564,9 +564,9 @@
                     var deviceEnumInfo = Common.LocalDevice.Current.GetMyDeviceEnumInfo(new List<CommonDevice>() { common });
 
                         //绌烘皵璐ㄩ噺浼犳劅鍣�
-                        if (deviceEnumInfo.ConcreteType != Common.DeviceConcreteType.AirQualitySensor)
+                        if (deviceEnumInfo.ConcreteType == Common.DeviceConcreteType.AirQualitySensor)
                         {
-                            AirSonser(flMain, SelectedDeviceStatus, edit, common);
+                            AirSonser(flMain, SelectedDeviceStatus, edit, common, devices);
                         }
                         else
                         {
@@ -1328,25 +1328,144 @@
             }
 
         }
-
-        private static void AirSonser(FrameLayout flMain,string SelectedDeviceStatus,bool edit,CommonDevice common) {
+        /// <summary>
+        /// 绌烘皵璐ㄩ噺浼犳劅鍣╒iew(鐗规畩澶勭悊)
+        /// </summary>
+        /// <param name="flMain"></param>
+        /// <param name="SelectedDeviceStatus"></param>
+        /// <param name="edit"></param>
+        /// <param name="common"></param>
+        /// <param name="dic"></param>
+        private static void AirSonser(FrameLayout flMain,string SelectedDeviceStatus,bool edit,CommonDevice common, Dictionary<string, string> dic=null) {
             flMain.RemoveAll();
-            PublicInterface publicInterface = new PublicInterface(); 
-            var list0 = publicInterface.GetViewList("绌烘皵璐ㄩ噺浼犳劅鍣�");
-            publicInterface.SingleSelectionShow(flMain, list0, MyInternationalizationString.airqualitysensor, "", (tagText) =>
+            if (edit&&dic!=null) {
+                AirProperty(flMain, dic, common,"", edit, SelectedDeviceStatus);
+            }
+            else
             {
-            flMain.RemoveAll();
-            SelectedDeviceStatus = "TemperatureSensor";
+                PublicInterface publicInterface = new PublicInterface();
+                var list0 = publicInterface.GetViewList("绌烘皵璐ㄩ噺浼犳劅鍣�");
+                publicInterface.SingleSelectionShow(flMain, list0, MyInternationalizationString.airqualitysensor, "", (tagText) =>
+                {
+                    flMain.RemoveAll();
+                    SelectedDeviceStatus = "TemperatureSensor";
+                    AirProperty(flMain, dic, common,tagText, edit, SelectedDeviceStatus);
+                }, () => { flMain.RemoveFromParent(); });
+            }
+        }
+        /// <summary>
+        /// 绌烘皵璐ㄩ噺浼犳劅鍣ㄥ睘鎬у��(鐗规畩澶勭悊)
+        /// </summary>
+        /// <param name="flMain"></param>
+        /// <param name="dic"></param>
+        /// <param name="common"></param>
+        /// <param name="tagText"></param>
+        /// <param name="edit"></param>
+        /// <param name="SelectedDeviceStatus"></param>
+        private static void AirProperty(FrameLayout flMain, Dictionary<string, string> dic,CommonDevice common,string tagText,bool edit, string SelectedDeviceStatus) {
+            PublicInterface publicInterface = new PublicInterface();
+            string range = ""; 
+            string stateText = "";
+            if (edit&& dic!=null)
+            {
+                range = dic["Range"];
+                switch (dic["Cluster_ID"])
+                {
+                    case "1066":
+                        {
+                            if (dic["AttriButeId"] == "57344")
+                            {
+                                tagText = Language.StringByID(MyInternationalizationString.kongqizhiliang);
+                                switch (dic["AttriButeData1"])
+                                {
+
+                                    case "1":
+                                        {
+                                            stateText = Language.StringByID(MyInternationalizationString.you);
+                                        }
+                                        break;
+                                    case "2":
+                                        {
+                                            stateText = Language.StringByID(MyInternationalizationString.liang);
+                                        }
+                                        break;
+                                    case "3":
+                                        {
+                                            stateText = Language.StringByID(MyInternationalizationString.cha);
+                                        }
+                                        break;
+                                }
+                            }
+                            else
+                            {
+                                tagText = Language.StringByID(MyInternationalizationString.pm25);
+                                ///Pm2.5
+                                int intValue = int.Parse(dic["AttriButeData1"]);
+                                if (0 < intValue && intValue < 30)
+                                {
+                                    stateText = Language.StringByID(MyInternationalizationString.pmyou);
+                                }
+                                else if (36 < intValue && intValue < 75)
+                                {
+                                    stateText = Language.StringByID(MyInternationalizationString.pmliang);
+                                }
+                                else if (76 < intValue && intValue < 115)
+                                {
+                                    stateText = Language.StringByID(MyInternationalizationString.pmqingdu);
+                                }
+                                else if (intValue > 115)
+                                {
+                                    stateText = Language.StringByID(MyInternationalizationString.pmzhongdu);
+                                }
+
+                            }
+                        }
+                        break;
+                    case "1037":
+                        {
+                            tagText = Language.StringByID(MyInternationalizationString.co2);
+                            ///co2
+                            int intValue = int.Parse(dic["AttriButeData1"]);
+                            if (0 < intValue && intValue < 1000)
+                            {
+                                stateText = Language.StringByID(MyInternationalizationString.co2qingxin);
+                            }
+                            else if (1000 < intValue && intValue < 2000)
+                            {
+                                stateText = Language.StringByID(MyInternationalizationString.co2huizhuo);
+                            }
+                            else if (2000 < intValue && intValue < 5000)
+                            {
+                                stateText = Language.StringByID(MyInternationalizationString.co2queyang);
+                            }
+                            else if (intValue > 5000)
+                            {
+                                stateText = Language.StringByID(MyInternationalizationString.co2yanzhongqueyang);
+                            }
+                        }
+                        break;
+                    case "1026":
+                        {
+                            tagText = Language.StringByID(MyInternationalizationString.sensortemperature);
+                            stateText = dic["AttriButeData1"];
+                        }
+                        break;
+                    case "1029":
+                        {
+                            tagText = Language.StringByID(MyInternationalizationString.sensorhumidity);
+                            stateText = dic["AttriButeData1"];
+                        }
+                        break;
+                }
+            }
             Dictionary<string, string> airqualitysensorDic = new Dictionary<string, string>();
             Send.dictionary(airqualitysensorDic, "Type", "1");
             Send.dictionary(airqualitysensorDic, "IsValid", "1");
             Send.dictionary(airqualitysensorDic, "MacAddr", common.DeviceAddr);
             Send.dictionary(airqualitysensorDic, "Epoint", common.DeviceEpoint.ToString());
-           //缂栬緫鏃剁殑鐘舵�佸��
-           string stateText = "";
-           if (tagText == Language.StringByID(MyInternationalizationString.kongqizhiliang))
+            if (tagText == Language.StringByID(MyInternationalizationString.kongqizhiliang))
             {
-                
+
                 var list1 = publicInterface.GetViewList("绌烘皵璐ㄩ噺");
                 publicInterface.SingleSelectionShow(flMain, list1, MyInternationalizationString.airqualitysensor, stateText, (strText) =>
                 {
@@ -1372,86 +1491,103 @@
                     AddDic(flMain, SelectedDeviceStatus, edit, common, airqualitysensorDic);
 
 
-                }, () =>{ AirSonser(flMain, SelectedDeviceStatus, edit, common); });
+                }, () => {
+                    if (edit) { flMain.RemoveFromParent(); }
+                    else
+                    {
+                        AirSonser(flMain, SelectedDeviceStatus, edit, common);
+                    } });
 
             }
             else if (tagText == Language.StringByID(MyInternationalizationString.pm25))
             {
-                    var list2= publicInterface.GetViewList("pm2.5");
-                    publicInterface.SingleSelectionShow(flMain, list2, MyInternationalizationString.pm25, stateText, (strText) =>
+                var list2 = publicInterface.GetViewList("pm2.5");
+                publicInterface.SingleSelectionShow(flMain, list2, MyInternationalizationString.pm25, stateText, (strText) =>
+                {
+                    SelectedDeviceStatus = "TemperatureSensor";
+                    string valuaStr = "";
+                    if (strText == Language.StringByID(MyInternationalizationString.pmyou))
                     {
-                        SelectedDeviceStatus = "TemperatureSensor";
-                        string valuaStr = "";
-                        if (strText == Language.StringByID(MyInternationalizationString.pmyou))
-                        {
-                            valuaStr = "18";
-                        }
-                        else if (strText == Language.StringByID(MyInternationalizationString.pmliang))
-                        {
-                            valuaStr = "54";
-                        }
-                        else if (strText == Language.StringByID(MyInternationalizationString.pmqingdu))
-                        {
-                            valuaStr = "105";
-                        }
-                        else if (strText == Language.StringByID(MyInternationalizationString.pmzhongdu))
-                        {
-                            valuaStr = "130";
-                        }
-                        Send.dictionary(airqualitysensorDic, "Cluster_ID", "1066");
-                        Send.dictionary(airqualitysensorDic, "AttriButeId", "0");
-                        Send.dictionary(airqualitysensorDic, "AttriButeData1", valuaStr);
-                        Send.dictionary(airqualitysensorDic, "AttriButeData2", "0");
-                        Send.dictionary(airqualitysensorDic, "Range", "1");
-                        AddDic(flMain, SelectedDeviceStatus, edit, common, airqualitysensorDic);
+                        valuaStr = "18";
+                    }
+                    else if (strText == Language.StringByID(MyInternationalizationString.pmliang))
+                    {
+                        valuaStr = "54";
+                    }
+                    else if (strText == Language.StringByID(MyInternationalizationString.pmqingdu))
+                    {
+                        valuaStr = "105";
+                    }
+                    else if (strText == Language.StringByID(MyInternationalizationString.pmzhongdu))
+                    {
+                        valuaStr = "130";
+                    }
+                    Send.dictionary(airqualitysensorDic, "Cluster_ID", "1066");
+                    Send.dictionary(airqualitysensorDic, "AttriButeId", "0");
+                    Send.dictionary(airqualitysensorDic, "AttriButeData1", valuaStr);
+                    Send.dictionary(airqualitysensorDic, "AttriButeData2", "0");
+                    Send.dictionary(airqualitysensorDic, "Range", "1");
+                    AddDic(flMain, SelectedDeviceStatus, edit, common, airqualitysensorDic);
 
 
-                    }, () => {AirSonser(flMain, SelectedDeviceStatus, edit, common); });
+                }, () => {
+                    if (edit) { flMain.RemoveFromParent(); }
+                    else
+                    {
+                        AirSonser(flMain, SelectedDeviceStatus, edit, common);
+                    }
+                });
 
             }
             else if (tagText == Language.StringByID(MyInternationalizationString.co2))
             {
 
-                    var list2 = publicInterface.GetViewList("co2");
-                    publicInterface.SingleSelectionShow(flMain, list2, MyInternationalizationString.co2, stateText, (strText) =>
+                var list2 = publicInterface.GetViewList("co2");
+                publicInterface.SingleSelectionShow(flMain, list2, MyInternationalizationString.co2, stateText, (strText) =>
+                {
+                    SelectedDeviceStatus = "TemperatureSensor";
+                    string valuaStr = "";
+                    if (strText == Language.StringByID(MyInternationalizationString.co2qingxin))
                     {
-                        SelectedDeviceStatus = "TemperatureSensor";
-                        string valuaStr = "";
-                        if (strText == Language.StringByID(MyInternationalizationString.co2qingxin))
-                        {
-                            valuaStr = "500";
-                        }
-                        else if (strText == Language.StringByID(MyInternationalizationString.co2huizhuo))
-                        {
-                            valuaStr = "1000";
-                        }
-                        else if (strText == Language.StringByID(MyInternationalizationString.co2queyang))
-                        {
-                            valuaStr = "2500";
-                        }
-                        else if (strText == Language.StringByID(MyInternationalizationString.co2yanzhongqueyang))
-                        {
-                            valuaStr = "5500";
-                        }
-                        Send.dictionary(airqualitysensorDic, "Cluster_ID", "1037");
-                        Send.dictionary(airqualitysensorDic, "AttriButeId", "0");
-                        Send.dictionary(airqualitysensorDic, "AttriButeData1", valuaStr);
-                        Send.dictionary(airqualitysensorDic, "AttriButeData2", "0");
-                        Send.dictionary(airqualitysensorDic, "Range", "1");
-                        AddDic(flMain, SelectedDeviceStatus, edit, common, airqualitysensorDic);
+                        valuaStr = "500";
+                    }
+                    else if (strText == Language.StringByID(MyInternationalizationString.co2huizhuo))
+                    {
+                        valuaStr = "1500";
+                    }
+                    else if (strText == Language.StringByID(MyInternationalizationString.co2queyang))
+                    {
+                        valuaStr = "2500";
+                    }
+                    else if (strText == Language.StringByID(MyInternationalizationString.co2yanzhongqueyang))
+                    {
+                        valuaStr = "5500";
+                    }
+                    Send.dictionary(airqualitysensorDic, "Cluster_ID", "1037");
+                    Send.dictionary(airqualitysensorDic, "AttriButeId", "0");
+                    Send.dictionary(airqualitysensorDic, "AttriButeData1", valuaStr);
+                    Send.dictionary(airqualitysensorDic, "AttriButeData2", "0");
+                    Send.dictionary(airqualitysensorDic, "Range", "1");
+                    AddDic(flMain, SelectedDeviceStatus, edit, common, airqualitysensorDic);
 
 
-                    }, () => { AirSonser(flMain, SelectedDeviceStatus, edit, common); });
+                }, () => {
+                    if (edit) { flMain.RemoveFromParent(); }
+                    else
+                    {
+                        AirSonser(flMain, SelectedDeviceStatus, edit, common);
+                    }
+                });
 
-                 
+
 
             }
             else if (tagText == Language.StringByID(MyInternationalizationString.sensortemperature))
             {
                 //缂栬緫鏃剁殑鐘舵�佸��
-                string str1 = "";
-                string str2 = "";
-                publicInterface.TemperatureShow1(flMain, tagText, "鈩�", str2, str1, (relationValueStr, tempValueStr) =>
+                string str1 = range;
+                string str2 = stateText;
+                publicInterface.TemperatureShow1(flMain, tagText, "鈩�", str1, str2, (relationValueStr, tempValueStr) =>
                 {
 
                     SelectedDeviceStatus = "TemperatureSensor";
@@ -1465,16 +1601,20 @@
 
                 }, () =>
                 {
-                    AirSonser(flMain, SelectedDeviceStatus, edit, common);
+                    if (edit) { flMain.RemoveFromParent(); }
+                    else
+                    {
+                        AirSonser(flMain, SelectedDeviceStatus, edit, common);
+                    }
 
                 });
             }
             else if (tagText == Language.StringByID(MyInternationalizationString.sensorhumidity))
             {
                 //缂栬緫鏃剁殑鐘舵�佸��
-                string str1 = "";
-                string str2 = "";
-                publicInterface.TemperatureShow1(flMain, tagText, "%", str2, str1, (relationValueStr, tempValueStr) =>
+                string str1 = range;
+                string str2 = stateText;
+                publicInterface.TemperatureShow1(flMain, tagText, "%", str1, str2, (relationValueStr, tempValueStr) =>
                 {
                     SelectedDeviceStatus = "TemperatureSensor";
                     Send.dictionary(airqualitysensorDic, "Cluster_ID", "1029");
@@ -1483,19 +1623,25 @@
                     Send.dictionary(airqualitysensorDic, "AttriButeData2", "0");
                     Send.dictionary(airqualitysensorDic, "Range", relationValueStr);
                     AddDic(flMain, SelectedDeviceStatus, edit, common, airqualitysensorDic);
-                }, () => { AirSonser(flMain, SelectedDeviceStatus, edit, common);});
+                }, () => {
+                    if (edit) { flMain.RemoveFromParent(); }
+                    else
+                    {
+                        AirSonser(flMain, SelectedDeviceStatus, edit, common);
+                    }
+                });
             }
-            }, () => { flMain.RemoveFromParent(); });
+
         }
         /// <summary>
-        /// 绌烘皵璐ㄩ噺浼犳劅鍣�
+        /// 绌烘皵璐ㄩ噺浼犳劅鍣�(鐗规畩澶勭悊)
         /// </summary>
         /// <param name="flMain"></param>
         /// <param name="SelectedDeviceStatus"></param>
         /// <param name="edit"></param>
         /// <param name="common"></param>
         /// <param name="dic"></param>
-        private static void AddDic(FrameLayout flMain, string SelectedDeviceStatus, bool edit, CommonDevice common, Dictionary<string, string> dic)
+        private static void AddDic(FrameLayout flMain, string SelectedDeviceStatus, bool edit, CommonDevice common, Dictionary<string, string> dic )
         {
             UserView.HomePage.Instance.ScrollEnabled = true;
             if (SelectedDeviceStatus != "")

--
Gitblit v1.8.0