Loading...
Searching...
No Matches
iso14443_4_layer.h
1#pragma once
2
4
5#ifdef __cplusplus
6extern "C" {
7#endif
8
10
11Iso14443_4Layer* iso14443_4_layer_alloc(void);
12
13void iso14443_4_layer_free(Iso14443_4Layer* instance);
14
15void iso14443_4_layer_reset(Iso14443_4Layer* instance);
16
17void iso14443_4_layer_set_i_block(Iso14443_4Layer* instance, bool chaining, bool CID_present);
18void iso14443_4_layer_set_r_block(Iso14443_4Layer* instance, bool acknowledged, bool CID_present);
19void iso14443_4_layer_set_s_block(Iso14443_4Layer* instance, bool deselect, bool CID_present);
20
21// Poller mode
22
23void iso14443_4_layer_encode_command(
24 Iso14443_4Layer* instance,
25 const BitBuffer* input_data,
26 BitBuffer* block_data);
27
28bool iso14443_4_layer_decode_response(
29 Iso14443_4Layer* instance,
30 BitBuffer* output_data,
31 const BitBuffer* block_data);
32
33// Listener mode
34
35typedef enum {
36 Iso14443_4LayerResultSkip = (0),
37 Iso14443_4LayerResultData = (1 << 1),
38 Iso14443_4LayerResultSend = (1 << 2),
39 Iso14443_4LayerResultHalt = (1 << 3),
40} Iso14443_4LayerResult;
41
42Iso14443_4LayerResult iso14443_4_layer_decode_command(
43 Iso14443_4Layer* instance,
44 const BitBuffer* input_data,
45 BitBuffer* block_data);
46
47bool iso14443_4_layer_encode_response(
48 Iso14443_4Layer* instance,
49 const BitBuffer* input_data,
50 BitBuffer* block_data);
51
52#define ISO14443_4_LAYER_CID_NOT_SUPPORTED ((uint8_t) - 1)
53void iso14443_4_layer_set_cid(Iso14443_4Layer* instance, uint8_t cid);
54
55void iso14443_4_layer_set_nad_supported(Iso14443_4Layer* instance, bool nad);
56
57#ifdef __cplusplus
58}
59#endif
Bit Buffer.
Definition bit_buffer.c:7
Definition iso14443_4_layer.c:64