QModbusRtuSerialServer Class
La clase QModbusRtuSerialServer representa un servidor Modbus que utiliza un puerto serie para su comunicación con el cliente Modbus. Más...
| Cabecera: | #include <QModbusRtuSerialServer> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS SerialBus)target_link_libraries(mytarget PRIVATE Qt6::SerialBus) |
| qmake: | QT += serialbus |
| Desde: | Qt 6.2 |
| Hereda: | QModbusServer |
Funciones Públicas
| QModbusRtuSerialServer(QObject *parent = nullptr) | |
| virtual | ~QModbusRtuSerialServer() |
(since 6.2) int | interFrameDelay() const |
(since 6.2) void | setInterFrameDelay(int microseconds) |
Funciones Públicas Reimplementadas
| virtual bool | processesBroadcast() const override |
Funciones protegidas reimplementadas
| virtual void | close() override |
| virtual bool | open() override |
| virtual QModbusResponse | processRequest(const QModbusPdu &request) override |
Descripción Detallada
La comunicación vía Modbus requiere la interacción entre una única instancia de cliente Modbus y múltiples servidores Modbus. Esta clase proporciona la implementación del servidor Modbus a través de un puerto serie.
Dado que múltiples instancias de servidor Modbus pueden interactuar con un cliente Modbus al mismo tiempo (utilizando un bus serie), los servidores se identifican por su serverAddress().
Documentación de las funciones miembro
[explicit] QModbusRtuSerialServer::QModbusRtuSerialServer(QObject *parent = nullptr)
Construye un QModbusRtuSerialServer con el parent especificado. El preajuste de serverAddress es 1.
[virtual noexcept] QModbusRtuSerialServer::~QModbusRtuSerialServer()
Destruye la instancia QModbusRtuSerialServer.
[override virtual protected] void QModbusRtuSerialServer::close()
Reimplementa: QModbusDevice::close().
[since 6.2] int QModbusRtuSerialServer::interFrameDelay() const
Devuelve la cantidad de microsegundos para el intervalo silencioso entre dos mensajes Modbus consecutivos.
Esta función se introdujo en Qt 6.2.
Véase también setInterFrameDelay().
[override virtual protected] bool QModbusRtuSerialServer::open()
Reimplementa: QModbusDevice::open().
Nota: Al llamar a esta función, los datos almacenados en el buffer se eliminan del puerto serie.
[override virtual protected] QModbusResponse QModbusRtuSerialServer::processRequest(const QModbusPdu &request)
Reimplementa: QModbusServer::processRequest(const QModbusPdu &request).
Procesa la petición del cliente Modbus especificada por request y devuelve una respuesta Modbus.
La función Modbus QModbusRequest::EncapsulatedInterfaceTransport con MEI Tipo 13 (0x0D) Referencia General CANopen se filtra porque normalmente es Modbus TCP o Modbus serial ASCII solamente.
Una solicitud al servidor serie RTU será respondida con una respuesta de excepción Modbus con el código de excepción QModbusExceptionResponse::IllegalFunction.
[override virtual] bool QModbusRtuSerialServer::processesBroadcast() const
Reimplementa: QModbusServer::processesBroadcast() const.
[since 6.2] void QModbusRtuSerialServer::setInterFrameDelay(int microseconds)
Establece la cantidad de microseconds para el intervalo silencioso entre dos mensajes Modbus consecutivos. Por defecto, la implementación de la clase utilizará un valor precalculado según la especificación Modbus. Una conexión activa o en ejecución no se ve afectada por dichos cambios de retardo.
Nota: Si microseconds se establece en -1 o microseconds es menor que el retardo precalculado, entonces este valor precalculado se utiliza como retardo de trama.
Esta función se introdujo en Qt 6.2.
Ver también interFrameDelay().
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.