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 ().