|
M5Unit-INFRARED 0.2.0 git rev:76ad9e1
|
Abstract base class for IR protocol encoding/decoding. More...
#include <ir_codec.hpp>
Public Member Functions | |
| IRCodec (CodecType t) | |
| CodecType | type () const |
| Get codec type for safe downcasting. | |
TX | |
| virtual item_container_type | encode (uint16_t address, uint16_t command, bool repeat=false)=0 |
| Encode IR command into RMT items. | |
| virtual uint32_t | carrierFrequencyHz () const =0 |
| Carrier frequency for this protocol in Hz. | |
| virtual float | carrierDuty () const |
| Carrier duty cycle (0.0 - 1.0) | |
| virtual uint8_t | minFrames () const |
| Number of frames that should be transmitted per keypress for this protocol. | |
| virtual uint16_t | frameGapUs () const |
| Inter-frame gap (microseconds) when transmitting multiple frames in one burst. | |
RX | |
| virtual bool | decode (const m5::unit::gpio::m5_rmt_item_t *items, uint32_t num, DecodeResult &result)=0 |
| Try to decode RMT items into an IR command. | |
Abstract base class for IR protocol encoding/decoding.
Follows the Strategy pattern (like rf433::ProtocolCodec). Each protocol subclass implements encode/decode with protocol-specific timing.
|
inlinevirtual |
Carrier duty cycle (0.0 - 1.0)
|
pure virtual |
Carrier frequency for this protocol in Hz.
Implemented in m5::unit::ir::AutoDetectCodec, m5::unit::ir::MitsubishiCodec, m5::unit::ir::NecCodec, m5::unit::ir::PanasonicCodec, m5::unit::ir::RawCodec, m5::unit::ir::Rc5Codec, m5::unit::ir::Rc6Codec, and m5::unit::ir::SircCodec.
|
pure virtual |
Try to decode RMT items into an IR command.
| items | RMT items from receiver | |
| num | Number of items | |
| [out] | result | Decoded result |
|
pure virtual |
Encode IR command into RMT items.
| address | Device address |
| command | Command code |
| repeat | If true, encode repeat frame instead of full frame |
Implemented in m5::unit::ir::AutoDetectCodec, m5::unit::ir::MitsubishiCodec, m5::unit::ir::NecCodec, m5::unit::ir::PanasonicCodec, m5::unit::ir::RawCodec, m5::unit::ir::Rc5Codec, m5::unit::ir::Rc6Codec, and m5::unit::ir::SircCodec.
|
inlinevirtual |
Inter-frame gap (microseconds) when transmitting multiple frames in one burst.
Reimplemented in m5::unit::ir::MitsubishiCodec, and m5::unit::ir::SircCodec.
|
inlinevirtual |
Number of frames that should be transmitted per keypress for this protocol.
Reimplemented in m5::unit::ir::MitsubishiCodec, and m5::unit::ir::SircCodec.
|
inline |
Get codec type for safe downcasting.