Header:#include < QModbusTcpServer >
qmake:QT += serialbus
Since:Qt 5.8
Inherits:QModbusServer
This class was introduced in Qt 5.8.
Public Functions
QModbusTcpServer(QObject *parent = nullptr)
virtual ~QModbusTcpServer()
void installConnectionObserver(QModbusTcpConnectionObserver *observer)
Signals
void modbusClientDisconnected(QTcpSocket *modbusClient)
Reimplemented Protected Functions
virtual void close() override
virtual bool open() override
virtual QModbusResponse processRequest(const QModbusPdu &request) override
Detailed Description
通过Modbus通信需要在单个Modbus客户端实例和单个Modbus服务器之间进行交互。这个类通过TCP服务器提供Modbus服务器实现。
Modbus TCP网络可以有多个服务器。服务器由QModbusTcpClient表示的客户端设备进行读写。
Member Function Documentation
QModbusTcpServer::QModbusTcpServer(QObject *parent = nullptr)
用指定的父类构造一个QModbusTcpServer。serverAddress预设值为255。
[signal] void QModbusTcpServer::modbusClientDisconnected(QTcpSocket *modbusClient)
当当前基于TCP的modbusClient与此Modbus TCP服务器断开连接时,发出此信号。注意,可能有几个TCP客户端同时连接。
可以通过installConnectionObserver()安装QModbusTcpConnectionObserver来接收传入的新连接的通知。
这个函数在Qt 5.13中被引入。
See also installConnectionObserver.
virtual] QModbusTcpServer::~QModbusTcpServer()
Destroys the QModbusTcpServer instance.
[override virtual protected] void QModbusTcpServer::close()
Reimplements: QModbusDevice::close().
void QModbusTcpServer::installConnectionObserver(QModbusTcpConnectionObserver *observer)
安装一个观察者,该观察者可用于在新的TCP客户端连接到此服务器实例时获取通知。此外,观察者还可以用来拒绝传入的TCP连接。
QModbusTcpServer获得给定观察者的所有权。任何先前设置的观察者都将被删除。可以通过以nullptr作为参数调用这个函数来卸载观察者。
这个函数在Qt 5.13中被引入。
See also QModbusTcpConnectionObserver.
[override virtual protected] bool QModbusTcpServer::open()
Reimplements: QModbusDevice::open().
[override virtual protected] QModbusResponse QModbusTcpServer::processRequest(const QModbusPdu &request)
Reimplements: QModbusServer::processRequest(const QModbusPdu &request).
处理request指定的Modbus客户端请求,并返回一个Modbus响应。
根据Modbus应用协议规范1.1b,将以下Modbus功能码过滤掉,因为它们只是串行线:
QModbusRequest::ReadExceptionStatus
QModbusRequest::Diagnostics
QModbusRequest::GetCommEventCounter
QModbusRequest::GetCommEventLog
QModbusRequest::ReportServerId
对TCP服务器的请求将得到一个Modbus异常响应,异常代码为QModbusExceptionResponse::IllegalFunction。