reader_analyzer.h 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. #pragma once
  2. #include <stdint.h>
  3. #include <lib/nfc/nfc_device.h>
  4. typedef enum {
  5. ReaderAnalyzerModeDebugLog = 0x01,
  6. ReaderAnalyzerModeMfkey = 0x02,
  7. ReaderAnalyzerModeDebugPcap = 0x04,
  8. } ReaderAnalyzerMode;
  9. typedef enum {
  10. ReaderAnalyzerEventMfkeyCollected,
  11. } ReaderAnalyzerEvent;
  12. typedef struct ReaderAnalyzer ReaderAnalyzer;
  13. typedef void (*ReaderAnalyzerParseDataCallback)(ReaderAnalyzerEvent event, void* context);
  14. ReaderAnalyzer* reader_analyzer_alloc();
  15. void reader_analyzer_free(ReaderAnalyzer* instance);
  16. void reader_analyzer_set_callback(
  17. ReaderAnalyzer* instance,
  18. ReaderAnalyzerParseDataCallback callback,
  19. void* context);
  20. void reader_analyzer_start(ReaderAnalyzer* instance, ReaderAnalyzerMode mode);
  21. void reader_analyzer_stop(ReaderAnalyzer* instance);
  22. NfcProtocol
  23. reader_analyzer_guess_protocol(ReaderAnalyzer* instance, uint8_t* buff_rx, uint16_t len);
  24. FuriHalNfcDevData* reader_analyzer_get_nfc_data(ReaderAnalyzer* instance);
  25. void reader_analyzer_set_nfc_data(ReaderAnalyzer* instance, FuriHalNfcDevData* nfc_data);
  26. void reader_analyzer_prepare_tx_rx(
  27. ReaderAnalyzer* instance,
  28. FuriHalNfcTxRxContext* tx_rx,
  29. bool is_picc);