44 lines
1.2 KiB
C++
44 lines
1.2 KiB
C++
#include "relaydialog.h"
|
|
#include "ui_relaydialog.h"
|
|
|
|
RelayDialog::RelayDialog(Microcontroller *micro, QWidget *parent) :
|
|
QDialog(parent),
|
|
ui(new Ui::RelayDialog),
|
|
_micro(micro)
|
|
{
|
|
ui->setupUi(this);
|
|
|
|
_relayCheckBoxes.push_back(ui->checkBox_R0);
|
|
_relayCheckBoxes.push_back(ui->checkBox_R1);
|
|
_relayCheckBoxes.push_back(ui->checkBox_R2);
|
|
_relayCheckBoxes.push_back(ui->checkBox_R3);
|
|
|
|
for(unsigned int i = 0; i < _relayCheckBoxes.size(); i++) connect(_relayCheckBoxes[i], SIGNAL(stateChanged(int)), this, SLOT(relayCheckBoxToggeled(int)));
|
|
|
|
_micro->relayOn(STARTING_RELAY);
|
|
_micro->relayOn(STARTING_RELAY+1);
|
|
|
|
}
|
|
|
|
RelayDialog::~RelayDialog()
|
|
{
|
|
delete ui;
|
|
}
|
|
|
|
|
|
void RelayDialog::relayCheckBoxToggeled(int state)
|
|
{
|
|
for(unsigned int i = 0; i < _relayCheckBoxes.size(); i++)
|
|
if(_relayCheckBoxes[i] == sender())_micro->relayToggle(state, i+STARTING_RELAY);
|
|
}
|
|
|
|
void RelayDialog::relayStateChanged(std::vector<bool> relayStates)
|
|
{
|
|
if(relayStates.size() >= STARTING_RELAY+4) for(unsigned int i = 0; i < _relayCheckBoxes.size(); i++)
|
|
{
|
|
_relayCheckBoxes[i]->blockSignals(true);
|
|
_relayCheckBoxes[i]->setChecked(relayStates[i+STARTING_RELAY]);
|
|
_relayCheckBoxes[i]->blockSignals(false);
|
|
}
|
|
}
|