78 lines
1.6 KiB
C++
78 lines
1.6 KiB
C++
#ifndef UNION_MODBUS_SLAVE_H
|
|
#define UNION_MODBUS_SLAVE_H
|
|
|
|
#include <QWidget>
|
|
#include <QButtonGroup>
|
|
#include <QModbusServer>
|
|
#include <QTimer>
|
|
|
|
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<QString, QLineEdit *> registers;
|
|
//SettingsDialog *m_settingsDialog = nullptr;
|
|
};
|
|
#endif // UNION_MODBUS_SLAVE_H
|