message.proto 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254
  1. syntax = "proto3";
  2. /*测量信息*/
  3. message measure_info {
  4. float cx=1;
  5. float cy=2;
  6. float theta=3;
  7. float length=4;
  8. float width=5;
  9. float height=6;
  10. float wheelbase=7;
  11. float front_theta=8;
  12. int32 border_statu=9; //超界状态, 位运算
  13. int32 ground_status=10; //雷达状态,=ok 1=nothing 2=noise 3=border 4=fault
  14. int32 is_stop=11; //<是否可停> 1为可停,0为不可停
  15. int32 motion_statu=12; //运动状态,0=运动, 1=静止(只有三秒内都是静止才会写1,只要瞬间触发运动就会写0)
  16. }
  17. /*分配的车位信息*/
  18. message parkspace_info{
  19. int32 id=1;
  20. int32 serial_id=2; //排序id
  21. int32 table_id=3; //标签id
  22. int32 unit_id=4; //单元号
  23. int32 floor=5; //楼层号
  24. int32 room_id=6; //同层编号
  25. float height=7; //车高档位
  26. }
  27. //任务表单状态
  28. enum STATU{
  29. eNormal=0;//正常
  30. eWarning=1;//警告
  31. eError=2;//错误
  32. eCritical=3;//严重错误
  33. }
  34. //表单流程模式
  35. enum Table_process_mode
  36. {
  37. PROCESS_NORMAL = 0; //0:正常模式, 检查节点会向收费系统发送请求,收费系统的答复 通过后,再向调度发送请求
  38. PROCESS_ONLY_TO_DISPATCH = 1; //1:强制存取车,检查节点会向收费系统发送请求,忽略收费系统的答复,直接向调度发送请求。
  39. PROCESS_ONLY_TO_PAY = 2; //2:虚拟存取车, 检查节点会向收费系统发送请求,忽略收费系统的答复。
  40. }
  41. /*
  42. 表单执行状态
  43. */
  44. message table_statu{
  45. STATU execute_statu=1; //执行状态
  46. string statu_description=2; //状态描述
  47. Table_process_mode table_process_mod=3;//表单流程模式
  48. }
  49. /*
  50. 号牌信息
  51. */
  52. message plate_number_info
  53. {
  54. string plate_number = 1;//号牌
  55. string plate_color = 2;//号牌颜色
  56. string plate_type = 3;//号牌类型, 车辆类型
  57. int32 plate_confidence = 4;//号牌可信度, 1-100 值越高可信度越高
  58. string recognition_time = 5;//识别时间点, yyyyMMddHHmmss
  59. string plate_full_image = 6;//号牌全景图, base64编码
  60. string plate_clip_image = 7;//号牌特写图, base64编码
  61. }
  62. /*
  63. 停车表单
  64. */
  65. message park_table{
  66. table_statu statu=1; //表单状态
  67. int32 queue_id=2; //指令排队编号
  68. string car_number=3;
  69. int32 unit_id=4;
  70. int32 terminal_id=5;
  71. string primary_key=6;
  72. measure_info entrance_measure_info=7; //入口测量信息
  73. parkspace_info allocated_space_info=8; //分配的车位信息
  74. measure_info actually_measure_info=9; //实际测量信息或者叫二次测量信息
  75. parkspace_info actually_space_info=10; //实际停放的车位
  76. int32 import_id =11; //入口id, 1~2
  77. plate_number_info car_number_info = 12;//车牌号信息
  78. }
  79. /*
  80. 取车表单
  81. */
  82. message pick_table{
  83. table_statu statu=1; //表单状态
  84. int32 queue_id=2; //指令排队编号
  85. string car_number=3;
  86. int32 unit_id=4;
  87. int32 terminal_id=5;
  88. string primary_key=6;
  89. parkspace_info actually_space_info=7; //实际停放的车位信息
  90. measure_info actually_measure_info=8; //存车时的实际测量信息(轴距)
  91. int32 export_id=9; //出口id, 3~4
  92. bool is_leaved=10; //是否离开
  93. plate_number_info car_number_info = 11;//车牌号信息
  94. }
  95. /*
  96. 以下是状态消息
  97. */
  98. /*
  99. 单片机节点状态
  100. */
  101. message out_mcpu_statu{ //数值+1后
  102. int32 door_statu=1; //外门状态 0无效, 1无效, 2开到位, 3 关到位, 4开关中, 5 故障
  103. int32 outside_safety=2; //是否有车 0无效, 1无车, 2有车
  104. }
  105. message in_mcpu_statu{ //数值+1后
  106. int32 door_statu=1; //外门状态 0无效, 1无效, 2开到位, 3 关到位, 4开关中, 5 故障
  107. int32 back_io=2; //后超界 0无效, 1后超界, 2正常
  108. int32 is_occupy=3; //是否有车 0无效, 1无车, 2有车
  109. int32 heighth=4; //车高状态 0无效, 1无效, 2小车, 3中车, 4大车, 5故障, 6故障
  110. }
  111. /*
  112. 测量节点状态
  113. */
  114. message measure_statu{
  115. measure_info info=1;
  116. }
  117. //搬运器状态枚举
  118. enum CarrierStatu{
  119. eIdle=0;
  120. eBusy=1;
  121. eFault=2;
  122. }
  123. /*
  124. //楚天调度入口汽车范围的修正信息
  125. message dispatch_region_info
  126. {
  127. int32 terminal_id=1; //入口终端编号, 1~6
  128. float turnplate_angle_min=2; //转盘角度最小值, 负值, 例如 -5度
  129. float turnplate_angle_max=3; //转盘角度最大值, 正值, 例如 +5度
  130. }
  131. //楚天搬运器状态消息
  132. message dispatch_node_statu{
  133. CarrierStatu statu=1;
  134. int32 idle_stop_floor=2; //空闲时停留位置
  135. park_table running_pack_info=3; //正在执行的停车表单
  136. pick_table running_pick_info=4; //正在执行的取车表单
  137. int32 unit_id = 5; //单元号, 1~3
  138. int32 plc_heartbeat = 6; //plc心跳信息
  139. int32 plc_status_info = 7; //plc状态的集合
  140. //0 bit, 手动模式
  141. //1 bit, 自动模式
  142. //2 bit, 自动运行中
  143. //3 bit, 复位
  144. //4 bit, 1号口可以进车
  145. //5 bit, 2号口可以进车
  146. //6 bit, 预留
  147. //7 bit, 预留
  148. repeated dispatch_region_info dispatch_region_info_vector = 8; //调度入口汽车范围的修正信息
  149. }
  150. */
  151. //plc出入口状态结构体
  152. message dispatch_plc_passway_status
  153. {
  154. int32 car_height = 1; //车高 0=无车 1=小车 2=中车 3=大车 4=超高车
  155. int32 outside_door_status = 2; //外门状态 0=无状态 1=开到位 2=关到位
  156. int32 inside_door_status = 3; //内门状态 0=无状态 1=开到位 2=关到位
  157. int32 comb_body_status = 4; //梳体状态 0=无状态 1=上到位 2=下到位, AB特有
  158. float turnplate_angle_min = 5; //转盘角度最小值, C特有, 负值, 例如 -5度
  159. float turnplate_angle_max = 6; //转盘角度最大值, C特有, 正值, 例如 +5度
  160. int32 sensor_1 = 7; //传感器状态的集合1
  161. //0 bit, 地感 0=无车 1=有车
  162. //1 bit, 移动检测 0=运动 1=静止
  163. //2 bit, 动态超限 0=遮挡 1=正常
  164. //3 bit, 后超界 0=遮挡 1=正常
  165. //4 bit, 前超界 0=遮挡 1=正常
  166. //5 bit, 左超界 0=遮挡 1=正常
  167. //6 bit, 右超界 0=遮挡 1=正常
  168. //7 bit, 车高小车, 0=遮挡 1=正常,AB单元为1480, C单元为1780,
  169. int32 sensor_2 = 8; //传感器状态的集合1
  170. //0 bit, 车高中车, 0=遮挡 1=正常,AB单元为1500, C单元为1800,
  171. //1 bit, 车高大车, 0=遮挡 1=正常,AB单元为2050, C单元为2050,
  172. //2 bit, 有车检测 0=无车 1=有车
  173. //3 bit, 车轮1检测 0=无车 1=有车, AB特有
  174. //4 bit, 车轮2检测 0=无车 1=有车, AB特有
  175. //5 bit, 预留
  176. //6 bit, 预留
  177. //7 bit, 预留
  178. int32 plc_passway_enable=9; //出入口 0=不可进车, 1=可进车, 2=维护不可进车, 3=维护可进车
  179. }
  180. //厦门搬运器状态消息
  181. message dispatch_node_statu{
  182. CarrierStatu statu=1;
  183. int32 idle_stop_floor=2; //空闲时停留位置
  184. park_table running_pack_info=3; //正在执行的停车表单
  185. pick_table running_pick_info=4; //正在执行的取车表单
  186. int32 unit_id = 5; //单元号,
  187. int32 plc_heartbeat = 6; //plc心跳信息
  188. int32 plc_mode_status = 7; //plc状态的集合
  189. //0 bit, 手动模式, 维修模式
  190. //1 bit, 自动模式
  191. //2 bit, 自动运行中
  192. //3 bit, 复位
  193. //4 bit, 预留
  194. //5 bit, 预留
  195. //6 bit, 预留
  196. //7 bit, 预留
  197. int32 plc_passway_status = 8; //plc 出入口状态
  198. //0 bit, 入口1 可进车
  199. //1 bit, 入口1 维护
  200. //2 bit, 入口2 可进车
  201. //3 bit, 入口2 维护
  202. //4 bit, 出口1 可出车
  203. //5 bit, 出口1 维护
  204. //6 bit, 出口2 可出车
  205. //7 bit, 出口2 维护
  206. int32 plc_carrier_status = 9; //搬运器状态 0=故障 1=存车 2=取车 3=空闲 4=维护
  207. int32 plc_inlet_1_status = 10; //入口1 0=不可进车, 1=可进车, 2=维护不可进车, 3=维护可进车
  208. int32 plc_inlet_2_status = 11; //入口2 0=不可进车, 1=可进车, 2=维护不可进车, 3=维护可进车
  209. int32 plc_outlet_3_status = 12; //出口3 0=不可进车, 1=可进车, 2=维护不可进车, 3=维护可进车
  210. int32 plc_outlet_4_status = 13; //出口4 0=不可进车, 1=可进车, 2=维护不可进车, 3=维护可进车
  211. repeated dispatch_plc_passway_status dispatch_plc_passway_status_vector = 14; //plc出入口状态结构体, 数组下标0~1是入口, 数组下标2~3是出口
  212. }
  213. message terminal_node_statu{
  214. int32 terminal_id = 1;
  215. int32 import_id = 2;
  216. string car_number = 3;
  217. }