| | |
| | | /// <summary> |
| | | /// 当前查询类型 |
| | | /// </summary> |
| | | QueryType curQueryType = QueryType.NowDay; |
| | | string curQueryType = "hour"; |
| | | |
| | | List<uint> tipColorList = new List<uint>() |
| | | { |
| | |
| | | //------------ |
| | | public partial class EnvironmentalSensorPage |
| | | { |
| | | public enum QueryType |
| | | { |
| | | NowDay = 0,//当天 |
| | | NowMonth = 1,//指定月 |
| | | NowYear = 2,//今年 |
| | | LatelySevenDay = 3//最近七天 |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 读取传感器历史数据 |
| | | /// </summary> |
| | |
| | | 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 SPK.SensorPm25: |
| | | // level = Math.Round(random.NextDouble() * 130, 0); |
| | | // break; |
| | | // case SPK.SensorCO2: |
| | | // level = Math.Round(random.NextDouble() * 6000, 0); |
| | | // break; |
| | | // case SPK.SensorTemperature: |
| | | // level = Math.Round(random.NextDouble() * 40, 0); |
| | | // break; |
| | | // case SPK.SensorTVOC: |
| | | // level = Math.Round(random.NextDouble() * 10, 1); |
| | | // break; |
| | | // case SPK.SensorHumidity: |
| | | // 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 |
| | | |
| | | |
| | | foreach (var sr in FunctionList.List.sensorsEnvironmentalScience) |
| | | { |
| | | if (sr.spk != sensor.spk) |
| | |
| | | continue; |
| | | } |
| | | |
| | | byte sensorType = 0; |
| | | switch (sr.spk) |
| | | { |
| | | case SPK.SensorTemperature: |
| | | sensorType = 2; |
| | | break; |
| | | case SPK.SensorHumidity: |
| | | sensorType = 3; |
| | | break; |
| | | case SPK.SensorTVOC: |
| | | sensorType = 5; |
| | | break; |
| | | case SPK.SensorPm25: |
| | | sensorType = 6; |
| | | break; |
| | | case SPK.SensorCO2: |
| | | sensorType = 7; |
| | | break; |
| | | } |
| | | var revertObj = new HttpServerRequest().GetSensorHistory(sr.bus.SubnetID, sr.bus.DeviceID, |
| | | 5, sensorType, (int)curQueryType, sr.bus.LoopId, curMonth, |
| | | DB_ResidenceData.Instance.residenceGatewayMAC); |
| | | var sensorType = sr.spk.Split(".")[0]; |
| | | var revertObj = new HttpServerRequest().GetSensorHistory(curQueryType, sr.deviceId,sensorType); |
| | | |
| | | 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 |
| | | { |
| | |
| | | }, |
| | | }; |
| | | |
| | | int ass = 0; |
| | | for (int j = 0; j < revertData.Count; j++) |
| | | foreach (var d in revertData) |
| | | { |
| | | if (curQueryType == QueryType.NowMonth && revertData[j].CreatedOnUtc.Day > DateTime.Now.Day) |
| | | { |
| | | continue; |
| | | } |
| | | 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; |
| | | } |
| | | echartRootJson.xAxis.data.Add(d.fieldName); |
| | | echartRootJson.yAxis.data.Add(d.fieldValue); |
| | | } |
| | | seriesList.Add(sItem); |
| | | } |
| | |
| | | btnShowHistroyData_Day.IsSelected = true; |
| | | btnShowHistroyData_Month.IsSelected = false; |
| | | btnShowHistroyData_Week.IsSelected = false; |
| | | curQueryType = QueryType.NowDay; |
| | | curQueryType = "hour"; |
| | | LoadMothed_GetSensorHistoryData(); |
| | | }; |
| | | |
| | |
| | | btnShowHistroyData_Day.IsSelected = false; |
| | | btnShowHistroyData_Month.IsSelected = true; |
| | | btnShowHistroyData_Week.IsSelected = false; |
| | | curQueryType = QueryType.NowMonth; |
| | | curQueryType = "week"; |
| | | LoadMothed_GetSensorHistoryData(); |
| | | }; |
| | | btnShowHistroyData_Week.MouseUpEventHandler = (sender, e) => |
| | |
| | | btnShowHistroyData_Day.IsSelected = false; |
| | | btnShowHistroyData_Month.IsSelected = false; |
| | | btnShowHistroyData_Week.IsSelected = true; |
| | | curQueryType = QueryType.LatelySevenDay; |
| | | curQueryType = "month"; |
| | | LoadMothed_GetSensorHistoryData(); |
| | | }; |
| | | |
| | |
| | | } |
| | | } |
| | | |
| | | 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; } |
| | | } |
| | | } |