nfc_worker.h 954 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  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. NfcWorkerStateEmulateEMV,
  15. NfcWorkerStateField,
  16. NfcWorkerStateReadMifareUl,
  17. NfcWorkerStateEmulateMifareUl,
  18. // Transition
  19. NfcWorkerStateStop,
  20. } NfcWorkerState;
  21. typedef void (*NfcWorkerCallback)(void* context);
  22. NfcWorker* nfc_worker_alloc();
  23. NfcWorkerState nfc_worker_get_state(NfcWorker* nfc_worker);
  24. ReturnCode nfc_worker_get_error(NfcWorker* nfc_worker);
  25. void nfc_worker_free(NfcWorker* nfc_worker);
  26. void nfc_worker_start(
  27. NfcWorker* nfc_worker,
  28. NfcWorkerState state,
  29. NfcDeviceData* dev_data,
  30. NfcWorkerCallback callback,
  31. void* context);
  32. void nfc_worker_stop(NfcWorker* nfc_worker);