Exemple #1
0
        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));
        }
Exemple #2
0
        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));
        }
Exemple #3
0
        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));
        }