ESPHome 2026.11.0-dev
Loading...
Searching...
No Matches
ndef_message.h
Go to the documentation of this file.
1#pragma once
2
3#include <memory>
4#include <span>
5#include <vector>
6
8#include "esphome/core/log.h"
9#include "ndef_record.h"
10#include "ndef_record_text.h"
11#include "ndef_record_uri.h"
12
13namespace esphome::nfc {
14
15static constexpr uint8_t MAX_NDEF_RECORDS = 4;
18
20 public:
21 NdefMessage() = default;
22 NdefMessage(std::span<const uint8_t> data);
23 NdefMessage(std::vector<uint8_t> &data) : NdefMessage(std::span<const uint8_t>(data)) {}
25 for (const auto &r : msg.records_) {
26 records_.emplace_next() = r->clone();
27 }
28 }
29
30 const NdefRecords &get_records() const { return this->records_; };
31
32 bool add_record(std::unique_ptr<NdefRecord> record);
33 bool add_text_record(const std::string &text);
34 bool add_text_record(const std::string &text, const std::string &encoding);
35 bool add_uri_record(const std::string &uri);
36
37 std::vector<uint8_t> encode();
38
39 protected:
41};
42
43} // namespace esphome::nfc
NdefMessage(const NdefMessage &msg)
bool add_uri_record(const std::string &uri)
NdefMessage(std::vector< uint8_t > &data)
bool add_text_record(const std::string &text)
bool add_record(std::unique_ptr< NdefRecord > record)
std::vector< uint8_t > encode()
const NdefRecords & get_records() const
STL namespace.