Forráskód Böngészése

确定定位模块消息结构

zx 5 éve
szülő
commit
6ffc660cca
3 módosított fájl, 88 hozzáadás és 53 törlés
  1. 18 8
      message/hardware_message.proto
  2. 38 31
      message/locate_message.proto
  3. 32 14
      message/message_base.proto

+ 18 - 8
message/hardware_message.proto

@@ -17,15 +17,16 @@ message Position
     required float x=1;
     required float y=2;
     required float z=3;
+
 }
 
 //搬运器状态
 message Carrier_status
 {
     required Hardware_statu             statu=1;                   //状态
-    optional Command_message            cmd_msg=2;                 //正在执行的指令信息(可无)
-    optional string                     error_destination=3;       //搬运器错误信息(可无)
-    optional Position                   position=4;                //搬运器位置(z表示电梯位置)
+    optional int32                      command_id=2;                   //指令唯一标识符id
+    optional string                     error_description=3;       //搬运器错误信息(可无)
+    required Position                   position=4;                //搬运器位置(z表示电梯位置)
     required bool                       empty=5;                   //是否空载
 }
 
@@ -38,19 +39,28 @@ message Harware_statu_msg
     required Carrier_status             carrier3_statu=4;           //搬运器3状态
 }
 
+enum Action_type
+{
+    ePark=0;
+    ePick=1;
+}
+
 //执行搬运请求
 message Execute_request_msg
 {
-    required Message_type               msg_type=1;                             //消息类型
-    required Command_message            cmd_msg=2;                              //指令信息
-    optional int32                      time_out=3 [default=200000];            //定位测量超时设置,默认200s
+    required Base_msg                   msg_base=1;         //消息类型                         //消息类型
+    required int32                      command_id=2;                   //指令唯一标识符id
+    required Action_type                action_type=3;
+    required int32                      from_id=4;
+    required int32                      destination=5;
+    required Locate_data                locate_data=6;
 }
 
 //搬运动作执行完成后反馈结果
 message Execute_response_msg
 {
-    required Message_type               msg_type=1;                     //消息类型
-    required Command_message            cmd_msg=2;
+    required Base_msg                   msg_base=1;                     //消息类型
+    required int32                      command_id=2;                   //指令唯一标识符id
     required int32                      error_code=3;
     optional string                     error_description=4;
 }

+ 38 - 31
message/locate_message.proto

@@ -2,54 +2,61 @@ syntax = "proto2";
 package message;
 import "message_base.proto";
 
-enum Lidar_statu        //雷达状态
+enum Laser_manager_status
 {
-    eNormal=0;
-    eBusy=1;
-    eLidarMiss=2;
+    LASER_MANAGER_UNKNOW               	= 0;    //未知
+    LASER_MANAGER_READY               	= 1;    //准备,待机
+    LASER_MANAGER_ISSUED_TASK			= 2;	//工作下发任务
+    LASER_MANAGER_WAIT_REPLY			= 3;	//工作等待答复
+    LASER_MANAGER_FAULT					= 4;	//故障
 }
 
-//定位模块状态
-message Locate_status_msg
+//子雷达状态
+enum Laser_statu
+{
+    LASER_DISCONNECT	=0;	        //雷达断连
+    LASER_READY			=1;			//雷达正常待机,空闲
+    LASER_BUSY			=2;	        //雷达正在工作,正忙
+    LASER_FAULT			=3;         //雷达错误
+}
+
+//定位管理模块的工作状态
+enum Locate_manager_status
 {
-    required Message_type               msg_type=1;                         //消息类型
-    optional Command_message            cmd_msg=2;                          //正在执行的指令信息(可无)
-    required Lidar_statu                dj_statu1=3;                       //大疆测量雷达1连接状态
-    required Lidar_statu                dj_statu2=4;                       //大疆测量雷达2连接状态
-    required Lidar_statu                dj_statu3=5;                       //大疆测量雷达3连接状态
-    required Lidar_statu                dj_statu4=6;                       //大疆测量雷达4连接状态
+    LOCATE_MANAGER_UNKNOW               	= 0;    //未知
+    LOCATE_MANAGER_READY               		= 1;    //准备,待机
+    LOCATE_MANAGER_SIFT						= 2;	//sift点云筛选; 将车身和轮胎的点剥离出来
+    LOCATE_MANAGER_CAR						= 3;	//通过车身 计算汽车的定位信息.
+    LOCATE_MANAGER_WHEEL					= 4;	//通过车轮 计算汽车的定位信息.
+    LOCATE_MANAGER_FAULT					= 5;	//故障
 }
 
-//定位类型
-enum Locate_type
+
+//定位模块状态
+message Locate_status_msg
 {
-    eReal_time=0;           //实时定位,返回地面雷达实时数据
-    eTrigger=1;             //触发式定位,返回综合测量结果
+    required Base_msg                   msg_type=1;                 //消息类型
+    required Laser_manager_status       laser_manager_status = 2;
+    repeated Laser_statu                laser_statu_vector = 3;
+    required Locate_manager_status      locate_manager_status = 4;
+    required Locate_data                locate_date_realtime=5;
 }
 
 //定位请求消息
 message Locate_request_msg
 {
-    required Message_type               msg_type=1;                         //消息类型
-    required Command_message            cmd_msg=2;                          //指令信息
-    required Locate_type                locate_type=3;
-    optional int32                      time_out=4 [default=5000];          //定位测量超时设置
+    required Base_msg                   msg_base=1;         //消息类型
+    required int32                      command_id=2;                   //指令唯一标识符id
+    required int32                      terminal_id=3;          //终端id
 }
 
 //定位测量返回消息
 message Locate_response_msg
 {
-    required Message_type               msg_type=1;                         //消息类型
-    required Command_message            cmd_msg=2;
-    required int32                      error_code=3;
-    optional string                     error_description=4;
-    optional float                      length=5;
-    optional float                      width=6;
-    optional float                      height=7;
-    optional float                      wheel_base=8;
-    optional float                      x=9;
-    optional float                      y=10;
-    optional float                      theta=11;
+    required Base_msg                   msg_base=1;                          //消息类型
+    required int32                      command_id=2;                   //指令唯一标识符id
+    required int32                      terminal_id=3;
+    required Locate_data                locate_data=4;
 }
 
 

+ 32 - 14
message/message_base.proto

@@ -17,26 +17,44 @@ enum Message_type
     eExecute_request_msg=0x22;              //请求调度消息
     eExecute_response_msg=0x23;             //调度结果反馈消息
 
+}
+
+//通讯单元
+enum Communicator
+{
+    eEmpty=0x0000;
+    eMain=0x0001;    //主流程
+
+    eTerminor=0x0100;
+    //数据表
+    eTable=0x0200;
+    //测量单元
+    eMeasurer=0x0300;
+    //调度机构
+    eProcess=0x0400;
+    //...
+
+
 }
 ////base message 用于解析未知类型的消息
 message Base_msg
 {
     required Message_type msg_type=1;
+    optional int32 timeout_ms=2;
+    required Communicator               sender=3;                       //发送者
+    required Communicator               receiver=4;                     //接收者
 }
 
-//指令类型
-enum Action_type
-{
-    ePark=0;
-    ePick=1;
-}
-
-//指令信息
-message Command_message
+//测量结果结构体
+message Locate_data
 {
-    required Message_type               msg_type=1;         //消息类型
-    required int32                      command_id=2;                //指令唯一标识符id
-    required Action_type                act_type=3;                  //指令类型
-    required int32                      from_id=4;                   //指令动作出发地
-    required int32                      destination_id=5;            //指令动作目的地
+    required int32                      error_code=1;
+    optional string                     error_description=2;
+    optional float                      length=3;
+    optional float                      width=4;
+    optional float                      height=5;
+    optional float                      wheel_base=6;
+    optional float                      x=7;
+    optional float                      y=8;
+    optional float                      theta=9;
 }