nfc_worker.h 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. #pragma once
  2. #include "nfc_device.h"
  3. typedef struct NfcWorker NfcWorker;
  4. typedef enum {
  5. // Init states
  6. NfcWorkerStateNone,
  7. NfcWorkerStateBroken,
  8. NfcWorkerStateReady,
  9. // Main worker states
  10. NfcWorkerStateDetect,
  11. NfcWorkerStateEmulate,
  12. NfcWorkerStateReadEMVApp,
  13. NfcWorkerStateReadEMV,
  14. NfcWorkerStateEmulateApdu,
  15. NfcWorkerStateField,
  16. NfcWorkerStateReadMifareUl,
  17. NfcWorkerStateEmulateMifareUl,
  18. NfcWorkerStateReadMifareClassic,
  19. NfcWorkerStateReadMifareDesfire,
  20. // Transition
  21. NfcWorkerStateStop,
  22. } NfcWorkerState;
  23. typedef enum {
  24. NfcWorkerEventSuccess,
  25. NfcWorkerEventFail,
  26. NfcWorkerEventNoCardDetected,
  27. // Mifare Classic events
  28. NfcWorkerEventNoDictFound,
  29. NfcWorkerEventDetectedClassic1k,
  30. NfcWorkerEventDetectedClassic4k,
  31. NfcWorkerEventNewSector,
  32. NfcWorkerEventFoundKeyA,
  33. NfcWorkerEventFoundKeyB,
  34. NfcWorkerEventStartReading,
  35. } NfcWorkerEvent;
  36. typedef void (*NfcWorkerCallback)(NfcWorkerEvent event, void* context);
  37. NfcWorker* nfc_worker_alloc();
  38. NfcWorkerState nfc_worker_get_state(NfcWorker* nfc_worker);
  39. void nfc_worker_free(NfcWorker* nfc_worker);
  40. void nfc_worker_start(
  41. NfcWorker* nfc_worker,
  42. NfcWorkerState state,
  43. NfcDeviceData* dev_data,
  44. NfcWorkerCallback callback,
  45. void* context);
  46. void nfc_worker_stop(NfcWorker* nfc_worker);