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