dispatch_message.proto 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350
  1. syntax = "proto2";
  2. package message;
  3. import "message_base.proto";
  4. //终端流程状态, 表示这个出入口到楼上停车位之间的所有设备总状态
  5. enum Terminal_status
  6. {
  7. E_TERMINAL_UNKNOW = 0; //未知
  8. E_TERMINAL_READY = 1; //准备,待机
  9. E_TERMINAL_STORE = 2; //正在存车
  10. E_TERMINAL_PICKUP = 3; //正在取车
  11. E_TERMINAL_FAULT = 10; //故障
  12. }
  13. //通道口属性, 出入口的方向属性, 表示这个通道允许停车或者取车
  14. enum Passageway_direction
  15. {
  16. E_INLET =0; //入口
  17. E_OUTLET =1; //出口
  18. E_BILATERAL =2; //双向口
  19. }
  20. //调度流程状态
  21. enum Dispatch_process_status
  22. {
  23. E_DISPATCH_POCESS_UNKNOW = 0; //未知
  24. E_DISPATCH_POCESS_WAIT = 1; //等待
  25. E_DISPATCH_POCESS_WORKING = 2; //工作
  26. E_DISPATCH_POCESS_OVER = 3; //完成
  27. E_DISPATCH_POCESS_FAULT = 100; //故障
  28. }
  29. //调度流程信息
  30. message Dispatch_process_information
  31. {
  32. optional string car_numberPlate=1; //车牌号
  33. optional string command_key=2; //指令唯一标识符id
  34. optional Dispatch_motion_direction dispatch_motion_direction=3; //调度方向, 停车取车
  35. optional Id_struct id_struct=4; //出入口终端id, 只有完成状态,才有出口信息
  36. optional Locate_information locate_information=5; //汽车测量信息, 只有停车时有数据, 取车时没有数据.
  37. repeated Parkspace_info parkspace_info_ex=6; //车位编号, 停车位(B方案, 分配3个停车位)
  38. optional Car_type car_type=7; //汽车大小
  39. optional Dispatch_process_status dispatch_process_status=8; //调度流程状态
  40. optional int32 m_wait_number=9; //等待排序的队列编号, 只有等待状态才有等待编号
  41. optional float m_working_total_time=10; //工作所需的总时间, 只有工作状态才有工作时间
  42. optional float m_working_remaining_time=11; //工作所需的剩余时间, 只有工作状态才有工作时间
  43. }
  44. //调度模块终端出入口的状态
  45. message Dispatch_terminal_status_msg
  46. {
  47. required Base_info base_info=1; //消息类型
  48. optional Id_struct id_struct=2; //id
  49. required Terminal_status terminal_status = 3; //终端流程状态, 表示这个出入口到楼上停车位之间的所有设备总状态
  50. required Passageway_direction passageway_direction = 4; //通道口属性, 出入口的方向属性, 表示这个通道允许停车或者取车
  51. repeated Dispatch_process_information dispatch_store_process_information_vector = 5; //
  52. optional string dispatch_store_process_information_updata_time=6; //
  53. repeated Dispatch_process_information dispatch_pickup_process_information_vector = 7; //
  54. optional string dispatch_pickup_process_information_updata_time=8; //
  55. }
  56. //调度方向, 停车取车, 表示正在执行的动作
  57. enum Dispatch_motion_direction
  58. {
  59. E_STORE_CAR =0; //停车, 出入口 -> 停车位
  60. E_PICKUP_CAR =1; //取车, 停车位 -> 出入口
  61. }
  62. //执行搬运请求(主控->调度管理)
  63. message Dispatch_request_msg
  64. {
  65. required Base_info base_info=1; //消息类型
  66. required string command_key=2; //指令唯一标识符id
  67. optional Dispatch_motion_direction dispatch_motion_direction=3; //调度方向, 停车取车
  68. optional Id_struct id_struct=4; //id
  69. optional Locate_information locate_information=5; //汽车测量信息, 只有停车时有数据, 取车时没有数据.
  70. repeated Parkspace_info parkspace_info_ex=6; //车位编号, 停车位(B方案, 分配3个停车位)
  71. optional Car_type car_type=7; //汽车大小
  72. }
  73. //搬运动作执行完成后反馈结果(调度管理->主控)
  74. message Dispatch_response_msg
  75. {
  76. required Base_info base_info=1; //消息类型
  77. required string command_key=2; //指令唯一标识符id
  78. optional Dispatch_motion_direction dispatch_motion_direction=3; //调度方向, 停车取车
  79. optional Id_struct id_struct=4; //id
  80. optional Locate_information locate_information=5; //汽车测量信息, 只有停车时有数据, 取车时没有数据.
  81. repeated Parkspace_info parkspace_info_ex=6; //车位编号, 停车位(B方案, 分配3个停车位)
  82. optional Car_type car_type=7; //汽车大小
  83. optional Error_manager error_manager = 8;
  84. }
  85. //调度管理 的状态
  86. enum Dispatch_manager_status
  87. {
  88. E_DISPATCH_MANAGER_UNKNOW = 0; //未知
  89. E_DISPATCH_MANAGER_READY = 1; //准备,待机
  90. E_DISPATCH_MANAGER_STORE = 2; //正在存车
  91. E_DISPATCH_MANAGER_PICKUP = 3; //正在取车
  92. E_DISPATCH_MANAGER_FAULT = 100; //故障
  93. }
  94. //设备状态,这个类的总状态,这里指工作任务流程
  95. enum Dispatch_device_status
  96. {
  97. DISPATCH_DEVICE_UNKNOW = 0; //未知
  98. DISPATCH_DEVICE_READY = 1; //准备,待机
  99. DISPATCH_DEVICE_BUSY = 2; //工作正忙
  100. DISPATCH_DEVICE_ONE_LEVEL_OVER = 3; //一级工作完成;
  101. DISPATCH_DEVICE_ONE_LEVEL_WORK = 4; //一级工作状态; 就是普通的移动任务
  102. DISPATCH_DEVICE_TWO_LEVEL_OVER = 5; //一级工作完成;
  103. DISPATCH_DEVICE_TWO_LEVEL_WORK = 6; //二级工作状态; 就是紧急避让; 插队任务(会在执行一级任务的过程中; 插队并优先执行二级任务)
  104. DISPATCH_DEVICE_THREE_LEVEL_OVER = 7; //一级工作完成;
  105. DISPATCH_DEVICE_THREE_LEVEL_WORK = 8; //三级工作任务; 就是锁定硬件资源; 不让插队; (除非急停或者取消任务)
  106. DISPATCH_DEVICE_FAULT = 100; //故障
  107. DISPATCH_DEVICE_DISCONNECT = 101; //通信故障
  108. };
  109. //调度任务的等级
  110. enum Dispatch_task_level
  111. {
  112. // DISPATCH_TASK_UNKNOW_LEVEL = 0; //无效任务
  113. DISPATCH_TASK_ONE_LEVEL = 1; //一级任务
  114. DISPATCH_TASK_TWO_LEVEL = 2; //二级任务
  115. DISPATCH_TASK_THREE_LEVEL = 3; //三级任务
  116. };
  117. //抓车的夹杆
  118. enum Clamp_motion
  119. {
  120. E_CLAMP_NO_ACTION = 0; //无动作.
  121. E_CLAMP_TIGHT = 1; //夹紧夹杆
  122. E_CLAMP_LOOSE = 2; //松开夹杆
  123. };
  124. //中跑车和平层轨道的对接
  125. enum Joint_motion
  126. {
  127. E_JOINT_NO_ACTION = 0; //无动作.
  128. E_JOINT_HOLD_OUT = 1; //伸出对接,之后中跑车可以x轴移动,电梯不能Z轴移动
  129. E_JOINT_TAKE_BACK = 2; //收回对接,之后中跑车固定在电梯上不能X轴移动,电梯可以Z轴移动
  130. };
  131. //小跑车的位置,是否在中跑车上面
  132. enum Small_sports_car_motion
  133. {
  134. E_SMALL_SPORTS_NO_ACTION = 0; //无动作.
  135. E_SMALL_SPORTS_CAR_GET_AWAY = 1; //小跑车离开中跑车
  136. E_SMALL_SPORTS_CAR_GET_BACK = 2; //小跑车返回中跑车
  137. };
  138. //指令完成状态, 设备答复指令, 返回任务完成的情况
  139. enum Respons_status
  140. {
  141. RESPONS_WORKING = 0; //任务进行中
  142. RESPONS_OVER = 1; //任务完成
  143. RESPONS_MINOR_ERROR = 100; //一般故障, 可恢复
  144. RESPONS_CRITICAL_ERROR = 101; //致命故障,不可恢复
  145. };
  146. //设备的硬件设备状态
  147. enum Hardware_device_status
  148. {
  149. DEVICE_UNKNOWN = 0; //设备未知
  150. DEVICE_READY = 1; //设备空闲(可以接受新的指令任务)
  151. DEVICE_WORKING = 2; //设备工作中
  152. DEVICE_EMERGENCY_STOP = 3; //设备急停
  153. DEVICE_UNSAFETY = 4; //设备不安全(暂时不考虑是否处于安全位置)
  154. DEVICE_COLLISION = 5; //设备发生碰撞
  155. DEVICE_FAULT = 6; //设备故障
  156. };
  157. //设备的负载状态, 小跑车上面是否有车.
  158. enum Load_status
  159. {
  160. LOAD_UNKNOWN = 0; //负载未知
  161. HAVE_CAR = 1; //有车
  162. NO_CAR = 2; //没车
  163. };
  164. //7号出口 转台方向
  165. enum Turntable_direction
  166. {
  167. TURNTABLE_DIRECTION_UNKNOWN = 0; //方向未知,
  168. TURNTABLE_DIRECTION_INSIDE = 1; //方向朝里,对接内门的小跑车
  169. TURNTABLE_DIRECTION_OUTSIDE = 2; //没车朝外,对接外门的出口
  170. };
  171. //出入口 门的开关状态
  172. enum Door_motion
  173. {
  174. DOOR_UNKNOWN = 0; //门的开关状态 未知, 或者工作到一半,正在工作中.
  175. DOOR_OPEN = 1; //开门
  176. DOOR_CLOSE = 2; //关门
  177. DOOR_ERROR = 3; //
  178. };
  179. //边界判断,是否超界
  180. enum Overstep_the_boundary
  181. {
  182. BOUNDARY_NORMAL = 0; //边界 正常
  183. BOUNDARY_OVERSTEP = 1; //超界
  184. };
  185. //抓取器的状态(机器手)
  186. message Catcher_data
  187. {
  188. required Dispatch_device_type dispatch_device_type=1; //调度设备的类型
  189. required Dispatch_device_status dispatch_device_status=2; //设备总状态, 控制任务流程(长流程)
  190. required int32 device_id=3; //设备id,
  191. optional Hardware_device_status actual_device_status=4; //机器人的硬件设备状态(短流程)
  192. optional Load_status actual_load_status=5; //机器人的负载状态, 机器人上面是否有车.
  193. optional int32 actual_coordinates_id=6; //机器人真实 空间位置的id.
  194. optional float actual_x=7; //机器人坐标x轴,
  195. optional float actual_y=8; //机器人坐标y轴,
  196. optional float actual_b=9; //机器人坐标b轴, 旋转范围80~280
  197. optional float actual_z=10; //机器人坐标z轴,
  198. optional float actual_d1=11; //机器人坐标d1轴, 机器人抓车杆纵向移动(前轮抓杆)
  199. optional float actual_d2=12; //机器人坐标d2轴, 机器人抓车杆纵向移动(后轮抓杆)
  200. optional Clamp_motion actual_clamp_motion1=13; //机器人夹车杆. 0=无动作,1=夹紧,2=松开
  201. optional Clamp_motion actual_clamp_motion2=14; //机器人夹车杆. 0=无动作,1=夹紧,2=松开
  202. optional Clamp_motion actual_clamp_motion3=15; //机器人夹车杆. 0=无动作,1=夹紧,2=松开
  203. optional Clamp_motion actual_clamp_motion4=16; //机器人夹车杆. 0=无动作,1=夹紧,2=松开
  204. optional string actual_error_code=17; //机器人设备的故障信息位
  205. optional string actual_warning_code=18; //机器人设备的警告信息位
  206. optional string actual_error_description=19; //机器人设备的错误描述
  207. }
  208. //搬运器的状态
  209. message Carrier_data
  210. {
  211. required Dispatch_device_type dispatch_device_type=1; //调度设备的类型
  212. required Dispatch_device_status dispatch_device_status=2; //设备总状态, 控制任务流程(长流程)
  213. required int32 device_id=3; //设备id,
  214. optional Hardware_device_status actual_device_status=4; //搬运器的硬件设备状态(短流程)
  215. optional Load_status actual_load_status=5; //搬运器的负载状态, 小跑车上面是否有车.
  216. optional int32 actual_coordinates_id=6; //搬运器真实 空间位置的id.
  217. optional float actual_x=7; //搬运器坐标x轴, 中跑车控制横向移动
  218. optional float actual_y=8; //搬运器坐标y轴, 小跑车控制纵向移动
  219. optional float actual_z=9; //搬运器坐标z轴, 电梯控制上下移动
  220. optional float actual_y1=10; //搬运器坐标y1轴, 小跑车控制纵向移动(前轮抓杆)
  221. optional float actual_y2=11; //搬运器坐标y2轴, 小跑车控制纵向移动(后轮抓杆)
  222. optional Clamp_motion actual_clamp_motion1=12; //小跑车夹车杆. 0=无动作,1=夹紧,2=松开
  223. optional Clamp_motion actual_clamp_motion2=13; //小跑车夹车杆. 0=无动作,1=夹紧,2=松开
  224. optional Small_sports_car_motion actual_small_sports_car_motion=14; //小跑车的位置,是否在中跑车上面, 0=无动作,1=出发到位,2=返回到位
  225. optional Joint_motion actual_joint_motion_x1=15; //电梯与X轴的横向轨道对接,0=无动作,1=伸出到位,2=收回到位
  226. optional Joint_motion actual_joint_motion_x2=16; //电梯与X轴的横向轨道对接,0=无动作,1=伸出到位,2=收回到位
  227. optional string actual_error_code=17; //搬运器设备的故障信息位
  228. optional string actual_warning_code=18; //搬运器设备的警告信息位
  229. optional string actual_error_description=19; //搬运器设备的错误描述
  230. }
  231. //出入口的状态
  232. message Passageway_data
  233. {
  234. required Dispatch_device_type dispatch_device_type=1; //调度设备的类型
  235. required Dispatch_device_status dispatch_device_status=2; //设备总状态, 控制任务流程(长流程)
  236. required int32 device_id=3; //设备id,
  237. //通道口的设备状态数据,
  238. optional Hardware_device_status actual_device_status=4; //通道口的硬件设备状态(短流程)
  239. optional Load_status actual_inside_load_status=5; //通道口的内部负载状态, 门内地感是否有车.
  240. optional Load_status actual_outside_load_status=6; //通道口的外部负载状态, 门外地感是否有车.
  241. optional Overstep_the_boundary actual_front_overstep_the_boundary=7; //通道口 汽车前边界
  242. optional Overstep_the_boundary actual_back_overstep_the_boundary=8; //通道口 汽车后边界
  243. optional Overstep_the_boundary actual_height_overstep_the_boundary=9; //通道口 车辆是否超高
  244. optional Load_status actual_outside_door_sensor=10; //通道口 的外门处的传感器, 判断是否有车经过外门
  245. //通道口的真实状态, 可能是路径中间的坐标
  246. optional Door_motion actual_inside_door_motion=11; //通道口 内门动作
  247. optional Door_motion actual_outside_door_motion=12; //通道口 外门动作
  248. optional Load_status actual_turntable_load_status=13; //通道口 转盘负载状态, 是否有车.
  249. optional Turntable_direction actual_turntable_direction=14; //通道口 转台方向
  250. optional string actual_error_code=15; //通道口设备的故障信息位
  251. optional string actual_warning_code=16; //通道口设备的警告信息位
  252. optional string actual_error_description=17; //通道口设备的错误描述
  253. }
  254. //调度管理总管理的状态
  255. message Dispatch_manager_status_msg
  256. {
  257. required Base_info base_info=1; //消息类型
  258. required int32 dispatch_id=2; //调度管理模块 id
  259. required Dispatch_manager_status dispatch_manager_status = 3; //调度管理模块 状态
  260. repeated Catcher_data catcher_data_map = 4; //机器手的数据
  261. repeated Carrier_data carrier_data_map = 5; //搬运器的数据
  262. repeated Passageway_data passageway_data_map = 6; //出入口的数据
  263. }
  264. //调度管理的设备详细的数据信息
  265. message Dispatch_manager_data_msg
  266. {
  267. //后续再加
  268. }