17#ifndef M5_UNIT_NFC_NFC_LAYER_F_EMULATION_LAYER_F_HPP
18#define M5_UNIT_NFC_NFC_LAYER_F_EMULATION_LAYER_F_HPP
45 enum class State { None, Off, Communicated, Selected };
82 virtual State receive_callback(
const State s,
const uint8_t* rx,
const uint32_t rx_len);
85 void update_expired();
89 void update_communicated();
90 void update_selected();
94 uint32_t _memory_size{};
97 State _state{}, _prev{};
98 uint32_t _expired_ms{60 * 1000u};
99 unsigned int _expired_at{};
100 std::unique_ptr<Adapter> _impl;
106struct EmulationLayerF::Adapter {
107 virtual ~Adapter() =
default;
110 virtual bool stop_emulation() = 0;
111 virtual bool transmit(
const uint8_t* tx,
const uint16_t tx_len,
const uint32_t timeout_ms) = 0;
113 virtual EmulationLayerF::State update_off() = 0;
114 virtual EmulationLayerF::State update_communicated() = 0;
115 virtual EmulationLayerF::State update_selected() = 0;
Common interface layer for each chip of the NFC-F emulation.
Definition emulation_layer_f.hpp:39
void setExpiredTime(const uint32_t ms)
Sets the expiration time (ms)
Definition emulation_layer_f.hpp:70
State state() const
Gets the current emulation state.
Definition emulation_layer_f.hpp:55
const m5::nfc::f::PICC & emulatePICC() const
Gets the emulated PICC information.
Definition emulation_layer_f.hpp:60
State
Emulation state for NFC-F.
Definition emulation_layer_f.hpp:45
bool end()
End NFC-F emulation.
Definition emulation_layer_f.cpp:88
bool begin(const m5::nfc::f::PICC &picc, uint8_t *ptr, const uint32_t size)
Begin NFC-F emulation.
Definition emulation_layer_f.cpp:70
uint32_t expiredTime() const
Gets the expiration time (ms)
Definition emulation_layer_f.hpp:65
void update()
Update emulation state machine.
Definition emulation_layer_f.cpp:98
ST25R3916 unit in CapCC1101 (SPI)
Definition unit_ST25R3916.hpp:2150
ST25R3916 Unit.
Definition unit_ST25R3916.hpp:39
Top level namespace of M5Stack.
PICC information for NFC-F.
Definition nfcf.hpp:494