Loading...
Searching...
No Matches
iso14443_3a_poller_i.h
1#pragma once
2
3#include "iso14443_3a_poller.h"
4
6
7#ifdef __cplusplus
8extern "C" {
9#endif
10
11#define ISO14443_3A_POLLER_MAX_BUFFER_SIZE (512U)
12
13#define ISO14443_3A_POLLER_SEL_CMD(cascade_lvl) (0x93 + 2 * (cascade_lvl))
14#define ISO14443_3A_POLLER_SEL_PAR(bytes, bits) (((bytes) << 4 & 0xf0U) | ((bits) & 0x0fU))
15#define ISO14443_3A_POLLER_SDD_CL (0x88U)
17#define ISO14443_3A_POLLER_SAK_CASCADE_BIT (0x04U)
18
20#define ISO14443_3A_POLLER_MAX_CASCADE_LEVEL (2U)
21
22typedef enum {
23 Iso14443_3aPollerColResStateStateIdle,
24 Iso14443_3aPollerColResStateStateNewCascade,
25 Iso14443_3aPollerColResStateStateSelectCascade,
26 Iso14443_3aPollerColResStateStateSuccess,
27 Iso14443_3aPollerColResStateStateFail,
28} Iso14443_3aPollerColResState;
29
30typedef struct {
31 Iso14443_3aPollerColResState state;
32 Iso14443_3aSensResp sens_resp;
33 Iso14443_3aSddReq sdd_req;
34 Iso14443_3aSddResp sdd_resp;
35 Iso14443_3aSelReq sel_req;
36 Iso14443_3aSelResp sel_resp;
37 uint8_t cascade_level;
39
40typedef enum {
41 Iso14443_3aPollerStateIdle,
42 Iso14443_3aPollerStateColResInProgress,
43 Iso14443_3aPollerStateColResFailed,
44 Iso14443_3aPollerStateActivated,
45} Iso14443_3aPollerState;
46
48 Nfc* nfc;
49 Iso14443_3aPollerState state;
51 Iso14443_3aData* data;
52 BitBuffer* tx_buffer;
53 BitBuffer* rx_buffer;
54
55 NfcGenericEvent general_event;
56 Iso14443_3aPollerEvent iso14443_3a_event;
57 Iso14443_3aPollerEventData iso14443_3a_event_data;
58 NfcGenericCallback callback;
59 void* context;
60};
61
62const Iso14443_3aData* iso14443_3a_poller_get_data(Iso14443_3aPoller* instance);
63
64#ifdef __cplusplus
65}
66#endif
Bit Buffer.
NfcCommand(* NfcGenericCallback)(NfcGenericEvent event, void *context)
Generic Nfc event callback type.
Definition nfc_generic_event.h:75
Definition bit_buffer.c:7
Definition iso14443_3a.h:58
Definition iso14443_3a_poller_i.h:30
Iso14443_3a poller event structure.
Definition iso14443_3a_poller.h:37
Definition iso14443_3a_poller_i.h:47
Definition iso14443_3a.h:36
Definition iso14443_3a.h:42
Definition iso14443_3a.h:47
Definition iso14443_3a.h:54
Definition iso14443_3a.h:32
Generic Nfc event type.
Definition nfc_generic_event.h:58
Definition nfc.c:44
Iso14443_3a poller event data.
Definition iso14443_3a_poller.h:28