Exemple #1
0
        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();
            }
        }
Exemple #2
0
 /// <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
     });
 }
Exemple #3
0
 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))));
 }
Exemple #4
0
        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;
 }
Exemple #6
0
 set => SetValue(SensorProperty, value);
Exemple #7
0
 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());
 }
Exemple #8
0
        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)));
        }
Exemple #9
0
 /// <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)));
 }
Exemple #10
0
 private async Task <List <MeteringSensorValueRelationDAO> > Filter(string terminalId, SensorProperty prop, DateTime start,
                                                                    DateTime end)
 {
     return(await FilterQuery(start, end, terminalId, prop).ToListAsync());
 }