Skip to content

Commit b07c16c

Browse files
committed
Other paradigm of threading
1 parent 8400033 commit b07c16c

11 files changed

+967
-71
lines changed

TSProject.pro

+4-2
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,8 @@ SOURCES += main.cpp\
2424
models/TSExaminations.cpp \
2525
tsanalitics.cpp \
2626
inputs/tstableview.cpp \
27-
tstempanalitic.cpp
27+
tstempanalitic.cpp \
28+
tsusbdatareader.cpp
2829

2930
HEADERS += \
3031
tsmodel.h \
@@ -45,7 +46,8 @@ HEADERS += \
4546
inputs/tstableview.h \
4647
ui_tsprintview.h \
4748
tstempanalitic.h \
48-
extremum.h
49+
extremum.h \
50+
tsusbdatareader.h
4951

5052
LIBS += -L"dll/*.dll"
5153
FORMS += \

TSProject.pro.user.2.5pre1

+315
Large diffs are not rendered by default.

extremum.h

+1
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,6 @@
33
struct extremum {
44
int x, y, type;
55
};
6+
enum TSUsbReadingType {ReadAll,ReadForVolZer,ReadForVolVal,ReadForTemp};
67
#endif // EXTREMUM_H
78

tscontroller.cpp

+64-50
Original file line numberDiff line numberDiff line change
@@ -103,12 +103,18 @@ TSController::TSController(QWidget *parent) :
103103
connect(ui->patientsTableView,SIGNAL(deleteRequest(int)),this,SLOT(deletePatient(int)));
104104
connect(ui->examsTableView,SIGNAL(deleteRequest(int)),this,SLOT(deleteExam(int)));
105105
connect(ui->printButton,SIGNAL(clicked()),this,SLOT(printReport()));
106+
107+
//connect(rdr,SIGNAL(done()),this,SIGNAL())
108+
106109
ui->resultsButton->setEnabled(true);
107110
ui->backPatientProfileButton->installEventFilter(this);
108111
ui->backPatientListButton->installEventFilter(this);
109112
ui->backCallibrateButton->installEventFilter(this);
110113
ui->backExamButton->installEventFilter(this);
111-
this->processDataParams();
114+
//this->processDataParams();
115+
rdr= new TSUsbDataReader();
116+
trd = new QThread();
117+
// rdr->moveToThread(trd);
112118
}
113119

114120
TSController::~TSController()
@@ -309,65 +315,66 @@ void TSController::calibrateVolume(){
309315
Ui::TSProgressDialog dui;
310316
dui.setupUi(&d);
311317
d.setWindowTitle(tr("Ïðåäóïðåæäåíèå"));
312-
readerThread->setReadingType(ReadForVolZer);
313-
readerThread->startRead();
318+
//readerThread->setReadingType(ReadForVolZer);
319+
//readerThread->startRead();
320+
rdr->initDevice(curveBuffer);
321+
rdr->setReadingType(ReadForVolZer);
322+
connect(trd,SIGNAL(started()),rdr,SLOT(read()));
323+
//connect()
324+
qDebug()<<"Start reading zero level";
314325
dui.information->setText(tr("Èäåò ïîäãîòîâêà..."));
315326
dui.acceptButton->setVisible(false);
316-
connect(readerThread,SIGNAL(done()),&d,SLOT(accept()));
317-
connect(readerThread,SIGNAL(changeProgress(int)),dui.progressBar,SLOT(setValue(int)));
327+
connect(rdr,SIGNAL(done()),&d,SLOT(accept()));
328+
connect(rdr,SIGNAL(changeProgress(int)),dui.progressBar,SLOT(setValue(int)));
318329
switch(d.exec()){
319-
case 1:{
320-
settings.setValue("volZero",curveBuffer->volumeColibration());
321-
dui.information->setText(tr("Ïîäãîòîâêà çàâåðøèíà.\nÍàæìèòå êíîïêó Ok è êà÷àéòå øïðèöåì."));
322-
dui.progressBar->setVisible(false);
323-
dui.acceptButton->setVisible(true);
324-
break;
325-
}
326-
default: break;
330+
case 1:{
331+
settings.setValue("volZero",curveBuffer->volumeColibration());
332+
dui.information->setText(tr("Ïîäãîòîâêà çàâåðøèíà.\nÍàæìèòå êíîïêó Ok è êà÷àéòå øïðèöåì."));
333+
dui.progressBar->setVisible(false);
334+
dui.acceptButton->setVisible(true);
335+
break;
336+
}
337+
default: break;
327338
}
339+
qDebug()<<"End reading zero level";
328340
disconnect(&d,SLOT(accept()));
329-
readerThread->stopRead();
330-
if(d.exec()==1){
341+
/* if(d.exec()==1){
331342
dui.acceptButton->setVisible(false);
332343
connect(&cPlotingTimer,SIGNAL(timeout()),this,SLOT(plotCalibration()));
333-
readerThread->setReadingType(ReadForVolVal);
334-
readerThread->startRead();
344+
rdr->setReadingType(ReadForVolZer);
345+
rdr->read();
335346
cPlotingTimer.start(100);
336-
connect(readerThread,SIGNAL(done()),&d,SLOT(accept()));
347+
connect(rdr,SIGNAL(done()),&d,SLOT(accept()));
337348
dui.progressBar->setVisible(true);
338349
dui.information->setText(tr("Èäåò êàëèáðîâêà. Ïîäîæäèòå..."));
339-
}
340-
/*
341-
if(d.exec()==1){
342-
int *vol = curveBuffer->volume();
343-
tsanalitics ta;
344-
for(int i=0;i<curveBuffer->end();i++){
345-
ta.append(vol[i]);
346-
//f<<vol[i]<<endl;
347-
}
348-
ta.findExtremums();
349-
ta.deleteBadExtremums();
350-
settings.setValue("volOutLtr",ta.getMin());
351-
settings.setValue("volInLtr",ta.getMax());
352-
curveBuffer->setVolumeConverts(ta.getMax(),ta.getMin());
353-
readerThread->stopRead();
354-
curveBuffer->clean();
355-
settings.sync();
356-
dui.progressBar->setVisible(false);
357-
dui.acceptButton->setVisible(true);
358-
dui.information->setText(tr("Êàëèáðîâêà óñïåøíî çàâåðøåíà.\nÍàæìèòå ÎÊ äëÿ ïðîäîëæåíèÿ."));
359-
}
360-
if(d.exec()==1){
361-
ui->mainBox->setCurrentIndex(5);
362-
ui->managmentBox->setVisible(true);
363-
ui->managmentBox->setEnabled(true);
364-
ui->startExam->setEnabled(true);
365-
ui->stopExam->setEnabled(true);
366-
disconnect(&d,SLOT(accept()));
367-
initPaintDevices();
368-
plotNow();
369-
}*/
370-
350+
}*/
351+
352+
// dui.information->setText(tr("Èäåò ïîäãîòîâêà..."));
353+
// dui.acceptButton->setVisible(false);
354+
// connect(readerThread,SIGNAL(done()),&d,SLOT(accept()));
355+
// connect(readerThread,SIGNAL(changeProgress(int)),dui.progressBar,SLOT(setValue(int)));
356+
// switch(d.exec()){
357+
// case 1:{
358+
// settings.setValue("volZero",curveBuffer->volumeColibration());
359+
// dui.information->setText(tr("Ïîäãîòîâêà çàâåðøèíà.\nÍàæìèòå êíîïêó Ok è êà÷àéòå øïðèöåì."));
360+
// dui.progressBar->setVisible(false);
361+
// dui.acceptButton->setVisible(true);
362+
// break;
363+
// }
364+
// default: break;
365+
// }
366+
// disconnect(&d,SLOT(accept()));
367+
// readerThread->stopRead();
368+
// if(d.exec()==1){
369+
// dui.acceptButton->setVisible(false);
370+
// connect(&cPlotingTimer,SIGNAL(timeout()),this,SLOT(plotCalibration()));
371+
// readerThread->setReadingType(ReadForVolVal);
372+
// readerThread->startRead();
373+
// cPlotingTimer.start(100);
374+
// connect(readerThread,SIGNAL(done()),&d,SLOT(accept()));
375+
// dui.progressBar->setVisible(true);
376+
// dui.information->setText(tr("Èäåò êàëèáðîâêà. Ïîäîæäèòå..."));
377+
// }
371378
}
372379

373380
void TSController::calibrateTemperature()
@@ -1013,6 +1020,13 @@ void TSController::breakExam()
10131020

10141021
void TSController::processDataParams(){
10151022

1023+
TSCurveBuffer *cb= new TSCurveBuffer;
1024+
1025+
readerThread->readd();
1026+
//TSUsb3000Reader *rdr= readerThread->getReader();
1027+
//rdr->read();
1028+
//rdr->initDevice(cb);
1029+
/*rdr->read();*/
10161030
qDebug()<<"this is result button !";
10171031
QTableWidget *qtw = ui->resultsTable;
10181032
qtw->setColumnCount(2);

tscontroller.h

+3
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
#include "models/TSPatients.h"
1515
#include <QTableWidget>
1616
#include "ui_tsprintview.h"
17+
#include "tsusbdatareader.h"
1718
namespace Ui {
1819
class TSView;
1920
class TSProgressDialog;
@@ -125,6 +126,8 @@ public slots:
125126
QSqlDatabase patientsConnection;
126127
QSqlDatabase examinationsConnection;
127128
bool isInitialized;
129+
TSUsbDataReader *rdr;
130+
QThread *trd;
128131
};
129132

130133
#endif // TSVIEW_H

tsreaderthread.cpp

+33-9
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,25 @@
11
#include "tsreaderthread.h"
22
#include "conio.h"
33

4-
TSReaderThread::TSReaderThread(TSCurveBuffer *b, QObject *parent) :QThread(parent){
4+
TSReaderThread::TSReaderThread(TSCurveBuffer *b, QObject *parent) :QObject(parent){
55
buffer = b;
6-
moveToThread(this);
7-
}
8-
void TSReaderThread::f1 (){
9-
qDebug()<<"-----Thread is open for command----";
6+
//connect(reader,SIGNAL(done()),this,SLOT(trd_done()));
7+
//connect(reader,SIGNAL(changeProgress(int)),this,SLOT(trd_progress(int)));
8+
//moveToThread(this);
109
}
1110
void TSReaderThread::startRead (){
1211
ReadingStarted = true;
12+
//TSUsb3000Reader *rdr= new TSUsb3000Reader();
13+
QThread *trd = new QThread();
14+
reader->initDevice(buffer);
15+
reader->moveToThread(trd);
16+
//reader->read();
1317

14-
this->start();
18+
//this->start();
1519
}
1620
void TSReaderThread::stopRead (){
1721
ReadingStarted=false;
18-
this->terminate();
22+
//this->terminate();
1923
if(reader!=0){
2024
//delete reader;
2125
reader = 0;
@@ -24,7 +28,7 @@ void TSReaderThread::stopRead (){
2428

2529

2630
void TSReaderThread::run(){
27-
reader = new TSUsb3000Reader(this);
31+
/* reader = new TSUsb3000Reader(this);
2832
reader->initDevice(buffer);
2933
3034
switch (readingType)
@@ -94,7 +98,7 @@ void TSReaderThread::run(){
9498
delete reader;
9599
reader = 0;
96100
emit done();
97-
exec();
101+
exec();*/
98102
}
99103

100104
void TSReaderThread::setReadingType(TSUsbReadingType type)
@@ -106,3 +110,23 @@ bool TSReaderThread::doWork()
106110
{
107111
return works;
108112
}
113+
114+
void TSReaderThread::readd()
115+
{
116+
reader->read();
117+
}
118+
119+
TSUsb3000Reader *TSReaderThread::getReader()
120+
{
121+
return reader;
122+
}
123+
124+
void TSReaderThread::trd_done()
125+
{
126+
emit done();
127+
}
128+
129+
void TSReaderThread::trd_progress(int value)
130+
{
131+
emit changeProgress(value);
132+
}

tsreaderthread.h

+6-4
Original file line numberDiff line numberDiff line change
@@ -3,24 +3,26 @@
33

44
#include <QThread>
55
#include "tsusb3000reader.h"
6+
#include "extremum.h"
67

7-
enum TSUsbReadingType {ReadAll,ReadForVolZer,ReadForVolVal,ReadForTemp};
8-
9-
class TSReaderThread : public QThread
8+
class TSReaderThread : public QObject
109
{
1110
Q_OBJECT
1211
public:
1312
explicit TSReaderThread(TSCurveBuffer *b,QObject *parent = 0);
1413
void run();
15-
void f1();
1614
void stopRead();
1715
void startRead();
1816
void setReadingType(TSUsbReadingType type);
1917
bool doWork();
18+
void readd();
19+
TSUsb3000Reader* getReader();
2020
signals:
2121
void done();
2222
void changeProgress(int value);
2323
public slots:
24+
void trd_done();
25+
void trd_progress(int value);
2426
private:
2527
TSCurveBuffer *buffer;
2628
bool ReadingStarted;

0 commit comments

Comments
 (0)