121 lines
2.8 KiB
C++
121 lines
2.8 KiB
C++
#ifndef M3KTE_H
|
|
#define M3KTE_H
|
|
|
|
#include <QMainWindow>
|
|
#include <QModbusDataUnit>
|
|
#include <qprogressbar.h>
|
|
|
|
#include <QtSerialBus/QModbusDataUnit>
|
|
#include "writeregistermodel.h"
|
|
#include "devicesettingsdialog.h"
|
|
#include "multiplesettings.h"
|
|
#include "scanboard.h"
|
|
|
|
#include <QModbusTcpClient>
|
|
#include <QModbusRtuSerialMaster>
|
|
|
|
#include <QTimer>
|
|
#include <QMessageBox>
|
|
#include <QProgressDialog>
|
|
#include <QErrorMessage>
|
|
#include <QPushButton>
|
|
#include <QGroupBox>
|
|
|
|
#include <QtSerialBus/qtserialbusglobal.h>
|
|
|
|
#if QT_CONFIG(modbus_serialport)
|
|
#include <QSerialPort>
|
|
#endif
|
|
|
|
#define MODBUS_REQUEST_PROTOCOL_INFO_LENGTH 8
|
|
|
|
QT_BEGIN_NAMESPACE
|
|
namespace Ui { class M3KTE; class SettingsDialog;}
|
|
QT_END_NAMESPACE
|
|
|
|
class SettingsDialog;
|
|
class WriteRegisterModel;
|
|
|
|
class M3KTE : public QMainWindow
|
|
{
|
|
Q_OBJECT
|
|
private:
|
|
void initActions();
|
|
QModbusDataUnit readRequest() const;
|
|
QModbusDataUnit writeRequest() const;
|
|
void changeTable(int board, int tabletype);
|
|
void errorAdrChange();
|
|
bool event(QEvent* event);
|
|
bool pingNetworkDevices();
|
|
void beginScanBoards();
|
|
void displayResultOfScan(QModbusReply *reply, int boardID);
|
|
void applySettingsFromScan(QModbusReply *reply);
|
|
|
|
void multipleRegWrite();
|
|
void multipleRegSend();
|
|
|
|
bool autoBaudRateScan();
|
|
|
|
void selectPositionOnTree(unsigned index);
|
|
private slots:
|
|
|
|
void slotmultipleRegWrite();
|
|
void slotmultipleRegWriteAndSend();
|
|
|
|
void onConnectClicked();
|
|
|
|
void onReadButtonClicked();
|
|
void onReadReady();
|
|
|
|
void checkAdrChange(QModbusReply *reply, unsigned boardNum);
|
|
|
|
void onWriteButtonClicked();
|
|
void onSelectedBoardChanged(int index);
|
|
void onWriteTableChanged(int index);
|
|
|
|
void onSpeedUpdate();
|
|
void onParityUpdate();
|
|
|
|
void boardScan(unsigned boardID);
|
|
|
|
public:
|
|
M3KTE(QWidget *parent = nullptr);
|
|
~M3KTE();
|
|
|
|
private:
|
|
Ui::M3KTE *ui;
|
|
int CurrentConnectedDevice = 0;
|
|
//int DeviceOnNetwork[4];
|
|
QProgressBar *m_ProgressBar[320];
|
|
QPushButton *ThePhantomMenace[320];
|
|
QModbusReply *lastRequest = nullptr;
|
|
QModbusClient *modbusDevice = nullptr;
|
|
DeviceSettingsDialog *m_deviceSettingsDialog = nullptr;
|
|
SettingsDialog *m_settingsDialog = nullptr;
|
|
MultipleSettings *m_regMultipleSettings = nullptr;
|
|
ScanBoard *m_scanBoard = nullptr;
|
|
QGroupBox *Boards_Fields[4];
|
|
//WriteRegisterModel *writeModel = nullptr;
|
|
|
|
struct StatusM3KTE{
|
|
bool Warnings[4];
|
|
bool Accidents[4];
|
|
}statusM3KTE;
|
|
|
|
struct BoardModbusRegisters
|
|
{
|
|
bool isActive = false;
|
|
|
|
int adr;
|
|
int _tmp_adr;
|
|
|
|
bool coil[85];
|
|
unsigned HR[170];
|
|
|
|
WriteRegisterModel *ModbusModelCoil;
|
|
WriteRegisterModel *ModbusModelHoldingReg;
|
|
QTimer *boardScanners;
|
|
}Boards[4];
|
|
};
|
|
#endif // M3KTE_H
|