-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathcontrolwindow.cpp
91 lines (74 loc) · 3.54 KB
/
controlwindow.cpp
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
#include "controlwindow.h"
#include "currentgague.h"
controlwindow::controlwindow(USBbulk* usb , MainWindow* w , QWidget *parent ) : QMainWindow(parent)
{
setWindowTitle("Regulator");
top_layout = new QGridLayout(this);
torque = new EQChannel(this , 0 , "Torque");
flux = new EQChannel(this , 1 , "Flux" );
bode = new bodeplot(this);
knob_fuse = new Knob(linScale , this , true);
knob_fuse->setFixedWidth(100);
knob_fuse->setTitle("Fuse [A]");
knob_fuse->setToolTip("Fuse current");
knob_fuse->setRange(1 , 32 , 128);
knob_fuse->setValue(20);
knob_fuse->setDecimals(1);
knob_fuse->setKnobColor("rgb(255, 200, 0)");
button_reset = new QPushButton(this);
icon_fuseOK.addFile(":/images/FuseOK.png");
icon_fuseBurnt.addFile(":/images/FuseBURNT.png");
button_reset->setIconSize(QSize(48,20));
button_reset->setFixedWidth(80);
button_reset->setFixedHeight(30);
button_reset->setToolTip("Reset fuse");
slot_ResetButtonState(false);
drv8320 = new DRV8320S(this);
top_layout->addWidget(torque, 0 , 0 , 1 , 2);
top_layout->addWidget(flux , 0 , 2);
top_layout->addWidget(bode , 0 , 3);
top_layout->addWidget(knob_fuse , 1 , 0 , Qt::AlignRight);
top_layout->addWidget(button_reset , 1 , 1 , Qt::AlignLeft);
top_layout->addWidget(drv8320->masterBox , 1 , 2 ,2,2);
groupbox = new QGroupBox(this);
groupbox->setLayout(top_layout);
this->setCentralWidget(groupbox);
connect(torque->PI , &PISection::resetIntegrator , usb , &USBbulk::resetPIintegrator);
connect(torque->PI , &PISection::PIchanged , bode , &bodeplot::PIchanged );
connect(torque->PI , &PISection::sendPIsettings , usb , &USBbulk::sendPIsettings);
connect(flux->PI , &PISection::resetIntegrator , usb , &USBbulk::resetPIintegrator);
connect(flux->PI , &PISection::PIchanged , bode , &bodeplot::PIchanged );
connect(flux->PI , &PISection::sendPIsettings , usb , &USBbulk::sendPIsettings);
for(int i=0; i<2 ; i++){
connect(torque->EQ[i] , &EQsection::EQchanged , bode , &bodeplot::EQchanged);
connect(torque->EQ[i] , &EQsection::sendEQsettings , usb , &USBbulk::sendEQsettings);
connect(flux->EQ[i] , &EQsection::EQchanged , bode , &bodeplot::EQchanged);
connect(flux->EQ[i] , &EQsection::sendEQsettings , usb , &USBbulk::sendEQsettings);
}
connect(knob_fuse , &Knob::valueChanged , usb , &USBbulk::sendFuseCurrent);
connect(knob_fuse , &Knob::valueChanged , w , &MainWindow::currentRange);
connect(knob_fuse , &Knob::valueChanged , w->gaugeWindow->currentGauge , ¤tGague::setScale);
connect(button_reset , &QPushButton::clicked , usb , &USBbulk::sendFuseReset);
connect(button_reset , &QPushButton::clicked , this , &controlwindow::slot_ResetButtonState);
connect(w , &MainWindow::fuseStatus , this , &controlwindow::slot_ResetButtonState );
w->currentRange(knob_fuse->Value());
w->gaugeWindow->currentGauge->setScale(knob_fuse->Value());
torque->PI->updateSettingsAndPlot(false);
flux->PI->updateSettingsAndPlot(false);
}
void controlwindow::slot_ResetButtonState(bool state){
if(state == fusestate)
return;
if(state == false){
button_reset->setIcon(icon_fuseOK);
button_reset->setStyleSheet("background-color:lightgreen");
fusestate = false;
}
else{
button_reset->setIcon(icon_fuseBurnt);
button_reset->setStyleSheet("background-color:red");
fusestate = true;
}
}
controlwindow::~controlwindow(){
}