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);
                }
            }
        }
Example #4
0
        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);
            }
        }
Example #5
0
        public Task SendAsync(AggregatedSensorReadings readings)
        {
            var message = new Message(Encoding.ASCII.GetBytes(JsonConvert.SerializeObject(readings)));

            return(deviceClient.SendEventAsync(message));
        }