ESPHome 2026.5.0b1
Loading...
Searching...
No Matches
nci_message.h
Go to the documentation of this file.
1#pragma once
2
4#include "esphome/core/log.h"
5
6#include <vector>
7
8namespace esphome::nfc {
9
11 public:
13 NciMessage(uint8_t message_type, const std::vector<uint8_t> &payload);
14 NciMessage(uint8_t message_type, uint8_t gid, uint8_t oid);
15 NciMessage(uint8_t message_type, uint8_t gid, uint8_t oid, const std::vector<uint8_t> &payload);
16 NciMessage(const std::vector<uint8_t> &raw_packet);
17
18 std::vector<uint8_t> encode();
19 void reset();
20
21 uint8_t get_message_type() const;
22 uint8_t get_gid() const;
23 uint8_t get_oid() const;
24 uint8_t get_payload_size(bool recompute = false);
25 uint8_t get_simple_status_response() const;
26 uint8_t get_message_byte(uint8_t offset) const;
27 std::vector<uint8_t> &get_message();
28
29 bool has_payload() const;
30 bool message_type_is(uint8_t message_type) const;
31 bool message_length_is(uint8_t message_length, bool recompute = false);
32 bool gid_is(uint8_t gid) const;
33 bool oid_is(uint8_t oid) const;
34 bool simple_status_response_is(uint8_t response) const;
35
36 void set_header(uint8_t message_type, uint8_t gid, uint8_t oid);
37 void set_message(uint8_t message_type, const std::vector<uint8_t> &payload);
38 void set_message(uint8_t message_type, uint8_t gid, uint8_t oid, const std::vector<uint8_t> &payload);
39 void set_message_type(uint8_t message_type);
40 void set_gid(uint8_t gid);
41 void set_oid(uint8_t oid);
42 void set_payload(const std::vector<uint8_t> &payload);
43
44 protected:
45 std::vector<uint8_t> nci_message_{0, 0, 0}; // three bytes, MT/PBF/GID, OID, payload length/size
46};
47
48} // namespace esphome::nfc
uint8_t get_payload_size(bool recompute=false)
bool message_type_is(uint8_t message_type) const
uint8_t get_oid() const
std::vector< uint8_t > encode()
bool simple_status_response_is(uint8_t response) const
uint8_t get_message_byte(uint8_t offset) const
bool gid_is(uint8_t gid) const
void set_gid(uint8_t gid)
std::vector< uint8_t > & get_message()
void set_message(uint8_t message_type, const std::vector< uint8_t > &payload)
void set_header(uint8_t message_type, uint8_t gid, uint8_t oid)
bool message_length_is(uint8_t message_length, bool recompute=false)
void set_oid(uint8_t oid)
void set_payload(const std::vector< uint8_t > &payload)
uint8_t get_gid() const
std::vector< uint8_t > nci_message_
Definition nci_message.h:45
void set_message_type(uint8_t message_type)
uint8_t get_simple_status_response() const
bool oid_is(uint8_t oid) const
uint8_t get_message_type() const