Arduino PulseWire Transceiver Library
Loading...
Searching...
No Matches
TxDriverArduino.h
1#pragma once
2#include "pulse/TxDriverCommon.h"
3#include "pulse/tools/Logger.h"
4#include "assert.h"
5
6namespace pulsewire {
7
30 public:
31 TxDriverArduino() = default;
33
34 bool useChecksum = false)
35 : _txProtocol(&signal) { // Initialize txProtocol with &signal
36 this->_signal = &signal;
37 init(_txProtocol, codec, pin, useChecksum);
38 }
39
40 void init(TxProtocol& protocol, Codec& codec, uint8_t pin,
41 bool useChecksum = false) {
42 TRACE();
43 TxDriverCommon::init(protocol, codec, pin, useChecksum);
44 assert(_signal != nullptr);
45 _signal->setTxPin(pin);
46 _signal->sendBit(codec.getIdleLevel()); // Ensure signal starts in idle state
47 }
48
49 protected:
50 TxProtocolGeneric _txProtocol;
51 SignalBase* _signal = nullptr;
52};
53
54} // namespace pulsewire
Abstract base class for IR protocol encoding and decoding.
Definition Codec.h:41
virtual bool getIdleLevel() const
Provides the initial ldle state (low or hith)
Definition Codec.h:208
Abstract base class for signal output.
Definition SignalBase.h:11
Generic driver for transmitting data using a specified codec and signal implementation.
Provides common logic for transmitting signals using various framing modes.
Generic implementation that is supported by all Arduino cores.
Definition TxProtocol.h:154
Abstract base class for defining transmission protocols.
Definition TxProtocol.h:125
Small, header-only vector replacement for non-STL environments.
Definition Vector.h:29