public void TestRainfallDataSerializer()
        {
            DACTaskResult r  = new DACTaskResult();
            var           s1 = NewSensor(ProtocolType.RainFall, SafetyFactor.Rainfall);
            var           d  = new RainFallData(1.5)
            {
                ////AcqTime = DateTime.Now,
                //ResultCode = 0,
                //Sensor = s1
            };

            r.AddSensorResult(new SensorAcqResult
            {
                Data   = d,
                Sensor = s1
            });

            int savedCnt = sqLiteDbAccessor.SaveDacResult(r);

            Assert.AreEqual(1, savedCnt);
        }
        public void TestCableForceDataSerializer()
        {
            DACTaskResult r  = new DACTaskResult();
            var           s1 = NewSensor(ProtocolType.MagneticFlux, SafetyFactor.CableForce);
            var           d  = new MagneticFluxData(18.69, 25, 500)
            {
                ////AcqTime = DateTime.Now,
                //ResultCode = 0,
                //Sensor = s1
            };

            r.AddSensorResult(new SensorAcqResult
            {
                Data   = d,
                Sensor = s1
            });

            int savedCnt = sqLiteDbAccessor.SaveDacResult(r);

            Assert.AreEqual(1, savedCnt);
        }
        public void TestSeepageDataSerializer()
        {
            var r  = new DACTaskResult();
            var s1 = NewSensor(ProtocolType.Pressure_MPM, SafetyFactor.Seepage);
            var d  = new SeepageData(23)
            {
                //AcqTime = DateTime.Now,
                //ResultCode = 0,
                //Sensor = s1
            };

            r.AddSensorResult(new SensorAcqResult
            {
                Data   = d,
                Sensor = s1
            });

            int savedCnt = sqLiteDbAccessor.SaveDacResult(r);

            Assert.AreEqual(1, savedCnt); // 插入一条记录
        }
        public void TestForcesteelbarDataSerializer()
        {
            DACTaskResult r  = new DACTaskResult();
            var           s1 = NewSensor(ProtocolType.Voltage, SafetyFactor.Forcesteelbar);
            var           d  = new VibratingWireData(1869, 25, 18, 18)
            {
                ////AcqTime = DateTime.Now,
                //ResultCode = 0,
                //Sensor = s1
            };

            r.AddSensorResult(new SensorAcqResult
            {
                Data   = d,
                Sensor = s1
            });

            int savedCnt = sqLiteDbAccessor.SaveDacResult(r);

            Assert.AreEqual(1, savedCnt);
        }
        public void TestWind3DDataSerializer()
        {
            DACTaskResult r  = new DACTaskResult();
            var           s1 = NewSensor(ProtocolType.Wind_OSL, SafetyFactor.Wind3D);
            var           d  = new Wind2dData(5, 256)
            {
                ////AcqTime = DateTime.Now,
                //ResultCode = 0,
                //Sensor = s1
            };

            r.AddSensorResult(new SensorAcqResult
            {
                Data   = d,
                Sensor = s1
            });

            int savedCnt = sqLiteDbAccessor.SaveDacResult(r);

            Assert.AreEqual(1, savedCnt);
        }
        public void TestDeformationCrackJointDataSerializer()
        {
            DACTaskResult r  = new DACTaskResult();
            var           s1 = NewSensor(ProtocolType.LVDT_XW, SafetyFactor.DeformationCrackJoint);
            var           d  = new LVDTData(10, 5)
            {
                ////AcqTime = DateTime.Now,
                //ResultCode = 0,
                //Sensor = s1
            };

            r.AddSensorResult(new SensorAcqResult
            {
                Data   = d,
                Sensor = s1
            });

            int savedCnt = sqLiteDbAccessor.SaveDacResult(r);

            Assert.AreEqual(1, savedCnt);
        }
        public void TestDeformationSettlementGroupDataSerializer()
        {
            DACTaskResult r  = new DACTaskResult();
            var           s1 = NewSensor(ProtocolType.Pressure_MPM, SafetyFactor.SettlementGroup);
            var           d  = new PressureData(23, 23)
            {
                ////AcqTime = DateTime.Now,
                //ResultCode = 0,
                //Sensor = s1
            };

            r.AddSensorResult(new SensorAcqResult
            {
                Data   = d,
                Sensor = s1
            });

            int savedCnt = sqLiteDbAccessor.SaveDacResult(r);

            Assert.AreEqual(1, savedCnt);
        }
        public void TestDeepDisplacement2DataSerializer()
        {
            DACTaskResult r  = new DACTaskResult();
            var           s1 = NewSensor(ProtocolType.Inclinometer_OLD, SafetyFactor.DeformationDeepDisplacement);
            var           d  = new InclinationData(0.023, 0.232, 0.01, 0.02)
            {
                ////AcqTime = DateTime.Now,
                //ResultCode = 0,
                //Sensor = s1
            };

            r.AddSensorResult(new SensorAcqResult
            {
                Data   = d,
                Sensor = s1
            });

            int savedCnt = sqLiteDbAccessor.SaveDacResult(r);

            Assert.AreEqual(1, savedCnt);
        }
Exemple #9
0
        public void TestLogErrorData()
        {
            var r  = new DACTaskResult();
            var s1 = NewSensor(ProtocolType.Pressure_MPM, SafetyFactor.StressStrainPoreWaterPressure);

            s1.FactorTypeTable = "T_THEMES_STRESS_STRAIN_PORE_WATER_PRESSURE";
            var d = new PressureData(23, 23)
            {
                //AcqTime = DateTime.Now,
                //ResultCode = 0,
                //Sensor = s1
            };

            r.AddSensorResult(new SensorAcqResult
            {
                ErrorCode = (int)Errors.SUCCESS,
                Data      = d,
                Sensor    = s1
            });
            r.Finished = DateTime.Now;
            Assert.IsTrue(msDbAccessor.LogErrorData(r.SensorResults[0]));
        }
Exemple #10
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="source"></param>
        public void ProcessResult(DACTaskResult source)
        {
            if (source == null || source.SensorResults == null)
            {
                return;
            }
            Dictionary <string, ConfigInfo> configInfos = GetConfigInfos(source);

            foreach (var sensorResult in source.SensorResults)
            {
                //传感器的过滤类型
                if (SensorTypeFilter.Contains(sensorResult.Sensor.SensorType))
                {
                    var sensor = sensorResult.Sensor;
                    if (sensor == null || sensorResult.Data == null || sensorResult.Data.ThemeValues == null)
                    {
                        continue;
                    }
                    var sensorId = sensor.SensorID.ToString();
                    for (var i = 0; i < sensorResult.Data.ThemeValues.Count; i++)
                    {
                        var keyi           = sensorId + "-" + (i + 1).ToString();
                        var themeValue     = sensorResult.Data.ThemeValues[i];
                        var validateWindow = ValidateWindowses.ContainsKey(keyi) ? ValidateWindowses[keyi] : null;
                        var configInfo     = configInfos.ContainsKey(keyi) ? configInfos[keyi] : null;
                        RefreshValidatorWindows(validateWindow, configInfo, keyi);
                        if (themeValue != null && ValidateWindowses.ContainsKey(keyi)) //有配置信息,同时有窗口
                        {
                            var analysisValue = new AnalysisValue(Convert.ToDecimal(themeValue.Value));
                            //计算的过程中使用Decimal类型
                            ValidateWindowses[keyi].ProcessValue(analysisValue); //进行数据的验证
                            sensorResult.Data.ThemeValues[i] = analysisValue.IsValid
                                                                   ? Convert.ToDouble(analysisValue.RawValue)
                                                                   : Convert.ToDouble(analysisValue.ValidValue);
                        }
                    }
                }
            }
        }
        public void TestSettlementCalc_IncompleteAcqWithBase()
        {
            _dactask1    = Acq1(TID1);
            _dactask2    = Acq2(TID2);
            _sensorGroup = InitialSensorGroup();
            var calcMethod = typeof(FS.SMIS_Cloud.DAC.DataCalc.DataCalc).GetMethod("Calc",
                                                                                   BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Static);

            calcMethod.Invoke(null, new object[] { _dactask1, new SensorGroup[] { _sensorGroup } });
            Assert.AreEqual(2, _dactask1.SensorResults.Count);
            Assert.IsFalse(_dactask1.SensorResults[0].IsOK);
            Assert.IsFalse(_dactask1.SensorResults[1].IsOK);

            _sensorGroup = InitialSensorGroup();
            calcMethod.Invoke(null, new object[] { _dactask2, new SensorGroup[] { _sensorGroup } });
            Assert.AreEqual(3, _dactask2.SensorResults.Count);
            Assert.IsFalse(_dactask2.SensorResults[0].IsOK);
            Assert.IsTrue(_dactask2.SensorResults[1].IsOK);
            Assert.IsTrue(_dactask2.SensorResults[2].IsOK);
            Assert.AreEqual(0.0, _dactask2.SensorResults[1].Data.ThemeValues[0].Value, 0.000000001);
            Assert.AreEqual(-1.5, _dactask2.SensorResults[2].Data.ThemeValues[0].Value, 0.000000001);
        }
        public void TestTempSerializer()
        {
            var r  = new DACTaskResult();
            var s1 = NewSensor(ProtocolType.TempHumidity, SafetyFactor.Temp);
            var d  = new TempData(25.5)
            {
                //AcqTime = DateTime.Now,
                //ResultCode = 0,
                //Sensor = s1
            };

            r.AddSensorResult(new SensorAcqResult
            {
                Data         = d,
                Sensor       = s1,
                ResponseTime = DateTime.Now
            });

            int savedCnt = sqLiteDbAccessor.SaveDacResult(r);

            Assert.AreEqual(1, savedCnt);
        }
        public void TestStressStrainPoreWaterPressureDataSerializer()
        {
            DACTaskResult r  = new DACTaskResult();
            var           s1 = NewSensor(ProtocolType.Pressure_MPM, SafetyFactor.StressStrainPoreWaterPressure);
            var           d  = new PressureData(23, 23)
            {
                //AcqTime = DateTime.Now,
                //ResultCode = 0,
                //Sensor = s1
            };

            r.AddSensorResult(new SensorAcqResult
            {
                Data   = d,
                Sensor = s1
            });

            int savedCnt = sqLiteDbAccessor.SaveDacResult(r);

            Assert.AreEqual(1, savedCnt);

            DACTaskResult r2 = new DACTaskResult();
            var           s2 = NewSensor(ProtocolType.VibratingWire, SafetyFactor.StressStrainPoreWaterPressure);
            var           d2 = new VibratingWireData(1869, 25, 18, 18)
            {
                //AcqTime = DateTime.Now,
                //ResultCode = 0,
                //Sensor = s2
            };

            r2.AddSensorResult(new SensorAcqResult
            {
                Data   = d2,
                Sensor = s2
            });
            savedCnt = sqLiteDbAccessor.SaveDacResult(r2);
            Assert.AreEqual(1, savedCnt);
        }
Exemple #14
0
        public void TestTaskResult()
        {
            DACTaskResult r    = new DACTaskResult();
            DACTask       task = new DACTask();

            task.Status = DACTaskStatus.RUNNING;
            task.ID     = 3;
            task.DtuID  = 1;
            r.Task      = task;
            task.Status = DACTaskStatus.RUNNING;
            r.ErrorCode = 123;
            r.ErrorMsg  = "Hello error";
            r.Elapsed   = 321;
            r.Finished  = System.DateTime.Now;
            DbAccessorHelper.Init(new MsDbAccessor(connstr));
            Assert.IsTrue(DbAccessorHelper.DbAccessor.UpdateInstantTask(r) > 0);

            IList <DACTask> unfinished = DbAccessorHelper.DbAccessor.GetUnfinishedTasks(); //status=1/2
            DACTask         ti         = unfinished[0];

            Assert.AreEqual(ti.ID, 3);
            Assert.AreEqual(ti.Status, DACTaskStatus.RUNNING);
        }
        private DACTaskResult Acq2(string tid)
        {
            DACTaskResult res = new DACTaskResult()
            {
                Task = new DACTask()
                {
                    TID   = tid,
                    DtuID = 101
                }
            };

            res.AddSensorResult(new SensorAcqResult()
            {
                Sensor = new Sensor()
                {
                    SensorID = 3
                },
                Data      = new PressureData(0, 3.6),
                ErrorCode = 0
            });

            return(res);
        }
Exemple #16
0
        public void TestWaterLevelDataSerializer()
        {
            DACTaskResult r  = new DACTaskResult();
            var           s1 = NewSensor(ProtocolType.VibratingWire, SafetyFactor.WaterLevel);

            s1.FactorTypeTable = "T_THEMES_ENVI_WATER_LEVEL";
            var d = new VibratingWireData(1869, 25, 18, 100)
            {
                //AcqTime = DateTime.Now,
                //ResultCode = 0,
                //Sensor = s1
            };

            r.AddSensorResult(new SensorAcqResult
            {
                Data      = d,
                ErrorCode = (int)Errors.SUCCESS,
                Sensor    = s1
            });
            r.Finished = DateTime.Now;
            int savedCnt = msDbAccessor.SaveDacResult(r);

            Assert.AreEqual(1, savedCnt);
        }
Exemple #17
0
        public void ProcessResult(DACTaskResult rslt)
        {
            bool isOnline = false;

            if (this.service != null)
            {
                isOnline = this.service.GetDtuStatus(rslt.DtuCode);
            }
            Log.Info("EtDataStatusConsumer  start ...");
            foreach (SensorAcqResult sensorAcqResult in rslt.SensorResults)
            {
                Log.Debug("AddOrUpdateSensorStatus start ...");
                if (isOnline)
                {
                    this.AddOrUpdateSensorStatus(sensorAcqResult);
                }
                Log.Debug("AddOrUpdateSensorStatus end.");
                Log.DebugFormat("JudgeDataStatusIsOk start..");
                if (this.JudgeDataStatusIsOk(sensorAcqResult))
                {
                    Log.DebugFormat("JudgeDataStatusIsOk end.");
                    Log.DebugFormat("GetRangeByProductId start..");
                    var ranges = this.GetRangeByProductId(sensorAcqResult.Sensor.ProductId);
                    Log.DebugFormat("GetRangeByProductId end .");
                    Log.DebugFormat("JudgeDataOverRange start..");
                    var sb = this.JudgeDataOverRange(sensorAcqResult, ranges);
                    Log.DebugFormat("JudgeDataOverRange end.");
                    if (!string.IsNullOrEmpty(sb))
                    {
                        Log.InfoFormat("Sensor:{0} generate a OVER RANGE alarm:{1}, sending..", sensorAcqResult.Sensor.SensorID, sb);
                        this.SendDataOverRangeWarning(sensorAcqResult, sb);
                    }
                }
            }
            Log.Info("EtDataStatusConsumer  end .");
        }
Exemple #18
0
        public void TestSeepageDataSerializer()
        {
            var r  = new DACTaskResult();
            var s1 = NewSensor(ProtocolType.Pressure_MPM, SafetyFactor.Seepage);

            s1.FactorTypeTable = "T_THEMES_ENVI_SEEPAGE";
            var d = new SeepageData(23)
            {
                //AcqTime = DateTime.Now,
                //ResultCode = 0,
                //Sensor = s1
            };

            r.AddSensorResult(new SensorAcqResult
            {
                Data      = d,
                ErrorCode = (int)Errors.SUCCESS,
                Sensor    = s1
            });
            r.Finished = DateTime.Now;
            int savedCnt = msDbAccessor.SaveDacResult(r);

            Assert.AreEqual(0, savedCnt); // 插入一条记录
        }
Exemple #19
0
        public void TestVoltageDataSerializer()
        {
            DACTaskResult r  = new DACTaskResult();
            var           s1 = NewSensor(ProtocolType.Voltage, SafetyFactor.DeformationCrack);

            s1.FactorTypeTable = "T_THEMES_DEFORMATION_CRACK";
            var d = new VoltageData(0.2, 2.5)
            {
                //AcqTime = DateTime.Now,
                //ResultCode = 0,
                //Sensor = s1
            };

            r.AddSensorResult(new SensorAcqResult
            {
                Data      = d,
                ErrorCode = (int)Errors.SUCCESS,
                Sensor    = s1
            });
            r.Finished = DateTime.Now;
            int savedCnt = msDbAccessor.SaveDacResult(r);

            Assert.AreEqual(1, savedCnt);
        }
Exemple #20
0
        public void TestForceEarthPressureDataSerializer()
        {
            DACTaskResult r  = new DACTaskResult();
            var           s1 = NewSensor(ProtocolType.VibratingWire, SafetyFactor.ForceEarthPressure);

            s1.FactorTypeTable = "T_THEMES_FORCE_EARTH_PRESSURE";
            var d = new VibratingWireData(1869, 25, 18, 18)
            {
                //AcqTime = DateTime.Now,
                //ResultCode = 0,
                //Sensor = s1
            };

            r.AddSensorResult(new SensorAcqResult()
            {
                Data      = d,
                ErrorCode = (int)Errors.SUCCESS,
                Sensor    = s1
            });
            r.Finished = DateTime.Now;
            int savedCnt = msDbAccessor.SaveDacResult(r);

            Assert.AreEqual(1, savedCnt);
        }
Exemple #21
0
        public void TestDeformationBridgeDeflectionDataSerializer()
        {
            var r  = new DACTaskResult();
            var s1 = NewSensor(ProtocolType.Pressure_MPM, SafetyFactor.DeformationBridgeDeflection);

            s1.FactorTypeTable = "T_THEMES_DEFORMATION_SETTLEMENT";
            var d = new PressureData(23, 23)
            {
                //AcqTime = DateTime.Now,
                //ResultCode = 0,
                //Sensor = s1
            };

            r.AddSensorResult(new SensorAcqResult
            {
                Data      = d,
                ErrorCode = (int)Errors.SUCCESS,
                Sensor    = s1
            });
            r.Finished = DateTime.Now;
            int savedCnt = msDbAccessor.SaveDacResult(r);

            Assert.AreEqual(1, savedCnt);
        }
Exemple #22
0
        public void TestCableForceDataSerializer()
        {
            DACTaskResult r  = new DACTaskResult();
            var           s1 = NewSensor(ProtocolType.MagneticFlux, SafetyFactor.CableForce);

            s1.FactorTypeTable = "T_THEMES_CABLE_FORCE";
            var d = new MagneticFluxData(18.69, 25, 500)
            {
                //AcqTime = DateTime.Now,
                //ResultCode = 0,
                //Sensor = s1
            };

            r.AddSensorResult(new SensorAcqResult
            {
                ErrorCode = (int)Errors.SUCCESS,
                Data      = d,
                Sensor    = s1
            });
            r.Finished = DateTime.Now;
            int savedCnt = msDbAccessor.SaveDacResult(r);

            Assert.AreEqual(1, savedCnt);
        }
Exemple #23
0
        public void TestWind3DDataSerializer()
        {
            DACTaskResult r  = new DACTaskResult();
            var           s1 = NewSensor(ProtocolType.Wind_OSL, SafetyFactor.Wind3D);

            s1.FactorTypeTable = "T_THEMES_ENVI_WIND";
            var d = new Wind2dData(5, 256)
            {
                //AcqTime = DateTime.Now,
                //ResultCode = 0,
                //Sensor = s1
            };

            r.AddSensorResult(new SensorAcqResult
            {
                Data      = d,
                ErrorCode = (int)Errors.SUCCESS,
                Sensor    = s1
            });
            r.Finished = DateTime.Now;
            int savedCnt = msDbAccessor.SaveDacResult(r);

            Assert.AreEqual(1, savedCnt);
        }
Exemple #24
0
        public void TestRainfallDataSerializer()
        {
            DACTaskResult r  = new DACTaskResult();
            var           s1 = NewSensor(ProtocolType.RainFall, SafetyFactor.Rainfall);

            s1.FactorTypeTable = "T_THEMES_ENVI_RAINFALL";
            var d = new RainFallData(1.5)
            {
                //AcqTime = DateTime.Now,
                //ResultCode = 0,
                //Sensor = s1
            };

            r.AddSensorResult(new SensorAcqResult
            {
                ErrorCode = (int)Errors.SUCCESS,
                Data      = d,
                Sensor    = s1
            });
            r.Finished = DateTime.Now;
            int savedCnt = msDbAccessor.SaveDacResult(r);

            Assert.AreEqual(1, savedCnt);
        }
Exemple #25
0
        public void TestDeepDisplacement2DataSerializer()
        {
            DACTaskResult r  = new DACTaskResult();
            var           s1 = NewSensor(ProtocolType.Inclinometer_OLD, SafetyFactor.DeformationDeepDisplacement);

            s1.FactorTypeTable = "T_THEMES_DEFORMATION_DEEP_DISPLACEMENT";
            var d = new InclinationData(0.023, 0.232, 0.01, 0.02)
            {
                //AcqTime = DateTime.Now,
                //ResultCode = 0,
                //Sensor = s1
            };

            r.AddSensorResult(new SensorAcqResult
            {
                ErrorCode = (int)Errors.SUCCESS,
                Data      = d,
                Sensor    = s1
            });
            r.Finished = DateTime.Now;
            int savedCnt = msDbAccessor.SaveDacResult(r);

            Assert.AreEqual(1, savedCnt);
        }
Exemple #26
0
 public void ProcessResult(DACTaskResult source)
 {
     throw new Exception("error");
 }
Exemple #27
0
 public void ProcessResult(DACTaskResult source)
 {
     Thread.Sleep(100);
     source.ErrorMsg += "C---3";
     Console.WriteLine("C---3:{0},rslt.msg:{1}", ++count, source.ErrorMsg);
 }
Exemple #28
0
        /// <summary>
        /// 分析采集数据
        /// </summary>
        /// <param name="rslt"></param>
        public void ProcessResult(DACTaskResult rslt)
        {
            Log.Info("DataAnalyzer has recieved DACTaskResult, starts to analyze..");
            int count = 0;

            if (rslt.IsOK)
            {
                var sens       = rslt.SensorResults.Select(s => s.Sensor.SensorID);
                var thresholds = this.GetSensorThreshold(sens); // 所有传感器阈值
                foreach (var sensorResult in rslt.SensorResults)
                {
                    if (sensorResult.IsOK && sensorResult.Data != null && sensorResult.ErrorCode == 0)
                    {
                        var sensor = sensorResult.Sensor;

                        var analyzingData = this.GetAnalyzingData(sensorResult);

                        if (analyzingData.Data == null || analyzingData.Data.Any(d => d == null))
                        {
                            Log.WarnFormat(
                                "data:[{0}] not meet the Analyze's condition",
                                sensorResult.Data.ThemeValues == null
                                    ? null
                                    : string.Join(",", sensorResult.Data.ThemeValues));
                            continue;
                        }

                        var sensorThreshold = thresholds.Where(s => s.SensorId == sensor.SensorID).ToList();
                        // 当前传感器阈值

                        var sensorAnalyzeResult = this.AnalyzeSensorData(analyzingData, sensorThreshold);

                        // 添加到整体评分集合
                        GradingSet.Add(sensor, sensorAnalyzeResult);
                        // 发送阈值告警
                        if (sensorAnalyzeResult.ThresholdAlarm != null &&
                            sensorAnalyzeResult.ThresholdAlarm.AlarmDetails.Any())
                        {
                            try
                            {
                                Log.InfoFormat(
                                    "Sensor:{0} generate a OVER THRESHOLD alarm, sending..",
                                    sensor.SensorID);
                                WarningHelper.SendWarning(
                                    (int)sensor.SensorID,
                                    (int)sensor.StructId,
                                    sensorAnalyzeResult.ThresholdAlarm);
                                Log.InfoFormat("Sensor:{0} alarm send success", sensor.SensorID);
                            }
                            catch (Exception e)
                            {
                                Log.ErrorFormat("Sensor:{0} alarm send error", e, sensor.SensorID);
                            }
                        }

                        count++;
                    }
                }
            }
            Log.InfoFormat("Data Analyzed, success:{0}", count);
        }
Exemple #29
0
        /// <summary>
        /// 获取传感器的异常数据处理配置信息
        /// </summary>
        /// <param name="source">传感器采集信息</param>
        /// <returns>相应传感器的异常数据处理配置信息</returns>
        private Dictionary <string, ConfigInfo> GetConfigInfos(DACTaskResult source)
        {
            var configInfos = new Dictionary <string, ConfigInfo>();

            if (source != null && source.SensorResults != null)
            {
                List <uint> sensorIdList =
                    source.SensorResults.Select(sensorResult => sensorResult.Sensor.SensorID).ToList();
                if (sensorIdList.Count > 0)
                {
                    try
                    {
                        string     cs        = ConfigurationManager.AppSettings["SecureCloud"];
                        ISqlHelper sqlHelper = SqlHelperFactory.Create(DbType.MSSQL, cs);

                        string    sql = string.Format(@"
select [ItemId] as factorId,
       [Enabled] as isValitor,
       [WindowSize] as windowSize,
       [KT] as KThreshold,
       [DT] as DiscreteThreshold,
       [RT] as ReCalcRValueThreshold,
       [SensorId] as SensorId,
       [NeedLog] as NeedLog
from[T_DATA_STABLE_FILTER_CONFIG] 
where SensorId in ({0})", string.Join(",", sensorIdList.ToArray()));
                        DataTable dt  = sqlHelper.Query(sql).Tables[0];
                        foreach (DataRow item in dt.Rows)
                        {
                            var sensorId = item[6];
                            var keyi     = sensorId + "-" + (item[0]).ToString();

                            if (item[2] == DBNull.Value || item[3] == DBNull.Value || item[4] == DBNull.Value ||
                                item[5] == DBNull.Value)
                            {
                                continue; //有一个数据为空,整条记录无效
                            }

                            if (!configInfos.ContainsKey(keyi))
                            {
                                var values = new ConfigInfo();
                                configInfos.Add(keyi, values);
                            }

                            configInfos[keyi].IsOpenWindow          = Convert.ToBoolean(item[1]);
                            configInfos[keyi].WindowSize            = Convert.ToInt32(item[2]);
                            configInfos[keyi].KThreshold            = Convert.ToDecimal(item[3]);
                            configInfos[keyi].DiscreteThreshold     = Convert.ToInt32(item[4]);
                            configInfos[keyi].ReCalcRValueThreshold = Convert.ToInt32(item[5]);
                            configInfos[keyi].NeedLog    = Convert.ToBoolean(item[7]);
                            configInfos[keyi].SensorId   = Convert.ToInt32(item[6]);
                            configInfos[keyi].ValueIndex = Convert.ToInt32(item[0]);
                        }
                    }
                    catch (Exception e)
                    {
                    }
                }
            }
            return(configInfos);
        }
Exemple #30
0
 public void ProcessResult(DACTaskResult source)
 {
     _logger.Info("DataCalc has recieved DACTaskResult, starts to calculate..");
     StartCalc(source);
 }