#include "mainwindow.h" #include "ui_mainwindow.h" #include #include "chart.h" #include "chartview.h" #include "multichartview.h" using namespace QtCharts; MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); /* dataService = new DataService(); dataService->moveToThread(&dataServiceThread); connect(&dataServiceThread, &QThread::finished, dataService, &QObject::deleteLater); connect(ui->goBtn, SIGNAL(clicked(bool)), dataService, SLOT(doWork())); connect(dataService, SIGNAL(resultReady()), this, SLOT(handleResult())); dataServiceThread.start(); */ DataLoader *loader = new DataLoader(); loader->moveToThread(&dataQueue); dataQueue.start(); conversionQueue.start(); file = nix::File::open("/home/grewe/zwischenlager/2017-08-17-af-invivo-1/2017-08-17-af-invivo-1.nix", nix::FileMode::ReadOnly); /* file = nix::File::open("/Users/jan/zwischenlager/threading_test/dataservice/data/2017-08-17-af-invivo-1.nix", nix::FileMode::ReadOnly); */ nix::Block b = file.getBlock(0); this->voltage = b.getDataArray("V-1"); this->eod = b.getDataArray("EOD"); MultiChartView *mcv = new MultiChartView(&dataQueue, &conversionQueue); ui->vbox->addWidget(mcv); mcv->addArray(eod); mcv->addArray(voltage); } MainWindow::~MainWindow() { std::cerr << "destructor"<< std::endl; if (file) { file.close(); } dataQueue.stop(); dataQueue.quit(); dataQueue.wait(); std::cerr << dataQueue.isRunning() << std::endl; conversionQueue.stop(); conversionQueue.quit(); conversionQueue.wait(); std::cerr << conversionQueue.isRunning() << std::endl; delete ui; }