public JsonResult GetDeviceColumns(int id) { DeviceGroupModel model = DeviceGroupService.GetById(id); List <GridColumn> columns = new List <GridColumn>(); if (model != null) { string[] fields = model.IOPARANAMES.Split(','); string[] titles = model.IOPARATITLES.Split(','); if (fields.Length == titles.Length) { for (int i = 0; i < fields.Length; i++) { GridColumn _option = new GridColumn { field = fields[i], title = titles[i], width = "120" }; columns.Add(_option); } } } columns.Insert(0, new GridColumn() { field = "DateStampTime", title = "采集时间", width = "120" }); return(Json(columns, JsonRequestBehavior.AllowGet)); }
public JsonResult GetGroupDevicePara(int id, string serverid, string communicateid, string deviceid) { DeviceGroupModel deviceModel = DeviceGroupService.GetById(id); List <SelectOption> _select = new List <SelectOption>(); if (deviceModel != null) { string[] titles = deviceModel.IOPARATITLES.Split(','); string[] ionames = deviceModel.IOPARANAMES.Split(','); string[] ioids = deviceModel.IOPARAS.Split(','); for (int i = 0; i < titles.Length; i++) { SelectOption _option = new SelectOption { id = ioids[i], name = titles[i], value = ioids[i], value1 = "/" + deviceModel.GroupId + "/" + deviceModel.IO_SERVER_ID + "/" + deviceModel.IO_COMM_ID + "/" + deviceModel.IO_DEVICE_ID + "/" + ioids[i] + "/" + deviceModel.UpdateCycle, }; _select.Add(_option); } } return(Json(_select, JsonRequestBehavior.AllowGet)); }
private JsonResult QueryHistorySummaryData(string groupid, string serverid, string communicateid, string deviceid, string period, string method, string fields = "", string series = "", int charttype = 1, string sdate = "", string edate = "", string serieclassify = "", int pagesize = 1000) { ///传递的曲线指标信息 string serieindex = "'" + series.Trim().Replace(",", "','") + "'"; string[] myfields = fields.Split(','); //获取对应的曲线配置信息 IEnumerable <SerieConfigModel> allItems = SerieServer.GetByWhere(" where SerieName in(" + serieindex + ") and SerieClassify='" + serieclassify + "'"); List <SerieConfigModel> Items = new List <SerieConfigModel>(); foreach (var item in allItems) { if (myfields.Contains(item.SerieName)) { Items.Add(item); } } DeviceGroupModel pWell = DeviceGroupService.GetById(int.Parse(groupid)); ///初始化曲线对象 EChartOption chartOption = new EChartOption(); chartOption.xAxis = new Axis[1]; chartOption.xAxis[0] = new Axis(); chartOption.xAxis[0].gridIndex = 1; chartOption.xAxis[0].type = "time"; chartOption.xAxis[0].name = "时间"; List <Axis> yaxis = new List <Axis>(); int index = 0; string[] legend = new string[Items.Count()]; foreach (var item in Items) { yaxis.Add(new Axis() { gridIndex = index, name = item.SerieTitle, type = "value" }); legend[index] = item.SerieTitle; index++; } chartOption.legend.data = legend; chartOption.yAxis = yaxis.ToArray(); //初始化对象结束 if (sdate == null || sdate == "") { sdate = DateTime.Now.AddHours(-1).ToString("yyyy-MM-dd HH:mm:ss"); } if (edate == null || edate == "") { edate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); } chartOption.series = new Series[Items.Count()]; string returnFields = " time"; #region { foreach (var item in Items) { returnFields += "," + method + "(field_" + item.SerieName.Trim().ToLower().ToString() + "_value) as field_" + item.SerieName.Trim().ToLower().ToString() + "_value"; } } #endregion InfluxDBHistoryResult realResult = mWebInfluxDbManager.DbQuery_HistoryStatics(serverid, communicateid, deviceid, Convert.ToDateTime(sdate), Convert.ToDateTime(edate), pagesize, 1, " DESC ", period, returnFields); if (realResult != null) { var datas = realResult.Seres; if (datas != null && datas.Count() > 0) { var onedata = datas.First(); int sindex = 0; foreach (var item in Items) { chartOption.series[sindex] = new Series(); chartOption.series[sindex].name = item.SerieTitle; chartOption.series[sindex].lineStyle.color = item.SerieColor; chartOption.series[sindex].lineStyle.width = int.Parse(item.SerieWidth); chartOption.series[sindex].itemStyle = null; chartOption.series[sindex].data = new double[onedata.Values.Count]; chartOption.series[sindex].type = item.SerieType; chartOption.series[sindex].showSymbol = item.ShowSymbol == "1" ? true : false; chartOption.series[sindex].symbol = item.SymbolType; chartOption.series[sindex].symbolSize = int.Parse(item.SymbolSize); sindex++; } string[] axisData = new string[onedata.Values.Count]; //获取的数据按照时间先后 int dataindex = onedata.Values.Count() - 1; foreach (var value in onedata.Values) { //获取采集时间 object objx = onedata.Values[dataindex][onedata.Columns.IndexOf("time")]; axisData[dataindex] = objx != null?objx.ToString() : ""; ////////////////////////// sindex = 0; foreach (var item in Items) { try { string record = item.SerieName.ToString().ToLower(); int recordindex = onedata.Columns.IndexOf("field_" + record + "_value"); if (recordindex >= 0) { object objy = onedata.Values[dataindex][recordindex]; chartOption.series[sindex].data[dataindex] = Convert.ToDouble(objy); chartOption.series[sindex].id = item.SerieName; } } catch { } sindex++; } dataindex--; } chartOption.xAxis[0].data = axisData;//设置x轴数据,time格式的数据必须在Axis轴上进行设置 } } //读取以下的实时数据,从influxDB中读取 return(Json(chartOption, JsonRequestBehavior.AllowGet)); }