Prechádzať zdrojové kódy

2021 0810 parkspace_manage_puai

wk 3 rokov pred
rodič
commit
8f59bd0461

+ 101 - 41
parkspace_allocation/parkspace_manager.cpp

@@ -174,18 +174,28 @@ Error_manager Parkspace_manager::encapsulating_heartbeat_messages()
 	t_parkspace_status_msg.set_parkspace_manager_satus((message::Parkspace_manager_satus)t_parkspace_manager_satus);
 
 	message::Parkspace_allocation_data_msg parkspaceAllocationDataMsg;
+	int t_min_parkspace_size;
+	int t_medium_parkspace_size;
+	int t_large_parkspace_size;
+	int t_total_parkspace_size;
 	m_parkspace_operating_function.get_specify_the_type_parkspace_info(parkspaceAllocationDataMsg,message::Parkspace_type::MIN_PARKINGSPACE);
-	t_parkspace_status_msg.set_small_parkspace_remaining_number(parkspaceAllocationDataMsg.parkspace_info_ex_size());
+	t_min_parkspace_size = parkspaceAllocationDataMsg.parkspace_info_ex_size();
+	t_parkspace_status_msg.set_small_parkspace_remaining_number(t_min_parkspace_size);
 	parkspaceAllocationDataMsg.clear_parkspace_info_ex();
 
 	m_parkspace_operating_function.get_specify_the_type_parkspace_info(parkspaceAllocationDataMsg,message::Parkspace_type::MID_PARKINGSPACE);
-	t_parkspace_status_msg.set_small_parkspace_remaining_number(parkspaceAllocationDataMsg.parkspace_info_ex_size());
+	t_medium_parkspace_size = parkspaceAllocationDataMsg.parkspace_info_ex_size();
+	t_parkspace_status_msg.set_medium_parkspace_remaining_number(t_medium_parkspace_size);
 	parkspaceAllocationDataMsg.clear_parkspace_info_ex();
 
 	m_parkspace_operating_function.get_specify_the_type_parkspace_info(parkspaceAllocationDataMsg,message::Parkspace_type::BIG_PARKINGSPACE);
-	t_parkspace_status_msg.set_small_parkspace_remaining_number(parkspaceAllocationDataMsg.parkspace_info_ex_size());
+	t_large_parkspace_size = parkspaceAllocationDataMsg.parkspace_info_ex_size();
+	t_parkspace_status_msg.set_large_parkspace_remaining_number(t_large_parkspace_size);
 	parkspaceAllocationDataMsg.clear_parkspace_info_ex();
 
+	t_total_parkspace_size = t_min_parkspace_size + t_medium_parkspace_size + t_large_parkspace_size;
+	t_parkspace_status_msg.set_total_parkspace_remaining_number(t_total_parkspace_size);
+	LOG(INFO) << t_parkspace_status_msg.DebugString()<< this;
 	return Parkspace_communicator::get_instance_references().encapsulate_msg(t_parkspace_status_msg.SerializeAsString());
 
 
@@ -270,15 +280,16 @@ Error_manager Parkspace_manager::query_the_optimal_parkspace_serverB1(message::P
 		int i = 0;
 		while (i < all_min_parkspace_data.parkspace_info_ex_size())
 		{
-			int room_id=all_min_parkspace_data.parkspace_info_ex(i).parkingspace_index_id();
+			int t_parkspace_id=all_min_parkspace_data.parkspace_info_ex(i).parkingspace_index_id();
 			//筛选出小型车位的中间部分(第一优先级)的空车位
-			if (room_id % 15 >= 4 && room_id % 15 <= 12
+			if (t_parkspace_id % 15 >= 4 && t_parkspace_id % 15 <= 12
 				&& all_min_parkspace_data.parkspace_info_ex(i).parkingspace_status() == message::Parkspace_status::eParkspace_empty)
 			{
+
 				//用时=目标终端到电梯口的距离/中跑车速度+(目标车位楼层-2)*楼层高度/电梯速度+电梯口到目标车位的距离/中跑车速度
 				float time = (terminal_id+2) * TERMINAL_SPACING / MEDIUM_CAR_SPEED + DOWNSTAIRS_SPORTS_TIME +
 							 (all_min_parkspace_data.parkspace_info_ex(i).parkingspace_floor_id() - 2) *all_min_parkspace_data.parkspace_info_ex(i).parkingspace_height() /THE_ELEVATOR_SPEED +ELEVATOR_MOVEMENT_TIME +
-							 (all_min_parkspace_data.parkspace_info_ex(i).parkingspace_index_id() % 15) *all_min_parkspace_data.parkspace_info_ex(i).parkingspace_width() / MEDIUM_CAR_SPEED + UPSTAIRS_SPORTS_TIME;
+							 (t_parkspace_id % 15 ) *all_min_parkspace_data.parkspace_info_ex(i).parkingspace_width() / MEDIUM_CAR_SPEED + UPSTAIRS_SPORTS_TIME;
 				if (time_min == 0)
 				{
 					time_min = time;
@@ -292,6 +303,10 @@ Error_manager Parkspace_manager::query_the_optimal_parkspace_serverB1(message::P
 						parkingspace_index_id=i;
 					}
 				}
+				std::cout << " ------left-------"  << std::endl;
+				std::cout << " time = " << time;
+				std::cout << "              time_min = " << time_min;
+				std::cout << "  t_parkspace_id = " << t_parkspace_id << std::endl<< std::endl<< std::endl;
 			}
 			++i;
 		}
@@ -311,15 +326,15 @@ Error_manager Parkspace_manager::query_the_optimal_parkspace_serverB1(message::P
 			int i = 0;
 			while (i < all_min_parkspace_data.parkspace_info_ex_size())
 			{
-				int room_id=all_min_parkspace_data.parkspace_info_ex(i).parkingspace_index_id();
+				int t_parkspace_id=all_min_parkspace_data.parkspace_info_ex(i).parkingspace_index_id();
 
-				if ( (room_id % 15 >= 1 && room_id % 15 <= 3 || room_id % 15 == 13 || room_id % 15 ==14 || room_id % 15 ==0 )
+				if ( (t_parkspace_id % 15 >= 1 && t_parkspace_id % 15 <= 3 || t_parkspace_id % 15 == 13 || t_parkspace_id % 15 ==14 || t_parkspace_id % 15 ==0 )
 					&& all_min_parkspace_data.parkspace_info_ex(i).parkingspace_status() == message::Parkspace_status::eParkspace_empty)
 				{
 					//用时=目标终端到电梯口的距离/中跑车速度+(目标车位楼层-2)*楼层高度/电梯速度+电梯口到目标车位的距离/中跑车速度
 					float time = (terminal_id+2) * TERMINAL_SPACING / MEDIUM_CAR_SPEED + DOWNSTAIRS_SPORTS_TIME +
 								 (all_min_parkspace_data.parkspace_info_ex(i).parkingspace_floor_id() - 2) *all_min_parkspace_data.parkspace_info_ex(i).parkingspace_height() /THE_ELEVATOR_SPEED +ELEVATOR_MOVEMENT_TIME +
-								 (all_min_parkspace_data.parkspace_info_ex(i).parkingspace_index_id() % 15) *all_min_parkspace_data.parkspace_info_ex(i).parkingspace_width() / MEDIUM_CAR_SPEED + UPSTAIRS_SPORTS_TIME;
+								 (t_parkspace_id % 15 == 0?15:t_parkspace_id % 15) *all_min_parkspace_data.parkspace_info_ex(i).parkingspace_width() / MEDIUM_CAR_SPEED + UPSTAIRS_SPORTS_TIME;
 					if (time_min == 0)
 					{
 						time_min = time;
@@ -333,6 +348,10 @@ Error_manager Parkspace_manager::query_the_optimal_parkspace_serverB1(message::P
 							parkingspace_index_id = i;
 						}
 					}
+					std::cout << " ------left-------"  << std::endl;
+					std::cout << " time = " << time ;
+					std::cout << "              time_min = " << time_min;
+					std::cout << "  t_parkspace_id = " << t_parkspace_id << std::endl<< std::endl<< std::endl;
 				}
 				++i;
 			}
@@ -360,16 +379,16 @@ Error_manager Parkspace_manager::query_the_optimal_parkspace_serverB1(message::P
 		int i=0;
 		while(i<all_mid_parkspace_data.parkspace_info_ex_size())
 		{
-			int room_id=all_mid_parkspace_data.parkspace_info_ex(i).parkingspace_index_id();
+			int t_parkspace_id=all_mid_parkspace_data.parkspace_info_ex(i).parkingspace_index_id();
 
 			//如果是六楼的中型车位的中间部分(第一优先级)
-			if ( room_id >=64 && room_id <= 72
+			if ( t_parkspace_id >=64 && t_parkspace_id <= 72
 				 && all_mid_parkspace_data.parkspace_info_ex(i).parkingspace_status() == message::Parkspace_status::eParkspace_empty )
 			{
 				//用时=目标终端到电梯口的距离/中跑车速度+(目标车位楼层-2)*楼层高度/电梯速度+电梯口到目标车位的距离/中跑车速度
 				float time=(terminal_id+2)*TERMINAL_SPACING/MEDIUM_CAR_SPEED  + DOWNSTAIRS_SPORTS_TIME +
 						   (all_mid_parkspace_data.parkspace_info_ex(i).parkingspace_floor_id()-2)*all_mid_parkspace_data.parkspace_info_ex(i).parkingspace_height()/THE_ELEVATOR_SPEED + ELEVATOR_MOVEMENT_TIME +
-							(all_mid_parkspace_data.parkspace_info_ex(i).parkingspace_index_id()%15)*all_mid_parkspace_data.parkspace_info_ex(i).parkingspace_width()/MEDIUM_CAR_SPEED + UPSTAIRS_SPORTS_TIME;
+							(t_parkspace_id % 15)*all_mid_parkspace_data.parkspace_info_ex(i).parkingspace_width()/MEDIUM_CAR_SPEED + UPSTAIRS_SPORTS_TIME;
 				if ( time_min == 0 )
 				{
 					time_min=time;
@@ -384,6 +403,10 @@ Error_manager Parkspace_manager::query_the_optimal_parkspace_serverB1(message::P
 						parkingspace_index_id=i;
 					}
 				}
+				std::cout << " ------left-------"  << std::endl;
+				std::cout << " time = " << time;
+				std::cout << "              time_min = " << time_min;
+				std::cout << "  t_parkspace_id = " << t_parkspace_id << std::endl<< std::endl<< std::endl;
 			}
 			++i;
 		}
@@ -402,16 +425,16 @@ Error_manager Parkspace_manager::query_the_optimal_parkspace_serverB1(message::P
 			int i=0;
 			while(i<all_mid_parkspace_data.parkspace_info_ex_size())
 			{
-				int room_id=all_mid_parkspace_data.parkspace_info_ex(i).parkingspace_index_id();
+				int t_parkspace_id=all_mid_parkspace_data.parkspace_info_ex(i).parkingspace_index_id();
 
 				//如果是六楼的中型车位的侧边(第二优先级)
-				if ( (room_id >=61 && room_id <= 63 || room_id % 15 == 13 || room_id % 15 ==14 || room_id % 15 ==0 )
+				if ( (t_parkspace_id >=61 && t_parkspace_id <= 63 || t_parkspace_id % 15 == 13 || t_parkspace_id % 15 ==14 || t_parkspace_id % 15 ==0 )
 					 && all_mid_parkspace_data.parkspace_info_ex(i).parkingspace_status() == message::Parkspace_status::eParkspace_empty )
 				{
 					//用时=目标终端到电梯口的距离/中跑车速度+(目标车位楼层-2)*楼层高度/电梯速度+电梯口到目标车位的距离/中跑车速度
 					float time=(terminal_id+2)*TERMINAL_SPACING/MEDIUM_CAR_SPEED  + DOWNSTAIRS_SPORTS_TIME +
 							   (all_mid_parkspace_data.parkspace_info_ex(i).parkingspace_floor_id()-2)*all_mid_parkspace_data.parkspace_info_ex(i).parkingspace_height()/THE_ELEVATOR_SPEED + ELEVATOR_MOVEMENT_TIME +
-							   all_mid_parkspace_data.parkspace_info_ex(i).parkingspace_index_id()%15*all_mid_parkspace_data.parkspace_info_ex(i).parkingspace_width()/MEDIUM_CAR_SPEED + UPSTAIRS_SPORTS_TIME;
+								(t_parkspace_id % 15 == 0?15:t_parkspace_id % 15)*all_mid_parkspace_data.parkspace_info_ex(i).parkingspace_width()/MEDIUM_CAR_SPEED + UPSTAIRS_SPORTS_TIME;
 					if ( time_min == 0 )
 					{
 						time_min=time;
@@ -426,6 +449,10 @@ Error_manager Parkspace_manager::query_the_optimal_parkspace_serverB1(message::P
 							parkingspace_index_id=i;
 						}
 					}
+					std::cout << " ------left-------"  << std::endl;
+					std::cout << " time = " << time ;
+					std::cout << "              time_min = " << time_min;
+					std::cout << "  t_parkspace_id = " << t_parkspace_id << std::endl<< std::endl<< std::endl;
 				}
 				++i;
 			}
@@ -453,17 +480,18 @@ Error_manager Parkspace_manager::query_the_optimal_parkspace_serverB1(message::P
 		int i=0;
 		while(i<all_big_parkspace_data.parkspace_info_ex_size())
 		{
-			int room_id=all_big_parkspace_data.parkspace_info_ex(i).parkingspace_index_id();
+			int t_parkspace_id=all_big_parkspace_data.parkspace_info_ex(i).parkingspace_index_id();
 
 			//筛选出一号车库的小型车位的靠近电梯的左侧三排(第二优先级)的空车位
-			if ( ( (room_id %15 >= 1 && room_id %15 <= 3) || (room_id>=34 && room_id<=42) || room_id % 15 == 13 || room_id % 15 ==14 || room_id % 15 ==0 )
+			if ( ( (t_parkspace_id %15 >= 1 && t_parkspace_id %15 <= 3) || (t_parkspace_id>=34 && t_parkspace_id<=42) || t_parkspace_id % 15 == 13 || t_parkspace_id % 15 ==14 || t_parkspace_id % 15 ==0 )
 				 && all_big_parkspace_data.parkspace_info_ex(i).parkingspace_status() == message::Parkspace_status::eParkspace_empty )
 			{
 				//如果是二楼车 则特殊处理
 				if ( all_big_parkspace_data.parkspace_info_ex(i).parkingspace_floor_id() == 2 )
 				{
 					// 二楼用时=| 目标车位到电梯的距离 - 终端到电梯的距离 | / 中跑车速度
-					float t_min=abs( room_id%15*all_big_parkspace_data.parkspace_info_ex(i).parkingspace_width()-(terminal_id+2)*TERMINAL_SPACING )/MEDIUM_CAR_SPEED+DOWNSTAIRS_SPORTS_TIME;
+					float t_min=abs( (t_parkspace_id%15 == 0?15:t_parkspace_id%15)*all_big_parkspace_data.parkspace_info_ex(i).parkingspace_width()-(terminal_id+2)*TERMINAL_SPACING )/MEDIUM_CAR_SPEED+DOWNSTAIRS_SPORTS_TIME;
+
 					if ( time_min == 0 )
 					{
 						time_min=t_min;
@@ -477,13 +505,17 @@ Error_manager Parkspace_manager::query_the_optimal_parkspace_serverB1(message::P
 							parkingspace_index_id=i;
 						}
 					}
+					std::cout << " ------left-------"  << std::endl;
+					std::cout << " time = " << t_min ;
+					std::cout << "              time_min = " << time_min;
+					std::cout << "  t_parkspace_id = " << t_parkspace_id << std::endl<< std::endl<< std::endl;
 				}
 				else
 				{
 					//用时=目标终端到电梯口的距离/中跑车速度+(目标车位楼层-2)*楼层高度/电梯速度+电梯口到目标车位的距离/中跑车速度
 					float time=(terminal_id+2)*TERMINAL_SPACING/MEDIUM_CAR_SPEED  + DOWNSTAIRS_SPORTS_TIME +
 							   (all_big_parkspace_data.parkspace_info_ex(i).parkingspace_floor_id()-2)*all_big_parkspace_data.parkspace_info_ex(i).parkingspace_height()/THE_ELEVATOR_SPEED + ELEVATOR_MOVEMENT_TIME +
-							   all_big_parkspace_data.parkspace_info_ex(i).parkingspace_index_id()%15*all_big_parkspace_data.parkspace_info_ex(i).parkingspace_width()/MEDIUM_CAR_SPEED + UPSTAIRS_SPORTS_TIME;
+								(t_parkspace_id % 15==0?15:t_parkspace_id % 15)*all_big_parkspace_data.parkspace_info_ex(i).parkingspace_width()/MEDIUM_CAR_SPEED + UPSTAIRS_SPORTS_TIME;
 					if ( time_min == 0 )
 					{
 						time_min=time;
@@ -498,6 +530,10 @@ Error_manager Parkspace_manager::query_the_optimal_parkspace_serverB1(message::P
 							parkingspace_index_id=i;
 						}
 					}
+					std::cout << " ------left-------"  << std::endl;
+					std::cout << " time = " << time ;
+					std::cout << "              time_min = " << time_min;
+					std::cout << "  t_parkspace_id = " << t_parkspace_id << std::endl<< std::endl<< std::endl;
 				}
 			}
 			++i;
@@ -549,15 +585,15 @@ Error_manager Parkspace_manager::query_the_optimal_parkspace_serverB2(message::P
 		int i = 0;
 		while (i < all_min_parkspace_data.parkspace_info_ex_size())
 		{
-			int room_id=all_min_parkspace_data.parkspace_info_ex(i).parkingspace_index_id();
+			int t_parkspace_id=all_min_parkspace_data.parkspace_info_ex(i).parkingspace_index_id();
 			//筛选出小型车位的中间部分(第一优先级)的空车位
-			if (room_id % 15 >= 4 && room_id % 15 <= 12
+			if (t_parkspace_id % 15 >= 4 && t_parkspace_id % 15 <= 12
 				&& all_min_parkspace_data.parkspace_info_ex(i).parkingspace_status() == message::Parkspace_status::eParkspace_empty)
 			{
 				//用时=目标终端到电梯口的距离/中跑车速度+(目标车位楼层-2)*楼层高度/电梯速度+电梯口到目标车位的距离/中跑车速度
 				float time = (6-terminal_id+2) * TERMINAL_SPACING / MEDIUM_CAR_SPEED + DOWNSTAIRS_SPORTS_TIME +
 							 (all_min_parkspace_data.parkspace_info_ex(i).parkingspace_floor_id() - 2) *all_min_parkspace_data.parkspace_info_ex(i).parkingspace_height() /THE_ELEVATOR_SPEED +ELEVATOR_MOVEMENT_TIME +
-							 ( (15-all_min_parkspace_data.parkspace_info_ex(i).parkingspace_index_id() % 15)==15?0:(15-all_min_parkspace_data.parkspace_info_ex(i).parkingspace_index_id() % 15) ) *all_min_parkspace_data.parkspace_info_ex(i).parkingspace_width() / MEDIUM_CAR_SPEED + UPSTAIRS_SPORTS_TIME;
+							 ( 15-t_parkspace_id % 15 ) *all_min_parkspace_data.parkspace_info_ex(i).parkingspace_width() / MEDIUM_CAR_SPEED + UPSTAIRS_SPORTS_TIME;
 				if (time_min == 0)
 				{
 					time_min = time;
@@ -571,6 +607,10 @@ Error_manager Parkspace_manager::query_the_optimal_parkspace_serverB2(message::P
 						parkingspace_index_id=i;
 					}
 				}
+				std::cout << " ------right-------"  << std::endl;
+				std::cout << " time = " << time ;
+				std::cout << "              time_min = " << time_min;
+				std::cout << "  t_parkspace_id = " << t_parkspace_id << std::endl<< std::endl<< std::endl;
 			}
 			++i;
 		}
@@ -589,16 +629,16 @@ Error_manager Parkspace_manager::query_the_optimal_parkspace_serverB2(message::P
 			int i = 0;
 			while (i < all_min_parkspace_data.parkspace_info_ex_size())
 			{
-				int room_id=all_min_parkspace_data.parkspace_info_ex(i).parkingspace_index_id();
+				int t_parkspace_id=all_min_parkspace_data.parkspace_info_ex(i).parkingspace_index_id();
 
 				//筛选出一号车库的小型车位的中间部分(第一优先级)的空车位
-				if ((room_id % 15 >= 1 && room_id % 15 <= 3 || room_id % 15 == 13 || room_id % 15 ==14 || room_id % 15 ==0 )
+				if ((t_parkspace_id % 15 >= 1 && t_parkspace_id % 15 <= 3 || t_parkspace_id % 15 == 13 || t_parkspace_id % 15 ==14 || t_parkspace_id % 15 ==0 )
 					&& all_min_parkspace_data.parkspace_info_ex(i).parkingspace_status() == message::Parkspace_status::eParkspace_empty)
 				{
 					//用时=目标终端到电梯口的距离/中跑车速度+(目标车位楼层-2)*楼层高度/电梯速度+电梯口到目标车位的距离/中跑车速度
 					float time = (6-terminal_id+2) * TERMINAL_SPACING / MEDIUM_CAR_SPEED + DOWNSTAIRS_SPORTS_TIME +
 								 (all_min_parkspace_data.parkspace_info_ex(i).parkingspace_floor_id() - 2) *all_min_parkspace_data.parkspace_info_ex(i).parkingspace_height() /THE_ELEVATOR_SPEED +ELEVATOR_MOVEMENT_TIME +
-								 ( (15-all_min_parkspace_data.parkspace_info_ex(i).parkingspace_index_id() % 15)==15?0:(15-all_min_parkspace_data.parkspace_info_ex(i).parkingspace_index_id() % 15) ) *all_min_parkspace_data.parkspace_info_ex(i).parkingspace_width() / MEDIUM_CAR_SPEED + UPSTAIRS_SPORTS_TIME;
+								 ( (15-t_parkspace_id % 15)==15?0:(15-t_parkspace_id % 15) ) *all_min_parkspace_data.parkspace_info_ex(i).parkingspace_width() / MEDIUM_CAR_SPEED + UPSTAIRS_SPORTS_TIME;
 					if (time_min == 0)
 					{
 						time_min = time;
@@ -612,6 +652,10 @@ Error_manager Parkspace_manager::query_the_optimal_parkspace_serverB2(message::P
 							parkingspace_index_id = i;
 						}
 					}
+					std::cout << " ------right-------"  << std::endl;
+					std::cout << " time = " << time ;
+					std::cout << "              time_min = " << time_min;
+					std::cout << "  t_parkspace_id = " << t_parkspace_id << std::endl<< std::endl<< std::endl;
 				}
 				++i;
 			}
@@ -639,16 +683,16 @@ Error_manager Parkspace_manager::query_the_optimal_parkspace_serverB2(message::P
 		int i=0;
 		while(i<all_mid_parkspace_data.parkspace_info_ex_size())
 		{
-			int room_id=all_mid_parkspace_data.parkspace_info_ex(i).parkingspace_index_id();
+			int t_parkspace_id=all_mid_parkspace_data.parkspace_info_ex(i).parkingspace_index_id();
 
 			//如果是六楼的中型车位的中间部分(第一优先级)
-			if ( room_id >= 64 && room_id <= 72
+			if ( t_parkspace_id >= 64 && t_parkspace_id <= 72
 				 && all_mid_parkspace_data.parkspace_info_ex(i).parkingspace_status() == message::Parkspace_status::eParkspace_empty )
 			{
 				//用时=目标终端到电梯口的距离/中跑车速度+(目标车位楼层-2)*楼层高度/电梯速度+电梯口到目标车位的距离/中跑车速度
 				float time=(6-terminal_id+2)*TERMINAL_SPACING/MEDIUM_CAR_SPEED  + DOWNSTAIRS_SPORTS_TIME +
 						   (all_mid_parkspace_data.parkspace_info_ex(i).parkingspace_floor_id()-2)*all_mid_parkspace_data.parkspace_info_ex(i).parkingspace_height()/THE_ELEVATOR_SPEED + ELEVATOR_MOVEMENT_TIME +
-						   ( ((15-all_mid_parkspace_data.parkspace_info_ex(i).parkingspace_index_id()%15) ==15?0:(15-all_mid_parkspace_data.parkspace_info_ex(i).parkingspace_index_id()%15)) )*all_mid_parkspace_data.parkspace_info_ex(i).parkingspace_width()/MEDIUM_CAR_SPEED + UPSTAIRS_SPORTS_TIME;
+						   ( 15-t_parkspace_id % 15 )*all_mid_parkspace_data.parkspace_info_ex(i).parkingspace_width()/MEDIUM_CAR_SPEED + UPSTAIRS_SPORTS_TIME;
 				if ( time_min == 0 )
 				{
 					time_min=time;
@@ -663,6 +707,10 @@ Error_manager Parkspace_manager::query_the_optimal_parkspace_serverB2(message::P
 						parkingspace_index_id=i;
 					}
 				}
+				std::cout << " ------right-------"  << std::endl;
+				std::cout << " time = " << time;
+				std::cout << "              time_min = " << time_min;
+				std::cout << "  t_parkspace_id = " << t_parkspace_id << std::endl<< std::endl<< std::endl;
 			}
 			++i;
 		}
@@ -681,16 +729,16 @@ Error_manager Parkspace_manager::query_the_optimal_parkspace_serverB2(message::P
 			int i=0;
 			while(i<all_mid_parkspace_data.parkspace_info_ex_size())
 			{
-				int room_id=all_mid_parkspace_data.parkspace_info_ex(i).parkingspace_index_id();
+				int t_parkspace_id=all_mid_parkspace_data.parkspace_info_ex(i).parkingspace_index_id();
 
 				//如果是六楼的中型车位的侧边(第二优先级)
-				if ( (room_id >=61 && room_id <= 63 || room_id % 15 == 13 || room_id % 15 ==14 || room_id % 15 ==0 )
+				if ( (t_parkspace_id >=61 && t_parkspace_id <= 63 || t_parkspace_id % 15 == 13 || t_parkspace_id % 15 ==14 || t_parkspace_id % 15 ==0 )
 					 && all_mid_parkspace_data.parkspace_info_ex(i).parkingspace_status() == message::Parkspace_status::eParkspace_empty )
 				{
 					//用时=目标终端到电梯口的距离/中跑车速度+(目标车位楼层-2)*楼层高度/电梯速度+电梯口到目标车位的距离/中跑车速度
 					float time=(6-terminal_id+2)*TERMINAL_SPACING/MEDIUM_CAR_SPEED  + DOWNSTAIRS_SPORTS_TIME +
 							   (all_mid_parkspace_data.parkspace_info_ex(i).parkingspace_floor_id()-2)*all_mid_parkspace_data.parkspace_info_ex(i).parkingspace_height()/THE_ELEVATOR_SPEED + ELEVATOR_MOVEMENT_TIME +
-							   ( ((15-all_mid_parkspace_data.parkspace_info_ex(i).parkingspace_index_id()%15) ==15?0:(15-all_mid_parkspace_data.parkspace_info_ex(i).parkingspace_index_id()%15)) )*all_mid_parkspace_data.parkspace_info_ex(i).parkingspace_width()/MEDIUM_CAR_SPEED + UPSTAIRS_SPORTS_TIME;
+							   ( (15-t_parkspace_id % 15) ==15?0:(15-t_parkspace_id % 15))*all_mid_parkspace_data.parkspace_info_ex(i).parkingspace_width()/MEDIUM_CAR_SPEED + UPSTAIRS_SPORTS_TIME;
 					if ( time_min == 0 )
 					{
 						time_min=time;
@@ -705,6 +753,10 @@ Error_manager Parkspace_manager::query_the_optimal_parkspace_serverB2(message::P
 							parkingspace_index_id=i;
 						}
 					}
+					std::cout << " ------right-------"  << std::endl;
+					std::cout << " time = " << time;
+					std::cout << "              time_min = " << time_min;
+					std::cout << "  t_parkspace_id = " << t_parkspace_id << std::endl<< std::endl<< std::endl;
 				}
 				++i;
 			}
@@ -732,17 +784,17 @@ Error_manager Parkspace_manager::query_the_optimal_parkspace_serverB2(message::P
 		int i=0;
 		while(i<all_big_parkspace_data.parkspace_info_ex_size())
 		{
-			int room_id=all_big_parkspace_data.parkspace_info_ex(i).parkingspace_index_id();
+			int t_parkspace_id=all_big_parkspace_data.parkspace_info_ex(i).parkingspace_index_id();
 
 			//筛选出大型车位的靠近电梯的右侧三排(第二优先级)的空车位
-			if ( ( (room_id %15 >= 1 && room_id %15 <= 3) || (room_id>=34 && room_id<=42) || room_id % 15 == 13 || room_id % 15 ==14 || room_id % 15 ==0 )
+			if ( ( (t_parkspace_id %15 >= 1 && t_parkspace_id %15 <= 3) || (t_parkspace_id>=34 && t_parkspace_id<=42) || t_parkspace_id % 15 == 13 || t_parkspace_id % 15 ==14 || t_parkspace_id % 15 ==0 )
 				 && all_big_parkspace_data.parkspace_info_ex(i).parkingspace_status() == message::Parkspace_status::eParkspace_empty )
 			{
 				//如果是二楼车 则特殊处理
 				if ( all_big_parkspace_data.parkspace_info_ex(i).parkingspace_floor_id() == 2 )
 				{
 					// 二楼用时=| 目标车位到电梯的距离 - 终端到电梯的距离 | / 中跑车速度
-					float t_min=abs( ((15-room_id%15)==15?0:(15-room_id%15))*all_big_parkspace_data.parkspace_info_ex(i).parkingspace_width()-(6-terminal_id+2)*TERMINAL_SPACING )/MEDIUM_CAR_SPEED+DOWNSTAIRS_SPORTS_TIME;
+					float t_min=abs( (t_parkspace_id%15==0?15:t_parkspace_id%15)*all_big_parkspace_data.parkspace_info_ex(i).parkingspace_width()-(terminal_id+2)*TERMINAL_SPACING )/MEDIUM_CAR_SPEED+DOWNSTAIRS_SPORTS_TIME;
 					if ( time_min == 0 )
 					{
 						time_min=t_min;
@@ -756,13 +808,17 @@ Error_manager Parkspace_manager::query_the_optimal_parkspace_serverB2(message::P
 							parkingspace_index_id=i;
 						}
 					}
+					std::cout << " ------right-------"  << std::endl;
+					std::cout << " time = " << t_min;
+					std::cout << "              time_min = " << time_min;
+					std::cout << "  t_parkspace_id = " << t_parkspace_id << std::endl<< std::endl<< std::endl;
 				}
 				else
 				{
 					//用时=目标终端到电梯口的距离/中跑车速度+(目标车位楼层-2)*楼层高度/电梯速度+电梯口到目标车位的距离/中跑车速度
 					float time=(6-terminal_id+2)*TERMINAL_SPACING/MEDIUM_CAR_SPEED  + DOWNSTAIRS_SPORTS_TIME +
 							   (all_big_parkspace_data.parkspace_info_ex(i).parkingspace_floor_id()-2)*all_big_parkspace_data.parkspace_info_ex(i).parkingspace_height()/THE_ELEVATOR_SPEED + ELEVATOR_MOVEMENT_TIME +
-							   ( (15-all_big_parkspace_data.parkspace_info_ex(i).parkingspace_index_id() % 15)==15?0:(15-all_big_parkspace_data.parkspace_info_ex(i).parkingspace_index_id() % 15) )*all_big_parkspace_data.parkspace_info_ex(i).parkingspace_width()/MEDIUM_CAR_SPEED + UPSTAIRS_SPORTS_TIME;
+							   ( (15-t_parkspace_id % 15)==15?0:(15-t_parkspace_id % 15) )*all_big_parkspace_data.parkspace_info_ex(i).parkingspace_width()/MEDIUM_CAR_SPEED + UPSTAIRS_SPORTS_TIME;
 					if ( time_min == 0 )
 					{
 						time_min=time;
@@ -777,6 +833,10 @@ Error_manager Parkspace_manager::query_the_optimal_parkspace_serverB2(message::P
 							parkingspace_index_id=i;
 						}
 					}
+					std::cout << " ------right-------"  << std::endl;
+					std::cout << " time = " << time ;
+					std::cout << "              time_min = " << time_min;
+					std::cout << "  t_parkspace_id = " << t_parkspace_id << std::endl<< std::endl<< std::endl;
 				}
 			}
 			++i;
@@ -825,13 +885,13 @@ Error_manager Parkspace_manager::query_the_optimal_parkspace_serverB3(message::P
 		while (i < all_mid_parkspace_data.parkspace_info_ex_size())
 		{
 			//筛选中型车位缓冲区
-			int room_id=all_mid_parkspace_data.parkspace_info_ex(i).parkingspace_index_id();
-			if ( room_id >= 19 && room_id <= 27
+			int t_parkspace_id=all_mid_parkspace_data.parkspace_info_ex(i).parkingspace_index_id();
+			if ( t_parkspace_id >= 19 && t_parkspace_id <= 27
 				&& all_mid_parkspace_data.parkspace_info_ex(i).parkingspace_status() == message::eParkspace_empty)
 			{
 				//只需计算端口到车位的距离
 				// 三楼中型用时=| 目标车位到电梯的距离 - 终端到电梯的距离 | / 中跑车速度
-				float t_min=abs( room_id%15*all_mid_parkspace_data.parkspace_info_ex(i).parkingspace_width()-(terminal_id+2)*TERMINAL_SPACING )/MEDIUM_CAR_SPEED+DOWNSTAIRS_SPORTS_TIME;
+				float t_min=abs( t_parkspace_id%15*all_mid_parkspace_data.parkspace_info_ex(i).parkingspace_width()-(terminal_id+2)*TERMINAL_SPACING )/MEDIUM_CAR_SPEED+DOWNSTAIRS_SPORTS_TIME;
 				if ( time_min == 0 )
 				{
 					time_min=t_min;
@@ -870,13 +930,13 @@ Error_manager Parkspace_manager::query_the_optimal_parkspace_serverB3(message::P
 		while (i < all_big_parkspace_data.parkspace_info_ex_size())
 		{
 			//筛选中型车位缓冲区
-			int room_id=all_big_parkspace_data.parkspace_info_ex(i).parkingspace_index_id();
-			if ( room_id >= 4 && room_id <= 12
+			int t_parkspace_id=all_big_parkspace_data.parkspace_info_ex(i).parkingspace_index_id();
+			if ( t_parkspace_id >= 4 && t_parkspace_id <= 12
 				 && all_big_parkspace_data.parkspace_info_ex(i).parkingspace_status() == message::eParkspace_empty)
 			{
 				//只需计算端口到车位的距离
 				// 二楼中型用时=| 目标车位到电梯的距离 - 终端到电梯的距离 | / 中跑车速度
-				float t_min=abs( room_id%15*all_big_parkspace_data.parkspace_info_ex(i).parkingspace_width()-(terminal_id+2)*TERMINAL_SPACING )/MEDIUM_CAR_SPEED+DOWNSTAIRS_SPORTS_TIME;
+				float t_min=abs( t_parkspace_id%15*all_big_parkspace_data.parkspace_info_ex(i).parkingspace_width()-(terminal_id+2)*TERMINAL_SPACING )/MEDIUM_CAR_SPEED+DOWNSTAIRS_SPORTS_TIME;
 				if ( time_min == 0 )
 				{
 					time_min=t_min;

+ 1 - 1
parkspace_allocation/parkspace_manager.h

@@ -42,7 +42,7 @@ public:
 //电梯速度  米每秒
 #define THE_ELEVATOR_SPEED		1.3
 //终端间距
-#define TERMINAL_SPACING		2.5
+#define TERMINAL_SPACING		3
 //中跑车楼下运动时间
 #define DOWNSTAIRS_SPORTS_TIME	1
 //中跑车楼上运动时间

+ 1 - 1
setting/communication.prototxt

@@ -9,6 +9,6 @@ communication_parameters
 #   connect_string_vector:"tcp://192.168.2.166:1234"
 
     bind_string:"tcp://192.168.2.174:30008"
- #   connect_string_vector:"tcp://192.168.2.127:30000"
+    connect_string_vector:"tcp://192.168.2.127:30000"
 }