ESPHome 2025.5.0
Loading...
Searching...
No Matches
esphome::rc522_i2c::RC522I2C Class Reference

#include <rc522_i2c.h>

Inheritance diagram for esphome::rc522_i2c::RC522I2C:
esphome::rc522::RC522 esphome::i2c::I2CDevice esphome::PollingComponent esphome::Component

Public Member Functions

void dump_config () override
 
- Public Member Functions inherited from esphome::rc522::RC522
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)
 
- Public Member Functions inherited from esphome::PollingComponent
 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 ()
 
- Public Member Functions inherited from esphome::Component
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)
 
- 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)
 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.
 
- Protected Member Functions inherited from esphome::rc522::RC522
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_ ()
 
- Protected Member Functions inherited from esphome::Component
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

- Protected Types inherited from esphome::rc522::RC522
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 }
 
- Protected Attributes inherited from esphome::rc522::RC522
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_
 
GPIOPinreset_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
 
- Protected Attributes inherited from esphome::PollingComponent
uint32_t update_interval_
 
- Protected Attributes inherited from esphome::Component
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_ {}
 
- Protected Attributes inherited from esphome::i2c::I2CDevice
uint8_t address_ {0x00}
 store the address of the device on the bus
 
I2CBusbus_ {nullptr}
 pointer to I2CBus instance
 

Detailed Description

Definition at line 10 of file rc522_i2c.h.

Member Function Documentation

◆ dump_config()

void esphome::rc522_i2c::RC522I2C::dump_config ( )
overridevirtual

Reimplemented from esphome::rc522::RC522.

Definition at line 9 of file rc522_i2c.cpp.

◆ pcd_read_register() [1/2]

uint8_t esphome::rc522_i2c::RC522I2C::pcd_read_register ( PcdRegister reg)
overrideprotectedvirtual

Reads a uint8_t from the specified register in the MFRC522 chip.

The interface is described in the datasheet section 8.1.2.

Parameters
regThe register to read from. One of the PCD_Register enums.

Implements esphome::rc522::RC522.

Definition at line 18 of file rc522_i2c.cpp.

◆ pcd_read_register() [2/2]

void esphome::rc522_i2c::RC522I2C::pcd_read_register ( PcdRegister reg,
uint8_t count,
uint8_t * values,
uint8_t rx_align )
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.

Parameters
regThe register to read from. One of the PCD_Register enums.
countThe number of uint8_ts to read
valuesuint8_t array to store the values in.
rx_alignOnly bit positions rxAlign..7 in values[0] are updated.

Implements esphome::rc522::RC522.

Definition at line 31 of file rc522_i2c.cpp.

◆ pcd_write_register() [1/2]

void esphome::rc522_i2c::RC522I2C::pcd_write_register ( PcdRegister reg,
uint8_t count,
uint8_t * values )
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.

Parameters
regThe register to write to. One of the PCD_Register enums.
countThe number of uint8_ts to write to the register
valuesThe values to write. uint8_t array.

Implements esphome::rc522::RC522.

Definition at line 62 of file rc522_i2c.cpp.

◆ pcd_write_register() [2/2]

void esphome::rc522_i2c::RC522I2C::pcd_write_register ( PcdRegister reg,
uint8_t value )
overrideprotectedvirtual
Parameters
regThe register to write to. One of the PCD_Register enums.
valueThe value to write.

Implements esphome::rc522::RC522.

Definition at line 52 of file rc522_i2c.cpp.


The documentation for this class was generated from the following files: