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.type = types[j];
subTask.startTime = task.scheduledTime.addSecs(j * 3600); subTask.startTime = task.scheduledTime.addSecs(j * 3600);
subTask.endTime = subTask.startTime.addSecs(1800); subTask.endTime = subTask.startTime.addSecs(1800);
subTask.durationSeconds = 1800; subTask.durationMinutes = 1800;
subTask.estimatedDurationSeconds = 1800; subTask.estimatedDurationMinutes = 1800;
subTask.pathLineFilePath = QString("D:/0tmp/3Dtest/pathLine/%1.RecordLine3").arg(j); subTask.pathLineFilePath = QString("D:/0tmp/3Dtest/pathLine/%1.RecordLine3").arg(j);
subTask.status = TaskStatus::Waiting; subTask.status = TaskStatus::Waiting;

View File

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

View File

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