rfid-worker.h 845 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. #pragma once
  2. #include "key-info.h"
  3. #include "rfid-reader.h"
  4. #include "rfid-writer.h"
  5. #include "rfid-timer-emulator.h"
  6. #include "rfid-key.h"
  7. #include "state-sequencer.h"
  8. class RfidWorker {
  9. public:
  10. RfidWorker();
  11. ~RfidWorker();
  12. void start_read();
  13. bool read();
  14. void stop_read();
  15. enum class WriteResult : uint8_t {
  16. Ok,
  17. NotWritable,
  18. Nothing,
  19. };
  20. void start_write();
  21. WriteResult write();
  22. void stop_write();
  23. void start_emulate();
  24. void stop_emulate();
  25. RfidKey key;
  26. private:
  27. RfidWriter writer;
  28. RfidReader reader;
  29. RfidTimerEmulator emulator;
  30. WriteResult write_result;
  31. TickSequencer* write_sequence;
  32. void sq_write();
  33. void sq_write_start_validate();
  34. void sq_write_validate();
  35. uint8_t validate_counts;
  36. void sq_write_stop_validate();
  37. };