syntax = "proto2"; package message; //消息类型定义;每个在网络上传输的消息必须含有这个属性 enum Message_type { eBase_msg=0x00; eCommand_msg=0x01; //指令消息 eLocate_status_msg=0x11; //定位模块状态消息 eLocate_request_msg=0x12; //定位请求消息 eLocate_response_msg=0x13; //定位反馈消息 eHarware_statu_msg=0x21; //调度模块硬件状态消息 eExecute_request_msg=0x22; //请求调度消息 eExecute_response_msg=0x23; //调度结果反馈消息 eParkspace_allocation_status_msg=0x31; //车位分配模块状态消息,包括车位信息 eParkspace_allocation_request_msg=0x32; //请求分配车位消息 eParkspace_allocation_response_msg=0x33;//分配车位结果反馈消息 eParkspace_search_request_msg = 0x34; //查询车位请求消息 eParkspace_search_response_msg = 0x35; //查询车位反馈消息 eParkspace_release_request_msg = 0x36; //释放车位请求消息 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;//确认分配车位反馈消息 } //通讯单元 enum Communicator { eEmpty=0x0000; eMain=0x0001; //主流程 eTerminor=0x0100; //车位数据表 eParkspace=0x0200; //测量单元 eMeasurer=0x0300; //调度机构 eProcess=0x0400; //... } ////base message 用于解析未知类型的消息 message Base_info { required Message_type msg_type=1; optional int32 timeout_ms=2; required Communicator sender=3; //发送者 required Communicator receiver=4; //接收者 } message Base_msg { required Base_info base_info=1; } //错误等级,用来做故障处理 enum Error_level { NORMAL = 0; // 正常,没有错误,默认值0 NEGLIGIBLE_ERROR = 1; // 轻微故障;可忽略的故障,NEGLIGIBLE_ERROR MINOR_ERROR = 2; // 一般故障,MINOR_ERROR MAJOR_ERROR = 3; // 严重故障,MAJOR_ERROR CRITICAL_ERROR = 4; // 致命故障,CRITICAL_ERROR } message Error_manager { required int32 error_code = 1; optional Error_level error_level = 2; optional string error_description = 3; } //测量结果结构体 message Locate_information { optional float locate_x = 1; //整车的中心点x值; 四轮的中心 optional float locate_y = 2; //整车的中心点y值; 四轮的中心 optional float locate_angle = 3; //整车的旋转角; 四轮的旋转角 optional float locate_length = 4; //整车的长度; 用于规避碰撞 optional float locate_width = 5; //整车的宽度; 用于规避碰撞 optional float locate_height = 6; //整车的高度; 用于规避碰撞 optional float locate_wheel_base = 7; //整车的轮距; 前后轮的距离; 用于机器人或agv的抓车 optional float locate_wheel_width = 8; //整车的轮距; 左右轮的距离; 用于机器人或agv的抓车 optional bool locate_correct = 9; //整车的校准标记位 }