76 void setup()
override;
103 bool transceive_ex_(
const uint8_t *data,
size_t len, uint8_t *resp, uint8_t resp_cap, uint8_t &resp_len,
This class simplifies creating components that periodically check a state.
uint32_t last_state_change_
void write_register_table_(const uint8_t(*table)[2], size_t count)
virtual void read_fifo(uint8_t *data, size_t len)=0
bool tag_found_this_scan_
static constexpr uint8_t IRQ_COL
static constexpr uint8_t IRQ_RXE
static constexpr uint8_t MISS_THRESHOLD
void set_reset_pin(GPIOPin *reset_pin)
static constexpr uint8_t IRQ_TXE
virtual void write_command(uint8_t command)=0
LazyCallbackManager< void(const std::string &, const nfc::NfcTag &)> on_tag_callback_
void add_on_tag_callback(F &&callback)
void set_rf_power(uint8_t power)
bool transceive_ex_(const uint8_t *data, size_t len, uint8_t *resp, uint8_t resp_cap, uint8_t &resp_len, uint32_t timeout_ms)
void send_anticol_frame_()
virtual void write_register(uint8_t reg, uint8_t value)=0
static constexpr uint32_t FIELD_GUARD_MS
virtual void write_fifo(const uint8_t *data, size_t len)=0
LazyCallbackManager< void(const std::string &, const nfc::NfcTag &)> on_tag_removed_callback_
void dump_config() override
virtual uint8_t read_register(uint8_t reg)=0
InternalGPIOPin * irq_pin_
void add_on_tag_removed_callback(F &&callback)
static void isr(ST25R *arg)
void set_irq_pin(InternalGPIOPin *irq_pin)
std::unique_ptr< nfc::NfcTag > current_tag_
@ ST25R_REG_UNDERSHOOT_CONF2
@ ST25R_REG_FIELD_THRESHOLD_DEACTV
@ ST25R_REG_NUM_TX_BYTES2
@ ST25R_REG_UNDERSHOOT_CONF1
@ ST25R_REG_PASSIVE_TARGET
@ ST25R_REG_OVERSHOOT_CONF1
@ ST25R_REG_TX_DRIVER_CONF
@ ST25R_REG_OVERSHOOT_CONF2
@ ST25R_REG_REGULATOR_CONTROL
@ ST25R_REG_NUM_TX_BYTES1
@ ST25R_REG_AD_CONV_RESULT
@ ST25R_REG_FIELD_THRESHOLD_ACTV
@ ST25R_REG_ISO14443A_CONF
@ ST25R_CMD_TRANSMIT_WUPA
@ ST25R_CMD_TRANSMIT_WITHOUT_CRC
@ ST25R_CMD_TRANSMIT_WITH_CRC
@ ST25R_CMD_ADJUST_REGULATORS
@ ST25R_CMD_RESET_RX_GAIN