unleashed-firmware/lib/signal_reader/parsers/iso15693/iso15693_parser.h
gornekich d92b0a82cc
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 12:08:09 +09:00

42 lines
935 B
C

#pragma once
#include "../../signal_reader.h"
#ifdef __cplusplus
extern "C" {
#endif
typedef struct Iso15693Parser Iso15693Parser;
typedef enum {
Iso15693ParserEventDataReceived,
} Iso15693ParserEvent;
typedef void (*Iso15693ParserCallback)(Iso15693ParserEvent event, void* context);
Iso15693Parser* iso15693_parser_alloc(const GpioPin* pin, size_t max_frame_size);
void iso15693_parser_free(Iso15693Parser* instance);
void iso15693_parser_reset(Iso15693Parser* instance);
void iso15693_parser_start(
Iso15693Parser* instance,
Iso15693ParserCallback callback,
void* context);
void iso15693_parser_stop(Iso15693Parser* instance);
bool iso15693_parser_run(Iso15693Parser* instance);
size_t iso15693_parser_get_data_size_bytes(Iso15693Parser* instance);
void iso15693_parser_get_data(
Iso15693Parser* instance,
uint8_t* buff,
size_t buff_size,
size_t* data_bits);
#ifdef __cplusplus
}
#endif