decoder_hid26.h 494 B

123456789101112131415161718192021222324
  1. #pragma once
  2. #include <stdint.h>
  3. #include <atomic>
  4. #include "protocols/protocol_hid_h10301.h"
  5. class DecoderHID26 {
  6. public:
  7. bool read(uint8_t* data, uint8_t data_size);
  8. void process_front(bool polarity, uint32_t time);
  9. DecoderHID26();
  10. private:
  11. uint32_t last_pulse_time = 0;
  12. bool last_pulse;
  13. uint8_t pulse_count;
  14. uint32_t stored_data[3] = {0, 0, 0};
  15. void store_data(bool data);
  16. std::atomic<bool> ready;
  17. void reset_state();
  18. ProtocolHID10301 hid;
  19. };