21#include <zephyr/types.h>
34#define NFC_NDEF_CH_REC_TYPE_LENGTH 2
91#define NFC_NDEF_CH_AC_CPS_MASK (NFC_AC_CPS_UNKNOWN)
190#define NFC_NDEF_CH_RECORD_DESC_DEF(_name, _rec_type_field, _major_version, _minor_version, \
192 NFC_NDEF_MSG_DEF(_name, _max_records); \
193 struct nfc_ndef_ch_rec _name##_nfc_ch_rec = {.major_version = _major_version, \
194 .minor_version = _minor_version, \
195 .local_records = &NFC_NDEF_MSG(_name)}; \
196 NFC_NDEF_GENERIC_RECORD_DESC_DEF(_name, TNF_WELL_KNOWN, 0, 0, _rec_type_field, \
197 NFC_NDEF_CH_REC_TYPE_LENGTH, \
198 nfc_ndef_ch_rec_payload_encode, &(_name##_nfc_ch_rec))
220#define NFC_NDEF_CH_HS_RECORD_DESC_DEF(_name, _major_version, _minor_version, _max_records) \
221 NFC_NDEF_CH_RECORD_DESC_DEF(_name, nfc_ndef_ch_hs_rec_type_field, _major_version, \
222 _minor_version, _max_records)
244#define NFC_NDEF_CH_HR_RECORD_DESC_DEF(_name, _major_version, _minor_version, _max_records) \
245 NFC_NDEF_CH_RECORD_DESC_DEF(_name, nfc_ndef_ch_hr_rec_type_field, _major_version, \
246 _minor_version, _max_records)
268#define NFC_NDEF_CH_HM_RECORD_DESC_DEF(_name, _major_version, _minor_version, _max_records) \
269 NFC_NDEF_CH_RECORD_DESC_DEF(_name, nfc_ndef_ch_hm_rec_type_field, _major_version, \
270 _minor_version, _max_records)
289#define NFC_NDEF_CH_HI_RECORD_DESC_DEF(_name, _major_version, _minor_version, _max_records) \
290 NFC_NDEF_CH_RECORD_DESC_DEF(_name, nfc_ndef_ch_hi_rec_type_field, _major_version, \
291 _minor_version, _max_records)
297#define NFC_NDEF_CH_RECORD_DESC(_name) NFC_NDEF_GENERIC_RECORD_DESC(_name)
356#define NFC_NDEF_CH_HC_RECORD_DESC_DEF(_name, _payload_id, _payload_id_length, _payload_desc) \
358 NFC_NDEF_GENERIC_RECORD_DESC_DEF(_name, TNF_WELL_KNOWN, _payload_id, _payload_id_length, \
359 nfc_ndef_ch_hc_rec_type_field, \
360 NFC_NDEF_CH_REC_TYPE_LENGTH, \
361 nfc_ndef_ch_hc_rec_payload_encode, (_payload_desc))
367#define NFC_NDEF_CH_HC_RECORD_DESC(_name) NFC_NDEF_GENERIC_RECORD_DESC(_name)
405#define NFC_NDEF_CH_AC_RECORD_DESC_DEF(_name, _cps, _carr_data_ref_len, _carr_data_ref, \
406 _max_aux_data_ref_cnt) \
407 struct nfc_ndef_ch_ac_rec_ref _name##nfc_ndef_ch_ac_rec_ref[_max_aux_data_ref_cnt]; \
408 struct nfc_ndef_ch_ac_rec _name##_nfc_ac_rec = { \
410 .carrier_data_ref = {_carr_data_ref_len, _carr_data_ref}, \
411 .max_aux_data_ref_cnt = _max_aux_data_ref_cnt, \
412 .aux_data_ref_cnt = 0, \
413 .aux_data_ref = _name##nfc_ndef_ch_ac_rec_ref}; \
414 NFC_NDEF_GENERIC_RECORD_DESC_DEF(_name, TNF_WELL_KNOWN, 0, 0, \
415 nfc_ndef_ch_ac_rec_type_field, \
416 NFC_NDEF_CH_REC_TYPE_LENGTH, \
417 nfc_ndef_ch_ac_rec_payload_encode, &(_name##_nfc_ac_rec))
423#define NFC_NDEF_CH_AC_RECORD_DESC(_name) NFC_NDEF_GENERIC_RECORD_DESC(_name)
448 const uint8_t *aux_data, uint8_t aux_length);
483#define NFC_NDEF_CH_CR_RECORD_DESC_DEF(_name, _random_number) \
484 struct nfc_ndef_ch_cr_rec _name##_nfc_cr_rec = { \
485 .random = _random_number, \
487 NFC_NDEF_GENERIC_RECORD_DESC_DEF(_name, TNF_WELL_KNOWN, 0, 0, \
488 nfc_ndef_ch_cr_rec_type_field, \
489 NFC_NDEF_CH_REC_TYPE_LENGTH, \
490 nfc_ndef_ch_cr_rec_payload_encode, &(_name##_nfc_cr_rec))
496#define NFC_NDEF_CR_RECORD_DESC(_name) NFC_NDEF_GENERIC_RECORD_DESC(_name)
void nfc_ndef_ch_ac_rec_auxiliary_data_ref_clear(struct nfc_ndef_record_desc *ac_rec)
Function for clearing an Auxiliary Data Reference in an NFC NDEF Alternative Carrier record.
int nfc_ndef_ch_ac_rec_auxiliary_data_ref_add(struct nfc_ndef_record_desc *ac_rec, const uint8_t *aux_data, uint8_t aux_length)
Function for adding an Auxiliary Data Reference to an NFC NDEF Alternative Carrier record.
int nfc_ndef_ch_rec_payload_encode(const struct nfc_ndef_ch_rec *ch_rec, uint8_t *buf, uint32_t *len)
Constructor for an NFC Connection Handover generic record payload.
int nfc_ndef_ch_hc_rec_payload_encode(const struct nfc_ndef_ch_hc_rec *hc_rec, uint8_t *buf, uint32_t *len)
Constructor for an NFC Connection Handover Carrier Record payload.
int nfc_ndef_ch_ac_rec_payload_encode(const struct nfc_ndef_ch_ac_rec *nfc_rec_ac, uint8_t *buf, uint32_t *len)
Constructor for an NFC NDEF Alternative Carrier record payload.
nfc_ndef_ch_ac_rec_cps
Carrier Power State.
Definition ch.h:76
@ NFC_AC_CPS_ACTIVE
Definition ch.h:81
@ NFC_AC_CPS_ACTIVATING
Definition ch.h:84
@ NFC_AC_CPS_UNKNOWN
Definition ch.h:87
@ NFC_AC_CPS_INACTIVE
Definition ch.h:78
void nfc_ndef_ch_rec_local_record_clear(struct nfc_ndef_record_desc *ch_rec)
Function for clearing local records in the NFC NDEF Connection Handover records.
int nfc_ndef_ch_cr_rec_payload_encode(const struct nfc_ndef_ch_cr_rec *nfc_rec_cr, uint8_t *buf, uint32_t *len)
Constructor for an NFC NDEF Collision Resolution record payload.
int nfc_ndef_ch_rec_local_record_add(struct nfc_ndef_record_desc *ch_rec, const struct nfc_ndef_record_desc *local_rec)
Function for adding a local record to an NFC NDEF Handover Select record.
nfc_ndef_record_tnf
Type Name Format (TNF) Field Values.
Definition record.h:63
uint8_t length
Definition ch.h:98
const uint8_t * data
Definition ch.h:103
Carrier Data Reference and Auxiliary Data Reference descriptor.
Definition ch.h:96
struct nfc_ndef_ch_ac_rec_ref * aux_data_ref
Definition ch.h:123
uint8_t aux_data_ref_cnt
Definition ch.h:120
enum nfc_ndef_ch_ac_rec_cps cps
Definition ch.h:111
struct nfc_ndef_ch_ac_rec_ref carrier_data_ref
Definition ch.h:114
const uint8_t max_aux_data_ref_cnt
Definition ch.h:117
Alternative Carrier record payload descriptor.
Definition ch.h:109
uint16_t random
Definition ch.h:131
Collision Resolution record payload descriptor.
Definition ch.h:129
enum nfc_ndef_record_tnf ctf
Definition ch.h:47
uint8_t * data
Definition ch.h:67
uint8_t type_len
Definition ch.h:52
uint8_t data_len
Definition ch.h:61
struct nfc_ndef_ch_hc_rec::@219 carrier
const uint8_t * type
Definition ch.h:58
Handover Carrier record payload descriptor.
Definition ch.h:39
struct nfc_ndef_msg_desc * local_records
Definition ch.h:149
uint8_t major_version
Definition ch.h:141
uint8_t minor_version
Definition ch.h:146
Handover Select record payload descriptor.
Definition ch.h:137
NDEF message descriptor.
Definition msg.h:29
NDEF record descriptor.
Definition record.h:89