Class CpModbusRelay

Inheritance Relationships

Base Type

  • public smacc2::ISmaccComponent

Class Documentation

class CpModbusRelay : public smacc2::ISmaccComponent

Component that handles Modbus coil read/write operations for 8-channel relay.

Responsibilities:

  • Write single coil (channel on/off)

  • Write all coils simultaneously

  • Read single coil status

  • Read all coil statuses

  • Emit operation result signals

Channel numbering: 1-8 (user-friendly) Coil addresses: 0x0000-0x0007 (0-indexed internally)

Public Functions

CpModbusRelay()
virtual ~CpModbusRelay()
void onInitialize() override
template<typename TOrthogonal, typename TClient>
inline void onStateOrthogonalAllocation()

Configure component for event posting during orthogonal allocation.

bool writeCoil(int channel, bool state)
bool readCoil(int channel, bool &state)
bool writeAllCoils(bool state)
bool writeAllCoils(uint8_t mask)
bool readAllCoils(uint8_t &states)
template<typename T>
inline smacc2::SmaccSignalConnection onWriteSuccess(void (T::* callback)(int, bool), T *object)
template<typename T>
inline smacc2::SmaccSignalConnection onWriteFailure(void (T::* callback)(int, const std::string&), T *object)
template<typename T>
inline smacc2::SmaccSignalConnection onReadComplete(void (T::* callback)(uint8_t), T *object)

Public Members

smacc2::SmaccSignal<void(int channel, bool state)> onWriteSuccess_
smacc2::SmaccSignal<void(int channel, const std::string &error)> onWriteFailure_
smacc2::SmaccSignal<void(uint8_t states)> onReadComplete_

Public Static Attributes

static constexpr int NUM_CHANNELS = 8
static constexpr int COIL_BASE_ADDRESS = 0x0000