Bläddra i källkod

Merge remote-tracking branch 'origin/master'

wk 2 år sedan
förälder
incheckning
aa56e5f52d

+ 20 - 4
plc调度节点/dispatch/dispatch_command.cpp

@@ -896,13 +896,21 @@ Error_manager Dispatch_command::insert_record_for_park_start()
 
 	char insert_record_sql[1024];
 	memset(insert_record_sql, 0, 1024);
-	sprintf(insert_record_sql, "INSERT INTO record (primary_key,car_number,in_time_start,measure_info,import_id) values ('%s','%s','%s','%s',%d)",
+//	sprintf(insert_record_sql, "INSERT INTO record (primary_key,car_number,in_time_start,measure_info,import_id) values ('%s','%s','%s','%s',%d)",
+	sprintf(insert_record_sql, "INSERT INTO record (primary_key,car_number,in_time_start,center_x,center_y,theta,width,height,wheelbase,front_theta,import_id) values ('%s','%s','%s',%f,%f,%f,%f,%f,%f,%f,%d)",
 			m_dispatch_command_map[m_car_number_optimal].m_primary_key.c_str(),
 			m_car_number_optimal.c_str(),
 			Time_tool::get_instance_references().get_current_time_seconds().c_str(),
 //			m_dispatch_command_map[m_car_number_optimal].m_parkspace_info_msg.id(),
 //			m_dispatch_command_map[m_car_number_optimal].m_parkspace_info_msg.DebugString().c_str(),
-			m_dispatch_command_map[m_car_number_optimal].m_measure_info.c_str(),
+//			m_dispatch_command_map[m_car_number_optimal].m_measure_info.c_str(),
+			m_dispatch_command_map[m_car_number_optimal].m_measure_info_msg.cx(),
+			m_dispatch_command_map[m_car_number_optimal].m_measure_info_msg.cy(),
+			m_dispatch_command_map[m_car_number_optimal].m_measure_info_msg.theta(),
+			m_dispatch_command_map[m_car_number_optimal].m_measure_info_msg.width(),
+			m_dispatch_command_map[m_car_number_optimal].m_measure_info_msg.height(),
+			m_dispatch_command_map[m_car_number_optimal].m_measure_info_msg.wheelbase(),
+			m_dispatch_command_map[m_car_number_optimal].m_measure_info_msg.front_theta(),
 			t_terminal	);
 	LOG(INFO) << " insert_record_sql =  "<< insert_record_sql << " --- " << this;
 	Error_manager ec = Database_controller::get_instance_pointer()->sql_insert(insert_record_sql);
@@ -915,14 +923,22 @@ Error_manager Dispatch_command::updata_record_for_park_end()
 	Time_tool::get_instance_references().time_end(PARK_TIME_FLAG);
 	int in_time_difference = Time_tool::get_instance_references().get_time_seconds(PARK_TIME_FLAG);
 
+	//t_index_id是指定单元的车位id, 1~78
+	int t_index_id = (m_dispatch_command_map[m_car_number_optimal].m_parkspace_info_msg.id() - 1 ) / 78;
+	t_index_id = t_index_id + 1;
 	//执行sql操作
 	char update_record_sql[1024];
 	memset(update_record_sql, 0, 1024);
-	sprintf(update_record_sql, "update record set in_time_end = '%s', in_time_difference = %d, space_id = %d, space_info = '%s' where primary_key = '%s' ",
+//	sprintf(update_record_sql, "update record set in_time_end = '%s', in_time_difference = %d, space_id = %d, space_info = '%s' where primary_key = '%s' ",
+	sprintf(update_record_sql, "update record set in_time_end = '%s', in_time_difference = %d, space_id = %d, index_id = %d, unit_id = %d, floor_id = %d, room_id = %d  where primary_key = '%s' ",
 			Time_tool::get_instance_references().get_current_time_seconds().c_str(),
 			in_time_difference,
 			m_dispatch_command_map[m_car_number_optimal].m_parkspace_info_msg.id(),
-			m_dispatch_command_map[m_car_number_optimal].m_parkspace_info_msg.DebugString().c_str(),
+			t_index_id,
+			m_dispatch_command_map[m_car_number_optimal].m_parkspace_info_msg.unit_id(),
+			m_dispatch_command_map[m_car_number_optimal].m_parkspace_info_msg.floor(),
+			m_dispatch_command_map[m_car_number_optimal].m_parkspace_info_msg.room_id(),
+//			m_dispatch_command_map[m_car_number_optimal].m_parkspace_info_msg.DebugString().c_str(),
 			m_dispatch_command_map[m_car_number_optimal].m_primary_key.c_str()	);
 	LOG(INFO) << " update_record_sql =  "<< update_record_sql << " --- " << this;
 	Error_manager ec = Database_controller::get_instance_pointer()->sql_update(update_record_sql);

+ 47 - 14
plc调度节点/dispatch/dispatch_manager.cpp

@@ -674,29 +674,62 @@ Error_manager Dispatch_manager::release_dispatch_process(std::string command_key
 int Dispatch_manager::get_outlet_for_ready()
 {
 	std::cout << " huli test 111:::: " << " m_dispatch_manager_id = " << m_dispatch_manager_id << std::endl;
-	//检查出口, 并删除取车完成       //判断2个出口是否空闲
-	if ( Dispatch_manager::get_instance_references().m_dispatch_singlechip[2].is_outlet_ready() )
+
+	//A单元优先分配A2, B和C正常分配
+
+	if ( m_dispatch_manager_id == 0 )
 	{
-		std::cout << " huli test 222:::: " << " m_dispatch_manager_id = " << m_dispatch_manager_id << std::endl;
-		if ( m_dispatch_command.check_export_id_is_ready(m_dispatch_manager_id*2+1) == Error_code::SUCCESS )
+		//检查出口, 并删除取车完成       //判断2个出口是否空闲
+		if ( Dispatch_manager::get_instance_references().m_dispatch_singlechip[3].is_outlet_ready() )
 		{
-			std::cout << " huli test 333:::: " << " m_dispatch_manager_id = " << m_dispatch_manager_id << std::endl;
-			return m_dispatch_manager_id*2+1;
+			std::cout << " huli test 444:::: " << " m_dispatch_manager_id = " << m_dispatch_manager_id << std::endl;
+			if ( m_dispatch_command.check_export_id_is_ready(m_dispatch_manager_id*2+2) == Error_code::SUCCESS )
+			{
+				std::cout << " huli test 555:::: " << " m_dispatch_manager_id = " << m_dispatch_manager_id << std::endl;
+				return m_dispatch_manager_id*2+2;
+			}
 		}
-	}
-	else if ( Dispatch_manager::get_instance_references().m_dispatch_singlechip[3].is_outlet_ready() )
-	{
-		std::cout << " huli test 444:::: " << " m_dispatch_manager_id = " << m_dispatch_manager_id << std::endl;
-		if ( m_dispatch_command.check_export_id_is_ready(m_dispatch_manager_id*2+2) == Error_code::SUCCESS )
+		else if ( Dispatch_manager::get_instance_references().m_dispatch_singlechip[2].is_outlet_ready() )
 		{
-			std::cout << " huli test 555:::: " << " m_dispatch_manager_id = " << m_dispatch_manager_id << std::endl;
-			return m_dispatch_manager_id*2+2;
+			std::cout << " huli test 222:::: " << " m_dispatch_manager_id = " << m_dispatch_manager_id << std::endl;
+			if ( m_dispatch_command.check_export_id_is_ready(m_dispatch_manager_id*2+1) == Error_code::SUCCESS )
+			{
+				std::cout << " huli test 333:::: " << " m_dispatch_manager_id = " << m_dispatch_manager_id << std::endl;
+				return m_dispatch_manager_id*2+1;
+			}
+		}
+		else
+		{
+			return 0;
 		}
 	}
 	else
 	{
-		return 0;
+		//检查出口, 并删除取车完成       //判断2个出口是否空闲
+		if ( Dispatch_manager::get_instance_references().m_dispatch_singlechip[2].is_outlet_ready() )
+		{
+			std::cout << " huli test 222:::: " << " m_dispatch_manager_id = " << m_dispatch_manager_id << std::endl;
+			if ( m_dispatch_command.check_export_id_is_ready(m_dispatch_manager_id*2+1) == Error_code::SUCCESS )
+			{
+				std::cout << " huli test 333:::: " << " m_dispatch_manager_id = " << m_dispatch_manager_id << std::endl;
+				return m_dispatch_manager_id*2+1;
+			}
+		}
+		else if ( Dispatch_manager::get_instance_references().m_dispatch_singlechip[3].is_outlet_ready() )
+		{
+			std::cout << " huli test 444:::: " << " m_dispatch_manager_id = " << m_dispatch_manager_id << std::endl;
+			if ( m_dispatch_command.check_export_id_is_ready(m_dispatch_manager_id*2+2) == Error_code::SUCCESS )
+			{
+				std::cout << " huli test 555:::: " << " m_dispatch_manager_id = " << m_dispatch_manager_id << std::endl;
+				return m_dispatch_manager_id*2+2;
+			}
+		}
+		else
+		{
+			return 0;
+		}
 	}
+
 	return 0;
 }