private async Task <AggregatedSensorReadings> ReadAsync() { var data = new AggregatedSensorReadings(); await ReadTemperature(data); await ReadCO2(data); data.ReadingTime = DateTimeOffset.UtcNow; return(data); }
private async Task ReadCO2(AggregatedSensorReadings data) { foreach (var reader in co2Readers) { if (!reader.IsInitialized) { continue; } var readings = await reader.ReadAsync(); if (readings != null) { data.CO2.Add(readings); } } }
private async Task ReadTemperature(AggregatedSensorReadings data) { foreach (var reader in temperatureReaders) { if (!reader.IsInitialized) { continue; } var readings = await reader.ReadAsync(); if (readings != null) { data.Temperature.Add(readings); } } }
private void PrintReadings(AggregatedSensorReadings data) { string line = string.Empty; foreach (var temp in data.Temperature) { line += $"{temp.Source} Sensor: "; if (temp.Temperature != null) { line += $"Temperature: {temp.Temperature}; "; } if (temp.Humidity != null) { line += $"Humidity: {temp.Humidity} %; "; } if (temp.Pressure != null) { line += $"Humidity: {temp.Pressure} Pa; "; } SensorDataList.Items.Add(line); } foreach (var temp in data.CO2) { line += $"{temp.Source} Sensor: "; SensorDataList.Items.Add(line); } if (SensorDataList.Items.Count > 1000) { SensorDataList.Items.RemoveAt(0); } }
public Task SendAsync(AggregatedSensorReadings readings) { var message = new Message(Encoding.ASCII.GetBytes(JsonConvert.SerializeObject(readings))); return(deviceClient.SendEventAsync(message)); }