1 #ifndef ModbusTCPMaster_H_
2 #define ModbusTCPMaster_H_
7 #include <Poco/Net/SocketStream.h>
8 #include "UTCPStream.h"
9 #include "ModbusTypes.h"
10 #include "ModbusClient.h"
24 bool connect(
const std::string& addr,
int port,
bool closeOldConnection =
true ) noexcept;
25 bool connect(
const Poco::Net::SocketAddress& addr,
int _port,
bool closeOldConnection =
true ) noexcept;
28 void forceDisconnect();
29 bool isConnection()
const;
31 static bool checkConnection(
const std::string& ip,
int port,
int timeout_msec = 100 );
33 inline void setForceDisconnect(
bool s )
39 void cleanInputStream();
41 virtual void cleanupChannel()
override
46 inline std::string getAddress()
const
50 inline int getPort()
const
55 void setReadTimeout( timeout_t msec );
56 timeout_t getReadTimeout()
const;
60 virtual size_t getNextData(
unsigned char* buf,
size_t len )
override;
62 virtual ModbusRTU::mbErrCode sendData(
unsigned char* buf,
size_t len )
override;
68 std::shared_ptr<UTCPStream> tcp;
69 ModbusRTU::ModbusData nTransaction;
70 std::queue<unsigned char> qrecv;
72 std::string iaddr = {
"" };
74 bool force_disconnect = {
false };
75 int keepAliveTimeout = { 1000 };
77 timeout_t readTimeout = { 50 };
82 #endif // ModbusTCPMaster_H_