Class CpModbusConnection
Defined in File cp_modbus_connection.hpp
Inheritance Relationships
Base Types
public smacc2::ISmaccComponentpublic smacc2::ISmaccUpdatable
Class Documentation
-
class CpModbusConnection : public smacc2::ISmaccComponent, public smacc2::ISmaccUpdatable
Component that manages Modbus TCP connection lifecycle and heartbeat monitoring.
Responsibilities:
Create/destroy modbus_t context
Manage TCP connection state
Periodic heartbeat via ISmaccUpdatable (reads coil status to verify connectivity)
Emit connection state change signals
Thread-safe connection access via mutex
Configuration is loaded from YAML parameters: modbus_relay.ip_address: IP address of the relay (default: “192.168.1.254”) modbus_relay.port: Modbus TCP port (default: 502) modbus_relay.slave_id: Modbus slave ID (default: 1) modbus_relay.heartbeat_interval_ms: Heartbeat check interval (default: 1000) modbus_relay.connect_on_init: Connect automatically on init (default: true)
Public Functions
-
CpModbusConnection()
-
virtual ~CpModbusConnection()
-
void onInitialize() override
-
template<typename TOrthogonal, typename TClient>
inline void onStateOrthogonalAllocation() Configure component for event posting during orthogonal allocation.
-
bool connect()
-
void disconnect()
-
bool reconnect()
-
bool isConnected() const
-
modbus_t *getContext()
-
std::mutex &getMutex()
-
inline std::string getIpAddress() const
-
inline int getPort() const
-
inline int getSlaveId() const
-
template<typename T>
inline smacc2::SmaccSignalConnection onConnectionLost(void (T::* callback)(), T *object)
Public Members
-
smacc2::SmaccSignal<void()> onConnectionLost_
-
smacc2::SmaccSignal<void()> onConnectionRestored_
-
smacc2::SmaccSignal<void(const std::string&)> onConnectionError_
Protected Functions
-
void update() override