فهرست منبع

2021 0709, wangkang parkspace ---A方案去除

wk 4 سال پیش
والد
کامیت
688e54ae1b

+ 1 - 1
error_code/error_code.h

@@ -296,7 +296,7 @@ enum Error_code
     PARKSPACE_ALLOCATOR_SEARCH_FAILED,              //未找到车辆对应车位
     PARKSPACE_ALLOCATOR_RELEASE_FAILED,             //未找到匹配的车位,车位未释放
     PARKSPACE_ALLOCATOR_FORCE_UPDATE_FAILED,        //手动更新失败,未找到匹配车位
-    PARKSPACE_ALLOCATOR_PARAM_ERROR,                //传入参数错误,内部无车辆信息
+    PARKSPACE_ALLOCATOR_PARAM_ERROR,                //传入参数错误
     PARKSPACE_ALLOCATOR_CONFIRM_ALLOC_ERROR,        //确认分配车位错误
     PARKSPACE_ALLOCATOR_CAR_ALREADY_EXIST,          //车辆已存在
 

تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 350 - 589
message/parkspace_allocation_message.pb.cc


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 228 - 524
message/parkspace_allocation_message.pb.h


+ 20 - 29
message/parkspace_allocation_message.proto

@@ -12,14 +12,12 @@ import "message_base.proto";
 //车辆状态枚举
 enum Vehicle_status
 {
-    eVehicle_idle           = 0;         //车辆空闲
-    eVehicle_in_garage      = 1;         //车辆已入库
-
-
-    eVehicle_parking        = 2;         //车辆停车中
-    eVehicle_fetching       = 3;         //车辆取车中
-    eVehicle_reserved       = 4;         //已预约未停入
-    eVehicle_unknown        = 5;         //未知状态
+    eVehicle_unknown        = 0;         //未知状态
+    eVehicle_idle           = 1;         //车辆空闲
+    eVehicle_in_garage      = 2;         //车辆已入库
+    eVehicle_parking        = 3;         //车辆停车中
+    eVehicle_fetching       = 4;         //车辆取车中
+    eVehicle_reserved       = 5;         //已预约未停入
 }
 
 //数据库状态
@@ -53,11 +51,8 @@ message Parkspace_allocation_response_msg
     required Base_info                  base_info=1;            //消息类型
     required string                     command_key=2;           //指令唯一标识符id
     required Error_manager              error_manager=3;        //分配成功与否标志
-    optional Parkspace_info             allocated_parkspace_info=4; //分配车位信息
-
-    repeated Parkspace_info             allocated_parkspace_info_ex = 5;    //分配车位信息
-
-    optional Car_type                   car_type = 6;//汽车类型
+    repeated Parkspace_info             allocated_parkspace_info_ex = 4;    //分配车位信息
+    optional Car_type                   car_type = 5;//汽车类型
 }
 
 //2.查询车辆位置请求
@@ -74,7 +69,7 @@ message Parkspace_search_response_msg
     required Base_info                  base_info=1;            //消息类型
     required string                     command_key=2;           //指令唯一标识符id
     required Error_manager              error_manager=3;        //分配成功与否标志
-    optional Parkspace_info             query_parkspace_info=4;         //待查询车辆存放位置
+    repeated Parkspace_info             query_parkspace_info_ex=4;         //待查询车辆存放位置
 }
 
 //3.释放车位请求
@@ -82,7 +77,7 @@ message Parkspace_release_request_msg
 {
     required Base_info                  base_info=1;            //消息类型
     required string                     command_key=2;           //指令唯一标识符id
-    required Parkspace_info             release_parkspace_info=3;   //待释放车位信息
+    repeated Parkspace_info             release_parkspace_info_ex=3;   //待释放车位信息
 }
 
 //释放车位请求
@@ -91,7 +86,7 @@ message Parkspace_release_response_msg
     required Base_info                  base_info=1;            //消息类型
     required string                     command_key=2;           //指令唯一标识符id
     required Error_manager              error_manager=3;        //分配成功与否标志
-    required Parkspace_info             release_parkspace_info=4;   //待释放车位信息
+    repeated Parkspace_info             release_parkspace_info_ex=4;   //待释放车位信息
 }
 
 // 4.手动操作修改车位状态
@@ -99,7 +94,7 @@ message Parkspace_force_update_request_msg
 {
     required Base_info                  base_info=1;            //消息类型
     required string                     command_key=2;           //指令唯一标识符id
-    required Parkspace_info             manual_parkspace_info=3;    //待手动修改车位信息,通过id定位
+    repeated Parkspace_info             manual_parkspace_info_ex=3;    //待手动修改车位信息,通过id定位
 }
 
 //手动操作反馈
@@ -108,30 +103,26 @@ message Parkspace_force_update_response_msg
     required Base_info                  base_info=1;            //消息类型
     required string                     command_key=2;           //指令唯一标识符id
     required Error_manager              error_manager=3;        //分配成功与否标志
-    required Parkspace_info             manual_parkspace_info=4;    //已修改后的车位信息
+    repeated Parkspace_info             manual_parkspace_info_ex=4;    //已修改后的车位信息
 }
 
-// 5.确认占有车位
+//5.确认分配车位
 message Parkspace_confirm_alloc_request_msg
 {
     required Base_info                  base_info=1;            //消息类型
     required string                     command_key=2;           //指令唯一标识符id
-    optional Parkspace_info             confirm_parkspace_info=3;    //已修改后的车位信息
-
-    repeated Parkspace_info             confirm_parkspace_info_ex = 4;    //分配车位信息
-    optional Car_type                   car_type = 5;//汽车类型
+    repeated Parkspace_info             confirm_parkspace_info_ex = 3;    //分配车位信息
+    optional Car_type                   car_type = 4;//汽车类型
 
 }
-
+//确认分配车位反馈
 message Parkspace_confirm_alloc_response_msg
 {
     required Base_info                  base_info=1;            //消息类型
     required string                     command_key=2;           //指令唯一标识符id
     required Error_manager              error_manager=3;        //分配成功与否标志
-    optional Parkspace_info             confirm_alloc_parkspace_info=4;    //已修改后的车位信息
-
-    repeated Parkspace_info             confirm_parkspace_info_ex = 5;    //已修改后的车位信息
-    optional Car_type                   car_type = 6;//汽车类型
+    repeated Parkspace_info             confirm_parkspace_info_ex = 4;    //已修改后的车位信息
+    optional Car_type                   car_type = 5;//汽车类型
 
 }
 
@@ -158,5 +149,5 @@ message Parkspace_allocation_data_msg
 {
     required Base_info                  base_info=1;            //消息类型
     required Error_manager              error_manager=2;
-    repeated Parkspace_info             parkspace_info=3;
+    repeated Parkspace_info             parkspace_info_ex=3;
 }

تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 235 - 733
parkspace_allocation/parkspace_manager.cpp


+ 5 - 6
parkspace_allocation/parkspace_manager.h

@@ -49,8 +49,7 @@ public:
 #define UPSTAIRS_SPORTS_TIME	1
 //电梯运动时间
 #define ELEVATOR_MOVEMENT_TIME	1
-//方案选择  为0时选择A方案停车  为非0时选择B方案停车
-#define PLAN 1
+
 private:
     // 父类的构造函数必须保护,子类的构造函数必须私有。
     Parkspace_manager();
@@ -82,8 +81,8 @@ public://API functions
 public://execute_msg创建各线程进行处理
 	//发送车位数据函数  在接收到请求和进行数据库操作后调用
 	Error_manager send_parkspace_data();
-	//找到一个最优车位---方案1
-	Error_manager query_the_optimal_parkspace_serverA(message::Parkspace_info &parkspace_info,message::Car_info car_info,int terminal_id);
+//	//找到一个最优车位---方案1
+//	Error_manager query_the_optimal_parkspace_serverA(message::Parkspace_info &parkspace_info,message::Car_info car_info,int terminal_id);
 	//找到一个最优车位---方案2(带缓冲区)
 	//找左侧车位
 	Error_manager query_the_optimal_parkspace_serverB1(message::Parkspace_info &parkspace_info,message::Car_info car_info,int terminal_id);
@@ -98,9 +97,9 @@ public://execute_msg创建各线程进行处理
     //查询车位线程函数
     void execute_for_search(message::Car_info car_info,std::string command_key);
     //释放车位线程函数
-    void execute_for_release(message::Parkspace_info space_info, std::string command_key);
+    void execute_for_release(message::Parkspace_release_request_msg release_msg, std::string command_key);
     //强制更新车位信息线程函数
-	void execute_for_force_update(message::Parkspace_info space_info, std::string command_key);
+	void execute_for_force_update(message::Parkspace_force_update_request_msg force_update_msg, std::string command_key);
 
 
     //确认分配操作函数

+ 21 - 23
parkspace_allocation/parkspace_operating_function.cpp

@@ -23,10 +23,10 @@ Error_manager Parkspace_operating_function::get_all_parkspace_info(message::Park
 		{
 			return DB_RESULT_SET_EMPTY;
 		}
-		all_parkspace_info.clear_parkspace_info();
+		all_parkspace_info.clear_parkspace_info_ex();
 		while (tp_result->next())
 		{
-			message::Parkspace_info *t_parkspace = all_parkspace_info.add_parkspace_info();
+			message::Parkspace_info *t_parkspace = all_parkspace_info.add_parkspace_info_ex();
 			char buf[1024];
 			memset(buf, 0, 1024);
 			try
@@ -115,10 +115,10 @@ Error_manager Parkspace_operating_function::get_specify_the_type_parkspace_info(
 		{
 			return DB_RESULT_SET_EMPTY;
 		}
-		all_specify_the_type_parkspace_info.clear_parkspace_info();
+		all_specify_the_type_parkspace_info.clear_parkspace_info_ex();
 		while (tp_result->next())
 		{
-			message::Parkspace_info *t_parkspace = all_specify_the_type_parkspace_info.add_parkspace_info();
+			message::Parkspace_info *t_parkspace = all_specify_the_type_parkspace_info.add_parkspace_info_ex();
 			char buf[1024];
 			memset(buf, 0, 1024);
 			try
@@ -288,28 +288,28 @@ Error_manager Parkspace_operating_function::update_vehicle_with_parkspace(messag
 		switch (vehicle_status)
 		{
 		case message::Vehicle_status::eVehicle_idle:
-			vehicle_status_code = 0;
+			vehicle_status_code = 1;
 			break;
 		case message::Vehicle_status::eVehicle_in_garage:
-			vehicle_status_code = 1;
+			vehicle_status_code = 2;
 			break;
 		case message::Vehicle_status::eVehicle_parking:
-			vehicle_status_code = 2;
+			vehicle_status_code = 3;
 			break;
 		case message::Vehicle_status::eVehicle_fetching:
-			vehicle_status_code = 3;
+			vehicle_status_code = 4;
 			break;
 		case message::Vehicle_status::eVehicle_reserved:
-			vehicle_status_code = 4;
+			vehicle_status_code = 5;
 			break;
 		default:
 			return Error_manager(Error_code::PARAMETER_ERROR, Error_level::MINOR_ERROR,
 								 "参数错误 Parkspace_operating_function::update_vehicle_with_parkspace error ");
 			break;
 		}
-		if ( vehicle_status_code == 0 )
+		if ( vehicle_status_code == 1 )
 		{
-			sprintf(update_vehicle_sql, "update vehicle set vehicleParkState = 0,carLength=NULL,carWidth=NULL,carHeight=NULL,carWheelBase = NULL,carWheelWidth = NULL,parkingSpaceID=NULL,parkingRecordsID=NULL where numberPlate = '%s'",
+			sprintf(update_vehicle_sql, "update vehicle set vehicleParkState = 1,carLength=NULL,carWidth=NULL,carHeight=NULL,carWheelBase = NULL,carWheelWidth = NULL,parkingSpaceID=NULL,parkingRecordsID=NULL where numberPlate = '%s'",
 				   parkspace_info.car_info().license().c_str());
 		}
 		//车位为空,仅更新车辆状态与长宽高
@@ -375,19 +375,19 @@ Error_manager Parkspace_operating_function::insert_vehicle_with_parkspace(messag
 	switch (vehicle_status)
 	{
 		case message::Vehicle_status::eVehicle_idle:
-			vehicle_status_code = 0;
+			vehicle_status_code = 1;
 			break;
 		case message::Vehicle_status::eVehicle_in_garage:
-			vehicle_status_code = 1;
+			vehicle_status_code = 2;
 			break;
 		case message::Vehicle_status::eVehicle_parking:
-			vehicle_status_code = 2;
+			vehicle_status_code = 3;
 			break;
 		case message::Vehicle_status::eVehicle_fetching:
-			vehicle_status_code = 3;
+			vehicle_status_code = 4;
 			break;
 		case message::Vehicle_status::eVehicle_reserved:
-			vehicle_status_code = 4;
+			vehicle_status_code = 5;
 			break;
 		default:
 			return Error_manager(Error_code::PARAMETER_ERROR, Error_level::MINOR_ERROR,
@@ -742,23 +742,21 @@ Error_manager Parkspace_operating_function::query_vehicle(std::string license, m
 			{
 				switch (tp_result->getInt("vehicleParkState"))
 				{
-				case 0:
+				case 1:
 					vehicle_status = message::Vehicle_status::eVehicle_idle;
 					break;
-				case 1:
+				case 2:
 					vehicle_status = message::Vehicle_status::eVehicle_in_garage;
 					break;
-				case 2:
+				case 3:
 					vehicle_status = message::Vehicle_status::eVehicle_parking;
 					break;
-				case 3:
+				case 4:
 					vehicle_status = message::Vehicle_status::eVehicle_fetching;
 					break;
-				case 4:
+				case 5:
 					vehicle_status = message::Vehicle_status::eVehicle_reserved;
 					break;
-				case 5:
-					vehicle_status = message::Vehicle_status::eVehicle_unknown;
 				default:
 					return Error_manager(Error_code::PARAMETER_ERROR, Error_level::MINOR_ERROR,
 										 "参数错误 Parkspace_operating_function::query_vehicle error ");