|
ESPHome 2026.3.0-dev
|
#include <i2c_sensirion.h>
Public Types | |
| enum | CommandLen : uint8_t { ADDR_8_BIT = 1 , ADDR_16_BIT = 2 } |
Public Member Functions | |
| bool | read_data (uint16_t *data, uint8_t len) |
| Read data words from I2C device. | |
| bool | read_data (uint16_t &data) |
| Read 1 data word from I2C device. | |
| bool | get_register (uint16_t command, uint16_t *data, uint8_t len, uint8_t delay=0) |
| get data words from I2C register. | |
| bool | get_register (uint16_t i2c_register, uint16_t &data, uint8_t delay=0) |
| Read 1 data word from 16 bit I2C register. | |
| bool | get_8bit_register (uint8_t i2c_register, uint16_t *data, uint8_t len, uint8_t delay=0) |
| get data words from I2C register. | |
| bool | get_8bit_register (uint8_t i2c_register, uint16_t &data, uint8_t delay=0) |
| Read 1 data word from 8 bit I2C register. | |
| template<class T > | |
| bool | write_command (T i2c_register) |
| Write a command to the I2C device. | |
| template<class T > | |
| bool | write_command (T i2c_register, uint16_t data) |
| Write a command and one data word to the I2C device . | |
| template<class T > | |
| bool | write_command (T i2c_register, const std::vector< uint16_t > &data) |
| Write a command with arguments as words. | |
| template<class T > | |
| bool | write_command (T i2c_register, const uint16_t *data, uint8_t len) |
| Write a command with arguments as words. | |
Public Member Functions inherited from esphome::i2c::I2CDevice | |
| I2CDevice ()=default | |
| we use the C++ default constructor | |
| void | set_i2c_address (uint8_t address) |
| We store the address of the device on the bus. | |
| uint8_t | get_i2c_address () const |
| Returns the I2C address of the object. | |
| void | set_i2c_bus (I2CBus *bus) |
| we store the pointer to the I2CBus to use | |
| I2CRegister | reg (uint8_t a_register) |
| calls the I2CRegister constructor | |
| I2CRegister16 | reg16 (uint16_t a_register) |
| calls the I2CRegister16 constructor | |
| ErrorCode | read (uint8_t *data, size_t len) const |
| reads an array of bytes from the device using an I2CBus | |
| ErrorCode | read_register (uint8_t a_register, uint8_t *data, size_t len) |
| reads an array of bytes from a specific register in the I²C device | |
| ErrorCode | read_register16 (uint16_t a_register, uint8_t *data, size_t len) |
| reads an array of bytes from a specific register in the I²C device | |
| ErrorCode | write (const uint8_t *data, size_t len) const |
| writes an array of bytes to a device using an I2CBus | |
| ErrorCode | write_read (const uint8_t *write_data, size_t write_len, uint8_t *read_data, size_t read_len) const |
| writes an array of bytes to a device, then reads an array, as a single transaction | |
| ErrorCode | write_register (uint8_t a_register, const uint8_t *data, size_t len) const |
| writes an array of bytes to a specific register in the I²C device | |
| ErrorCode | write_register16 (uint16_t a_register, const uint8_t *data, size_t len) const |
| write an array of bytes to a specific register in the I²C device | |
| bool | read_bytes (uint8_t a_register, uint8_t *data, uint8_t len) |
| Compat APIs All methods below have been added for compatibility reasons. | |
| bool | read_bytes_raw (uint8_t *data, uint8_t len) const |
| template<size_t N> | |
| optional< std::array< uint8_t, N > > | read_bytes (uint8_t a_register) |
| template<size_t N> | |
| optional< std::array< uint8_t, N > > | read_bytes_raw () |
| bool | read_bytes_16 (uint8_t a_register, uint16_t *data, uint8_t len) |
| bool | read_byte (uint8_t a_register, uint8_t *data) |
| optional< uint8_t > | read_byte (uint8_t a_register) |
| bool | read_byte_16 (uint8_t a_register, uint16_t *data) |
| bool | write_bytes (uint8_t a_register, const uint8_t *data, uint8_t len) const |
| bool | write_bytes (uint8_t a_register, const std::vector< uint8_t > &data) const |
| template<size_t N> | |
| bool | write_bytes (uint8_t a_register, const std::array< uint8_t, N > &data) |
| bool | write_bytes_16 (uint8_t a_register, const uint16_t *data, uint8_t len) const |
| bool | write_byte (uint8_t a_register, uint8_t data) const |
| bool | write_byte_16 (uint8_t a_register, uint16_t data) const |
Static Public Member Functions | |
| static const char * | sensirion_convert_to_string_in_place (uint16_t *array, size_t length) |
| This function performs an in-place conversion of the provided buffer from uint16_t values to big endianness. | |
Protected Member Functions | |
| bool | write_command_ (uint16_t command, CommandLen command_len, const uint16_t *data, uint8_t data_len) |
| Write a command with arguments as words. | |
| bool | get_register_ (uint16_t reg, CommandLen command_len, uint16_t *data, uint8_t len, uint8_t delay) |
| get data words from I2C register. | |
Protected Attributes | |
| i2c::ErrorCode | last_error_ |
| last error code from I2C operation | |
Protected Attributes inherited from esphome::i2c::I2CDevice | |
| uint8_t | address_ {0x00} |
| store the address of the device on the bus | |
| I2CBus * | bus_ {nullptr} |
| pointer to I2CBus instance | |
Definition at line 20 of file i2c_sensirion.h.
| enum esphome::sensirion_common::SensirionI2CDevice::CommandLen : uint8_t |
| Enumerator | |
|---|---|
| ADDR_8_BIT | |
| ADDR_16_BIT | |
Definition at line 22 of file i2c_sensirion.h.
|
inline |
Read 1 data word from 8 bit I2C register.
| I2C | register |
| data | reference to raw result |
| delay | milliseconds to to wait between sending the I2C command and reading the result |
Definition at line 88 of file i2c_sensirion.h.
|
inline |
get data words from I2C register.
handles CRC check used by Sensirion sensors
| I2C | register |
| data | pointer to raw result |
| len | number of words to read |
| delay | milliseconds to to wait between sending the I2C command and reading the result |
Definition at line 78 of file i2c_sensirion.h.
|
inline |
get data words from I2C register.
handles CRC check used by Sensirion sensors
| I2C | register |
| data | pointer to raw result |
| len | number of words to read |
| delay | milliseconds to to wait between sending the I2C command and reading the result |
Definition at line 57 of file i2c_sensirion.h.
|
inline |
Read 1 data word from 16 bit I2C register.
| I2C | register |
| data | reference to raw result |
| delay | milliseconds to to wait between sending the I2C command and reading the result |
Definition at line 66 of file i2c_sensirion.h.
|
protected |
get data words from I2C register.
handles CRC check used by Sensirion sensors
| I2C | register |
| command_len | either 1 for short 8 bit command or 2 for 16 bit command codes |
| data | pointer to raw result |
| len | number of words to read |
| delay | milliseconds to to wait between sending the I2C command and reading the result |
Definition at line 67 of file i2c_sensirion.cpp.
|
inline |
Read 1 data word from I2C device.
| data | reference to raw result |
Definition at line 47 of file i2c_sensirion.h.
| bool esphome::sensirion_common::SensirionI2CDevice::read_data | ( | uint16_t * | data, |
| uint8_t | len ) |
Read data words from I2C device.
handles CRC check used by Sensirion sensors
| data | pointer to raw result |
| len | number of words to read |
Definition at line 14 of file i2c_sensirion.cpp.
|
inlinestatic |
This function performs an in-place conversion of the provided buffer from uint16_t values to big endianness.
Useful for Sensirion strings in SEN5X and SEN6X
Definition at line 28 of file i2c_sensirion.h.
|
inline |
Write a command to the I2C device.
| command | I2C command to send |
Definition at line 96 of file i2c_sensirion.h.
|
inline |
Write a command with arguments as words.
| i2c_register | I2C command to send - an be uint8_t or uint16_t |
| data | vector<uint16> arguments for the I2C command |
Definition at line 110 of file i2c_sensirion.h.
|
inline |
Write a command with arguments as words.
| i2c_register | I2C command to send - an be uint8_t or uint16_t |
| data | arguments for the I2C command |
| len | number of arguments (words) |
Definition at line 120 of file i2c_sensirion.h.
|
inline |
Write a command and one data word to the I2C device .
| command | I2C command to send |
| data | argument for the I2C command |
Definition at line 103 of file i2c_sensirion.h.
|
protected |
Write a command with arguments as words.
| command | I2C command to send can be uint8_t or uint16_t |
| command_len | either 1 for short 8 bit command or 2 for 16 bit command codes |
| data | arguments for the I2C command |
| data_len | number of arguments (words) |
Definition at line 40 of file i2c_sensirion.cpp.
|
protected |
last error code from I2C operation
Definition at line 149 of file i2c_sensirion.h.