decoder_ioprox.h 582 B

1234567891011121314151617181920212223242526
  1. #pragma once
  2. #include <stdint.h>
  3. #include <atomic>
  4. #include "protocols/protocol_ioprox.h"
  5. class DecoderIoProx {
  6. public:
  7. bool read(uint8_t* data, uint8_t data_size);
  8. void process_front(bool polarity, uint32_t time);
  9. DecoderIoProx();
  10. private:
  11. uint32_t current_period_duration = 0;
  12. uint32_t demodulation_sample_duration = 0;
  13. bool current_demodulated_value = false;
  14. bool demodulated_value_invalid = false;
  15. uint8_t raw_data[8] = {0};
  16. void store_data(bool data);
  17. std::atomic<bool> ready;
  18. void reset_state();
  19. ProtocolIoProx ioprox;
  20. };