QModbusTcpServer 类
QModbusTcpServer 类表示一个使用 TCP 服务器与其 Modbus 客户端通信的 Modbus 服务器。 更多信息...
头文件 | #include <QModbusTcpServer> |
CMake | find_package(Qt6 REQUIRED COMPONENTS SerialBus) target_link_libraries(mytarget PRIVATE Qt6::SerialBus) |
qmake | QT += serialbus |
继承 | QModbusServer |
公共函数
QModbusTcpServer(QObject *parent = nullptr) | |
virtual | ~QModbusTcpServer() |
void | installConnectionObserver(QModbusTcpConnectionObserver *observer) |
信号
void | modbusClientDisconnected(QTcpSocket *modbusClient) |
重实现受保护函数
virtual void | close() override |
virtual bool | open() override |
virtual QModbusResponse | processRequest(const QModbusPdu &request) override |
详细描述
Modbus 通信需要单个 Modbus 客户端实例和单个 Modbus 服务器之间的交互。此类通过 TCP 服务器提供了 Modbus 服务器的实现。
Modbus TCP 网络可以有多台服务器。服务器通过代表 QModbusTcpClient 的客户端设备读取和写入。
成员函数文档
[显式构造]
QModbusTcpServer::QModbusTcpServer(QObject *parent = nullptr)
使用指定的 parent 构造一个 QModbusTcpServer。服务器地址 预设为 255
。
[虚函数 noexcept]
QModbusTcpServer::~QModbusTcpServer()
销毁 QModbusTcpServer 实例。
[重写虚受保护函数]
void QModbusTcpServer::close()
重写: QModbusDevice::close。
void QModbusTcpServer::installConnectionObserver(QModbusTcpConnectionObserver *observer)
安装一个 observer,该 observer 可用于在这个服务器实例上获得通知,当新的 TCP 客户端连接到该服务器实例时。此外,observer 可用于拒绝传入的 TCP 连接。
QModbusTcpServer 拥有了给定的 observer。之前设置的 observer 将被删除。可以通过将此函数的参数设置为 nullptr
来卸载 observer。
请参阅 相关链接 QModbusTcpConnectionObserver。
[signal]
void QModbusTcpServer::modbusClientDisconnected(QTcpSocket *modbusClient)
当基于 TCP 的当前 modbusClient 从此 Modbus TCP 服务器断开连接时,将发出此信号。请注意,可能同时连接了多个 TCP 客户端。
可以通过安装一个 QModbusTcpConnectionObserver 来接收新连接的通知,请使用 installConnectionObserver。
请参阅 相关链接 installConnectionObserver。
[override virtual protected]
bool QModbusTcpServer::open()
重新实现了: QModbusDevice::open。
[override virtual protected]
QModbusResponse QModbusTcpServer::processRequest(const QModbusPdu &request)
重新实现了: QModbusServer::processRequest(const QModbusPdu &request)。
处理 request 指定的 Modbus 客户端请求并返回一个 Modbus 响应。
以下 Modbus 函数代码被过滤掉,因为根据 Modbus 应用协议规范 1.1b,它们仅适用于串行线。
- QModbusRequest::ReadExceptionStatus
- QModbusRequest::Diagnostics
- QModbusRequest::GetCommEventCounter
- QModbusRequest::GetCommEventLog
- QModbusRequest::ReportServerId
对 TCP 服务器的请求将以包含异常代码 QModbusExceptionResponse::IllegalFunction 的 Modbus 异常响应来响应。
© 2024 The Qt Company Ltd. 本文档中包含的贡献是各自所有者的版权。提供的文档已根据免费软件基金会的规范获得许可,许可证版本为 GNU 自由文档许可证版本 1.3。Qt 和相关的标志是 The Qt Company Ltd 在芬兰和/或其他国家和地区的商标。所有其他商标均为其各自所有者的财产。