#include "valvetestwindow.h" #include "ui_valvetestwindow.h" #include #include "soundplayer.h" ValveTestWindow::ValveTestWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::ValveTestWindow) { ui->setupUi(this); ui->clockContainer->setParent(ui->upperStack); setAttribute(Qt::WA_DeleteOnClose); foreach (QPushButton *button, findChildren()) connect(button, &QPushButton::pressed, SoundPlayer::playClick); udp = UdpHandler::getInstance(); connect(udp, SIGNAL(changed()), this, SLOT(onDataChanged())); udp->set(TG_OVEN_MODE, 4); udp->turnOn(TG_MANUAL_RELAY); onDataChanged(); } ValveTestWindow::~ValveTestWindow() { delete ui; } void ValveTestWindow::keyPressEvent(QKeyEvent *event) { switch (event->key()) { case 0x01000032: // Turn left onEncoderLeft(); break; case 0x01000031: // Push pushed = focusWidget(); break; case 0x01000030: // Turn right onEncoderRight(); break; } } void ValveTestWindow::keyReleaseEvent(QKeyEvent *event) { switch (event->key()) { case 0x01000032: // Turn left onEncoderLeft(); break; case 0x01000031: // Push if (focusWidget() == pushed) onEncoderClicked(pushed); pushed = NULL; break; case 0x01000030: // Turn right onEncoderRight(); break; } } void ValveTestWindow::onDataChanged() { if (udp->ssv()) ui->steamValveButton->setText("STOP"); else ui->steamValveButton->setText("START"); if (udp->dp()) ui->steamPumpButton->setText("STOP"); else ui->steamPumpButton->setText("START"); if (udp->qnv()) ui->quenchingValveButton->setText("STOP"); else ui->quenchingValveButton->setText("START"); if (udp->snv()) ui->sideValveButton->setText("STOP"); else ui->sideValveButton->setText("START"); if (udp->sgnv()) ui->cleanValveButton->setText("STOP"); else ui->cleanValveButton->setText("START"); oven_state_t oven; udp->fillData(oven); QString buf; ui->c2->setText(buf.sprintf("%d℃", oven.sensor2)); } void ValveTestWindow::on_steamValveButton_clicked() { if (udp->ssv()) steamValveClose(); else steamValveOpen(); } void ValveTestWindow::on_steamPumpButton_clicked() { if (udp->dp()) steamPumpOff(); else steamPumpOn(); } void ValveTestWindow::on_innerCleanValveButton_clicked() { if (udp->inv()) innerCleanValveClose(); else innerCleanValveOpen(); } void ValveTestWindow::on_quenchingValveButton_clicked() { if (udp->qnv()) quenchingValveClose(); else quenchingValveOpen(); } void ValveTestWindow::on_sideValveButton_clicked() { if (udp->snv()) sideValveClose(); else sideValveOpen(); } void ValveTestWindow::on_cleanValveButton_clicked() { if (udp->sgnv()) cleanValveClose(); else cleanValveOpen(); } void ValveTestWindow::on_backButton_clicked() { steamValveClose(); steamPumpOff(); quenchingValveClose(); sideValveClose(); udp->turnOff(TG_SSV); udp->turnOff(TG_DP); udp->turnOff(TG_QNV); udp->turnOff(TG_SNV); udp->turnOff(TG_SGNV); udp->turnOff(TG_MANUAL_RELAY); close(); } void ValveTestWindow::onEncoderLeft() { focusPreviousChild(); } void ValveTestWindow::onEncoderRight() { focusNextChild(); } void ValveTestWindow::onEncoderClicked(QWidget *clicked) { QPushButton *b = qobject_cast(clicked); if (b) b->click(); } void ValveTestWindow::steamValveOpen() { udp->turnOn(TG_SSV); } void ValveTestWindow::steamValveClose() { udp->turnOff(TG_SSV); } void ValveTestWindow::steamPumpOn() { udp->turnOn(TG_DP); } void ValveTestWindow::steamPumpOff() { udp->turnOff(TG_DP); } void ValveTestWindow::quenchingValveOpen() { udp->turnOn(TG_QNV); } void ValveTestWindow::quenchingValveClose() { udp->turnOff(TG_QNV); } void ValveTestWindow::sideValveOpen() { udp->turnOn(TG_SNV); } void ValveTestWindow::sideValveClose() { udp->turnOff(TG_SNV); } void ValveTestWindow::cleanValveOpen() { udp->turnOn(TG_SGNV); } void ValveTestWindow::cleanValveClose() { udp->turnOff(TG_SGNV); } void ValveTestWindow::innerCleanValveOpen() { udp->turnOn(TG_INV); } void ValveTestWindow::innerCleanValveClose() { udp->turnOff(TG_INV); }