NFC refactoring (#3050)
"A long time ago in a galaxy far, far away...." we started NFC subsystem refactoring.
Starring:
- @gornekich - NFC refactoring project lead, architect, senior developer
- @gsurkov - architect, senior developer
- @RebornedBrain - senior developer
Supporting roles:
- @skotopes, @DrZlo13, @hedger - general architecture advisors, code review
- @Astrrra, @doomwastaken, @Hellitron, @ImagineVagon333 - quality assurance
Special thanks:
@bettse, @pcunning, @nxv, @noproto, @AloneLiberty and everyone else who has been helping us all this time and contributing valuable knowledges, ideas and source code.
2023-10-24 07:08:09 +04:00
|
|
|
#pragma once
|
|
|
|
|
|
2024-01-20 05:35:37 +09:00
|
|
|
#include "protocols/iso14443_4a/iso14443_4a.h"
|
NFC refactoring (#3050)
"A long time ago in a galaxy far, far away...." we started NFC subsystem refactoring.
Starring:
- @gornekich - NFC refactoring project lead, architect, senior developer
- @gsurkov - architect, senior developer
- @RebornedBrain - senior developer
Supporting roles:
- @skotopes, @DrZlo13, @hedger - general architecture advisors, code review
- @Astrrra, @doomwastaken, @Hellitron, @ImagineVagon333 - quality assurance
Special thanks:
@bettse, @pcunning, @nxv, @noproto, @AloneLiberty and everyone else who has been helping us all this time and contributing valuable knowledges, ideas and source code.
2023-10-24 07:08:09 +04:00
|
|
|
#include <toolbox/bit_buffer.h>
|
|
|
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
|
|
extern "C" {
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
typedef struct Iso14443_4Layer Iso14443_4Layer;
|
|
|
|
|
|
2024-03-25 13:53:32 +03:00
|
|
|
Iso14443_4Layer* iso14443_4_layer_alloc(void);
|
NFC refactoring (#3050)
"A long time ago in a galaxy far, far away...." we started NFC subsystem refactoring.
Starring:
- @gornekich - NFC refactoring project lead, architect, senior developer
- @gsurkov - architect, senior developer
- @RebornedBrain - senior developer
Supporting roles:
- @skotopes, @DrZlo13, @hedger - general architecture advisors, code review
- @Astrrra, @doomwastaken, @Hellitron, @ImagineVagon333 - quality assurance
Special thanks:
@bettse, @pcunning, @nxv, @noproto, @AloneLiberty and everyone else who has been helping us all this time and contributing valuable knowledges, ideas and source code.
2023-10-24 07:08:09 +04:00
|
|
|
|
|
|
|
|
void iso14443_4_layer_free(Iso14443_4Layer* instance);
|
|
|
|
|
|
|
|
|
|
void iso14443_4_layer_reset(Iso14443_4Layer* instance);
|
|
|
|
|
|
2024-09-28 21:48:48 +03:00
|
|
|
void iso14443_4_layer_set_i_block(Iso14443_4Layer* instance, bool chaining, bool CID_present);
|
|
|
|
|
void iso14443_4_layer_set_r_block(Iso14443_4Layer* instance, bool acknowledged, bool CID_present);
|
|
|
|
|
void iso14443_4_layer_set_s_block(Iso14443_4Layer* instance, bool deselect, bool CID_present);
|
|
|
|
|
|
2025-06-30 19:53:45 +03:00
|
|
|
// Poller mode
|
|
|
|
|
|
|
|
|
|
void iso14443_4_layer_encode_command(
|
NFC refactoring (#3050)
"A long time ago in a galaxy far, far away...." we started NFC subsystem refactoring.
Starring:
- @gornekich - NFC refactoring project lead, architect, senior developer
- @gsurkov - architect, senior developer
- @RebornedBrain - senior developer
Supporting roles:
- @skotopes, @DrZlo13, @hedger - general architecture advisors, code review
- @Astrrra, @doomwastaken, @Hellitron, @ImagineVagon333 - quality assurance
Special thanks:
@bettse, @pcunning, @nxv, @noproto, @AloneLiberty and everyone else who has been helping us all this time and contributing valuable knowledges, ideas and source code.
2023-10-24 07:08:09 +04:00
|
|
|
Iso14443_4Layer* instance,
|
|
|
|
|
const BitBuffer* input_data,
|
|
|
|
|
BitBuffer* block_data);
|
|
|
|
|
|
2025-06-30 19:53:45 +03:00
|
|
|
bool iso14443_4_layer_decode_response(
|
NFC refactoring (#3050)
"A long time ago in a galaxy far, far away...." we started NFC subsystem refactoring.
Starring:
- @gornekich - NFC refactoring project lead, architect, senior developer
- @gsurkov - architect, senior developer
- @RebornedBrain - senior developer
Supporting roles:
- @skotopes, @DrZlo13, @hedger - general architecture advisors, code review
- @Astrrra, @doomwastaken, @Hellitron, @ImagineVagon333 - quality assurance
Special thanks:
@bettse, @pcunning, @nxv, @noproto, @AloneLiberty and everyone else who has been helping us all this time and contributing valuable knowledges, ideas and source code.
2023-10-24 07:08:09 +04:00
|
|
|
Iso14443_4Layer* instance,
|
|
|
|
|
BitBuffer* output_data,
|
|
|
|
|
const BitBuffer* block_data);
|
|
|
|
|
|
2025-06-30 19:53:45 +03:00
|
|
|
Iso14443_4aError iso14443_4_layer_decode_response_pwt_ext(
|
2024-01-20 05:35:37 +09:00
|
|
|
Iso14443_4Layer* instance,
|
|
|
|
|
BitBuffer* output_data,
|
|
|
|
|
const BitBuffer* block_data);
|
|
|
|
|
|
2025-06-30 19:53:45 +03:00
|
|
|
// Listener mode
|
|
|
|
|
|
|
|
|
|
typedef enum {
|
|
|
|
|
Iso14443_4LayerResultSkip = (0),
|
|
|
|
|
Iso14443_4LayerResultData = (1 << 1),
|
|
|
|
|
Iso14443_4LayerResultSend = (1 << 2),
|
|
|
|
|
Iso14443_4LayerResultHalt = (1 << 3),
|
|
|
|
|
} Iso14443_4LayerResult;
|
|
|
|
|
|
|
|
|
|
Iso14443_4LayerResult iso14443_4_layer_decode_command(
|
|
|
|
|
Iso14443_4Layer* instance,
|
|
|
|
|
const BitBuffer* input_data,
|
|
|
|
|
BitBuffer* block_data);
|
|
|
|
|
|
|
|
|
|
bool iso14443_4_layer_encode_response(
|
|
|
|
|
Iso14443_4Layer* instance,
|
|
|
|
|
const BitBuffer* input_data,
|
|
|
|
|
BitBuffer* block_data);
|
|
|
|
|
|
|
|
|
|
#define ISO14443_4_LAYER_CID_NOT_SUPPORTED ((uint8_t) - 1)
|
|
|
|
|
void iso14443_4_layer_set_cid(Iso14443_4Layer* instance, uint8_t cid);
|
|
|
|
|
|
|
|
|
|
void iso14443_4_layer_set_nad_supported(Iso14443_4Layer* instance, bool nad);
|
|
|
|
|
|
NFC refactoring (#3050)
"A long time ago in a galaxy far, far away...." we started NFC subsystem refactoring.
Starring:
- @gornekich - NFC refactoring project lead, architect, senior developer
- @gsurkov - architect, senior developer
- @RebornedBrain - senior developer
Supporting roles:
- @skotopes, @DrZlo13, @hedger - general architecture advisors, code review
- @Astrrra, @doomwastaken, @Hellitron, @ImagineVagon333 - quality assurance
Special thanks:
@bettse, @pcunning, @nxv, @noproto, @AloneLiberty and everyone else who has been helping us all this time and contributing valuable knowledges, ideas and source code.
2023-10-24 07:08:09 +04:00
|
|
|
#ifdef __cplusplus
|
|
|
|
|
}
|
|
|
|
|
#endif
|