Bläddra i källkod

modify command_id to command_info

youchen 4 år sedan
förälder
incheckning
36225646e2

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 2159 - 463
message/message_base.pb.cc


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 1434 - 132
message/message_base.pb.h


+ 78 - 7
message/message_base.proto

@@ -13,9 +13,9 @@ enum Message_type
     eLocate_response_msg=0x13;              //定位反馈消息
 
 
-    eHarware_statu_msg=0x21;                //调度模块硬件状态消息
-    eExecute_request_msg=0x22;              //请求调度消息
-    eExecute_response_msg=0x23;             //调度结果反馈消息
+    eDispatch_status_msg=0x21;                //调度模块硬件状态消息
+    eDispatch_request_msg=0x22;              //请求调度消息
+    eDispatch_response_msg=0x23;             //调度结果反馈消息
 
     eParkspace_allocation_status_msg=0x31;  //车位分配模块状态消息,包括车位信息
     eParkspace_allocation_request_msg=0x32; //请求分配车位消息
@@ -26,8 +26,21 @@ enum Message_type
     eParkspace_release_response_msg = 0x37;		//释放车位反馈消息
     eParkspace_force_update_request_msg = 0x38;	//手动修改车位消息
     eParkspace_force_update_response_msg = 0x39;//手动修改车位反馈消息
-    eParkspace_confirm_alloc_request_msg = 0x3a;//确认分配车位请求消息
-    eParkspace_confirm_alloc_response_msg = 0x3b;//确认分配车位反馈消息
+    eParkspace_confirm_alloc_request_msg = 0x3A;//确认分配车位请求消息
+    eParkspace_confirm_alloc_response_msg = 0x3B;//确认分配车位反馈消息
+
+
+    eStore_command_request_msg=0x41;        //终端停车请求消息
+    eStore_command_response_msg=0x42;       //停车请求反馈消息
+    ePickup_command_request_msg=0x43;       //取车请求消息
+    ePickup_command_response_msg=0x44;       //取车请求反馈消息
+
+
+
+    eStoring_process_statu_msg=0x90;        //停车进度条消息
+    ePicking_process_statu_msg=0x91;        //取车进度消息
+
+
 }
 
 //通讯单元
@@ -37,14 +50,15 @@ enum Communicator
     eMain=0x0001;    //主流程
 
     eTerminor=0x0100;
-    //车位数据
+    //车位表
     eParkspace=0x0200;
     //测量单元
     eMeasurer=0x0300;
     //调度机构
-    eProcess=0x0400;
+    eDispatch=0x0400;
     //...
 
+
 }
 ////base message 用于解析未知类型的消息
 message Base_info
@@ -55,6 +69,24 @@ message Base_info
     required Communicator               receiver=4;                     //接收者
 }
 
+// 事件,停车或者取车
+enum Event
+{
+    eStoring=1;
+    ePicking=2;
+}
+
+// 指令信息, 包含 时间,地点,事件
+// 时间 格式为: 年-月-日:时-分-秒
+//地点格式为 :  区号-序号   楚天项目为  027-01
+message Command_info
+{
+    required string                     time=1;
+    required string                     location=2;
+    required Event                      event=3;
+
+}
+
 message Base_msg
 {
     required Base_info                  base_info=1;
@@ -96,3 +128,42 @@ message Locate_information
     optional bool locate_correct = 9;		    //整车的校准标记位
 }
 
+message Car_info
+{
+    optional float                      car_length=1;           //车长
+    optional float                      car_width=2;            //车宽
+    optional float                      car_height=3;           //车高
+    optional string                     license=4;              //车辆凭证号
+}
+
+//车位状态枚举
+enum Parkspace_status
+{
+    eParkspace_empty            = 0;         //空闲,可分配
+    eParkspace_occupied         = 1;         //被占用,不可分配
+    eParkspace_reserverd        = 2;         //被预约,预约车辆可分配
+    eParkspace_locked           = 3;         //临时锁定,不可分配
+    eParkspace_error            = 4;         //车位机械结构或硬件故障   
+}
+
+enum Direction
+{
+    eForward = 1;
+    eBackward = 2;
+}
+
+//单个车位基本信息与状态信息
+message Parkspace_info
+{
+    optional int32              parkspace_id=1;         //车位编号
+    optional int32              index=2;                //同层编号
+    optional Direction          direction=3;            //前后
+    optional int32              floor=4;                //楼层
+    optional float              length=5;               //车位长
+    optional float              width=6;                //车位宽
+    optional float              height=7;               //车位高
+    optional Parkspace_status   parkspace_status=8;     //车位当前状态
+    optional Car_info           car_info=9;              //当前车位存入车辆的凭证号
+    optional string             entry_time=10;          //入场时间
+    optional string             leave_time=11;          //离场时间
+}

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 744 - 1835
message/parkspace_allocation_message.pb.cc


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 636 - 1365
message/parkspace_allocation_message.pb.h


+ 10 - 50
message/parkspace_allocation_message.proto

@@ -9,24 +9,6 @@ import "message_base.proto";
 // 4.手动操作修改车位状态
 // 5.临时锁定车位
 
-message Car_info
-{
-    optional float                      car_length=1;           //车长
-    required float                      car_width=2;            //车宽
-    required float                      car_height=3;           //车高
-    required string                     license=4;              //车辆凭证号
-}
-
-//车位状态枚举
-enum Parkspace_status
-{
-    eParkspace_empty            = 0;         //空闲,可分配
-    eParkspace_occupied         = 1;         //被车辆占用,不可分配
-    eParkspace_reserved        = 2;          //被预约,预约车辆可分配
-    eParkspace_locked           = 3;         //临时锁定,不可分配
-    eParkspace_error            = 4;         //车位机械结构或硬件故障   
-}
-
 //车辆状态枚举
 enum Vehicle_status
 {
@@ -38,33 +20,11 @@ enum Vehicle_status
     eVehicle_unknown        = 5;         //未知状态
 }
 
-enum Direction
-{
-    eForward = 0;
-    eBackward = 1;
-}
-
-//单个车位基本信息与状态信息
-message Parkspace_info
-{
-    required int32              parkspace_id=1;         //车位编号
-    required int32              index=2;                //同层编号
-    required Direction          direction=3;            //前后
-    required int32              floor=4;                //楼层
-    optional float              length=5;               //车位长
-    required float              width=6;                //车位宽
-    required float              height=7;               //车位高
-    required Parkspace_status   parkspace_status=8;     //车位当前状态
-    optional Car_info           car_info=9;              //当前车位存入车辆的凭证号
-    optional string             entry_time=10;          //入场时间
-    optional string             leave_time=11;          //离场时间
-}
-
 //1.分配车位请求
 message Parkspace_allocation_request_msg
 {
     required Base_info                  base_info=1;            //消息类型
-    required int32                      command_id=2;           //指令唯一标识符id
+    required Command_info               command_info=2;           //指令唯一标识符id
     required Car_info                   car_info=3;
     required int32                      terminal_id=4;          //终端id,优化车位分配用
 }
@@ -73,7 +33,7 @@ message Parkspace_allocation_request_msg
 message Parkspace_allocation_response_msg
 {
     required Base_info                  base_info=1;            //消息类型
-    required int32                      command_id=2;           //指令唯一标识符id
+    required Command_info               command_info=2;           //指令唯一标识符id
     required Error_manager              error_manager=3;        //分配成功与否标志
     required Parkspace_info             allocated_space_info=4; //分配车位信息
 }
@@ -82,7 +42,7 @@ message Parkspace_allocation_response_msg
 message Parkspace_search_request_msg
 {
     required Base_info                  base_info=1;            //消息类型
-    required int32                      command_id=2;           //指令唯一标识符id
+    required Command_info               command_info=2;           //指令唯一标识符id
     required Car_info                   car_info=3;              //车辆凭证或号牌
 }
 
@@ -90,7 +50,7 @@ message Parkspace_search_request_msg
 message Parkspace_search_response_msg
 {
     required Base_info                  base_info=1;            //消息类型
-    required int32                      command_id=2;           //指令唯一标识符id
+    required Command_info               command_info=2;           //指令唯一标识符id
     required Error_manager              error_manager=3;        //分配成功与否标志
     optional Parkspace_info             car_position=4;         //待查询车辆存放位置
 }
@@ -99,7 +59,7 @@ message Parkspace_search_response_msg
 message Parkspace_release_request_msg
 {
     required Base_info                  base_info=1;            //消息类型
-    required int32                      command_id=2;           //指令唯一标识符id
+    required Command_info               command_info=2;           //指令唯一标识符id
     required Parkspace_info             release_space_info=3;   //待释放车位信息
 }
 
@@ -107,7 +67,7 @@ message Parkspace_release_request_msg
 message Parkspace_release_response_msg
 {
     required Base_info                  base_info=1;            //消息类型
-    required int32                      command_id=2;           //指令唯一标识符id
+    required Command_info               command_info=2;           //指令唯一标识符id
     required Error_manager              error_manager=3;        //分配成功与否标志
     required Parkspace_info             release_space_info=4;   //待释放车位信息
 }
@@ -116,7 +76,7 @@ message Parkspace_release_response_msg
 message Parkspace_force_update_request_msg
 {
     required Base_info                  base_info=1;            //消息类型
-    required int32                      command_id=2;           //指令唯一标识符id
+    required Command_info               command_info=2;           //指令唯一标识符id
     required Parkspace_info             update_space_info=3;    //待手动修改车位信息,通过id定位
 }
 
@@ -124,7 +84,7 @@ message Parkspace_force_update_request_msg
 message Parkspace_force_update_response_msg
 {
     required Base_info                  base_info=1;            //消息类型
-    required int32                      command_id=2;           //指令唯一标识符id
+    required Command_info               command_info=2;           //指令唯一标识符id
     required Error_manager              error_manager=3;        //分配成功与否标志
     required Parkspace_info             update_space_info=4;    //已修改后的车位信息
 }
@@ -133,14 +93,14 @@ message Parkspace_force_update_response_msg
 message Parkspace_confirm_alloc_request_msg
 {
     required Base_info                  base_info=1;            //消息类型
-    required int32                      command_id=2;           //指令唯一标识符id
+    required Command_info               command_info=2;           //指令唯一标识符id
     required Parkspace_info             confirm_space_info=3;    //已修改后的车位信息
 }
 
 message Parkspace_confirm_alloc_response_msg
 {
     required Base_info                  base_info=1;            //消息类型
-    required int32                      command_id=2;           //指令唯一标识符id
+    required Command_info               command_info=2;           //指令唯一标识符id
     required Error_manager              error_manager=3;        //分配成功与否标志
     required Parkspace_info             confirm_alloc_space_info=4;    //已修改后的车位信息
 }

+ 2 - 2
parkspace_allocation/database_controller.cpp

@@ -2,7 +2,7 @@
  * @Description: 数据库操作类
  * @Author: yct
  * @Date: 2020-07-15 14:08:46
- * @LastEditTime: 2020-07-22 19:10:53
+ * @LastEditTime: 2020-07-24 14:19:31
  * @LastEditors: yct
  */
 
@@ -309,7 +309,7 @@ void Database_controller::database_status_update()
 {
     while(!mb_exit && mb_initialized)
     {
-        std::cout<<"guard thread working."<<std::endl;
+        //std::cout<<"guard thread working."<<std::endl;
         // 检查连接状态,直到获得正常连接或队列为空为止
         check_status();
         fill_up_pool(m_conn_pool_size);

+ 2 - 2
parkspace_allocation/parkspace_allocation_communicator.cpp

@@ -91,7 +91,7 @@ Error_manager Parkspace_allocation_communicator::encapsulate_msg(Communication_m
 Error_manager Parkspace_allocation_communicator::execute_msg(Communication_message *p_msg)
 {
     return Parkspace_allocator::get_instance_references().execute_msg(p_msg);
-    return Error_manager(PARKSPACE_ALLOCATOR_MSG_RESPONSE_TYPE_ERROR, NEGLIGIBLE_ERROR, "parkspace allocation wrong request type");
+    // return Error_manager(PARKSPACE_ALLOCATOR_MSG_RESPONSE_TYPE_ERROR, NEGLIGIBLE_ERROR, "parkspace allocation wrong request type");
 }
 
 //检查消息是否应由本模块接收
@@ -142,7 +142,7 @@ Error_manager Parkspace_allocation_communicator::check_executer(Communication_me
 //重载心跳与车位状态发送函数
 Error_manager Parkspace_allocation_communicator::encapsulate_send_data()
 {
-    return Error_code::SUCCESS;
+    // return Error_code::SUCCESS;
     std::lock_guard<std::mutex> lck(m_status_mutex);
     //车位信息消息赋值
 	message::Parkspace_allocation_status_msg t_parkspace_status_msg;

+ 16 - 16
parkspace_allocation/parkspace_allocator.cpp

@@ -2,7 +2,7 @@
  * @Description: 车位分配算法模块,使用单例模式,接收外部请求并通过调用通信块接口发送反馈
  * @Author: yct
  * @Date: 2020-07-10 11:02:40
- * @LastEditTime: 2020-07-22 19:21:03
+ * @LastEditTime: 2020-08-05 17:10:58
  * @LastEditors: yct
  */ 
 
@@ -92,7 +92,7 @@ Error_manager Parkspace_allocator::execute_msg(Communication_message* p_msg)
             }
             //往线程池添加执行任务, 之后会唤醒一个线程去执行他.
             m_thread_pool.enqueue(&Parkspace_allocator::execute_for_allocate, this,
-            request.car_info(), request.terminal_id(), request.command_id());
+            request.car_info(), request.terminal_id(), request.command_info());
             return SUCCESS;
         }
         // 车位查询请求消息
@@ -107,7 +107,7 @@ Error_manager Parkspace_allocator::execute_msg(Communication_message* p_msg)
 			    					" message::Parkspace_search_request_msg  ParseFromString error ");
             }
             //往线程池添加执行任务, 之后会唤醒一个线程去执行他.
-            m_thread_pool.enqueue(&Parkspace_allocator::execute_for_search, this, request.car_info(), request.command_id());
+            m_thread_pool.enqueue(&Parkspace_allocator::execute_for_search, this, request.car_info(), request.command_info());
             return SUCCESS;
         }
         // 车位释放请求消息
@@ -122,7 +122,7 @@ Error_manager Parkspace_allocator::execute_msg(Communication_message* p_msg)
 			    					" message::Parkspace_release_request_msg  ParseFromString error ");
             }
             //往线程池添加执行任务, 之后会唤醒一个线程去执行他.
-            m_thread_pool.enqueue(&Parkspace_allocator::execute_for_release, this, request.release_space_info(), request.command_id());
+            m_thread_pool.enqueue(&Parkspace_allocator::execute_for_release, this, request.release_space_info(), request.command_info());
             return SUCCESS;
         }
         // 车位手动更新请求消息
@@ -137,7 +137,7 @@ Error_manager Parkspace_allocator::execute_msg(Communication_message* p_msg)
 			    					" message::Parkspace_force_update_request_msg  ParseFromString error ");
             }
             //往线程池添加执行任务, 之后会唤醒一个线程去执行他.
-            m_thread_pool.enqueue(&Parkspace_allocator::execute_for_force_update, this, request.update_space_info(), request.command_id());
+            m_thread_pool.enqueue(&Parkspace_allocator::execute_for_force_update, this, request.update_space_info(), request.command_info());
             return SUCCESS;
         }
         // 车位确认占用请求消息
@@ -152,7 +152,7 @@ Error_manager Parkspace_allocator::execute_msg(Communication_message* p_msg)
 			    					" message::Parkspace_force_update_request_msg  ParseFromString error ");
             }
             //往线程池添加执行任务, 之后会唤醒一个线程去执行他.
-            m_thread_pool.enqueue(&Parkspace_allocator::execute_for_confirm_alloc, this, request.confirm_space_info(), request.command_id());
+            m_thread_pool.enqueue(&Parkspace_allocator::execute_for_confirm_alloc, this, request.confirm_space_info(), request.command_info());
             return SUCCESS;
         }
 	}
@@ -178,7 +178,7 @@ Parkspace_allocator::parkspace_allocator_status Parkspace_allocator::get_parkspa
 }
 
 //分配车位线程函数
-void Parkspace_allocator::execute_for_allocate(message::Car_info car_info, int terminal_id, int command_id)
+void Parkspace_allocator::execute_for_allocate(message::Car_info car_info, int terminal_id, message::Command_info command_info)
 {
     std::lock_guard<std::mutex> lck(m_mutex);
     LOG(INFO) << "分配";
@@ -246,7 +246,7 @@ void Parkspace_allocator::execute_for_allocate(message::Car_info car_info, int t
         }
     }
     response_msg.mutable_base_info()->CopyFrom(t_response_header);
-    response_msg.set_command_id(command_id);
+    response_msg.CopyFrom(command_info);
     response_msg.mutable_error_manager()->CopyFrom(t_error);
     response_msg.mutable_allocated_space_info()->CopyFrom(t_allocated_space);
     Communication_message response=Communication_message();
@@ -255,7 +255,7 @@ void Parkspace_allocator::execute_for_allocate(message::Car_info car_info, int t
 }
 
 //查询车位线程函数
-void Parkspace_allocator::execute_for_search(message::Car_info car_info, int command_id)
+void Parkspace_allocator::execute_for_search(message::Car_info car_info, message::Command_info command_info)
 {
     std::lock_guard<std::mutex> lck(m_mutex);
     LOG(INFO) << "查询";
@@ -306,7 +306,7 @@ void Parkspace_allocator::execute_for_search(message::Car_info car_info, int com
         }
     }
     response_msg.mutable_base_info()->CopyFrom(t_response_header);
-    response_msg.set_command_id(command_id);
+    response_msg.CopyFrom(command_info);
     response_msg.mutable_error_manager()->CopyFrom(t_error);
     response_msg.mutable_car_position()->CopyFrom(t_car_position);
     Communication_message response=Communication_message();
@@ -315,7 +315,7 @@ void Parkspace_allocator::execute_for_search(message::Car_info car_info, int com
 }
 
 //释放车位线程函数
-void Parkspace_allocator::execute_for_release(message::Parkspace_info space_info, int command_id)
+void Parkspace_allocator::execute_for_release(message::Parkspace_info space_info, message::Command_info command_info)
 {
     std::lock_guard<std::mutex> lck(m_mutex);
     LOG(INFO) << "释放";
@@ -415,7 +415,7 @@ void Parkspace_allocator::execute_for_release(message::Parkspace_info space_info
         }
     }
     response_msg.mutable_base_info()->CopyFrom(t_response_header);
-    response_msg.set_command_id(command_id);
+    response_msg.CopyFrom(command_info);
     response_msg.mutable_error_manager()->CopyFrom(t_error);
     response_msg.mutable_release_space_info()->CopyFrom(t_release_space);
     Communication_message response=Communication_message();
@@ -424,7 +424,7 @@ void Parkspace_allocator::execute_for_release(message::Parkspace_info space_info
 }
 
 //强制更新车位信息线程函数
-void Parkspace_allocator::execute_for_force_update(message::Parkspace_info space_info, int command_id)
+void Parkspace_allocator::execute_for_force_update(message::Parkspace_info space_info, message::Command_info command_info)
 {
     std::lock_guard<std::mutex> lck(m_mutex);
     LOG(INFO) << "手动";
@@ -479,7 +479,7 @@ void Parkspace_allocator::execute_for_force_update(message::Parkspace_info space
         }
     }
     response_msg.mutable_base_info()->CopyFrom(t_response_header);
-    response_msg.set_command_id(command_id);
+    response_msg.CopyFrom(command_info);
     response_msg.mutable_error_manager()->CopyFrom(t_error);
     response_msg.mutable_update_space_info()->CopyFrom(t_update_space);
     Communication_message response=Communication_message();
@@ -488,7 +488,7 @@ void Parkspace_allocator::execute_for_force_update(message::Parkspace_info space
 }
 
 //确认分配车位线程函数
-void Parkspace_allocator::execute_for_confirm_alloc(message::Parkspace_info space_info, int command_id)
+void Parkspace_allocator::execute_for_confirm_alloc(message::Parkspace_info space_info, message::Command_info command_info)
 {
     std::lock_guard<std::mutex> lck(m_mutex);
     LOG(INFO) << "确认分配";
@@ -575,7 +575,7 @@ void Parkspace_allocator::execute_for_confirm_alloc(message::Parkspace_info spac
         }
     }
     response_msg.mutable_base_info()->CopyFrom(t_response_header);
-    response_msg.set_command_id(command_id);
+    response_msg.CopyFrom(command_info);
     response_msg.mutable_error_manager()->CopyFrom(t_error);
     response_msg.mutable_confirm_alloc_space_info()->CopyFrom(t_confirm_space);
     Communication_message response=Communication_message();

+ 6 - 6
parkspace_allocation/parkspace_allocator.h

@@ -2,7 +2,7 @@
  * @Description: 车位分配算法模块,使用单例模式,接收外部请求并通过调用通信块接口发送反馈
  * @Author: yct
  * @Date: 2020-07-10 09:25:56
- * @LastEditTime: 2020-07-21 18:00:45
+ * @LastEditTime: 2020-08-05 17:02:02
  * @LastEditors: yct
  */ 
 
@@ -55,15 +55,15 @@ public://API functions
 
 public://execute_msg创建各线程进行处理
 	//分配车位线程函数
-    void execute_for_allocate(message::Car_info car_info, int terminal_id, int command_id);
+    void execute_for_allocate(message::Car_info car_info, int terminal_id, message::Command_info command_info);
     //查询车位线程函数
-    void execute_for_search(message::Car_info car_info, int command_id);
+    void execute_for_search(message::Car_info car_info, message::Command_info command_info);
     //释放车位线程函数
-    void execute_for_release(message::Parkspace_info space_info, int command_id);
+    void execute_for_release(message::Parkspace_info space_info, message::Command_info command_info);
     //强制更新车位信息线程函数
-    void execute_for_force_update(message::Parkspace_info space_info, int command_id);
+    void execute_for_force_update(message::Parkspace_info space_info, message::Command_info command_info);
     //确认分配车位线程函数
-    void execute_for_confirm_alloc(message::Parkspace_info space_info, int command_id);
+    void execute_for_confirm_alloc(message::Parkspace_info space_info, message::Command_info command_info);
 
 private:
     parkspace_allocator_status  m_current_status;               //分配器当前状态

+ 2 - 2
test/test_parkspace_sample.cpp

@@ -2,7 +2,7 @@
  * @Description: 测试车位分配模块通信情况
  * @Author: yct
  * @Date: 2020-07-08 15:51:46
- * @LastEditTime: 2020-07-22 14:17:07
+ * @LastEditTime: 2020-07-24 10:54:17
  * @LastEditors: yct
  */ 
 #include "../parkspace_allocation/parkspace_allocation_communicator.h"
@@ -26,7 +26,7 @@ int main()
     config.set_db_name("test");
     config.set_db_conn_pool_size(5);
     p_parkspace_allocator->parkspace_allocator_init(4, config);
-    p_parkspace_allocation_communicater->communication_bind("tcp://127.0.0.1:7001");
+    p_parkspace_allocation_communicater->communication_bind("tcp://192.168.0.202:30001");
     // p_parkspace_allocation_communicater->communication_bind("tcp://192.168.2.125:7001");
     // p_parkspace_allocation_communicater->communication_connect("tcp://127.0.0.1:7000");
     p_parkspace_allocation_communicater->communication_run();