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 |  324 +++++++++++++++++++++++++++--------------------------
 1 files changed, 167 insertions(+), 157 deletions(-)

diff --git a/HDL_ON/UI/UI2/FuntionControlView/EnvironmentalScience/EnvironmentalSensorPage.cs b/HDL_ON/UI/UI2/FuntionControlView/EnvironmentalScience/EnvironmentalSensorPage.cs
index 9ef23cc..de2bdaa 100644
--- a/HDL_ON/UI/UI2/FuntionControlView/EnvironmentalScience/EnvironmentalSensorPage.cs
+++ b/HDL_ON/UI/UI2/FuntionControlView/EnvironmentalScience/EnvironmentalSensorPage.cs
@@ -3,6 +3,8 @@
 using HDL_ON.Entity;
 using HDL_ON.UI.CSS;
 using System.Collections.Generic;
+using HDL_ON.DAL.Server;
+using HDL_ON.UI.UI2.EnvironmentalScience;
 
 namespace HDL_ON.UI
 {
@@ -20,9 +22,15 @@
 
         MyEchartsViewOn myEchartsView;
 
-        Sensor sensor;
+        Sensor sensorTemp = new Sensor();
 
-        List<Sensor> showSensors; 
+        Function function;
+        List<Function> showFunctions;
+        List<Function> sensorList;
+        /// <summary>
+        /// 褰撳墠鏌ヨ绫诲瀷
+        /// </summary>
+        string curQueryType = "hour";
 
         List<uint> tipColorList = new List<uint>()
         {
@@ -34,17 +42,27 @@
             "#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()
         {
-
             bodyView.BackgroundColor = CSS_Color.BackgroundColor;
 
             VerticalScrolViewLayout contentView = new VerticalScrolViewLayout()
@@ -61,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,
@@ -112,7 +130,7 @@
                 TextColor = CSS_Color.PromptingColor2,
                 SelectedTextColor = CSS_Color.MainColor,
                 TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
-                TextID = StringId.month,
+                Text = Language.StringByID(StringId.month),//DateTime.Now.Month.ToString() + 
             };
             showDataTypeView.AddChidren(btnShowHistroyData_Month);
             #endregion
@@ -122,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);
 
@@ -134,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),
             };
@@ -159,10 +177,9 @@
             };
             diagramView.AddChidren(tipTextView);
 
-            switch (sensor.functionType)
+            switch (function.spk)
             {
-                case FunctionType.PM10:
-                case FunctionType.PM25:
+                case SPK.SensorPm25:
                     tipValuesView.AddChidren(new Button()
                     {
                         Width = Application.GetRealWidth(101),
@@ -220,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");
@@ -230,11 +247,7 @@
                 //_levelTextList.Add(StringId.MildPollution);
                 //_levelTextList.Add(StringId.HeavyPollution);
                 //break;
-                //case FunctionType.Noise:
-                //    break;
-                case FunctionType.WindPower:
-                    break;
-                case FunctionType.CO2:
+                case SPK.SensorCO2:
                     tipValuesView.AddChidren(new Button()
                     {
                         Width = Application.GetRealWidth(101),
@@ -292,7 +305,7 @@
                         TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel,
                     });
                     break;
-                case FunctionType.Temp:
+                case SPK.SensorTemperature:
                     tipValuesView.AddChidren(new Button()
                     {
                         Width = Application.GetRealWidth(50),
@@ -359,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,
@@ -412,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),
@@ -470,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,
@@ -482,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,
@@ -490,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,
@@ -498,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,
@@ -506,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,
@@ -553,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);
@@ -567,7 +580,7 @@
                 TextColor = CSS_Color.PromptingColor1,
                 TextAlignment = TextAlignment.CenterLeft,
                 TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
-                Text = sensor.GetRoomListName()
+                Text = function.GetRoomListName()
             };
             selfInfoView.AddChidren(btnFromFoorAndRoom);
 
@@ -594,27 +607,44 @@
             };
             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)
+            //    {
+            //        if (!showSensors.Contains(sensor))
+            //        {
+            //            showSensors.Add(sensor);
+            //        }
+            //    }
+            //    else
+            //    {
+            //        if (showSensors.Contains(sensor))
+            //        {
+            //            showSensors.Remove(sensor);
+            //        }
+            //    }
+            //    LoadMothed_GetSensorHistoryData();
+            //};
 
             btnSetting.MouseUpEventHandler = (sender, e) =>
             {
                 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;
@@ -626,17 +656,17 @@
 
             bool initTitleButton = true;
 
-            foreach (var tempSensor in DB_ResidenceData.residenceData.functionList.sensorsEnvironmentalScience)
-            {
-                if (tempSensor.sid == sensor.sid)
-                {
-                    continue;
-                }
-                if (tempSensor.functionType != sensor.functionType)
-                {
-                    continue;
-                }
 
+            foreach (var tempSensor in sensorList)
+            {
+                if (tempSensor.sid == function.sid)
+                {
+                    continue;
+                }
+                if (tempSensor.spk != function.spk)
+                {
+                    continue;
+                }
                 contentView.ScrollEnabled = true;
 
                 if (initTitleButton)
@@ -658,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,
@@ -690,11 +720,10 @@
                     TextAlignment = TextAlignment.CenterLeft,
                     TextColor = CSS_Color.FirstLevelTitleColor,
                     TextSize = CSS_FontSize.TextFontSize,
-                    Text = sensor.name,
+                    Text = function.name,
                     IsBold = true,
                 };
                 otherInfoView.AddChidren(btnSensorName);
-
 
                 Button btnFromFoorAndRoom1 = new Button()
                 {
@@ -723,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);
@@ -754,14 +787,36 @@
                     SelectedImagePath = "FunctionIcon/EnvironmentalScience/DiagramIconOn.png",
                 };
                 otherInfoView.AddChidren(btnShowData1);
-
+                btnShowData1.MouseUpEventHandler = (sender, e) => {
+                    btnShowData1.IsSelected = !btnShowData1.IsSelected;
+                    if (btnShowData1.IsSelected)
+                    {
+                        if (!showFunctions.Contains(tempSensor))
+                        {
+                            showFunctions.Add(tempSensor);
+                        }
+                    }
+                    else
+                    {
+                        if (showFunctions.Contains(tempSensor))
+                        {
+                            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(QueryType.NowDay);
+            LoadMothed_GetSensorHistoryData();
             LoadEvent_ChangeSensorHistoryShowType();
         }
     }
@@ -770,23 +825,11 @@
     //------------
     public partial class EnvironmentalSensorPage
     {
-        enum QueryType
-        {
-            NowDay = 0,//褰撳ぉ
-            NowMonth = 1,//鎸囧畾鏈�
-            NowYear = 2,//浠婂勾
-            LatelySevenDay = 3//鏈�杩戜竷澶�
-        }
-
         /// <summary>
         /// 璇诲彇浼犳劅鍣ㄥ巻鍙叉暟鎹�
         /// </summary>
-        void LoadMothed_GetSensorHistoryData(QueryType queryType)
+        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,
             };
@@ -797,91 +840,61 @@
                 try
                 {
                     Application.RunOnMainThread(() => {
-                        loadPage.Start("Loading...");
+                        loadPage.Start(Language.StringByID(StringId.PleaseWait));
                     });
-                    var curMonth = 0;
-                    if(queryType == QueryType.NowMonth)
-                    {
-                        curMonth = DateTime.Now.Month;
-                    }
-                    for (int i = 0; i < showSensors.Count; i++)
-                    {
-                        var sr = showSensors[i];
-                        var revertObj = new DAL.Server.HttpServerRequest().GetSensorHistory(sr.bus_Data.SubnetID, sr.bus_Data.DeviceID,
-                               5, (int)(sr.functionType) % 256, (int)queryType, sr.bus_Data.LoopID, curMonth,
-                               DB_ResidenceData.residenceData.residenceGatewayMAC);
+                    int i = 0;
 
+                    var ebl = new EchartsOption_BrokenLine();
+
+                    string yDataString = "";
+
+                    foreach (var sr in showFunctions)
+                    {
+                        if (sr.spk != function.spk)
+                        {
+                            continue;
+                        }
+                        if (showFunctions.Find((obj) => obj.sid == sr.sid) == null)
+                        {
+                            i++;
+                            continue;
+                        }
+
+                        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 == "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 (revertData[j].TargetValue.ToString() != "NaN")
-                                    {
-                                        ass = Convert.ToInt32(revertData[j].TargetValue);
+                                        vs.Add(data.fieldName);
                                     }
-                                    sItem.data.Add(ass);
-                                    switch (queryType)
-                                    {
-                                        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.title.text = "娓╁害(鈩�)";lineStyle
-                    //echartRootJson.color = new List<string> { "#80AEFF" };//, "FFD154", "FF9D54", "FE6A6A", "B183C3", "ADE764" 
-                    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());
                     });
+
                 }
                 catch (Exception ex)
                 {
@@ -905,7 +918,8 @@
                 btnShowHistroyData_Day.IsSelected = true;
                 btnShowHistroyData_Month.IsSelected = false;
                 btnShowHistroyData_Week.IsSelected = false;
-                LoadMothed_GetSensorHistoryData(QueryType.NowDay);
+                curQueryType = "hour";
+                LoadMothed_GetSensorHistoryData();
             };
 
             btnShowHistroyData_Month.MouseUpEventHandler = (sender, e) =>
@@ -914,7 +928,8 @@
                 btnShowHistroyData_Day.IsSelected = false;
                 btnShowHistroyData_Month.IsSelected = true;
                 btnShowHistroyData_Week.IsSelected = false;
-                LoadMothed_GetSensorHistoryData(QueryType.NowMonth);
+                curQueryType = "month";
+                LoadMothed_GetSensorHistoryData();
             };
             btnShowHistroyData_Week.MouseUpEventHandler = (sender, e) =>
             {
@@ -922,28 +937,23 @@
                 btnShowHistroyData_Day.IsSelected = false;
                 btnShowHistroyData_Month.IsSelected = false;
                 btnShowHistroyData_Week.IsSelected = true;
-                LoadMothed_GetSensorHistoryData(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