manchester_decoder.h 583 B

12345678910111213141516171819202122232425262728293031
  1. #pragma once
  2. #include <stdbool.h>
  3. #ifdef __cplusplus
  4. extern "C" {
  5. #endif
  6. typedef enum {
  7. ManchesterEventShortLow = 0,
  8. ManchesterEventShortHigh = 2,
  9. ManchesterEventLongLow = 4,
  10. ManchesterEventLongHigh = 6,
  11. ManchesterEventReset = 8
  12. } ManchesterEvent;
  13. typedef enum {
  14. ManchesterStateStart1 = 0,
  15. ManchesterStateMid1 = 1,
  16. ManchesterStateMid0 = 2,
  17. ManchesterStateStart0 = 3
  18. } ManchesterState;
  19. bool manchester_advance(
  20. ManchesterState state,
  21. ManchesterEvent event,
  22. ManchesterState* next_state,
  23. bool* data);
  24. #ifdef __cplusplus
  25. }
  26. #endif