nRF Connect SDK API
3.4.99
Toggle main menu visibility
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
13
extern
"C"
{
14
#endif
15
25
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
57
typedef
int (*
payload_constructor_t
)(
void
*payload_descriptor, uint8_t *buffer, uint32_t *len);
63
enum
nfc_ndef_record_tnf
{
67
TNF_EMPTY
= 0x00,
69
TNF_WELL_KNOWN
= 0x01,
71
TNF_MEDIA_TYPE
= 0x02,
73
TNF_ABSOLUTE_URI
= 0x03,
75
TNF_EXTERNAL_TYPE
= 0x04,
79
TNF_UNKNOWN_TYPE
= 0x05,
81
TNF_UNCHANGED
= 0x06,
83
TNF_RESERVED
= 0x07,
84
};
85
89
struct
nfc_ndef_record_desc
{
91
enum
nfc_ndef_record_tnf
tnf
;
95
uint8_t
id_length
;
97
uint8_t
const
*
id
;
99
uint8_t
type_length
;
101
uint8_t
const
*
type
;
103
payload_constructor_t
payload_constructor
;
105
void
*
payload_descriptor
;
106
};
107
113
enum
nfc_ndef_record_location
{
114
NDEF_FIRST_RECORD
= 0x80,
115
NDEF_MIDDLE_RECORD
= 0x00,
116
NDEF_LAST_RECORD
= 0x40,
117
NDEF_LONE_RECORD
= 0xC0
118
};
119
121
#define NDEF_RECORD_LOCATION_MASK (NDEF_LONE_RECORD)
122
126
struct
nfc_ndef_bin_payload_desc
{
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
235
int
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
255
int
nfc_ndef_bin_payload_memcopy
(
struct
nfc_ndef_bin_payload_desc
*payload_descriptor,
256
uint8_t *buffer, uint32_t *len);
257
261
262
#ifdef __cplusplus
263
}
264
#endif
265
266
#endif
/* NFC_NDEF_RECORD_H_ */
payload_constructor_t
int(* payload_constructor_t)(void *payload_descriptor, uint8_t *buffer, uint32_t *len)
Payload constructor type.
Definition
record.h:57
nfc_ndef_record_tnf
nfc_ndef_record_tnf
Type Name Format (TNF) Field Values.
Definition
record.h:63
TNF_UNKNOWN_TYPE
@ TNF_UNKNOWN_TYPE
Definition
record.h:79
TNF_ABSOLUTE_URI
@ TNF_ABSOLUTE_URI
Definition
record.h:73
TNF_RESERVED
@ TNF_RESERVED
Definition
record.h:83
TNF_EMPTY
@ TNF_EMPTY
Definition
record.h:67
TNF_MEDIA_TYPE
@ TNF_MEDIA_TYPE
Definition
record.h:71
TNF_UNCHANGED
@ TNF_UNCHANGED
Definition
record.h:81
TNF_WELL_KNOWN
@ TNF_WELL_KNOWN
Definition
record.h:69
TNF_EXTERNAL_TYPE
@ TNF_EXTERNAL_TYPE
Definition
record.h:75
nfc_ndef_bin_payload_memcopy
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
nfc_ndef_record_location
Record position within the NDEF message.
Definition
record.h:113
NDEF_LONE_RECORD
@ NDEF_LONE_RECORD
Definition
record.h:117
NDEF_FIRST_RECORD
@ NDEF_FIRST_RECORD
Definition
record.h:114
NDEF_MIDDLE_RECORD
@ NDEF_MIDDLE_RECORD
Definition
record.h:115
NDEF_LAST_RECORD
@ NDEF_LAST_RECORD
Definition
record.h:116
nfc_ndef_record_encode
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.
nfc_ndef_bin_payload_desc::payload_length
uint32_t payload_length
Definition
record.h:128
nfc_ndef_bin_payload_desc::payload
uint8_t const * payload
Definition
record.h:127
nfc_ndef_bin_payload_desc
Binary data descriptor containing the payload for the record.
Definition
record.h:126
nfc_ndef_record_desc::type_length
uint8_t type_length
Definition
record.h:99
nfc_ndef_record_desc::payload_descriptor
void * payload_descriptor
Definition
record.h:105
nfc_ndef_record_desc::id
uint8_t const * id
Definition
record.h:97
nfc_ndef_record_desc::payload_constructor
payload_constructor_t payload_constructor
Definition
record.h:103
nfc_ndef_record_desc::type
uint8_t const * type
Definition
record.h:101
nfc_ndef_record_desc::tnf
enum nfc_ndef_record_tnf tnf
Definition
record.h:91
nfc_ndef_record_desc::id_length
uint8_t id_length
Definition
record.h:95
nfc_ndef_record_desc
NDEF record descriptor.
Definition
record.h:89
include
nfc
ndef
record.h
Generated on
for nRF Connect SDK API by
1.17.0