2024-09-18 16:18:36 +08:00
|
|
|
#include "customthread.h"
|
2024-09-18 15:04:38 +08:00
|
|
|
|
2024-09-18 16:18:36 +08:00
|
|
|
CustomThread::CustomThread(QObject *parent)
|
2024-09-18 15:04:38 +08:00
|
|
|
: QThread{parent} {}
|
|
|
|
|
2024-09-18 16:18:36 +08:00
|
|
|
void CustomThread::setValue(QVector<int> vector, QString string) {
|
2024-09-18 15:04:38 +08:00
|
|
|
this->jd = vector;
|
|
|
|
this->dataName = string;
|
|
|
|
}
|
|
|
|
|
2024-09-18 16:18:36 +08:00
|
|
|
void CustomThread::run() {
|
2024-09-18 15:04:38 +08:00
|
|
|
m_PlotView.clear();
|
|
|
|
rule.clear();
|
|
|
|
|
|
|
|
for (int var = 0; var < 4; ++var) {
|
|
|
|
xData[var].clear();
|
|
|
|
yData[var].clear();
|
|
|
|
}
|
|
|
|
//判断右侧数据是否为数字型
|
|
|
|
bool isEnum = namelist[dataName];
|
|
|
|
int bytesRead = 0;
|
|
|
|
for (int i = 0; i < jd.size(); ++i) {
|
2024-09-18 16:18:36 +08:00
|
|
|
int X = 0;
|
2024-09-18 15:04:38 +08:00
|
|
|
QString tem = "这是一个无实际作用的标识";
|
|
|
|
for (int j = 0; j < g_param[jd[i]].size(); j++) {
|
|
|
|
//更新进度条
|
|
|
|
bytesRead++;
|
|
|
|
emit setProgressBar(bytesRead);
|
|
|
|
|
|
|
|
QDateTime temTime = QDateTime::fromString(g_param[jd[i]][j]["时间"], "yyyy-MM-dd hh:mm:ss:zzz");
|
2024-09-18 16:18:36 +08:00
|
|
|
if (temTime >= beginTime && temTime <= endTime) {
|
2024-09-18 15:04:38 +08:00
|
|
|
if (g_param[jd[i]][j].contains(dataName)) {
|
|
|
|
tem = g_param[jd[i]][j][dataName];
|
|
|
|
} else {
|
2024-09-18 16:18:36 +08:00
|
|
|
if (!isTime) {
|
|
|
|
continue;
|
|
|
|
}
|
2024-09-18 15:04:38 +08:00
|
|
|
if (tem == "这是一个无实际作用的标识") {
|
|
|
|
continue;
|
|
|
|
}
|
|
|
|
}
|
2024-09-18 16:18:36 +08:00
|
|
|
if (isTime) {
|
|
|
|
xData[jd[i]].append(temTime.toMSecsSinceEpoch() / 1000.0);
|
|
|
|
} else {
|
|
|
|
xData[jd[i]].append(X++);
|
|
|
|
}
|
2024-09-18 15:04:38 +08:00
|
|
|
if (isEnum) {
|
|
|
|
yData[jd[i]].append(tem.toDouble());
|
|
|
|
} else {
|
|
|
|
if (rule.contains(tem)) {
|
|
|
|
yData[jd[i]].append(rule.indexOf(tem));
|
|
|
|
} else {
|
|
|
|
rule.append(tem);
|
|
|
|
yData[jd[i]].append(rule.indexOf(tem));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
2024-09-18 16:18:36 +08:00
|
|
|
emit setPlotView(jd[i], isEnum, isTime);
|
2024-09-18 15:04:38 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
emit setWidget();
|
|
|
|
quit();
|
|
|
|
}
|
|
|
|
|
2024-09-18 16:18:36 +08:00
|
|
|
void CustomThread::setIsTime(bool IsTime) {
|
|
|
|
CustomThread::isTime = IsTime;
|
|
|
|
}
|
|
|
|
|