7#ifndef NFC_NDEF_RECORD_H_
8#define NFC_NDEF_RECORD_H_
10#include <zephyr/types.h>
27#define NDEF_RECORD_IL_MASK 0x08
29#define NDEF_RECORD_TNF_MASK 0x07
33#define NDEF_RECORD_SR_MASK 0x10
35#define NDEF_RECORD_PAYLOAD_LEN_LONG_SIZE 4
37#define NDEF_RECORD_PAYLOAD_LEN_SHORT_SIZE 1
38#define NDEF_RECORD_ID_LEN_SIZE 1
121#define NDEF_RECORD_LOCATION_MASK (NDEF_LONE_RECORD)
155#define NFC_NDEF_GENERIC_RECORD_DESC_DEF(name, tnf_arg, id_arg, id_len, type_arg, type_len, \
156 payload_constructor_arg, payload_descriptor_arg) \
157 struct nfc_ndef_record_desc name##_ndef_generic_record_desc = { \
159 .id_length = id_len, \
161 .type_length = type_len, \
163 .payload_constructor = (payload_constructor_t)payload_constructor_arg, \
164 .payload_descriptor = (void *)payload_descriptor_arg}
169#define NFC_NDEF_GENERIC_RECORD_DESC(name) (name##_ndef_generic_record_desc)
194#define NFC_NDEF_RECORD_BIN_DATA_DEF(name, tnf_arg, id_arg, id_len, type_arg, type_len, \
195 payload_arg, payload_len) \
196 struct nfc_ndef_bin_payload_desc name##_nfc_ndef_bin_payload_desc = { \
197 .payload = payload_arg, .payload_length = payload_len}; \
199 struct nfc_ndef_record_desc name##_nfc_ndef_bin_record_desc = { \
201 .id_length = id_len, \
203 .type_length = type_len, \
205 .payload_constructor = (payload_constructor_t)nfc_ndef_bin_payload_memcopy, \
206 .payload_descriptor = (void *)&name##_nfc_ndef_bin_payload_desc}
211#define NFC_NDEF_RECORD_BIN_DATA(name) (name##_nfc_ndef_bin_record_desc)
217#define NFC_NDEF_BIN_PAYLOAD_DESC(name) (name##_nfc_ndef_bin_payload_desc)
237 uint8_t *record_buffer, uint32_t *record_len);
256 uint8_t *buffer, uint32_t *len);
int(* payload_constructor_t)(void *payload_descriptor, uint8_t *buffer, uint32_t *len)
Payload constructor type.
Definition record.h:57
nfc_ndef_record_tnf
Type Name Format (TNF) Field Values.
Definition record.h:63
@ TNF_UNKNOWN_TYPE
Definition record.h:79
@ TNF_ABSOLUTE_URI
Definition record.h:73
@ TNF_RESERVED
Definition record.h:83
@ TNF_EMPTY
Definition record.h:67
@ TNF_MEDIA_TYPE
Definition record.h:71
@ TNF_UNCHANGED
Definition record.h:81
@ TNF_WELL_KNOWN
Definition record.h:69
@ TNF_EXTERNAL_TYPE
Definition record.h:75
int nfc_ndef_bin_payload_memcopy(struct nfc_ndef_bin_payload_desc *payload_descriptor, uint8_t *buffer, uint32_t *len)
Construct the payload for an NFC NDEF record from binary data.
nfc_ndef_record_location
Record position within the NDEF message.
Definition record.h:113
@ NDEF_LONE_RECORD
Definition record.h:117
@ NDEF_FIRST_RECORD
Definition record.h:114
@ NDEF_MIDDLE_RECORD
Definition record.h:115
@ NDEF_LAST_RECORD
Definition record.h:116
int nfc_ndef_record_encode(struct nfc_ndef_record_desc const *ndef_record_desc, enum nfc_ndef_record_location const record_location, uint8_t *record_buffer, uint32_t *record_len)
Encode an NDEF record.
uint32_t payload_length
Definition record.h:128
uint8_t const * payload
Definition record.h:127
Binary data descriptor containing the payload for the record.
Definition record.h:126
uint8_t type_length
Definition record.h:99
void * payload_descriptor
Definition record.h:105
uint8_t const * id
Definition record.h:97
payload_constructor_t payload_constructor
Definition record.h:103
uint8_t const * type
Definition record.h:101
enum nfc_ndef_record_tnf tnf
Definition record.h:91
uint8_t id_length
Definition record.h:95
NDEF record descriptor.
Definition record.h:89