add,计划采集11:

1、完善定时采集流程信息统计:时间;
2、添加状态:跳过;
This commit is contained in:
tangchao0503
2026-06-12 10:37:54 +08:00
parent f69edcf2c9
commit 8329c00165
3 changed files with 25 additions and 14 deletions

View File

@ -119,8 +119,8 @@ void TimedDataCollection::writeRead()
subTask.type = types[j];
subTask.startTime = task.scheduledTime.addSecs(j * 3600);
subTask.endTime = subTask.startTime.addSecs(1800);
subTask.durationSeconds = 1800;
subTask.estimatedDurationSeconds = 1800;
subTask.durationMinutes = 1800;
subTask.estimatedDurationMinutes = 1800;
subTask.pathLineFilePath = QString("D:/0tmp/3Dtest/pathLine/%1.RecordLine3").arg(j);
subTask.status = TaskStatus::Waiting;

View File

@ -121,8 +121,8 @@ QJsonObject TimedDataCollectionDataStructuresReaderWriter::subTaskToJson(const S
obj["type"] = subTaskTypeToString(subTask.type);
obj["startTime"] = subTask.startTime.toString(Qt::ISODate);
obj["endTime"] = subTask.endTime.toString(Qt::ISODate);
obj["durationSeconds"] = subTask.durationSeconds;
obj["estimatedDurationSeconds"] = subTask.estimatedDurationSeconds;
obj["durationMinutes"] = subTask.durationMinutes;
obj["estimatedDurationMinutes"] = subTask.estimatedDurationMinutes;
obj["pathLineFilePath"] = subTask.pathLineFilePath;
obj["status"] = taskStatusToString(subTask.status);
obj["frameRate"] = subTask.frameRate;
@ -137,14 +137,14 @@ bool TimedDataCollectionDataStructuresReaderWriter::jsonToSubTask(const QJsonObj
subTask.type = stringToSubTaskType(json["type"].toString());
subTask.startTime = QDateTime::fromString(json["startTime"].toString(), Qt::ISODate);
subTask.endTime = QDateTime::fromString(json["endTime"].toString(), Qt::ISODate);
subTask.durationSeconds = json["durationSeconds"].toInt();
subTask.estimatedDurationSeconds = json["estimatedDurationSeconds"].toInt();
subTask.durationMinutes = json["durationMinutes"].toDouble();
subTask.estimatedDurationMinutes = json["estimatedDurationMinutes"].toDouble();
subTask.pathLineFilePath = json["pathLineFilePath"].toString();
subTask.status = stringToTaskStatus(json["status"].toString());
subTask.frameRate = json["frameRate"].toDouble();
subTask.exposureTime = json["exposureTime"].toDouble();
subTask.defaultRenderBand = json["defaultRenderBand"].toInt();
subTask.captureIntervalSeconds = json["captureIntervalSeconds"].toInt();
subTask.captureIntervalSeconds = json["captureIntervalSeconds"].toDouble();
return true;
}
@ -157,7 +157,7 @@ QJsonObject TimedDataCollectionDataStructuresReaderWriter::timedTaskToJson(const
obj["scheduledTime"] = task.scheduledTime.toString(Qt::ISODate);
obj["startTime"] = task.startTime.toString(Qt::ISODate);
obj["endTime"] = task.endTime.toString(Qt::ISODate);
obj["durationSeconds"] = task.durationSeconds;
obj["durationMinutes"] = task.durationMinutes;
obj["savePath"] = task.savePath;
obj["status"] = taskStatusToString(task.status);
obj["HalogenLampPreheatingTime_Minute"] = task.HalogenLampPreheatingTime_Minute;
@ -177,7 +177,7 @@ bool TimedDataCollectionDataStructuresReaderWriter::jsonToTimedTask(const QJsonO
task.scheduledTime = QDateTime::fromString(json["scheduledTime"].toString(), Qt::ISODate);
task.startTime = QDateTime::fromString(json["startTime"].toString(), Qt::ISODate);
task.endTime = QDateTime::fromString(json["endTime"].toString(), Qt::ISODate);
task.durationSeconds = json["durationSeconds"].toInt();
task.durationMinutes = json["durationMinutes"].toDouble();
task.savePath = json["savePath"].toString();
task.status = stringToTaskStatus(json["status"].toString());
task.HalogenLampPreheatingTime_Minute = json["HalogenLampPreheatingTime_Minute"].toDouble();
@ -219,6 +219,8 @@ void TaskExecutor::execute(const TimedTask& task)
}
m_task = task;
m_task.startTime = QDateTime::currentDateTime();
m_currentSubTaskIndex = 0;
m_isRunning = true;
@ -286,6 +288,10 @@ void TaskExecutor::onSequenceComplete(int status)
SubTask& subTask = m_task.subTasks[m_currentSubTaskIndex];
subTask.status = (status == 0) ? TaskStatus::Finished : TaskStatus::Waiting;
subTask.endTime = QDateTime::currentDateTime();
subTask.durationMinutes = (double)subTask.startTime.secsTo(subTask.endTime) / 60;
qDebug() << "TaskExecutor: subtask "<< m_currentSubTaskIndex<< " time consuming(Minutes): "<< subTask.durationMinutes;
emit subTaskFinished(m_currentSubTaskIndex, subTask.type, (status == 0));
}
@ -347,6 +353,10 @@ void TaskExecutor::onBack2Origin()
}
else {
// 所有子任务完成
m_task.endTime = QDateTime::currentDateTime();
m_task.durationMinutes = (double)m_task.startTime.secsTo(m_task.endTime) / 60;
qDebug() << "TaskExecutor: task time consuming(Minutes): " << m_task.durationMinutes;
m_isRunning = false;
qDebug() << "TaskExecutor: All subtasks completed";
emit finished(true);

View File

@ -14,7 +14,8 @@
enum class TaskStatus {
Waiting, // 等待
Running, // 运行中
Finished // 结束
Finished, // 结束
Skiped //跳过
};
// 子任务类型
@ -33,8 +34,8 @@ struct SubTask {
// 共享属性
QDateTime startTime;
QDateTime endTime;
int durationSeconds = 0;
int estimatedDurationSeconds = 0;
double durationMinutes = 0;
double estimatedDurationMinutes = 0;
QString pathLineFilePath;
TaskStatus status = TaskStatus::Waiting;
@ -52,7 +53,7 @@ struct TimedTask {
QDateTime scheduledTime; // 计划时间
QDateTime startTime; // 开始时间
QDateTime endTime; // 结束时间
int durationSeconds = 0; // 耗时(秒)
double durationMinutes = 0; // 耗时(秒)
QString savePath; // 数据保存路径
QVector<SubTask> subTasks; // 子任务列表
TaskStatus status = TaskStatus::Waiting; // 状态
@ -62,7 +63,7 @@ struct TimedTask {
int totalEstimatedDuration() const {
int total = 0;
for (const auto& subTask : subTasks) {
total += subTask.estimatedDurationSeconds;
total += subTask.estimatedDurationMinutes;
}
return total;
}