143#define DRIVER_SCD30_LINK_INIT(HANDLE, STRUCTURE) memset(HANDLE, 0, sizeof(STRUCTURE))
151#define DRIVER_SCD30_LINK_UART_INIT(HANDLE, FUC) (HANDLE)->uart_init = FUC
159#define DRIVER_SCD30_LINK_UART_DEINIT(HANDLE, FUC) (HANDLE)->uart_deinit = FUC
167#define DRIVER_SCD30_LINK_UART_READ(HANDLE, FUC) (HANDLE)->uart_read = FUC
175#define DRIVER_SCD30_LINK_UART_WRITE(HANDLE, FUC) (HANDLE)->uart_write = FUC
183#define DRIVER_SCD30_LINK_UART_FLUSH(HANDLE, FUC) (HANDLE)->uart_flush = FUC
191#define DRIVER_SCD30_LINK_IIC_INIT(HANDLE, FUC) (HANDLE)->iic_init = FUC
199#define DRIVER_SCD30_LINK_IIC_DEINIT(HANDLE, FUC) (HANDLE)->iic_deinit = FUC
207#define DRIVER_SCD30_LINK_IIC_WRITE_COMMAND(HANDLE, FUC) (HANDLE)->iic_write_cmd = FUC
215#define DRIVER_SCD30_LINK_IIC_READ_COMMAND(HANDLE, FUC) (HANDLE)->iic_read_cmd = FUC
223#define DRIVER_SCD30_LINK_DELAY_MS(HANDLE, FUC) (HANDLE)->delay_ms = FUC
231#define DRIVER_SCD30_LINK_DEBUG_PRINT(HANDLE, FUC) (HANDLE)->debug_print = FUC
uint8_t scd30_init(scd30_handle_t *handle)
initialize the chip
struct scd30_info_s scd30_info_t
scd30 information structure definition
uint8_t scd30_deinit(scd30_handle_t *handle)
close the chip
struct scd30_data_s scd30_data_t
scd30 data structure definition
uint8_t scd30_temperature_offset_convert_to_data(scd30_handle_t *handle, uint16_t reg, float *deg)
convert the register raw data to the temperature offset
uint8_t scd30_stop_measurement(scd30_handle_t *handle)
stop the measurement
uint8_t scd30_set_altitude_compensation(scd30_handle_t *handle, uint16_t m)
set altitude compensation
uint8_t scd30_soft_reset(scd30_handle_t *handle)
soft reset
uint8_t scd30_get_forced_recalibration(scd30_handle_t *handle, uint16_t *co2_ppm)
get forced recalibration
uint8_t scd30_get_data_ready_status(scd30_handle_t *handle, uint16_t *status)
get data ready status
uint8_t scd30_read(scd30_handle_t *handle, scd30_data_t *data)
read the result
uint8_t scd30_get_temperature_offset(scd30_handle_t *handle, uint16_t *deg)
get temperature offset
uint8_t scd30_temperature_offset_convert_to_register(scd30_handle_t *handle, float deg, uint16_t *reg)
convert the temperature offset to the register raw data
scd30_interface_t
scd30 interface enumeration definition
uint8_t scd30_get_firmware_version(scd30_handle_t *handle, uint16_t *version)
get firmware version
uint8_t scd30_get_automatic_self_calibration(scd30_handle_t *handle, scd30_bool_t *enable)
get automatic self calibration
uint8_t scd30_set_interface(scd30_handle_t *handle, scd30_interface_t interface)
set the chip interface
uint8_t scd30_set_automatic_self_calibration(scd30_handle_t *handle, scd30_bool_t enable)
set automatic self calibration
uint8_t scd30_start_measurement(scd30_handle_t *handle)
start the measurement
uint8_t scd30_info(scd30_info_t *info)
get chip information
uint8_t scd30_set_temperature_offset(scd30_handle_t *handle, uint16_t deg)
set temperature offset
uint8_t scd30_get_interface(scd30_handle_t *handle, scd30_interface_t *interface)
get the chip interface
struct scd30_handle_s scd30_handle_t
scd30 handle structure definition
uint8_t scd30_set_forced_recalibration(scd30_handle_t *handle, uint16_t co2_ppm)
set forced recalibration
uint8_t scd30_set_measurement_interval(scd30_handle_t *handle, uint16_t second)
set the measurement interval
uint8_t scd30_get_measurement_interval(scd30_handle_t *handle, uint16_t *second)
get the measurement interval
uint8_t scd30_start_measurement_with_pressure_compensation(scd30_handle_t *handle, uint16_t mbar)
start the measurement with pressure compensation
uint8_t scd30_get_altitude_compensation(scd30_handle_t *handle, uint16_t *m)
get altitude compensation
scd30_bool_t
scd30 bool enumeration definition
uint8_t scd30_set_get_reg_uart(scd30_handle_t *handle, uint8_t *input, uint16_t in_len, uint8_t *output, uint16_t out_len)
set and get the chip register with uart interface
uint8_t scd30_get_reg_iic(scd30_handle_t *handle, uint16_t reg, uint8_t *buf, uint16_t len)
get the chip register with iic interface
uint8_t scd30_set_reg_iic(scd30_handle_t *handle, uint16_t reg, uint8_t *buf, uint16_t len)
set the chip register with iic interface
scd30 data structure definition
scd30 handle structure definition
uint8_t(* uart_flush)(void)
uint8_t(* uart_write)(uint8_t *buf, uint16_t len)
void(* delay_ms)(uint32_t ms)
uint8_t(* uart_deinit)(void)
void(* debug_print)(const char *const fmt,...)
uint8_t(* iic_init)(void)
uint16_t(* uart_read)(uint8_t *buf, uint16_t len)
uint8_t(* iic_read_cmd)(uint8_t addr, uint8_t *buf, uint16_t len)
uint8_t(* uart_init)(void)
uint8_t(* iic_deinit)(void)
uint8_t(* iic_write_cmd)(uint8_t addr, uint8_t *buf, uint16_t len)
scd30 information structure definition
float supply_voltage_max_v
char manufacturer_name[32]
float supply_voltage_min_v