Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- if (processingOptions.OptimizeMeasurementStoring)
- {
- var delta = processingOptions.OptimizeMeasurementStoringThreshold;
- var externalInterface = componentInterfaceService.GetAllExternalInterfaces().FirstOrDefault(m => m.GetType().Equals(typeof(CarMediaLabExternalInterface)));
- if(externalInterface != null)
- {
- CarMediaLabExternalInterface carmediaInterface = externalInterface as CarMediaLabExternalInterface;
- if(carmediaInterface.VehicleDistanceXMLName.Equals(measurementType.Name))
- {
- AddMessageMeasurementToComponent(component, message, measurementType);
- return ;
- }
- }
- logger.InfoFormat("Optimize measurement storing is enabled.");
- var recentMeasurements = component.Measurements.Where(m => m.MeasurementTypeId == measurementType.MeasurementTypeId).OrderByDescending(m => m.MeasurementTime);
- if (recentMeasurements.Any())
- {
- var currentValue = message.MeasurementValue.Value;
- var last = recentMeasurements.First();
- if (recentMeasurements.Count() < 2)
- {
- if (IsInside(currentValue, last.MeasurementValue, delta))
- {
- message.MeasurementValue = last.MeasurementValue;
- }
- }
- else
- {
- // Reduction of data volume (optimization)
- var secondLast = recentMeasurements.Skip(1).First();
- if (IsInside(currentValue, last.MeasurementValue, delta))
- {
- message.MeasurementValue = last.MeasurementValue;
- if (secondLast.MeasurementValue == last.MeasurementValue)
- {
- component.Measurements.Remove(last);
- if (!last.IsNew)
- {
- adapter.DeleteEntity(last);
- }
- }
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement