add,计划采集11:
1、完善定时采集流程信息统计:时间; 2、添加状态:跳过;
This commit is contained in:
@ -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;
|
||||
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user