Pārlūkot izejas kodu

修改sleep时间,修改手动处理错误等级

zx 4 gadi atpakaļ
vecāks
revīzija
3886cb7b40

+ 1 - 1
exception/exception_solver.cpp

@@ -126,7 +126,7 @@ Error_manager Exception_solver::waitfor_manual_operate_msg(Process_task* task,me
 Error_manager Exception_solver::solve_exception(Error_manager code,Process_task* task)
 {
     Error_manager code_operate;
-    if(code.get_error_level()==CRITICAL_ERROR)
+    if(code.get_error_level()==MAJOR_ERROR)
     {
         //四级故障,任务未完成, 且模块未能回退并恢复到初始待机状态
         //关闭出入口

+ 3 - 2
main.cpp

@@ -89,8 +89,9 @@ Error_manager init_communicators()
         return Error_manager(FAILED,CRITICAL_ERROR,"创建指令执行模块失败");
     code=Command_manager::get_instance_pointer()->init(system_setting);
 
-    LOG(INFO)<<"系统初始化完成 --------------------------------------------- !!!";
-    return SUCCESS;
+    if(code==SUCCESS)
+        LOG(INFO)<<"系统初始化完成 --------------------------------------------- !!!";
+    return code;
 }
 
 GOOGLE_GLOG_DLL_DECL void shut_down_logging(const char* data, int size)

+ 27 - 8
system/PickupProcessTask.cpp

@@ -195,7 +195,7 @@ void PickupProcessTask::Main()
         {
             updata_step_statu(message::eWorking);
             code=dispatch_step();
-            usleep(1000*1000);
+            usleep(1000*500);
             code!=SUCCESS?updata_step_statu(message::eError):updata_step_statu(message::eFinished);
             LOG_IF(ERROR, code != SUCCESS) << "-------  取  -------取车调度失败,取车终端:"<<m_terminor_id
                                            <<", 车位id:"<<m_search_response_msg.car_position().parkspace_id()
@@ -218,14 +218,23 @@ void PickupProcessTask::Main()
             updata_step_statu(message::eWorking);
             code=release_space_step();
             code!=SUCCESS?updata_step_statu(message::eError):updata_step_statu(message::eFinished);
-            LOG_IF(ERROR, code != SUCCESS) << "-------  取  -------取车释放车位失败,取车终端:"<<m_terminor_id
-                                           <<", 车牌号:"<<m_car_info.license();
+
+            if(code!=SUCCESS)
+            {
+                //提升错误等级为三级
+                LOG(ERROR)<<"-------  取  -------  释放车位失败 ------进入异常处理,  车牌号:"<<m_car_info.license();
+                Exception_solver::get_instance_pointer()->solve_exception(Error_manager(code.get_error_code(),MAJOR_ERROR,code.get_error_description()),this);
+                continue;
+            }
         }
         if(m_current_step_type==message::eComplete) {
             //流程结束前,保证至少发送一次流程完成状态
             updata_step_statu(message::eFinished);
             break;
         }
+
+        // ----------------------------------------华丽的分割线 ----------------------------------------
+
         if(m_current_step_type== message::eBackWait_step)
         {
             updata_step_statu(message::eWorking);
@@ -281,21 +290,21 @@ void PickupProcessTask::Main()
     if(m_cancel_condition.wait_for_millisecond(1)==true) {
         LOG(ERROR) << "-------  取  -------取车任务被强制取消,车牌号:" << m_car_info.license()
                    << ",  终端号:" << m_terminor_id;
-        usleep(1000*200);
+        usleep(1000*500);
         return ;
     }
 
     if(m_current_step_type== message::eBackComplete)
     {
         //异常结束
-        usleep(1000*200);
+        usleep(1000*500);
         LOG(ERROR)<<"-------  取  -------异常取车,回退结束"<<"车牌号:"<<m_car_info.license()
                   <<",xxxxxxxxxxxxxx  终端:"<<m_terminor_id<<"  xxxxxxxxxxxxxx";
     }
     if(m_current_step_type== message::eComplete)
     {
         //正常结束
-        usleep(1000*200);
+        usleep(1000*500);
         LOG(INFO)<<"-------  取  -------取车结束,"<<"车牌号:"<<m_car_info.license()
                  <<",--------------  终端:"<<m_terminor_id<<"  --------------";
     }
@@ -351,7 +360,10 @@ Error_manager PickupProcessTask::back_dispatch_step()
     /*
      * 关门,搬运将车从出口抓回去
      */
-    usleep(1000*2000);
+    /*usleep(1000*1000);
+    int k=rand()%10;
+    if(k==0)
+        return Error_manager(ERROR,MINOR_ERROR,"手动制造错误");*/
     return SUCCESS;
 }
 
@@ -360,9 +372,13 @@ Error_manager PickupProcessTask::back_dispatch_step()
  */
 Error_manager PickupProcessTask::wait_for_leave_step()
 {
-    usleep(1000*1000);
+    usleep(1000*200);
+    /*int k=rand()%10;
+    if(k==0)
+        return Error_manager(ERROR,MINOR_ERROR,"手动制造错误");*/
     return SUCCESS;
 }
+
 /*
  * 回退等待车辆离开
  */
@@ -376,6 +392,9 @@ Error_manager PickupProcessTask::back_wait_for_leave_step()
      */
 Error_manager PickupProcessTask::release_space_step()
 {
+    /*int k=rand()%10;
+    if(k==0)
+        return Error_manager(ERROR,MINOR_ERROR,"手动制造错误");*/
     /*
    * 检查是否曾经分配过车位
    */

+ 7 - 8
system/StoreProcessTask.cpp

@@ -441,7 +441,7 @@ void StoreProcessTask::Main()
             //开始定位
             updata_step_statu(message::eWorking);
             code = locate_step();
-            usleep(1000 * 1000 );
+            usleep(1000 * 500 );
             code!=SUCCESS?updata_step_statu(message::eError):updata_step_statu(message::eFinished);
 
             LOG_IF(WARNING, code != SUCCESS) << "------  停  ------- 测量失败:" <<m_car_info.license()<< code.get_error_description();
@@ -461,7 +461,7 @@ void StoreProcessTask::Main()
             //开始调度
             updata_step_statu(message::eWorking);
             code = dispatch_step();
-            usleep(1000 * 2000 );
+            usleep(1000 * 500 );
             code!=SUCCESS?updata_step_statu(message::eError):updata_step_statu(message::eFinished);
             LOG_IF(WARNING, code != SUCCESS) << "------  停  ------- 调度失败:"<<m_car_info.license() << code.get_error_description();
         }
@@ -470,7 +470,7 @@ void StoreProcessTask::Main()
         {
             updata_step_statu(message::eWorking);
             code = confirm_space_step();
-            usleep(1000 * 1000);
+            usleep(1000 * 200);
             code!=SUCCESS?updata_step_statu(message::eError):updata_step_statu(message::eFinished);
             LOG_IF(WARNING, code != SUCCESS) << "------  停  ------- 占据车位失败,终端号:" << m_terminor_id << "停车流程:" << code.get_error_description() <<
                                            " 车位id :"
@@ -490,7 +490,7 @@ void StoreProcessTask::Main()
         if (m_current_step_type ==  message::eBackConfirm_step)
         {
             updata_step_statu(message::eWorking);
-            usleep(1000*1000);
+            usleep(1000*200);
             updata_step_statu(message::eFinished);
 
         }
@@ -498,7 +498,7 @@ void StoreProcessTask::Main()
         {
             updata_step_statu(message::eWorking);
             code=back_dispatch_step();
-            usleep(1000*1000);
+            usleep(1000*500);
             code!=SUCCESS?updata_step_statu(message::eError):updata_step_statu(message::eFinished);
             if(code.get_error_level()>=MAJOR_ERROR)
             {
@@ -513,7 +513,7 @@ void StoreProcessTask::Main()
         {
             updata_step_statu(message::eWorking);
             code=back_compare_step();
-            usleep(1000*1000);
+            usleep(1000*200);
             code!=SUCCESS?updata_step_statu(message::eError):updata_step_statu(message::eFinished);
             if(code.get_error_level()>=MAJOR_ERROR)
             {
@@ -528,7 +528,7 @@ void StoreProcessTask::Main()
         {
             updata_step_statu(message::eWorking);
             code=back_locate_step();
-            usleep(1000*1000);
+            usleep(1000*200);
             code!=SUCCESS?updata_step_statu(message::eError):updata_step_statu(message::eFinished);
             if(code.get_error_level()>=MAJOR_ERROR)
             {
@@ -542,7 +542,6 @@ void StoreProcessTask::Main()
         {
             updata_step_statu(message::eWorking);
             code=back_alloc_space_step();
-            usleep(1000*1000);
             code!=SUCCESS?updata_step_statu(message::eError):updata_step_statu(message::eFinished);
             if(code.get_error_level()>=MAJOR_ERROR)
             {

+ 0 - 1
system/command_manager.cpp

@@ -155,7 +155,6 @@ Error_manager Command_manager::init(setting::System_setting system_setting) {
     }
 
     return SUCCESS;
-
 }
 /*
  * 执行停车请求

+ 4 - 2
system/process_task.h

@@ -9,7 +9,7 @@
 #include "thread_condition.h"
 #include "TaskQueue/BaseTask.h"
 #include "process_message.pb.h"
-
+#include <glog/logging.h>
 /*
  * 停取车流程基类, 包括任务创建, 状态消息发布线程启动, 任务取消等公共功能
  * 该类继承自tq::BaseTask类, 可让入 tq 线程池, 执行虚函数 Main
@@ -44,7 +44,9 @@ public:
     /*
      * 控制流程到下一步
      */
-    virtual Error_manager next_step()=0;
+    virtual Error_manager next_step(){
+        LOG(ERROR)<<"process base virtual called";
+        return ERROR;};
 
 protected:
     /*

+ 2 - 2
test/terminal_client.cpp

@@ -86,8 +86,8 @@ int main() {
     threadsafe_queue<message::Car_info> input_queue;
     threadsafe_queue<message::Car_info> output_queue;
 
-    const int n_input=6;
-    const int n_output=6;
+    const int n_input=1;
+    const int n_output=1;
     std::vector<store_terminal*> input_terminals;
     std::vector<pickup_terminal*> output_terminals;
     for(int i=0;i<n_input;++i)

+ 0 - 5
tool/thread_safe_queue.h

@@ -104,11 +104,6 @@ private:
 
 
 
-
-
-
-
-
 template<class T>
 Thread_safe_queue<T>::Thread_safe_queue()
 {