infrared_protocol_nec.h 1.6 KB

123456789101112131415161718192021222324252627282930
  1. #pragma once
  2. #include "../infrared_i.h"
  3. /***************************************************************************************************
  4. * NEC protocol description
  5. * https://radioparty.ru/manuals/encyclopedia/213-ircontrol?start=1
  6. ****************************************************************************************************
  7. * Preamble Preamble Pulse Distance/Width Pause Preamble Preamble Stop
  8. * mark space Modulation up to period repeat repeat bit
  9. * mark space
  10. *
  11. * 9000 4500 32 bit + stop bit ...110000 9000 2250
  12. * __________ _ _ _ _ _ _ _ _ _ _ _ _ _ ___________ _
  13. * ____ __________ _ _ _ __ __ __ _ _ __ __ _ _ ________________ ____________ ___
  14. *
  15. ***************************************************************************************************/
  16. void* infrared_decoder_nec_alloc(void);
  17. void infrared_decoder_nec_reset(void* decoder);
  18. void infrared_decoder_nec_free(void* decoder);
  19. InfraredMessage* infrared_decoder_nec_check_ready(void* decoder);
  20. InfraredMessage* infrared_decoder_nec_decode(void* decoder, bool level, uint32_t duration);
  21. void* infrared_encoder_nec_alloc(void);
  22. InfraredStatus infrared_encoder_nec_encode(void* encoder_ptr, uint32_t* duration, bool* level);
  23. void infrared_encoder_nec_reset(void* encoder_ptr, const InfraredMessage* message);
  24. void infrared_encoder_nec_free(void* encoder_ptr);
  25. const InfraredProtocolVariant* infrared_protocol_nec_get_variant(InfraredProtocol protocol);