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/FuntionControlView/EnvironmentalScience/EnvironmentalSensorPage.cs |  312 +++++++++++++++++----------------------------------
 1 files changed, 107 insertions(+), 205 deletions(-)

diff --git a/HDL_ON/UI/UI2/FuntionControlView/EnvironmentalScience/EnvironmentalSensorPage.cs b/HDL_ON/UI/UI2/FuntionControlView/EnvironmentalScience/EnvironmentalSensorPage.cs
index 95a0d55..de2bdaa 100644
--- a/HDL_ON/UI/UI2/FuntionControlView/EnvironmentalScience/EnvironmentalSensorPage.cs
+++ b/HDL_ON/UI/UI2/FuntionControlView/EnvironmentalScience/EnvironmentalSensorPage.cs
@@ -4,6 +4,7 @@
 using HDL_ON.UI.CSS;
 using System.Collections.Generic;
 using HDL_ON.DAL.Server;
+using HDL_ON.UI.UI2.EnvironmentalScience;
 
 namespace HDL_ON.UI
 {
@@ -21,13 +22,15 @@
 
         MyEchartsViewOn myEchartsView;
 
-        Sensor sensor;
+        Sensor sensorTemp = new Sensor();
 
-        List<Sensor> showSensors;
+        Function function;
+        List<Function> showFunctions;
+        List<Function> sensorList;
         /// <summary>
         /// 褰撳墠鏌ヨ绫诲瀷
         /// </summary>
-        QueryType curQueryType = QueryType.NowDay;
+        string curQueryType = "hour";
 
         List<uint> tipColorList = new List<uint>()
         {
@@ -39,12 +42,23 @@
             "#80AEFF","#FFD154","#FF9D54","#FE6A6A","#B183C3","#ADE764",
         };
 
-        public EnvironmentalSensorPage(Sensor ss)
+        public EnvironmentalSensorPage(Function ss)
         {
             bodyView = this;
-            sensor = ss;
-            showSensors = new List<Sensor>();
-            showSensors.Add(ss);
+            function = ss;
+            showFunctions = new List<Function>();
+            showFunctions.Add(ss);
+            sensorList = FunctionList.List.GetEnvirSensorsList();
+        }
+
+
+        public EnvironmentalSensorPage(Function ss,List<Function> functions)
+        {
+            bodyView = this;
+            function = ss;
+            sensorList = functions;
+            showFunctions = new List<Function>();
+            showFunctions.Add(ss);
         }
 
         public void LoadPage()
@@ -65,7 +79,7 @@
             {
                 Gravity = Gravity.CenterHorizontal,
                 Width = Application.GetRealWidth(343),
-                Height = Application.GetRealHeight(420),
+                Height = Application.GetRealWidth(420),
                 BackgroundColor = CSS_Color.MainBackgroundColor,
                 Radius = (uint)Application.GetRealWidth(12),
                 BorderColor = 0x00000000,
@@ -116,7 +130,7 @@
                 TextColor = CSS_Color.PromptingColor2,
                 SelectedTextColor = CSS_Color.MainColor,
                 TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
-                Text = DateTime.Now.Month.ToString() + Language.StringByID(StringId.month),
+                Text = Language.StringByID(StringId.month),//DateTime.Now.Month.ToString() + 
             };
             showDataTypeView.AddChidren(btnShowHistroyData_Month);
             #endregion
@@ -126,7 +140,7 @@
                 Gravity = Gravity.CenterHorizontal,
                 Y = Application.GetRealHeight(52),
                 Width = Application.GetRealWidth(343 - 32),
-                Height = Application.GetRealHeight(270),
+                Height = Application.GetRealWidth(270),
             };
             diagramView.AddChidren(historyDataView);
 
@@ -138,7 +152,7 @@
             HorizontalScrolViewLayout tipValuesView = new HorizontalScrolViewLayout()
             {
                 Gravity = Gravity.CenterHorizontal,
-                Y = Application.GetRealHeight(348),
+                Y = Application.GetRealWidth(348),
                 Width = Application.GetRealWidth(303),
                 Height = Application.GetRealHeight(30),
             };
@@ -163,9 +177,9 @@
             };
             diagramView.AddChidren(tipTextView);
 
-            switch (sensor.functionType)
+            switch (function.spk)
             {
-                case FunctionType.PM25:
+                case SPK.SensorPm25:
                     tipValuesView.AddChidren(new Button()
                     {
                         Width = Application.GetRealWidth(101),
@@ -223,7 +237,7 @@
                         TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel,
                     });
                     break;
-                //case FunctionType.PM25:
+                //case SPK.SensorPm25:
                 //_intervalValue.Add("0 ~ 35");
                 //_intervalValue.Add("36 ~ 75");
                 //_intervalValue.Add("76 ~ 115");
@@ -233,7 +247,7 @@
                 //_levelTextList.Add(StringId.MildPollution);
                 //_levelTextList.Add(StringId.HeavyPollution);
                 //break;
-                case FunctionType.CO2:
+                case SPK.SensorCO2:
                     tipValuesView.AddChidren(new Button()
                     {
                         Width = Application.GetRealWidth(101),
@@ -291,7 +305,7 @@
                         TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel,
                     });
                     break;
-                case FunctionType.Temp:
+                case SPK.SensorTemperature:
                     tipValuesView.AddChidren(new Button()
                     {
                         Width = Application.GetRealWidth(50),
@@ -358,7 +372,7 @@
                     tipTextView.AddChidren(new Button()
                     {
                         Width = Application.GetRealWidth(43),
-                        TextID = StringId.ExtremelyCold,
+                        TextID = StringId.SlightlyCold,
                         TextAlignment = TextAlignment.Center,
                         TextColor = CSS_Color.FirstLevelTitleColor,
                         TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel,
@@ -411,7 +425,7 @@
                     //_levelTextList.Add(StringId.);
                     //_levelTextList.Add(StringId.ExtremeHeat);
                     break;
-                case FunctionType.TVOC:
+                case SPK.SensorTVOC:
                     tipValuesView.AddChidren(new Button()
                     {
                         Width = Application.GetRealWidth(101),
@@ -469,11 +483,11 @@
                         TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel,
                     });
                     break;
-                case FunctionType.Humidity:
+                case SPK.SensorHumidity:
                     tipValuesView.AddChidren(new Button()
                     {
                         Width = Application.GetRealWidth(151),
-                        Text = "70",
+                        Text = "40%",
                         TextAlignment = TextAlignment.Center,
                         TextColor = CSS_Color.FirstLevelTitleColor,
                         TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel,
@@ -481,7 +495,7 @@
                     tipValuesView.AddChidren(new Button()
                     {
                         Width = Application.GetRealWidth(151),
-                        Text = "40",
+                        Text = "70%",
                         TextAlignment = TextAlignment.Center,
                         TextColor = CSS_Color.FirstLevelTitleColor,
                         TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel,
@@ -489,7 +503,7 @@
                     tipTextView.AddChidren(new Button()
                     {
                         Width = Application.GetRealWidth(101),
-                        TextID = StringId.SensorReferenceTVOCTipLevel1,
+                        TextID = StringId.SensorReferenceHumidityTipLevel1,
                         TextAlignment = TextAlignment.Center,
                         TextColor = CSS_Color.FirstLevelTitleColor,
                         TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel,
@@ -497,7 +511,7 @@
                     tipTextView.AddChidren(new Button()
                     {
                         Width = Application.GetRealWidth(101),
-                        TextID = StringId.SensorReferenceTVOCTipLevel2,
+                        TextID = StringId.SensorReferenceHumidityTipLevel2,
                         TextAlignment = TextAlignment.Center,
                         TextColor = CSS_Color.FirstLevelTitleColor,
                         TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel,
@@ -505,7 +519,7 @@
                     tipTextView.AddChidren(new Button()
                     {
                         Width = Application.GetRealWidth(101),
-                        TextID = StringId.SensorReferenceTVOCTipLevel3,
+                        TextID = StringId.SensorReferenceHumidityTipLevel3,
                         TextAlignment = TextAlignment.Center,
                         TextColor = CSS_Color.FirstLevelTitleColor,
                         TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel,
@@ -552,7 +566,7 @@
                 TextAlignment = TextAlignment.CenterLeft,
                 TextColor = CSS_Color.FirstLevelTitleColor,
                 TextSize = CSS_FontSize.TextFontSize,
-                Text = sensor.name,
+                Text = function.name,
                 IsBold = true,
             };
             selfInfoView.AddChidren(btnSeltSensorName);
@@ -566,7 +580,7 @@
                 TextColor = CSS_Color.PromptingColor1,
                 TextAlignment = TextAlignment.CenterLeft,
                 TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
-                Text = sensor.GetRoomListName()
+                Text = function.GetRoomListName()
             };
             selfInfoView.AddChidren(btnFromFoorAndRoom);
 
@@ -593,18 +607,18 @@
             };
             selfInfoView.AddChidren(btnSeltSensorValue);
 
-            Button btnShowData;
-            btnShowData = new Button()
-            {
-                X = Application.GetRealWidth(291),
-                Y = Application.GetRealWidth(62),
-                Width = Application.GetMinRealAverage(32),
-                Height = Application.GetMinRealAverage(32),
-                UnSelectedImagePath = "FunctionIcon/EnvironmentalScience/DiagramIcon.png",
-                SelectedImagePath = "FunctionIcon/EnvironmentalScience/DiagramIconOn.png",
-                IsSelected = true,
-            };
-            selfInfoView.AddChidren(btnShowData);
+            //Button btnShowData;
+            //btnShowData = new Button()
+            //{
+            //    X = Application.GetRealWidth(291),
+            //    Y = Application.GetRealWidth(62),
+            //    Width = Application.GetMinRealAverage(32),
+            //    Height = Application.GetMinRealAverage(32),
+            //    UnSelectedImagePath = "FunctionIcon/EnvironmentalScience/DiagramIcon.png",
+            //    SelectedImagePath = "FunctionIcon/EnvironmentalScience/DiagramIconOn.png",
+            //    IsSelected = true,
+            //};
+            //selfInfoView.AddChidren(btnShowData);
             //btnShowData.MouseUpEventHandler = (sender, e) => {
             //    btnShowData.IsSelected = !btnShowData.IsSelected;
             //    if(btnShowData.IsSelected)
@@ -628,9 +642,9 @@
             {
                 Action backAction = () =>
                 {
-                    btnSeltSensorName.Text = sensor.name;
+                    btnSeltSensorName.Text = function.name;
                 };
-                var infoView = new FunctionBaseInfoSetPage(sensor, backAction);
+                var infoView = new FunctionBaseInfoSetPage(function, backAction);
                 MainPage.BasePageView.AddChidren(infoView);
                 infoView.LoadPage();
                 MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
@@ -642,13 +656,14 @@
 
             bool initTitleButton = true;
 
-            foreach (var tempSensor in FunctionList.List.sensorsEnvironmentalScience)
+
+            foreach (var tempSensor in sensorList)
             {
-                if (tempSensor.sid == sensor.sid)
+                if (tempSensor.sid == function.sid)
                 {
                     continue;
                 }
-                if (tempSensor.functionType != sensor.functionType)
+                if (tempSensor.spk != function.spk)
                 {
                     continue;
                 }
@@ -673,7 +688,7 @@
                 #region 鍏跺畠浼犳劅鍣ㄤ俊鎭爮
                 FrameLayout otherInfoView = new FrameLayout()
                 {
-                    Gravity = Gravity.CenterVertical,
+                    Gravity = Gravity.CenterHorizontal,
                     Width = Application.GetRealWidth(343),
                     Height = Application.GetRealWidth(100),
                     BackgroundColor = CSS_Color.MainBackgroundColor,
@@ -705,7 +720,7 @@
                     TextAlignment = TextAlignment.CenterLeft,
                     TextColor = CSS_Color.FirstLevelTitleColor,
                     TextSize = CSS_FontSize.TextFontSize,
-                    Text = sensor.name,
+                    Text = function.name,
                     IsBold = true,
                 };
                 otherInfoView.AddChidren(btnSensorName);
@@ -737,7 +752,11 @@
                 {
                     Action backAction = () =>
                     {
-                        btnSeltSensorName.Text = tempSensor.name;
+                        MainPage.Log("45678i");
+                        Application.RunOnMainThread(() =>
+                        {
+                            btnSeltSensorName.Text = tempSensor.name;
+                        });
                     };
                     var infoView = new FunctionBaseInfoSetPage(tempSensor, backAction);
                     MainPage.BasePageView.AddChidren(infoView);
@@ -772,25 +791,30 @@
                     btnShowData1.IsSelected = !btnShowData1.IsSelected;
                     if (btnShowData1.IsSelected)
                     {
-                        if (!showSensors.Contains(sensor))
+                        if (!showFunctions.Contains(tempSensor))
                         {
-                            showSensors.Add(sensor);
+                            showFunctions.Add(tempSensor);
                         }
                     }
                     else
                     {
-                        if (showSensors.Contains(sensor))
+                        if (showFunctions.Contains(tempSensor))
                         {
-                            showSensors.Remove(sensor);
+                            showFunctions.Remove(tempSensor);
                         }
                     }
                     LoadMothed_GetSensorHistoryData();
                 };
                 #endregion
 
+                contentView.AddChidren(new Button()
+                {
+                    Height = Application.GetRealHeight(12),
+                });
+
             }
             #endregion
-            new TopViewDiv(bodyView, Language.StringByID(sensor.functionTypeNameId)).LoadTopView();
+            new TopViewDiv(bodyView, Language.StringByID(sensorTemp.GetFunctionTypeNameId(function.spk))).LoadTopView();
 
             LoadMothed_GetSensorHistoryData();
             LoadEvent_ChangeSensorHistoryShowType();
@@ -801,23 +825,11 @@
     //------------
     public partial class EnvironmentalSensorPage
     {
-       public  enum QueryType
-        {
-            NowDay = 0,//褰撳ぉ
-            NowMonth = 1,//鎸囧畾鏈�
-            NowYear = 2,//浠婂勾
-            LatelySevenDay = 3//鏈�杩戜竷澶�
-        }
-
         /// <summary>
         /// 璇诲彇浼犳劅鍣ㄥ巻鍙叉暟鎹�
         /// </summary>
-        void LoadMothed_GetSensorHistoryData()
+        void LoadMothed_GetSensorHistoryData( )
         {
-            string echartRootJsonString;
-            EchartsOption echartRootJson = new EchartsOption();
-            var seriesList = new List<EchartSeriesItem>();
-            echartRootJson.xAxis.data = new List<string>();
             var loadPage = new Loading() {
                 LodingBackgroundColor = 0x88888888,
             };
@@ -830,161 +842,57 @@
                     Application.RunOnMainThread(() => {
                         loadPage.Start(Language.StringByID(StringId.PleaseWait));
                     });
-                    var curMonth = 0;
-                    if(curQueryType == QueryType.NowMonth)
-                    {
-                        curMonth = DateTime.Now.Month;
-                    }
                     int i = 0;
 
-//#if DEBUG
-//                    var sItem = new EchartSeriesItem
-//                    {
-//                        name = sensor.GetRoomListName(),
-//                        data = new List<int>(),
-//                        lineStyle = new EchartLineStyle()
-//                        {
-//                            color = tipColorStringList[i],
-//#if __IOS__
-//                            width = 5,
-//#elif __ANDROID__
-//                                        width = 2,
-//#endif
-//                        },
-//                    };
-//                    Random random = new Random();
-//                    double level = 0.0;
-//                    int countddd = 24;
-//                    for (int j = 0; j < countddd; j++)
-//                    {
-//                        switch (sensor.functionType)
-//                        {
-//                            case FunctionType.PM25:
-//                                level = Math.Round(random.NextDouble() * 130, 0);
-//                                break;
-//                            case FunctionType.CO2:
-//                                level = Math.Round(random.NextDouble() * 6000, 0);
-//                                break;
-//                            case FunctionType.Temp:
-//                                level = Math.Round(random.NextDouble() * 40, 0);
-//                                break;
-//                            case FunctionType.TVOC:
-//                                level = Math.Round(random.NextDouble() * 10, 1);
-//                                break;
-//                            case FunctionType.Humidity:
-//                                level = Math.Round(random.NextDouble() * 100, 0);
-//                                break;
-//                        }
-//                        sItem.data.Add((int)level);
-//                    }
-//                        seriesList.Add(sItem);
-//                    echartRootJson.series = seriesList;
-//#if __IOS__
-//                    echartRootJson.xAxis.axisLabel.fontSize = 22;
-//                    echartRootJson.yAxis.axisLabel.fontSize = 22;
-//#else
-//                    echartRootJson.xAxis.axisLabel.fontSize = 8;
-//                    echartRootJson.yAxis.axisLabel.fontSize = 8;
-//#endif
-//                    echartRootJsonString = Newtonsoft.Json.JsonConvert.SerializeObject(echartRootJson);
-//                    Application.RunOnMainThread(() =>
-//                    {
-//                        myEchartsView.ShowWithOptionJsonString(echartRootJsonString);
-//                    });
-//#endif
+                    var ebl = new EchartsOption_BrokenLine();
 
-                    foreach (var sr in FunctionList.List.sensorsEnvironmentalScience)
+                    string yDataString = "";
+
+                    foreach (var sr in showFunctions)
                     {
-                        if (sr.functionType != sensor.functionType)
+                        if (sr.spk != function.spk)
                         {
                             continue;
                         }
-                        if (showSensors.Find((obj) => obj.sid == sr.sid) == null)
+                        if (showFunctions.Find((obj) => obj.sid == sr.sid) == null)
                         {
                             i++;
                             continue;
                         }
-                        var revertObj = new HttpServerRequest().GetSensorHistory(sr.bus.SubnetID, sr.bus.DeviceID,
-                               5, (int)(sr.functionType) % 256, (int)curQueryType, sr.bus.LoopId, curMonth,
-                               DB_ResidenceData.Instance.residenceGatewayMAC);
 
+                        var sensorType = sr.spk.Split(".")[1];
+                        var queryType = sr.GetAttrState("spk").ToString();
+                        if(queryType == "0")
+                        {
+                            queryType = "value";
+                        }
+
+                        var revertObj = new HttpServerRequest().GetSensorHistory(curQueryType, sr.deviceId, queryType);
                         if (revertObj != null)
                         {
-                            if (revertObj.StateCode == StateCode.SUCCESS)
+                            if (revertObj.Code == StateCode.SUCCESS)
                             {
-                                var revertData = Newtonsoft.Json.JsonConvert.DeserializeObject<List<SensorPushHistoryRes>>(revertObj.ResponseData.ToString());
+                                var revertData = Newtonsoft.Json.JsonConvert.DeserializeObject<List<EnvironmentalSensorHistor>>(revertObj.Data.ToString());
 
-                                var sItem = new EchartSeriesItem
+                                if (i == 0)
                                 {
-                                    name = sr.GetRoomListName(),
-                                    data = new List<int>(),
-                                    lineStyle = new EchartLineStyle()
+                                    List<string> vs = new List<string>();
+                                    foreach(var data in revertData)
                                     {
-                                        color = tipColorStringList[i],
-#if __IOS__
-                                        width = 5,
-#elif __ANDROID__
-                                        width = 2,
-#endif
-                                    },
-                                };
-
-                                int ass = 0;
-                                for (int j = 0; j < revertData.Count; j++)
-                                {
-                                    if (curQueryType == QueryType.NowMonth && revertData[j].CreatedOnUtc.Day > DateTime.Now.Day)
-                                    {
-                                        continue;
+                                        vs.Add(data.fieldName);
                                     }
-                                    if (revertData[j].TargetValue.ToString() != "NaN")
-                                    {
-                                        ass = Convert.ToInt32(revertData[j].TargetValue);
-                                    }
-                                    else
-                                    {
-                                        ass = 0;
-                                    }
-                                    sItem.data.Add(ass);
-                                    switch (curQueryType)
-                                    {
-                                        case QueryType.NowDay:
-                                            echartRootJson.xAxis.data.Add(revertData[j].CreatedOnUtc.Hour.ToString());
-                                            break;
-                                        case QueryType.LatelySevenDay:
-                                            echartRootJson.xAxis.data.Add(System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.GetDayName(revertData[j].CreatedOnUtc.DayOfWeek));
-                                            break;
-                                        case QueryType.NowMonth:
-                                            echartRootJson.xAxis.data.Add(revertData[j].CreatedOnUtc.Day.ToString());
-                                            break;
-                                    }
+                                    ebl.InitXdataText(vs);
                                 }
-                                seriesList.Add(sItem);
-                            }
-                            else
-                            {
-                                Application.RunOnMainThread(() =>
-                                {
-                                    new PublicAssmebly().TipMsgAutoClose(Language.StringByID(StringId.GetSensorHistoryFailed), true);
-                                });
+                                yDataString += ebl.InitYdataText(sr.name, revertData, tipColorStringList[i]);
                             }
                         }
                         i++;
                     }
 
-                    echartRootJson.series = seriesList;
 
-
-#if __IOS__
-                    echartRootJson.xAxis.axisLabel.fontSize = 22;
-                    echartRootJson.yAxis.axisLabel.fontSize = 22;
-#else
-                    echartRootJson.xAxis.axisLabel.fontSize = 8;
-                    echartRootJson.yAxis.axisLabel.fontSize = 8;
-#endif
-                    echartRootJsonString = Newtonsoft.Json.JsonConvert.SerializeObject(echartRootJson);
                     Application.RunOnMainThread(() =>
                     {
-                        myEchartsView.ShowWithOptionJsonString(echartRootJsonString);
+                        myEchartsView.ShowWithOption(ebl.InitOption());
                     });
 
                 }
@@ -1010,7 +918,7 @@
                 btnShowHistroyData_Day.IsSelected = true;
                 btnShowHistroyData_Month.IsSelected = false;
                 btnShowHistroyData_Week.IsSelected = false;
-                curQueryType = QueryType.NowDay;
+                curQueryType = "hour";
                 LoadMothed_GetSensorHistoryData();
             };
 
@@ -1020,7 +928,7 @@
                 btnShowHistroyData_Day.IsSelected = false;
                 btnShowHistroyData_Month.IsSelected = true;
                 btnShowHistroyData_Week.IsSelected = false;
-                curQueryType = QueryType.NowMonth;
+                curQueryType = "month";
                 LoadMothed_GetSensorHistoryData();
             };
             btnShowHistroyData_Week.MouseUpEventHandler = (sender, e) =>
@@ -1029,29 +937,23 @@
                 btnShowHistroyData_Day.IsSelected = false;
                 btnShowHistroyData_Month.IsSelected = false;
                 btnShowHistroyData_Week.IsSelected = true;
-                curQueryType = QueryType.LatelySevenDay;
+                curQueryType = "week";
                 LoadMothed_GetSensorHistoryData();
             };
 
         }
 
-        void LoadEvent_SwitchOtherRoomSensorData()
-        {
 
-        }
     }
 
-    public class SensorPushHistoryRes
+    public class EnvironmentalSensorHistor
     {
+        /// <summary>
+        /// </summary>
+        public string fieldName { get; set; }
 
         /// <summary>
-        /// 瀹為檯鐩爣鍊�
         /// </summary>
-        public float TargetValue { get; set; }
-
-        /// <summary>
-        /// 鏌ヨ鐨勬椂闂撮泦缇�
-        /// </summary>
-        public DateTime CreatedOnUtc { get; set; }
+        public string fieldValue { get; set; }
     }
 }
\ No newline at end of file

--
Gitblit v1.8.0