|
@@ -349,6 +349,7 @@ Error_manager Terminor_Command_Executor::scanning_measuring() {
|
|
|
laser_task->task_init(TASK_CREATED, &scan_cloud, &cloud_lock);
|
|
|
laser_task->set_task_frame_maxnum(frame_count);
|
|
|
laser_task->set_save_path(project_path);
|
|
|
+ laser_task->set_task_over_time(std::chrono::milliseconds(1000));
|
|
|
laser_task_vector.push_back(laser_task);
|
|
|
//发送任务单给雷达
|
|
|
code = tp_lasers[i]->execute_task(laser_task);
|
|
@@ -383,10 +384,10 @@ Error_manager Terminor_Command_Executor::scanning_measuring() {
|
|
|
//超时处理。取消任务。
|
|
|
// tp_lasers[i]->cancel_task();
|
|
|
tp_lasers[i]->stop_scan();
|
|
|
- laser_task_vector[i]->set_task_statu(TASK_DEAD);
|
|
|
- code.error_manager_reset(Error_code::LASER_TASK_OVER_TIME, Error_level::MINOR_ERROR,
|
|
|
- " LASER_TASK is_over_time ");
|
|
|
- laser_task_vector[i]->set_task_error_manager(code);
|
|
|
+// laser_task_vector[i]->set_task_statu(TASK_DEAD);
|
|
|
+// code.error_manager_reset(Error_code::LASER_TASK_OVER_TIME, Error_level::MINOR_ERROR,
|
|
|
+// " LASER_TASK is_over_time ");
|
|
|
+// laser_task_vector[i]->set_task_error_manager(code);
|
|
|
|
|
|
continue;
|
|
|
//本次子任务超时死亡.直接进行下一个
|
|
@@ -409,17 +410,18 @@ Error_manager Terminor_Command_Executor::scanning_measuring() {
|
|
|
{
|
|
|
for ( int j = 0; j < laser_task_vector.size(); ++j)
|
|
|
{
|
|
|
- if (laser_task_vector[i] != 0) {
|
|
|
+ if (laser_task_vector[j] != 0) {
|
|
|
//数据汇总,
|
|
|
//由于 pcl::PointCloud<pcl::PointXYZ>::Ptr mp_task_point_cloud; 是所有任务单共用的,所以不用处理了。自动就在一起。
|
|
|
//错误汇总
|
|
|
t_result.compare_and_cover_error(laser_task_vector[j]->get_task_error_manager());
|
|
|
//销毁下发的任务单。
|
|
|
- delete laser_task_vector[i];
|
|
|
- laser_task_vector[i] = NULL;
|
|
|
+ delete laser_task_vector[j];
|
|
|
+ laser_task_vector[j] = NULL;
|
|
|
}
|
|
|
}
|
|
|
laser_task_vector.clear();
|
|
|
+ break;
|
|
|
}
|
|
|
//else 直接通过, 然后重新进入 while (1)
|
|
|
|