QModbusRtuSerialServer 类
QModbusRtuSerialServer 类表示一个使用串行口与 Modbus 客户端通信的 Modbus 服务器。更多...
头文件 | #include <QModbusRtuSerialServer> |
CMake | find_package(Qt6 REQUIRED COMPONENTS SerialBus) target_link_libraries(mytarget PRIVATE Qt6::SerialBus) |
qmake | QT += serialbus |
自 | Qt 6.2 |
继承 | QModbusServer |
公共函数
QModbusRtuSerialServer(QObject *parent = nullptr) | |
虚拟 | ~QModbusRtuSerialServer() |
(自6.2) int | interFrameDelay() const |
(自6.2) void | setInterFrameDelay(int microseconds) |
重实现的公共函数
虚拟 bool | processesBroadcast() const override |
重实现的受保护函数
虚拟 void | close() override |
虚拟 bool | open() override |
虚拟 QModbusResponse | processRequest(const QModbusPdu &request) override |
详细描述
通过Modbus进行通信需要单个Modbus客户端实例和多個Modbus服务器之间的交互。此类通过串行端口提供了Modbus服务器实现。
由于多个Modbus服务器实例可以在同一時間内与Modbus客服端交互(使用串行总线),因此服务器通过它们的serverAddress()进行标识。
成员函数文档
[显式]
QModbusRtuSerialServer::QModbusRtuSerialServer(QObject *parent = nullptr)
使用指定的 parent 构建一个 QModbusRtuSerialServer。预设的 serverAddress 是 1
。
[虚拟 noexcept]
QModbusRtuSerialServer::~QModbusRtuSerialServer()
销毁 QModbusRtuSerialServer 实例。
[覆盖虚拟受保护]
void QModbusRtuSerialServer::close()
重实现: QModbusDevice::close。
[自 6.2 版起]
int QModbusRtuSerialServer::interFrameDelay() const
返回两个连续 Modbus 信息之间的静默间隔的微秒数。
此函数是在 Qt 6.2 中引入的。
另请参阅setInterFrameDelay()。
[覆盖虚拟受保护方法]
bool QModbusRtuSerialServer::open()
重新实现: QModbusDevice::open()。
注意:在调用此函数时,现有缓冲数据将从串行端口删除。
[覆盖虚拟受保护方法]
QModbusResponse QModbusRtuSerialServer::processRequest(const QModbusPdu &request)
重新实现: QModbusServer::processRequest(const QModbusPdu &request)。
处理指定由 request 的 Modbus 客户端请求并返回 Modbus 响应。
由于通常只有 Modbus TCP 或 Modbus 串行 ASCII,因此过滤掉了 Modbus 功能 QModbusRequest::EncapsulatedInterfaceTransport 与 MEI 类型 13 (0x0D) CANopen 一般参考。
向 RTU 串行服务器发出的请求将以具有异常代码 QModbusExceptionResponse::IllegalFunction 的 Modbus 异常响应进行响应。
[覆盖虚拟]
bool QModbusRtuSerialServer::processesBroadcast() const
重新实现: QModbusServer::processesBroadcast() const。
[自 6.2 版起]
void QModbusRtuSerialServer::setInterFrameDelay(int microseconds)
设置两个连续 Modbus 信息之间的静默间隔的 微秒 数。默认情况下,类实现将使用根据 Modbus 规范预先计算的值。活动或正在运行的连接不受此类延迟更改的影响。
注意:如果 microseconds 设置为 -1 或小于预先计算的延迟,则使用该预先计算的值作为帧延迟。
此函数是在 Qt 6.2 中引入的。
另请参阅interFrameDelay。
© 2024 Qt 公司有限公司。此处包含的文档贡献为其各自的版权所有者。此处提供的文档是根据自由软件基金会发布的《GNU 自由文档许可证版本 1.3》的条件许可的。Qt 和相应的徽标是芬兰 Qt 公司及其在全球其他国家的商标。所有其他商标均为各自所有者的财产。