瀏覽代碼

20220616, 修复单片机->plc的io数据, 修复雷达->plc的旋转后坐标, 取消调度plc的超时报错,改为无限等待.

huli 3 年之前
父節點
當前提交
4f1993eefb

+ 1 - 0
dispatch/dispatch_manager.cpp

@@ -322,6 +322,7 @@ Error_manager Dispatch_manager::encapsulate_send_dispatch_manager_status()
 		}
 	}
 
+
 	//E_DISPATCH_POCESS_WORKING
 	{
 		if ( m_dispatch_plc.get_dispatch_plc_status() == Dispatch_plc::Dispatch_plc_status::DISPATCH_PLC_REQUEST ||

+ 6 - 2
dispatch/dispatch_plc.cpp

@@ -232,6 +232,7 @@ void Dispatch_plc::execute_thread_fun()
 				}
 				case DISPATCH_PLC_REQUEST://给plc发送请求
 				{
+#ifdef PLC_OVER_TIME_TO_ERROR
 					if ( std::chrono::system_clock::now() - m_start_time > std::chrono::milliseconds(m_timeout_ms) )
 					{
 						//超时直接报错
@@ -240,6 +241,7 @@ void Dispatch_plc::execute_thread_fun()
 						m_dispatch_plc_status = DISPATCH_PLC_RESPONSE;
 					}
 					else
+#endif
 					{
 						//封装 给plc的调度请求
 						m_result = encapsulate_dispatch_request_to_plc();
@@ -256,6 +258,7 @@ void Dispatch_plc::execute_thread_fun()
 				}
 				case DISPATCH_PLC_WORKING:
 				{
+#ifdef PLC_OVER_TIME_TO_ERROR
 					if ( std::chrono::system_clock::now() - m_start_time > std::chrono::milliseconds(m_timeout_ms) )
 					{
 						//超时直接报错
@@ -264,6 +267,7 @@ void Dispatch_plc::execute_thread_fun()
 						m_dispatch_plc_status = DISPATCH_PLC_RESPONSE;
 					}
 					else
+#endif
 					{
 						update_dispatch_plc_communication();
 						//检查plc答复反馈
@@ -404,7 +408,7 @@ Error_manager Dispatch_plc::encapsulate_dispatch_request_to_plc()
 		m_request_car_wheel_base = m_dispatch_request_msg.locate_information().locate_wheel_base();
 		m_request_car_wheel_width = m_dispatch_request_msg.locate_information().locate_wheel_width();
 		m_request_uniformed_car_x = m_dispatch_request_msg.locate_information().uniformed_car_x();
-		m_request_uniformed_car_x = m_dispatch_request_msg.locate_information().uniformed_car_y();
+		m_request_uniformed_car_y = m_dispatch_request_msg.locate_information().uniformed_car_y();
 	}
 	else
 	{
@@ -423,7 +427,7 @@ Error_manager Dispatch_plc::encapsulate_dispatch_request_to_plc()
 		m_request_car_wheel_base = m_dispatch_request_msg.locate_information().locate_wheel_base();
 		m_request_car_wheel_width = m_dispatch_request_msg.locate_information().locate_wheel_width();
 		m_request_uniformed_car_x = m_dispatch_request_msg.locate_information().uniformed_car_x();
-		m_request_uniformed_car_x = m_dispatch_request_msg.locate_information().uniformed_car_y();
+		m_request_uniformed_car_y = m_dispatch_request_msg.locate_information().uniformed_car_y();
 	}
 
 	if ( m_dispatch_request_msg.parkspace_info_ex_size() ==1 )

+ 4 - 3
error_code/error_code.h

@@ -5,9 +5,10 @@
 //#define PROCESS_TEST 1
 //#define TIME_TEST 1
 
-#define PLC_S7_COMMUNICATION 1	//是否开启plc的通信
-#define WAIT_PLC_RESPONSE 1		//是否等待plc的答复
-//#define MEASURE_TO_PLC_CORRECTION 1		//修正感测数据
+#define PLC_S7_COMMUNICATION 1	//是否开启plc的通信, 1:开启和plc的通信, 注释:关闭和plc的通信
+#define WAIT_PLC_RESPONSE 1		//是否等待plc的答复, 1:等待plc的答复, 注释:不等待plc的答复,直接向主控返回成功
+//#define MEASURE_TO_PLC_CORRECTION 1		//修正感测数据, 1:对感测数据进行修正, 注释:不修改感测数据.由感测模块去调整
+//#define PLC_OVER_TIME_TO_ERROR 1		//在等待plc的答复时, 是否超时报错, 1:超时报错, 注释:即使超时也要无限等待,直到plc的答复(可能正常完成或者异常完成)
 
 
 //Error_code是错误码的底层通用模块,

+ 251 - 168
message/dispatch_message.pb.cc

@@ -293,6 +293,8 @@ const ::google::protobuf::uint32 TableStruct::offsets[] GOOGLE_PROTOBUF_ATTRIBUT
   GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Dispatch_process_information, car_type_),
   GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Dispatch_process_information, dispatch_process_status_),
   GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Dispatch_process_information, m_wait_number_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Dispatch_process_information, m_working_total_time_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Dispatch_process_information, m_working_remaining_time_),
   0,
   1,
   4,
@@ -302,6 +304,8 @@ const ::google::protobuf::uint32 TableStruct::offsets[] GOOGLE_PROTOBUF_ATTRIBUT
   5,
   6,
   7,
+  8,
+  9,
   GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Dispatch_terminal_status_msg, _has_bits_),
   GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::message::Dispatch_terminal_status_msg, _internal_metadata_),
   ~0u,  // no _extensions_
@@ -512,15 +516,15 @@ const ::google::protobuf::uint32 TableStruct::offsets[] GOOGLE_PROTOBUF_ATTRIBUT
   ~0u,  // no _weak_field_map_
 };
 static const ::google::protobuf::internal::MigrationSchema schemas[] GOOGLE_PROTOBUF_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
-  { 0, 14, sizeof(::message::Dispatch_process_information)},
-  { 23, 36, sizeof(::message::Dispatch_terminal_status_msg)},
-  { 44, 56, sizeof(::message::Dispatch_request_msg)},
-  { 63, 76, sizeof(::message::Dispatch_response_msg)},
-  { 84, 108, sizeof(::message::Catcher_data)},
-  { 127, 151, sizeof(::message::Carrier_data)},
-  { 170, 192, sizeof(::message::Passageway_data)},
-  { 209, 220, sizeof(::message::Dispatch_manager_status_msg)},
-  { 226, 231, sizeof(::message::Dispatch_manager_data_msg)},
+  { 0, 16, sizeof(::message::Dispatch_process_information)},
+  { 27, 40, sizeof(::message::Dispatch_terminal_status_msg)},
+  { 48, 60, sizeof(::message::Dispatch_request_msg)},
+  { 67, 80, sizeof(::message::Dispatch_response_msg)},
+  { 88, 112, sizeof(::message::Catcher_data)},
+  { 131, 155, sizeof(::message::Carrier_data)},
+  { 174, 196, sizeof(::message::Passageway_data)},
+  { 213, 224, sizeof(::message::Dispatch_manager_status_msg)},
+  { 230, 235, sizeof(::message::Dispatch_manager_data_msg)},
 };
 
 static ::google::protobuf::Message const * const file_default_instances[] = {
@@ -558,7 +562,7 @@ void AddDescriptorsImpl() {
   InitDefaults();
   static const char descriptor[] GOOGLE_PROTOBUF_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
       "\n\026dispatch_message.proto\022\007message\032\022messa"
-      "ge_base.proto\"\246\003\n\034Dispatch_process_infor"
+      "ge_base.proto\"\346\003\n\034Dispatch_process_infor"
       "mation\022\027\n\017car_numberPlate\030\001 \001(\t\022\023\n\013comma"
       "nd_key\030\002 \001(\t\022E\n\031dispatch_motion_directio"
       "n\030\003 \001(\0162\".message.Dispatch_motion_direct"
@@ -568,162 +572,163 @@ void AddDescriptorsImpl() {
       "\030\006 \003(\0132\027.message.Parkspace_info\022#\n\010car_t"
       "ype\030\007 \001(\0162\021.message.Car_type\022A\n\027dispatch"
       "_process_status\030\010 \001(\0162 .message.Dispatch"
-      "_process_status\022\025\n\rm_wait_number\030\t \001(\005\"\202"
-      "\004\n\034Dispatch_terminal_status_msg\022%\n\tbase_"
-      "info\030\001 \002(\0132\022.message.Base_info\022%\n\tid_str"
-      "uct\030\002 \001(\0132\022.message.Id_struct\0221\n\017termina"
-      "l_status\030\003 \002(\0162\030.message.Terminal_status"
-      "\022;\n\024passageway_direction\030\004 \002(\0162\035.message"
-      ".Passageway_direction\022X\n)dispatch_store_"
-      "process_information_vector\030\005 \003(\0132%.messa"
-      "ge.Dispatch_process_information\0226\n.dispa"
-      "tch_store_process_information_updata_tim"
-      "e\030\006 \001(\t\022Y\n*dispatch_pickup_process_infor"
-      "mation_vector\030\007 \003(\0132%.message.Dispatch_p"
-      "rocess_information\0227\n/dispatch_pickup_pr"
-      "ocess_information_updata_time\030\010 \001(\t\"\322\002\n\024"
-      "Dispatch_request_msg\022%\n\tbase_info\030\001 \002(\0132"
-      "\022.message.Base_info\022\023\n\013command_key\030\002 \002(\t"
-      "\022E\n\031dispatch_motion_direction\030\003 \001(\0162\".me"
-      "ssage.Dispatch_motion_direction\022%\n\tid_st"
-      "ruct\030\004 \001(\0132\022.message.Id_struct\0227\n\022locate"
-      "_information\030\005 \001(\0132\033.message.Locate_info"
-      "rmation\0222\n\021parkspace_info_ex\030\006 \003(\0132\027.mes"
-      "sage.Parkspace_info\022#\n\010car_type\030\007 \001(\0162\021."
-      "message.Car_type\"\202\003\n\025Dispatch_response_m"
-      "sg\022%\n\tbase_info\030\001 \002(\0132\022.message.Base_inf"
-      "o\022\023\n\013command_key\030\002 \002(\t\022E\n\031dispatch_motio"
-      "n_direction\030\003 \001(\0162\".message.Dispatch_mot"
-      "ion_direction\022%\n\tid_struct\030\004 \001(\0132\022.messa"
-      "ge.Id_struct\0227\n\022locate_information\030\005 \001(\013"
-      "2\033.message.Locate_information\0222\n\021parkspa"
-      "ce_info_ex\030\006 \003(\0132\027.message.Parkspace_inf"
-      "o\022#\n\010car_type\030\007 \001(\0162\021.message.Car_type\022-"
-      "\n\rerror_manager\030\010 \001(\0132\026.message.Error_ma"
-      "nager\"\313\005\n\014Catcher_data\022;\n\024dispatch_devic"
-      "e_type\030\001 \002(\0162\035.message.Dispatch_device_t"
-      "ype\022\?\n\026dispatch_device_status\030\002 \002(\0162\037.me"
-      "ssage.Dispatch_device_status\022\021\n\tdevice_i"
-      "d\030\003 \002(\005\022=\n\024actual_device_status\030\004 \001(\0162\037."
-      "message.Hardware_device_status\0220\n\022actual"
-      "_load_status\030\005 \001(\0162\024.message.Load_status"
-      "\022\035\n\025actual_coordinates_id\030\006 \001(\005\022\020\n\010actua"
-      "l_x\030\007 \001(\002\022\020\n\010actual_y\030\010 \001(\002\022\020\n\010actual_b\030"
-      "\t \001(\002\022\020\n\010actual_z\030\n \001(\002\022\021\n\tactual_d1\030\013 \001"
-      "(\002\022\021\n\tactual_d2\030\014 \001(\002\0223\n\024actual_clamp_mo"
-      "tion1\030\r \001(\0162\025.message.Clamp_motion\0223\n\024ac"
-      "tual_clamp_motion2\030\016 \001(\0162\025.message.Clamp"
-      "_motion\0223\n\024actual_clamp_motion3\030\017 \001(\0162\025."
-      "message.Clamp_motion\0223\n\024actual_clamp_mot"
-      "ion4\030\020 \001(\0162\025.message.Clamp_motion\022\031\n\021act"
-      "ual_error_code\030\021 \001(\t\022\033\n\023actual_warning_c"
-      "ode\030\022 \001(\t\022 \n\030actual_error_description\030\023 "
-      "\001(\t\"\207\006\n\014Carrier_data\022;\n\024dispatch_device_"
-      "type\030\001 \002(\0162\035.message.Dispatch_device_typ"
-      "e\022\?\n\026dispatch_device_status\030\002 \002(\0162\037.mess"
-      "age.Dispatch_device_status\022\021\n\tdevice_id\030"
-      "\003 \002(\005\022=\n\024actual_device_status\030\004 \001(\0162\037.me"
-      "ssage.Hardware_device_status\0220\n\022actual_l"
-      "oad_status\030\005 \001(\0162\024.message.Load_status\022\035"
-      "\n\025actual_coordinates_id\030\006 \001(\005\022\020\n\010actual_"
-      "x\030\007 \001(\002\022\020\n\010actual_y\030\010 \001(\002\022\020\n\010actual_z\030\t "
-      "\001(\002\022\021\n\tactual_y1\030\n \001(\002\022\021\n\tactual_y2\030\013 \001("
-      "\002\0223\n\024actual_clamp_motion1\030\014 \001(\0162\025.messag"
-      "e.Clamp_motion\0223\n\024actual_clamp_motion2\030\r"
-      " \001(\0162\025.message.Clamp_motion\022H\n\036actual_sm"
-      "all_sports_car_motion\030\016 \001(\0162 .message.Sm"
-      "all_sports_car_motion\0225\n\026actual_joint_mo"
-      "tion_x1\030\017 \001(\0162\025.message.Joint_motion\0225\n\026"
-      "actual_joint_motion_x2\030\020 \001(\0162\025.message.J"
-      "oint_motion\022\031\n\021actual_error_code\030\021 \001(\t\022\033"
-      "\n\023actual_warning_code\030\022 \001(\t\022 \n\030actual_er"
-      "ror_description\030\023 \001(\t\"\275\007\n\017Passageway_dat"
-      "a\022;\n\024dispatch_device_type\030\001 \002(\0162\035.messag"
-      "e.Dispatch_device_type\022\?\n\026dispatch_devic"
-      "e_status\030\002 \002(\0162\037.message.Dispatch_device"
-      "_status\022\021\n\tdevice_id\030\003 \002(\005\022=\n\024actual_dev"
-      "ice_status\030\004 \001(\0162\037.message.Hardware_devi"
-      "ce_status\0227\n\031actual_inside_load_status\030\005"
-      " \001(\0162\024.message.Load_status\0228\n\032actual_out"
-      "side_load_status\030\006 \001(\0162\024.message.Load_st"
-      "atus\022J\n\"actual_front_overstep_the_bounda"
-      "ry\030\007 \001(\0162\036.message.Overstep_the_boundary"
-      "\022I\n!actual_back_overstep_the_boundary\030\010 "
-      "\001(\0162\036.message.Overstep_the_boundary\022K\n#a"
-      "ctual_height_overstep_the_boundary\030\t \001(\016"
-      "2\036.message.Overstep_the_boundary\0228\n\032actu"
-      "al_outside_door_sensor\030\n \001(\0162\024.message.L"
-      "oad_status\0227\n\031actual_inside_door_motion\030"
-      "\013 \001(\0162\024.message.Door_motion\0228\n\032actual_ou"
-      "tside_door_motion\030\014 \001(\0162\024.message.Door_m"
-      "otion\022:\n\034actual_turntable_load_status\030\r "
-      "\001(\0162\024.message.Load_status\022@\n\032actual_turn"
-      "table_direction\030\016 \001(\0162\034.message.Turntabl"
-      "e_direction\022\031\n\021actual_error_code\030\017 \001(\t\022\033"
-      "\n\023actual_warning_code\030\020 \001(\t\022 \n\030actual_er"
-      "ror_description\030\021 \001(\t\"\265\002\n\033Dispatch_manag"
-      "er_status_msg\022%\n\tbase_info\030\001 \002(\0132\022.messa"
-      "ge.Base_info\022\023\n\013dispatch_id\030\002 \002(\005\022A\n\027dis"
-      "patch_manager_status\030\003 \002(\0162 .message.Dis"
-      "patch_manager_status\022/\n\020catcher_data_map"
-      "\030\004 \003(\0132\025.message.Catcher_data\022/\n\020carrier"
-      "_data_map\030\005 \003(\0132\025.message.Carrier_data\0225"
-      "\n\023passageway_data_map\030\006 \003(\0132\030.message.Pa"
-      "ssageway_data\"\033\n\031Dispatch_manager_data_m"
-      "sg*\201\001\n\017Terminal_status\022\025\n\021E_TERMINAL_UNK"
-      "NOW\020\000\022\024\n\020E_TERMINAL_READY\020\001\022\024\n\020E_TERMINA"
-      "L_STORE\020\002\022\025\n\021E_TERMINAL_PICKUP\020\003\022\024\n\020E_TE"
-      "RMINAL_FAULT\020\n*B\n\024Passageway_direction\022\013"
-      "\n\007E_INLET\020\000\022\014\n\010E_OUTLET\020\001\022\017\n\013E_BILATERAL"
-      "\020\002*\253\001\n\027Dispatch_process_status\022\034\n\030E_DISP"
-      "ATCH_POCESS_UNKNOW\020\000\022\032\n\026E_DISPATCH_POCES"
-      "S_WAIT\020\001\022\035\n\031E_DISPATCH_POCESS_WORKING\020\002\022"
-      "\032\n\026E_DISPATCH_POCESS_OVER\020\003\022\033\n\027E_DISPATC"
-      "H_POCESS_FAULT\020d*>\n\031Dispatch_motion_dire"
-      "ction\022\017\n\013E_STORE_CAR\020\000\022\020\n\014E_PICKUP_CAR\020\001"
-      "*\261\001\n\027Dispatch_manager_status\022\035\n\031E_DISPAT"
-      "CH_MANAGER_UNKNOW\020\000\022\034\n\030E_DISPATCH_MANAGE"
-      "R_READY\020\001\022\034\n\030E_DISPATCH_MANAGER_STORE\020\002\022"
-      "\035\n\031E_DISPATCH_MANAGER_PICKUP\020\003\022\034\n\030E_DISP"
-      "ATCH_MANAGER_FAULT\020d*\200\003\n\026Dispatch_device"
-      "_status\022\032\n\026DISPATCH_DEVICE_UNKNOW\020\000\022\031\n\025D"
-      "ISPATCH_DEVICE_READY\020\001\022\030\n\024DISPATCH_DEVIC"
-      "E_BUSY\020\002\022\"\n\036DISPATCH_DEVICE_ONE_LEVEL_OV"
-      "ER\020\003\022\"\n\036DISPATCH_DEVICE_ONE_LEVEL_WORK\020\004"
-      "\022\"\n\036DISPATCH_DEVICE_TWO_LEVEL_OVER\020\005\022\"\n\036"
-      "DISPATCH_DEVICE_TWO_LEVEL_WORK\020\006\022$\n DISP"
-      "ATCH_DEVICE_THREE_LEVEL_OVER\020\007\022$\n DISPAT"
-      "CH_DEVICE_THREE_LEVEL_WORK\020\010\022\031\n\025DISPATCH"
-      "_DEVICE_FAULT\020d\022\036\n\032DISPATCH_DEVICE_DISCO"
-      "NNECT\020e*n\n\023Dispatch_task_level\022\033\n\027DISPAT"
-      "CH_TASK_ONE_LEVEL\020\001\022\033\n\027DISPATCH_TASK_TWO"
-      "_LEVEL\020\002\022\035\n\031DISPATCH_TASK_THREE_LEVEL\020\003*"
-      "K\n\014Clamp_motion\022\025\n\021E_CLAMP_NO_ACTION\020\000\022\021"
-      "\n\rE_CLAMP_TIGHT\020\001\022\021\n\rE_CLAMP_LOOSE\020\002*R\n\014"
-      "Joint_motion\022\025\n\021E_JOINT_NO_ACTION\020\000\022\024\n\020E"
-      "_JOINT_HOLD_OUT\020\001\022\025\n\021E_JOINT_TAKE_BACK\020\002"
-      "*y\n\027Small_sports_car_motion\022\034\n\030E_SMALL_S"
-      "PORTS_NO_ACTION\020\000\022\037\n\033E_SMALL_SPORTS_CAR_"
-      "GET_AWAY\020\001\022\037\n\033E_SMALL_SPORTS_CAR_GET_BAC"
-      "K\020\002*l\n\016Respons_status\022\023\n\017RESPONS_WORKING"
-      "\020\000\022\020\n\014RESPONS_OVER\020\001\022\027\n\023RESPONS_MINOR_ER"
-      "ROR\020d\022\032\n\026RESPONS_CRITICAL_ERROR\020e*\252\001\n\026Ha"
-      "rdware_device_status\022\022\n\016DEVICE_UNKNOWN\020\000"
-      "\022\020\n\014DEVICE_READY\020\001\022\022\n\016DEVICE_WORKING\020\002\022\031"
-      "\n\025DEVICE_EMERGENCY_STOP\020\003\022\023\n\017DEVICE_UNSA"
-      "FETY\020\004\022\024\n\020DEVICE_COLLISION\020\005\022\020\n\014DEVICE_F"
-      "AULT\020\006*9\n\013Load_status\022\020\n\014LOAD_UNKNOWN\020\000\022"
-      "\014\n\010HAVE_CAR\020\001\022\n\n\006NO_CAR\020\002*w\n\023Turntable_d"
-      "irection\022\037\n\033TURNTABLE_DIRECTION_UNKNOWN\020"
-      "\000\022\036\n\032TURNTABLE_DIRECTION_INSIDE\020\001\022\037\n\033TUR"
-      "NTABLE_DIRECTION_OUTSIDE\020\002*N\n\013Door_motio"
-      "n\022\020\n\014DOOR_UNKNOWN\020\000\022\r\n\tDOOR_OPEN\020\001\022\016\n\nDO"
-      "OR_CLOSE\020\002\022\016\n\nDOOR_ERROR\020\003*C\n\025Overstep_t"
-      "he_boundary\022\023\n\017BOUNDARY_NORMAL\020\000\022\025\n\021BOUN"
-      "DARY_OVERSTEP\020\001"
+      "_process_status\022\025\n\rm_wait_number\030\t \001(\005\022\034"
+      "\n\024m_working_total_time\030\n \001(\002\022 \n\030m_workin"
+      "g_remaining_time\030\013 \001(\002\"\202\004\n\034Dispatch_term"
+      "inal_status_msg\022%\n\tbase_info\030\001 \002(\0132\022.mes"
+      "sage.Base_info\022%\n\tid_struct\030\002 \001(\0132\022.mess"
+      "age.Id_struct\0221\n\017terminal_status\030\003 \002(\0162\030"
+      ".message.Terminal_status\022;\n\024passageway_d"
+      "irection\030\004 \002(\0162\035.message.Passageway_dire"
+      "ction\022X\n)dispatch_store_process_informat"
+      "ion_vector\030\005 \003(\0132%.message.Dispatch_proc"
+      "ess_information\0226\n.dispatch_store_proces"
+      "s_information_updata_time\030\006 \001(\t\022Y\n*dispa"
+      "tch_pickup_process_information_vector\030\007 "
+      "\003(\0132%.message.Dispatch_process_informati"
+      "on\0227\n/dispatch_pickup_process_informatio"
+      "n_updata_time\030\010 \001(\t\"\322\002\n\024Dispatch_request"
+      "_msg\022%\n\tbase_info\030\001 \002(\0132\022.message.Base_i"
+      "nfo\022\023\n\013command_key\030\002 \002(\t\022E\n\031dispatch_mot"
+      "ion_direction\030\003 \001(\0162\".message.Dispatch_m"
+      "otion_direction\022%\n\tid_struct\030\004 \001(\0132\022.mes"
+      "sage.Id_struct\0227\n\022locate_information\030\005 \001"
+      "(\0132\033.message.Locate_information\0222\n\021parks"
+      "pace_info_ex\030\006 \003(\0132\027.message.Parkspace_i"
+      "nfo\022#\n\010car_type\030\007 \001(\0162\021.message.Car_type"
+      "\"\202\003\n\025Dispatch_response_msg\022%\n\tbase_info\030"
+      "\001 \002(\0132\022.message.Base_info\022\023\n\013command_key"
+      "\030\002 \002(\t\022E\n\031dispatch_motion_direction\030\003 \001("
+      "\0162\".message.Dispatch_motion_direction\022%\n"
+      "\tid_struct\030\004 \001(\0132\022.message.Id_struct\0227\n\022"
+      "locate_information\030\005 \001(\0132\033.message.Locat"
+      "e_information\0222\n\021parkspace_info_ex\030\006 \003(\013"
+      "2\027.message.Parkspace_info\022#\n\010car_type\030\007 "
+      "\001(\0162\021.message.Car_type\022-\n\rerror_manager\030"
+      "\010 \001(\0132\026.message.Error_manager\"\313\005\n\014Catche"
+      "r_data\022;\n\024dispatch_device_type\030\001 \002(\0162\035.m"
+      "essage.Dispatch_device_type\022\?\n\026dispatch_"
+      "device_status\030\002 \002(\0162\037.message.Dispatch_d"
+      "evice_status\022\021\n\tdevice_id\030\003 \002(\005\022=\n\024actua"
+      "l_device_status\030\004 \001(\0162\037.message.Hardware"
+      "_device_status\0220\n\022actual_load_status\030\005 \001"
+      "(\0162\024.message.Load_status\022\035\n\025actual_coord"
+      "inates_id\030\006 \001(\005\022\020\n\010actual_x\030\007 \001(\002\022\020\n\010act"
+      "ual_y\030\010 \001(\002\022\020\n\010actual_b\030\t \001(\002\022\020\n\010actual_"
+      "z\030\n \001(\002\022\021\n\tactual_d1\030\013 \001(\002\022\021\n\tactual_d2\030"
+      "\014 \001(\002\0223\n\024actual_clamp_motion1\030\r \001(\0162\025.me"
+      "ssage.Clamp_motion\0223\n\024actual_clamp_motio"
+      "n2\030\016 \001(\0162\025.message.Clamp_motion\0223\n\024actua"
+      "l_clamp_motion3\030\017 \001(\0162\025.message.Clamp_mo"
+      "tion\0223\n\024actual_clamp_motion4\030\020 \001(\0162\025.mes"
+      "sage.Clamp_motion\022\031\n\021actual_error_code\030\021"
+      " \001(\t\022\033\n\023actual_warning_code\030\022 \001(\t\022 \n\030act"
+      "ual_error_description\030\023 \001(\t\"\207\006\n\014Carrier_"
+      "data\022;\n\024dispatch_device_type\030\001 \002(\0162\035.mes"
+      "sage.Dispatch_device_type\022\?\n\026dispatch_de"
+      "vice_status\030\002 \002(\0162\037.message.Dispatch_dev"
+      "ice_status\022\021\n\tdevice_id\030\003 \002(\005\022=\n\024actual_"
+      "device_status\030\004 \001(\0162\037.message.Hardware_d"
+      "evice_status\0220\n\022actual_load_status\030\005 \001(\016"
+      "2\024.message.Load_status\022\035\n\025actual_coordin"
+      "ates_id\030\006 \001(\005\022\020\n\010actual_x\030\007 \001(\002\022\020\n\010actua"
+      "l_y\030\010 \001(\002\022\020\n\010actual_z\030\t \001(\002\022\021\n\tactual_y1"
+      "\030\n \001(\002\022\021\n\tactual_y2\030\013 \001(\002\0223\n\024actual_clam"
+      "p_motion1\030\014 \001(\0162\025.message.Clamp_motion\0223"
+      "\n\024actual_clamp_motion2\030\r \001(\0162\025.message.C"
+      "lamp_motion\022H\n\036actual_small_sports_car_m"
+      "otion\030\016 \001(\0162 .message.Small_sports_car_m"
+      "otion\0225\n\026actual_joint_motion_x1\030\017 \001(\0162\025."
+      "message.Joint_motion\0225\n\026actual_joint_mot"
+      "ion_x2\030\020 \001(\0162\025.message.Joint_motion\022\031\n\021a"
+      "ctual_error_code\030\021 \001(\t\022\033\n\023actual_warning"
+      "_code\030\022 \001(\t\022 \n\030actual_error_description\030"
+      "\023 \001(\t\"\275\007\n\017Passageway_data\022;\n\024dispatch_de"
+      "vice_type\030\001 \002(\0162\035.message.Dispatch_devic"
+      "e_type\022\?\n\026dispatch_device_status\030\002 \002(\0162\037"
+      ".message.Dispatch_device_status\022\021\n\tdevic"
+      "e_id\030\003 \002(\005\022=\n\024actual_device_status\030\004 \001(\016"
+      "2\037.message.Hardware_device_status\0227\n\031act"
+      "ual_inside_load_status\030\005 \001(\0162\024.message.L"
+      "oad_status\0228\n\032actual_outside_load_status"
+      "\030\006 \001(\0162\024.message.Load_status\022J\n\"actual_f"
+      "ront_overstep_the_boundary\030\007 \001(\0162\036.messa"
+      "ge.Overstep_the_boundary\022I\n!actual_back_"
+      "overstep_the_boundary\030\010 \001(\0162\036.message.Ov"
+      "erstep_the_boundary\022K\n#actual_height_ove"
+      "rstep_the_boundary\030\t \001(\0162\036.message.Overs"
+      "tep_the_boundary\0228\n\032actual_outside_door_"
+      "sensor\030\n \001(\0162\024.message.Load_status\0227\n\031ac"
+      "tual_inside_door_motion\030\013 \001(\0162\024.message."
+      "Door_motion\0228\n\032actual_outside_door_motio"
+      "n\030\014 \001(\0162\024.message.Door_motion\022:\n\034actual_"
+      "turntable_load_status\030\r \001(\0162\024.message.Lo"
+      "ad_status\022@\n\032actual_turntable_direction\030"
+      "\016 \001(\0162\034.message.Turntable_direction\022\031\n\021a"
+      "ctual_error_code\030\017 \001(\t\022\033\n\023actual_warning"
+      "_code\030\020 \001(\t\022 \n\030actual_error_description\030"
+      "\021 \001(\t\"\265\002\n\033Dispatch_manager_status_msg\022%\n"
+      "\tbase_info\030\001 \002(\0132\022.message.Base_info\022\023\n\013"
+      "dispatch_id\030\002 \002(\005\022A\n\027dispatch_manager_st"
+      "atus\030\003 \002(\0162 .message.Dispatch_manager_st"
+      "atus\022/\n\020catcher_data_map\030\004 \003(\0132\025.message"
+      ".Catcher_data\022/\n\020carrier_data_map\030\005 \003(\0132"
+      "\025.message.Carrier_data\0225\n\023passageway_dat"
+      "a_map\030\006 \003(\0132\030.message.Passageway_data\"\033\n"
+      "\031Dispatch_manager_data_msg*\201\001\n\017Terminal_"
+      "status\022\025\n\021E_TERMINAL_UNKNOW\020\000\022\024\n\020E_TERMI"
+      "NAL_READY\020\001\022\024\n\020E_TERMINAL_STORE\020\002\022\025\n\021E_T"
+      "ERMINAL_PICKUP\020\003\022\024\n\020E_TERMINAL_FAULT\020\n*B"
+      "\n\024Passageway_direction\022\013\n\007E_INLET\020\000\022\014\n\010E"
+      "_OUTLET\020\001\022\017\n\013E_BILATERAL\020\002*\253\001\n\027Dispatch_"
+      "process_status\022\034\n\030E_DISPATCH_POCESS_UNKN"
+      "OW\020\000\022\032\n\026E_DISPATCH_POCESS_WAIT\020\001\022\035\n\031E_DI"
+      "SPATCH_POCESS_WORKING\020\002\022\032\n\026E_DISPATCH_PO"
+      "CESS_OVER\020\003\022\033\n\027E_DISPATCH_POCESS_FAULT\020d"
+      "*>\n\031Dispatch_motion_direction\022\017\n\013E_STORE"
+      "_CAR\020\000\022\020\n\014E_PICKUP_CAR\020\001*\261\001\n\027Dispatch_ma"
+      "nager_status\022\035\n\031E_DISPATCH_MANAGER_UNKNO"
+      "W\020\000\022\034\n\030E_DISPATCH_MANAGER_READY\020\001\022\034\n\030E_D"
+      "ISPATCH_MANAGER_STORE\020\002\022\035\n\031E_DISPATCH_MA"
+      "NAGER_PICKUP\020\003\022\034\n\030E_DISPATCH_MANAGER_FAU"
+      "LT\020d*\200\003\n\026Dispatch_device_status\022\032\n\026DISPA"
+      "TCH_DEVICE_UNKNOW\020\000\022\031\n\025DISPATCH_DEVICE_R"
+      "EADY\020\001\022\030\n\024DISPATCH_DEVICE_BUSY\020\002\022\"\n\036DISP"
+      "ATCH_DEVICE_ONE_LEVEL_OVER\020\003\022\"\n\036DISPATCH"
+      "_DEVICE_ONE_LEVEL_WORK\020\004\022\"\n\036DISPATCH_DEV"
+      "ICE_TWO_LEVEL_OVER\020\005\022\"\n\036DISPATCH_DEVICE_"
+      "TWO_LEVEL_WORK\020\006\022$\n DISPATCH_DEVICE_THRE"
+      "E_LEVEL_OVER\020\007\022$\n DISPATCH_DEVICE_THREE_"
+      "LEVEL_WORK\020\010\022\031\n\025DISPATCH_DEVICE_FAULT\020d\022"
+      "\036\n\032DISPATCH_DEVICE_DISCONNECT\020e*n\n\023Dispa"
+      "tch_task_level\022\033\n\027DISPATCH_TASK_ONE_LEVE"
+      "L\020\001\022\033\n\027DISPATCH_TASK_TWO_LEVEL\020\002\022\035\n\031DISP"
+      "ATCH_TASK_THREE_LEVEL\020\003*K\n\014Clamp_motion\022"
+      "\025\n\021E_CLAMP_NO_ACTION\020\000\022\021\n\rE_CLAMP_TIGHT\020"
+      "\001\022\021\n\rE_CLAMP_LOOSE\020\002*R\n\014Joint_motion\022\025\n\021"
+      "E_JOINT_NO_ACTION\020\000\022\024\n\020E_JOINT_HOLD_OUT\020"
+      "\001\022\025\n\021E_JOINT_TAKE_BACK\020\002*y\n\027Small_sports"
+      "_car_motion\022\034\n\030E_SMALL_SPORTS_NO_ACTION\020"
+      "\000\022\037\n\033E_SMALL_SPORTS_CAR_GET_AWAY\020\001\022\037\n\033E_"
+      "SMALL_SPORTS_CAR_GET_BACK\020\002*l\n\016Respons_s"
+      "tatus\022\023\n\017RESPONS_WORKING\020\000\022\020\n\014RESPONS_OV"
+      "ER\020\001\022\027\n\023RESPONS_MINOR_ERROR\020d\022\032\n\026RESPONS"
+      "_CRITICAL_ERROR\020e*\252\001\n\026Hardware_device_st"
+      "atus\022\022\n\016DEVICE_UNKNOWN\020\000\022\020\n\014DEVICE_READY"
+      "\020\001\022\022\n\016DEVICE_WORKING\020\002\022\031\n\025DEVICE_EMERGEN"
+      "CY_STOP\020\003\022\023\n\017DEVICE_UNSAFETY\020\004\022\024\n\020DEVICE"
+      "_COLLISION\020\005\022\020\n\014DEVICE_FAULT\020\006*9\n\013Load_s"
+      "tatus\022\020\n\014LOAD_UNKNOWN\020\000\022\014\n\010HAVE_CAR\020\001\022\n\n"
+      "\006NO_CAR\020\002*w\n\023Turntable_direction\022\037\n\033TURN"
+      "TABLE_DIRECTION_UNKNOWN\020\000\022\036\n\032TURNTABLE_D"
+      "IRECTION_INSIDE\020\001\022\037\n\033TURNTABLE_DIRECTION"
+      "_OUTSIDE\020\002*N\n\013Door_motion\022\020\n\014DOOR_UNKNOW"
+      "N\020\000\022\r\n\tDOOR_OPEN\020\001\022\016\n\nDOOR_CLOSE\020\002\022\016\n\nDO"
+      "OR_ERROR\020\003*C\n\025Overstep_the_boundary\022\023\n\017B"
+      "OUNDARY_NORMAL\020\000\022\025\n\021BOUNDARY_OVERSTEP\020\001"
   };
   ::google::protobuf::DescriptorPool::InternalAddGeneratedFile(
-      descriptor, 6535);
+      descriptor, 6599);
   ::google::protobuf::MessageFactory::InternalRegisterGeneratedFile(
     "dispatch_message.proto", &protobuf_RegisterTypes);
   ::protobuf_message_5fbase_2eproto::AddDescriptors();
@@ -1029,6 +1034,8 @@ const int Dispatch_process_information::kParkspaceInfoExFieldNumber;
 const int Dispatch_process_information::kCarTypeFieldNumber;
 const int Dispatch_process_information::kDispatchProcessStatusFieldNumber;
 const int Dispatch_process_information::kMWaitNumberFieldNumber;
+const int Dispatch_process_information::kMWorkingTotalTimeFieldNumber;
+const int Dispatch_process_information::kMWorkingRemainingTimeFieldNumber;
 #endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
 
 Dispatch_process_information::Dispatch_process_information()
@@ -1065,8 +1072,8 @@ Dispatch_process_information::Dispatch_process_information(const Dispatch_proces
     locate_information_ = NULL;
   }
   ::memcpy(&dispatch_motion_direction_, &from.dispatch_motion_direction_,
-    static_cast<size_t>(reinterpret_cast<char*>(&m_wait_number_) -
-    reinterpret_cast<char*>(&dispatch_motion_direction_)) + sizeof(m_wait_number_));
+    static_cast<size_t>(reinterpret_cast<char*>(&m_working_remaining_time_) -
+    reinterpret_cast<char*>(&dispatch_motion_direction_)) + sizeof(m_working_remaining_time_));
   // @@protoc_insertion_point(copy_constructor:message.Dispatch_process_information)
 }
 
@@ -1075,8 +1082,8 @@ void Dispatch_process_information::SharedCtor() {
   car_numberplate_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
   command_key_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
   ::memset(&id_struct_, 0, static_cast<size_t>(
-      reinterpret_cast<char*>(&m_wait_number_) -
-      reinterpret_cast<char*>(&id_struct_)) + sizeof(m_wait_number_));
+      reinterpret_cast<char*>(&m_working_remaining_time_) -
+      reinterpret_cast<char*>(&id_struct_)) + sizeof(m_working_remaining_time_));
 }
 
 Dispatch_process_information::~Dispatch_process_information() {
@@ -1145,6 +1152,11 @@ void Dispatch_process_information::Clear() {
         reinterpret_cast<char*>(&m_wait_number_) -
         reinterpret_cast<char*>(&dispatch_motion_direction_)) + sizeof(m_wait_number_));
   }
+  if (cached_has_bits & 768u) {
+    ::memset(&m_working_total_time_, 0, static_cast<size_t>(
+        reinterpret_cast<char*>(&m_working_remaining_time_) -
+        reinterpret_cast<char*>(&m_working_total_time_)) + sizeof(m_working_remaining_time_));
+  }
   _has_bits_.Clear();
   _internal_metadata_.Clear();
 }
@@ -1300,6 +1312,34 @@ bool Dispatch_process_information::MergePartialFromCodedStream(
         break;
       }
 
+      // optional float m_working_total_time = 10;
+      case 10: {
+        if (static_cast< ::google::protobuf::uint8>(tag) ==
+            static_cast< ::google::protobuf::uint8>(85u /* 85 & 0xFF */)) {
+          set_has_m_working_total_time();
+          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+                   float, ::google::protobuf::internal::WireFormatLite::TYPE_FLOAT>(
+                 input, &m_working_total_time_)));
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      // optional float m_working_remaining_time = 11;
+      case 11: {
+        if (static_cast< ::google::protobuf::uint8>(tag) ==
+            static_cast< ::google::protobuf::uint8>(93u /* 93 & 0xFF */)) {
+          set_has_m_working_remaining_time();
+          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+                   float, ::google::protobuf::internal::WireFormatLite::TYPE_FLOAT>(
+                 input, &m_working_remaining_time_)));
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
       default: {
       handle_unusual:
         if (tag == 0) {
@@ -1389,6 +1429,16 @@ void Dispatch_process_information::SerializeWithCachedSizes(
     ::google::protobuf::internal::WireFormatLite::WriteInt32(9, this->m_wait_number(), output);
   }
 
+  // optional float m_working_total_time = 10;
+  if (cached_has_bits & 0x00000100u) {
+    ::google::protobuf::internal::WireFormatLite::WriteFloat(10, this->m_working_total_time(), output);
+  }
+
+  // optional float m_working_remaining_time = 11;
+  if (cached_has_bits & 0x00000200u) {
+    ::google::protobuf::internal::WireFormatLite::WriteFloat(11, this->m_working_remaining_time(), output);
+  }
+
   if (_internal_metadata_.have_unknown_fields()) {
     ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
         _internal_metadata_.unknown_fields(), output);
@@ -1471,6 +1521,16 @@ void Dispatch_process_information::SerializeWithCachedSizes(
     target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(9, this->m_wait_number(), target);
   }
 
+  // optional float m_working_total_time = 10;
+  if (cached_has_bits & 0x00000100u) {
+    target = ::google::protobuf::internal::WireFormatLite::WriteFloatToArray(10, this->m_working_total_time(), target);
+  }
+
+  // optional float m_working_remaining_time = 11;
+  if (cached_has_bits & 0x00000200u) {
+    target = ::google::protobuf::internal::WireFormatLite::WriteFloatToArray(11, this->m_working_remaining_time(), target);
+  }
+
   if (_internal_metadata_.have_unknown_fields()) {
     target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
         _internal_metadata_.unknown_fields(), target);
@@ -1553,6 +1613,18 @@ size_t Dispatch_process_information::ByteSizeLong() const {
           this->m_wait_number());
     }
 
+  }
+  if (_has_bits_[8 / 32] & 768u) {
+    // optional float m_working_total_time = 10;
+    if (has_m_working_total_time()) {
+      total_size += 1 + 4;
+    }
+
+    // optional float m_working_remaining_time = 11;
+    if (has_m_working_remaining_time()) {
+      total_size += 1 + 4;
+    }
+
   }
   int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
   GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
@@ -1614,6 +1686,15 @@ void Dispatch_process_information::MergeFrom(const Dispatch_process_information&
     }
     _has_bits_[0] |= cached_has_bits;
   }
+  if (cached_has_bits & 768u) {
+    if (cached_has_bits & 0x00000100u) {
+      m_working_total_time_ = from.m_working_total_time_;
+    }
+    if (cached_has_bits & 0x00000200u) {
+      m_working_remaining_time_ = from.m_working_remaining_time_;
+    }
+    _has_bits_[0] |= cached_has_bits;
+  }
 }
 
 void Dispatch_process_information::CopyFrom(const ::google::protobuf::Message& from) {
@@ -1649,6 +1730,8 @@ void Dispatch_process_information::InternalSwap(Dispatch_process_information* ot
   swap(car_type_, other->car_type_);
   swap(dispatch_process_status_, other->dispatch_process_status_);
   swap(m_wait_number_, other->m_wait_number_);
+  swap(m_working_total_time_, other->m_working_total_time_);
+  swap(m_working_remaining_time_, other->m_working_remaining_time_);
   swap(_has_bits_[0], other->_has_bits_[0]);
   _internal_metadata_.Swap(&other->_internal_metadata_);
   swap(_cached_size_, other->_cached_size_);

+ 68 - 0
message/dispatch_message.pb.h

@@ -622,6 +622,20 @@ class Dispatch_process_information : public ::google::protobuf::Message /* @@pro
   ::google::protobuf::int32 m_wait_number() const;
   void set_m_wait_number(::google::protobuf::int32 value);
 
+  // optional float m_working_total_time = 10;
+  bool has_m_working_total_time() const;
+  void clear_m_working_total_time();
+  static const int kMWorkingTotalTimeFieldNumber = 10;
+  float m_working_total_time() const;
+  void set_m_working_total_time(float value);
+
+  // optional float m_working_remaining_time = 11;
+  bool has_m_working_remaining_time() const;
+  void clear_m_working_remaining_time();
+  static const int kMWorkingRemainingTimeFieldNumber = 11;
+  float m_working_remaining_time() const;
+  void set_m_working_remaining_time(float value);
+
   // @@protoc_insertion_point(class_scope:message.Dispatch_process_information)
  private:
   void set_has_car_numberplate();
@@ -640,6 +654,10 @@ class Dispatch_process_information : public ::google::protobuf::Message /* @@pro
   void clear_has_dispatch_process_status();
   void set_has_m_wait_number();
   void clear_has_m_wait_number();
+  void set_has_m_working_total_time();
+  void clear_has_m_working_total_time();
+  void set_has_m_working_remaining_time();
+  void clear_has_m_working_remaining_time();
 
   ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
   ::google::protobuf::internal::HasBits<1> _has_bits_;
@@ -653,6 +671,8 @@ class Dispatch_process_information : public ::google::protobuf::Message /* @@pro
   int car_type_;
   int dispatch_process_status_;
   ::google::protobuf::int32 m_wait_number_;
+  float m_working_total_time_;
+  float m_working_remaining_time_;
   friend struct ::protobuf_dispatch_5fmessage_2eproto::TableStruct;
   friend void ::protobuf_dispatch_5fmessage_2eproto::InitDefaultsDispatch_process_informationImpl();
 };
@@ -2825,6 +2845,54 @@ inline void Dispatch_process_information::set_m_wait_number(::google::protobuf::
   // @@protoc_insertion_point(field_set:message.Dispatch_process_information.m_wait_number)
 }
 
+// optional float m_working_total_time = 10;
+inline bool Dispatch_process_information::has_m_working_total_time() const {
+  return (_has_bits_[0] & 0x00000100u) != 0;
+}
+inline void Dispatch_process_information::set_has_m_working_total_time() {
+  _has_bits_[0] |= 0x00000100u;
+}
+inline void Dispatch_process_information::clear_has_m_working_total_time() {
+  _has_bits_[0] &= ~0x00000100u;
+}
+inline void Dispatch_process_information::clear_m_working_total_time() {
+  m_working_total_time_ = 0;
+  clear_has_m_working_total_time();
+}
+inline float Dispatch_process_information::m_working_total_time() const {
+  // @@protoc_insertion_point(field_get:message.Dispatch_process_information.m_working_total_time)
+  return m_working_total_time_;
+}
+inline void Dispatch_process_information::set_m_working_total_time(float value) {
+  set_has_m_working_total_time();
+  m_working_total_time_ = value;
+  // @@protoc_insertion_point(field_set:message.Dispatch_process_information.m_working_total_time)
+}
+
+// optional float m_working_remaining_time = 11;
+inline bool Dispatch_process_information::has_m_working_remaining_time() const {
+  return (_has_bits_[0] & 0x00000200u) != 0;
+}
+inline void Dispatch_process_information::set_has_m_working_remaining_time() {
+  _has_bits_[0] |= 0x00000200u;
+}
+inline void Dispatch_process_information::clear_has_m_working_remaining_time() {
+  _has_bits_[0] &= ~0x00000200u;
+}
+inline void Dispatch_process_information::clear_m_working_remaining_time() {
+  m_working_remaining_time_ = 0;
+  clear_has_m_working_remaining_time();
+}
+inline float Dispatch_process_information::m_working_remaining_time() const {
+  // @@protoc_insertion_point(field_get:message.Dispatch_process_information.m_working_remaining_time)
+  return m_working_remaining_time_;
+}
+inline void Dispatch_process_information::set_m_working_remaining_time(float value) {
+  set_has_m_working_remaining_time();
+  m_working_remaining_time_ = value;
+  // @@protoc_insertion_point(field_set:message.Dispatch_process_information.m_working_remaining_time)
+}
+
 // -------------------------------------------------------------------
 
 // Dispatch_terminal_status_msg

+ 4 - 2
message/dispatch_message.proto

@@ -42,13 +42,15 @@ message Dispatch_process_information
     optional string                     car_numberPlate=1;					    //车牌号
     optional string                     command_key=2;                          //指令唯一标识符id
     optional Dispatch_motion_direction  dispatch_motion_direction=3;            //调度方向, 停车取车
-    optional Id_struct                  id_struct=4;                            //id
+    optional Id_struct                  id_struct=4;                            //出入口终端id, 只有完成状态,才有出口信息
     optional Locate_information         locate_information=5;                   //汽车测量信息, 只有停车时有数据, 取车时没有数据.
     repeated Parkspace_info             parkspace_info_ex=6;                    //车位编号, 停车位(B方案, 分配3个停车位)
     optional Car_type                   car_type=7;                             //汽车大小
 
     optional Dispatch_process_status    dispatch_process_status=8;              //调度流程状态
-    optional int32                      m_wait_number=9;                        //只有等待才有等待编号
+    optional int32                      m_wait_number=9;                        //等待排序的队列编号, 只有等待状态才有等待编号
+    optional float                      m_working_total_time=10;                //工作所需的总时间, 只有工作状态才有工作时间
+    optional float                      m_working_remaining_time=11;            //工作所需的剩余时间, 只有工作状态才有工作时间
 }
 
 //调度模块终端出入口的状态