소스 검색

20210407, 调度测试

huli 4 년 전
부모
커밋
8500c39bc3

+ 4 - 1
communication/communication_message.h

@@ -88,8 +88,11 @@ public:
 		eMeasurer=0x0300,
 		//测量单元
 		eMeasurer_sift_server=0x0301,
+
+		//调度机构
+		eDispatch_mamager=0x0400,
 		//调度机构
-		eDispatch=0x0400,
+		eDispatch_control=0x0401,
 		//...
 
 	};

+ 49 - 1
dispatch/carrier.cpp

@@ -156,12 +156,21 @@ Error_manager Carrier::update_device_communication()
 	//状态消息, plc->调度
 	Dispatch_communication::Carrier_status_from_plc_to_dispatch *tp_carrier_status_from_plc_to_dispatch =
 	& Dispatch_communication::get_instance_references().m_carrier_status_from_plc_to_dispatch[m_device_id];
+
+	//	int heartbeat = tp_carrier_status_from_plc_to_dispatch->m_heartbeat;
+	//	std::cout << " huli test :::: " << " heartbeat = " << heartbeat << std::endl;
+
 	//通过心跳帧来判断通信是否正常
 	if ( m_last_heartbeat != tp_carrier_status_from_plc_to_dispatch->m_heartbeat )
 	{
 		m_last_heartbeat = tp_carrier_status_from_plc_to_dispatch->m_heartbeat;
 		m_status_updata_time = std::chrono::system_clock::now();
 
+//		int safe_status = tp_carrier_status_from_plc_to_dispatch->m_safe_status;
+//		std::cout << " huli test :::: " << " m_safe_status = " << safe_status << std::endl;
+//		int work_status = tp_carrier_status_from_plc_to_dispatch->m_work_status;
+//		std::cout << " huli test :::: " << " m_work_status = " << work_status << std::endl;
+
 		//设备异常  //注注注注注注注注意了, ==的优先级比&要高.
 		if ( (tp_carrier_status_from_plc_to_dispatch->m_safe_status & 0x02) == 0 )
 		{
@@ -234,7 +243,18 @@ Error_manager Carrier::update_device_communication()
 //从内存中读数据到任务单, 子类必须重载
 Error_manager Carrier::check_and_read_memory_to_task(std::shared_ptr<Task_Base> p_task)
 {
-	Dispatch_communication::get_instance_references().communication_start();
+
+
+	std::cout << " huli test :::: " << " ((((((((((((((((((((((((((333333333333333333 = " << 333 << std::endl;
+	std::cout << " huli test :::: " << " m_request_key = " << m_request_key << std::endl;
+	std::cout << " huli test :::: " << " m_respons_key = " << m_respons_key << std::endl;
+	std::cout << " huli test :::: " << " m_respons_status = " << m_respons_status << std::endl;
+	std::cout << " huli test :::: " << " )))))))))))))))))))))))))))))))4444444444444 = " << 444 << std::endl;
+
+
+
+
+		Dispatch_communication::get_instance_references().communication_start();
 
 	//检查任务类型,
 	if (p_task->get_task_type() != Task_Base::Task_type::CARRIER_TASK)
@@ -272,6 +292,34 @@ Error_manager Carrier::check_and_read_memory_to_task(std::shared_ptr<Task_Base>
 				tp_carrier_task->set_task_error_manager(t_error);
 			}
 
+			std::cout << " huli test :::: " << "  {{{{{{{{{{{{{{{{{{{{{   33333333333333333333333333333333333333333 }}}}}}}}}}}}}}}}}}}}}}}}}}= " << 333 << std::endl;
+			std::cout << " huli test :::: " << " m_request_key = " << m_request_key << std::endl;
+			std::cout << " huli test :::: " << " m_request_x = " << m_request_x << std::endl;
+			std::cout << " huli test :::: " << " m_request_y = " << m_request_y << std::endl;
+			std::cout << " huli test :::: " << " m_request_z = " << m_request_z << std::endl;
+			std::cout << " huli test :::: " << " m_request_clamp_motion = " << m_request_clamp_motion << std::endl;
+			std::cout << " huli test :::: " << " m_request_wheelbase = " << m_request_wheelbase << std::endl;
+			std::cout << " huli test :::: " << " m_request_y1 = " << m_request_y1 << std::endl;
+			std::cout << " huli test :::: " << " m_request_y2 = " << m_request_y2 << std::endl;
+
+			std::cout << " huli test :::: " << " m_respons_key = " << m_respons_key << std::endl;
+			std::cout << " huli test :::: " << " m_respons_status = " << m_respons_status << std::endl;
+			std::cout << " huli test :::: " << " m_respons_x = " << m_respons_x << std::endl;
+			std::cout << " huli test :::: " << " m_respons_y = " << m_respons_y << std::endl;
+			std::cout << " huli test :::: " << " m_respons_z = " << m_respons_z << std::endl;
+			std::cout << " huli test :::: " << " m_respons_clamp_motion = " << m_respons_clamp_motion << std::endl;
+			std::cout << " huli test :::: " << " m_respons_wheelbase = " << m_respons_wheelbase << std::endl;
+			std::cout << " huli test :::: " << " m_respons_y1 = " << m_respons_y1 << std::endl;
+			std::cout << " huli test :::: " << " m_respons_y2 = " << m_respons_y2 << std::endl;
+
+			std::cout << " huli test :::: " << " m_actual_x = " << m_actual_x << std::endl;
+			std::cout << " huli test :::: " << " m_actual_y = " << m_actual_y << std::endl;
+			std::cout << " huli test :::: " << " m_actual_z = " << m_actual_z << std::endl;
+			std::cout << " huli test :::: " << " m_actual_y1 = " << m_actual_y1 << std::endl;
+			std::cout << " huli test :::: " << " m_actual_y2 = " << m_actual_y2 << std::endl;
+			std::cout << " huli test :::: " << " m_actual_clamp_motion1 = " << m_actual_clamp_motion1 << std::endl;
+			std::cout << " huli test :::: " << "  {{{{{{{{{{{{{{{{{{{{{{{{{{{{  44444444444444444444444444444444444444444 }}}}}}}}}}}}}}}}}}}}}}}}= " << 444 << std::endl;
+
 			return Error_code::SUCCESS;
 		}
 			//返回没有收到数据

+ 52 - 0
dispatch/catcher.cpp

@@ -146,12 +146,21 @@ Error_manager Catcher::update_device_communication()
 	//状态消息, plc->调度
 	Dispatch_communication::Catcher_status_from_plc_to_dispatch *tp_catcher_status_from_plc_to_dispatch =
 	& Dispatch_communication::get_instance_references().m_catcher_status_from_plc_to_dispatch[m_device_id];
+
+//	int heartbeat = tp_catcher_status_from_plc_to_dispatch->m_heartbeat;
+//	std::cout << " huli test :::: " << " heartbeat = " << heartbeat << std::endl;
+
 	//通过心跳帧来判断通信是否正常
 	if ( m_last_heartbeat != tp_catcher_status_from_plc_to_dispatch->m_heartbeat )
 	{
 		m_last_heartbeat = tp_catcher_status_from_plc_to_dispatch->m_heartbeat;
 		m_status_updata_time = std::chrono::system_clock::now();
 
+//		int safe_status = tp_catcher_status_from_plc_to_dispatch->m_safe_status;
+//		std::cout << " huli test :::: " << " m_safe_status = " << safe_status << std::endl;
+//		int work_status = tp_catcher_status_from_plc_to_dispatch->m_work_status;
+//		std::cout << " huli test :::: " << " m_work_status = " << work_status << std::endl;
+
 		//设备异常  //注注注注注注注注意了, ==的优先级比&要高.
 		if ( (tp_catcher_status_from_plc_to_dispatch->m_safe_status & 0x02) == 0 )
 		{
@@ -241,6 +250,15 @@ Error_manager Catcher::update_device_communication()
 //从内存中读数据到任务单, 子类必须重载
 Error_manager Catcher::check_and_read_memory_to_task(std::shared_ptr<Task_Base> p_task)
 {
+
+	std::cout << " huli test :::: " << " ((((((((((((((((((((((((((1111111111111 = " << 111 << std::endl;
+	std::cout << " huli test :::: " << " m_request_key = " << m_request_key << std::endl;
+	std::cout << " huli test :::: " << " m_respons_key = " << m_respons_key << std::endl;
+	std::cout << " huli test :::: " << " m_respons_status = " << m_respons_status << std::endl;
+	std::cout << " huli test :::: " << " ))))))))))))))))))))))))))))2222222222 = " << 222 << std::endl;
+
+
+
 	Dispatch_communication::get_instance_references().communication_start();
 
 	//检查任务类型,
@@ -252,6 +270,7 @@ Error_manager Catcher::check_and_read_memory_to_task(std::shared_ptr<Task_Base>
 	else
 	{
 		std::unique_lock<std::mutex> t_lock(m_lock);
+
 		if ( m_respons_key == m_request_key && m_respons_status != RESPONS_WORKING )
 		{
 			Catcher_task* tp_catcher_task = (Catcher_task*)p_task.get();
@@ -277,6 +296,39 @@ Error_manager Catcher::check_and_read_memory_to_task(std::shared_ptr<Task_Base>
 				tp_catcher_task->set_task_error_manager(t_error);
 			}
 
+			std::cout << " huli test :::: " << " [[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[     111111111111111111111111    ]]]]]]]]]]]]]]]]]]]]]]]]]]]] = " << 111 << std::endl;
+			std::cout << " huli test :::: " << " m_request_key = " << m_request_key << std::endl;
+			std::cout << " huli test :::: " << " m_request_x = " << m_request_x << std::endl;
+			std::cout << " huli test :::: " << " m_request_y = " << m_request_y << std::endl;
+			std::cout << " huli test :::: " << " m_request_b = " << m_request_b << std::endl;
+			std::cout << " huli test :::: " << " m_request_z = " << m_request_z << std::endl;
+			std::cout << " huli test :::: " << " m_request_clamp_motion = " << m_request_clamp_motion << std::endl;
+			std::cout << " huli test :::: " << " m_request_wheelbase = " << m_request_wheelbase << std::endl;
+			std::cout << " huli test :::: " << " m_request_d1 = " << m_request_d1 << std::endl;
+			std::cout << " huli test :::: " << " m_request_d2 = " << m_request_d2 << std::endl;
+
+			std::cout << " huli test :::: " << " m_respons_key = " << m_respons_key << std::endl;
+			std::cout << " huli test :::: " << " m_respons_status = " << m_respons_status << std::endl;
+			std::cout << " huli test :::: " << " m_respons_x = " << m_respons_x << std::endl;
+			std::cout << " huli test :::: " << " m_respons_y = " << m_respons_y << std::endl;
+			std::cout << " huli test :::: " << " m_respons_b = " << m_respons_b << std::endl;
+			std::cout << " huli test :::: " << " m_respons_z = " << m_respons_z << std::endl;
+			std::cout << " huli test :::: " << " m_respons_clamp_motion = " << m_respons_clamp_motion << std::endl;
+			std::cout << " huli test :::: " << " m_respons_wheelbase = " << m_respons_wheelbase << std::endl;
+			std::cout << " huli test :::: " << " m_respons_d1 = " << m_respons_d1 << std::endl;
+			std::cout << " huli test :::: " << " m_respons_d2 = " << m_respons_d2 << std::endl;
+
+			std::cout << " huli test :::: " << " m_actual_x = " << m_actual_x << std::endl;
+			std::cout << " huli test :::: " << " m_actual_y = " << m_actual_y << std::endl;
+			std::cout << " huli test :::: " << " m_actual_b = " << m_actual_b << std::endl;
+			std::cout << " huli test :::: " << " m_actual_z = " << m_actual_z << std::endl;
+			std::cout << " huli test :::: " << " m_actual_d1 = " << m_actual_d1 << std::endl;
+			std::cout << " huli test :::: " << " m_actual_d2 = " << m_actual_d2 << std::endl;
+			std::cout << " huli test :::: " << " m_actual_clamp_motion1 = " << m_actual_clamp_motion1 << std::endl;
+
+			std::cout << " huli test :::: " << " [[[[[[[[[[[[[[[[[[[[[[[[[[[[   2222222222222222222222222222222222222222  ]]]]]]]]]]]]]]]]]]]]]]]]]]] = " << 222 << std::endl;
+
+
 			return Error_code::SUCCESS;
 		}
 		//返回没有收到数据

+ 13 - 12
dispatch/dispatch_communication.cpp

@@ -196,9 +196,9 @@ Error_manager Dispatch_communication::communication_init()
 
 	t_snap7_buf.init(CARRIER_REQUEST_FROM_DISPATCH_TO_PLC_DBNUMBER_1, 50, sizeof(Carrier_request_from_dispatch_to_plc_for_data), t_variable_information_vector, Snap7_buf::LOOP_COMMUNICATION);
 	m_send_buf_map[4] = t_snap7_buf;
-	t_snap7_buf.init(CARRIER_REQUEST_FROM_DISPATCH_TO_PLC_DBNUMBER_2, 50, sizeof(Carrier_request_from_dispatch_to_plc_for_data), t_variable_information_vector, Snap7_buf::NO_COMMUNICATION);
+	t_snap7_buf.init(CARRIER_REQUEST_FROM_DISPATCH_TO_PLC_DBNUMBER_2, 50, sizeof(Carrier_request_from_dispatch_to_plc_for_data), t_variable_information_vector, Snap7_buf::LOOP_COMMUNICATION);
 	m_send_buf_map[5] = t_snap7_buf;
-	t_snap7_buf.init(CARRIER_REQUEST_FROM_DISPATCH_TO_PLC_DBNUMBER_3, 50, sizeof(Carrier_request_from_dispatch_to_plc_for_data), t_variable_information_vector, Snap7_buf::NO_COMMUNICATION);
+	t_snap7_buf.init(CARRIER_REQUEST_FROM_DISPATCH_TO_PLC_DBNUMBER_3, 50, sizeof(Carrier_request_from_dispatch_to_plc_for_data), t_variable_information_vector, Snap7_buf::LOOP_COMMUNICATION);
 	m_send_buf_map[6] = t_snap7_buf;
 
 
@@ -210,9 +210,9 @@ Error_manager Dispatch_communication::communication_init()
 
 	t_snap7_buf.init(CARRIER_REQUEST_FROM_DISPATCH_TO_PLC_DBNUMBER_1, 0, sizeof(Carrier_request_from_dispatch_to_plc_for_key), t_variable_information_vector, Snap7_buf::LOOP_COMMUNICATION);
 	m_send_buf_map[7] = t_snap7_buf;
-	t_snap7_buf.init(CARRIER_REQUEST_FROM_DISPATCH_TO_PLC_DBNUMBER_2, 0, sizeof(Carrier_request_from_dispatch_to_plc_for_key), t_variable_information_vector, Snap7_buf::NO_COMMUNICATION);
+	t_snap7_buf.init(CARRIER_REQUEST_FROM_DISPATCH_TO_PLC_DBNUMBER_2, 0, sizeof(Carrier_request_from_dispatch_to_plc_for_key), t_variable_information_vector, Snap7_buf::LOOP_COMMUNICATION);
 	m_send_buf_map[8] = t_snap7_buf;
-	t_snap7_buf.init(CARRIER_REQUEST_FROM_DISPATCH_TO_PLC_DBNUMBER_3, 0, sizeof(Carrier_request_from_dispatch_to_plc_for_key), t_variable_information_vector, Snap7_buf::NO_COMMUNICATION);
+	t_snap7_buf.init(CARRIER_REQUEST_FROM_DISPATCH_TO_PLC_DBNUMBER_3, 0, sizeof(Carrier_request_from_dispatch_to_plc_for_key), t_variable_information_vector, Snap7_buf::LOOP_COMMUNICATION);
 	m_send_buf_map[9] = t_snap7_buf;
 
 
@@ -254,9 +254,9 @@ Error_manager Dispatch_communication::communication_init()
 
 	t_snap7_buf.init(CARRIER_RESPONSE_FROM_PLC_TO_DISPATCH_DBNUMBER_1, 0, sizeof(Carrier_response_from_plc_to_dispatch), t_variable_information_vector, Snap7_buf::LOOP_COMMUNICATION);
 	m_receive_buf_map[4] = t_snap7_buf;
-	t_snap7_buf.init(CARRIER_RESPONSE_FROM_PLC_TO_DISPATCH_DBNUMBER_2, 0, sizeof(Carrier_response_from_plc_to_dispatch), t_variable_information_vector, Snap7_buf::NO_COMMUNICATION);
+	t_snap7_buf.init(CARRIER_RESPONSE_FROM_PLC_TO_DISPATCH_DBNUMBER_2, 0, sizeof(Carrier_response_from_plc_to_dispatch), t_variable_information_vector, Snap7_buf::LOOP_COMMUNICATION);
 	m_receive_buf_map[5] = t_snap7_buf;
-	t_snap7_buf.init(CARRIER_RESPONSE_FROM_PLC_TO_DISPATCH_DBNUMBER_3, 0, sizeof(Carrier_response_from_plc_to_dispatch), t_variable_information_vector, Snap7_buf::NO_COMMUNICATION);
+	t_snap7_buf.init(CARRIER_RESPONSE_FROM_PLC_TO_DISPATCH_DBNUMBER_3, 0, sizeof(Carrier_response_from_plc_to_dispatch), t_variable_information_vector, Snap7_buf::LOOP_COMMUNICATION);
 	m_receive_buf_map[6] = t_snap7_buf;
 
 
@@ -305,9 +305,9 @@ Error_manager Dispatch_communication::communication_init()
 
 	t_snap7_buf.init(CARRIER_STATUS_FROM_PLC_TO_DISPATCH_DBNUMBER_1, 0, sizeof(Carrier_status_from_plc_to_dispatch), t_variable_information_vector, Snap7_buf::LOOP_COMMUNICATION);
 	m_receive_buf_map[7] = t_snap7_buf;
-	t_snap7_buf.init(CARRIER_STATUS_FROM_PLC_TO_DISPATCH_DBNUMBER_2, 0, sizeof(Carrier_status_from_plc_to_dispatch), t_variable_information_vector, Snap7_buf::NO_COMMUNICATION);
+	t_snap7_buf.init(CARRIER_STATUS_FROM_PLC_TO_DISPATCH_DBNUMBER_2, 0, sizeof(Carrier_status_from_plc_to_dispatch), t_variable_information_vector, Snap7_buf::LOOP_COMMUNICATION);
 	m_receive_buf_map[8] = t_snap7_buf;
-	t_snap7_buf.init(CARRIER_STATUS_FROM_PLC_TO_DISPATCH_DBNUMBER_2, 0, sizeof(Carrier_status_from_plc_to_dispatch), t_variable_information_vector, Snap7_buf::NO_COMMUNICATION);
+	t_snap7_buf.init(CARRIER_STATUS_FROM_PLC_TO_DISPATCH_DBNUMBER_3, 0, sizeof(Carrier_status_from_plc_to_dispatch), t_variable_information_vector, Snap7_buf::LOOP_COMMUNICATION);
 	m_receive_buf_map[9] = t_snap7_buf;
 
 
@@ -332,7 +332,7 @@ Error_manager Dispatch_communication::communication_init()
 
 	t_snap7_buf.init(PASSAGEWAY_REQUEST_FROM_DISPATCH_TO_PLC_DBNUMBER_0, 50, sizeof(Passageway_request_from_dispatch_to_plc_for_data), t_variable_information_vector, Snap7_buf::NO_COMMUNICATION);
 	m_send_buf_map[10] = t_snap7_buf;
-	t_snap7_buf.init(PASSAGEWAY_REQUEST_FROM_DISPATCH_TO_PLC_DBNUMBER_1, 50, sizeof(Passageway_request_from_dispatch_to_plc_for_data), t_variable_information_vector, Snap7_buf::LOOP_COMMUNICATION);
+	t_snap7_buf.init(PASSAGEWAY_REQUEST_FROM_DISPATCH_TO_PLC_DBNUMBER_1, 50, sizeof(Passageway_request_from_dispatch_to_plc_for_data), t_variable_information_vector, Snap7_buf::NO_COMMUNICATION);
 	m_send_buf_map[11] = t_snap7_buf;
 	t_snap7_buf.init(PASSAGEWAY_REQUEST_FROM_DISPATCH_TO_PLC_DBNUMBER_2, 50, sizeof(Passageway_request_from_dispatch_to_plc_for_data), t_variable_information_vector, Snap7_buf::NO_COMMUNICATION);
 	m_send_buf_map[12] = t_snap7_buf;
@@ -356,7 +356,7 @@ Error_manager Dispatch_communication::communication_init()
 
 	t_snap7_buf.init(PASSAGEWAY_REQUEST_FROM_DISPATCH_TO_PLC_DBNUMBER_0, 0, sizeof(Passageway_request_from_dispatch_to_plc_for_key), t_variable_information_vector, Snap7_buf::NO_COMMUNICATION);
 	m_send_buf_map[18] = t_snap7_buf;
-	t_snap7_buf.init(PASSAGEWAY_REQUEST_FROM_DISPATCH_TO_PLC_DBNUMBER_1, 0, sizeof(Passageway_request_from_dispatch_to_plc_for_key), t_variable_information_vector, Snap7_buf::LOOP_COMMUNICATION);
+	t_snap7_buf.init(PASSAGEWAY_REQUEST_FROM_DISPATCH_TO_PLC_DBNUMBER_1, 0, sizeof(Passageway_request_from_dispatch_to_plc_for_key), t_variable_information_vector, Snap7_buf::NO_COMMUNICATION);
 	m_send_buf_map[19] = t_snap7_buf;
 	t_snap7_buf.init(PASSAGEWAY_REQUEST_FROM_DISPATCH_TO_PLC_DBNUMBER_2, 0, sizeof(Passageway_request_from_dispatch_to_plc_for_key), t_variable_information_vector, Snap7_buf::NO_COMMUNICATION);
 	m_send_buf_map[20] = t_snap7_buf;
@@ -391,7 +391,7 @@ Error_manager Dispatch_communication::communication_init()
 
 	t_snap7_buf.init(PASSAGEWAY_RESPONSE_FROM_PLC_TO_DISPATCH_DBNUMBER_0, 0, sizeof(Passageway_response_from_plc_to_dispatch), t_variable_information_vector, Snap7_buf::NO_COMMUNICATION);
 	m_receive_buf_map[10] = t_snap7_buf;
-	t_snap7_buf.init(PASSAGEWAY_RESPONSE_FROM_PLC_TO_DISPATCH_DBNUMBER_1, 0, sizeof(Passageway_response_from_plc_to_dispatch), t_variable_information_vector, Snap7_buf::LOOP_COMMUNICATION);
+	t_snap7_buf.init(PASSAGEWAY_RESPONSE_FROM_PLC_TO_DISPATCH_DBNUMBER_1, 0, sizeof(Passageway_response_from_plc_to_dispatch), t_variable_information_vector, Snap7_buf::NO_COMMUNICATION);
 	m_receive_buf_map[11] = t_snap7_buf;
 	t_snap7_buf.init(PASSAGEWAY_RESPONSE_FROM_PLC_TO_DISPATCH_DBNUMBER_2, 0, sizeof(Passageway_response_from_plc_to_dispatch), t_variable_information_vector, Snap7_buf::NO_COMMUNICATION);
 	m_receive_buf_map[12] = t_snap7_buf;
@@ -433,7 +433,7 @@ Error_manager Dispatch_communication::communication_init()
 
 	t_snap7_buf.init(PASSAGEWAY_STATUS_FROM_PLC_TO_DISPATCH_DBNUMBER_0, 0, sizeof(Passageway_status_from_plc_to_dispatch), t_variable_information_vector, Snap7_buf::NO_COMMUNICATION);
 	m_receive_buf_map[18] = t_snap7_buf;
-	t_snap7_buf.init(PASSAGEWAY_STATUS_FROM_PLC_TO_DISPATCH_DBNUMBER_1, 0, sizeof(Passageway_status_from_plc_to_dispatch), t_variable_information_vector, Snap7_buf::LOOP_COMMUNICATION);
+	t_snap7_buf.init(PASSAGEWAY_STATUS_FROM_PLC_TO_DISPATCH_DBNUMBER_1, 0, sizeof(Passageway_status_from_plc_to_dispatch), t_variable_information_vector, Snap7_buf::NO_COMMUNICATION);
 	m_receive_buf_map[19] = t_snap7_buf;
 	t_snap7_buf.init(PASSAGEWAY_STATUS_FROM_PLC_TO_DISPATCH_DBNUMBER_2, 0, sizeof(Passageway_status_from_plc_to_dispatch), t_variable_information_vector, Snap7_buf::NO_COMMUNICATION);
 	m_receive_buf_map[20] = t_snap7_buf;
@@ -473,6 +473,7 @@ Error_manager Dispatch_communication::updata_receive_buf()
 	memcpy(&m_catcher_status_from_plc_to_dispatch[0], m_receive_buf_map[2].mp_buf_obverse, m_receive_buf_map[2].m_size);
 	memcpy(&m_catcher_status_from_plc_to_dispatch[1], m_receive_buf_map[3].mp_buf_obverse, m_receive_buf_map[3].m_size);
 
+	
 	memcpy(&m_carrier_response_from_plc_to_dispatch[0], m_receive_buf_map[4].mp_buf_obverse, m_receive_buf_map[4].m_size);
 	memcpy(&m_carrier_response_from_plc_to_dispatch[1], m_receive_buf_map[5].mp_buf_obverse, m_receive_buf_map[5].m_size);
 	memcpy(&m_carrier_response_from_plc_to_dispatch[2], m_receive_buf_map[6].mp_buf_obverse, m_receive_buf_map[6].m_size);

+ 1 - 1
dispatch/dispatch_coordinates.cpp

@@ -9,8 +9,8 @@
 Dispatch_coordinates::Dispatch_coordinates()
 {
 
-}
 
+}
 Dispatch_coordinates::~Dispatch_coordinates()
 {
 

+ 1 - 1
dispatch/dispatch_coordinates.h

@@ -87,7 +87,7 @@ public://member variable
 	float									m_carrier_default_y_back;		//小跑车的默认y, 回到中跑车 3000mm
 	float									m_carrier_default_y_leave;		//小跑车的默认y, 离开中跑车 9000mm
 
-	float									m_carrier_default_x_left;		//中跑车的默认x, 左侧电梯井 0mm
+	float									m_carrier_default_x_left;		//中跑车的默认x, 左侧电梯井 1mm
 	float									m_carrier_default_x_right;		//中跑车的默认x, 左侧电梯井 32600mm
 
 private:

+ 14 - 3
dispatch/dispatch_device_base.cpp

@@ -61,6 +61,8 @@ Error_manager Dispatch_device_base::execute_task(std::shared_ptr<Task_Base> p_ta
 							 "Dispatch_device_base::execute_task failed, POINTER_IS_NULL");
 	}
 	//检查任务类型,
+
+
 	t_error = check_task_type(p_task);
 	if ( t_error != Error_code::SUCCESS )
 	{
@@ -115,7 +117,7 @@ Error_manager Dispatch_device_base::check_task_type(std::shared_ptr<Task_Base> p
 //判断能否执行任务
 Error_manager Dispatch_device_base::check_task_level(Dispatch_task_level dispatch_task_level)
 {
-	std::cout << " huli test :::: " << " m_dispatch_device_status = " << m_dispatch_device_status << std::endl;
+//	std::cout << " huli test :::: " << " m_dispatch_device_status = " << m_dispatch_device_status << std::endl;
 	//加锁
 	std::unique_lock<std::mutex> t_lock(m_lock);
 	//只有当状态 不是正在执行当前等级的任务,并且当前等级的任务为空. 此时返回成功, 才能接受新的任务
@@ -382,11 +384,14 @@ void Dispatch_device_base::execute_thread_fun()
 		if ( m_execute_condition.is_alive() )
 		{
 			std::this_thread::sleep_for(std::chrono::microseconds(1));
-			std::this_thread::sleep_for(std::chrono::seconds(1));
+			std::this_thread::sleep_for(std::chrono::milliseconds(1));
+//			std::this_thread::sleep_for(std::chrono::seconds(1));
 
 			std::this_thread::yield();
 
-			std::cout << " huli test :::: " << "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa m_dispatch_device_status = " << m_dispatch_device_status << std::endl;
+//			std::cout << " huli test :::: " << " m_device_id = " << m_device_id << std::endl;
+//			std::cout << " huli test :::: " << "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa m_dispatch_device_status = " << m_dispatch_device_status << std::endl;
+
 			switch ( (Dispatch_device_status)m_dispatch_device_status )
 			{
 				//核心任务, (三级任务)
@@ -534,6 +539,12 @@ void Dispatch_device_base::execute_thread_fun()
 						//从内存中读数据到任务单
 						t_error = check_and_read_memory_to_task(mp_device_one_level_task);
 
+//						std::cout << " huli test :::: " << " 1111111111111111111111111111111111111111 = " << 111 << std::endl;
+//						std::cout << " huli test :::: " << " 12312312313131 = " << 123 << std::endl;
+//						std::cout << " huli test :::: " << " t_error = " << t_error.to_string() << std::endl;
+//						std::cout << " huli test :::: " << " 2222222222222222222222222222222222222222 = " << 222 << std::endl;
+
+
 						if ( t_error == NODATA )
 						{
 							//设备正常运行

+ 50 - 13
dispatch/dispatch_manager.cpp

@@ -29,10 +29,12 @@ Dispatch_manager::~Dispatch_manager()
 //调度管理 初始化
 Error_manager Dispatch_manager::dispatch_manager_init(int dispatch_id)
 {
+	LOG(INFO) << " ----Dispatch_manager::dispatch_manager_init----- "<< this;
+
 	m_dispatch_id = dispatch_id;
 
 	m_catcher_size = 2;
-	for (int i = 0; i < m_catcher_size; ++i)
+	for (int i = 1; i < m_catcher_size; ++i)
 	{
 		std::shared_ptr<Dispatch_device_base> tp_dispatch_device_base(new Catcher);
 		Catcher* tp_catcher = (Catcher*)tp_dispatch_device_base.get();
@@ -49,14 +51,14 @@ Error_manager Dispatch_manager::dispatch_manager_init(int dispatch_id)
 		m_carrier_map[i] = tp_dispatch_device_base;
 	}
 
-	m_passageway_size = 8;
-	for (int i = 0; i < m_passageway_size; ++i)
-	{
-		std::shared_ptr<Dispatch_device_base> tp_dispatch_device_base(new Passageway);
-		Passageway* tp_passageway = (Passageway*)tp_dispatch_device_base.get();
-		tp_passageway->dispatch_device_base_init(i);
-		m_passageway_map[i] = tp_dispatch_device_base;
-	}
+//	m_passageway_size = 8;
+//	for (int i = 0; i < m_passageway_size; ++i)
+//	{
+//		std::shared_ptr<Dispatch_device_base> tp_dispatch_device_base(new Passageway);
+//		Passageway* tp_passageway = (Passageway*)tp_dispatch_device_base.get();
+//		tp_passageway->dispatch_device_base_init(i);
+//		m_passageway_map[i] = tp_dispatch_device_base;
+//	}
 
 	//创建线程池
 	if (m_process_thread_queue == nullptr) {
@@ -175,7 +177,7 @@ Error_manager Dispatch_manager::check_execute_msg(Communication_message* p_msg)
 				message::Dispatch_response_msg t_dispatch_response_msg;
 				t_dispatch_response_msg.mutable_base_info()->set_msg_type(message::Message_type::eDispatch_response_msg);
 				t_dispatch_response_msg.mutable_base_info()->set_timeout_ms(5000);
-				t_dispatch_response_msg.mutable_base_info()->set_sender(message::Communicator::eDispatch_mamager);
+				t_dispatch_response_msg.mutable_base_info()->set_sender(message::Communicator::eDispatch_manager);
 				t_dispatch_response_msg.mutable_base_info()->set_receiver(message::Communicator::eMain);
 
 				t_dispatch_response_msg.set_command_key(t_dispatch_request_msg.command_key());
@@ -244,6 +246,9 @@ Error_manager Dispatch_manager::execute_for_dispatch_request_msg(message::Dispat
 		return t_error;
 	}
 
+	LOG(INFO) << " ---Dispatch_manager::execute_for_dispatch_request_msg--- "<< this;
+	LOG(INFO) << " tp_dispatch_process->m_command_key =  "<<tp_dispatch_process->m_command_key<< "   "<< this;
+
 	//流程缓存到map
 	if ( tp_dispatch_process->m_dispatch_process_type == Dispatch_process::Dispatch_process_type::DISPATCH_PROCESS_STORE )
 	{
@@ -267,6 +272,9 @@ Error_manager Dispatch_manager::execute_for_dispatch_request_msg(message::Dispat
 //调度模块 //调度总规划的答复(调度算法->调度管理)
 Error_manager Dispatch_manager::execute_for_dispatch_plan_response_msg(message::Dispatch_plan_response_msg &dispatch_plan_response_msg)
 {
+	LOG(INFO) << " ---Dispatch_manager::execute_for_dispatch_plan_response_msg--- "<< this;
+	LOG(INFO) << " dispatch_plan_response_msg->m_command_key =  "<<dispatch_plan_response_msg.command_key()<< "   "<< this;
+
 	Error_manager t_error;
 	//使用 command_key 找到对应的流程
 	std::string t_command_key = dispatch_plan_response_msg.command_key();
@@ -280,6 +288,7 @@ Error_manager Dispatch_manager::execute_for_dispatch_plan_response_msg(message::
 				return t_error;
 			}
 			//把消息 写入流程
+			std::unique_lock<std::mutex> t_lock(iter->second->m_lock);
 			iter->second->m_dispatch_plan_response_msg = dispatch_plan_response_msg;
 			return Error_code::SUCCESS;
 		}
@@ -294,6 +303,7 @@ Error_manager Dispatch_manager::execute_for_dispatch_plan_response_msg(message::
 				return t_error;
 			}
 			//把消息 写入流程
+			std::unique_lock<std::mutex> t_lock(iter->second->m_lock);
 			iter->second->m_dispatch_plan_response_msg = dispatch_plan_response_msg;
 			return Error_code::SUCCESS;
 		}
@@ -303,6 +313,9 @@ Error_manager Dispatch_manager::execute_for_dispatch_plan_response_msg(message::
 //调度模块 //调度控制的任务请求(调度算法->调度管理)
 Error_manager Dispatch_manager::execute_for_dispatch_control_request_msg(message::Dispatch_control_request_msg &dispatch_control_request_msg)
 {
+//	LOG(INFO) << " ---Dispatch_manager::execute_for_dispatch_control_request_msg--- "<< this;
+//	LOG(INFO) << " dispatch_control_request_msg->m_command_key =  "<<dispatch_control_request_msg.command_key()<< "   "<< this;
+
 	Error_manager t_error;
 	//使用 command_key 找到对应的流程
 	std::string t_command_key = dispatch_control_request_msg.command_key();
@@ -316,7 +329,20 @@ Error_manager Dispatch_manager::execute_for_dispatch_control_request_msg(message
 				return t_error;
 			}
 			//把消息 写入流程
-			iter->second->m_dispatch_control_request_msg = dispatch_control_request_msg;
+			std::unique_lock<std::mutex> t_lock(iter->second->m_lock);
+			if ( dispatch_control_request_msg.dispatch_device_type() == message::Dispatch_device_type::ROBOT_1 ||
+			dispatch_control_request_msg.dispatch_device_type() == message::Dispatch_device_type::ROBOT_2 )
+			{
+				iter->second->m_dispatch_control_request_msg_catcher = dispatch_control_request_msg;
+			}
+			else if ( dispatch_control_request_msg.dispatch_device_type() == message::Dispatch_device_type::CARRIER_1 ||
+					  dispatch_control_request_msg.dispatch_device_type() == message::Dispatch_device_type::CARRIER_2 ||
+					  dispatch_control_request_msg.dispatch_device_type() == message::Dispatch_device_type::CARRIER_3 )
+			{
+				iter->second->m_dispatch_control_request_msg_carrier = dispatch_control_request_msg;
+
+			}
+			//else
 			return Error_code::SUCCESS;
 		}
 	}
@@ -330,8 +356,19 @@ Error_manager Dispatch_manager::execute_for_dispatch_control_request_msg(message
 				return t_error;
 			}
 			//把消息 写入流程
-			iter->second->m_dispatch_control_request_msg = dispatch_control_request_msg;
-			return Error_code::SUCCESS;
+			std::unique_lock<std::mutex> t_lock(iter->second->m_lock);
+			if ( dispatch_control_request_msg.dispatch_device_type() == message::Dispatch_device_type::ROBOT_1 ||
+				 dispatch_control_request_msg.dispatch_device_type() == message::Dispatch_device_type::ROBOT_2 )
+			{
+				iter->second->m_dispatch_control_request_msg_catcher = dispatch_control_request_msg;
+			}
+			else if ( dispatch_control_request_msg.dispatch_device_type() == message::Dispatch_device_type::CARRIER_1 ||
+					  dispatch_control_request_msg.dispatch_device_type() == message::Dispatch_device_type::CARRIER_2 ||
+					  dispatch_control_request_msg.dispatch_device_type() == message::Dispatch_device_type::CARRIER_3 )
+			{
+				iter->second->m_dispatch_control_request_msg_carrier = dispatch_control_request_msg;
+
+			}			return Error_code::SUCCESS;
 		}
 	}
 	return Error_code::SUCCESS;

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 762 - 435
dispatch/dispatch_process.cpp


+ 19 - 6
dispatch/dispatch_process.h

@@ -47,6 +47,11 @@ public:
 //调度指令超时时间  衰减值 在原有的基础上减少30秒
 #define DISPATCH_PROCESS_ATTENUATION_TIMEOUT_MS				30000
 
+//调度默认 差值 2mm
+#define DISPATCH_DEFAULT_DIFFERENCE							2
+//调度默认 比值 1%
+#define DISPATCH_DEFAULT_RATE								0.01
+
 	//调度流程的状态, 控制步骤
 	enum Dispatch_process_status
 	{
@@ -117,7 +122,7 @@ protected://主流程
 	//执行调度控制指令, 并根据完成情况给答复
 	Error_manager excute_dispatch_control();
 	//发送调度控制答复, 发给调度控制的
-	Error_manager send_dispatch_control_response_msg();
+	Error_manager send_dispatch_control_response_msg(message::Dispatch_device_task_status dispatch_device_task_status);
 	//断开调度设备, 释放任务单 与设备解除连接
 	Error_manager disconnect_dispatch_device();
 
@@ -169,7 +174,7 @@ protected://短流程
 	//检查通道口任务单
 	Error_manager check_passageway_task();
 	//检查 任务单 是否完成任务, 里面会调整短步骤
-	Error_manager check_task_ex(std::shared_ptr<Task_Base> p_catcher_task, int& step);
+	Error_manager check_task_ex(std::shared_ptr<Task_Base> p_task, int& step);
 
 	//机器手调整到 正常待机的姿态(调节夹杆和轴距)
 	Error_manager catcher_adjust_to_ready(Catcher * tp_catcher, Catcher_task * tp_catcher_task, Dispatch_coordinates * tp_dispatch_coordinates);
@@ -218,8 +223,7 @@ public://member variable
 	int 									m_timeout_ms;						//超时时间,单位ms
 	std::chrono::system_clock::time_point	m_start_time;						//流程开始时间
 	Error_manager 							m_result;							//流程的执行结果
-	Point3D_tool::Point3D					m_source_coordinates;				//起点 的坐标 (Dispatch_control 长流程的起点)
-	Point3D_tool::Point3D					m_destination_coordinates;			//终点 的坐标 (Dispatch_control 长流程的终点)
+
 	float 									m_wheel_base;						//轮距
 //	Dispatch_process_catcher_motion			m_dispatch_process_catcher_motion;	//机器手的动作, 控制步骤
 //	Dispatch_process_carrier_motion			m_dispatch_process_carrier_motion;	//搬运器的动作, 控制步骤
@@ -237,12 +241,21 @@ public://member variable
 	//通信缓存
 	message::Dispatch_request_msg			m_dispatch_request_msg;				//1执行搬运请求(主控->调度管理)
 	message::Dispatch_plan_request_msg		m_dispatch_plan_request_msg;		//2调度总规划的请求, 用于启动整个调度算法(调度管理->调度算法)
-	message::Dispatch_control_request_msg	m_dispatch_control_request_msg;		//3调度控制的任务请求(调度算法->调度管理)
-	message::Dispatch_control_response_msg	m_dispatch_control_response_msg;	//4调度控制的任务答复(调度管理->调度算法)
+	message::Dispatch_control_request_msg	m_dispatch_control_request_msg_catcher;		//3调度控制的任务请求(调度算法->调度管理)
+	message::Dispatch_control_response_msg	m_dispatch_control_response_msg_catcher;	//4调度控制的任务答复(调度管理->调度算法)
+	Point3D_tool::Point3D					m_source_coordinates_catcher;				//起点 的坐标 (Dispatch_control 长流程的起点)
+	Point3D_tool::Point3D					m_destination_coordinates_catcher;			//终点 的坐标 (Dispatch_control 长流程的终点)
+	message::Dispatch_control_request_msg	m_dispatch_control_request_msg_carrier;		//3调度控制的任务请求(调度算法->调度管理)
+	message::Dispatch_control_response_msg	m_dispatch_control_response_msg_carrier;	//4调度控制的任务答复(调度管理->调度算法)
+	Point3D_tool::Point3D					m_source_coordinates_carrier;				//起点 的坐标 (Dispatch_control 长流程的起点)
+	Point3D_tool::Point3D					m_destination_coordinates_carrier;			//终点 的坐标 (Dispatch_control 长流程的终点)
 	message::Dispatch_plan_response_msg		m_dispatch_plan_response_msg;		//5调度总规划的答复(调度算法->调度管理)
 	message::Dispatch_response_msg			m_dispatch_response_msg;			//6搬运动作执行完成后反馈结果(调度管理->主控)
 	//流程通信顺序为  收1->发2  ->收3->发4->收3->发4->收3->发4.....  ->收5->发6
 
+
+	std::chrono::system_clock::time_point  m_time_to_send_control_response;		//发送 控制的任务答复 的时间
+
 private:
 
 };

+ 11 - 10
error_code/error_code.h

@@ -343,7 +343,14 @@ enum Error_code
 	DISPATCH_MANAGER_TASK_TYPE_ERROR,					//调度管理模块,任务类型错误
 	DISPATCH_MANAGER_IS_NOT_READY,						//调度管理模块,不在准备状态
 
-	DISPATCH_DEVICE_ERROR_BASE								= 0x13020000,
+	DISPATCH_PROCESS_ERROR_BASE								= 0x13020000,
+	DISPATCH_PROCESS_IS_NOT_READY,						//调度流程, 不在准备状态
+	DISPATCH_PROCESS_DEVICE_TYPE_ERROR,					//调度流程, 设备类型错误
+	DISPATCH_PROCESS_DEVICE_STATUS_ERROR,				//调度流程, 设备状态错误
+	DISPATCH_PROCESS_TASK_STATUS_ERROR,					//调度流程, 任务类型错误
+
+
+	DISPATCH_DEVICE_ERROR_BASE								= 0x13030000,
 	DISPATCH_DEVICE_READ_PROTOBUF_ERROR,				//调度设备模块,读取参数错误
 	DISPATCH_DEVICE_STATUS_BUSY,						//调度设备模块,状态正忙
 	DISPATCH_DEVICE_STATUS_ERROR,						//调度设备模块,状态错误
@@ -354,14 +361,8 @@ enum Error_code
 	DISPATCH_DEVICE_RESPONS_ERROR,						//调度设备模块,指令的执行失败
 	DISPATCH_DEVICE_TASK_NOTHINGNESS,					//调度设备模块,任务不存在
 
-	DISPATCH_PROCESS_ERROR_BASE								= 0x13020000,
-	DISPATCH_PROCESS_IS_NOT_READY,						//调度流程, 不在准备状态
-	DISPATCH_PROCESS_DEVICE_TYPE_ERROR,					//调度流程, 设备类型错误
-	DISPATCH_PROCESS_DEVICE_STATUS_ERROR,				//调度流程, 设备状态错误
-	DISPATCH_PROCESS_TASK_STATUS_ERROR,					//调度流程, 任务类型错误
-
 
-	CARRIER_ERROR_BASE								= 0x13030000,
+	CARRIER_ERROR_BASE								= 0x13040000,
 	CARRIER_READ_PROTOBUF_ERROR,				//搬运器模块,读取参数错误
 	CARRIER_STATUS_BUSY,						//搬运器模块,状态正忙
 	CARRIER_STATUS_ERROR,						//搬运器模块,状态错误
@@ -374,7 +375,7 @@ enum Error_code
 	CARRIER_POSE_ERROR,							//搬运器模块,姿态错误
 	CARRIER_CONRTOL_PARAMETER_ERROR,			//搬运器模块,控制参数错误
 
-	CATCHER_ERROR_BASE								= 0x13040000,
+	CATCHER_ERROR_BASE								= 0x13050000,
 	CATCHER_READ_PROTOBUF_ERROR,				//抓取器模块,读取参数错误
 	CATCHER_STATUS_BUSY,						//抓取器模块,状态正忙
 	CATCHER_STATUS_ERROR,						//抓取器模块,状态错误
@@ -387,7 +388,7 @@ enum Error_code
 	CATCHER_POSE_ERROR,							//抓取器模块,姿态错误
 	CATCHER_CONRTOL_PARAMETER_ERROR,			//抓取器模块,控制参数错误
 
-	PASSAGEWAY_ERROR_BASE								= 0x13050000,
+	PASSAGEWAY_ERROR_BASE								= 0x13060000,
 	PASSAGEWAY_READ_PROTOBUF_ERROR,				//通道口模块,读取参数错误
 	PASSAGEWAY_STATUS_BUSY,						//通道口模块,状态正忙
 	PASSAGEWAY_STATUS_ERROR,						//通道口模块,状态错误

+ 32 - 29
main.cpp

@@ -57,15 +57,7 @@ using namespace std;
 
 int main(int argc,char* argv[])
 {
-	std::string aaa = "asdzxc";
-	std::string bbb = "asdzxc";
-
-	int x = aaa.compare(0,8, bbb, 0, 8);
-
-	std::cout << " huli test :::: " << " x = " << x << std::endl;
-	return 0;
-
-
+	Error_manager t_error;
 
 	const char* logPath = "./";
 	google::InitGoogleLogging("LidarMeasurement");
@@ -80,17 +72,28 @@ int main(int argc,char* argv[])
 	FLAGS_stop_logging_if_full_disk = true;
 
 
-	Error_manager t_error;
+
+
+
+	t_error = Dispatch_coordinates::get_instance_references().dispatch_coordinates_init();
+	std::cout << " huli test :::: " << " t_error.to = " << t_error.to_string() << std::endl;
+
 	t_error = Dispatch_communication::get_instance_references().communication_init();
+	std::cout << " huli test :::: " << " t_error.to = " << t_error.to_string() << std::endl;
+	std::cout << "Dispatch_communication = " << Dispatch_communication::get_instance_references().get_status() << std::endl;
 
-	Dispatch_manager::get_instance_references().dispatch_manager_init(0);
+	t_error = Dispatch_manager::get_instance_references().dispatch_manager_init(0);
+	std::cout << " huli test :::: " << " t_error.to = " << t_error.to_string() << std::endl;
 	std::cout << "Dispatch_manager = " << Dispatch_manager::get_instance_references().get_dispatch_manager_status() << std::endl;
 
-	System_executor::get_instance_references().system_executor_init(8);
+	System_executor::get_instance_references().system_executor_init(10);
 	std::cout << "System_executor = " << System_executor::get_instance_references().get_system_executor_status() << std::endl;
 	System_communication::get_instance_references().communication_init();
 
+	while (1)
+	{
 
+	}
 	return 0;
 
 
@@ -126,8 +129,8 @@ int main(int argc,char* argv[])
 
 
 
-/*
 
+/*
 	Catcher t_catcher;
 	t_error = t_catcher.dispatch_device_base_init(1);
 	std::cout << " huli test :::: " << " t_error = " << t_error << std::endl;
@@ -136,15 +139,15 @@ int main(int argc,char* argv[])
 	std::shared_ptr<Task_Base> tp_task_Base1(new Catcher_task);
 	Catcher_task * tp_catcher_task = (Catcher_task *)tp_task_Base1.get();
 	tp_catcher_task->task_init(NULL,std::chrono::milliseconds(15000));
-	tp_catcher_task->m_request_key = "nfddsfgkjvbds";
-	tp_catcher_task->m_request_x = 500;
-	tp_catcher_task->m_request_y = 600;
-	tp_catcher_task->m_request_b = 80;
-	tp_catcher_task->m_request_z = 700;
+	tp_catcher_task->m_request_key = "123456789012345678901234567890hl";
+	tp_catcher_task->m_request_x = 11000;
+	tp_catcher_task->m_request_y = 3000;
+	tp_catcher_task->m_request_b = 90;
+	tp_catcher_task->m_request_z = 4000;
 	tp_catcher_task->m_request_d1 = 355;
 	tp_catcher_task->m_request_d2 = 455;
-	tp_catcher_task->m_request_wheelbase = 1255;
-	tp_catcher_task->m_request_clamp_motion = Catcher_task::E_CLAMP_TIGHT;
+	tp_catcher_task->m_request_wheelbase = 2800;
+	tp_catcher_task->m_request_clamp_motion = Catcher_task::E_CLAMP_LOOSE;
 	t_error = t_catcher.execute_task(tp_task_Base1, Dispatch_device_base::E_ONE_LEVEL);
 	std::cout << " huli test :::: " << " t_error = " << t_error << std::endl;
 	std::cout << " ---------------------------------------------------" << std::endl;
@@ -219,19 +222,19 @@ int main(int argc,char* argv[])
 
 
 	Carrier t_carrier;
-	t_error = t_carrier.dispatch_device_base_init(0);
+	t_error = t_carrier.dispatch_device_base_init(1);
 	std::cout << " huli test :::: " << " t_error = " << t_error << std::endl;
 	std::this_thread::sleep_for(std::chrono::seconds(2));
 
 	std::shared_ptr<Task_Base> tp_task_Base2(new Carrier_task);
 	Carrier_task * tp_carrier_task = (Carrier_task *)tp_task_Base2.get();
 	tp_carrier_task->task_init(NULL,std::chrono::milliseconds(15000));
-	tp_carrier_task->m_request_key = "fimfyuiyuifjh";
-	tp_carrier_task->m_request_x = 333;
-	tp_carrier_task->m_request_y = 444;
-	tp_carrier_task->m_request_z = 555;
-	tp_carrier_task->m_request_y1 = 333;
-	tp_carrier_task->m_request_y2 = 444;
+	tp_carrier_task->m_request_key = "123456789012345678901234567890hl";
+	tp_carrier_task->m_request_x = 17955;
+	tp_carrier_task->m_request_y = 3000;
+	tp_carrier_task->m_request_z = 2525;
+	tp_carrier_task->m_request_y1 = 4500;
+	tp_carrier_task->m_request_y2 = 1700;
 	tp_carrier_task->m_request_clamp_motion = Carrier_task::E_CLAMP_LOOSE;
 	tp_carrier_task->m_request_joint_motion_x = Carrier_task::E_JOINT_HOLD_OUT;
 	tp_carrier_task->m_request_joint_motion_y = Carrier_task::E_JOINT_HOLD_OUT;
@@ -314,7 +317,7 @@ int main(int argc,char* argv[])
 
 
 
-
+/*
 
 	Passageway t_passageway;
 	t_error = t_passageway.dispatch_device_base_init(1);
@@ -391,7 +394,7 @@ int main(int argc,char* argv[])
 		std::this_thread::sleep_for(std::chrono::milliseconds(1000));
 
 	}
-
+*/
 
 
 

+ 290 - 281
message/message_base.pb.cc

@@ -262,18 +262,18 @@ const ::google::protobuf::uint32 TableStruct::offsets[] GOOGLE_PROTOBUF_ATTRIBUT
   ~0u,  // no _extensions_
   ~0u,  // no _oneof_case_
   ~0u,  // no _weak_field_map_
-  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Parkspace_info, parkspace_id_),
-  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Parkspace_info, index_),
-  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Parkspace_info, direction_),
-  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Parkspace_info, floor_),
-  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Parkspace_info, length_),
-  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Parkspace_info, width_),
-  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Parkspace_info, height_),
-  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Parkspace_info, parkspace_status_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Parkspace_info, parkingspace_index_id_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Parkspace_info, parkingspace_type_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Parkspace_info, parkingspace_unit_id_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Parkspace_info, parkingspace_room_id_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Parkspace_info, parkingspace_direction_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Parkspace_info, parkingspace_floor_id_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Parkspace_info, parkingspace_width_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Parkspace_info, parkingspace_height_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Parkspace_info, parkingspace_status_),
   GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Parkspace_info, car_info_),
   GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Parkspace_info, entry_time_),
   GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Parkspace_info, leave_time_),
-  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Parkspace_info, block_id_),
   GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Parkspace_info, parkspace_path_),
   GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Parkspace_info, path_estimate_time_),
   GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Parkspace_info, parkspace_status_target_),
@@ -285,10 +285,10 @@ const ::google::protobuf::uint32 TableStruct::offsets[] GOOGLE_PROTOBUF_ATTRIBUT
   8,
   9,
   10,
+  11,
   2,
   0,
   1,
-  11,
   12,
   13,
   14,
@@ -353,85 +353,85 @@ void AddDescriptorsImpl() {
       "Car_info\022\025\n\ncar_length\030\001 \001(\002:\0010\022\024\n\tcar_w"
       "idth\030\002 \001(\002:\0010\022\025\n\ncar_height\030\003 \001(\002:\0010\022\021\n\007"
       "license\030\004 \001(\t:\000\022\031\n\016car_wheel_base\030\005 \001(\002:"
-      "\0010\022\032\n\017car_wheel_width\030\006 \001(\002:\0010\"\247\004\n\016Parks"
-      "pace_info\022\027\n\014parkspace_id\030\001 \001(\005:\0010\022\020\n\005in"
-      "dex\030\002 \001(\005:\0010\0228\n\tdirection\030\003 \001(\0162\022.messag"
-      "e.Direction:\021eDirection_unknow\022\020\n\005floor\030"
-      "\004 \001(\005:\0010\022\021\n\006length\030\005 \001(\002:\0010\022\020\n\005width\030\006 \001"
-      "(\002:\0010\022\021\n\006height\030\007 \001(\002:\0010\022M\n\020parkspace_st"
-      "atus\030\010 \001(\0162\031.message.Parkspace_status:\030e"
-      "Parkspace_status_unknow\022#\n\010car_info\030\t \001("
-      "\0132\021.message.Car_info\022\024\n\nentry_time\030\n \001(\t"
-      ":\000\022\024\n\nleave_time\030\013 \001(\t:\000\022\023\n\010block_id\030\014 \001"
-      "(\005:\0010\022<\n\016parkspace_path\030\r \001(\0162\027.message."
-      "Parkspace_path:\013UNKNOW_PATH\022\035\n\022path_esti"
-      "mate_time\030\016 \001(\002:\0010\022T\n\027parkspace_status_t"
-      "arget\030\017 \001(\0162\031.message.Parkspace_status:\030"
-      "eParkspace_status_unknow*\334\t\n\014Message_typ"
-      "e\022\r\n\teBase_msg\020\000\022\020\n\014eCommand_msg\020\001\022\026\n\022eL"
-      "ocate_status_msg\020\021\022\027\n\023eLocate_request_ms"
-      "g\020\022\022\030\n\024eLocate_response_msg\020\023\022\034\n\030eLocate"
-      "_sift_request_msg\020\024\022\035\n\031eLocate_sift_resp"
-      "onse_msg\020\025\022\030\n\024eDispatch_status_msg\020!\022\031\n\025"
-      "eDispatch_request_msg\020\"\022\032\n\026eDispatch_res"
-      "ponse_msg\020#\022$\n eParkspace_allocation_sta"
-      "tus_msg\0201\022%\n!eParkspace_allocation_reque"
-      "st_msg\0202\022&\n\"eParkspace_allocation_respon"
-      "se_msg\0203\022!\n\035eParkspace_search_request_ms"
-      "g\0204\022\"\n\036eParkspace_search_response_msg\0205\022"
-      "\"\n\036eParkspace_release_request_msg\0206\022#\n\037e"
-      "Parkspace_release_response_msg\0207\022\'\n#ePar"
-      "kspace_force_update_request_msg\0208\022(\n$ePa"
-      "rkspace_force_update_response_msg\0209\022(\n$e"
-      "Parkspace_confirm_alloc_request_msg\020:\022)\n"
-      "%eParkspace_confirm_alloc_response_msg\020;"
-      "\022\"\n\036eParkspace_allocation_data_msg\020<\022\036\n\032"
-      "eStore_command_request_msg\020A\022\037\n\033eStore_c"
-      "ommand_response_msg\020B\022\037\n\033ePickup_command"
-      "_request_msg\020C\022 \n\034ePickup_command_respon"
-      "se_msg\020D\022\037\n\032eStoring_process_statu_msg\020\220"
-      "\001\022\037\n\032ePicking_process_statu_msg\020\221\001\022\"\n\035eC"
-      "entral_controller_statu_msg\020\240\001\022#\n\036eEntra"
-      "nce_manual_operation_msg\020\260\001\022\"\n\035eProcess_"
-      "manual_operation_msg\020\261\001\022\037\n\032eDispatch_pla"
-      "n_request_msg\020\340\001\022 \n\033eDispatch_plan_respo"
-      "nse_msg\020\341\001\022\"\n\035eDispatch_control_request_"
-      "msg\020\342\001\022#\n\036eDispatch_control_response_msg"
-      "\020\343\001\022!\n\034eDispatch_manager_status_msg\020\352\001\022\037"
-      "\n\032eDispatch_manager_data_msg\020\353\001*\242\001\n\014Comm"
-      "unicator\022\n\n\006eEmpty\020\000\022\t\n\005eMain\020\001\022\016\n\teTerm"
-      "inor\020\200\002\022\017\n\neParkspace\020\200\004\022\016\n\teMeasurer\020\200\006"
-      "\022\032\n\025eMeasurer_sift_server\020\201\006\022\026\n\021eDispatc"
-      "h_mamager\020\200\010\022\026\n\021eDispatch_control\020\201\010**\n\014"
-      "Process_type\022\014\n\010eStoring\020\001\022\014\n\010ePicking\020\002"
-      "*e\n\013Error_level\022\n\n\006NORMAL\020\000\022\024\n\020NEGLIGIBL"
-      "E_ERROR\020\001\022\017\n\013MINOR_ERROR\020\002\022\017\n\013MAJOR_ERRO"
-      "R\020\003\022\022\n\016CRITICAL_ERROR\020\004*\245\001\n\020Parkspace_st"
-      "atus\022\034\n\030eParkspace_status_unknow\020\000\022\024\n\020eP"
-      "arkspace_empty\020\001\022\027\n\023eParkspace_occupied\020"
-      "\002\022\027\n\023eParkspace_reserved\020\003\022\025\n\021eParkspace"
-      "_locked\020\004\022\024\n\020eParkspace_error\020\005*\?\n\tDirec"
-      "tion\022\025\n\021eDirection_unknow\020\000\022\014\n\010eForward\020"
-      "\001\022\r\n\teBackward\020\002*l\n\016Parkspace_path\022\017\n\013UN"
-      "KNOW_PATH\020\000\022\020\n\014OPTIMAL_PATH\020\001\022\r\n\tLEFT_PA"
-      "TH\020\002\022\016\n\nRIGHT_PATH\020\003\022\030\n\024TEMPORARY_CACHE_"
-      "PATH\020\004*m\n\016Parkspace_type\022\031\n\025UNKNOW_PARKS"
-      "PACE_TYPE\020\000\022\024\n\020MIN_PARKINGSPACE\020\001\022\024\n\020MID"
-      "_PARKINGSPACE\020\002\022\024\n\020BIG_PARKINGSPACE\020\003*\335\002"
-      "\n\tStep_type\022\017\n\013eAlloc_step\020\000\022\021\n\reMeasure"
-      "_step\020\001\022\021\n\reCompare_step\020\002\022\022\n\016eDispatch_"
-      "step\020\003\022\021\n\reConfirm_step\020\004\022\020\n\014eSearch_ste"
-      "p\020\005\022\016\n\neWait_step\020\006\022\021\n\reRelease_step\020\007\022\r"
-      "\n\teComplete\020\010\022\025\n\021eBackConfirm_step\020\t\022\026\n\022"
-      "eBack_compare_step\020\n\022\025\n\021eBackMeasure_ste"
-      "p\020\013\022\023\n\017eBackAlloc_step\020\014\022\022\n\016eBackWait_st"
-      "ep\020\r\022\026\n\022eBackDispatch_step\020\016\022\024\n\020eBackSea"
-      "rch_step\020\017\022\021\n\reBackComplete\020\020*C\n\nStep_st"
-      "atu\022\014\n\010eWaiting\020\000\022\014\n\010eWorking\020\001\022\n\n\006eErro"
-      "r\020\002\022\r\n\teFinished\020\003"
+      "\0010\022\032\n\017car_wheel_width\030\006 \001(\002:\0010\"\271\004\n\016Parks"
+      "pace_info\022\035\n\025parkingspace_index_id\030\001 \001(\005"
+      "\0222\n\021parkingspace_type\030\002 \001(\0162\027.message.Pa"
+      "rkspace_type\022\034\n\024parkingspace_unit_id\030\003 \001"
+      "(\005\022\034\n\024parkingspace_room_id\030\004 \001(\005\0222\n\026park"
+      "ingspace_direction\030\005 \001(\0162\022.message.Direc"
+      "tion\022\035\n\025parkingspace_floor_id\030\006 \001(\005\022\032\n\022p"
+      "arkingspace_width\030\007 \001(\002\022\033\n\023parkingspace_"
+      "height\030\010 \001(\002\0226\n\023parkingspace_status\030\t \001("
+      "\0162\031.message.Parkspace_status\022#\n\010car_info"
+      "\030\n \001(\0132\021.message.Car_info\022\022\n\nentry_time\030"
+      "\013 \001(\t\022\022\n\nleave_time\030\014 \001(\t\022/\n\016parkspace_p"
+      "ath\030\r \001(\0162\027.message.Parkspace_path\022\032\n\022pa"
+      "th_estimate_time\030\016 \001(\002\022:\n\027parkspace_stat"
+      "us_target\030\017 \001(\0162\031.message.Parkspace_stat"
+      "us*\334\t\n\014Message_type\022\r\n\teBase_msg\020\000\022\020\n\014eC"
+      "ommand_msg\020\001\022\026\n\022eLocate_status_msg\020\021\022\027\n\023"
+      "eLocate_request_msg\020\022\022\030\n\024eLocate_respons"
+      "e_msg\020\023\022\034\n\030eLocate_sift_request_msg\020\024\022\035\n"
+      "\031eLocate_sift_response_msg\020\025\022\030\n\024eDispatc"
+      "h_status_msg\020!\022\031\n\025eDispatch_request_msg\020"
+      "\"\022\032\n\026eDispatch_response_msg\020#\022$\n eParksp"
+      "ace_allocation_status_msg\0201\022%\n!eParkspac"
+      "e_allocation_request_msg\0202\022&\n\"eParkspace"
+      "_allocation_response_msg\0203\022!\n\035eParkspace"
+      "_search_request_msg\0204\022\"\n\036eParkspace_sear"
+      "ch_response_msg\0205\022\"\n\036eParkspace_release_"
+      "request_msg\0206\022#\n\037eParkspace_release_resp"
+      "onse_msg\0207\022\'\n#eParkspace_force_update_re"
+      "quest_msg\0208\022(\n$eParkspace_force_update_r"
+      "esponse_msg\0209\022(\n$eParkspace_confirm_allo"
+      "c_request_msg\020:\022)\n%eParkspace_confirm_al"
+      "loc_response_msg\020;\022\"\n\036eParkspace_allocat"
+      "ion_data_msg\020<\022\036\n\032eStore_command_request"
+      "_msg\020A\022\037\n\033eStore_command_response_msg\020B\022"
+      "\037\n\033ePickup_command_request_msg\020C\022 \n\034ePic"
+      "kup_command_response_msg\020D\022\037\n\032eStoring_p"
+      "rocess_statu_msg\020\220\001\022\037\n\032ePicking_process_"
+      "statu_msg\020\221\001\022\"\n\035eCentral_controller_stat"
+      "u_msg\020\240\001\022#\n\036eEntrance_manual_operation_m"
+      "sg\020\260\001\022\"\n\035eProcess_manual_operation_msg\020\261"
+      "\001\022\037\n\032eDispatch_plan_request_msg\020\340\001\022 \n\033eD"
+      "ispatch_plan_response_msg\020\341\001\022\"\n\035eDispatc"
+      "h_control_request_msg\020\342\001\022#\n\036eDispatch_co"
+      "ntrol_response_msg\020\343\001\022!\n\034eDispatch_manag"
+      "er_status_msg\020\352\001\022\037\n\032eDispatch_manager_da"
+      "ta_msg\020\353\001*\242\001\n\014Communicator\022\n\n\006eEmpty\020\000\022\t"
+      "\n\005eMain\020\001\022\016\n\teTerminor\020\200\002\022\017\n\neParkspace\020"
+      "\200\004\022\016\n\teMeasurer\020\200\006\022\032\n\025eMeasurer_sift_ser"
+      "ver\020\201\006\022\026\n\021eDispatch_manager\020\200\010\022\026\n\021eDispa"
+      "tch_control\020\201\010**\n\014Process_type\022\014\n\010eStori"
+      "ng\020\001\022\014\n\010ePicking\020\002*e\n\013Error_level\022\n\n\006NOR"
+      "MAL\020\000\022\024\n\020NEGLIGIBLE_ERROR\020\001\022\017\n\013MINOR_ERR"
+      "OR\020\002\022\017\n\013MAJOR_ERROR\020\003\022\022\n\016CRITICAL_ERROR\020"
+      "\004*\245\001\n\020Parkspace_status\022\034\n\030eParkspace_sta"
+      "tus_unknow\020\000\022\024\n\020eParkspace_empty\020\001\022\027\n\023eP"
+      "arkspace_occupied\020\002\022\027\n\023eParkspace_reserv"
+      "ed\020\003\022\025\n\021eParkspace_locked\020\004\022\024\n\020eParkspac"
+      "e_error\020\005*\?\n\tDirection\022\025\n\021eDirection_unk"
+      "now\020\000\022\014\n\010eForward\020\001\022\r\n\teBackward\020\002*l\n\016Pa"
+      "rkspace_path\022\017\n\013UNKNOW_PATH\020\000\022\020\n\014OPTIMAL"
+      "_PATH\020\001\022\r\n\tLEFT_PATH\020\002\022\016\n\nRIGHT_PATH\020\003\022\030"
+      "\n\024TEMPORARY_CACHE_PATH\020\004*m\n\016Parkspace_ty"
+      "pe\022\031\n\025UNKNOW_PARKSPACE_TYPE\020\000\022\024\n\020MIN_PAR"
+      "KINGSPACE\020\001\022\024\n\020MID_PARKINGSPACE\020\002\022\024\n\020BIG"
+      "_PARKINGSPACE\020\003*\335\002\n\tStep_type\022\017\n\013eAlloc_"
+      "step\020\000\022\021\n\reMeasure_step\020\001\022\021\n\reCompare_st"
+      "ep\020\002\022\022\n\016eDispatch_step\020\003\022\021\n\reConfirm_ste"
+      "p\020\004\022\020\n\014eSearch_step\020\005\022\016\n\neWait_step\020\006\022\021\n"
+      "\reRelease_step\020\007\022\r\n\teComplete\020\010\022\025\n\021eBack"
+      "Confirm_step\020\t\022\026\n\022eBack_compare_step\020\n\022\025"
+      "\n\021eBackMeasure_step\020\013\022\023\n\017eBackAlloc_step"
+      "\020\014\022\022\n\016eBackWait_step\020\r\022\026\n\022eBackDispatch_"
+      "step\020\016\022\024\n\020eBackSearch_step\020\017\022\021\n\reBackCom"
+      "plete\020\020*C\n\nStep_statu\022\014\n\010eWaiting\020\000\022\014\n\010e"
+      "Working\020\001\022\n\n\006eError\020\002\022\r\n\teFinished\020\003"
   };
   ::google::protobuf::DescriptorPool::InternalAddGeneratedFile(
-      descriptor, 3818);
+      descriptor, 3836);
   ::google::protobuf::MessageFactory::InternalRegisterGeneratedFile(
     "message_base.proto", &protobuf_RegisterTypes);
 }
@@ -2716,18 +2716,18 @@ void Parkspace_info::InitAsDefaultInstance() {
       ::message::Car_info::internal_default_instance());
 }
 #if !defined(_MSC_VER) || _MSC_VER >= 1900
-const int Parkspace_info::kParkspaceIdFieldNumber;
-const int Parkspace_info::kIndexFieldNumber;
-const int Parkspace_info::kDirectionFieldNumber;
-const int Parkspace_info::kFloorFieldNumber;
-const int Parkspace_info::kLengthFieldNumber;
-const int Parkspace_info::kWidthFieldNumber;
-const int Parkspace_info::kHeightFieldNumber;
-const int Parkspace_info::kParkspaceStatusFieldNumber;
+const int Parkspace_info::kParkingspaceIndexIdFieldNumber;
+const int Parkspace_info::kParkingspaceTypeFieldNumber;
+const int Parkspace_info::kParkingspaceUnitIdFieldNumber;
+const int Parkspace_info::kParkingspaceRoomIdFieldNumber;
+const int Parkspace_info::kParkingspaceDirectionFieldNumber;
+const int Parkspace_info::kParkingspaceFloorIdFieldNumber;
+const int Parkspace_info::kParkingspaceWidthFieldNumber;
+const int Parkspace_info::kParkingspaceHeightFieldNumber;
+const int Parkspace_info::kParkingspaceStatusFieldNumber;
 const int Parkspace_info::kCarInfoFieldNumber;
 const int Parkspace_info::kEntryTimeFieldNumber;
 const int Parkspace_info::kLeaveTimeFieldNumber;
-const int Parkspace_info::kBlockIdFieldNumber;
 const int Parkspace_info::kParkspacePathFieldNumber;
 const int Parkspace_info::kPathEstimateTimeFieldNumber;
 const int Parkspace_info::kParkspaceStatusTargetFieldNumber;
@@ -2760,9 +2760,9 @@ Parkspace_info::Parkspace_info(const Parkspace_info& from)
   } else {
     car_info_ = NULL;
   }
-  ::memcpy(&parkspace_id_, &from.parkspace_id_,
+  ::memcpy(&parkingspace_index_id_, &from.parkingspace_index_id_,
     static_cast<size_t>(reinterpret_cast<char*>(&parkspace_status_target_) -
-    reinterpret_cast<char*>(&parkspace_id_)) + sizeof(parkspace_status_target_));
+    reinterpret_cast<char*>(&parkingspace_index_id_)) + sizeof(parkspace_status_target_));
   // @@protoc_insertion_point(copy_constructor:message.Parkspace_info)
 }
 
@@ -2831,14 +2831,14 @@ void Parkspace_info::Clear() {
     }
   }
   if (cached_has_bits & 248u) {
-    ::memset(&parkspace_id_, 0, static_cast<size_t>(
-        reinterpret_cast<char*>(&length_) -
-        reinterpret_cast<char*>(&parkspace_id_)) + sizeof(length_));
+    ::memset(&parkingspace_index_id_, 0, static_cast<size_t>(
+        reinterpret_cast<char*>(&parkingspace_direction_) -
+        reinterpret_cast<char*>(&parkingspace_index_id_)) + sizeof(parkingspace_direction_));
   }
   if (cached_has_bits & 32512u) {
-    ::memset(&width_, 0, static_cast<size_t>(
+    ::memset(&parkingspace_floor_id_, 0, static_cast<size_t>(
         reinterpret_cast<char*>(&parkspace_status_target_) -
-        reinterpret_cast<char*>(&width_)) + sizeof(parkspace_status_target_));
+        reinterpret_cast<char*>(&parkingspace_floor_id_)) + sizeof(parkspace_status_target_));
   }
   _has_bits_.Clear();
   _internal_metadata_.Clear();
@@ -2854,123 +2854,143 @@ bool Parkspace_info::MergePartialFromCodedStream(
     tag = p.first;
     if (!p.second) goto handle_unusual;
     switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
-      // optional int32 parkspace_id = 1 [default = 0];
+      // optional int32 parkingspace_index_id = 1;
       case 1: {
         if (static_cast< ::google::protobuf::uint8>(tag) ==
             static_cast< ::google::protobuf::uint8>(8u /* 8 & 0xFF */)) {
-          set_has_parkspace_id();
+          set_has_parkingspace_index_id();
           DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                    ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
-                 input, &parkspace_id_)));
+                 input, &parkingspace_index_id_)));
         } else {
           goto handle_unusual;
         }
         break;
       }
 
-      // optional int32 index = 2 [default = 0];
+      // optional .message.Parkspace_type parkingspace_type = 2;
       case 2: {
         if (static_cast< ::google::protobuf::uint8>(tag) ==
             static_cast< ::google::protobuf::uint8>(16u /* 16 & 0xFF */)) {
-          set_has_index();
+          int value;
           DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
-                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
-                 input, &index_)));
+                   int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>(
+                 input, &value)));
+          if (::message::Parkspace_type_IsValid(value)) {
+            set_parkingspace_type(static_cast< ::message::Parkspace_type >(value));
+          } else {
+            mutable_unknown_fields()->AddVarint(
+                2, static_cast< ::google::protobuf::uint64>(value));
+          }
         } else {
           goto handle_unusual;
         }
         break;
       }
 
-      // optional .message.Direction direction = 3 [default = eDirection_unknow];
+      // optional int32 parkingspace_unit_id = 3;
       case 3: {
         if (static_cast< ::google::protobuf::uint8>(tag) ==
             static_cast< ::google::protobuf::uint8>(24u /* 24 & 0xFF */)) {
-          int value;
+          set_has_parkingspace_unit_id();
           DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
-                   int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>(
-                 input, &value)));
-          if (::message::Direction_IsValid(value)) {
-            set_direction(static_cast< ::message::Direction >(value));
-          } else {
-            mutable_unknown_fields()->AddVarint(
-                3, static_cast< ::google::protobuf::uint64>(value));
-          }
+                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
+                 input, &parkingspace_unit_id_)));
         } else {
           goto handle_unusual;
         }
         break;
       }
 
-      // optional int32 floor = 4 [default = 0];
+      // optional int32 parkingspace_room_id = 4;
       case 4: {
         if (static_cast< ::google::protobuf::uint8>(tag) ==
             static_cast< ::google::protobuf::uint8>(32u /* 32 & 0xFF */)) {
-          set_has_floor();
+          set_has_parkingspace_room_id();
           DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                    ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
-                 input, &floor_)));
+                 input, &parkingspace_room_id_)));
         } else {
           goto handle_unusual;
         }
         break;
       }
 
-      // optional float length = 5 [default = 0];
+      // optional .message.Direction parkingspace_direction = 5;
       case 5: {
         if (static_cast< ::google::protobuf::uint8>(tag) ==
-            static_cast< ::google::protobuf::uint8>(45u /* 45 & 0xFF */)) {
-          set_has_length();
+            static_cast< ::google::protobuf::uint8>(40u /* 40 & 0xFF */)) {
+          int value;
           DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
-                   float, ::google::protobuf::internal::WireFormatLite::TYPE_FLOAT>(
-                 input, &length_)));
+                   int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>(
+                 input, &value)));
+          if (::message::Direction_IsValid(value)) {
+            set_parkingspace_direction(static_cast< ::message::Direction >(value));
+          } else {
+            mutable_unknown_fields()->AddVarint(
+                5, static_cast< ::google::protobuf::uint64>(value));
+          }
         } else {
           goto handle_unusual;
         }
         break;
       }
 
-      // optional float width = 6 [default = 0];
+      // optional int32 parkingspace_floor_id = 6;
       case 6: {
         if (static_cast< ::google::protobuf::uint8>(tag) ==
-            static_cast< ::google::protobuf::uint8>(53u /* 53 & 0xFF */)) {
-          set_has_width();
+            static_cast< ::google::protobuf::uint8>(48u /* 48 & 0xFF */)) {
+          set_has_parkingspace_floor_id();
           DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
-                   float, ::google::protobuf::internal::WireFormatLite::TYPE_FLOAT>(
-                 input, &width_)));
+                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
+                 input, &parkingspace_floor_id_)));
         } else {
           goto handle_unusual;
         }
         break;
       }
 
-      // optional float height = 7 [default = 0];
+      // optional float parkingspace_width = 7;
       case 7: {
         if (static_cast< ::google::protobuf::uint8>(tag) ==
             static_cast< ::google::protobuf::uint8>(61u /* 61 & 0xFF */)) {
-          set_has_height();
+          set_has_parkingspace_width();
           DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                    float, ::google::protobuf::internal::WireFormatLite::TYPE_FLOAT>(
-                 input, &height_)));
+                 input, &parkingspace_width_)));
         } else {
           goto handle_unusual;
         }
         break;
       }
 
-      // optional .message.Parkspace_status parkspace_status = 8 [default = eParkspace_status_unknow];
+      // optional float parkingspace_height = 8;
       case 8: {
         if (static_cast< ::google::protobuf::uint8>(tag) ==
-            static_cast< ::google::protobuf::uint8>(64u /* 64 & 0xFF */)) {
+            static_cast< ::google::protobuf::uint8>(69u /* 69 & 0xFF */)) {
+          set_has_parkingspace_height();
+          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+                   float, ::google::protobuf::internal::WireFormatLite::TYPE_FLOAT>(
+                 input, &parkingspace_height_)));
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      // optional .message.Parkspace_status parkingspace_status = 9;
+      case 9: {
+        if (static_cast< ::google::protobuf::uint8>(tag) ==
+            static_cast< ::google::protobuf::uint8>(72u /* 72 & 0xFF */)) {
           int value;
           DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                    int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>(
                  input, &value)));
           if (::message::Parkspace_status_IsValid(value)) {
-            set_parkspace_status(static_cast< ::message::Parkspace_status >(value));
+            set_parkingspace_status(static_cast< ::message::Parkspace_status >(value));
           } else {
             mutable_unknown_fields()->AddVarint(
-                8, static_cast< ::google::protobuf::uint64>(value));
+                9, static_cast< ::google::protobuf::uint64>(value));
           }
         } else {
           goto handle_unusual;
@@ -2978,10 +2998,10 @@ bool Parkspace_info::MergePartialFromCodedStream(
         break;
       }
 
-      // optional .message.Car_info car_info = 9;
-      case 9: {
+      // optional .message.Car_info car_info = 10;
+      case 10: {
         if (static_cast< ::google::protobuf::uint8>(tag) ==
-            static_cast< ::google::protobuf::uint8>(74u /* 74 & 0xFF */)) {
+            static_cast< ::google::protobuf::uint8>(82u /* 82 & 0xFF */)) {
           DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
                input, mutable_car_info()));
         } else {
@@ -2990,10 +3010,10 @@ bool Parkspace_info::MergePartialFromCodedStream(
         break;
       }
 
-      // optional string entry_time = 10 [default = ""];
-      case 10: {
+      // optional string entry_time = 11;
+      case 11: {
         if (static_cast< ::google::protobuf::uint8>(tag) ==
-            static_cast< ::google::protobuf::uint8>(82u /* 82 & 0xFF */)) {
+            static_cast< ::google::protobuf::uint8>(90u /* 90 & 0xFF */)) {
           DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                 input, this->mutable_entry_time()));
           ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
@@ -3006,10 +3026,10 @@ bool Parkspace_info::MergePartialFromCodedStream(
         break;
       }
 
-      // optional string leave_time = 11 [default = ""];
-      case 11: {
+      // optional string leave_time = 12;
+      case 12: {
         if (static_cast< ::google::protobuf::uint8>(tag) ==
-            static_cast< ::google::protobuf::uint8>(90u /* 90 & 0xFF */)) {
+            static_cast< ::google::protobuf::uint8>(98u /* 98 & 0xFF */)) {
           DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                 input, this->mutable_leave_time()));
           ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
@@ -3022,21 +3042,7 @@ bool Parkspace_info::MergePartialFromCodedStream(
         break;
       }
 
-      // optional int32 block_id = 12 [default = 0];
-      case 12: {
-        if (static_cast< ::google::protobuf::uint8>(tag) ==
-            static_cast< ::google::protobuf::uint8>(96u /* 96 & 0xFF */)) {
-          set_has_block_id();
-          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
-                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
-                 input, &block_id_)));
-        } else {
-          goto handle_unusual;
-        }
-        break;
-      }
-
-      // optional .message.Parkspace_path parkspace_path = 13 [default = UNKNOW_PATH];
+      // optional .message.Parkspace_path parkspace_path = 13;
       case 13: {
         if (static_cast< ::google::protobuf::uint8>(tag) ==
             static_cast< ::google::protobuf::uint8>(104u /* 104 & 0xFF */)) {
@@ -3056,7 +3062,7 @@ bool Parkspace_info::MergePartialFromCodedStream(
         break;
       }
 
-      // optional float path_estimate_time = 14 [default = 0];
+      // optional float path_estimate_time = 14;
       case 14: {
         if (static_cast< ::google::protobuf::uint8>(tag) ==
             static_cast< ::google::protobuf::uint8>(117u /* 117 & 0xFF */)) {
@@ -3070,7 +3076,7 @@ bool Parkspace_info::MergePartialFromCodedStream(
         break;
       }
 
-      // optional .message.Parkspace_status parkspace_status_target = 15 [default = eParkspace_status_unknow];
+      // optional .message.Parkspace_status parkspace_status_target = 15;
       case 15: {
         if (static_cast< ::google::protobuf::uint8>(tag) ==
             static_cast< ::google::protobuf::uint8>(120u /* 120 & 0xFF */)) {
@@ -3117,91 +3123,92 @@ void Parkspace_info::SerializeWithCachedSizes(
   (void) cached_has_bits;
 
   cached_has_bits = _has_bits_[0];
-  // optional int32 parkspace_id = 1 [default = 0];
+  // optional int32 parkingspace_index_id = 1;
   if (cached_has_bits & 0x00000008u) {
-    ::google::protobuf::internal::WireFormatLite::WriteInt32(1, this->parkspace_id(), output);
+    ::google::protobuf::internal::WireFormatLite::WriteInt32(1, this->parkingspace_index_id(), output);
   }
 
-  // optional int32 index = 2 [default = 0];
+  // optional .message.Parkspace_type parkingspace_type = 2;
   if (cached_has_bits & 0x00000010u) {
-    ::google::protobuf::internal::WireFormatLite::WriteInt32(2, this->index(), output);
+    ::google::protobuf::internal::WireFormatLite::WriteEnum(
+      2, this->parkingspace_type(), output);
   }
 
-  // optional .message.Direction direction = 3 [default = eDirection_unknow];
+  // optional int32 parkingspace_unit_id = 3;
   if (cached_has_bits & 0x00000020u) {
-    ::google::protobuf::internal::WireFormatLite::WriteEnum(
-      3, this->direction(), output);
+    ::google::protobuf::internal::WireFormatLite::WriteInt32(3, this->parkingspace_unit_id(), output);
   }
 
-  // optional int32 floor = 4 [default = 0];
+  // optional int32 parkingspace_room_id = 4;
   if (cached_has_bits & 0x00000040u) {
-    ::google::protobuf::internal::WireFormatLite::WriteInt32(4, this->floor(), output);
+    ::google::protobuf::internal::WireFormatLite::WriteInt32(4, this->parkingspace_room_id(), output);
   }
 
-  // optional float length = 5 [default = 0];
+  // optional .message.Direction parkingspace_direction = 5;
   if (cached_has_bits & 0x00000080u) {
-    ::google::protobuf::internal::WireFormatLite::WriteFloat(5, this->length(), output);
+    ::google::protobuf::internal::WireFormatLite::WriteEnum(
+      5, this->parkingspace_direction(), output);
   }
 
-  // optional float width = 6 [default = 0];
+  // optional int32 parkingspace_floor_id = 6;
   if (cached_has_bits & 0x00000100u) {
-    ::google::protobuf::internal::WireFormatLite::WriteFloat(6, this->width(), output);
+    ::google::protobuf::internal::WireFormatLite::WriteInt32(6, this->parkingspace_floor_id(), output);
   }
 
-  // optional float height = 7 [default = 0];
+  // optional float parkingspace_width = 7;
   if (cached_has_bits & 0x00000200u) {
-    ::google::protobuf::internal::WireFormatLite::WriteFloat(7, this->height(), output);
+    ::google::protobuf::internal::WireFormatLite::WriteFloat(7, this->parkingspace_width(), output);
   }
 
-  // optional .message.Parkspace_status parkspace_status = 8 [default = eParkspace_status_unknow];
+  // optional float parkingspace_height = 8;
   if (cached_has_bits & 0x00000400u) {
+    ::google::protobuf::internal::WireFormatLite::WriteFloat(8, this->parkingspace_height(), output);
+  }
+
+  // optional .message.Parkspace_status parkingspace_status = 9;
+  if (cached_has_bits & 0x00000800u) {
     ::google::protobuf::internal::WireFormatLite::WriteEnum(
-      8, this->parkspace_status(), output);
+      9, this->parkingspace_status(), output);
   }
 
-  // optional .message.Car_info car_info = 9;
+  // optional .message.Car_info car_info = 10;
   if (cached_has_bits & 0x00000004u) {
     ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
-      9, *this->car_info_, output);
+      10, *this->car_info_, output);
   }
 
-  // optional string entry_time = 10 [default = ""];
+  // optional string entry_time = 11;
   if (cached_has_bits & 0x00000001u) {
     ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
       this->entry_time().data(), static_cast<int>(this->entry_time().length()),
       ::google::protobuf::internal::WireFormat::SERIALIZE,
       "message.Parkspace_info.entry_time");
     ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
-      10, this->entry_time(), output);
+      11, this->entry_time(), output);
   }
 
-  // optional string leave_time = 11 [default = ""];
+  // optional string leave_time = 12;
   if (cached_has_bits & 0x00000002u) {
     ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
       this->leave_time().data(), static_cast<int>(this->leave_time().length()),
       ::google::protobuf::internal::WireFormat::SERIALIZE,
       "message.Parkspace_info.leave_time");
     ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
-      11, this->leave_time(), output);
+      12, this->leave_time(), output);
   }
 
-  // optional int32 block_id = 12 [default = 0];
-  if (cached_has_bits & 0x00000800u) {
-    ::google::protobuf::internal::WireFormatLite::WriteInt32(12, this->block_id(), output);
-  }
-
-  // optional .message.Parkspace_path parkspace_path = 13 [default = UNKNOW_PATH];
+  // optional .message.Parkspace_path parkspace_path = 13;
   if (cached_has_bits & 0x00001000u) {
     ::google::protobuf::internal::WireFormatLite::WriteEnum(
       13, this->parkspace_path(), output);
   }
 
-  // optional float path_estimate_time = 14 [default = 0];
+  // optional float path_estimate_time = 14;
   if (cached_has_bits & 0x00002000u) {
     ::google::protobuf::internal::WireFormatLite::WriteFloat(14, this->path_estimate_time(), output);
   }
 
-  // optional .message.Parkspace_status parkspace_status_target = 15 [default = eParkspace_status_unknow];
+  // optional .message.Parkspace_status parkspace_status_target = 15;
   if (cached_has_bits & 0x00004000u) {
     ::google::protobuf::internal::WireFormatLite::WriteEnum(
       15, this->parkspace_status_target(), output);
@@ -3222,56 +3229,62 @@ void Parkspace_info::SerializeWithCachedSizes(
   (void) cached_has_bits;
 
   cached_has_bits = _has_bits_[0];
-  // optional int32 parkspace_id = 1 [default = 0];
+  // optional int32 parkingspace_index_id = 1;
   if (cached_has_bits & 0x00000008u) {
-    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(1, this->parkspace_id(), target);
+    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(1, this->parkingspace_index_id(), target);
   }
 
-  // optional int32 index = 2 [default = 0];
+  // optional .message.Parkspace_type parkingspace_type = 2;
   if (cached_has_bits & 0x00000010u) {
-    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(2, this->index(), target);
+    target = ::google::protobuf::internal::WireFormatLite::WriteEnumToArray(
+      2, this->parkingspace_type(), target);
   }
 
-  // optional .message.Direction direction = 3 [default = eDirection_unknow];
+  // optional int32 parkingspace_unit_id = 3;
   if (cached_has_bits & 0x00000020u) {
-    target = ::google::protobuf::internal::WireFormatLite::WriteEnumToArray(
-      3, this->direction(), target);
+    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(3, this->parkingspace_unit_id(), target);
   }
 
-  // optional int32 floor = 4 [default = 0];
+  // optional int32 parkingspace_room_id = 4;
   if (cached_has_bits & 0x00000040u) {
-    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(4, this->floor(), target);
+    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(4, this->parkingspace_room_id(), target);
   }
 
-  // optional float length = 5 [default = 0];
+  // optional .message.Direction parkingspace_direction = 5;
   if (cached_has_bits & 0x00000080u) {
-    target = ::google::protobuf::internal::WireFormatLite::WriteFloatToArray(5, this->length(), target);
+    target = ::google::protobuf::internal::WireFormatLite::WriteEnumToArray(
+      5, this->parkingspace_direction(), target);
   }
 
-  // optional float width = 6 [default = 0];
+  // optional int32 parkingspace_floor_id = 6;
   if (cached_has_bits & 0x00000100u) {
-    target = ::google::protobuf::internal::WireFormatLite::WriteFloatToArray(6, this->width(), target);
+    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(6, this->parkingspace_floor_id(), target);
   }
 
-  // optional float height = 7 [default = 0];
+  // optional float parkingspace_width = 7;
   if (cached_has_bits & 0x00000200u) {
-    target = ::google::protobuf::internal::WireFormatLite::WriteFloatToArray(7, this->height(), target);
+    target = ::google::protobuf::internal::WireFormatLite::WriteFloatToArray(7, this->parkingspace_width(), target);
   }
 
-  // optional .message.Parkspace_status parkspace_status = 8 [default = eParkspace_status_unknow];
+  // optional float parkingspace_height = 8;
   if (cached_has_bits & 0x00000400u) {
+    target = ::google::protobuf::internal::WireFormatLite::WriteFloatToArray(8, this->parkingspace_height(), target);
+  }
+
+  // optional .message.Parkspace_status parkingspace_status = 9;
+  if (cached_has_bits & 0x00000800u) {
     target = ::google::protobuf::internal::WireFormatLite::WriteEnumToArray(
-      8, this->parkspace_status(), target);
+      9, this->parkingspace_status(), target);
   }
 
-  // optional .message.Car_info car_info = 9;
+  // optional .message.Car_info car_info = 10;
   if (cached_has_bits & 0x00000004u) {
     target = ::google::protobuf::internal::WireFormatLite::
       InternalWriteMessageToArray(
-        9, *this->car_info_, deterministic, target);
+        10, *this->car_info_, deterministic, target);
   }
 
-  // optional string entry_time = 10 [default = ""];
+  // optional string entry_time = 11;
   if (cached_has_bits & 0x00000001u) {
     ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
       this->entry_time().data(), static_cast<int>(this->entry_time().length()),
@@ -3279,10 +3292,10 @@ void Parkspace_info::SerializeWithCachedSizes(
       "message.Parkspace_info.entry_time");
     target =
       ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
-        10, this->entry_time(), target);
+        11, this->entry_time(), target);
   }
 
-  // optional string leave_time = 11 [default = ""];
+  // optional string leave_time = 12;
   if (cached_has_bits & 0x00000002u) {
     ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
       this->leave_time().data(), static_cast<int>(this->leave_time().length()),
@@ -3290,26 +3303,21 @@ void Parkspace_info::SerializeWithCachedSizes(
       "message.Parkspace_info.leave_time");
     target =
       ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
-        11, this->leave_time(), target);
-  }
-
-  // optional int32 block_id = 12 [default = 0];
-  if (cached_has_bits & 0x00000800u) {
-    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(12, this->block_id(), target);
+        12, this->leave_time(), target);
   }
 
-  // optional .message.Parkspace_path parkspace_path = 13 [default = UNKNOW_PATH];
+  // optional .message.Parkspace_path parkspace_path = 13;
   if (cached_has_bits & 0x00001000u) {
     target = ::google::protobuf::internal::WireFormatLite::WriteEnumToArray(
       13, this->parkspace_path(), target);
   }
 
-  // optional float path_estimate_time = 14 [default = 0];
+  // optional float path_estimate_time = 14;
   if (cached_has_bits & 0x00002000u) {
     target = ::google::protobuf::internal::WireFormatLite::WriteFloatToArray(14, this->path_estimate_time(), target);
   }
 
-  // optional .message.Parkspace_status parkspace_status_target = 15 [default = eParkspace_status_unknow];
+  // optional .message.Parkspace_status parkspace_status_target = 15;
   if (cached_has_bits & 0x00004000u) {
     target = ::google::protobuf::internal::WireFormatLite::WriteEnumToArray(
       15, this->parkspace_status_target(), target);
@@ -3333,96 +3341,97 @@ size_t Parkspace_info::ByteSizeLong() const {
         _internal_metadata_.unknown_fields());
   }
   if (_has_bits_[0 / 32] & 255u) {
-    // optional string entry_time = 10 [default = ""];
+    // optional string entry_time = 11;
     if (has_entry_time()) {
       total_size += 1 +
         ::google::protobuf::internal::WireFormatLite::StringSize(
           this->entry_time());
     }
 
-    // optional string leave_time = 11 [default = ""];
+    // optional string leave_time = 12;
     if (has_leave_time()) {
       total_size += 1 +
         ::google::protobuf::internal::WireFormatLite::StringSize(
           this->leave_time());
     }
 
-    // optional .message.Car_info car_info = 9;
+    // optional .message.Car_info car_info = 10;
     if (has_car_info()) {
       total_size += 1 +
         ::google::protobuf::internal::WireFormatLite::MessageSize(
           *this->car_info_);
     }
 
-    // optional int32 parkspace_id = 1 [default = 0];
-    if (has_parkspace_id()) {
+    // optional int32 parkingspace_index_id = 1;
+    if (has_parkingspace_index_id()) {
       total_size += 1 +
         ::google::protobuf::internal::WireFormatLite::Int32Size(
-          this->parkspace_id());
+          this->parkingspace_index_id());
     }
 
-    // optional int32 index = 2 [default = 0];
-    if (has_index()) {
+    // optional .message.Parkspace_type parkingspace_type = 2;
+    if (has_parkingspace_type()) {
       total_size += 1 +
-        ::google::protobuf::internal::WireFormatLite::Int32Size(
-          this->index());
+        ::google::protobuf::internal::WireFormatLite::EnumSize(this->parkingspace_type());
     }
 
-    // optional .message.Direction direction = 3 [default = eDirection_unknow];
-    if (has_direction()) {
+    // optional int32 parkingspace_unit_id = 3;
+    if (has_parkingspace_unit_id()) {
       total_size += 1 +
-        ::google::protobuf::internal::WireFormatLite::EnumSize(this->direction());
+        ::google::protobuf::internal::WireFormatLite::Int32Size(
+          this->parkingspace_unit_id());
     }
 
-    // optional int32 floor = 4 [default = 0];
-    if (has_floor()) {
+    // optional int32 parkingspace_room_id = 4;
+    if (has_parkingspace_room_id()) {
       total_size += 1 +
         ::google::protobuf::internal::WireFormatLite::Int32Size(
-          this->floor());
+          this->parkingspace_room_id());
     }
 
-    // optional float length = 5 [default = 0];
-    if (has_length()) {
-      total_size += 1 + 4;
+    // optional .message.Direction parkingspace_direction = 5;
+    if (has_parkingspace_direction()) {
+      total_size += 1 +
+        ::google::protobuf::internal::WireFormatLite::EnumSize(this->parkingspace_direction());
     }
 
   }
   if (_has_bits_[8 / 32] & 32512u) {
-    // optional float width = 6 [default = 0];
-    if (has_width()) {
-      total_size += 1 + 4;
+    // optional int32 parkingspace_floor_id = 6;
+    if (has_parkingspace_floor_id()) {
+      total_size += 1 +
+        ::google::protobuf::internal::WireFormatLite::Int32Size(
+          this->parkingspace_floor_id());
     }
 
-    // optional float height = 7 [default = 0];
-    if (has_height()) {
+    // optional float parkingspace_width = 7;
+    if (has_parkingspace_width()) {
       total_size += 1 + 4;
     }
 
-    // optional .message.Parkspace_status parkspace_status = 8 [default = eParkspace_status_unknow];
-    if (has_parkspace_status()) {
-      total_size += 1 +
-        ::google::protobuf::internal::WireFormatLite::EnumSize(this->parkspace_status());
+    // optional float parkingspace_height = 8;
+    if (has_parkingspace_height()) {
+      total_size += 1 + 4;
     }
 
-    // optional int32 block_id = 12 [default = 0];
-    if (has_block_id()) {
+    // optional .message.Parkspace_status parkingspace_status = 9;
+    if (has_parkingspace_status()) {
       total_size += 1 +
-        ::google::protobuf::internal::WireFormatLite::Int32Size(
-          this->block_id());
+        ::google::protobuf::internal::WireFormatLite::EnumSize(this->parkingspace_status());
     }
 
-    // optional .message.Parkspace_path parkspace_path = 13 [default = UNKNOW_PATH];
+    // optional .message.Parkspace_path parkspace_path = 13;
     if (has_parkspace_path()) {
       total_size += 1 +
         ::google::protobuf::internal::WireFormatLite::EnumSize(this->parkspace_path());
     }
 
-    // optional float path_estimate_time = 14 [default = 0];
+    // optional float path_estimate_time = 14;
     if (has_path_estimate_time()) {
       total_size += 1 + 4;
     }
 
-    // optional .message.Parkspace_status parkspace_status_target = 15 [default = eParkspace_status_unknow];
+    // optional .message.Parkspace_status parkspace_status_target = 15;
     if (has_parkspace_status_target()) {
       total_size += 1 +
         ::google::protobuf::internal::WireFormatLite::EnumSize(this->parkspace_status_target());
@@ -3472,34 +3481,34 @@ void Parkspace_info::MergeFrom(const Parkspace_info& from) {
       mutable_car_info()->::message::Car_info::MergeFrom(from.car_info());
     }
     if (cached_has_bits & 0x00000008u) {
-      parkspace_id_ = from.parkspace_id_;
+      parkingspace_index_id_ = from.parkingspace_index_id_;
     }
     if (cached_has_bits & 0x00000010u) {
-      index_ = from.index_;
+      parkingspace_type_ = from.parkingspace_type_;
     }
     if (cached_has_bits & 0x00000020u) {
-      direction_ = from.direction_;
+      parkingspace_unit_id_ = from.parkingspace_unit_id_;
     }
     if (cached_has_bits & 0x00000040u) {
-      floor_ = from.floor_;
+      parkingspace_room_id_ = from.parkingspace_room_id_;
     }
     if (cached_has_bits & 0x00000080u) {
-      length_ = from.length_;
+      parkingspace_direction_ = from.parkingspace_direction_;
     }
     _has_bits_[0] |= cached_has_bits;
   }
   if (cached_has_bits & 32512u) {
     if (cached_has_bits & 0x00000100u) {
-      width_ = from.width_;
+      parkingspace_floor_id_ = from.parkingspace_floor_id_;
     }
     if (cached_has_bits & 0x00000200u) {
-      height_ = from.height_;
+      parkingspace_width_ = from.parkingspace_width_;
     }
     if (cached_has_bits & 0x00000400u) {
-      parkspace_status_ = from.parkspace_status_;
+      parkingspace_height_ = from.parkingspace_height_;
     }
     if (cached_has_bits & 0x00000800u) {
-      block_id_ = from.block_id_;
+      parkingspace_status_ = from.parkingspace_status_;
     }
     if (cached_has_bits & 0x00001000u) {
       parkspace_path_ = from.parkspace_path_;
@@ -3541,15 +3550,15 @@ void Parkspace_info::InternalSwap(Parkspace_info* other) {
   entry_time_.Swap(&other->entry_time_);
   leave_time_.Swap(&other->leave_time_);
   swap(car_info_, other->car_info_);
-  swap(parkspace_id_, other->parkspace_id_);
-  swap(index_, other->index_);
-  swap(direction_, other->direction_);
-  swap(floor_, other->floor_);
-  swap(length_, other->length_);
-  swap(width_, other->width_);
-  swap(height_, other->height_);
-  swap(parkspace_status_, other->parkspace_status_);
-  swap(block_id_, other->block_id_);
+  swap(parkingspace_index_id_, other->parkingspace_index_id_);
+  swap(parkingspace_type_, other->parkingspace_type_);
+  swap(parkingspace_unit_id_, other->parkingspace_unit_id_);
+  swap(parkingspace_room_id_, other->parkingspace_room_id_);
+  swap(parkingspace_direction_, other->parkingspace_direction_);
+  swap(parkingspace_floor_id_, other->parkingspace_floor_id_);
+  swap(parkingspace_width_, other->parkingspace_width_);
+  swap(parkingspace_height_, other->parkingspace_height_);
+  swap(parkingspace_status_, other->parkingspace_status_);
   swap(parkspace_path_, other->parkspace_path_);
   swap(path_estimate_time_, other->path_estimate_time_);
   swap(parkspace_status_target_, other->parkspace_status_target_);

+ 244 - 243
message/message_base.pb.h

@@ -147,7 +147,7 @@ enum Communicator {
   eParkspace = 512,
   eMeasurer = 768,
   eMeasurer_sift_server = 769,
-  eDispatch_mamager = 1024,
+  eDispatch_manager = 1024,
   eDispatch_control = 1025
 };
 bool Communicator_IsValid(int value);
@@ -1199,10 +1199,10 @@ class Parkspace_info : public ::google::protobuf::Message /* @@protoc_insertion_
 
   // accessors -------------------------------------------------------
 
-  // optional string entry_time = 10 [default = ""];
+  // optional string entry_time = 11;
   bool has_entry_time() const;
   void clear_entry_time();
-  static const int kEntryTimeFieldNumber = 10;
+  static const int kEntryTimeFieldNumber = 11;
   const ::std::string& entry_time() const;
   void set_entry_time(const ::std::string& value);
   #if LANG_CXX11
@@ -1214,10 +1214,10 @@ class Parkspace_info : public ::google::protobuf::Message /* @@protoc_insertion_
   ::std::string* release_entry_time();
   void set_allocated_entry_time(::std::string* entry_time);
 
-  // optional string leave_time = 11 [default = ""];
+  // optional string leave_time = 12;
   bool has_leave_time() const;
   void clear_leave_time();
-  static const int kLeaveTimeFieldNumber = 11;
+  static const int kLeaveTimeFieldNumber = 12;
   const ::std::string& leave_time() const;
   void set_leave_time(const ::std::string& value);
   #if LANG_CXX11
@@ -1229,93 +1229,93 @@ class Parkspace_info : public ::google::protobuf::Message /* @@protoc_insertion_
   ::std::string* release_leave_time();
   void set_allocated_leave_time(::std::string* leave_time);
 
-  // optional .message.Car_info car_info = 9;
+  // optional .message.Car_info car_info = 10;
   bool has_car_info() const;
   void clear_car_info();
-  static const int kCarInfoFieldNumber = 9;
+  static const int kCarInfoFieldNumber = 10;
   const ::message::Car_info& car_info() const;
   ::message::Car_info* release_car_info();
   ::message::Car_info* mutable_car_info();
   void set_allocated_car_info(::message::Car_info* car_info);
 
-  // optional int32 parkspace_id = 1 [default = 0];
-  bool has_parkspace_id() const;
-  void clear_parkspace_id();
-  static const int kParkspaceIdFieldNumber = 1;
-  ::google::protobuf::int32 parkspace_id() const;
-  void set_parkspace_id(::google::protobuf::int32 value);
-
-  // optional int32 index = 2 [default = 0];
-  bool has_index() const;
-  void clear_index();
-  static const int kIndexFieldNumber = 2;
-  ::google::protobuf::int32 index() const;
-  void set_index(::google::protobuf::int32 value);
-
-  // optional .message.Direction direction = 3 [default = eDirection_unknow];
-  bool has_direction() const;
-  void clear_direction();
-  static const int kDirectionFieldNumber = 3;
-  ::message::Direction direction() const;
-  void set_direction(::message::Direction value);
-
-  // optional int32 floor = 4 [default = 0];
-  bool has_floor() const;
-  void clear_floor();
-  static const int kFloorFieldNumber = 4;
-  ::google::protobuf::int32 floor() const;
-  void set_floor(::google::protobuf::int32 value);
-
-  // optional float length = 5 [default = 0];
-  bool has_length() const;
-  void clear_length();
-  static const int kLengthFieldNumber = 5;
-  float length() const;
-  void set_length(float value);
-
-  // optional float width = 6 [default = 0];
-  bool has_width() const;
-  void clear_width();
-  static const int kWidthFieldNumber = 6;
-  float width() const;
-  void set_width(float value);
-
-  // optional float height = 7 [default = 0];
-  bool has_height() const;
-  void clear_height();
-  static const int kHeightFieldNumber = 7;
-  float height() const;
-  void set_height(float value);
-
-  // optional .message.Parkspace_status parkspace_status = 8 [default = eParkspace_status_unknow];
-  bool has_parkspace_status() const;
-  void clear_parkspace_status();
-  static const int kParkspaceStatusFieldNumber = 8;
-  ::message::Parkspace_status parkspace_status() const;
-  void set_parkspace_status(::message::Parkspace_status value);
-
-  // optional int32 block_id = 12 [default = 0];
-  bool has_block_id() const;
-  void clear_block_id();
-  static const int kBlockIdFieldNumber = 12;
-  ::google::protobuf::int32 block_id() const;
-  void set_block_id(::google::protobuf::int32 value);
-
-  // optional .message.Parkspace_path parkspace_path = 13 [default = UNKNOW_PATH];
+  // optional int32 parkingspace_index_id = 1;
+  bool has_parkingspace_index_id() const;
+  void clear_parkingspace_index_id();
+  static const int kParkingspaceIndexIdFieldNumber = 1;
+  ::google::protobuf::int32 parkingspace_index_id() const;
+  void set_parkingspace_index_id(::google::protobuf::int32 value);
+
+  // optional .message.Parkspace_type parkingspace_type = 2;
+  bool has_parkingspace_type() const;
+  void clear_parkingspace_type();
+  static const int kParkingspaceTypeFieldNumber = 2;
+  ::message::Parkspace_type parkingspace_type() const;
+  void set_parkingspace_type(::message::Parkspace_type value);
+
+  // optional int32 parkingspace_unit_id = 3;
+  bool has_parkingspace_unit_id() const;
+  void clear_parkingspace_unit_id();
+  static const int kParkingspaceUnitIdFieldNumber = 3;
+  ::google::protobuf::int32 parkingspace_unit_id() const;
+  void set_parkingspace_unit_id(::google::protobuf::int32 value);
+
+  // optional int32 parkingspace_room_id = 4;
+  bool has_parkingspace_room_id() const;
+  void clear_parkingspace_room_id();
+  static const int kParkingspaceRoomIdFieldNumber = 4;
+  ::google::protobuf::int32 parkingspace_room_id() const;
+  void set_parkingspace_room_id(::google::protobuf::int32 value);
+
+  // optional .message.Direction parkingspace_direction = 5;
+  bool has_parkingspace_direction() const;
+  void clear_parkingspace_direction();
+  static const int kParkingspaceDirectionFieldNumber = 5;
+  ::message::Direction parkingspace_direction() const;
+  void set_parkingspace_direction(::message::Direction value);
+
+  // optional int32 parkingspace_floor_id = 6;
+  bool has_parkingspace_floor_id() const;
+  void clear_parkingspace_floor_id();
+  static const int kParkingspaceFloorIdFieldNumber = 6;
+  ::google::protobuf::int32 parkingspace_floor_id() const;
+  void set_parkingspace_floor_id(::google::protobuf::int32 value);
+
+  // optional float parkingspace_width = 7;
+  bool has_parkingspace_width() const;
+  void clear_parkingspace_width();
+  static const int kParkingspaceWidthFieldNumber = 7;
+  float parkingspace_width() const;
+  void set_parkingspace_width(float value);
+
+  // optional float parkingspace_height = 8;
+  bool has_parkingspace_height() const;
+  void clear_parkingspace_height();
+  static const int kParkingspaceHeightFieldNumber = 8;
+  float parkingspace_height() const;
+  void set_parkingspace_height(float value);
+
+  // optional .message.Parkspace_status parkingspace_status = 9;
+  bool has_parkingspace_status() const;
+  void clear_parkingspace_status();
+  static const int kParkingspaceStatusFieldNumber = 9;
+  ::message::Parkspace_status parkingspace_status() const;
+  void set_parkingspace_status(::message::Parkspace_status value);
+
+  // optional .message.Parkspace_path parkspace_path = 13;
   bool has_parkspace_path() const;
   void clear_parkspace_path();
   static const int kParkspacePathFieldNumber = 13;
   ::message::Parkspace_path parkspace_path() const;
   void set_parkspace_path(::message::Parkspace_path value);
 
-  // optional float path_estimate_time = 14 [default = 0];
+  // optional float path_estimate_time = 14;
   bool has_path_estimate_time() const;
   void clear_path_estimate_time();
   static const int kPathEstimateTimeFieldNumber = 14;
   float path_estimate_time() const;
   void set_path_estimate_time(float value);
 
-  // optional .message.Parkspace_status parkspace_status_target = 15 [default = eParkspace_status_unknow];
+  // optional .message.Parkspace_status parkspace_status_target = 15;
   bool has_parkspace_status_target() const;
   void clear_parkspace_status_target();
   static const int kParkspaceStatusTargetFieldNumber = 15;
@@ -1324,30 +1324,30 @@ class Parkspace_info : public ::google::protobuf::Message /* @@protoc_insertion_
 
   // @@protoc_insertion_point(class_scope:message.Parkspace_info)
  private:
-  void set_has_parkspace_id();
-  void clear_has_parkspace_id();
-  void set_has_index();
-  void clear_has_index();
-  void set_has_direction();
-  void clear_has_direction();
-  void set_has_floor();
-  void clear_has_floor();
-  void set_has_length();
-  void clear_has_length();
-  void set_has_width();
-  void clear_has_width();
-  void set_has_height();
-  void clear_has_height();
-  void set_has_parkspace_status();
-  void clear_has_parkspace_status();
+  void set_has_parkingspace_index_id();
+  void clear_has_parkingspace_index_id();
+  void set_has_parkingspace_type();
+  void clear_has_parkingspace_type();
+  void set_has_parkingspace_unit_id();
+  void clear_has_parkingspace_unit_id();
+  void set_has_parkingspace_room_id();
+  void clear_has_parkingspace_room_id();
+  void set_has_parkingspace_direction();
+  void clear_has_parkingspace_direction();
+  void set_has_parkingspace_floor_id();
+  void clear_has_parkingspace_floor_id();
+  void set_has_parkingspace_width();
+  void clear_has_parkingspace_width();
+  void set_has_parkingspace_height();
+  void clear_has_parkingspace_height();
+  void set_has_parkingspace_status();
+  void clear_has_parkingspace_status();
   void set_has_car_info();
   void clear_has_car_info();
   void set_has_entry_time();
   void clear_has_entry_time();
   void set_has_leave_time();
   void clear_has_leave_time();
-  void set_has_block_id();
-  void clear_has_block_id();
   void set_has_parkspace_path();
   void clear_has_parkspace_path();
   void set_has_path_estimate_time();
@@ -1361,15 +1361,15 @@ class Parkspace_info : public ::google::protobuf::Message /* @@protoc_insertion_
   ::google::protobuf::internal::ArenaStringPtr entry_time_;
   ::google::protobuf::internal::ArenaStringPtr leave_time_;
   ::message::Car_info* car_info_;
-  ::google::protobuf::int32 parkspace_id_;
-  ::google::protobuf::int32 index_;
-  int direction_;
-  ::google::protobuf::int32 floor_;
-  float length_;
-  float width_;
-  float height_;
-  int parkspace_status_;
-  ::google::protobuf::int32 block_id_;
+  ::google::protobuf::int32 parkingspace_index_id_;
+  int parkingspace_type_;
+  ::google::protobuf::int32 parkingspace_unit_id_;
+  ::google::protobuf::int32 parkingspace_room_id_;
+  int parkingspace_direction_;
+  ::google::protobuf::int32 parkingspace_floor_id_;
+  float parkingspace_width_;
+  float parkingspace_height_;
+  int parkingspace_status_;
   int parkspace_path_;
   float path_estimate_time_;
   int parkspace_status_target_;
@@ -2095,201 +2095,226 @@ inline void Car_info::set_car_wheel_width(float value) {
 
 // Parkspace_info
 
-// optional int32 parkspace_id = 1 [default = 0];
-inline bool Parkspace_info::has_parkspace_id() const {
+// optional int32 parkingspace_index_id = 1;
+inline bool Parkspace_info::has_parkingspace_index_id() const {
   return (_has_bits_[0] & 0x00000008u) != 0;
 }
-inline void Parkspace_info::set_has_parkspace_id() {
+inline void Parkspace_info::set_has_parkingspace_index_id() {
   _has_bits_[0] |= 0x00000008u;
 }
-inline void Parkspace_info::clear_has_parkspace_id() {
+inline void Parkspace_info::clear_has_parkingspace_index_id() {
   _has_bits_[0] &= ~0x00000008u;
 }
-inline void Parkspace_info::clear_parkspace_id() {
-  parkspace_id_ = 0;
-  clear_has_parkspace_id();
+inline void Parkspace_info::clear_parkingspace_index_id() {
+  parkingspace_index_id_ = 0;
+  clear_has_parkingspace_index_id();
 }
-inline ::google::protobuf::int32 Parkspace_info::parkspace_id() const {
-  // @@protoc_insertion_point(field_get:message.Parkspace_info.parkspace_id)
-  return parkspace_id_;
+inline ::google::protobuf::int32 Parkspace_info::parkingspace_index_id() const {
+  // @@protoc_insertion_point(field_get:message.Parkspace_info.parkingspace_index_id)
+  return parkingspace_index_id_;
 }
-inline void Parkspace_info::set_parkspace_id(::google::protobuf::int32 value) {
-  set_has_parkspace_id();
-  parkspace_id_ = value;
-  // @@protoc_insertion_point(field_set:message.Parkspace_info.parkspace_id)
+inline void Parkspace_info::set_parkingspace_index_id(::google::protobuf::int32 value) {
+  set_has_parkingspace_index_id();
+  parkingspace_index_id_ = value;
+  // @@protoc_insertion_point(field_set:message.Parkspace_info.parkingspace_index_id)
 }
 
-// optional int32 index = 2 [default = 0];
-inline bool Parkspace_info::has_index() const {
+// optional .message.Parkspace_type parkingspace_type = 2;
+inline bool Parkspace_info::has_parkingspace_type() const {
   return (_has_bits_[0] & 0x00000010u) != 0;
 }
-inline void Parkspace_info::set_has_index() {
+inline void Parkspace_info::set_has_parkingspace_type() {
   _has_bits_[0] |= 0x00000010u;
 }
-inline void Parkspace_info::clear_has_index() {
+inline void Parkspace_info::clear_has_parkingspace_type() {
   _has_bits_[0] &= ~0x00000010u;
 }
-inline void Parkspace_info::clear_index() {
-  index_ = 0;
-  clear_has_index();
+inline void Parkspace_info::clear_parkingspace_type() {
+  parkingspace_type_ = 0;
+  clear_has_parkingspace_type();
 }
-inline ::google::protobuf::int32 Parkspace_info::index() const {
-  // @@protoc_insertion_point(field_get:message.Parkspace_info.index)
-  return index_;
+inline ::message::Parkspace_type Parkspace_info::parkingspace_type() const {
+  // @@protoc_insertion_point(field_get:message.Parkspace_info.parkingspace_type)
+  return static_cast< ::message::Parkspace_type >(parkingspace_type_);
 }
-inline void Parkspace_info::set_index(::google::protobuf::int32 value) {
-  set_has_index();
-  index_ = value;
-  // @@protoc_insertion_point(field_set:message.Parkspace_info.index)
+inline void Parkspace_info::set_parkingspace_type(::message::Parkspace_type value) {
+  assert(::message::Parkspace_type_IsValid(value));
+  set_has_parkingspace_type();
+  parkingspace_type_ = value;
+  // @@protoc_insertion_point(field_set:message.Parkspace_info.parkingspace_type)
 }
 
-// optional .message.Direction direction = 3 [default = eDirection_unknow];
-inline bool Parkspace_info::has_direction() const {
+// optional int32 parkingspace_unit_id = 3;
+inline bool Parkspace_info::has_parkingspace_unit_id() const {
   return (_has_bits_[0] & 0x00000020u) != 0;
 }
-inline void Parkspace_info::set_has_direction() {
+inline void Parkspace_info::set_has_parkingspace_unit_id() {
   _has_bits_[0] |= 0x00000020u;
 }
-inline void Parkspace_info::clear_has_direction() {
+inline void Parkspace_info::clear_has_parkingspace_unit_id() {
   _has_bits_[0] &= ~0x00000020u;
 }
-inline void Parkspace_info::clear_direction() {
-  direction_ = 0;
-  clear_has_direction();
+inline void Parkspace_info::clear_parkingspace_unit_id() {
+  parkingspace_unit_id_ = 0;
+  clear_has_parkingspace_unit_id();
 }
-inline ::message::Direction Parkspace_info::direction() const {
-  // @@protoc_insertion_point(field_get:message.Parkspace_info.direction)
-  return static_cast< ::message::Direction >(direction_);
+inline ::google::protobuf::int32 Parkspace_info::parkingspace_unit_id() const {
+  // @@protoc_insertion_point(field_get:message.Parkspace_info.parkingspace_unit_id)
+  return parkingspace_unit_id_;
 }
-inline void Parkspace_info::set_direction(::message::Direction value) {
-  assert(::message::Direction_IsValid(value));
-  set_has_direction();
-  direction_ = value;
-  // @@protoc_insertion_point(field_set:message.Parkspace_info.direction)
+inline void Parkspace_info::set_parkingspace_unit_id(::google::protobuf::int32 value) {
+  set_has_parkingspace_unit_id();
+  parkingspace_unit_id_ = value;
+  // @@protoc_insertion_point(field_set:message.Parkspace_info.parkingspace_unit_id)
 }
 
-// optional int32 floor = 4 [default = 0];
-inline bool Parkspace_info::has_floor() const {
+// optional int32 parkingspace_room_id = 4;
+inline bool Parkspace_info::has_parkingspace_room_id() const {
   return (_has_bits_[0] & 0x00000040u) != 0;
 }
-inline void Parkspace_info::set_has_floor() {
+inline void Parkspace_info::set_has_parkingspace_room_id() {
   _has_bits_[0] |= 0x00000040u;
 }
-inline void Parkspace_info::clear_has_floor() {
+inline void Parkspace_info::clear_has_parkingspace_room_id() {
   _has_bits_[0] &= ~0x00000040u;
 }
-inline void Parkspace_info::clear_floor() {
-  floor_ = 0;
-  clear_has_floor();
+inline void Parkspace_info::clear_parkingspace_room_id() {
+  parkingspace_room_id_ = 0;
+  clear_has_parkingspace_room_id();
 }
-inline ::google::protobuf::int32 Parkspace_info::floor() const {
-  // @@protoc_insertion_point(field_get:message.Parkspace_info.floor)
-  return floor_;
+inline ::google::protobuf::int32 Parkspace_info::parkingspace_room_id() const {
+  // @@protoc_insertion_point(field_get:message.Parkspace_info.parkingspace_room_id)
+  return parkingspace_room_id_;
 }
-inline void Parkspace_info::set_floor(::google::protobuf::int32 value) {
-  set_has_floor();
-  floor_ = value;
-  // @@protoc_insertion_point(field_set:message.Parkspace_info.floor)
+inline void Parkspace_info::set_parkingspace_room_id(::google::protobuf::int32 value) {
+  set_has_parkingspace_room_id();
+  parkingspace_room_id_ = value;
+  // @@protoc_insertion_point(field_set:message.Parkspace_info.parkingspace_room_id)
 }
 
-// optional float length = 5 [default = 0];
-inline bool Parkspace_info::has_length() const {
+// optional .message.Direction parkingspace_direction = 5;
+inline bool Parkspace_info::has_parkingspace_direction() const {
   return (_has_bits_[0] & 0x00000080u) != 0;
 }
-inline void Parkspace_info::set_has_length() {
+inline void Parkspace_info::set_has_parkingspace_direction() {
   _has_bits_[0] |= 0x00000080u;
 }
-inline void Parkspace_info::clear_has_length() {
+inline void Parkspace_info::clear_has_parkingspace_direction() {
   _has_bits_[0] &= ~0x00000080u;
 }
-inline void Parkspace_info::clear_length() {
-  length_ = 0;
-  clear_has_length();
+inline void Parkspace_info::clear_parkingspace_direction() {
+  parkingspace_direction_ = 0;
+  clear_has_parkingspace_direction();
 }
-inline float Parkspace_info::length() const {
-  // @@protoc_insertion_point(field_get:message.Parkspace_info.length)
-  return length_;
+inline ::message::Direction Parkspace_info::parkingspace_direction() const {
+  // @@protoc_insertion_point(field_get:message.Parkspace_info.parkingspace_direction)
+  return static_cast< ::message::Direction >(parkingspace_direction_);
 }
-inline void Parkspace_info::set_length(float value) {
-  set_has_length();
-  length_ = value;
-  // @@protoc_insertion_point(field_set:message.Parkspace_info.length)
+inline void Parkspace_info::set_parkingspace_direction(::message::Direction value) {
+  assert(::message::Direction_IsValid(value));
+  set_has_parkingspace_direction();
+  parkingspace_direction_ = value;
+  // @@protoc_insertion_point(field_set:message.Parkspace_info.parkingspace_direction)
 }
 
-// optional float width = 6 [default = 0];
-inline bool Parkspace_info::has_width() const {
+// optional int32 parkingspace_floor_id = 6;
+inline bool Parkspace_info::has_parkingspace_floor_id() const {
   return (_has_bits_[0] & 0x00000100u) != 0;
 }
-inline void Parkspace_info::set_has_width() {
+inline void Parkspace_info::set_has_parkingspace_floor_id() {
   _has_bits_[0] |= 0x00000100u;
 }
-inline void Parkspace_info::clear_has_width() {
+inline void Parkspace_info::clear_has_parkingspace_floor_id() {
   _has_bits_[0] &= ~0x00000100u;
 }
-inline void Parkspace_info::clear_width() {
-  width_ = 0;
-  clear_has_width();
+inline void Parkspace_info::clear_parkingspace_floor_id() {
+  parkingspace_floor_id_ = 0;
+  clear_has_parkingspace_floor_id();
 }
-inline float Parkspace_info::width() const {
-  // @@protoc_insertion_point(field_get:message.Parkspace_info.width)
-  return width_;
+inline ::google::protobuf::int32 Parkspace_info::parkingspace_floor_id() const {
+  // @@protoc_insertion_point(field_get:message.Parkspace_info.parkingspace_floor_id)
+  return parkingspace_floor_id_;
 }
-inline void Parkspace_info::set_width(float value) {
-  set_has_width();
-  width_ = value;
-  // @@protoc_insertion_point(field_set:message.Parkspace_info.width)
+inline void Parkspace_info::set_parkingspace_floor_id(::google::protobuf::int32 value) {
+  set_has_parkingspace_floor_id();
+  parkingspace_floor_id_ = value;
+  // @@protoc_insertion_point(field_set:message.Parkspace_info.parkingspace_floor_id)
 }
 
-// optional float height = 7 [default = 0];
-inline bool Parkspace_info::has_height() const {
+// optional float parkingspace_width = 7;
+inline bool Parkspace_info::has_parkingspace_width() const {
   return (_has_bits_[0] & 0x00000200u) != 0;
 }
-inline void Parkspace_info::set_has_height() {
+inline void Parkspace_info::set_has_parkingspace_width() {
   _has_bits_[0] |= 0x00000200u;
 }
-inline void Parkspace_info::clear_has_height() {
+inline void Parkspace_info::clear_has_parkingspace_width() {
   _has_bits_[0] &= ~0x00000200u;
 }
-inline void Parkspace_info::clear_height() {
-  height_ = 0;
-  clear_has_height();
+inline void Parkspace_info::clear_parkingspace_width() {
+  parkingspace_width_ = 0;
+  clear_has_parkingspace_width();
 }
-inline float Parkspace_info::height() const {
-  // @@protoc_insertion_point(field_get:message.Parkspace_info.height)
-  return height_;
+inline float Parkspace_info::parkingspace_width() const {
+  // @@protoc_insertion_point(field_get:message.Parkspace_info.parkingspace_width)
+  return parkingspace_width_;
 }
-inline void Parkspace_info::set_height(float value) {
-  set_has_height();
-  height_ = value;
-  // @@protoc_insertion_point(field_set:message.Parkspace_info.height)
+inline void Parkspace_info::set_parkingspace_width(float value) {
+  set_has_parkingspace_width();
+  parkingspace_width_ = value;
+  // @@protoc_insertion_point(field_set:message.Parkspace_info.parkingspace_width)
 }
 
-// optional .message.Parkspace_status parkspace_status = 8 [default = eParkspace_status_unknow];
-inline bool Parkspace_info::has_parkspace_status() const {
+// optional float parkingspace_height = 8;
+inline bool Parkspace_info::has_parkingspace_height() const {
   return (_has_bits_[0] & 0x00000400u) != 0;
 }
-inline void Parkspace_info::set_has_parkspace_status() {
+inline void Parkspace_info::set_has_parkingspace_height() {
   _has_bits_[0] |= 0x00000400u;
 }
-inline void Parkspace_info::clear_has_parkspace_status() {
+inline void Parkspace_info::clear_has_parkingspace_height() {
   _has_bits_[0] &= ~0x00000400u;
 }
-inline void Parkspace_info::clear_parkspace_status() {
-  parkspace_status_ = 0;
-  clear_has_parkspace_status();
+inline void Parkspace_info::clear_parkingspace_height() {
+  parkingspace_height_ = 0;
+  clear_has_parkingspace_height();
+}
+inline float Parkspace_info::parkingspace_height() const {
+  // @@protoc_insertion_point(field_get:message.Parkspace_info.parkingspace_height)
+  return parkingspace_height_;
+}
+inline void Parkspace_info::set_parkingspace_height(float value) {
+  set_has_parkingspace_height();
+  parkingspace_height_ = value;
+  // @@protoc_insertion_point(field_set:message.Parkspace_info.parkingspace_height)
+}
+
+// optional .message.Parkspace_status parkingspace_status = 9;
+inline bool Parkspace_info::has_parkingspace_status() const {
+  return (_has_bits_[0] & 0x00000800u) != 0;
+}
+inline void Parkspace_info::set_has_parkingspace_status() {
+  _has_bits_[0] |= 0x00000800u;
+}
+inline void Parkspace_info::clear_has_parkingspace_status() {
+  _has_bits_[0] &= ~0x00000800u;
+}
+inline void Parkspace_info::clear_parkingspace_status() {
+  parkingspace_status_ = 0;
+  clear_has_parkingspace_status();
 }
-inline ::message::Parkspace_status Parkspace_info::parkspace_status() const {
-  // @@protoc_insertion_point(field_get:message.Parkspace_info.parkspace_status)
-  return static_cast< ::message::Parkspace_status >(parkspace_status_);
+inline ::message::Parkspace_status Parkspace_info::parkingspace_status() const {
+  // @@protoc_insertion_point(field_get:message.Parkspace_info.parkingspace_status)
+  return static_cast< ::message::Parkspace_status >(parkingspace_status_);
 }
-inline void Parkspace_info::set_parkspace_status(::message::Parkspace_status value) {
+inline void Parkspace_info::set_parkingspace_status(::message::Parkspace_status value) {
   assert(::message::Parkspace_status_IsValid(value));
-  set_has_parkspace_status();
-  parkspace_status_ = value;
-  // @@protoc_insertion_point(field_set:message.Parkspace_info.parkspace_status)
+  set_has_parkingspace_status();
+  parkingspace_status_ = value;
+  // @@protoc_insertion_point(field_set:message.Parkspace_info.parkingspace_status)
 }
 
-// optional .message.Car_info car_info = 9;
+// optional .message.Car_info car_info = 10;
 inline bool Parkspace_info::has_car_info() const {
   return (_has_bits_[0] & 0x00000004u) != 0;
 }
@@ -2343,7 +2368,7 @@ inline void Parkspace_info::set_allocated_car_info(::message::Car_info* car_info
   // @@protoc_insertion_point(field_set_allocated:message.Parkspace_info.car_info)
 }
 
-// optional string entry_time = 10 [default = ""];
+// optional string entry_time = 11;
 inline bool Parkspace_info::has_entry_time() const {
   return (_has_bits_[0] & 0x00000001u) != 0;
 }
@@ -2406,7 +2431,7 @@ inline void Parkspace_info::set_allocated_entry_time(::std::string* entry_time)
   // @@protoc_insertion_point(field_set_allocated:message.Parkspace_info.entry_time)
 }
 
-// optional string leave_time = 11 [default = ""];
+// optional string leave_time = 12;
 inline bool Parkspace_info::has_leave_time() const {
   return (_has_bits_[0] & 0x00000002u) != 0;
 }
@@ -2469,31 +2494,7 @@ inline void Parkspace_info::set_allocated_leave_time(::std::string* leave_time)
   // @@protoc_insertion_point(field_set_allocated:message.Parkspace_info.leave_time)
 }
 
-// optional int32 block_id = 12 [default = 0];
-inline bool Parkspace_info::has_block_id() const {
-  return (_has_bits_[0] & 0x00000800u) != 0;
-}
-inline void Parkspace_info::set_has_block_id() {
-  _has_bits_[0] |= 0x00000800u;
-}
-inline void Parkspace_info::clear_has_block_id() {
-  _has_bits_[0] &= ~0x00000800u;
-}
-inline void Parkspace_info::clear_block_id() {
-  block_id_ = 0;
-  clear_has_block_id();
-}
-inline ::google::protobuf::int32 Parkspace_info::block_id() const {
-  // @@protoc_insertion_point(field_get:message.Parkspace_info.block_id)
-  return block_id_;
-}
-inline void Parkspace_info::set_block_id(::google::protobuf::int32 value) {
-  set_has_block_id();
-  block_id_ = value;
-  // @@protoc_insertion_point(field_set:message.Parkspace_info.block_id)
-}
-
-// optional .message.Parkspace_path parkspace_path = 13 [default = UNKNOW_PATH];
+// optional .message.Parkspace_path parkspace_path = 13;
 inline bool Parkspace_info::has_parkspace_path() const {
   return (_has_bits_[0] & 0x00001000u) != 0;
 }
@@ -2518,7 +2519,7 @@ inline void Parkspace_info::set_parkspace_path(::message::Parkspace_path value)
   // @@protoc_insertion_point(field_set:message.Parkspace_info.parkspace_path)
 }
 
-// optional float path_estimate_time = 14 [default = 0];
+// optional float path_estimate_time = 14;
 inline bool Parkspace_info::has_path_estimate_time() const {
   return (_has_bits_[0] & 0x00002000u) != 0;
 }
@@ -2542,7 +2543,7 @@ inline void Parkspace_info::set_path_estimate_time(float value) {
   // @@protoc_insertion_point(field_set:message.Parkspace_info.path_estimate_time)
 }
 
-// optional .message.Parkspace_status parkspace_status_target = 15 [default = eParkspace_status_unknow];
+// optional .message.Parkspace_status parkspace_status_target = 15;
 inline bool Parkspace_info::has_parkspace_status_target() const {
   return (_has_bits_[0] & 0x00004000u) != 0;
 }

+ 20 - 17
message/message_base.proto

@@ -73,7 +73,7 @@ enum Communicator
     //测量单元的服务器
     eMeasurer_sift_server=0x0301;
     //调度机构
-    eDispatch_mamager=0x0400;
+    eDispatch_manager=0x0400;
     //调度机构
     eDispatch_control=0x0401;
     //...
@@ -191,22 +191,25 @@ enum Parkspace_type
 //单个车位基本信息与状态信息,车位信息以及车位上的车辆信息
 message Parkspace_info
 {
-    optional int32              parkspace_id=1[default = 0];         //车位编号
-    optional int32              index=2[default = 0];                //同层编号
-    optional Direction          direction=3[default = eDirection_unknow];            //前后
-    optional int32              floor=4[default = 0];                //楼层
-    optional float              length=5[default = 0];               //车位长
-    optional float              width=6[default = 0];                //车位宽
-    optional float              height=7[default = 0];               //车位高
-    optional Parkspace_status   parkspace_status=8[default = eParkspace_status_unknow];     //车位当前状态
-    optional Car_info           car_info=9;              //当前车位存入车辆的凭证号
-    optional string             entry_time=10[default = ""];          //入场时间
-    optional string             leave_time=11[default = ""];          //离场时间
-    optional int32              block_id=12[default = 0];            //区块编号
-
-    optional Parkspace_path     parkspace_path = 13[default = UNKNOW_PATH];            // 车位分配路线
-    optional float              path_estimate_time = 14[default = 0];        //车位分配路线 time(s)
-    optional Parkspace_status   parkspace_status_target=15[default = eParkspace_status_unknow];     //车位目标状态
+    optional int32              parkingspace_index_id = 1;            //车位ID
+    optional Parkspace_type     parkingspace_type = 2;                //车位类型
+    optional int32              parkingspace_unit_id = 3;            //车位单元号
+    optional int32              parkingspace_room_id = 4;             //同层编号
+    optional Direction          parkingspace_direction = 5;           //前后
+    optional int32              parkingspace_floor_id = 6;            //楼层
+    optional float              parkingspace_width = 7;               //车位宽
+    optional float              parkingspace_height = 8;              //车位高
+    optional Parkspace_status   parkingspace_status = 9;              //车位当前状态
+    optional Car_info           car_info = 10;                        //当前车位存入车辆的凭证号
+    optional string             entry_time = 11;                      //入场时间
+    optional string             leave_time = 12;                      //离场时间
+
+
+
+    optional Parkspace_path     parkspace_path = 13;            // 车位分配路线
+    optional float              path_estimate_time = 14;        //车位分配路线 time(s)
+    optional Parkspace_status   parkspace_status_target=15;     //车位目标状态
+
 }
 
 /*

+ 5 - 0
setting/communication.prototxt

@@ -20,7 +20,12 @@ communication_parameters
  #  bind_string:"tcp://192.168.2.167:30002"
   # connect_string_vector:"tcp://192.168.2.183:30003"
  #  connect_string_vector:"tcp://192.168.2.183:30000"
+
+
     connect_string_vector:"tcp://192.168.2.127:30000"
 
+    connect_string_vector:"tcp://192.168.2.113:30000"
+    bind_string:"tcp://192.168.2.168:30009"
+
 }
 

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 257 - 257
setting/dispatch_coordinates.prototxt


+ 1 - 1
snap7_communication/snap7_communication_base.cpp

@@ -165,7 +165,7 @@ void Snap7_communication_base::communication_thread()
 Error_manager t_error;
 	while (m_communication_condition.is_alive())
 	{
-		m_communication_condition.wait();
+		m_communication_condition.wait_for_millisecond(1);
 
 		//s7的通信时间较长, 所以将发送和接受分开
 		//发送多个时, 必须加锁后一起发送, 不允许分段写入, 防止数据错误

+ 5 - 2
system/system_communication.cpp

@@ -42,7 +42,6 @@ Error_manager System_communication::check_executer(Communication_message*  p_msg
 	}
 	else
 	{
-
 		return System_executor::get_instance_references().check_executer(p_msg);
 	}
 	return Error_code::SUCCESS;
@@ -58,7 +57,11 @@ Error_manager System_communication::execute_msg(Communication_message* p_msg)
 Error_manager System_communication::encapsulate_send_data()
 {
 	Error_manager t_error;
-	return System_executor::get_instance_references().encapsulate_send_status();
+//	return System_executor::get_instance_references().encapsulate_send_status();
+
+
+
+
 /*
 	message::Measure_request_msg t_measure_request_msg;
 	t_measure_request_msg.mutable_base_info()->set_msg_type(message::Message_type::eLocate_request_msg);

+ 31 - 11
system/system_executor.cpp

@@ -40,8 +40,9 @@ Error_manager System_executor::check_msg(Communication_message* p_msg)
 							 "  POINTER IS NULL ");
 	}
 
+
 	//检查接受人
-	if ( p_msg->get_receiver() == Communication_message::Communicator::eDispatch )
+	if ( p_msg->get_receiver() == Communication_message::Communicator::eDispatch_mamager )
 	{
 		//检查消息类型
 		switch ( p_msg->get_message_type() )
@@ -95,7 +96,7 @@ Error_manager System_executor::check_executer(Communication_message* p_msg)
 	}
 
 	//检查接受人
-	if ( p_msg->get_receiver() == Communication_message::Communicator::eDispatch )
+	if ( p_msg->get_receiver() == Communication_message::Communicator::eDispatch_mamager )
 	{
 		return Dispatch_manager::get_instance_references().check_execute_msg(p_msg);
 	}
@@ -114,7 +115,7 @@ Error_manager System_executor::execute_msg(Communication_message* p_msg)
 	}
 
 	//检查接受人
-	if ( p_msg->get_receiver() == Communication_message::Communicator::eDispatch )
+	if ( p_msg->get_receiver() == Communication_message::Communicator::eDispatch_mamager )
 	{
 		switch ( p_msg->get_message_type() )
 		{
@@ -158,6 +159,7 @@ Error_manager System_executor::execute_msg(Communication_message* p_msg)
 				//针对消息类型, 对消息进行二次解析
 				if (t_dispatch_control_request_msg.ParseFromString(p_msg->get_message_buf()))
 				{
+
 					//往线程池添加执行任务, 之后会唤醒一个线程去执行他.
 					m_thread_pool.enqueue(&System_executor::execute_for_dispatch_control_request_msg, this,
 										  t_dispatch_control_request_msg	);
@@ -255,7 +257,7 @@ Error_manager System_executor::encapsulate_send_status()
 	message::Dispatch_terminal_status_msg t_dispatch_terminal_status_msg;
 	t_dispatch_terminal_status_msg.mutable_base_info()->set_msg_type(message::Message_type::eDispatch_status_msg);
 	t_dispatch_terminal_status_msg.mutable_base_info()->set_timeout_ms(5000);
-	t_dispatch_terminal_status_msg.mutable_base_info()->set_sender(message::Communicator::eDispatch_mamager);
+	t_dispatch_terminal_status_msg.mutable_base_info()->set_sender(message::Communicator::eDispatch_manager);
 	t_dispatch_terminal_status_msg.mutable_base_info()->set_receiver(message::Communicator::eMain);
 	t_dispatch_terminal_status_msg.set_terminal_id(t_dispatch_id*2+0);
 	t_dispatch_terminal_status_msg.set_terminal_status(message::Terminal_status::E_TERMINAL_READY);
@@ -265,7 +267,7 @@ Error_manager System_executor::encapsulate_send_status()
 
 	t_dispatch_terminal_status_msg.mutable_base_info()->set_msg_type(message::Message_type::eDispatch_status_msg);
 	t_dispatch_terminal_status_msg.mutable_base_info()->set_timeout_ms(5000);
-	t_dispatch_terminal_status_msg.mutable_base_info()->set_sender(message::Communicator::eDispatch_mamager);
+	t_dispatch_terminal_status_msg.mutable_base_info()->set_sender(message::Communicator::eDispatch_manager);
 	t_dispatch_terminal_status_msg.mutable_base_info()->set_receiver(message::Communicator::eMain);
 	t_dispatch_terminal_status_msg.set_terminal_id(t_dispatch_id*2+0);
 	t_dispatch_terminal_status_msg.set_terminal_status(message::Terminal_status::E_TERMINAL_READY);
@@ -275,7 +277,7 @@ Error_manager System_executor::encapsulate_send_status()
 
 	t_dispatch_terminal_status_msg.mutable_base_info()->set_msg_type(message::Message_type::eDispatch_status_msg);
 	t_dispatch_terminal_status_msg.mutable_base_info()->set_timeout_ms(5000);
-	t_dispatch_terminal_status_msg.mutable_base_info()->set_sender(message::Communicator::eDispatch_mamager);
+	t_dispatch_terminal_status_msg.mutable_base_info()->set_sender(message::Communicator::eDispatch_manager);
 	t_dispatch_terminal_status_msg.mutable_base_info()->set_receiver(message::Communicator::eMain);
 	t_dispatch_terminal_status_msg.set_terminal_id(t_dispatch_id*2+1);
 	t_dispatch_terminal_status_msg.set_terminal_status(message::Terminal_status::E_TERMINAL_READY);
@@ -285,7 +287,7 @@ Error_manager System_executor::encapsulate_send_status()
 
 	t_dispatch_terminal_status_msg.mutable_base_info()->set_msg_type(message::Message_type::eDispatch_status_msg);
 	t_dispatch_terminal_status_msg.mutable_base_info()->set_timeout_ms(5000);
-	t_dispatch_terminal_status_msg.mutable_base_info()->set_sender(message::Communicator::eDispatch_mamager);
+	t_dispatch_terminal_status_msg.mutable_base_info()->set_sender(message::Communicator::eDispatch_manager);
 	t_dispatch_terminal_status_msg.mutable_base_info()->set_receiver(message::Communicator::eMain);
 	t_dispatch_terminal_status_msg.set_terminal_id(t_dispatch_id*2+1);
 	t_dispatch_terminal_status_msg.set_terminal_status(message::Terminal_status::E_TERMINAL_READY);
@@ -373,7 +375,7 @@ void System_executor::execute_for_dispatch(std::string command_key, Dispatch_man
 	message::Dispatch_response_msg t_dispatch_response_msg;
 	t_dispatch_response_msg.mutable_base_info()->set_msg_type(message::Message_type::eDispatch_response_msg);
 	t_dispatch_response_msg.mutable_base_info()->set_timeout_ms(5000);
-	t_dispatch_response_msg.mutable_base_info()->set_sender(message::Communicator::eDispatch_mamager);
+	t_dispatch_response_msg.mutable_base_info()->set_sender(message::Communicator::eDispatch_manager);
 	t_dispatch_response_msg.mutable_base_info()->set_receiver(message::Communicator::eMain);
 
 	t_dispatch_response_msg.set_command_key(command_key);
@@ -396,19 +398,37 @@ void System_executor::execute_for_dispatch(std::string command_key, Dispatch_man
 //调度模块的处理函数
 void System_executor::execute_for_dispatch_request_msg(message::Dispatch_request_msg dispatch_request_msg)
 {
-	Dispatch_manager::get_instance_references().execute_for_dispatch_request_msg(dispatch_request_msg);
+	Error_manager t_error;
+	t_error = Dispatch_manager::get_instance_references().execute_for_dispatch_request_msg(dispatch_request_msg);
+	if ( t_error != Error_code::SUCCESS )
+	{
+		LOG(INFO) << " System_executor::execute_for_dispatch_request_msg "<< this;
+		LOG(INFO) << t_error.to_string() << "   "<< this;
+	}
 	return;
 }
 //调度模块 //调度总规划的答复(调度算法->调度管理)
 void System_executor::execute_for_dispatch_plan_response_msg(message::Dispatch_plan_response_msg dispatch_plan_response_msg)
 {
-	Dispatch_manager::get_instance_references().execute_for_dispatch_plan_response_msg(dispatch_plan_response_msg);
+	Error_manager t_error;
+	t_error = Dispatch_manager::get_instance_references().execute_for_dispatch_plan_response_msg(dispatch_plan_response_msg);
+	if ( t_error != Error_code::SUCCESS )
+	{
+		LOG(INFO) << " System_executor::execute_for_dispatch_request_msg "<< this;
+		LOG(INFO) << t_error.to_string() << "   "<< this;
+	}
 	return;
 }
 //调度模块 //调度控制的任务请求(调度算法->调度管理)
 void System_executor::execute_for_dispatch_control_request_msg(message::Dispatch_control_request_msg dispatch_control_request_msg)
 {
-	Dispatch_manager::get_instance_references().execute_for_dispatch_control_request_msg(dispatch_control_request_msg);
+	Error_manager t_error;
+	t_error = Dispatch_manager::get_instance_references().execute_for_dispatch_control_request_msg(dispatch_control_request_msg);
+	if ( t_error != Error_code::SUCCESS )
+	{
+		LOG(INFO) << " System_executor::execute_for_dispatch_request_msg "<< this;
+		LOG(INFO) << t_error.to_string() << "   "<< this;
+	}
 	return;
 }
 

+ 2 - 0
task/task_base.cpp

@@ -124,6 +124,8 @@ void  Task_Base::set_task_statu(Task_statu task_statu)
 {
 	m_task_statu = task_statu;
 }
+
+
 //获取状态说明
 std::string Task_Base::get_task_statu_information()
 {

+ 1 - 0
task/task_base.h

@@ -153,6 +153,7 @@ public:
     Task_statu  get_task_statu();
 	//设置 任务单状态
 	void  set_task_statu(Task_statu task_statu);
+
     //获取 状态说明
     std::string get_task_statu_information();
 	//设置 状态说明

+ 62 - 125
tool/common_data.cpp

@@ -164,139 +164,39 @@ void Common_data::copy_data(message::Car_info& car_info_out, const Car_informati
 
 void Common_data::copy_data(Parkspace_information& parkspace_information_out, const message::Parkspace_info& parkspace_info_in)
 {
-	if ( parkspace_info_in.has_parkspace_id() )
-	{
-		parkspace_information_out.parkspace_id = parkspace_info_in.parkspace_id();
-	}
-	else
-	{
-		parkspace_information_out.parkspace_id = 0;
-	}
-	if ( parkspace_info_in.has_block_id() )
-	{
-		parkspace_information_out.block_id = parkspace_info_in.block_id();
-	}
-	else
-	{
-		parkspace_information_out.block_id = 0;
-	}
-	if ( parkspace_info_in.has_floor() )
-	{
-		parkspace_information_out.floor_id = parkspace_info_in.floor();
-	}
-	else
-	{
-		parkspace_information_out.floor_id = 0;
-	}
-	if ( parkspace_info_in.has_index() )
-	{
-		parkspace_information_out.room_id = parkspace_info_in.index();
-	}
-	else
-	{
-		parkspace_information_out.room_id = 0;
-	}
-	if ( parkspace_info_in.has_direction() )
-	{
-		parkspace_information_out.direction = (Common_data::Direction)parkspace_info_in.direction();
-	}
-	else
-	{
-		parkspace_information_out.direction = DIRECTION_UNKNOW;
-	}
-	if ( parkspace_info_in.has_length() )
-	{
-		parkspace_information_out.parkspace_length = parkspace_info_in.length();
-	}
-	else
-	{
-		parkspace_information_out.parkspace_length = 0;
-	}
-	if ( parkspace_info_in.has_width() )
-	{
-		parkspace_information_out.parkspace_width = parkspace_info_in.width();
-	}
-	else
-	{
-		parkspace_information_out.parkspace_width = 0;
-	}
-	if ( parkspace_info_in.has_height() )
-	{
-		parkspace_information_out.parkspace_height = parkspace_info_in.height();
-	}
-	else
-	{
-		parkspace_information_out.parkspace_height = 0;
-	}
-	if ( parkspace_info_in.has_parkspace_status() )
-	{
-		parkspace_information_out.parkspace_status = (Common_data::Parkspace_status)parkspace_info_in.parkspace_status();
-	}
-	else
-	{
-		parkspace_information_out.parkspace_status = PARKSPACE_EMPTY;
-	}
-	if ( parkspace_info_in.has_car_info() )
-	{
+
+		parkspace_information_out.parkingspace_index_id = parkspace_info_in.parkingspace_index_id();
+		parkspace_information_out.parkingspace_type = (Common_data::Parkspace_type)parkspace_info_in.parkingspace_type();
+
+		parkspace_information_out.parkingspace_unit_id = parkspace_info_in.parkingspace_unit_id();
+		parkspace_information_out.parkingspace_floor_id = parkspace_info_in.parkingspace_floor_id();
+		parkspace_information_out.parkingspace_room_id = parkspace_info_in.parkingspace_room_id();
+		parkspace_information_out.parkingspace_direction = (Common_data::Direction)parkspace_info_in.parkingspace_direction();
+
+		parkspace_information_out.parkingspace_width = parkspace_info_in.parkingspace_width();
+		parkspace_information_out.parkingspace_height = parkspace_info_in.parkingspace_height();
+		parkspace_information_out.parkingspace_status = (Common_data::Parkspace_status)parkspace_info_in.parkingspace_status();
+
 		copy_data(parkspace_information_out.car_information, (message::Car_info&) parkspace_info_in.car_info());
-	}
-	else
-	{
-		Car_information temp;
-		parkspace_information_out.car_information = temp;
-	}
-	if ( parkspace_info_in.has_entry_time() )
-	{
 		parkspace_information_out.car_entry_time = parkspace_info_in.entry_time();
-	}
-	else
-	{
-		parkspace_information_out.car_entry_time.clear();
-	}
-	if ( parkspace_info_in.has_leave_time() )
-	{
 		parkspace_information_out.car_leave_time = parkspace_info_in.leave_time();
-	}
-	else
-	{
-		parkspace_information_out.car_leave_time.clear();
-	}
-	if ( parkspace_info_in.has_parkspace_path() )
-	{
+
 		parkspace_information_out.parkspace_path = (Common_data::Parkspace_path)parkspace_info_in.parkspace_path();
-	}
-	else
-	{
-		parkspace_information_out.parkspace_path = UNKNOW_PATH;
-	}
-	if ( parkspace_info_in.has_path_estimate_time() )
-	{
 		parkspace_information_out.path_estimate_time = parkspace_info_in.path_estimate_time();
-	}
-	else
-	{
-		parkspace_information_out.car_leave_time.clear();
-	}
-	if ( parkspace_info_in.has_parkspace_status_target() )
-	{
 		parkspace_information_out.parkspace_status_target = (Common_data::Parkspace_status)parkspace_info_in.parkspace_status_target();
-	}
-	else
-	{
-		parkspace_information_out.parkspace_status_target = PARKSPACE_EMPTY;
-	}
+
 }
 void Common_data::copy_data(message::Parkspace_info& parkspace_info_out, const Parkspace_information& parkspace_information_in)
 {
-	parkspace_info_out.set_parkspace_id(parkspace_information_in.parkspace_id);
-	parkspace_info_out.set_block_id(parkspace_information_in.block_id);
-	parkspace_info_out.set_floor(parkspace_information_in.floor_id);
-	parkspace_info_out.set_index(parkspace_information_in.room_id);
-	parkspace_info_out.set_direction((message::Direction)parkspace_information_in.direction);
-	parkspace_info_out.set_length(parkspace_information_in.parkspace_length);
-	parkspace_info_out.set_width(parkspace_information_in.parkspace_width);
-	parkspace_info_out.set_height(parkspace_information_in.parkspace_height);
-	parkspace_info_out.set_parkspace_status((message::Parkspace_status)parkspace_information_in.parkspace_status);
+	parkspace_info_out.set_parkingspace_index_id(parkspace_information_in.parkingspace_index_id);
+	parkspace_info_out.set_parkingspace_type((message::Parkspace_type)parkspace_information_in.parkingspace_type);
+	parkspace_info_out.set_parkingspace_unit_id(parkspace_information_in.parkingspace_unit_id);
+	parkspace_info_out.set_parkingspace_room_id(parkspace_information_in.parkingspace_room_id);
+	parkspace_info_out.set_parkingspace_direction((message::Direction)parkspace_information_in.parkingspace_direction);
+	parkspace_info_out.set_parkingspace_floor_id(parkspace_information_in.parkingspace_floor_id);
+	parkspace_info_out.set_parkingspace_width(parkspace_information_in.parkingspace_width);
+	parkspace_info_out.set_parkingspace_height(parkspace_information_in.parkingspace_height);
+	parkspace_info_out.set_parkingspace_status((message::Parkspace_status)parkspace_information_in.parkingspace_status);
 	copy_data(*parkspace_info_out.mutable_car_info(), parkspace_information_in.car_information);
 	parkspace_info_out.set_entry_time(parkspace_information_in.car_entry_time);
 	parkspace_info_out.set_leave_time(parkspace_information_in.car_leave_time);
@@ -364,7 +264,33 @@ void Common_data::transform_data(Car_measure_information& car_measure_informatio
 }
 
 
-bool Common_data::approximate(float a, float b, float rate)
+void Common_data::scaling(Car_measure_information& car_measure_information, float rate)
+{
+	car_measure_information.center_x *= rate;
+	car_measure_information.center_y *= rate;
+	car_measure_information.car_length *= rate;
+	car_measure_information.car_width *= rate;
+	car_measure_information.car_height *= rate;
+	car_measure_information.car_wheel_base *= rate;
+	car_measure_information.car_wheel_width *= rate;
+}
+void Common_data::scaling(Car_information& car_information, float rate)
+{
+	car_information.car_length *= rate;
+	car_information.car_width *= rate;
+	car_information.car_height *= rate;
+	car_information.car_wheel_base *= rate;
+	car_information.car_wheel_width *= rate;
+
+}
+void Common_data::scaling(Parkspace_information& parkspace_information, float rate)
+{
+	parkspace_information.parkingspace_width *= rate;
+	parkspace_information.parkingspace_height *= rate;
+	scaling(parkspace_information.car_information, rate);
+}
+
+bool Common_data::approximate_rate(float a, float b, float rate)
 {
 	if ( a >= b*(1-rate) && a< b*(1+rate))
 	{
@@ -376,6 +302,17 @@ bool Common_data::approximate(float a, float b, float rate)
 	}
 }
 
+bool Common_data::approximate_difference(float a, float b, float difference)
+{
+	if ( a >= (b-difference) && a< (b+difference) )
+	{
+		return true;
+	}
+	else
+	{
+		return false;
+	}
+}
 
 
 

+ 14 - 10
tool/common_data.h

@@ -107,17 +107,17 @@ public:
 	//单个车位基本信息与状态信息,车位信息以及车位上的车辆信息
 	struct Parkspace_information
 	{
-		int              	parkspace_id=0;         //车位编号
+		int              	parkingspace_index_id=0;         //车位编号
+		Parkspace_type     	parkingspace_type=UNKNOW_PARKSPACE_TYPE;               //车位类型
 
-		int              	block_id=0;            //区块编号
-		int              	floor_id=0;                //楼层
-		int              	room_id=0;                //同层编号
-		Direction    		direction=DIRECTION_UNKNOW;            //前后
+		int              	parkingspace_unit_id=0;            //区块编号
+		int              	parkingspace_floor_id=0;                //楼层
+		int              	parkingspace_room_id=0;                //同层编号
+		Direction    		parkingspace_direction=DIRECTION_UNKNOW;            //前后
 
-		float              	parkspace_length=0;               //车位长
-		float              	parkspace_width=0;                //车位宽
-		float              	parkspace_height=0;               //车位高
-		Parkspace_status   	parkspace_status=PARKSPACE_EMPTY;     //车位当前状态
+		float              	parkingspace_width=0;                //车位宽
+		float              	parkingspace_height=0;               //车位高
+		Parkspace_status   	parkingspace_status=PARKSPACE_EMPTY;     //车位当前状态
 
 		Car_information    	car_information;              //当前车位存入车辆的凭证号
 		std::string        	car_entry_time;          //入场时间
@@ -141,9 +141,13 @@ public:
 	static void transform_data(Car_wheel_information& car_wheel_information_out, const Car_measure_information& car_measure_information_in);
 	static void transform_data(Car_measure_information& car_measure_information_out, const Car_wheel_information& car_wheel_information_in);
 
+	static void scaling(Car_measure_information& car_measure_information, float rate);
+	static void scaling(Car_information& car_information, float rate);
+	static void scaling(Parkspace_information& parkspace_information, float rate);
 
-	static bool approximate(float a, float b, float rate);
 
+	static bool approximate_rate(float a, float b, float rate);
+	static bool approximate_difference(float a, float b, float difference);
 
 };