ESPHome 2025.5.0
|
#include <rc522_i2c.h>
Public Member Functions | |
void | dump_config () override |
![]() | |
void | setup () override |
void | update () override |
float | get_setup_priority () const override |
void | loop () override |
void | register_tag (RC522BinarySensor *tag) |
void | register_ontag_trigger (RC522Trigger *trig) |
void | register_ontagremoved_trigger (RC522Trigger *trig) |
void | set_reset_pin (GPIOPin *reset) |
![]() | |
PollingComponent () | |
PollingComponent (uint32_t update_interval) | |
Initialize this polling component with the given update interval in ms. | |
virtual void | set_update_interval (uint32_t update_interval) |
Manually set the update interval in ms for this polling object. | |
void | call_setup () override |
virtual uint32_t | get_update_interval () const |
Get the update interval in ms of this sensor. | |
void | start_poller () |
void | stop_poller () |
![]() | |
float | get_actual_setup_priority () const |
void | set_setup_priority (float priority) |
virtual float | get_loop_priority () const |
priority of loop(). | |
void | call () |
virtual void | on_shutdown () |
virtual void | on_safe_shutdown () |
uint32_t | get_component_state () const |
virtual void | mark_failed () |
Mark this component as failed. | |
void | mark_failed (const char *message) |
bool | is_failed () const |
bool | is_ready () const |
virtual bool | can_proceed () |
bool | status_has_warning () const |
bool | status_has_error () const |
void | status_set_warning (const char *message="unspecified") |
void | status_set_error (const char *message="unspecified") |
void | status_clear_warning () |
void | status_clear_error () |
void | status_momentary_warning (const std::string &name, uint32_t length=5000) |
void | status_momentary_error (const std::string &name, uint32_t length=5000) |
bool | has_overridden_loop () const |
void | set_component_source (const char *source) |
Set where this component was loaded from for some debug messages. | |
const char * | get_component_source () const |
Get the integration where this component was declared as a string. | |
bool | should_warn_of_blocking (uint32_t blocking_time) |
![]() | |
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) |
reads an array of bytes from the device using an I2CBus | |
ErrorCode | read_register (uint8_t a_register, uint8_t *data, size_t len, bool stop=true) |
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, bool stop=true) |
reads an array of bytes from a specific register in the I²C device | |
ErrorCode | write (const uint8_t *data, size_t len, bool stop=true) |
writes an array of bytes to a device using an I2CBus | |
ErrorCode | write_register (uint8_t a_register, const uint8_t *data, size_t len, bool stop=true) |
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, bool stop=true) |
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) |
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, bool stop=true) |
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, bool stop=true) |
bool | write_bytes (uint8_t a_register, const std::vector< uint8_t > &data) |
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) |
bool | write_byte (uint8_t a_register, uint8_t data, bool stop=true) |
bool | write_byte_16 (uint8_t a_register, uint16_t data) |
Protected Member Functions | |
uint8_t | pcd_read_register (PcdRegister reg) override |
Reads a uint8_t from the specified register in the MFRC522 chip. | |
void | pcd_read_register (PcdRegister reg, uint8_t count, uint8_t *values, uint8_t rx_align) override |
Reads a number of uint8_ts from the specified register in the MFRC522 chip. | |
void | pcd_write_register (PcdRegister reg, uint8_t value) override |
void | pcd_write_register (PcdRegister reg, uint8_t count, uint8_t *values) override |
Writes a number of uint8_ts to the specified register in the MFRC522 chip. | |
![]() | |
void | pcd_reset_ () |
Performs a soft reset on the MFRC522 chip and waits for it to be ready again. | |
void | initialize_ () |
void | pcd_antenna_on_ () |
Turns the antenna on by enabling pins TX1 and TX2. | |
void | pcd_antenna_off_ () |
Turns the antenna off by disabling pins TX1 and TX2. | |
void | pcd_set_register_bit_mask_ (PcdRegister reg, uint8_t mask) |
Sets the bits given in mask in register reg. | |
void | pcd_clear_register_bit_mask_ (PcdRegister reg, uint8_t mask) |
Clears the bits given in mask from register reg. | |
void | pcd_transceive_data_ (uint8_t send_len) |
Transfers data to the MFRC522 FIFO, executes a command, waits for completion and transfers data back from the FIFO. | |
void | pcd_calculate_crc_ (uint8_t *data, uint8_t length) |
Use the CRC coprocessor in the MFRC522 to calculate a CRC_A. | |
StatusCode | await_transceive_ () |
StatusCode | await_crc_ () |
![]() | |
virtual void | call_loop () |
virtual void | call_dump_config () |
void | set_interval (const std::string &name, uint32_t interval, std::function< void()> &&f) |
Set an interval function with a unique name. | |
void | set_interval (uint32_t interval, std::function< void()> &&f) |
bool | cancel_interval (const std::string &name) |
Cancel an interval function. | |
void | set_retry (const std::string &name, uint32_t initial_wait_time, uint8_t max_attempts, std::function< RetryResult(uint8_t)> &&f, float backoff_increase_factor=1.0f) |
Set an retry function with a unique name. | |
void | set_retry (uint32_t initial_wait_time, uint8_t max_attempts, std::function< RetryResult(uint8_t)> &&f, float backoff_increase_factor=1.0f) |
bool | cancel_retry (const std::string &name) |
Cancel a retry function. | |
void | set_timeout (const std::string &name, uint32_t timeout, std::function< void()> &&f) |
Set a timeout function with a unique name. | |
void | set_timeout (uint32_t timeout, std::function< void()> &&f) |
bool | cancel_timeout (const std::string &name) |
Cancel a timeout function. | |
void | defer (const std::string &name, std::function< void()> &&f) |
Defer a callback to the next loop() call. | |
void | defer (std::function< void()> &&f) |
Defer a callback to the next loop() call. | |
bool | cancel_defer (const std::string &name) |
Cancel a defer callback using the specified name, name must not be empty. | |
Additional Inherited Members | |
![]() | |
enum | StatusCode : uint8_t { STATUS_OK , STATUS_WAITING , STATUS_ERROR , STATUS_COLLISION , STATUS_TIMEOUT , STATUS_NO_ROOM , STATUS_INTERNAL_ERROR , STATUS_INVALID , STATUS_CRC_WRONG , STATUS_MIFARE_NACK = 0xff } |
enum | State { STATE_NONE = 0 , STATE_SETUP , STATE_INIT , STATE_PICC_REQUEST_A , STATE_READ_SERIAL , STATE_SELECT_SERIAL , STATE_SELECT_SERIAL_DONE , STATE_READ_SERIAL_DONE , STATE_DONE } |
enum | PcdRegister : uint8_t { COMMAND_REG = 0x01 << 1 , COM_I_EN_REG = 0x02 << 1 , DIV_I_EN_REG = 0x03 << 1 , COM_IRQ_REG = 0x04 << 1 , DIV_IRQ_REG = 0x05 << 1 , ERROR_REG = 0x06 << 1 , STATUS1_REG = 0x07 << 1 , STATUS2_REG = 0x08 << 1 , FIFO_DATA_REG = 0x09 << 1 , FIFO_LEVEL_REG = 0x0A << 1 , WATER_LEVEL_REG = 0x0B << 1 , CONTROL_REG = 0x0C << 1 , BIT_FRAMING_REG = 0x0D << 1 , COLL_REG = 0x0E << 1 , MODE_REG = 0x11 << 1 , TX_MODE_REG = 0x12 << 1 , RX_MODE_REG = 0x13 << 1 , TX_CONTROL_REG = 0x14 << 1 , TX_ASK_REG = 0x15 << 1 , TX_SEL_REG = 0x16 << 1 , RX_SEL_REG = 0x17 << 1 , RX_THRESHOLD_REG = 0x18 << 1 , DEMOD_REG = 0x19 << 1 , MF_TX_REG = 0x1C << 1 , MF_RX_REG = 0x1D << 1 , SERIAL_SPEED_REG = 0x1F << 1 , CRC_RESULT_REG_H = 0x21 << 1 , CRC_RESULT_REG_L = 0x22 << 1 , MOD_WIDTH_REG = 0x24 << 1 , RF_CFG_REG = 0x26 << 1 , GS_N_REG = 0x27 << 1 , CW_GS_P_REG = 0x28 << 1 , MOD_GS_P_REG = 0x29 << 1 , T_MODE_REG = 0x2A << 1 , T_PRESCALER_REG = 0x2B << 1 , T_RELOAD_REG_H = 0x2C << 1 , T_RELOAD_REG_L = 0x2D << 1 , T_COUNTER_VALUE_REG_H = 0x2E << 1 , T_COUNTER_VALUE_REG_L = 0x2F << 1 , TEST_SEL1_REG = 0x31 << 1 , TEST_SEL2_REG = 0x32 << 1 , TEST_PIN_EN_REG = 0x33 << 1 , TEST_PIN_VALUE_REG = 0x34 << 1 , TEST_BUS_REG = 0x35 << 1 , AUTO_TEST_REG = 0x36 << 1 , VERSION_REG = 0x37 << 1 , ANALOG_TEST_REG = 0x38 << 1 , TEST_DA_C1_REG = 0x39 << 1 , TEST_DA_C2_REG = 0x3A << 1 , TEST_ADC_REG = 0x3B << 1 } |
enum | PcdCommand : uint8_t { PCD_IDLE = 0x00 , PCD_MEM = 0x01 , PCD_GENERATE_RANDOM_ID = 0x02 , PCD_CALC_CRC = 0x03 , PCD_TRANSMIT = 0x04 , PCD_NO_CMD_CHANGE = 0x07 , PCD_RECEIVE = 0x08 , PCD_TRANSCEIVE , PCD_MF_AUTHENT = 0x0E , PCD_SOFT_RESET = 0x0F } |
enum | PiccCommand : uint8_t { PICC_CMD_REQA = 0x26 , PICC_CMD_WUPA = 0x52 , PICC_CMD_CT = 0x88 , PICC_CMD_SEL_CL1 = 0x93 , PICC_CMD_SEL_CL2 = 0x95 , PICC_CMD_SEL_CL3 = 0x97 , PICC_CMD_HLTA = 0x50 , PICC_CMD_RATS = 0xE0 , PICC_CMD_MF_AUTH_KEY_A = 0x60 , PICC_CMD_MF_AUTH_KEY_B = 0x61 , PICC_CMD_MF_READ , PICC_CMD_MF_WRITE = 0xA0 , PICC_CMD_MF_DECREMENT , PICC_CMD_MF_INCREMENT , PICC_CMD_MF_RESTORE = 0xC2 , PICC_CMD_MF_TRANSFER = 0xB0 , PICC_CMD_UL_WRITE = 0xA2 } |
enum | RC522Error { NONE = 0 , RESET_FAILED } |
![]() | |
enum esphome::rc522::RC522::State | STATE_NONE |
bool | awaiting_comm_ |
uint32_t | awaiting_comm_time_ |
uint8_t | buffer_ [9] |
buffer for communication, the first bits [0..back_idx-1] are for tx , [back_idx..back_idx+back_len] for rx | |
uint8_t | send_len_ |
uint8_t | back_length_ |
In: Max number of uint8_ts to write to *backData. Out: The number of uint8_ts returned. | |
uint8_t | uid_buffer_ [10] |
uint8_t | uid_idx_ = 0 |
uint8_t | error_counter_ = 0 |
uint8_t | rx_align_ |
uint8_t * | valid_bits_ |
GPIOPin * | reset_pin_ {nullptr} |
uint8_t | reset_count_ {0} |
uint32_t | reset_timeout_ {0} |
std::vector< RC522BinarySensor * > | binary_sensors_ |
std::vector< RC522Trigger * > | triggers_ontag_ |
std::vector< RC522Trigger * > | triggers_ontagremoved_ |
std::vector< uint8_t > | current_uid_ |
enum esphome::rc522::RC522::RC522Error | NONE |
![]() | |
uint32_t | update_interval_ |
![]() | |
uint32_t | component_state_ {0x0000} |
State of this component. | |
float | setup_priority_override_ {NAN} |
const char * | component_source_ {nullptr} |
uint32_t | warn_if_blocking_over_ {WARN_IF_BLOCKING_OVER_MS} |
std::string | error_message_ {} |
![]() | |
uint8_t | address_ {0x00} |
store the address of the device on the bus | |
I2CBus * | bus_ {nullptr} |
pointer to I2CBus instance | |
Definition at line 10 of file rc522_i2c.h.
|
overridevirtual |
Reimplemented from esphome::rc522::RC522.
Definition at line 9 of file rc522_i2c.cpp.
|
overrideprotectedvirtual |
Reads a uint8_t from the specified register in the MFRC522 chip.
The interface is described in the datasheet section 8.1.2.
reg | The register to read from. One of the PCD_Register enums. |
Implements esphome::rc522::RC522.
Definition at line 18 of file rc522_i2c.cpp.
|
overrideprotectedvirtual |
Reads a number of uint8_ts from the specified register in the MFRC522 chip.
The interface is described in the datasheet section 8.1.2.
reg | The register to read from. One of the PCD_Register enums. |
count | The number of uint8_ts to read |
values | uint8_t array to store the values in. |
rx_align | Only bit positions rxAlign..7 in values[0] are updated. |
Implements esphome::rc522::RC522.
Definition at line 31 of file rc522_i2c.cpp.
|
overrideprotectedvirtual |
Writes a number of uint8_ts to the specified register in the MFRC522 chip.
The interface is described in the datasheet section 8.1.2.
reg | The register to write to. One of the PCD_Register enums. |
count | The number of uint8_ts to write to the register |
values | The values to write. uint8_t array. |
Implements esphome::rc522::RC522.
Definition at line 62 of file rc522_i2c.cpp.
|
overrideprotectedvirtual |
reg | The register to write to. One of the PCD_Register enums. |
value | The value to write. |
Implements esphome::rc522::RC522.
Definition at line 52 of file rc522_i2c.cpp.