QModbusRtuSerialServer Class

The QModbusRtuSerialServer class represents a Modbus server that uses a serial port for its communication with the Modbus client. 更多...

头: #include <QModbusRtuSerialServer>
CMake: find_package(Qt6 REQUIRED COMPONENTS SerialBus)
target_link_libraries(mytarget PRIVATE Qt6::SerialBus)
qmake: QT += serialbus
Since: Qt 6.2
继承: QModbusServer

公共函数

QModbusRtuSerialServer (QObject * parent = nullptr)
virtual ~QModbusRtuSerialServer ()
int interFrameDelay () const
void setInterFrameDelay (int microseconds )

重实现公共函数

virtual bool processesBroadcast () const override

重实现保护函数

virtual void close () override
virtual bool open () override
virtual QModbusResponse processRequest (const QModbusPdu & request ) override

详细描述

Communication via Modbus requires the interaction between a single Modbus client instance and multiple Modbus server. This class provides the Modbus server implementation via a serial port.

Since multiple Modbus server instances can interact with a Modbus client at the same time (using a serial bus), servers are identified by their serverAddress ().

成员函数文档编制

[explicit] QModbusRtuSerialServer:: QModbusRtuSerialServer ( QObject * parent = nullptr)

Constructs a QModbusRtuSerialServer with the specified parent serverAddress preset is 1 .

[虚拟] QModbusRtuSerialServer:: ~QModbusRtuSerialServer ()

销毁 QModbusRtuSerialServer 实例。

[override virtual protected] void QModbusRtuSerialServer:: close ()

重实现: QModbusDevice::close ().

[since 6.2] int QModbusRtuSerialServer:: interFrameDelay () const

Returns the amount of microseconds for the silent interval between two consecutive Modbus messages.

该函数在 Qt 6.2 引入。

另请参阅 setInterFrameDelay ().

[override virtual protected] bool QModbusRtuSerialServer:: open ()

重实现: QModbusDevice::open ().

注意: When calling this function, existing buffered data is removed from the serial port.

[override virtual protected] QModbusResponse QModbusRtuSerialServer:: processRequest (const QModbusPdu & request )

重实现: QModbusServer::processRequest (const QModbusPdu &request).

Processes the Modbus client request specified by request and returns a Modbus response.

The Modbus function QModbusRequest::EncapsulatedInterfaceTransport with MEI Type 13 (0x0D) CANopen General Reference is filtered out because it is usually Modbus TCP or Modbus serial ASCII only.

A request to the RTU serial server will be answered with a Modbus exception response with the exception code QModbusExceptionResponse::IllegalFunction.

[override virtual] bool QModbusRtuSerialServer:: processesBroadcast () const

重实现: QModbusServer::processesBroadcast() const .

[since 6.2] void QModbusRtuSerialServer:: setInterFrameDelay ( int microseconds )

Sets the amount of microseconds for the silent interval between two consecutive Modbus messages. By default, the class implementation will use a pre-calculated value according to the Modbus specification. A active or running connection is not affected by such delay changes.

注意: microseconds is set to -1 or microseconds is less than the pre-calculated delay then this pre-calculated value is used as frame delay.

该函数在 Qt 6.2 引入。

另请参阅 interFrameDelay ().