public static VideoCaptureProperty TranslateSensorProperty(SensorProperty property) { switch (property) { case SensorProperty.FrameWidth: return(VideoCaptureProperty.FrameWidth); case SensorProperty.FrameHeight: return(VideoCaptureProperty.FrameHeight); case SensorProperty.FrameRate: return(VideoCaptureProperty.FrameRate); case SensorProperty.Brightness: return(VideoCaptureProperty.Brightness); case SensorProperty.Gain: return(VideoCaptureProperty.Gain); case SensorProperty.Contrast: throw new ArgumentException(); case SensorProperty.Exposure: return(VideoCaptureProperty.Exposure); default: throw new ArgumentException(); } }
/// <summary> /// Convert a <see cref="SensorProperty"/> to its view model. /// </summary> /// <param name="appSensorProperty">The sensor property.</param> /// <returns>A view model of the sensor property.</returns> public static SensorPropertyViewModel ToViewModel(this SensorProperty appSensorProperty) { return(new SensorPropertyViewModel() { Name = appSensorProperty.Name, Value = appSensorProperty.Value }); }
public async Task <double> GetSumPropertyValue(string terminalId, SensorProperty prop, DateTime start, DateTime end) { // Try cast to double if (typeof(double).IsAssignableFrom(prop.TypeOfValue)) { return ((await Filter(terminalId, prop, start, end)).Sum( selector => (double)DAOHelper.ByteArrayToObject(prop.TypeOfValue, selector.SensorValue.Value))); } // Try convert to double return((await Filter(terminalId, prop, start, end)) .Sum(selector => Convert.ToDouble(DAOHelper.ByteArrayToObject(prop.TypeOfValue, selector.SensorValue.Value)))); }
private IQueryable <MeteringSensorValueRelationDAO> FilterQuery( DateTime start, DateTime end, string terminalId = null, SensorProperty prop = null) { var res = _context.MeteringSensorRelations .Include(x => x.Metering) .Where(x => x.Metering.Time <end && x.Metering.Time> start); if (prop != null) { res = res.Where(x => x.PropertyName == prop.Name); } if (terminalId != null) { res = res.Where(x => x.Metering.TerminalId == terminalId); } return(res.Include(x => x.SensorValue)); }
public SensorValueViewModel(SensorProperty prop, object val) { _property = prop; _val = val; }
set => SetValue(SensorProperty, value);
public async Task <List <Metering> > GetMeterings(string terminalId, DateTime start, DateTime end, SensorProperty prop) { return((await FilterQuery(start, end, terminalId, prop) .OrderBy(x => x.Metering.Time) .ToListAsync()) .Select(x => new Metering() { TerminalId = x.Metering.TerminalId, Longitude = x.Metering.Longitude, Latitude = x.Metering.Latitude, Time = x.Metering.Time, SensorValues = new PropertiesCollection(new [] { new KeyValuePair <Property, object>( DynamicPropertyManagers.Sensors.GetProperty(prop.Name), DAOHelper.ByteArrayToObject(prop.TypeOfValue, x.SensorValue.Value)), }) }) .ToList()); }
public async Task <double> GetLastFirstDifferencePropertyValue(string terminalId, SensorProperty prop, DateTime start, DateTime end) { var fltr = FilterQuery(start, end, terminalId, prop); if (!fltr.Any()) { return(0); } var first = fltr.OrderBy(x => x.Metering.Time).First(); var last = fltr.OrderByDescending(x => x.Metering.Time).First(); // Try cast to double if (typeof(double).IsAssignableFrom(prop.TypeOfValue)) { return ((double)DAOHelper.ByteArrayToObject(prop.TypeOfValue, last.SensorValue.Value) - (double)DAOHelper.ByteArrayToObject(prop.TypeOfValue, first.SensorValue.Value)); } // Try convert to double return (Convert.ToDouble(DAOHelper.ByteArrayToObject(prop.TypeOfValue, last.SensorValue.Value)) - Convert.ToDouble(DAOHelper.ByteArrayToObject(prop.TypeOfValue, first.SensorValue.Value))); }
/// <inheritdoc /> public async Task <object> GetMaxPropertyValue(string terminalId, SensorProperty prop, DateTime start, DateTime end) { return((await Filter(terminalId, prop, start, end)).Max(selector => DAOHelper.ByteArrayToObject(prop.TypeOfValue, selector.SensorValue.Value))); }
private async Task <List <MeteringSensorValueRelationDAO> > Filter(string terminalId, SensorProperty prop, DateTime start, DateTime end) { return(await FilterQuery(start, end, terminalId, prop).ToListAsync()); }