-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathworker.cpp
52 lines (34 loc) · 1.09 KB
/
worker.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
#include "worker.h"
Worker::Worker(QString _comPort, int _udpPort, QObject *parent)
: comPort(_comPort), udpPort(_udpPort), QObject{parent}
{
timer.setSingleShot(true);
timer.setInterval(5000); // 5s
SerialPort.setBaudRate(9600);
SerialPort.setPortName(comPort);
connect(&timer, &QTimer::timeout,this, [this](){ sendData(); });
connect(&SerialPort, &QSerialPort::readyRead, this,[this](){
data += SerialPort.readAll();
timer.start();
qDebug() << "data: " << data;
if ( data.contains("\r") ){
timer.stop();
data.remove("\r");
sendData();
}
});
if ( SerialPort.open(QIODevice::ReadWrite) ){
qDebug() << "serial port opened";
}else{
qDebug() << "serial not port opened";
}
}
void Worker::sendData()
{
if( data.isEmpty() ) { return; }
Message message(data);
auto encryptData = message.encrypt();
data.clear();
qDebug() << "encryptData sending... " << encryptData;
UdpSocket.writeDatagram(encryptData.toUtf8(), QHostAddress::Broadcast, udpPort);
}