carbon_dioxide.h
1 #pragma once 2 #include <stdbool.h> 3 #include <stdint.h> 4 5 struct CO2SensorData { 6 float co2_ppm; 7 float temperature_celsius; 8 float relative_humidity_percent; 9 const char *model; 10 bool ok; 11 }; 12 13 struct Co2Config { 14 const char *model; 15 bool measuring; 16 uint16_t measurement_interval_seconds; 17 bool auto_calibration_enabled; 18 float temperature_offset_celsius; 19 uint16_t altitude_meters; 20 }; 21 22 namespace sensors::carbon_dioxide { 23 24 bool initialize(); 25 bool access(CO2SensorData *sensor_data); 26 bool accessConfig(Co2Config *config); 27 bool isAvailable(); 28 bool enable(); 29 bool disable(); 30 bool configureInterval(uint16_t seconds); 31 bool configureAutoCalibration(bool enabled); 32 bool configureTemperatureOffset(float celsius); 33 bool configureAltitude(uint16_t meters); 34 bool configureRecalibration(uint16_t co2_reference_ppm); 35 36 #ifdef PIO_UNIT_TESTING 37 void test(); 38 #endif 39 40 } 41