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