nRF Connect SDK API 3.3.99
Loading...
Searching...
No Matches
record.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2018 Nordic Semiconductor ASA
3 *
4 * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause
5 */
6
7#ifndef NFC_NDEF_RECORD_H_
8#define NFC_NDEF_RECORD_H_
9
10#include <zephyr/types.h>
11
12#ifdef __cplusplus
13extern "C" {
14#endif
15
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
39
57typedef int (*payload_constructor_t)(void *payload_descriptor, uint8_t *buffer, uint32_t *len);
85
107
119
121#define NDEF_RECORD_LOCATION_MASK (NDEF_LONE_RECORD)
122
127 uint8_t const *payload;
128 uint32_t payload_length;
129};
130
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 = { \
158 .tnf = tnf_arg, \
159 .id_length = id_len, \
160 .id = id_arg, \
161 .type_length = type_len, \
162 .type = type_arg, \
163 .payload_constructor = (payload_constructor_t)payload_constructor_arg, \
164 .payload_descriptor = (void *)payload_descriptor_arg}
165
169#define NFC_NDEF_GENERIC_RECORD_DESC(name) (name##_ndef_generic_record_desc)
170
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}; \
198 \
199 struct nfc_ndef_record_desc name##_nfc_ndef_bin_record_desc = { \
200 .tnf = tnf_arg, \
201 .id_length = id_len, \
202 .id = id_arg, \
203 .type_length = type_len, \
204 .type = type_arg, \
205 .payload_constructor = (payload_constructor_t)nfc_ndef_bin_payload_memcopy, \
206 .payload_descriptor = (void *)&name##_nfc_ndef_bin_payload_desc}
207
211#define NFC_NDEF_RECORD_BIN_DATA(name) (name##_nfc_ndef_bin_record_desc)
212
217#define NFC_NDEF_BIN_PAYLOAD_DESC(name) (name##_nfc_ndef_bin_payload_desc)
218
235int nfc_ndef_record_encode(struct nfc_ndef_record_desc const *ndef_record_desc,
236 enum nfc_ndef_record_location const record_location,
237 uint8_t *record_buffer, uint32_t *record_len);
238
256 uint8_t *buffer, uint32_t *len);
257
262#ifdef __cplusplus
263}
264#endif
265
266#endif /* NFC_NDEF_RECORD_H_ */
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