ESPHome  2024.12.2
Public Member Functions | Protected Member Functions
esphome::rc522_spi::RC522Spi Class Reference

#include <rc522_spi.h>

Inheritance diagram for esphome::rc522_spi::RC522Spi:
esphome::rc522::RC522 esphome::spi::SPIDevice< spi::BIT_ORDER_MSB_FIRST, spi::CLOCK_POLARITY_LOW, spi::CLOCK_PHASE_LEADING, spi::DATA_RATE_4MHZ > esphome::PollingComponent esphome::spi::SPIClient esphome::Component

Public Member Functions

void setup () override
 
void dump_config () override
 
- Public Member Functions inherited from esphome::rc522::RC522
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. More...
 
virtual void set_update_interval (uint32_t update_interval)
 Manually set the update interval in ms for this polling object. More...
 
void call_setup () override
 
virtual uint32_t get_update_interval () const
 Get the update interval in ms of this sensor. More...
 
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(). More...
 
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. More...
 
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. More...
 
const char * get_component_source () const
 Get the integration where this component was declared as a string. More...
 
- Public Member Functions inherited from esphome::spi::SPIDevice< spi::BIT_ORDER_MSB_FIRST, spi::CLOCK_POLARITY_LOW, spi::CLOCK_PHASE_LEADING, spi::DATA_RATE_4MHZ >
 SPIDevice ()
 
 SPIDevice (SPIComponent *parent, GPIOPin *cs_pin)
 
void spi_setup () override
 
void spi_teardown () override
 
void set_spi_parent (SPIComponent *parent)
 
void set_cs_pin (GPIOPin *cs)
 
void set_data_rate (uint32_t data_rate)
 
void set_bit_order (SPIBitOrder order)
 
void set_mode (SPIMode mode)
 
uint8_t read_byte ()
 
void read_array (uint8_t *data, size_t length)
 
void write (uint16_t data, size_t num_bits)
 Write a single data item, up to 32 bits. More...
 
void write_cmd_addr_data (size_t cmd_bits, uint32_t cmd, size_t addr_bits, uint32_t address, const uint8_t *data, size_t length, uint8_t bus_width=1)
 
void write_byte (uint8_t data)
 
void transfer_array (uint8_t *data, size_t length)
 Write the array data, replace with received data. More...
 
void transfer_array (std::array< uint8_t, N > &data)
 
uint8_t transfer_byte (uint8_t data)
 
void write_byte16 (uint16_t data)
 Write 16 bit data. More...
 
void write_array16 (const uint16_t *data, size_t length)
 Write an array of data as 16 bit values, byte-swapping if required. More...
 
void enable ()
 
void disable ()
 
void write_array (const uint8_t *data, size_t length)
 
void write_array (const std::array< uint8_t, N > &data)
 
void write_array (const std::vector< uint8_t > &data)
 
- Public Member Functions inherited from esphome::spi::SPIClient
 SPIClient (SPIBitOrder bit_order, SPIMode mode, uint32_t data_rate)
 
bool spi_is_ready ()
 

Protected Member Functions

uint8_t pcd_read_register (PcdRegister reg) override
 Reads a uint8_t from the specified register in the MFRC522 chip. More...
 
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. More...
 
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. More...
 
- 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. More...
 
void initialize_ ()
 
void pcd_antenna_on_ ()
 Turns the antenna on by enabling pins TX1 and TX2. More...
 
void pcd_antenna_off_ ()
 Turns the antenna off by disabling pins TX1 and TX2. More...
 
void pcd_set_register_bit_mask_ (PcdRegister reg, uint8_t mask)
 Sets the bits given in mask in register reg. More...
 
void pcd_clear_register_bit_mask_ (PcdRegister reg, uint8_t mask)
 Clears the bits given in mask from register reg. More...
 
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. More...
 
void pcd_calculate_crc_ (uint8_t *data, uint8_t length)
 Use the CRC coprocessor in the MFRC522 to calculate a CRC_A. More...
 
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. More...
 
void set_interval (uint32_t interval, std::function< void()> &&f)
 
bool cancel_interval (const std::string &name)
 Cancel an interval function. More...
 
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. More...
 
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. More...
 
void set_timeout (const std::string &name, uint32_t timeout, std::function< void()> &&f)
 Set a timeout function with a unique name. More...
 
void set_timeout (uint32_t timeout, std::function< void()> &&f)
 
bool cancel_timeout (const std::string &name)
 Cancel a timeout function. More...
 
void defer (const std::string &name, std::function< void()> &&f)
 Defer a callback to the next loop() call. More...
 
void defer (std::function< void()> &&f)
 Defer a callback to the next loop() call. More...
 
bool cancel_defer (const std::string &name)
 Cancel a defer callback using the specified name, name must not be empty. More...
 

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 More...
 
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. More...
 
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. More...
 
float setup_priority_override_ {NAN}
 
const char * component_source_ {nullptr}
 
- Protected Attributes inherited from esphome::spi::SPIClient
SPIBitOrder bit_order_ {BIT_ORDER_MSB_FIRST}
 
SPIMode mode_ {MODE0}
 
uint32_t data_rate_ {1000000}
 
SPIComponentparent_ {nullptr}
 
GPIOPincs_ {nullptr}
 
SPIDelegatedelegate_ {nullptr}
 

Detailed Description

Definition at line 18 of file rc522_spi.h.

Member Function Documentation

◆ dump_config()

void esphome::rc522_spi::RC522Spi::dump_config ( )
overridevirtual

Reimplemented from esphome::rc522::RC522.

Definition at line 19 of file rc522_spi.cpp.

◆ pcd_read_register() [1/2]

uint8_t esphome::rc522_spi::RC522Spi::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 28 of file rc522_spi.cpp.

◆ pcd_read_register() [2/2]

void esphome::rc522_spi::RC522Spi::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 43 of file rc522_spi.cpp.

◆ pcd_write_register() [1/2]

void esphome::rc522_spi::RC522Spi::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 100 of file rc522_spi.cpp.

◆ pcd_write_register() [2/2]

void esphome::rc522_spi::RC522Spi::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 114 of file rc522_spi.cpp.

◆ setup()

void esphome::rc522_spi::RC522Spi::setup ( )
overridevirtual

Reimplemented from esphome::rc522::RC522.

Definition at line 12 of file rc522_spi.cpp.


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