diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -187,6 +187,9 @@ MainWindow::MainWindow(QWidget *parent) } }); + connect(&serialPort, &QIODevice::aboutToClose, + &recordPanel, &RecordPanel::onPortClose); + // init data arrays and plot numOfSamples = plotControlPanel.numOfSamples(); unsigned numOfChannels = dataFormatPanel.numOfChannels(); diff --git a/src/recordpanel.cpp b/src/recordpanel.cpp --- a/src/recordpanel.cpp +++ b/src/recordpanel.cpp @@ -216,17 +216,9 @@ bool RecordPanel::confirmOverwrite(QStri void RecordPanel::startRecording(void) { - qDebug() << "start recording"; - - // TEST CODE + // TODO: channel names QStringList cn; - // cn << "chan0" << "chan1" << "chan2"; - _recorder->startRecording(selectedFile, cn); - - // add test data - // double data[3] = {15., 15., 15.}; - // _recorder.addData(data, 3, 3); emit recordStarted(); } @@ -235,3 +227,12 @@ void RecordPanel::stopRecording(void) emit recordStopped(); _recorder->stopRecording(); } + +void RecordPanel::onPortClose() +{ + if (recordAction.isChecked() && ui->cbStopOnClose->isChecked()) + { + stopRecording(); + recordAction.setChecked(false); + } +} diff --git a/src/recordpanel.h b/src/recordpanel.h --- a/src/recordpanel.h +++ b/src/recordpanel.h @@ -49,6 +49,10 @@ signals: void recordStopped(); void recordPausedChanged(bool enabled); +public slots: + /// Must be called when port is closed + void onPortClose(); + private: Ui::RecordPanel *ui; QToolBar recordToolBar; diff --git a/src/recordpanel.ui b/src/recordpanel.ui --- a/src/recordpanel.ui +++ b/src/recordpanel.ui @@ -70,7 +70,7 @@ - + Stop recording when port closed