10#ifndef M5_UNIT_UNIFIED_NFC_NFC_V_NFCV_HPP
11#define M5_UNIT_UNIFIED_NFC_NFC_V_NFCV_HPP
58const uint8_t option_flag{0x40};
59const uint8_t address_flag{0x20};
60const uint8_t select_flag{0x10};
61const uint8_t inventory_flag{0x04};
62const uint8_t data_rate_flag{0x02};
63const uint8_t subcarrior_flag{0x01};
64const uint8_t nb_slots_flag{0x20};
65const uint8_t AFI_flag{0x10};
66constexpr uint8_t MAX_BLOCK_SIZE{32};
81 return (t != Type::Unknown) ? NFCForumTag::Type5 : NFCForumTag::None;
98 inline bool valid()
const
102 inline uint8_t manufacturerCode()
const
104 return valid() ?
uid[1] : 0xFF;
106 inline uint8_t icIdentifier()
const
108 return valid() ?
uid[2] : 0x00;
110 inline uint8_t icReference()
const
112 return valid() ?
icRef : 0xFF;
116 inline uint16_t totalSize()
const
128 return get_nfc_forum_tag_type(
type);
134 return valid() ? 0 : 0xFFFF;
139 return valid() ? (
blocks - 1) : 0xFFFF;
151 return std::memcmp(
a.uid,
b.uid, 8) == 0;
165Type identify_type(
const PICC& picc);
186constexpr uint32_t TIMEOUT_INVENTORY{16};
187constexpr uint32_t TIMEOUT_STAY_QUIET{16};
188constexpr uint32_t TIMEOUT_SELECT{16};
189constexpr uint32_t TIMEOUT_RESET_TO_READY{16};
190constexpr uint32_t TIMEOUT_GET_SYSTEM_INFORMATION{20};
191constexpr uint32_t TIMEOUT_READ_SINGLE_BLOCK{20};
192constexpr uint32_t TIMEOUT_WRITE_SINGLE_BLOCK{30};
206uint32_t encode_VCD(std::vector<uint8_t>& out,
const ModulationMode mode,
const uint8_t* buffer,
const uint32_t length,
207 const bool high_rate =
true,
const bool add_crc =
true);
216bool decode_VICC(std::vector<uint8_t>& out,
const uint8_t* buffer,
const uint32_t length,
217 const uint32_t ignore_bits = 16);
Top level namespace of M5stack.
NFCForumTag
NFC Forum Tag Type.
Definition nfc.hpp:39
Type
Type of the PICC.
Definition nfcv.hpp:31
@ TI_TAGIT_2048
Tag-it 2048.
@ NXP_ICODE_SLI
ICODE SLI.
@ TI_TAGIT_HF_I
Tag-it HF-I Standard.
@ NXP_ICODE_SLIX_2
ICODE SLIX2.
@ TI_TAGIT_HF_I_Pro
Tag-it HF-I Pro.
@ TI_TAGIT_HF_I_Plus
Tag-it HF-I Plus.
@ NXP_ICODE_SLIX
ICODE SLIX.
Command
ISO/IEC 15693 Command.
Definition nfcv.hpp:171
@ ExtendedReadSingleBlock
EXTENDED READ SINGLE BLOCK.
@ GetSystemInformaion
GET SYSTEM INFORMATION.
@ ExtendedGetSystemInfo
EXTENDED GET SYSTEM INFORMATION.
@ ExtendedWriteSingleBlock
EXTENDED WRITE SINGLE BLOCK.
@ ResetToReady
RESET TO READY.
@ ReadSingleBlock
READ SINGLE BLOCK.
@ WriteSingleBlock
WRITE SINGLE BLOCK.
ModulationMode
Definition nfcv.hpp:73
@ OneOf256
1 out of 256 pulse-position modulation
@ OneOf4
1 out of 4 pulse-position modulation
PICC for NFC-V.
Definition nfcv.hpp:88
std::string uidAsString() const
Gets the uid string.
Definition nfcv.cpp:375
uint16_t userAreaSize() const
Total user area size.
Definition nfcv.hpp:121
Type type
Type.
Definition nfcv.hpp:90
uint16_t lastUserBlock() const
Gets the last user block.
Definition nfcv.hpp:137
uint8_t afi
Application Family Identifier.
Definition nfcv.hpp:92
NFCForumTag nfcForumTagType() const
NFC ForumTag.
Definition nfcv.hpp:126
uint8_t uid[8]
UID (MSB-first)
Definition nfcv.hpp:89
uint16_t blocks
Number of blocks.
Definition nfcv.hpp:96
std::string typeAsString() const
Gets the type string.
Definition nfcv.cpp:385
uint16_t firstUserBlock() const
Gets the first user block.
Definition nfcv.hpp:132
uint8_t dsfID
Data Storage Format Identifier.
Definition nfcv.hpp:91
uint8_t block_size
Byte size of 1 block.
Definition nfcv.hpp:94
uint8_t icRef
IC Reference.
Definition nfcv.hpp:93