M5Unit-NFC 0.0.3 git rev:59f5362
Loading...
Searching...
No Matches
ndef.hpp File Reference

NDEF related. More...

#include <cstdint>
#include <vector>
#include <m5_utility/stl/extension.hpp>

Go to the source code of this file.

Classes

struct  m5::nfc::ndef::type2::CapabilityContainer
 Capability container for Type2. More...
 
struct  m5::nfc::ndef::type3::AttributeBlock
 For Type 3 tag (T3T) More...
 
struct  m5::nfc::ndef::type4::FileControlTLV
 File control TLV. More...
 
struct  m5::nfc::ndef::type4::CapabilityContainer
 Capability container for Type4. More...
 
struct  m5::nfc::ndef::type5::CapabilityContainer
 Capability container for Type5. More...
 

Namespaces

namespace  m5
 Top level namespace of M5stack.
 
namespace  ndef
 For NDEF.
 
namespace  type2
 For NDEF Type2.
 
namespace  type3
 For NDEF Type3.
 
namespace  type4
 For NDEF Type4.
 
namespace  type5
 For NDEF Type5.
 

Typedefs

using m5::nfc::ndef::TagBits = uint8_t
 TLV(Tag,Length,Value) tag bit group for type2/5.
 
using m5::nfc::ndef::type4::FileControlTagBits = uint8_t
 

Enumerations

enum class  m5::nfc::ndef::Tag : uint8_t {
  Null , LockControl , MemoryControl , Message ,
  Proprietary = 0xFD , Terminator
}
 TLV(Tag,Length,Value) tag for type2/5. More...
 
enum class  m5::nfc::ndef::URIProtocol : uint8_t {
  NA , HTTP_WWW , HTTPS_WWW , HTTP ,
  HTTPS , TEL , MAILTO , FTP_AA ,
  FTP_FTP , FTPS , SFTP , SMB ,
  NFS , FTP , DEV , NEWS ,
  TELNET , IMAP , RSTP , URN ,
  POP , SIP , SIPS , TFTP ,
  BTSPP , BTL2CAP , BTGOEP , TCPOBEX ,
  IRDAOBEX , FILE , URN_EPC_ID , URN_EPC_TAG ,
  URN_EPC_PAT , URN_EPC_RAW , URN_EPC , NFC
}
 URI Identifier Code. More...
 
enum class  m5::nfc::ndef::type4::FileControlTag : uint8_t { Message = 0x04 , Proprietary = 0x05 }
 File control for File Control TLV for type4. More...
 

Functions

constexpr TagBits m5::nfc::ndef::tag_to_tagbit (const Tag t)
 Tag to TagBit.
 
template<typename... T>
constexpr TagBits m5::nfc::ndef::make_tag_bits (T... tags)
 Make TagBit from tag.
 
constexpr bool m5::nfc::ndef::contains_tag (const TagBits tb, const Tag t)
 Check whether TagBits contains given Tag.
 
bool m5::nfc::ndef::is_valid_tag (const uint8_t t)
 Is valid tag?
 
bool m5::nfc::ndef::is_terminator_tag (const uint8_t t)
 Is terminator?
 
const char * m5::nfc::ndef::get_uri_idc_string (const URIProtocol protocol)
 Get string of the URI IDC.
 
constexpr FileControlTagBits m5::nfc::ndef::type4::fc_to_fcbit (const FileControlTag t)
 Tag to TagBit.
 
template<typename... T>
constexpr FileControlTagBits m5::nfc::ndef::type4::make_fc_bits (T... fcs)
 Make FileControlBit from FileControlTag.
 
constexpr bool m5::nfc::ndef::type4::contains_file_control_tag (const FileControlTagBits tb, const FileControlTag t)
 Check whether FileControlTagBits contains given FileControl.
 

Variables

constexpr TagBits m5::nfc::ndef::tagBitsAll
 All tags.
 
constexpr TagBits m5::nfc::ndef::tagBitsMessage = make_tag_bits(m5::nfc::ndef::Tag::Message)
 Message only.
 
constexpr uint16_t m5::nfc::ndef::type4::CC_FILE_ID {0xE103}
 CC file id.
 
constexpr uint8_t m5::nfc::ndef::type4::NDEF_AID [] = {0xD2, 0x76, 0x00, 0x00, 0x85, 0x01, 0x01}
 AID for NDEF.
 
constexpr uint16_t m5::nfc::ndef::type4::NDEF_APP_FID {0xE110}
 ISO DF FID for NDEF app.
 
constexpr uint16_t m5::nfc::ndef::type4::NDEF_FILE_ID {0xE104}
 ISO EF FID for NDEF file.
 
constexpr FileControlTagBits m5::nfc::ndef::type4::fcBitsAll = make_fc_bits(FileControlTag::Message, FileControlTag::Proprietary)
 All fcs.
 
constexpr FileControlTagBits m5::nfc::ndef::type4::fcBitsMessage = make_fc_bits(FileControlTag::Message)
 Message only.
 
CapabilityContainer
constexpr uint8_t m5::nfc::ndef::NDEF_MAJOR_VERSION {1}
 Support major version.
 
constexpr uint8_t m5::nfc::ndef::NDEF_MINOR_VERSION {0}
 Support minor version.
 
constexpr uint8_t m5::nfc::ndef::MAGIC_NO_CC4 {0xE1}
 4 byte CC
 
constexpr uint8_t m5::nfc::ndef::MAGIC_NO_CC8 {0xE2}
 8 byte CC (Type5)
 
constexpr uint8_t m5::nfc::ndef::ACCESS_FREE {0x00}
 Access condition (Free access)
 
constexpr uint8_t m5::nfc::ndef::ACCESS_PROPRIETARY {0x02}
 Access condition (proprietary)
 
constexpr uint8_t m5::nfc::ndef::TYPE2_CC_BLOCK {3}
 Block for CC type2.
 
constexpr uint16_t m5::nfc::ndef::CC4_MAX_NDEF_LENGTH {2040}
 Maximum ndef length for 4 byte CC.
 

Detailed Description

NDEF related.

Enumeration Type Documentation

◆ FileControlTag

enum class m5::nfc::ndef::type4::FileControlTag : uint8_t
strong

File control for File Control TLV for type4.

Enumerator
Message 

Message.

Proprietary 

Proprietary.

◆ Tag

enum class m5::nfc::ndef::Tag : uint8_t
strong

TLV(Tag,Length,Value) tag for type2/5.

Enumerator
Null 

NULL TLV.

LockControl 

Lock control.

MemoryControl 

Memory control.

Message 

Message.

Proprietary 

Proprietary.

Terminator 

Terminator.

◆ URIProtocol

enum class m5::nfc::ndef::URIProtocol : uint8_t
strong

URI Identifier Code.

Enumerator
NA 

N/A.

HTTP_WWW 

http://www.

HTTPS_WWW 

https://www.

HTTP 

http://

HTTPS 

https://

TEL 

tel:

MAILTO 

mailto:

FTP_AA 

ftp://anonymous:anonymous@

FTP_FTP 

ftp://ftp.

FTPS 

ftps://

SFTP 

sftp://

SMB 

smb://

NFS 

nfs://

FTP 

ftp://

DEV 

dav://

NEWS 

news:

TELNET 

telnet://

IMAP 

imap:

RSTP 

rtsp://

URN 

urn:

POP 

pop:

SIP 

sip:

SIPS 

sips:

TFTP 

tftp:

BTSPP 

btspp://

BTL2CAP 

btl2cap://

BTGOEP 

btgoep://

TCPOBEX 

tcpobex://

IRDAOBEX 

irdaobex://

FILE 

file://

URN_EPC_ID 

urn:epc:id:

URN_EPC_TAG 

urn:epc:tag:

URN_EPC_PAT 

urn:epc:pat:

URN_EPC_RAW 

urn:epc:raw:

URN_EPC 

urn:epc:

NFC 

urn:nfc:

Function Documentation

◆ make_fc_bits()

template<typename... T>
FileControlTagBits m5::nfc::ndef::type4::make_fc_bits ( T... fcs)
constexpr

Make FileControlBit from FileControlTag.

Parameters
fcsFileControl(s)
Returns
FcBit

◆ make_tag_bits()

template<typename... T>
TagBits m5::nfc::ndef::make_tag_bits ( T... tags)
constexpr

Make TagBit from tag.

Parameters
tagsTag(s)
Returns
TagBit

Variable Documentation

◆ tagBitsAll

TagBits m5::nfc::ndef::tagBitsAll
constexpr
Initial value:
=
make_tag_bits(m5::nfc::ndef::Tag::LockControl, m5::nfc::ndef::Tag::MemoryControl, m5::nfc::ndef::Tag::Message,
m5::nfc::ndef::Tag::Proprietary, m5::nfc::ndef::Tag::Terminator)
constexpr TagBits make_tag_bits(T... tags)
Make TagBit from tag.
Definition ndef.hpp:95

All tags.