public IEnumerable <Measurement> SplitSenseHatMeasurement(SenseHatMeasurement senseHatMeasurement) { if (senseHatMeasurement != null) { if (senseHatMeasurement.humidityValueValid) { yield return(new Measurement(senseHatMeasurement.humidityValue, MeasurementType.humidity)); } if (senseHatMeasurement.pressureValueValid) { yield return(new Measurement(senseHatMeasurement.pressureValue, MeasurementType.pressure)); } if (senseHatMeasurement.humidityTemperatureValueValid) { yield return(new Measurement(senseHatMeasurement.humidityTemperatureValue, MeasurementType.temperature_humidity)); } if (senseHatMeasurement.pressureTemperatureValueValid) { yield return(new Measurement(senseHatMeasurement.pressureTemperatureValue, MeasurementType.temperature_pressure)); } } }
public SenseHatMeasurement Measure() { SenseHatMeasurement senseHatMeasurement = null; try { using (var settings = RTIMUSettings.CreateDefault()) using (var pressure = settings.CreatePressure()) using (var humidity = settings.CreateHumidity()) { RTPressureData pressureReadResult = pressure.Read(); _logger.LogInformation($"Pressure valid: {pressureReadResult.PressureValid}"); _logger.LogInformation($"Pressure: {pressureReadResult.Pressure}"); _logger.LogInformation($"Temperature valid: {pressureReadResult.TemperatureValid}"); _logger.LogInformation($"Temperature: {pressureReadResult.Temperatur}"); RTHumidityData humidityReadResult = humidity.Read(); _logger.LogInformation($"Humidity valid: {humidityReadResult.HumidityValid}"); _logger.LogInformation($"Humidity: {humidityReadResult.Humidity}"); _logger.LogInformation($"Temperature valid: {humidityReadResult.TemperatureValid}"); _logger.LogInformation($"Temperature: {humidityReadResult.Temperatur}"); senseHatMeasurement = new SenseHatMeasurement(pressureReadResult, humidityReadResult); } } catch (Exception ex) { _logger.LogError(ex.Message); } return(senseHatMeasurement); }
public async Task SaveAsync(SenseHatMeasurement senseHatMeasurement) { var measurements = SplitSenseHatMeasurement(senseHatMeasurement); foreach (var measurement in measurements) { await _measurementRepository.AddAsync(measurement); } }