-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathreadingthread.cpp
83 lines (65 loc) · 1.36 KB
/
readingthread.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
#include "readingthread.h"
#include <QDebug>
#include <QThread>
#include <QtSerialPort/QSerialPort>
ReadingThread::ReadingThread(QSerialPort * serialPort)
: QThread()
{
this->threadRunning = false;
this->serialPort = serialPort;
}
void ReadingThread::run()
{
// There is no "run", just reading from device serialPort,
// whitch is done in "read"
}
void ReadingThread::start()
{
this->threadRunning = true;
// qDebug() << "readingThread started!";
this->run();
}
void ReadingThread::stop()
{
this->threadRunning = false;
this->wait();
}
void ReadingThread::configure(QSerialPort * settings)
{
this->serialPort = settings;
}
void ReadingThread::read()
{
this->rxCmd.clear();
serialPort->waitForReadyRead(50);
while(serialPort->canReadLine())
{
rxCmd.append(serialPort->readLine());
}
emit recvReady();
}
QList<QString> ReadingThread::getRecievedCmds()
{
QList<QString> retList,buf;
if(interpretType == SettingsDialog::InterpretType::TYPE_STRING)
{
retList = rxCmd.split('\n');
for(auto & item : retList)
{
if(!item.isEmpty())
{
buf.append(item);
}
}
return buf;
}
else
{
retList.append(rxCmd);
}
return retList;
}
void ReadingThread::applySettings(SettingsDialog::Settings* pSettings)
{
interpretType = pSettings->rxType;
}