32template <
typename TSource,
typename TOrthogonal>
35template <
typename TSource,
typename TOrthogonal>
65 template <
typename TOrthogonal,
typename TClient>
77 bool readCoil(
int channel,
bool & state);
98 void (T::*callback)(
int,
const std::string &), T *
object)
103 template <
typename T>
Component that manages Modbus TCP connection lifecycle and heartbeat monitoring.
Component that handles Modbus coil read/write operations for 8-channel relay.
bool writeAllCoils(bool state)
bool isValidChannel(int channel) const
smacc2::SmaccSignal< void(uint8_t states)> onReadComplete_
static constexpr int COIL_BASE_ADDRESS
std::function< void()> postWriteSuccessEvent_
smacc2::SmaccSignal< void(int channel, bool state)> onWriteSuccess_
void onInitialize() override
smacc2::SmaccSignalConnection onReadComplete(void(T::*callback)(uint8_t), T *object)
int channelToAddress(int channel) const
smacc2::SmaccSignalConnection onWriteFailure(void(T::*callback)(int, const std::string &), T *object)
CpModbusConnection * connectionComponent_
bool readAllCoils(uint8_t &states)
void onStateOrthogonalAllocation()
Configure component for event posting during orthogonal allocation.
static constexpr int NUM_CHANNELS
smacc2::SmaccSignal< void(int channel, const std::string &error)> onWriteFailure_
bool readCoil(int channel, bool &state)
smacc2::SmaccSignalConnection onWriteSuccess(void(T::*callback)(int, bool), T *object)
bool writeCoil(int channel, bool state)
std::function< void()> postWriteFailureEvent_
ISmaccStateMachine * getStateMachine()
smacc2::SmaccSignalConnection createSignalConnection(TSmaccSignal &signal, TMemberFunctionPrototype callback, TSmaccObjectType *object)
boost::signals2::connection SmaccSignalConnection