#ifndef UNION_MODBUS_SLAVE_H #define UNION_MODBUS_SLAVE_H #include #include #include #include QT_BEGIN_NAMESPACE class QLineEdit; namespace Ui { class union_modbus_slave; class SettingsDialog; } QT_END_NAMESPACE //namespace Ui { //class union_modbus_slave; //} //class union_modbus_slave : public QWidget //{ // Q_OBJECT //public: // explicit union_modbus_slave(QWidget *parent = nullptr); // ~union_modbus_slave(); //private: // Ui::union_modbus_slave *ui; //}; class SettingsDialog; class union_modbus_slave : public QWidget { Q_OBJECT public: explicit union_modbus_slave(QWidget *parent = nullptr); ~union_modbus_slave(); private Q_SLOTS: void onConnectButtonClicked(); void onStateChanged(int state); void coilChanged(int id); void discreteInputChanged(int id); void bitChanged(int id, QModbusDataUnit::RegisterType table, bool value); void setRegister(const QString &value); void updateWidgets(QModbusDataUnit::RegisterType table, int address, int size); void onCurrentConnectTypeChanged(int); void handleDeviceError(QModbusDevice::Error newError); private: QTimer statusBarTimeOut; void statusBarClear(); void initActions(); void setupDeviceData(); void setupWidgetContainers(); Ui::union_modbus_slave *ui = nullptr; QModbusServer *modbusDevice = nullptr; QButtonGroup coilButtons; QButtonGroup discreteButtons; QHash registers; //SettingsDialog *m_settingsDialog = nullptr; }; #endif // UNION_MODBUS_SLAVE_H