M5Unit-ENV 1.2.1 git rev:ad1926a
Loading...
Searching...
No Matches
m5::unit::UnitSCD41 Class Reference

SCD41 unit component. More...

#include <unit_SCD41.hpp>

Inheritance diagram for m5::unit::UnitSCD41:
m5::unit::UnitSCD40

Public Member Functions

 UnitSCD41 (const uint8_t addr=DEFAULT_ADDRESS)
 
Single Shot Measurement Mode
bool measureSingleshot (scd4x::Data &d)
 Request a single measurement.
 
bool measureSingleshotRHT (scd4x::Data &d)
 Request a single measurement temperature and humidity.
 
Power mode
bool powerDown (const uint32_t duration=scd41::POWER_DOWN_DURATION)
 Power down.
 
bool wakeup ()
 Wake up.
 
For ASC(Auto Self-Calibration)
bool writeAutomaticSelfCalibrationInitialPeriod (const uint16_t hours, const uint32_t duration=scd41::SET_AUTOMATIC_SELF_CALIBRATION_INITIAL_PERIOD_DURATION)
 Write the duration of the initial period for ASC correction.
 
bool readAutomaticSelfCalibrationInitialPeriod (uint16_t &hours)
 Read the duration of the initial period for ASC correction.
 
bool writeAutomaticSelfCalibrationStandardPeriod (const uint16_t hours, const uint32_t duration=scd41::SET_AUTOMATIC_SELF_CALIBRATION_STANDARD_PERIOD_DURATION)
 Write the standard period for ASC correction.
 
bool readAutomaticSelfCalibrationStandardPeriod (uint16_t &hours)
 Red the standard period for ASC correction.
 
- Public Member Functions inherited from m5::unit::UnitSCD40
 UnitSCD40 (const uint8_t addr=DEFAULT_ADDRESS)
 
virtual bool begin () override
 
virtual void update (const bool force=false) override
 
config_t config () const
 Gets the configration.
 
void config (const config_t &cfg)
 Set the configration.
 
uint16_t co2 () const
 Oldest measured CO2 concentration (ppm)
 
float temperature () const
 Oldest measured temperature (Celsius)
 
float celsius () const
 Oldest measured temperature (Celsius)
 
float fahrenheit () const
 Oldest measured temperature (Fahrenheit)
 
float humidity () const
 Oldest measured humidity (RH)
 
bool startPeriodicMeasurement (const scd4x::Mode mode=scd4x::Mode::Normal)
 Start periodic measurement.
 
bool startLowPowerPeriodicMeasurement ()
 Start low power periodic measurement.
 
bool stopPeriodicMeasurement (const uint32_t duration=scd4x::STOP_PERIODIC_MEASUREMENT_DURATION)
 Stop periodic measurement.
 
bool writeTemperatureOffset (const float offset, const uint32_t duration=scd4x::SET_TEMPERATURE_OFFSET_DURATION)
 Write the temperature offset.
 
bool readTemperatureOffset (float &offset)
 Read the temperature offset.
 
bool writeSensorAltitude (const uint16_t altitude, const uint32_t duration=scd4x::SET_SENSOR_ALTITUDE_DURATION)
 Write the sensor altitude.
 
bool readSensorAltitude (uint16_t &altitude)
 Read the sensor altitude.
 
bool writeAmbientPressure (const uint16_t pressure, const uint32_t duration=scd4x::SET_AMBIENT_PRESSURE_DURATION)
 Write the ambient pressure.
 
bool readAmbientPressure (uint16_t &pressure)
 Read the ambient pressure.
 
bool performForcedRecalibration (const uint16_t concentration, int16_t &correction)
 Perform forced recalibration.
 
bool writeAutomaticSelfCalibrationEnabled (const bool enabled=true, const uint32_t duration=scd4x::SET_AUTOMATIC_SELF_CALIBRATION_ENABLED_DURATION)
 Enable/disable automatic self calibration.
 
bool readAutomaticSelfCalibrationEnabled (bool &enabled)
 Check if automatic self calibration is enabled.
 
bool writeAutomaticSelfCalibrationTarget (const uint16_t ppm, const uint32_t duration=scd4x::SET_AUTOMATIC_SELF_CALIBRATION_TARGET_DURATION)
 Write the value of the ASC baseline target.
 
bool readAutomaticSelfCalibrationTarget (uint16_t &ppm)
 Read the value of the ASC baseline target.
 
bool writePersistSettings (const uint32_t duration=scd4x::PERSIST_SETTINGS_DURATION)
 Write sensor settings from RAM to EEPROM.
 
bool readSerialNumber (char *serialNumber)
 Read the serial number string.
 
bool readSerialNumber (uint64_t &serialNumber)
 Read the serial number value.
 
bool performSelfTest (bool &malfunction)
 Perform self test.
 
bool performFactoryReset (const uint32_t duration=scd4x::PERFORM_FACTORY_RESET_DURATION)
 Peform factory reset.
 
bool reInit (const uint32_t duration=scd4x::REINIT_DURATION)
 Re-initialize the sensor, load settings from EEPROM.
 

Protected Member Functions

virtual bool is_valid_chip () override
 
- Protected Member Functions inherited from m5::unit::UnitSCD40
bool read_register (const uint16_t reg, uint8_t *rbuf, const uint32_t rlen, const uint32_t duration=1)
 
bool write_register (const uint16_t reg, uint8_t *wbuf, const uint32_t wlen)
 
bool start_periodic_measurement (const scd4x::Mode mode=scd4x::Mode::Normal)
 
bool stop_periodic_measurement (const uint32_t duration=scd4x::STOP_PERIODIC_MEASUREMENT_DURATION)
 
bool read_data_ready_status ()
 
bool read_measurement (scd4x::Data &d, const bool all=true)
 
bool delay_true (const uint32_t duration)
 
 M5_UNIT_COMPONENT_PERIODIC_MEASUREMENT_ADAPTER_HPP_BUILDER (UnitSCD40, scd4x::Data)
 

Additional Inherited Members

- Protected Attributes inherited from m5::unit::UnitSCD40
std::unique_ptr< m5::container::CircularBuffer< scd4x::Data > > _data {}
 
config_t _cfg {}
 

Detailed Description

SCD41 unit component.

Member Function Documentation

◆ is_valid_chip()

bool m5::unit::UnitSCD41::is_valid_chip ( )
overrideprotectedvirtual

Reimplemented from m5::unit::UnitSCD40.

◆ measureSingleshot()

bool m5::unit::UnitSCD41::measureSingleshot ( scd4x::Data & d)

Request a single measurement.

Parameters
[out]dMeasurement data
Returns
True if successful
Note
Blocked until measurement results are acquired (5000 ms)
Warning
During periodic detection runs, an error is returned

◆ measureSingleshotRHT()

bool m5::unit::UnitSCD41::measureSingleshotRHT ( scd4x::Data & d)

Request a single measurement temperature and humidity.

Parameters
[out]dMeasurement data
Returns
True if successful
Note
Values are updated at 50 ms interval
Blocked until measurement results are acquired (50 ms)
Warning
Information on CO2 is invalid.
During periodic detection runs, an error is returned

◆ powerDown()

bool m5::unit::UnitSCD41::powerDown ( const uint32_t duration = scd41::POWER_DOWN_DURATION)

Power down.

The sensor into sleep mode

Parameters
durationMax command duration(ms)
Returns
True if successful
Warning
During periodic detection runs, an error is returned

◆ readAutomaticSelfCalibrationInitialPeriod()

bool m5::unit::UnitSCD41::readAutomaticSelfCalibrationInitialPeriod ( uint16_t & hours)

Read the duration of the initial period for ASC correction.

Parameters
[out]hoursASC initial period
durationMax command duration(ms)
Returns
True if successful
Warning
During periodic detection runs, an error is returned

◆ readAutomaticSelfCalibrationStandardPeriod()

bool m5::unit::UnitSCD41::readAutomaticSelfCalibrationStandardPeriod ( uint16_t & hours)

Red the standard period for ASC correction.

Parameters
[iut]hours ASC standard period
Returns
True if successful
Warning
During periodic detection runs, an error is returned
Allowed values are integer multiples of 4 hours

◆ wakeup()

bool m5::unit::UnitSCD41::wakeup ( )

Wake up.

The sensor from sleep mode into idle mode

Parameters
durationMax command duration(ms)
Returns
True if successful
Warning
During periodic detection runs, an error is returned

◆ writeAutomaticSelfCalibrationInitialPeriod()

bool m5::unit::UnitSCD41::writeAutomaticSelfCalibrationInitialPeriod ( const uint16_t hours,
const uint32_t duration = scd41::SET_AUTOMATIC_SELF_CALIBRATION_INITIAL_PERIOD_DURATION )

Write the duration of the initial period for ASC correction.

Parameters
hoursASC initial period
durationMax command duration(ms)
Returns
True if successful
Warning
During periodic detection runs, an error is returned
Allowed values are integer multiples of 4 hours

◆ writeAutomaticSelfCalibrationStandardPeriod()

bool m5::unit::UnitSCD41::writeAutomaticSelfCalibrationStandardPeriod ( const uint16_t hours,
const uint32_t duration = scd41::SET_AUTOMATIC_SELF_CALIBRATION_STANDARD_PERIOD_DURATION )

Write the standard period for ASC correction.

Parameters
hoursASC standard period
durationMax command duration(ms)
Returns
True if successful
Warning
During periodic detection runs, an error is returned
Allowed values are integer multiples of 4 hours