MVMFirmwareCpp v0.1
Macros | Variables
driver_SFM3019.cpp File Reference
#include "driver_SFM3019.h"
Include dependency graph for driver_SFM3019.cpp:

Go to the source code of this file.

Macros

#define SENSIRION_BIG_ENDIAN   0
 
#define SFM3019_I2C_ADDRESS   0x2E
 
#define SFM3019_CMD_START_CONTINUOUS_MEASUREMENT_O2   SFM_CMD_START_CONTINUOUS_MEASUREMENT_GAS0
 
#define SFM3019_CMD_START_CONTINUOUS_MEASUREMENT_AIR   SFM_CMD_START_CONTINUOUS_MEASUREMENT_GAS1
 
#define SFM3019_CMD_START_CONTINUOUS_MEASUREMENT_AIR_O2_MIX   SFM_CMD_START_CONTINUOUS_MEASUREMENT_GAS_MIX_0
 
#define SFM3019_SOFT_RESET_TIME_US   2000
 
#define SENSIRION_I2C_CLOCK_PERIOD_USEC   10
 
#define STATUS_OK   0
 
#define STATUS_FAIL   (-1)
 
#define be16_to_cpu(s)   (((uint16_t)(s) << 8) | (0xff & ((uint16_t)(s)) >> 8))
 
#define be32_to_cpu(s)   (((uint32_t)be16_to_cpu(s) << 16) | (0xffff & (be16_to_cpu((s) >> 16))))
 
#define be64_to_cpu(s)
 
#define SENSIRION_WORDS_TO_BYTES(a, w)
 
#define ARRAY_SIZE(x)   (sizeof(x) / sizeof(*(x)))
 
#define CRC8_POLYNOMIAL   0x31
 
#define CRC8_INIT   0xFF
 
#define CRC8_LEN   1
 
#define SENSIRION_COMMAND_SIZE   2
 
#define SENSIRION_WORD_SIZE   2
 
#define SENSIRION_NUM_WORDS(x)   (sizeof(x) / SENSIRION_WORD_SIZE)
 
#define SENSIRION_MAX_BUFFER_WORDS   32
 
#define SFM_CMD_READ_PRODUCT_IDENTIFIER   0xE102
 
#define SFM_CMD_READ_SCALE_FACTOR_OFFSET_AND_FLOW_UNIT   0x3661
 
#define SFM_CMD_STOP_CONTINUOUS_MEASUREMENT   0x3FF9
 

Variables

const char * SFM_DRV_VERSION_STR = "0.1.0"
 

Macro Definition Documentation

◆ ARRAY_SIZE

#define ARRAY_SIZE (   x)    (sizeof(x) / sizeof(*(x)))

Definition at line 56 of file driver_SFM3019.cpp.

◆ be16_to_cpu

#define be16_to_cpu (   s)    (((uint16_t)(s) << 8) | (0xff & ((uint16_t)(s)) >> 8))

Definition at line 36 of file driver_SFM3019.cpp.

◆ be32_to_cpu

#define be32_to_cpu (   s)    (((uint32_t)be16_to_cpu(s) << 16) | (0xffff & (be16_to_cpu((s) >> 16))))

Definition at line 37 of file driver_SFM3019.cpp.

◆ be64_to_cpu

#define be64_to_cpu (   s)
Value:
(((uint64_t)be32_to_cpu(s) << 32) | \
(0xffffffff & ((uint64_t)be32_to_cpu((s) >> 32))))

Definition at line 39 of file driver_SFM3019.cpp.

◆ CRC8_INIT

#define CRC8_INIT   0xFF

Definition at line 60 of file driver_SFM3019.cpp.

◆ CRC8_LEN

#define CRC8_LEN   1

Definition at line 61 of file driver_SFM3019.cpp.

◆ CRC8_POLYNOMIAL

#define CRC8_POLYNOMIAL   0x31

Definition at line 59 of file driver_SFM3019.cpp.

◆ SENSIRION_BIG_ENDIAN

#define SENSIRION_BIG_ENDIAN   0

Definition at line 11 of file driver_SFM3019.cpp.

◆ SENSIRION_COMMAND_SIZE

#define SENSIRION_COMMAND_SIZE   2

Definition at line 63 of file driver_SFM3019.cpp.

◆ SENSIRION_I2C_CLOCK_PERIOD_USEC

#define SENSIRION_I2C_CLOCK_PERIOD_USEC   10

Definition at line 22 of file driver_SFM3019.cpp.

◆ SENSIRION_MAX_BUFFER_WORDS

#define SENSIRION_MAX_BUFFER_WORDS   32

Definition at line 66 of file driver_SFM3019.cpp.

◆ SENSIRION_NUM_WORDS

#define SENSIRION_NUM_WORDS (   x)    (sizeof(x) / SENSIRION_WORD_SIZE)

Definition at line 65 of file driver_SFM3019.cpp.

◆ SENSIRION_WORD_SIZE

#define SENSIRION_WORD_SIZE   2

Definition at line 64 of file driver_SFM3019.cpp.

◆ SENSIRION_WORDS_TO_BYTES

#define SENSIRION_WORDS_TO_BYTES (   a,
 
)
Value:
for (uint16_t *__a = (uint16_t *)(a), __e = (w), __w = 0; __w < __e; \
++__w) { \
__a[__w] = be16_to_cpu(__a[__w]); \
}

Convert a word-array to a bytes-array, effectively reverting the host-endianness to big-endian : word array to change (must be (uint16_t *) castable) @w: number of word-sized elements in the array (SENSIRION_NUM_WORDS(a)).

Definition at line 48 of file driver_SFM3019.cpp.

◆ SFM3019_CMD_START_CONTINUOUS_MEASUREMENT_AIR

#define SFM3019_CMD_START_CONTINUOUS_MEASUREMENT_AIR   SFM_CMD_START_CONTINUOUS_MEASUREMENT_GAS1

Definition at line 16 of file driver_SFM3019.cpp.

◆ SFM3019_CMD_START_CONTINUOUS_MEASUREMENT_AIR_O2_MIX

#define SFM3019_CMD_START_CONTINUOUS_MEASUREMENT_AIR_O2_MIX   SFM_CMD_START_CONTINUOUS_MEASUREMENT_GAS_MIX_0

Definition at line 18 of file driver_SFM3019.cpp.

◆ SFM3019_CMD_START_CONTINUOUS_MEASUREMENT_O2

#define SFM3019_CMD_START_CONTINUOUS_MEASUREMENT_O2   SFM_CMD_START_CONTINUOUS_MEASUREMENT_GAS0

Definition at line 14 of file driver_SFM3019.cpp.

◆ SFM3019_I2C_ADDRESS

#define SFM3019_I2C_ADDRESS   0x2E

Definition at line 12 of file driver_SFM3019.cpp.

◆ SFM3019_SOFT_RESET_TIME_US

#define SFM3019_SOFT_RESET_TIME_US   2000

Definition at line 21 of file driver_SFM3019.cpp.

◆ SFM_CMD_READ_PRODUCT_IDENTIFIER

#define SFM_CMD_READ_PRODUCT_IDENTIFIER   0xE102

Definition at line 69 of file driver_SFM3019.cpp.

◆ SFM_CMD_READ_SCALE_FACTOR_OFFSET_AND_FLOW_UNIT

#define SFM_CMD_READ_SCALE_FACTOR_OFFSET_AND_FLOW_UNIT   0x3661

Definition at line 71 of file driver_SFM3019.cpp.

◆ SFM_CMD_STOP_CONTINUOUS_MEASUREMENT

#define SFM_CMD_STOP_CONTINUOUS_MEASUREMENT   0x3FF9

Definition at line 73 of file driver_SFM3019.cpp.

◆ STATUS_FAIL

#define STATUS_FAIL   (-1)

Definition at line 26 of file driver_SFM3019.cpp.

◆ STATUS_OK

#define STATUS_OK   0

Definition at line 25 of file driver_SFM3019.cpp.

Variable Documentation

◆ SFM_DRV_VERSION_STR

const char* SFM_DRV_VERSION_STR = "0.1.0"

Definition at line 76 of file driver_SFM3019.cpp.

be32_to_cpu
#define be32_to_cpu(s)
Definition: driver_SFM3019.cpp:36
be16_to_cpu
#define be16_to_cpu(s)
Definition: driver_SFM3019.cpp:35