58 lines
1.8 KiB
C++
58 lines
1.8 KiB
C++
|
#include "customtime.h"
|
||
|
|
||
|
CustomTimeThread::CustomTimeThread(QObject *parent)
|
||
|
: QThread{parent} {}
|
||
|
|
||
|
void CustomTimeThread::setValue(QVector<int> vector, QString string) {
|
||
|
this->jd = vector;
|
||
|
this->dataName = string;
|
||
|
}
|
||
|
|
||
|
void CustomTimeThread::run() {
|
||
|
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) {
|
||
|
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");
|
||
|
if (temTime >= beginTime && temTime < endTime) {
|
||
|
if (g_param[jd[i]][j].contains(dataName)) {
|
||
|
tem = g_param[jd[i]][j][dataName];
|
||
|
} else {
|
||
|
if (tem == "这是一个无实际作用的标识") {
|
||
|
continue;
|
||
|
}
|
||
|
}
|
||
|
xData[jd[i]].append(temTime.toMSecsSinceEpoch() / 1000.0);
|
||
|
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));
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
emit setPlotView(jd[i], isEnum, true);
|
||
|
}
|
||
|
|
||
|
emit setWidget();
|
||
|
quit();
|
||
|
}
|
||
|
|