decoder_emmarin.h 462 B

123456789101112131415161718192021
  1. #pragma once
  2. #include <stdint.h>
  3. #include <atomic>
  4. #include <lib/toolbox/manchester_decoder.h>
  5. #include "protocols/protocol_emmarin.h"
  6. class DecoderEMMarin {
  7. public:
  8. bool read(uint8_t* data, uint8_t data_size);
  9. void process_front(bool polarity, uint32_t time);
  10. DecoderEMMarin();
  11. private:
  12. void reset_state();
  13. uint64_t read_data = 0;
  14. std::atomic<bool> ready;
  15. ManchesterState manchester_saved_state;
  16. ProtocolEMMarin em_marin;
  17. };