-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathportmanager.h
99 lines (78 loc) · 1.95 KB
/
portmanager.h
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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
#ifndef PORTMANAGER_H
#define PORTMANAGER_H
#include <QObject>
//#include <QThread>
#include <QSerialPort>
#include <QThread>
class PortManager : public QThread {
Q_OBJECT
public:
explicit PortManager(QObject *parent = nullptr);
QStringList getPortList();
QStringList getDataBitList();
QStringList getParityList();
QStringList getBaudrateList();
QStringList getStopBitList();
ulong getDelaytime();
void setDataBit(QString value = "Data8");
void setBaudrate(QString value = "9600");
void setParity(QString value = "");
void setPortName(QString value = "");
void setStopBit(QString value = "");
void stop();
void start();
void write(QByteArray value);
void writeAndRead(QByteArray value);
void setDelayTime(ulong value = 50);
enum ConvertStyle {
RoleDecimal = 0,
RoleHex = 1,
RoleString
};
enum WorkStyle{
ReadAfterWrite = 0,
AlwaysRead
};
enum Answer{
RoleNo = 0,
RoleYes
};
void setWorkStyle(WorkStyle style = ReadAfterWrite);
WorkStyle getWorkStyle(){
if(roleWork == ReadAfterWrite){
return ReadAfterWrite;
}
return AlwaysRead;
}
void setConvertRole(PortManager::ConvertStyle role);
Answer getReadLine() const
{
return readLine;
}
void setReadLine(const Answer &value);
Answer getWriteLine() const
{
return writeLine;
}
void setWriteLine(const Answer &value);
private slots:
void ReadAllByte();
void buildPacket();
signals:
void StatusChanged(bool value = false);
void NewPacketRecived(QString packet);
public slots:
// QThread interface
protected:
QSerialPort sp;
QByteArray recvArray;
QByteArray sendArray;
WorkStyle roleWork;
int role;
Answer readLine;
Answer writeLine;
ulong delay;//mili second delay time
QThread th;
void run();
};
#endif // PORTMANAGER_H