From b2f2494386c4629cf0e0f0a3740e7672919d53a2 Mon Sep 17 00:00:00 2001
From: 黄学彪 <hxb@hdlchina.com.cn>
Date: 星期三, 06 一月 2021 17:09:55 +0800
Subject: [PATCH] 修改了彩灯的百分比计算

---
 ZigbeeApp/Shared/Phone/Device/Logic/CurrentDeviceState.cs |  417 +++++++++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 386 insertions(+), 31 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/Device/Logic/CurrentDeviceState.cs b/ZigbeeApp/Shared/Phone/Device/Logic/CurrentDeviceState.cs
index 51f2bcd..f3e6269 100755
--- a/ZigbeeApp/Shared/Phone/Device/Logic/CurrentDeviceState.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Logic/CurrentDeviceState.cs
@@ -277,7 +277,7 @@
                             }
                         }
 
-                        
+
                     }
                     break;
                 case DeviceType.IASZone:
@@ -559,37 +559,53 @@
                     break;
                 case DeviceType.TemperatureSensor:
                     {
-                        //缂栬緫鏃剁殑鐘舵�佸��
-                        string str1 = "";
-                        string str2 = "";
-                        if (edit && devices != null)
-                        {
-                            //娓╁害鍊�
-                            str1 = devices["AttriButeData1"];
-                            //姣旇緝鍏崇郴鍊�
-                            str2 = devices["Range"];
 
-                        }
-                        var temperatureSensor = common as TemperatureSensor;
-                        if (temperatureSensor.SensorDiv == 1)
+                    //鑾峰彇璁惧绫诲瀷
+                    var deviceEnumInfo = Common.LocalDevice.Current.GetMyDeviceEnumInfo(new List<CommonDevice>() { common });
+
+                        //绌烘皵璐ㄩ噺浼犳劅鍣�
+                        if (deviceEnumInfo.ConcreteType == Common.DeviceConcreteType.AirQualitySensor)
                         {
-                            Send.dictionary(deviceConditionsInfo, "Cluster_ID", "1026");
+                            AirSonser(flMain, SelectedDeviceStatus, edit, common, devices);
                         }
                         else
                         {
-                            Send.dictionary(deviceConditionsInfo, "Cluster_ID", "1029");
-                        }
-                        Send.dictionary(deviceConditionsInfo, "AttriButeId", "0");
-                        Send.dictionary(deviceConditionsInfo, "AttriButeData2", "0");
-                        completeView.Show(4);
-                        PublicInterface publicInterface = new PublicInterface();
-                        publicInterface.TemperatureShow(completeView.fraView, common, str2, str1, (relationValueStr, tempValueStr) =>
-                        {
-                            SelectedDeviceStatus = "TemperatureSensor";
-                            Send.dictionary(deviceConditionsInfo, "AttriButeData1", tempValueStr);
-                            Send.dictionary(deviceConditionsInfo, "Range", relationValueStr);
-                        });
 
+
+                            //缂栬緫鏃剁殑鐘舵�佸��
+                            string str1 = "";
+                            string str2 = "";
+                            string str3 = "";
+                            if (edit && devices != null)
+                            {
+                                //娓╁害鍊�
+                                str1 = devices["AttriButeData1"];
+                                //姣旇緝鍏崇郴鍊�
+                                str2 = devices["Range"];
+
+                            }
+                            var temperatureSensor = common as TemperatureSensor;
+                            if (temperatureSensor.SensorDiv == 1)
+                            {
+                                str3 = "鈩�";
+                                Send.dictionary(deviceConditionsInfo, "Cluster_ID", "1026");
+                            }
+                            else
+                            {
+                                str3 = "%";
+                                Send.dictionary(deviceConditionsInfo, "Cluster_ID", "1029");
+                            }
+                            Send.dictionary(deviceConditionsInfo, "AttriButeId", "0");
+                            Send.dictionary(deviceConditionsInfo, "AttriButeData2", "0");
+                            completeView.Show(4);
+                            PublicInterface publicInterface = new PublicInterface();
+                            publicInterface.TemperatureShow(completeView.fraView, str3, str2, str1, (relationValueStr, tempValueStr) =>
+                            {
+                                SelectedDeviceStatus = "TemperatureSensor";
+                                Send.dictionary(deviceConditionsInfo, "AttriButeData1", tempValueStr);
+                                Send.dictionary(deviceConditionsInfo, "Range", relationValueStr);
+                            });
+                        }
                     }
                     break;
                 ///璋冨厜鐏厜
@@ -643,7 +659,6 @@
                             var lightbrightnessvalue = (254 * horizontalSeekBarVol.Progress) / 100;
                             Send.dictionary(switchdictionary, "Data1", lightbrightnessvalue.ToString());
                         };
-
                         ///鍙栨秷浜嬩欢
                         closeView.clickviewBtn.MouseUpEventHandler += (sender, e) =>
                         {
@@ -656,7 +671,6 @@
                             Send.dictionary(switchdictionary, "TaskType", "1");
                             Send.dictionary(switchdictionary, "Data1", "0");//榛樿鍊�
                         };
-
                         //鍙栧弽
                         takebackView.clickviewBtn.MouseUpEventHandler += (sender, e) =>
                         {
@@ -1177,6 +1191,8 @@
 
                     }
                     break;
+                
+            
             }
             completeView.Btncomplete.MouseUpEventHandler += (sender, e) =>
             {
@@ -1246,9 +1262,7 @@
 
             };
         }
-
-
-        /// <summary>
+              /// <summary>
         /// 绌鸿皟妯″紡鐨勭姸鎬�
         /// </summary>
         /// <param name="modestring"></param>
@@ -1314,5 +1328,346 @@
             }
 
         }
+        /// <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();
+            if (edit&&dic!=null) {
+                AirProperty(flMain, dic, common,"", edit, SelectedDeviceStatus);
+            }
+            else
+            {
+                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());
+            if (tagText == Language.StringByID(MyInternationalizationString.kongqizhiliang))
+            {
+
+                var list1 = publicInterface.GetViewList("绌烘皵璐ㄩ噺");
+                publicInterface.SingleSelectionShow(flMain, list1, MyInternationalizationString.airqualitysensor, stateText, (strText) =>
+                {
+                    SelectedDeviceStatus = "TemperatureSensor";
+                    string valuaStr = "";
+                    if (strText == Language.StringByID(MyInternationalizationString.you))
+                    {
+                        valuaStr = "1";
+                    }
+                    else if (strText == Language.StringByID(MyInternationalizationString.liang))
+                    {
+                        valuaStr = "2";
+                    }
+                    else if (strText == Language.StringByID(MyInternationalizationString.cha))
+                    {
+                        valuaStr = "3";
+                    }
+                    Send.dictionary(airqualitysensorDic, "Cluster_ID", "1066");
+                    Send.dictionary(airqualitysensorDic, "AttriButeId", "57344");
+                    Send.dictionary(airqualitysensorDic, "AttriButeData1", valuaStr);
+                    Send.dictionary(airqualitysensorDic, "AttriButeData2", "0");
+                    Send.dictionary(airqualitysensorDic, "Range", "1");
+                    AddDic(flMain, SelectedDeviceStatus, edit, common, airqualitysensorDic);
+
+
+                }, () => {
+                    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) =>
+                {
+                    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);
+
+
+                }, () => {
+                    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) =>
+                {
+                    SelectedDeviceStatus = "TemperatureSensor";
+                    string valuaStr = "";
+                    if (strText == Language.StringByID(MyInternationalizationString.co2qingxin))
+                    {
+                        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);
+
+
+                }, () => {
+                    if (edit) { flMain.RemoveFromParent(); }
+                    else
+                    {
+                        AirSonser(flMain, SelectedDeviceStatus, edit, common);
+                    }
+                });
+
+
+
+            }
+            else if (tagText == Language.StringByID(MyInternationalizationString.sensortemperature))
+            {
+                //缂栬緫鏃剁殑鐘舵�佸��
+                string str1 = range;
+                string str2 = stateText;
+                publicInterface.TemperatureShow1(flMain, tagText, "鈩�", str1, str2, (relationValueStr, tempValueStr) =>
+                {
+
+                    SelectedDeviceStatus = "TemperatureSensor";
+                    Send.dictionary(airqualitysensorDic, "Cluster_ID", "1026");
+                    Send.dictionary(airqualitysensorDic, "AttriButeId", "0");
+                    Send.dictionary(airqualitysensorDic, "AttriButeData1", tempValueStr);
+                    Send.dictionary(airqualitysensorDic, "AttriButeData2", "0");
+                    Send.dictionary(airqualitysensorDic, "Range", relationValueStr);
+                    AddDic(flMain, SelectedDeviceStatus, edit, common, airqualitysensorDic);
+
+
+                }, () =>
+                {
+                    if (edit) { flMain.RemoveFromParent(); }
+                    else
+                    {
+                        AirSonser(flMain, SelectedDeviceStatus, edit, common);
+                    }
+
+                });
+            }
+            else if (tagText == Language.StringByID(MyInternationalizationString.sensorhumidity))
+            {
+                //缂栬緫鏃剁殑鐘舵�佸��
+                string str1 = range;
+                string str2 = stateText;
+                publicInterface.TemperatureShow1(flMain, tagText, "%", str1, str2, (relationValueStr, tempValueStr) =>
+                {
+                    SelectedDeviceStatus = "TemperatureSensor";
+                    Send.dictionary(airqualitysensorDic, "Cluster_ID", "1029");
+                    Send.dictionary(airqualitysensorDic, "AttriButeId", "0");
+                    Send.dictionary(airqualitysensorDic, "AttriButeData1", tempValueStr);
+                    Send.dictionary(airqualitysensorDic, "AttriButeData2", "0");
+                    Send.dictionary(airqualitysensorDic, "Range", relationValueStr);
+                    AddDic(flMain, SelectedDeviceStatus, edit, common, airqualitysensorDic);
+                }, () => {
+                    if (edit) { flMain.RemoveFromParent(); }
+                    else
+                    {
+                        AirSonser(flMain, SelectedDeviceStatus, edit, common);
+                    }
+                });
+            }
+
+        }
+        /// <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 )
+        {
+            UserView.HomePage.Instance.ScrollEnabled = true;
+            if (SelectedDeviceStatus != "")
+            {
+                //娣诲姞鏉′欢
+                LogicIfon.AddDeviceconditions(common, dic);
+            }
+            else
+            {
+                if (!edit)
+                {
+                    var alert = new UserCenter.ShowMsgControl(ShowMsgType.Normal,
+                                Language.StringByID(MyInternationalizationString.selectdevicestatuscondition),
+                               Language.StringByID(MyInternationalizationString.confrim));
+                    alert.Show();
+                    return;
+                }
+
+            }
+            flMain.RemoveFromParent();
+            //鑷姩鍖�
+            var logicCommunalPage = new LogicCommunalPage();
+            UserView.HomePage.Instance.AddChidren(logicCommunalPage);
+            UserView.HomePage.Instance.PageIndex += 1;
+            logicCommunalPage.Show(() => { });
+        }
+
     }
 }

--
Gitblit v1.8.0