|
M5Unit-NFC 0.0.3 git rev:59f5362
|
Common interface layer for each chip of the NFC-B reader. More...
#include <nfc_layer_b.hpp>
Public Member Functions | |
| NFCLayerB (m5::unit::UnitST25R3916 &u) | |
| NFCLayerB (m5::unit::CapST25R3916 &u) | |
| NFCLayerB (m5::unit::UnitWS1850S &u) | |
| virtual bool | transceive (uint8_t *rx, uint16_t &rx_len, const uint8_t *tx, const uint16_t tx_len, const uint32_t timeout_ms) override |
| Transceive (RF command) | |
| virtual bool | transmit (const uint8_t *tx, const uint16_t tx_len, const uint32_t timeout_ms) override |
| Transmit only. | |
| virtual bool | receive (uint8_t *rx, uint16_t &rx_len, const uint32_t timeout_ms) override |
| Receive only. | |
| virtual m5::nfc::isodep::IsoDEP * | isoDEP () override |
| ISO-DEP interface (nullptr if not supported) | |
| virtual uint16_t | maximum_fifo_depth () const override |
| Maximum FIFO depth. | |
| bool | isActive (const m5::nfc::b::PICC &picc) const |
| Is the specified PICC currently active? | |
| const m5::nfc::b::PICC & | activatedPICC () const |
| Retrieve the currently activated PICC. | |
Detection and activation | |
| bool | request (uint8_t *atqb, uint16_t &atqb_len, const uint8_t afi=0x00, const m5::nfc::b::Require slots=m5::nfc::b::Require::Slot1, const uint32_t timeout_ms=m5::nfc::b::TIMEOUT_REQ_WUP_B) |
| Send REQB to discover a PICC in IDLE. | |
| bool | wakeup (uint8_t *atqb, uint16_t &atqb_len, const uint8_t afi=0x00, const m5::nfc::b::Require slots=m5::nfc::b::Require::Slot1, const uint32_t timeout_ms=m5::nfc::b::TIMEOUT_REQ_WUP_B) |
| Send WUPB to wake a PICC from IDLE or HALT. | |
| bool | detect (m5::nfc::b::PICC &picc, const uint8_t afi=0x00, const uint32_t timeout_ms=50U, const uint32_t req_timeout_ms=m5::nfc::b::TIMEOUT_REQ_WUP_B) |
| Detect single idle PICC. | |
| bool | detect (std::vector< m5::nfc::b::PICC > &piccs, const uint8_t afi=0x00, const uint8_t max_piccs=4, const uint32_t timeout_ms=1000U, const uint32_t req_timeout_ms=m5::nfc::b::TIMEOUT_REQ_WUP_B) |
| Detect idle PICCs. | |
| bool | select (m5::nfc::b::PICC &picc, const uint32_t timeout_ms=m5::nfc::b::TIMEOUT_ATTRIB) |
| Send REQB to discover a PICC in IDLE. | |
For activated PICC | |
| bool | hlt (const uint8_t pupi[4], const uint32_t timeout_ms=m5::nfc::b::TIMEOUT_HLTB) |
| bool | deselect (const uint8_t pupi[4], const uint8_t cid=0xFF, const uint32_t timeout_ms=m5::nfc::b::TIMEOUT_DESELECT) |
| bool | deactivate () |
Public Member Functions inherited from m5::nfc::NFCLayerInterface | |
| virtual m5::nfc::NFCForumTag | supportsNFCTag () const |
| activePICC's NDEF type | |
| virtual file_system_feature_t | supportsFilesystem () const |
| activePICC's File system | |
| virtual uint8_t | maximum_read_blocks () const |
| Maximum read blocks for NFC-F. | |
| virtual uint8_t | maximum_write_blocks () const |
| Maximum write blocks for NFC-F. | |
Protected Member Functions | |
| bool | request_wakeup (uint8_t *atqb, uint16_t &atqb_len, const uint8_t afi, const m5::nfc::b::Require slots, const bool wakeup, const uint32_t timeout_ms=m5::nfc::b::TIMEOUT_REQ_WUP_B) |
| virtual bool | read (uint8_t *rx, uint16_t &rx_len, const uint16_t saddr) override |
| Read NDEF (block) | |
| virtual bool | write (const uint16_t saddr, const uint8_t *tx, const uint16_t tx_len) override |
| Write NDEF (block) | |
| virtual uint16_t | first_user_block () const override |
| First user block. | |
| virtual uint16_t | last_user_block () const override |
| Last user block. | |
| virtual uint16_t | user_area_size () const |
| User area size (bytes) | |
| virtual uint16_t | unit_size_read () const override |
| Unit size for read. | |
| virtual uint16_t | unit_size_write () const override |
| Unit size for write. | |
Protected Attributes | |
| m5::nfc::b::PICC | _activePICC {} |
| m5::nfc::ndef::NDEFLayer | _ndef |
| m5::nfc::isodep::IsoDEP | _isoDEP |
Common interface layer for each chip of the NFC-B reader.
|
inline |
Retrieve the currently activated PICC.
| bool m5::nfc::NFCLayerB::detect | ( | m5::nfc::b::PICC & | picc, |
| const uint8_t | afi = 0x00, | ||
| const uint32_t | timeout_ms = 50U, | ||
| const uint32_t | req_timeout_ms = m5::nfc::b::TIMEOUT_REQ_WUP_B ) |
Detect single idle PICC.
| [out] | picc | Detected PICC |
| afi | Application Family Identifier (0x00 all) | |
| timeout_ms | Polling time budget in milliseconds |
| bool m5::nfc::NFCLayerB::detect | ( | std::vector< m5::nfc::b::PICC > & | piccs, |
| const uint8_t | afi = 0x00, | ||
| const uint8_t | max_piccs = 4, | ||
| const uint32_t | timeout_ms = 1000U, | ||
| const uint32_t | req_timeout_ms = m5::nfc::b::TIMEOUT_REQ_WUP_B ) |
Detect idle PICCs.
| [out] | piccs | Detected PICC PICCs (one per activated PICC candidate) |
| afi | Application Family Identifier (0x00 all) | |
| max_picc | How many to detect | |
| timeout_ms | Polling time budget in milliseconds |
|
inlineoverrideprotectedvirtual |
First user block.
Implements m5::nfc::NFCLayerInterface.
|
inline |
Is the specified PICC currently active?
| picc | PICC to check |
|
inlineoverridevirtual |
ISO-DEP interface (nullptr if not supported)
Reimplemented from m5::nfc::NFCLayerInterface.
|
inlineoverrideprotectedvirtual |
Last user block.
Implements m5::nfc::NFCLayerInterface.
|
overridevirtual |
Maximum FIFO depth.
Implements m5::nfc::NFCLayerInterface.
|
inlineoverrideprotectedvirtual |
Read NDEF (block)
Implements m5::nfc::NFCLayerInterface.
|
overridevirtual |
Receive only.
Reimplemented from m5::nfc::NFCLayerInterface.
|
inline |
Send REQB to discover a PICC in IDLE.
| [out] | atqb | ATQB received from PICC (at atqb_len) |
| [in/out] | in:atqb length out:actual received length | |
| afi | Application Family Identifier (0x00 all) | |
| slots | Number of slots required |
| bool m5::nfc::NFCLayerB::select | ( | m5::nfc::b::PICC & | picc, |
| const uint32_t | timeout_ms = m5::nfc::b::TIMEOUT_ATTRIB ) |
Send REQB to discover a PICC in IDLE.
| [out] | atqb | ATQB received from PICC (at atqb_len) |
| [in/out] | in:atqb length out:actual received length | |
| afi | Application Family Identifier (0x00 all) | |
| slots | Number of slots required |
|
overridevirtual |
Transceive (RF command)
Reimplemented from m5::nfc::NFCLayerInterface.
|
overridevirtual |
Transmit only.
Reimplemented from m5::nfc::NFCLayerInterface.
|
inlineoverrideprotectedvirtual |
Unit size for read.
Implements m5::nfc::NFCLayerInterface.
|
inlineoverrideprotectedvirtual |
Unit size for write.
Implements m5::nfc::NFCLayerInterface.
|
inlineprotectedvirtual |
User area size (bytes)
Implements m5::nfc::NFCLayerInterface.
|
inline |
Send WUPB to wake a PICC from IDLE or HALT.
| [out] | atqb | ATQB received from PICC (at least atqb_len) |
| [in/out] | in:atqb length out:actual received length | |
| afi | Application Family Identifier (0x00 all) | |
| slots | Number of slots required |
|
inlineoverrideprotectedvirtual |
Write NDEF (block)
Implements m5::nfc::NFCLayerInterface.