From 8329c00165dcd010e2c208fe6433e7b41be2fe27 Mon Sep 17 00:00:00 2001 From: tangchao0503 <735056338@qq.com> Date: Fri, 12 Jun 2026 10:37:54 +0800 Subject: [PATCH] =?UTF-8?q?add=EF=BC=8C=E8=AE=A1=E5=88=92=E9=87=87?= =?UTF-8?q?=E9=9B=8611=EF=BC=9A=201=E3=80=81=E5=AE=8C=E5=96=84=E5=AE=9A?= =?UTF-8?q?=E6=97=B6=E9=87=87=E9=9B=86=E6=B5=81=E7=A8=8B=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=E7=BB=9F=E8=AE=A1=EF=BC=9A=E6=97=B6=E9=97=B4=EF=BC=9B=202?= =?UTF-8?q?=E3=80=81=E6=B7=BB=E5=8A=A0=E7=8A=B6=E6=80=81=EF=BC=9A=E8=B7=B3?= =?UTF-8?q?=E8=BF=87=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- HPPA/TimedDataCollection.cpp | 4 ++-- HPPA/TimedDataCollectionDataStructures.cpp | 24 +++++++++++++++------- HPPA/TimedDataCollectionDataStructures.h | 11 +++++----- 3 files changed, 25 insertions(+), 14 deletions(-) diff --git a/HPPA/TimedDataCollection.cpp b/HPPA/TimedDataCollection.cpp index ef344d0..f812e97 100644 --- a/HPPA/TimedDataCollection.cpp +++ b/HPPA/TimedDataCollection.cpp @@ -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; diff --git a/HPPA/TimedDataCollectionDataStructures.cpp b/HPPA/TimedDataCollectionDataStructures.cpp index d2a381e..b903899 100644 --- a/HPPA/TimedDataCollectionDataStructures.cpp +++ b/HPPA/TimedDataCollectionDataStructures.cpp @@ -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); diff --git a/HPPA/TimedDataCollectionDataStructures.h b/HPPA/TimedDataCollectionDataStructures.h index dfad77d..35f62e7 100644 --- a/HPPA/TimedDataCollectionDataStructures.h +++ b/HPPA/TimedDataCollectionDataStructures.h @@ -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 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; }