nfc_worker.h 871 B

12345678910111213141516171819202122232425262728293031323334353637
  1. #pragma once
  2. typedef struct NfcWorker NfcWorker;
  3. typedef enum {
  4. // Init states
  5. NfcWorkerStateNone,
  6. NfcWorkerStateBroken,
  7. NfcWorkerStateReady,
  8. // Main worker states
  9. NfcWorkerStateDetect,
  10. NfcWorkerStateEmulate,
  11. NfcWorkerStateReadEMV,
  12. NfcWorkerStateEmulateEMV,
  13. NfcWorkerStateField,
  14. NfcWorkerStateReadMfUltralight,
  15. // Transition
  16. NfcWorkerStateStop,
  17. } NfcWorkerState;
  18. typedef void (*NfcWorkerCallback)(void* context);
  19. NfcWorker* nfc_worker_alloc(osMessageQueueId_t message_queue);
  20. NfcWorkerState nfc_worker_get_state(NfcWorker* nfc_worker);
  21. ReturnCode nfc_worker_get_error(NfcWorker* nfc_worker);
  22. void nfc_worker_free(NfcWorker* nfc_worker);
  23. void nfc_worker_start(
  24. NfcWorker* nfc_worker,
  25. NfcWorkerState state,
  26. NfcWorkerCallback callback,
  27. void* context);
  28. void nfc_worker_stop(NfcWorker* nfc_worker);