-
Notifications
You must be signed in to change notification settings - Fork 0
/
comport.cpp
38 lines (35 loc) · 1 KB
/
comport.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
#include "comport.h"
ComPort::ComPort()
{
serial = new QSerialPort();
}
void ComPort::run()
{
if (!OpenSerial()) emit MessageInGUI("Ошибка! Порт не открыт. Возможно не подкючён кабель.");
QByteArray *Buf;
while (serial->isOpen())
{
serial->waitForReadyRead(1);
qint64 maxSize = serial->bytesAvailable();
if (maxSize > 3)
{
Buf = new QByteArray;
*Buf = serial->readAll();
emit OutData(Buf);
}
}
}
bool ComPort::OpenSerial()
{
if (serial->isOpen()) serial->close();
serial->clear();
serial->setPortName(Setting.name);
serial->setBaudRate(Setting.baudRate);
serial->setDataBits(Setting.dataBits);
serial->setParity(Setting.parity);
serial->setStopBits(Setting.stopBits);
serial->setFlowControl(Setting.flowControl);
serial->open(QSerialPort::ReadWrite); //ReadWrite
serial->clear();
return serial->isOpen();
}