Bladeren bron

huli_test, 20200811-2

yct 4 jaren geleden
bovenliggende
commit
3c0dc395d3
3 gewijzigde bestanden met toevoegingen van 11 en 9 verwijderingen
  1. 1 1
      task/task_command_manager.cpp
  2. 1 1
      task/task_command_manager.h
  3. 9 7
      terminor/terminal_command_executor.cpp

+ 1 - 1
task/task_command_manager.cpp

@@ -135,7 +135,7 @@ std::chrono::milliseconds	Task_Base::get_task_over_time()
 	return m_task_over_time;
 }
 //设置 任务超时的时限
-void	Task_Base::get_task_over_time(std::chrono::milliseconds task_over_time)
+void	Task_Base::set_task_over_time(std::chrono::milliseconds task_over_time)
 {
 	m_task_over_time = task_over_time;
 }

+ 1 - 1
task/task_command_manager.h

@@ -93,7 +93,7 @@ public:
 	//获取 任务超时的时限
 	std::chrono::milliseconds	get_task_over_time();
 	//设置 任务超时的时限
-	void	get_task_over_time(std::chrono::milliseconds task_over_time);
+	void	set_task_over_time(std::chrono::milliseconds task_over_time);
 
 
 protected:

+ 9 - 7
terminor/terminal_command_executor.cpp

@@ -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)