浏览代码

修改 key 值分配位置,改为发送请求时分配

zx 4 年之前
父节点
当前提交
fab32c0192

+ 1 - 0
dispatch/dispatch_excutor.cpp

@@ -18,6 +18,7 @@ Error_manager Dispatch_excutor::dispatch_request(message::Dispatch_request_msg&
     if(request.base_info().sender()!=message::eMain||request.base_info().receiver()!=message::eDispatch)
         return Error_manager(ERROR,MINOR_ERROR,"dispatch request invalid");
 
+    request.set_command_key(create_key());
     if(m_response_table.find(request.command_key())==true)
         return Error_manager(ERROR,MAJOR_ERROR," dispatch request repeated");
     //设置超时,若没有设置,默认300000  五分钟

+ 2 - 0
lidar_locate/measure_excutor.cpp

@@ -3,6 +3,7 @@
 //
 
 #include "measure_excutor.h"
+#include "uniq_key.h"
 Measure_excutor::Measure_excutor()
 {
 }
@@ -20,6 +21,7 @@ Error_manager Measure_excutor::locate_request(message::Measure_request_msg& requ
     if(request.base_info().sender()!=message::eMain||request.base_info().receiver()!=message::eMeasurer)
         return Error_manager(LOCATER_MSG_REQUEST_INVALID,MINOR_ERROR,"measure request invalid");
 
+    request.set_command_key(create_key());
     if(m_response_table.find(request.command_key())==true)
         return Error_manager(LOCATER_MSG_REQUEST_REPEATED,MAJOR_ERROR," measure reques repeated");
     //设置超时,若没有设置,默认3000

+ 5 - 2
parkspace/parkspace_excutor.cpp

@@ -3,7 +3,7 @@
 //
 
 #include "parkspace_excutor.h"
-
+#include "uniq_key.h"
 Parkspace_excutor::~Parkspace_excutor(){}
 /*
  * 请求分配车位
@@ -17,6 +17,8 @@ Error_manager Parkspace_excutor::alloc_request(message::Parkspace_allocation_req
     if(request.base_info().sender()!=message::eMain||request.base_info().receiver()!=message::eParkspace)
         return Error_manager(PARKSPACE_ALLOC_REQUEST_INVALID,MINOR_ERROR,"车位分配请求信息错误!!!");
 
+    request.set_command_key(create_key());
+
     if(m_alloc_table.find(request.command_key())==true)
         return Error_manager(PARKSPACE_ALLOC_REQUEST_REPEATED,MINOR_ERROR,"车位分配请求已经存在,重复!!!");
     //设置超时,若没有设置,默认1000
@@ -199,6 +201,7 @@ Error_manager Parkspace_excutor::release_request(message::Parkspace_release_requ
     if(request.base_info().sender()!=message::eMain||request.base_info().receiver()!=message::eParkspace)
         return Error_manager(PARKSPACE_RELEASE_REQUEST_INVALID,MINOR_ERROR,"parkspace release request invalid");
 
+    request.set_command_key(create_key());
     if(m_release_table.find(request.command_key())==true)
         return Error_manager(PARKSPACE_RELEASE_REQUEST_REPEATED,MAJOR_ERROR," parkspace release request repeated");
     //设置超时,若没有设置,默认1000
@@ -287,7 +290,7 @@ Error_manager Parkspace_excutor::confirm_request(message::Parkspace_confirm_allo
     if(request.base_info().sender()!=message::eMain||request.base_info().receiver()!=message::eParkspace)
         return Error_manager(FAILED,MINOR_ERROR,"parkspace confirm request invalid");
 
-
+    request.set_command_key(create_key());
     if(m_confirm_table.find(request.command_key())==true)
     {
         return Error_manager(FAILED,MAJOR_ERROR," parkspace confirm request repeated");

+ 11 - 12
system/PickupProcessTask.cpp

@@ -181,8 +181,8 @@ void PickupProcessTask::Main()
             msg.reset(m_command_response_msg.base_info(),m_command_response_msg.SerializeAsString());
             Message_communicator::get_instance_pointer()->send_msg(&msg);
             LOG_IF(ERROR, code != SUCCESS) << "查询失败,取车终端:"<<m_terminor_id
-                                           <<", 车牌号:"<<m_car_info.license();
-            LOG(WARNING)<<"查询成功:"<<m_terminor_id
+                                           <<", 车牌号:"<<m_car_info.license()<<code.get_error_description();
+            LOG_IF(WARNING,code==SUCCESS)<<"查询成功,终端号:"<<m_terminor_id
                                  <<", 车牌号:"<<m_car_info.license();
             m_current_step_type = (code != SUCCESS) ?  message::eBackComplete :  message::eDispatch_step;
         }
@@ -279,7 +279,7 @@ void PickupProcessTask::Main()
     {
         //异常结束
         usleep(1000*1000);
-        LOG(ERROR)<<"异常车,回退结束"<<"车牌号:"<<m_car_info.license()
+        LOG(ERROR)<<"异常车,回退结束"<<"车牌号:"<<m_car_info.license()
                   <<",xxxxxxxxxxxxxx  终端:"<<m_terminor_id<<"  xxxxxxxxxxxxxx";
     }
     if(m_current_step_type== message::eComplete)
@@ -310,28 +310,27 @@ Error_manager PickupProcessTask::dispatch_step()
     if(code!=SUCCESS)
         return code;
 
-    message::Dispatch_request_msg request;
     message::Base_info base_info;
     base_info.set_msg_type(message::eDispatch_request_msg);
     base_info.set_sender(message::eMain);
     base_info.set_receiver(message::eDispatch);
     base_info.set_timeout_ms(1000*300); //测量超时300s
-    request.mutable_base_info()->CopyFrom(base_info);
+    m_dispatch_request_msg.mutable_base_info()->CopyFrom(base_info);
 
     message::Parkspace_info space_info=m_search_response_msg.car_position();
-    request.set_dispatch_motion_direction(message::E_PICKUP_CAR);
-    request.set_parkspace_id(space_info.parkspace_id());
-    request.set_terminal_id(m_terminor_id);
+    m_dispatch_request_msg.set_dispatch_motion_direction(message::E_PICKUP_CAR);
+    m_dispatch_request_msg.set_parkspace_id(space_info.parkspace_id());
+    m_dispatch_request_msg.set_terminal_id(m_terminor_id);
+
+    m_dispatch_request_msg.set_command_key(create_key());
 
-    request.set_command_key(create_key());
 
 
-    message::Dispatch_response_msg response;
-    code=Dispatch_excutor::get_instance_pointer()->dispatch_request(request,response,m_cancel_condition);
+    code=Dispatch_excutor::get_instance_pointer()->dispatch_request(m_dispatch_request_msg,m_dispatch_response_msg,m_cancel_condition);
     if(code!=SUCCESS)
         return code;
 
-    if(response.error_manager().error_code()==0) {
+    if(m_dispatch_response_msg.error_manager().error_code()==0) {
         return SUCCESS;
     }
     else

+ 0 - 7
system/StoreProcessTask.cpp

@@ -70,7 +70,6 @@ Error_manager StoreProcessTask::locate_step() {
     base_info.set_timeout_ms(20000); //测量超时5s
     m_measure_request_msg.mutable_base_info()->CopyFrom(base_info);
 
-    m_measure_request_msg.set_command_key(create_key());
     m_measure_request_msg.set_terminal_id(m_terminor_id);
 
     code=Measure_excutor::get_instance_pointer()->locate_request(m_measure_request_msg,
@@ -150,8 +149,6 @@ Error_manager StoreProcessTask::dispatch_step()
     base_info.set_timeout_ms(1000*15); //超时15s
     m_dispatch_request_msg.mutable_base_info()->CopyFrom(base_info);
 
-    std::string key=create_key();
-    m_dispatch_request_msg.set_command_key(key);
     m_dispatch_request_msg.set_terminal_id(m_terminor_id);
     m_dispatch_request_msg.set_dispatch_motion_direction(message::E_STORE_CAR);
     m_dispatch_request_msg.set_parkspace_id(m_parcspace_alloc_response_msg.allocated_space_info().parkspace_id());
@@ -181,7 +178,6 @@ Error_manager StoreProcessTask::back_dispatch_step()
     m_dispatch_request_msg=message::Dispatch_request_msg();
     m_dispatch_response_msg=message::Dispatch_response_msg();
 
-
     return SUCCESS;
 }
 
@@ -190,7 +186,6 @@ Error_manager StoreProcessTask::back_dispatch_step()
      */
 Error_manager StoreProcessTask::alloc_space_step()
 {
-
     message::Base_info base_info_response;
     base_info_response.set_msg_type(message::eStore_command_response_msg);
     base_info_response.set_sender(message::eMain);
@@ -238,7 +233,6 @@ Error_manager StoreProcessTask::alloc_space_step()
 
     m_alloc_request_msg.mutable_car_info()->CopyFrom(m_car_info);
 
-    m_alloc_request_msg.set_command_key(create_key());
     m_alloc_request_msg.set_terminal_id(m_terminor_id);
 
     code=Parkspace_excutor::get_instance_pointer()->alloc_request(m_alloc_request_msg,
@@ -351,7 +345,6 @@ Error_manager StoreProcessTask::back_alloc_space_step()
 
     message::Parkspace_info space_info=m_parcspace_alloc_response_msg.allocated_space_info();
     request.mutable_release_space_info()->CopyFrom(space_info);
-    request.set_command_key(create_key());
 
     message::Parkspace_release_response_msg release_response;
     code=Parkspace_excutor::get_instance_pointer()->release_request(request,release_response,m_cancel_condition);

+ 7 - 7
system/command_manager.cpp

@@ -51,9 +51,9 @@ Error_manager Command_manager::init(setting::System_setting system_setting) {
         return Error_manager(ERROR, MAJOR_ERROR, "系统配置出入口数量错误");
     }
     //初始化出入口状态为 Enable
-    m_output_entrance_paused.resize(system_setting.entrance_num());
+    m_input_entrance_paused.resize(system_setting.entrance_num());
     for(int i=0;i<system_setting.entrance_num();++i)
-        m_output_entrance_paused[i]=false;
+        m_input_entrance_paused[i]=false;
     m_output_entrance_paused.resize(system_setting.export_num());
     for(int i=0;i<system_setting.export_num();++i)
         m_output_entrance_paused[i]=false;
@@ -268,7 +268,6 @@ Error_manager Command_manager::execute_pickup_command(message::Pickup_command_re
         return Error_manager(PAUSE, MINOR_ERROR, "急停");
     }
 
-
     //判断出口是否开放
     if(request.terminal_id()<0 || request.terminal_id()>=m_system_setting.export_num())
     {
@@ -404,7 +403,7 @@ message::Entrance_statu Command_manager::export_statu(int terminal_id)
     if(code==DISCONNECT) statu=message::eDisconnected;
     entrance_statu.set_dispatch_statu(statu);
 
-    entrance_statu.set_paused(m_input_entrance_paused[terminal_id]);
+    entrance_statu.set_paused(m_output_entrance_paused[terminal_id]);
 
     return entrance_statu;
 }
@@ -435,7 +434,7 @@ void Command_manager::publish_statu_function(Command_manager* commander)
 }
 void Command_manager::publish_statu()
 {
-    while(m_publish_exit_condition.wait_for_millisecond(50)==false)
+    while(m_publish_exit_condition.wait_for_millisecond(100)==false)
     {
         message::Central_controller_statu_msg msg;
         message::Base_info baseInfo;
@@ -461,10 +460,11 @@ void Command_manager::publish_statu()
             if(code==DISCONNECT) statu=message::eDisconnected;
             entrance_statu.set_dispatch_statu(statu);
 
+
             entrance_statu.set_paused(m_input_entrance_paused[i]);
 
-            msg.mutable_export_statu_vector()->Add();
-            msg.mutable_export_statu_vector(msg.export_statu_vector_size()-1)->CopyFrom(entrance_statu);
+            msg.mutable_entrance_statu_vector()->Add();
+            msg.mutable_entrance_statu_vector(msg.entrance_statu_vector_size()-1)->CopyFrom(entrance_statu);
         }
 
         for(int i=0;i<m_system_setting.export_num();++i)