UnionComDLL/union_modbus_slave.h

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