Ejemplo n.º 1
0
        public JsonResult GetHistoryData(string axisNumStr)
        {
            log = LogFactory.GetLogger(MethodBase.GetCurrentMethod().DeclaringType.FullName + ":" + MethodBase.GetCurrentMethod().Name);
            var retData = new VM_Result_Data();

            if (HisMain.IsAxisNum(axisNumStr))
            {
                var axisNum = new HisData(axisNumStr);

                var bllHisData = new MesWeb.BLL.T_HisData(axisNum.TableName);
                try {
                    var hisDataList    = bllHisData.GetModelList("machineID = " + axisNum.MachineId);
                    var sensorDataList = new List <VM_Sensor_Online>();

                    foreach (var item in ParamCodeDic)
                    {
                        //找出映射的数据
                        var data = (from s in hisDataList where s.ParameterCodeID == item.Key select s).ToList();
                        if (data.Count > 0)
                        {
                            //生成传感器的数据结构
                            var sensorData = new  VM_Sensor_Online {
                                ParamCodeId = item.Value
                            };
                            sensorData.SeriesData = new List <VM_Sensor_Data>();
                            foreach (var d in data)
                            {
                                try {
                                    var seriesData = new VM_Sensor_Data {
                                        X = ((DateTime)(d.CollectedTime)).AddHours(8).ToUniversalTime().ToString(), Y = float.Parse(d.CollectedValue)
                                    };
                                    sensorData.SeriesData.Add(seriesData);
                                } catch (Exception e) {
                                    log.Error(e);
                                    continue;
                                }
                            }
                            sensorDataList.Add(sensorData);
                        }
                    }


                    retData.Appendix = sensorDataList;
                    retData.Content  = "加载机台历史数据成功";
                    retData.Code     = RESULT_CODE.OK;
                } catch (Exception e) {
                    log.Error(e);
                    retData.Content = "加载机台历史数据失败";
                }
            }
            return(Json(retData));
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 获取机台传感器数据
        /// </summary>
        /// <param name="dpData">原始所有数据</param>
        /// <returns></returns>
        public VM_Result_Data GetSensorData(SensorData data)
        {
            //int calcMs = 0;
            //按参数类型分组
            var groupData     = (from d in data.CollectedData group d by d.ParameterCodeID into g select g);
            var sensorOnlines = new List <VM_Sensor_Online>();

            foreach (var specGp in groupData)
            {
                var sensorOnline = new VM_Sensor_Online();
                var paramCodeId  = specGp.Key;
                if (paramCodeId == null)
                {
                    continue;
                }

                //获取参数 ID
                sensorOnline.ParamCodeId = paramCodeId;
                sensorOnline.SeriesData  = new List <VM_Sensor_Data>();
                //获取参数值
                foreach (var spec in specGp)
                {
                    //防止速度过快数据重叠
                    //     calcMs += 5;
                    //   Random rand = new Random();
                    //   var randMs = rand.Next(calcMs,calcMs + 4);
                    //         var x = ((DateTime)(spec.CollectedTime)).AddMilliseconds(randMs);
                    //   //设置精度到毫秒级别
                    //f表示保留一位小数,即精度为 0.5s = 500ms;
                    //重新生成时间保证时间不重叠
                    var m = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.ffff");
                    // var m = x.ToString();
                    sensorOnline.SeriesData.Add(new VM_Sensor_Data {
                        X = m, Y = float.Parse(spec.CollectedValue)
                    });
                    sensorOnline.Message = spec.CollectedValue.ToString();
                }
                sensorOnlines.Add(sensorOnline);
            }
            var retData = new VM_Result_Data();

            if (sensorOnlines.Count > 0)
            {
                retData.Appendix = sensorOnlines;
                retData.Code     = RESULT_CODE.OK;
                retData.Content  = "更新实时数据成功";
            }
            return(retData);
        }