#pragma once // system includes #include // Qt includes #include #include // forward declares class QModbusTcpClient; class QModbusReply; namespace Ui { class MainWindow; } class ModbusTableModel; class MainWindow : public QMainWindow { Q_OBJECT public: explicit MainWindow(QWidget *parent = nullptr); ~MainWindow() override; private slots: void connectPressed(); void requestPressed(); void writePressed(); void modbusErrorOccured(int error); void modbusStateChanged(int state); void replyFinished(); private: void updateRequestFields(); const std::unique_ptr m_ui; const std::unique_ptr m_modbus; const std::unique_ptr m_model; std::unique_ptr m_reply; QElapsedTimer m_timer; };