1
0
mirror of https://github.com/esphome/esphome.git synced 2025-02-23 13:28:15 +00:00
esphome/esphome/components/nfc/ndef_message.h
JonasEr 4c390d9f9f
Extend nfc ndef records with Text (#2191)
Co-authored-by: Oxan van Leeuwen <oxan@oxanvanleeuwen.nl>
2021-09-27 09:38:08 +13:00

42 lines
1008 B
C++

#pragma once
#include <memory>
#include "esphome/core/helpers.h"
#include "esphome/core/log.h"
#include "ndef_record.h"
#include "ndef_record_text.h"
#include "ndef_record_uri.h"
namespace esphome {
namespace nfc {
static const uint8_t MAX_NDEF_RECORDS = 4;
class NdefMessage {
public:
NdefMessage() = default;
NdefMessage(std::vector<uint8_t> &data);
NdefMessage(const NdefMessage &msg) {
records_.reserve(msg.records_.size());
for (const auto &r : msg.records_) {
records_.emplace_back(r->clone());
}
}
const std::vector<std::shared_ptr<NdefRecord>> &get_records() { return this->records_; };
bool add_record(std::unique_ptr<NdefRecord> record);
bool add_text_record(const std::string &text);
bool add_text_record(const std::string &text, const std::string &encoding);
bool add_uri_record(const std::string &uri);
std::vector<uint8_t> encode();
protected:
std::vector<std::shared_ptr<NdefRecord>> records_;
};
} // namespace nfc
} // namespace esphome