-
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathmainwindow.h
101 lines (91 loc) · 2.76 KB
/
mainwindow.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
/*********************************************************************
* Copyright EoF Software Labs. All Rights Reserved.
* Copyright EoF Software Labs Authors.
* Written by B. Eschrich ([email protected])
* SPDX-License-Identifier: GPL v3
**********************************************************************/
#pragma once
#include <QMainWindow>
#include <QSettings>
#include <mbrtuclient.h>
#include <wsanaloginmbrtu.h>
#include <wsrelaydiginmbrtu.h>
namespace Ui {
class MainWindow;
}
class MainWindow: public QMainWindow
{
Q_OBJECT
public:
enum TRelayFunction {
Unspecified,
UpdateRelay,
ReadVersion,
ReadDeviceAddr,
WriteDeviceAddr,
WriteUartParams,
SetFlashOnInterval,
SetFlashOffInterval,
ReadControlMode,
WriteControlMode,
ReadRelayStatus,
WriteRelayStatus,
ReadDigitalInput,
};
Q_ENUM(TRelayFunction)
explicit MainWindow(QWidget* parent = nullptr);
~MainWindow();
private slots:
void onAppQuit();
/* -- */
void onRelayDriverOpend(quint8 address);
void onRelayDriverClosed(quint8 address);
void onRelayFunctionDone(quint8 address, uint function);
void onRelayChanged(quint8 relay, bool state);
void onRelayModeChanged(quint8 relay, WSRelayDigInMbRtu::TControlMode mode);
void onDigInChanged(quint8 channel, bool state);
/* -- */
void onAdcDriverOpend(quint8 address);
void onAdcDriverClosed(quint8 address);
void onAdcFunctionDone(quint8 address, uint function);
void onAInTypeChanged(quint8 channel, WSAnalogInMbRtu::TChannelType type);
void onAInValueChanged(quint8 channel, float value);
private slots:
void on_edDevAddr_valueChanged(int arg1);
void on_pbR1_clicked();
void on_pbR2_clicked();
void on_pbR3_clicked();
void on_pbR4_clicked();
void on_pbR5_clicked();
void on_pbR6_clicked();
void on_pbR7_clicked();
void on_pbR8_clicked();
void on_pbRAll_clicked();
void on_pbSetDevAddr_clicked();
void on_pbSetBaudRate_clicked();
void on_pbToggleRelays_clicked();
void on_pbSetLinkControl_clicked();
void on_pbSetChannelType_clicked();
void on_pbEnableDevice_clicked();
void on_cbDeviceList_activated(int index);
void on_pbOpenPort_clicked();
void on_pbClosePort_clicked();
private:
typedef struct {
MBRtuClient::TConfig mbconf;
quint8 rlyAddr;
quint8 adcAddr;
quint8 selDev;
} TConfig;
Ui::MainWindow* ui;
QSettings m_settings;
TConfig m_config;
MBRtuClient m_modbus;
WSRelayDigInMbRtu* m_rly;
WSAnalogInMbRtu* m_adc;
QObject* m_chg;
quint16 m_devAddress;
inline void setRelay(quint8 relay);
inline void loadConfig();
inline void saveConfig();
};