-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathreadserial.h
115 lines (93 loc) · 2.56 KB
/
readserial.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
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
#ifndef READSERIAL_H
#define READSERIAL_H
#include<QObject>
#include<QVector>
#include<QSerialPort>
#include<QSerialPortInfo>
#include<QFile>
#include<QJsonArray>
#include<QJsonDocument>
#include<QJsonValue>
#include<QJsonObject>
#include<QDate>
class ReadSerial : public QObject
{
Q_OBJECT
public:
explicit ReadSerial(QObject *parent = nullptr);
signals:
void dataAvailable(float);
public slots:
//串口启动与停止函数
void start(const QString &name = "com4");
void stop();
//皮带已变速函数
void beltSpeedChange(const QString& arg);
//皮带已启动函数
void beltStart();
//皮带已停止函数
void beltStop();
//光电设置函数
void photocellSet(const QString& arg);
//校准设置函数
void calibration(const QString& arg);
//动态校准
void dynamic_cal();
//处理数据函数
void readData();
//获取可用端口
QList<QString> availablePort();
//获取当前连接到的端口号
QString connectedPort();
//重新设置com端口
bool resetPortName(const QString& name);
//两点拟合
void linear();
//牛顿拟合
void newton();
//系统调零
void zeroSetting(const QString& arg);
//向staticData中插入数据
void insertInStatic(double weight);
//向dynamicData中插入数据
void insertInDynamic(double weight);
//将数据保存到文件中
void saveStaticData();
void saveDynamicData();
//读取data中的数据,最多取maxNum个
void updateNewData(bool isStatic,int maxNum);
void updateOldData(bool isStatic,int maxNum);
//初始化listview至少初始化maxNum个数据,如果数据不够就全部显示
void initListView(bool isStatic,int maxNum);
//返回weight数据给qml
QVector<double> getWeightData();
//返回date数据给qml
QVector<QString> getDateData();
//测试
void test(float i);
//关闭测量串口
void close();
private:
QString port;
QSerialPort* serial;
QVector<int>* container;
QByteArray tempContainer;
//Json文件对象
QJsonDocument* staticDoc;
QJsonDocument* dynamicDoc;
//静态数据
QJsonArray* staticHeadArray;
QJsonArray* staticBodyArray;
QJsonArray* staticTailArray;
//动态数据
QJsonArray* dynamicHeadArray;
QJsonArray* dynamicBodyArray;
QJsonArray* dynamicTailArray;
//是否为静态标记
bool isStatic = true;
//weight数据集合
QVector<double>* weight;
//date数据集合
QVector<QString>* date;
};
#endif // READSERIAL_H