示例#1
0
        public double ApplyTo(AnalyticStatisticsValue statisticsValue)
        {
            double value = statisticsValue.Value;

            if (value < atom.MaxOptimal &&
                value > atom.MinOptimal)
            {
                return(10);
            }
            if (value == atom.MaxOptimal ||
                value == atom.MinOptimal)
            {
                return(9);
            }
            if (value == atom.MinAcceptable ||
                value == atom.MaxAcceptable)
            {
                return(2);
            }
            if (value > atom.MaxAcceptable ||
                value < atom.MinAcceptable)
            {
                return(1);
            }
            return(GetDifferentialMark(value));
        }
        public AnalyticStatisticsItem Get(PsaParametersSet set,
                                          DateTime sourceDataCaptureDateTime)
        {
            AnalyticStatisticsItem result = new AnalyticStatisticsItem(Type,
                                                                       VehicleInfo.Engine.Family.Type, VehicleInfo.Engine.Type);
            PsaParameterData rpmData     = set.GetParameterOfType(PsaParameterType.EngineRpm);
            PsaParameterData voltageData = GetRequiredDependentData(set);

            if (rpmData == null || voltageData == null)
            {
                throw new Exception("set does not fit.");
            }
            CorrelatedMedianExtractor extractor = new CorrelatedMedianExtractor(
                rpmData.GetDoubles(), voltageData.GetDoubles(),
                RpmCorrelationThresholdPercentage);
            double doubleValue = extractor.GetForBaseValue(Convert.ToDouble(TargetRpm));

            if (!double.IsNaN(doubleValue))
            {
                AnalyticStatisticsValue value =
                    new AnalyticStatisticsValue(doubleValue, info.Vin, set.Id,
                                                sourceDataCaptureDateTime);
                result.Values.Add(value);
            }
            return(result);
        }
        public double ApplyTo(AnalyticStatisticsValue statisticsValue)
        {
            double value  = statisticsValue.Value;
            double module = Math.Abs(value);

            if (module > atom.MinOptimal &&
                module < atom.MaxOptimal)
            {
                return(10);
            }
            if (module.Equals(atom.MinOptimal) ||
                module.Equals(atom.MaxOptimal))
            {
                return(9);
            }
            if (module.Equals(atom.MaxAcceptable))
            {
                return(2);
            }
            if (module > atom.MaxAcceptable)
            {
                return(1);
            }
            return(GetDifferentialMark(module));
        }
示例#4
0
 public EvaluationMark(
     AnalyticRuleSettings ruleSettings,
     AnalyticStatisticsValue statisticsValue)
 {
     this.ruleSettings    = ruleSettings;
     this.statisticsValue = statisticsValue;
     CalculateValue();
 }
示例#5
0
        public static AnalyticStatisticsValue FromDtoToDomainObject(
            AnalyticStatisticsValueDto source)
        {
            AnalyticStatisticsValue target = new AnalyticStatisticsValue(
                source.Value, source.SourceVin, source.SourcePsaParametersSetId,
                source.SourceDataCaptureDateTime);

            target.Id = source.Id;
            target.AnalyticStatisticsItemId = source.AnalyticStatisticsItemId;
            return(target);
        }
示例#6
0
        public static AnalyticStatisticsValueDto FromDomainObjectToDto(AnalyticStatisticsValue source)
        {
            AnalyticStatisticsValueDto target = new AnalyticStatisticsValueDto();

            target.Id = source.Id;
            target.AnalyticStatisticsItemId  = source.AnalyticStatisticsItemId;
            target.SourceDataCaptureDateTime = source.SourceDataCaptureDateTime;
            target.SourcePsaParametersSetId  = source.SourcePsaParametersSetId;
            target.SourceVin = source.SourceVin;
            target.Value     = source.Value;
            return(target);
        }
示例#7
0
        public AnalyticStatisticsItem Get(PsaParametersSet set, DateTime sourceDataCapturetime)
        {
            AnalyticStatisticsItem result = new AnalyticStatisticsItem(
                AnalyticRuleType.InjectionTimeStartupPeak,
                info.Engine.Family.Type, info.Engine.Type);
            IList <double>        rpmData  = set.GetParameterOfType(PsaParameterType.EngineRpm).GetDoubles();
            IList <double>        reqData  = set.GetParameterOfType(PsaParameterType.InjectionTime).GetDoubles();
            EngineStartupDetector detectro = new EngineStartupDetector(rpmData);

            if (detectro.EngineStartupDetected())
            {
                IList <int> startupIndexes = detectro.GetEngineStartupPointIndexes();
                foreach (int startupIndex in startupIndexes)
                {
                    AnalyticStatisticsValue value =
                        new AnalyticStatisticsValue(
                            StartupRegionExtractor.Extract(startupIndex, reqData).Max(),
                            info.Vin, set.Id, sourceDataCapturetime);
                    result.Values.Add(value);
                }
            }
            return(result);
        }
示例#8
0
 public AnalyticStatisticsValueViewModel(AnalyticStatisticsValue model)
 {
     this.model = model;
 }