|
|
|
@ -185,25 +185,32 @@ namespace IoTCenter.Controllers
|
|
|
|
|
var dbName = "iot";
|
|
|
|
|
var measurementName = "data";
|
|
|
|
|
var list = new List<object>();
|
|
|
|
|
var labels = new List<string>();
|
|
|
|
|
using (var client = new InfluxClient(new Uri(url), usr, pwd))
|
|
|
|
|
{
|
|
|
|
|
var fileds = String.Join(',', device.Data.Where(o => o.Type == DeviceDataType.Int || o.Type == DeviceDataType.Float).Select(o => o.Key));
|
|
|
|
|
var query = $"select {fileds} from {measurementName} where time>now()-{time} and DeviceNumber = '{device.Number}' limit 10000";
|
|
|
|
|
var result = client.ReadAsync<DynamicInfluxRow>(dbName, query).Result;
|
|
|
|
|
var rows = result.Results.FirstOrDefault()?
|
|
|
|
|
.Series.FirstOrDefault()?
|
|
|
|
|
.Rows;
|
|
|
|
|
foreach (var data in device.Data.Where(o => o.Type == DeviceDataType.Int || o.Type == DeviceDataType.Float))
|
|
|
|
|
if (!string.IsNullOrEmpty(fileds))
|
|
|
|
|
{
|
|
|
|
|
list.Add(new
|
|
|
|
|
var query = $"select {fileds} from {measurementName} where time>now()-{time} and DeviceNumber = '{device.Number}' limit 10000";
|
|
|
|
|
var result = client.ReadAsync<DynamicInfluxRow>(dbName, query).Result;
|
|
|
|
|
var rows = result.Results.FirstOrDefault()?
|
|
|
|
|
.Series.FirstOrDefault()?
|
|
|
|
|
.Rows;
|
|
|
|
|
foreach (var data in device.Data.Where(o => o.Type == DeviceDataType.Int || o.Type == DeviceDataType.Float))
|
|
|
|
|
{
|
|
|
|
|
label = data.Name,
|
|
|
|
|
data = rows != null ? rows.Where(o => o.Fields.ContainsKey(data.Key)).Select(o => o.GetField(data.Key)).ToList() : new List<object>(),
|
|
|
|
|
backgroundColor = this.GetColor(data.Key),
|
|
|
|
|
fill = false
|
|
|
|
|
});
|
|
|
|
|
list.Add(new
|
|
|
|
|
{
|
|
|
|
|
label = data.Name,
|
|
|
|
|
data = rows != null ? rows.Where(o => o.Fields.ContainsKey(data.Key)).Select(o => o.GetField(data.Key)).ToList() : new List<object>(),
|
|
|
|
|
backgroundColor = this.GetColor(data.Key),
|
|
|
|
|
fill = false
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
if (rows != null)
|
|
|
|
|
{
|
|
|
|
|
labels = rows.Select(o => o.Timestamp.Value).Select(o => o.ToString("MM-dd HH:mm")).Distinct().ToList();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
var labels = rows != null ? rows.Select(o => o.Timestamp.Value).Select(o => o.ToString("MM-dd HH:mm")).ToList().Distinct() : new List<string>();
|
|
|
|
|
var model = new
|
|
|
|
|
{
|
|
|
|
|
datasets = list,
|
|
|
|
|