Files
UvosSmartHomeInterface/relaydialog.cpp
2017-11-07 20:26:16 +01:00

44 lines
1.1 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(toggled(bool)), this, SLOT(relayCheckBoxToggeled(bool)));
_micro->relayOn(STARTING_RELAY);
_micro->relayOn(STARTING_RELAY+1);
}
RelayDialog::~RelayDialog()
{
delete ui;
}
void RelayDialog::relayCheckBoxToggeled(bool checked)
{
for(unsigned int i = 0; i < _relayCheckBoxes.size(); i++)
{
if(_relayCheckBoxes[i] == sender())
{
checked ? _micro->relayOn(i+4) : _micro->relayOff(i+4);
}
}
}
void RelayDialog::relayStateChanged(std::vector<bool> relayStates)
{
if(relayStates.size() >= 8) for(unsigned int i = 0; i < _relayCheckBoxes.size(); i++) _relayCheckBoxes[i]->setChecked(relayStates[i+4]);
}