ESPHome 2026.11.0-dev
Loading...
Searching...
No Matches
esphome::nfc::NciMessage Class Reference

One NCI packet, held in a fixed buffer so building and reading messages never allocates. More...

#include <nci_message.h>

Public Types

using Buffer = StaticVector<uint8_t, NCI_PKT_MAX_SIZE>
 

Public Member Functions

 NciMessage ()
 
 NciMessage (uint8_t message_type, std::span< const uint8_t > payload)
 
 NciMessage (uint8_t message_type, std::initializer_list< uint8_t > payload)
 
 NciMessage (uint8_t message_type, uint8_t gid, uint8_t oid)
 
 NciMessage (uint8_t message_type, uint8_t gid, uint8_t oid, std::span< const uint8_t > payload)
 
 NciMessage (uint8_t message_type, uint8_t gid, uint8_t oid, std::initializer_list< uint8_t > payload)
 
 NciMessage (std::span< const uint8_t > raw_packet)
 
std::span< const uint8_t > encode ()
 Stamps the payload length into the header and returns the packet ready to send.
 
void reset ()
 
uint8_t get_message_type () const
 
uint8_t get_gid () const
 
uint8_t get_oid () const
 
uint8_t get_payload_size (bool recompute=false)
 
uint8_t get_simple_status_response () const
 
uint8_t get_message_byte (uint8_t offset) const
 
Buffer & get_message ()
 
const Buffer & get_message () const
 
std::span< const uint8_t > get_payload () const
 The payload bytes that follow the header.
 
bool has_payload () const
 
bool message_type_is (uint8_t message_type) const
 
bool message_length_is (uint8_t message_length, bool recompute=false)
 
bool gid_is (uint8_t gid) const
 
bool oid_is (uint8_t oid) const
 
bool simple_status_response_is (uint8_t response) const
 
void set_header (uint8_t message_type, uint8_t gid, uint8_t oid)
 
void set_message (uint8_t message_type, std::span< const uint8_t > payload)
 
void set_message (uint8_t message_type, uint8_t gid, uint8_t oid, std::span< const uint8_t > payload)
 
void set_message_type (uint8_t message_type)
 
void set_gid (uint8_t gid)
 
void set_oid (uint8_t oid)
 
void set_payload (std::span< const uint8_t > payload)
 
void set_payload (std::initializer_list< uint8_t > payload)
 
void append (std::span< const uint8_t > data)
 Appends bytes to the payload; bytes that do not fit are dropped.
 
void append (std::initializer_list< uint8_t > data)
 
void set_payload_size (uint8_t size)
 Sets the packet size to the header plus size payload bytes, for a bus driver filling the buffer directly.
 

Protected Attributes

Buffer nci_message_
 

Detailed Description

One NCI packet, held in a fixed buffer so building and reading messages never allocates.

Definition at line 16 of file nci_message.h.

Member Typedef Documentation

◆ Buffer

using esphome::nfc::NciMessage::Buffer = StaticVector<uint8_t, NCI_PKT_MAX_SIZE>

Definition at line 18 of file nci_message.h.

Constructor & Destructor Documentation

◆ NciMessage() [1/7]

esphome::nfc::NciMessage::NciMessage ( )
inline

Definition at line 20 of file nci_message.h.

◆ NciMessage() [2/7]

esphome::nfc::NciMessage::NciMessage ( uint8_t message_type,
std::span< const uint8_t > payload )

Definition at line 7 of file nci_message.cpp.

◆ NciMessage() [3/7]

esphome::nfc::NciMessage::NciMessage ( uint8_t message_type,
std::initializer_list< uint8_t > payload )

Definition at line 11 of file nci_message.cpp.

◆ NciMessage() [4/7]

esphome::nfc::NciMessage::NciMessage ( uint8_t message_type,
uint8_t gid,
uint8_t oid )

Definition at line 14 of file nci_message.cpp.

◆ NciMessage() [5/7]

esphome::nfc::NciMessage::NciMessage ( uint8_t message_type,
uint8_t gid,
uint8_t oid,
std::span< const uint8_t > payload )

Definition at line 19 of file nci_message.cpp.

◆ NciMessage() [6/7]

esphome::nfc::NciMessage::NciMessage ( uint8_t message_type,
uint8_t gid,
uint8_t oid,
std::initializer_list< uint8_t > payload )

Definition at line 24 of file nci_message.cpp.

◆ NciMessage() [7/7]

esphome::nfc::NciMessage::NciMessage ( std::span< const uint8_t > raw_packet)
explicit

Definition at line 28 of file nci_message.cpp.

Member Function Documentation

◆ append() [1/2]

void esphome::nfc::NciMessage::append ( std::initializer_list< uint8_t > data)
inline

Definition at line 62 of file nci_message.h.

◆ append() [2/2]

void esphome::nfc::NciMessage::append ( std::span< const uint8_t > data)

Appends bytes to the payload; bytes that do not fit are dropped.

Definition at line 174 of file nci_message.cpp.

◆ encode()

std::span< const uint8_t > esphome::nfc::NciMessage::encode ( )

Stamps the payload length into the header and returns the packet ready to send.

Definition at line 32 of file nci_message.cpp.

◆ get_gid()

uint8_t esphome::nfc::NciMessage::get_gid ( ) const

Definition at line 46 of file nci_message.cpp.

◆ get_message() [1/2]

Buffer & esphome::nfc::NciMessage::get_message ( )
inline

Definition at line 38 of file nci_message.h.

◆ get_message() [2/2]

const Buffer & esphome::nfc::NciMessage::get_message ( ) const
inline

Definition at line 39 of file nci_message.h.

◆ get_message_byte()

uint8_t esphome::nfc::NciMessage::get_message_byte ( uint8_t offset) const

Definition at line 67 of file nci_message.cpp.

◆ get_message_type()

uint8_t esphome::nfc::NciMessage::get_message_type ( ) const

Definition at line 44 of file nci_message.cpp.

◆ get_oid()

uint8_t esphome::nfc::NciMessage::get_oid ( ) const

Definition at line 48 of file nci_message.cpp.

◆ get_payload()

std::span< const uint8_t > esphome::nfc::NciMessage::get_payload ( ) const

The payload bytes that follow the header.

Definition at line 74 of file nci_message.cpp.

◆ get_payload_size()

uint8_t esphome::nfc::NciMessage::get_payload_size ( bool recompute = false)

Definition at line 50 of file nci_message.cpp.

◆ get_simple_status_response()

uint8_t esphome::nfc::NciMessage::get_simple_status_response ( ) const

Definition at line 60 of file nci_message.cpp.

◆ gid_is()

bool esphome::nfc::NciMessage::gid_is ( uint8_t gid) const

Definition at line 100 of file nci_message.cpp.

◆ has_payload()

bool esphome::nfc::NciMessage::has_payload ( ) const

Definition at line 81 of file nci_message.cpp.

◆ message_length_is()

bool esphome::nfc::NciMessage::message_length_is ( uint8_t message_length,
bool recompute = false )

Definition at line 90 of file nci_message.cpp.

◆ message_type_is()

bool esphome::nfc::NciMessage::message_type_is ( uint8_t message_type) const

Definition at line 83 of file nci_message.cpp.

◆ oid_is()

bool esphome::nfc::NciMessage::oid_is ( uint8_t oid) const

Definition at line 107 of file nci_message.cpp.

◆ reset()

void esphome::nfc::NciMessage::reset ( )

Definition at line 37 of file nci_message.cpp.

◆ set_gid()

void esphome::nfc::NciMessage::set_gid ( uint8_t gid)

Definition at line 153 of file nci_message.cpp.

◆ set_header()

void esphome::nfc::NciMessage::set_header ( uint8_t message_type,
uint8_t gid,
uint8_t oid )

Definition at line 121 of file nci_message.cpp.

◆ set_message() [1/2]

void esphome::nfc::NciMessage::set_message ( uint8_t message_type,
std::span< const uint8_t > payload )

Definition at line 129 of file nci_message.cpp.

◆ set_message() [2/2]

void esphome::nfc::NciMessage::set_message ( uint8_t message_type,
uint8_t gid,
uint8_t oid,
std::span< const uint8_t > payload )

Definition at line 137 of file nci_message.cpp.

◆ set_message_type()

void esphome::nfc::NciMessage::set_message_type ( uint8_t message_type)

Definition at line 145 of file nci_message.cpp.

◆ set_oid()

void esphome::nfc::NciMessage::set_oid ( uint8_t oid)

Definition at line 161 of file nci_message.cpp.

◆ set_payload() [1/2]

void esphome::nfc::NciMessage::set_payload ( std::initializer_list< uint8_t > payload)
inline

Definition at line 57 of file nci_message.h.

◆ set_payload() [2/2]

void esphome::nfc::NciMessage::set_payload ( std::span< const uint8_t > payload)

Definition at line 168 of file nci_message.cpp.

◆ set_payload_size()

void esphome::nfc::NciMessage::set_payload_size ( uint8_t size)

Sets the packet size to the header plus size payload bytes, for a bus driver filling the buffer directly.

Definition at line 180 of file nci_message.cpp.

◆ simple_status_response_is()

bool esphome::nfc::NciMessage::simple_status_response_is ( uint8_t response) const

Definition at line 114 of file nci_message.cpp.

Field Documentation

◆ nci_message_

Buffer esphome::nfc::NciMessage::nci_message_
protected

Definition at line 69 of file nci_message.h.


The documentation for this class was generated from the following files: