95 lines
2.3 KiB
C++
95 lines
2.3 KiB
C++
#ifndef DEVICESETTINGSDIALOG_H
|
|
#define DEVICESETTINGSDIALOG_H
|
|
|
|
#include <QDialog>
|
|
#include <QEvent>
|
|
#include <QAbstractButton>
|
|
#include <QDialogButtonBox>
|
|
#include <QSpinBox>
|
|
|
|
class BoardIdHasBeenChanged : public QEvent
|
|
{
|
|
public:
|
|
BoardIdHasBeenChanged(const short num, const short newId) : QEvent(QEvent::User) {_BoardNum = num; _BoardNewID = newId;}
|
|
~BoardIdHasBeenChanged() {}
|
|
|
|
short BoardNum() const {return _BoardNum;}
|
|
short BoardNewID() const {return _BoardNewID;}
|
|
|
|
private:
|
|
short _BoardNum;
|
|
short _BoardNewID;
|
|
};
|
|
|
|
class pollStatusChange : public QEvent
|
|
{
|
|
public:
|
|
pollStatusChange(unsigned BoardID, bool Stat) : QEvent((QEvent::Type)1001) {_BoardID = BoardID; _Status = Stat;}
|
|
~pollStatusChange() {}
|
|
|
|
unsigned BoardID() const {return _BoardID;}
|
|
bool Status() const {return _Status;}
|
|
|
|
private:
|
|
unsigned _BoardID;
|
|
bool _Status;
|
|
};
|
|
|
|
namespace Ui {
|
|
class DeviceSettingsDialog;
|
|
}
|
|
|
|
class DeviceSettingsDialog : public QDialog
|
|
{
|
|
Q_OBJECT
|
|
|
|
public:
|
|
explicit DeviceSettingsDialog(QWidget *parent = nullptr);
|
|
~DeviceSettingsDialog();
|
|
|
|
unsigned currentBoardTimer(unsigned short _ID);
|
|
unsigned currentSpeed();
|
|
unsigned short currentParity();
|
|
void updateSettingsAfterConnection(unsigned tmp_speed, unsigned tmp_parity, unsigned *tmp_adr, bool *ActiveDevices);
|
|
void updatePollStatus(unsigned boardID, bool status);
|
|
void initPollForBoard(unsigned boardID, unsigned boardAdr);
|
|
void onDisconnect();
|
|
signals:
|
|
void parityChanged();
|
|
void speedChanged();
|
|
|
|
void firstBoardAdrHasBeenChanged();
|
|
void secondBoardAdrHasBeenChanged();
|
|
void thirdBoardAdrHasBeenChanged();
|
|
void fourthBoardAdrHasBeenChanged();
|
|
|
|
private slots:
|
|
void on_buttonApplyChangeTimer_clicked();
|
|
|
|
void on_buttonApplyChangeSpeed_clicked();
|
|
|
|
void on_buttonApplyChangeParity_clicked();
|
|
|
|
void on_buttonApplyChangeAdr_clicked();
|
|
|
|
void on_idComboBox_currentIndexChanged(int index);
|
|
|
|
void on_buttonBox_clicked(QAbstractButton *button);
|
|
|
|
void on_buttonApplyChangePoll_clicked();
|
|
|
|
void on_idPollComboBox_currentIndexChanged(int index);
|
|
|
|
private:
|
|
QSpinBox *_m_timer[4];
|
|
unsigned _currentBoardTimers[4];
|
|
unsigned _currentSpeed;
|
|
unsigned short _currentParity;
|
|
unsigned _currentAdrs[4];
|
|
bool _currentPollStatus[4];
|
|
|
|
Ui::DeviceSettingsDialog *ui;
|
|
};
|
|
|
|
#endif // DEVICESETTINGSDIALOG_H
|