#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 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); } }