gen1a_poller.h 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. #pragma once
  2. #include <nfc/nfc.h>
  3. #include <nfc/protocols/nfc_generic_event.h>
  4. #include <nfc/protocols/mf_classic/mf_classic.h>
  5. #ifdef __cplusplus
  6. extern "C" {
  7. #endif
  8. typedef enum {
  9. Gen1aPollerEventTypeDetected,
  10. Gen1aPollerEventTypeRequestMode,
  11. Gen1aPollerEventTypeRequestDataToWrite,
  12. Gen1aPollerEventTypeRequestDataToDump,
  13. Gen1aPollerEventTypeSuccess,
  14. Gen1aPollerEventTypeFail,
  15. } Gen1aPollerEventType;
  16. typedef enum {
  17. Gen1aPollerModeWipe,
  18. Gen1aPollerModeDump,
  19. Gen1aPollerModeWrite,
  20. } Gen1aPollerMode;
  21. typedef struct {
  22. Gen1aPollerMode mode;
  23. } Gen1aPollerEventDataRequestMode;
  24. typedef struct {
  25. const MfClassicData* mfc_data;
  26. } Gen1aPollerEventDataRequestDataToWrite;
  27. typedef struct {
  28. MfClassicData* mfc_data;
  29. } Gen1aPollerEventDataRequestDataToDump;
  30. typedef union {
  31. Gen1aPollerEventDataRequestMode request_mode;
  32. Gen1aPollerEventDataRequestDataToWrite data_to_write;
  33. Gen1aPollerEventDataRequestDataToDump data_to_dump;
  34. } Gen1aPollerEventData;
  35. typedef struct {
  36. Gen1aPollerEventType type;
  37. Gen1aPollerEventData* data;
  38. } Gen1aPollerEvent;
  39. typedef NfcCommand (*Gen1aPollerCallback)(Gen1aPollerEvent event, void* context);
  40. typedef struct Gen1aPoller Gen1aPoller;
  41. bool gen1a_poller_detect(Nfc* nfc);
  42. Gen1aPoller* gen1a_poller_alloc(Nfc* nfc);
  43. void gen1a_poller_free(Gen1aPoller* instance);
  44. void gen1a_poller_start(Gen1aPoller* instance, Gen1aPollerCallback callback, void* context);
  45. void gen1a_poller_stop(Gen1aPoller* instance);
  46. #ifdef __cplusplus
  47. }
  48. #endif