// Copyright (C) 2017 The Qt Company Ltd. // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only #ifndef QMODBUSCLIENT_H #define QMODBUSCLIENT_H #include #include #include #include #include QT_BEGIN_NAMESPACE class QModbusClientPrivate; class Q_SERIALBUS_EXPORT QModbusClient : public QModbusDevice { Q_OBJECT Q_DECLARE_PRIVATE(QModbusClient) public: explicit QModbusClient(QObject *parent = nullptr); ~QModbusClient(); QModbusReply *sendReadRequest(const QModbusDataUnit &read, int serverAddress); QModbusReply *sendWriteRequest(const QModbusDataUnit &write, int serverAddress); QModbusReply *sendReadWriteRequest(const QModbusDataUnit &read, const QModbusDataUnit &write, int serverAddress); QModbusReply *sendRawRequest(const QModbusRequest &request, int serverAddress); int timeout() const; void setTimeout(int newTimeout); int numberOfRetries() const; void setNumberOfRetries(int number); Q_SIGNALS: void timeoutChanged(int newTimeout); protected: QModbusClient(QModbusClientPrivate &dd, QObject *parent = nullptr); virtual bool processResponse(const QModbusResponse &response, QModbusDataUnit *data); virtual bool processPrivateResponse(const QModbusResponse &response, QModbusDataUnit *data); }; QT_END_NAMESPACE #endif // QMODBUSCLIENT_H