9,14 → 9,12 |
|
// Serial connection UI |
groupSerialInit = new QGroupBox("Initialization"); |
btnSerialConnect = new QPushButton("Connect"); |
btnSerialRefresh = new QPushButton("Refresh"); |
btnSerialConnect = new QPushButton("&Connect"); |
btnSerialRefresh = new QPushButton("&Refresh"); |
labelSerialPort = new QLabel("Port:"); |
labelSerialSpeed = new QLabel("Baud Rate:"); |
cboxSerialPort = new QComboBox(); |
// cboxSerialPort->setFixedWidth(100); |
cboxSerialSpeed = new QComboBox(); |
// cboxSerialSpeed->setFixedWidth(100); |
|
QHBoxLayout *serialInitLayout = new QHBoxLayout(); |
serialInitLayout->addWidget(btnSerialConnect); |
39,7 → 37,7 |
textSerialData->setReadOnly(true); |
textSerialTransmit = new QLineEdit(); |
textSerialTransmit->setFont(QFont("Consolas", 8)); |
btnSerialTransmit = new QPushButton("Send"); |
btnSerialTransmit = new QPushButton("&Send"); |
btnSerialClear = new QPushButton("Clear"); |
|
QHBoxLayout *serialTransmitLayout = new QHBoxLayout(); |
52,24 → 50,28 |
groupSerialData->setLayout(serialDataLayout); |
|
|
// Macro controller |
groupMacro = new QGroupBox("Other"); |
btnMacro = new QPushButton("&Macros"); |
QHBoxLayout *macroLayout = new QHBoxLayout(); |
macroLayout->addWidget(btnMacro); |
groupMacro->setLayout(macroLayout); |
groupMacro->setFixedSize(groupMacro->sizeHint()); |
|
|
// Main layout |
QGridLayout *mainLayout = new QGridLayout(); |
mainLayout->addWidget(groupSerialInit, 0, 0); |
mainLayout->addWidget(groupSerialData, 1, 0); |
mainLayout->addWidget(groupSerialInit, 0, 0, 1, 1, Qt::AlignLeft); |
mainLayout->addWidget(groupMacro, 0, 1, 1, 1, Qt::AlignLeft); |
mainLayout->addWidget(groupSerialData, 1, 0, 1, 2); |
mainLayout->setColumnStretch(0, 0); |
mainLayout->setColumnStretch(1, 1); |
centralWidget->setLayout(mainLayout); |
|
setWindowTitle("Paste Dispenser Controller"); |
setBaseSize(this->sizeHint()); |
|
// Initialize thread for connection to serial port |
serialThread = new QThread(); |
serialController = new SerialController(); |
serialController->moveToThread(serialThread); |
|
connect(btnSerialConnect, SIGNAL(clicked()), this, SLOT(Serial_ConnectToggleBtn())); |
connect(btnSerialRefresh, SIGNAL(clicked()), this, SIGNAL(Serial_QueryParameters())); |
connect(btnSerialTransmit, SIGNAL(clicked()), this, SLOT(Serial_TransmitStringBtn())); |
connect(textSerialTransmit, SIGNAL(returnPressed()), btnSerialTransmit, SIGNAL(clicked())); |
connect(btnSerialClear, SIGNAL(clicked()), this, SLOT(Serial_ClearBtn())); |
connect(this, SIGNAL(Serial_QueryParameters()), serialController, SLOT(Serial_QueryParameters())); |
connect(this, SIGNAL(Serial_Connect(QString,QString)), serialController, SLOT(Serial_Connect(QString,QString))); |
connect(this, SIGNAL(Serial_Disconnect()), serialController, SLOT(Serial_Disconnect())); |
81,8 → 83,24 |
connect(serialThread, SIGNAL(finished()), serialController, SLOT(deleteLater())); |
serialThread->start(); |
|
// Initialize macro widget |
macroController = new MacroController(); |
connect(macroController, SIGNAL(Macro_TransmitText(QString)), this, SLOT(Serial_PrepareTransmit(QString))); |
connect(serialController, SIGNAL(Serial_Connected()), macroController, SLOT(Macro_EnableTransmit())); |
connect(serialController, SIGNAL(Serial_Disconnected()), macroController, SLOT(Macro_DisableTransmit())); |
|
// Connect local widgets |
connect(btnSerialConnect, SIGNAL(clicked()), this, SLOT(Serial_ConnectToggleBtn())); |
connect(btnSerialRefresh, SIGNAL(clicked()), this, SIGNAL(Serial_QueryParameters())); |
connect(btnSerialTransmit, SIGNAL(clicked()), this, SLOT(Serial_PrepareTransmit())); |
connect(textSerialTransmit, SIGNAL(returnPressed()), btnSerialTransmit, SIGNAL(clicked())); |
connect(btnSerialClear, SIGNAL(clicked()), this, SLOT(Serial_ClearBtn())); |
connect(btnMacro, SIGNAL(clicked()), this, SLOT(Macro_ShowWindowBtn())); |
|
emit Serial_QueryParameters(); |
Serial_Disconnected(); |
|
setWindowTitle("Marlin Controller"); |
} |
|
MainWindow::~MainWindow() |
101,19 → 119,31 |
} |
} |
|
void MainWindow::Serial_TransmitStringBtn() |
void MainWindow::Serial_PrepareTransmit(QString string) |
{ |
emit Serial_TransmitString(textSerialTransmit->text()); |
textSerialData->setTextColor(Qt::darkBlue); |
textSerialData->append("TX: " + textSerialTransmit->text()); |
if (string == "") { |
string = textSerialTransmit->text(); |
textSerialTransmit->setText(""); |
} |
emit Serial_TransmitString(string); |
textSerialData->setTextColor(Qt::darkBlue); |
|
QStringList cmds = string.split('\n'); |
for (int i = 0; i < cmds.size(); i++) { |
textSerialData->append("TX: " + cmds[i]); |
} |
} |
|
void MainWindow::Serial_ClearBtn() |
{ |
textSerialData->clear(); |
} |
|
void MainWindow::Macro_ShowWindowBtn() |
{ |
macroController->show(); |
} |
|
void MainWindow::Serial_UpdateParameters(QStringList ports, QStringList speeds) |
{ |
cboxSerialPort->clear(); |
131,7 → 161,7 |
|
void MainWindow::Serial_Connected() |
{ |
btnSerialConnect->setText("Disconnect"); |
btnSerialConnect->setText("&Disconnect"); |
cboxSerialPort->setEnabled(false); |
cboxSerialSpeed->setEnabled(false); |
btnSerialRefresh->setEnabled(false); |
141,7 → 171,7 |
|
void MainWindow::Serial_Disconnected() |
{ |
btnSerialConnect->setText("Connect"); |
btnSerialConnect->setText("&Connect"); |
cboxSerialPort->setEnabled(true); |
cboxSerialSpeed->setEnabled(true); |
btnSerialRefresh->setEnabled(true); |
148,3 → 178,9 |
textSerialTransmit->setEnabled(false); |
btnSerialTransmit->setEnabled(false); |
} |
|
void MainWindow::closeEvent(QCloseEvent *event) |
{ |
macroController->close(); |
event->accept(); |
} |