wei
2021-03-03 d4811b7d34b45ff6b21b97f11da128b5572ec526
HDL_ON/UI/UI2/FuntionControlView/EnvironmentalScience/EnvironmentalSensorPage.cs
@@ -3,6 +3,7 @@
using HDL_ON.Entity;
using HDL_ON.UI.CSS;
using System.Collections.Generic;
using HDL_ON.DAL.Server;
namespace HDL_ON.UI
{
@@ -22,7 +23,11 @@
        Sensor sensor;
        List<Sensor> showSensors;
        List<Sensor> showSensors;
        /// <summary>
        /// 当前查询类型
        /// </summary>
        string curQueryType = "hour";
        List<uint> tipColorList = new List<uint>()
        {
@@ -44,7 +49,6 @@
        public void LoadPage()
        {
            bodyView.BackgroundColor = CSS_Color.BackgroundColor;
            VerticalScrolViewLayout contentView = new VerticalScrolViewLayout()
@@ -112,7 +116,7 @@
                TextColor = CSS_Color.PromptingColor2,
                SelectedTextColor = CSS_Color.MainColor,
                TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
                TextID = StringId.month,
                Text = DateTime.Now.Month.ToString() + Language.StringByID(StringId.month),
            };
            showDataTypeView.AddChidren(btnShowHistroyData_Month);
            #endregion
@@ -159,10 +163,9 @@
            };
            diagramView.AddChidren(tipTextView);
            switch (sensor.functionType)
            switch (sensor.spk)
            {
                case FunctionType.PM10:
                case FunctionType.PM25:
                case SPK.SensorPm25:
                    tipValuesView.AddChidren(new Button()
                    {
                        Width = Application.GetRealWidth(101),
@@ -220,7 +223,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 +233,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 +291,7 @@
                        TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel,
                    });
                    break;
                case FunctionType.Temp:
                case SPK.SensorTemperature:
                    tipValuesView.AddChidren(new Button()
                    {
                        Width = Application.GetRealWidth(50),
@@ -412,7 +411,7 @@
                    //_levelTextList.Add(StringId.);
                    //_levelTextList.Add(StringId.ExtremeHeat);
                    break;
                case FunctionType.TVOC:
                case SPK.SensorTVOC:
                    tipValuesView.AddChidren(new Button()
                    {
                        Width = Application.GetRealWidth(101),
@@ -470,7 +469,7 @@
                        TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel,
                    });
                    break;
                case FunctionType.Humidity:
                case SPK.SensorHumidity:
                    tipValuesView.AddChidren(new Button()
                    {
                        Width = Application.GetRealWidth(151),
@@ -606,7 +605,24 @@
                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) =>
            {
@@ -626,17 +642,16 @@
            bool initTitleButton = true;
            foreach (var tempSensor in DB_ResidenceData.residenceData.functionList.sensorsEnvironmentalScience)
            foreach (var tempSensor in FunctionList.List.sensorsEnvironmentalScience)
            {
                if (tempSensor.sid == sensor.sid)
                {
                    continue;
                }
                if (tempSensor.functionType != sensor.functionType)
                if (tempSensor.spk != sensor.spk)
                {
                    continue;
                }
                contentView.ScrollEnabled = true;
                if (initTitleButton)
@@ -694,7 +709,6 @@
                    IsBold = true,
                };
                otherInfoView.AddChidren(btnSensorName);
                Button btnFromFoorAndRoom1 = new Button()
                {
@@ -754,14 +768,31 @@
                    SelectedImagePath = "FunctionIcon/EnvironmentalScience/DiagramIconOn.png",
                };
                otherInfoView.AddChidren(btnShowData1);
                btnShowData1.MouseUpEventHandler = (sender, e) => {
                    btnShowData1.IsSelected = !btnShowData1.IsSelected;
                    if (btnShowData1.IsSelected)
                    {
                        if (!showSensors.Contains(sensor))
                        {
                            showSensors.Add(sensor);
                        }
                    }
                    else
                    {
                        if (showSensors.Contains(sensor))
                        {
                            showSensors.Remove(sensor);
                        }
                    }
                    LoadMothed_GetSensorHistoryData();
                };
                #endregion
            }
            #endregion
            new TopViewDiv(bodyView, Language.StringByID(sensor.functionTypeNameId)).LoadTopView();
            LoadMothed_GetSensorHistoryData(QueryType.NowDay);
            LoadMothed_GetSensorHistoryData();
            LoadEvent_ChangeSensorHistoryShowType();
        }
    }
@@ -770,18 +801,10 @@
    //------------
    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();
@@ -797,25 +820,30 @@
                try
                {
                    Application.RunOnMainThread(() => {
                        loadPage.Start("Loading...");
                        loadPage.Start(Language.StringByID(StringId.PleaseWait));
                    });
                    var curMonth = 0;
                    if(queryType == QueryType.NowMonth)
                    int i = 0;
                    foreach (var sr in FunctionList.List.sensorsEnvironmentalScience)
                    {
                        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);
                        if (sr.spk != sensor.spk)
                        {
                            continue;
                        }
                        if (showSensors.Find((obj) => obj.sid == sr.sid) == null)
                        {
                            i++;
                            continue;
                        }
                        var sensorType = sr.spk.Split(".")[0];
                        var revertObj = new HttpServerRequest().GetSensorHistory(curQueryType, sr.deviceId,sensorType);
                        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
                                {
@@ -832,26 +860,10 @@
                                    },
                                };
                                int ass = 0;
                                for (int j = 0; j < revertData.Count; j++)
                                foreach (var d in revertData)
                                {
                                    if (revertData[j].TargetValue.ToString() != "NaN")
                                    {
                                        ass = Convert.ToInt32(revertData[j].TargetValue);
                                    }
                                    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;
                                    }
                                    echartRootJson.xAxis.data.Add(d.fieldName);
                                    echartRootJson.yAxis.data.Add(d.fieldValue);
                                }
                                seriesList.Add(sItem);
                            }
@@ -863,10 +875,9 @@
                                });
                            }
                        }
                        i++;
                    }
                    //echartRootJson.title.text = "温度(℃)";lineStyle
                    //echartRootJson.color = new List<string> { "#80AEFF" };//, "FFD154", "FF9D54", "FE6A6A", "B183C3", "ADE764"
                    echartRootJson.series = seriesList;
@@ -882,6 +893,7 @@
                    {
                        myEchartsView.ShowWithOptionJsonString(echartRootJsonString);
                    });
                }
                catch (Exception ex)
                {
@@ -905,7 +917,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 +927,8 @@
                btnShowHistroyData_Day.IsSelected = false;
                btnShowHistroyData_Month.IsSelected = true;
                btnShowHistroyData_Week.IsSelected = false;
                LoadMothed_GetSensorHistoryData(QueryType.NowMonth);
                curQueryType = "week";
                LoadMothed_GetSensorHistoryData();
            };
            btnShowHistroyData_Week.MouseUpEventHandler = (sender, e) =>
            {
@@ -922,7 +936,8 @@
                btnShowHistroyData_Day.IsSelected = false;
                btnShowHistroyData_Month.IsSelected = false;
                btnShowHistroyData_Week.IsSelected = true;
                LoadMothed_GetSensorHistoryData(QueryType.LatelySevenDay);
                curQueryType = "month";
                LoadMothed_GetSensorHistoryData();
            };
        }
@@ -933,17 +948,14 @@
        }
    }
    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; }
    }
}