Go to the documentation of this file.
3 #ifndef _DRIVER_SFM3019_h
4 #define _DRIVER_SFM3019_h
6 #if defined(ARDUINO) && ARDUINO >= 100
83 uint32_t* product_number,
84 uint8_t(*serial_number)[8]);
100 int16_t* flow_offset, uint16_t* unit);
113 int16_t flow_raw,
float* flow);
148 int16_t* temperature_raw,
191 const uint16_t* args, uint8_t num_args);
245 const uint16_t* data_words,
260 uint32_t delay_us, uint16_t* data_words,
273 uint16_t* data_words, uint16_t num_words);
@ SFM_CMD_START_CONTINUOUS_MEASUREMENT_GAS3
bool Init(t_i2cdevices device, void *hw_handle)
int8_t sensirion_i2c_write(uint8_t address, const uint8_t *data, uint16_t count)
const char * sfm_common_get_driver_version(void)
int16_t sensirion_i2c_select_bus(uint8_t bus_idx)
int8_t sensirion_common_check_crc(uint8_t *data, uint16_t count, uint8_t checksum)
@ SFM_CMD_START_CONTINUOUS_MEASUREMENT_GAS_MIX_2
float sfm_common_convert_temperature_float(int16_t temperature_raw)
bool doMeasure(float *Flow, float *T)
int16_t sfm_common_stop_continuous_measurement(SfmConfig *sfm_config)
int16_t sfm_common_convert_flow_float(const SfmConfig *sfm_config, int16_t flow_raw, float *flow)
int16_t sensirion_i2c_read_words_as_bytes(uint8_t address, uint8_t *data, uint16_t num_words)
uint8_t sensirion_common_generate_crc(uint8_t *data, uint16_t count)
@ SFM_CMD_START_CONTINUOUS_MEASUREMENT_GAS5
void sensirion_i2c_release(void)
@ SFM_CMD_START_CONTINUOUS_MEASUREMENT_GAS4
@ SFM_CMD_START_CONTINUOUS_MEASUREMENT_GAS1
int16_t sfm_common_start_continuous_measurement(SfmConfig *sfm_config, SfmCmdStartContinuousMeasurement measurement_cmd)
int16_t sensirion_i2c_write_cmd(uint8_t address, uint16_t command)
@ SFM_CMD_START_CONTINUOUS_MEASUREMENT_GAS_MIX_0
@ SFM_CMD_START_CONTINUOUS_MEASUREMENT_GAS0
int16_t sensirion_i2c_general_call_reset(void)
int16_t sensirion_i2c_write_cmd_with_args(uint8_t address, uint16_t command, const uint16_t *data_words, uint16_t num_words)
int8_t sensirion_i2c_read(uint8_t address, uint8_t *data, uint16_t count)
void sensirion_i2c_init(void)
int16_t sfm_common_read_product_identifier(uint8_t i2c_address, uint32_t *product_number, uint8_t(*serial_number)[8])
int16_t sfm_common_probe(uint8_t i2c_address)
uint16_t sensirion_fill_cmd_send_buf(uint8_t *buf, uint16_t cmd, const uint16_t *args, uint8_t num_args)
int16_t sfm_common_read_scale_factor_offset_and_unit(const SfmConfig *sfm_config, SfmCmdStartContinuousMeasurement measurement_cmd, int16_t *flow_scale, int16_t *flow_offset, uint16_t *unit)
int16_t sfm3019_probe(void)
Driver for the Nuclear Instruments V4 Hardware Board.
@ SFM_CMD_START_CONTINUOUS_MEASUREMENT_GAS_MIX_1
SfmConfig sfm3019_create(void)
int16_t sensirion_i2c_read_words(uint8_t address, uint16_t *data_words, uint16_t num_words)
@ SFM_CMD_START_CONTINUOUS_MEASUREMENT_GAS2
int16_t sensirion_i2c_read_cmd(uint8_t address, uint16_t cmd, uint16_t *data_words, uint16_t num_words)
Debug class: this class print debug message.
SfmCmdStartContinuousMeasurement
void sensirion_sleep_usec(uint32_t useconds)
int16_t sensirion_i2c_delayed_read_cmd(uint8_t address, uint16_t cmd, uint32_t delay_us, uint16_t *data_words, uint16_t num_words)
int16_t sfm_common_read_measurement_raw(const SfmConfig *sfm_config, int16_t *flow_raw, int16_t *temperature_raw, uint16_t *status)