/ firmware / include / manager.h
manager.h
 1  #pragma once
 2  
 3  #include "sensors/barometric_pressure.h"
 4  #include "sensors/carbon_dioxide.h"
 5  #include "sensors/current.h"
 6  #include "sensors/soil.h"
 7  #include "sensors/solar_radiation.h"
 8  #include "sensors/temperature_and_humidity.h"
 9  #include "sensors/voltage.h"
10  #include "sensors/wind_direction.h"
11  #include "sensors/wind_speed.h"
12  
13  struct SensorInventorySnapshot {
14    uint8_t temperature_humidity_count;
15    uint8_t soil_probe_count;
16    bool voltage_available;
17    bool current_available;
18    bool carbon_dioxide_available;
19    bool wind_speed_available;
20    bool wind_direction_available;
21    bool solar_radiation_available;
22    bool barometric_pressure_available;
23  };
24  
25  namespace sensors::manager {
26  
27  void initialize();
28  bool accessInventory(SensorInventorySnapshot *snapshot);
29  bool accessCO2(CO2SensorData *sensor_data);
30  bool accessVoltage(VoltageSensorData *sensor_data);
31  bool accessCurrent(CurrentSensorData *sensor_data);
32  bool accessWindSpeed(WindSpeedSensorData *sensor_data);
33  bool accessWindDirection(WindDirectionSensorData *sensor_data);
34  bool accessSolarRadiation(SolarRadiationSensorData *sensor_data);
35  bool accessSoil(uint8_t index, SoilSensorData *sensor_data);
36  bool accessTemperatureHumidity(uint8_t index,
37                                 TemperatureHumiditySensorData *sensor_data);
38  bool accessBarometricPressure(BarometricPressureSensorData *sensor_data);
39  
40  }
41