瀏覽代碼

20230213, huli add plc wheel base to vehicle

huli 2 年之前
父節點
當前提交
1dbed41ea3

+ 23 - 10
plc调度节点/dispatch/dispatch_command.cpp

@@ -149,16 +149,8 @@ Error_manager Dispatch_command::dispatch_response_to_sql(Error_manager dispatch_
 		{
 			LOG(INFO) << " dispatch_response_to_sql DISPATCH_PROCESS_STORE 存车答复成功 =  "<< t_error << " --- " << this;
 
-			//20230213 huli  add plc car_wheel_base
-			float t_wheelbase = Dispatch_manager::get_instance_references().m_dispatch_plc.m_plc_car_wheel_base;
-			if ( t_wheelbase > 0.1 )
-			{
-				m_dispatch_command_map[m_car_number_optimal].m_measure_info_msg.set_wheelbase(t_wheelbase);
-				m_dispatch_command_map[m_car_number_optimal].m_measure_info = m_dispatch_command_map[m_car_number_optimal].m_measure_info_msg.DebugString();
-			}
-
 			//增加 车辆表, 存车指令 完成后添加车辆信息
-			t_error = insert_vehicle_for_car_number();
+			t_error = insert_vehicle_for_car_number_ex();
 			//更新 指令队列, 根据车牌号 删除指令
 			t_error = delete_command_queue_for_statu();
 			//增加 记录表, 存车指令 完成后添加存车记录
@@ -181,7 +173,7 @@ Error_manager Dispatch_command::dispatch_response_to_sql(Error_manager dispatch_
 		{
 			LOG(INFO) << " dispatch_response_to_sql DISPATCH_PROCESS_REALLOCATE 改道答复成功 =  "<< t_error << " --- " << this;
 			//增加 车辆表, 存车指令 完成后添加车辆信息
-			t_error = insert_vehicle_for_car_number();
+			t_error = insert_vehicle_for_car_number_ex();
 			//更新 指令队列, 根据车牌号 删除指令
 			t_error = delete_command_queue_for_statu();
 			//增加 记录表, 存车指令 完成后添加存车记录
@@ -1032,6 +1024,27 @@ Error_manager Dispatch_command::insert_vehicle_for_car_number()
 	Error_manager ec = Database_controller::get_instance_pointer()->sql_insert(insert_vehicle_sql);
 	return ec;
 }
+//20230213 huli  add plc car_wheel_base
+Error_manager Dispatch_command::insert_vehicle_for_car_number_ex()
+{
+	//20230213 huli  add plc car_wheel_base
+	measure_info t_plc_measure_info_msg = m_dispatch_command_map[m_car_number_optimal].m_measure_info_msg;
+	t_plc_measure_info_msg.set_wheelbase( Dispatch_manager::get_instance_references().m_dispatch_plc.m_plc_car_wheel_base);
+
+	char insert_vehicle_sql[1024];
+	memset(insert_vehicle_sql, 0, 1024);
+	sprintf(insert_vehicle_sql, "INSERT INTO vehicle (car_number,primary_key,actually_measure_info, plc_measure_info, plc_clamp_lidar_deviation_1, plc_clamp_lidar_deviation_2, plc_clamp_lidar_deviation_3, plc_clamp_lidar_deviation_4) values ('%s','%s','%s', '%s', %f, %f, %f, %f)",
+			m_car_number_optimal.c_str(), m_dispatch_command_map[m_car_number_optimal].m_primary_key.c_str(),
+			m_dispatch_command_map[m_car_number_optimal].m_measure_info.c_str() ,
+			t_plc_measure_info_msg.DebugString().c_str(),
+			Dispatch_manager::get_instance_references().m_dispatch_plc.m_plc_clamp_lidar_deviation_1,
+			Dispatch_manager::get_instance_references().m_dispatch_plc.m_plc_clamp_lidar_deviation_2,
+			Dispatch_manager::get_instance_references().m_dispatch_plc.m_plc_clamp_lidar_deviation_3,
+			Dispatch_manager::get_instance_references().m_dispatch_plc.m_plc_clamp_lidar_deviation_4
+			);
+	Error_manager ec = Database_controller::get_instance_pointer()->sql_insert(insert_vehicle_sql);
+	return ec;
+}
 //删除 车辆表, 取车指令 完成后删除车辆信息
 Error_manager Dispatch_command::delete_vehicle_for_car_number()
 {

+ 2 - 0
plc调度节点/dispatch/dispatch_command.h

@@ -156,6 +156,8 @@ protected://member functions
 	Error_manager select_vehicle_for_car_number();
 	//增加 车辆表, 存车指令 完成后添加车辆信息
 	Error_manager insert_vehicle_for_car_number();
+	//20230213 huli  add plc car_wheel_base
+	Error_manager insert_vehicle_for_car_number_ex();
 	//增加 车辆表, 存车指令 完成后添加车辆信息, park_statu停车状态, 0:不存在, 1:存车中, 2:取车中, 3:在楼上存车
 	Error_manager updata_vehicle_for_car_number(int park_statu);
 	//删除 车辆表, 取车指令 完成后删除车辆信息

+ 16 - 4
plc调度节点/dispatch/dispatch_communication.cpp

@@ -110,8 +110,14 @@ Error_manager Dispatch_communication::communication_init(int plc_id)
 	t_index += sizeof(unsigned char)*5;
 	t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_request_car_wheel_base_exact_value", typeid(float).name(), t_index,sizeof(float), 1 });
 	t_index += sizeof(float)*1;
-	t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_reserved217_231", typeid(unsigned char).name(), t_index,sizeof(unsigned char), 25 });
-	t_index += sizeof(unsigned char)*25;
+	t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_request_clamp_lidar_deviation_1", typeid(float).name(), t_index,sizeof(float), 1 });
+	t_index += sizeof(float)*1;
+	t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_request_clamp_lidar_deviation_2", typeid(float).name(), t_index,sizeof(float), 1 });
+	t_index += sizeof(float)*1;
+	t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_request_clamp_lidar_deviation_3", typeid(float).name(), t_index,sizeof(float), 1 });
+	t_index += sizeof(float)*1;
+	t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_request_clamp_lidar_deviation_4", typeid(float).name(), t_index,sizeof(float), 1 });
+	t_index += sizeof(float)*1;
 
 //	t_snap7_buf.init(DISPATCH_REQUEST_FROM_MANAGER_TO_PLC_DBNUMBER_0 +m_plc_id*100, 50, sizeof(Dispatch_request_from_manager_to_plc_for_data), t_variable_information_vector, Snap7_buf::LOOP_COMMUNICATION);
 	t_snap7_buf.init(DISPATCH_REQUEST_FROM_MANAGER_TO_PLC_DBNUMBER_0 , 50, sizeof(Dispatch_request_from_manager_to_plc_for_data), t_variable_information_vector, Snap7_buf::LOOP_COMMUNICATION);
@@ -207,8 +213,14 @@ Error_manager Dispatch_communication::communication_init(int plc_id)
 	t_index += sizeof(unsigned char)*5;
 	t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_request_car_wheel_base_exact_value", typeid(float).name(), t_index,sizeof(float), 1 });
 	t_index += sizeof(float)*1;
-	t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_reserved217_231", typeid(unsigned char).name(), t_index,sizeof(unsigned char), 25 });
-	t_index += sizeof(unsigned char)*25;
+	t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_request_clamp_lidar_deviation_1", typeid(float).name(), t_index,sizeof(float), 1 });
+	t_index += sizeof(float)*1;
+	t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_request_clamp_lidar_deviation_2", typeid(float).name(), t_index,sizeof(float), 1 });
+	t_index += sizeof(float)*1;
+	t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_request_clamp_lidar_deviation_3", typeid(float).name(), t_index,sizeof(float), 1 });
+	t_index += sizeof(float)*1;
+	t_variable_information_vector.push_back(Snap7_buf::Variable_information{"m_request_clamp_lidar_deviation_4", typeid(float).name(), t_index,sizeof(float), 1 });
+	t_index += sizeof(float)*1;
 
 //	t_snap7_buf.init(DISPATCH_RESPONSE_FROM_PLC_TO_MANAGER_DBNUMBER_0 +m_plc_id*100, 0, sizeof(Dispatch_response_from_plc_to_manager), t_variable_information_vector, Snap7_buf::LOOP_COMMUNICATION);
 	t_snap7_buf.init(DISPATCH_RESPONSE_FROM_PLC_TO_MANAGER_DBNUMBER_0 , 0, sizeof(Dispatch_response_from_plc_to_manager), t_variable_information_vector, Snap7_buf::LOOP_COMMUNICATION);

+ 8 - 2
plc调度节点/dispatch/dispatch_communication.h

@@ -350,7 +350,10 @@ public:
 		unsigned char			m_reserved211_215[5] = {0};							//预留
 		//轮距雷达 ..216
 		float  					m_request_car_wheel_base_exact_value = 0;	//汽车前后轮距,轮距雷达的精确值	预留, 楚天暂时不用,单位:米 m
-		unsigned char			m_reserved220_231[12] = {0};				//预留
+		float					m_request_clamp_lidar_deviation_1 = 0;		//jia ce gan lei da pian cha zhi
+		float					m_request_clamp_lidar_deviation_2 = 0;		//jia ce gan lei da pian cha zhi
+		float					m_request_clamp_lidar_deviation_3 = 0;		//jia ce gan lei da pian cha zhi
+		float					m_request_clamp_lidar_deviation_4 = 0;		//jia ce gan lei da pian cha zhi
 
 	};
 //调度管理给plc发送调度指令 的结构体
@@ -411,7 +414,10 @@ public:
 		unsigned char			m_reserved211_215[5] = {0};							//预留
 		//轮距雷达 ..216
 		float  					m_response_car_wheel_base_exact_value = 0;	//汽车前后轮距,轮距雷达的精确值	预留, 楚天暂时不用,单位:米 m
-		unsigned char			m_reserved220_231[12] = {0};				//预留
+		float					m_response_clamp_lidar_deviation_1 = 0;		//jia ce gan lei da pian cha zhi
+		float					m_response_clamp_lidar_deviation_2 = 0;		//jia ce gan lei da pian cha zhi
+		float					m_response_clamp_lidar_deviation_3 = 0;		//jia ce gan lei da pian cha zhi
+		float					m_response_clamp_lidar_deviation_4 = 0;		//jia ce gan lei da pian cha zhi
 
 	};
 

+ 12 - 0
plc调度节点/dispatch/dispatch_plc.cpp

@@ -832,6 +832,10 @@ Error_manager Dispatch_plc::update_dispatch_plc_communication()
 
 	tp_dispatch_request_from_manager_to_plc_for_data->m_request_anticollision_lidar_flag = m_request_anticollision_lidar_flag;
 	tp_dispatch_request_from_manager_to_plc_for_data->m_request_car_wheel_base_exact_value = m_request_car_wheel_base_exact_value;
+	tp_dispatch_request_from_manager_to_plc_for_data->m_request_clamp_lidar_deviation_1 = m_request_clamp_lidar_deviation_1;
+	tp_dispatch_request_from_manager_to_plc_for_data->m_request_clamp_lidar_deviation_2 = m_request_clamp_lidar_deviation_2;
+	tp_dispatch_request_from_manager_to_plc_for_data->m_request_clamp_lidar_deviation_3 = m_request_clamp_lidar_deviation_3;
+	tp_dispatch_request_from_manager_to_plc_for_data->m_request_clamp_lidar_deviation_4 = m_request_clamp_lidar_deviation_4;
 
 
 
@@ -870,6 +874,10 @@ Error_manager Dispatch_plc::update_dispatch_plc_communication()
 
 	m_response_anticollision_lidar_flag = (Common_data::Anticollision_lidar_flag)tp_dispatch_response_from_plc_to_manager->m_response_anticollision_lidar_flag;
 	m_response_car_wheel_base_exact_value = tp_dispatch_response_from_plc_to_manager->m_response_car_wheel_base_exact_value;
+	m_response_clamp_lidar_deviation_1 = tp_dispatch_response_from_plc_to_manager->m_response_clamp_lidar_deviation_1;
+	m_response_clamp_lidar_deviation_2 = tp_dispatch_response_from_plc_to_manager->m_response_clamp_lidar_deviation_2;
+	m_response_clamp_lidar_deviation_3 = tp_dispatch_response_from_plc_to_manager->m_response_clamp_lidar_deviation_3;
+	m_response_clamp_lidar_deviation_4 = tp_dispatch_response_from_plc_to_manager->m_response_clamp_lidar_deviation_4;
 /*
 	std::cout << " huli test :::: " << " ------------------------------------------------------ = " << std::endl;
 	std::cout << " huli test :::: " << " m_response_key = " << m_response_key << std::endl;
@@ -1027,6 +1035,10 @@ Error_manager Dispatch_plc::check_response_from_plc_new()
 	{
 		//20230213 huli  add plc car_wheel_base
 		m_plc_car_wheel_base = m_response_car_wheel_base_exact_value;
+		m_plc_clamp_lidar_deviation_1 = m_response_clamp_lidar_deviation_1;
+		m_plc_clamp_lidar_deviation_2 = m_response_clamp_lidar_deviation_2;
+		m_plc_clamp_lidar_deviation_3 = m_response_clamp_lidar_deviation_3;
+		m_plc_clamp_lidar_deviation_4 = m_response_clamp_lidar_deviation_4;
 
 		//第一次同步时,刷新时间
 		if ( s_update_flag == false )

+ 14 - 0
plc调度节点/dispatch/dispatch_plc.h

@@ -181,6 +181,12 @@ public:
 	Common_data::Anticollision_lidar_flag			m_request_anticollision_lidar_flag ;		//汽车是否停到正确的位置, 防撞雷达	预留, 楚天暂时不用,0=未知,1=位置正常,2=位置异常
 	//轮距雷达
 	float  											m_request_car_wheel_base_exact_value = 0;	//汽车前后轮距,轮距雷达的精确值	预留, 楚天暂时不用,单位:米 m
+	float					m_request_clamp_lidar_deviation_1 = 0;		//jia ce gan lei da pian cha zhi
+	float					m_request_clamp_lidar_deviation_2 = 0;		//jia ce gan lei da pian cha zhi
+	float					m_request_clamp_lidar_deviation_3 = 0;		//jia ce gan lei da pian cha zhi
+	float					m_request_clamp_lidar_deviation_4 = 0;		//jia ce gan lei da pian cha zhi
+
+
 
 
 	//plc给调度管理发送调度答复
@@ -218,6 +224,10 @@ public:
 	Common_data::Anticollision_lidar_flag			m_response_anticollision_lidar_flag ;	//汽车是否停到正确的位置, 防撞雷达	预留, 楚天暂时不用,0=未知,1=位置正常,2=位置异常
 	//轮距雷达
 	float  											m_response_car_wheel_base_exact_value = 0;	//汽车前后轮距,轮距雷达的精确值	预留, 楚天暂时不用,单位:米 m
+	float					m_response_clamp_lidar_deviation_1 = 0;		//jia ce gan lei da pian cha zhi
+	float					m_response_clamp_lidar_deviation_2 = 0;		//jia ce gan lei da pian cha zhi
+	float					m_response_clamp_lidar_deviation_3 = 0;		//jia ce gan lei da pian cha zhi
+	float					m_response_clamp_lidar_deviation_4 = 0;		//jia ce gan lei da pian cha zhi
 
 
 	//dispatch状态
@@ -254,6 +264,10 @@ public:
 
 	//20230213 huli  add plc car_wheel_base
 	float 		m_plc_car_wheel_base;
+	float 		m_plc_clamp_lidar_deviation_1;
+	float 		m_plc_clamp_lidar_deviation_2;
+	float 		m_plc_clamp_lidar_deviation_3;
+	float 		m_plc_clamp_lidar_deviation_4;
 
 
 private:

二進制
plc调度节点/楚天调度plc与上位接口表20221102.xlsx