|
@@ -2,60 +2,7 @@ syntax = "proto2";
|
|
|
package message;
|
|
|
import "message_base.proto";
|
|
|
|
|
|
-//调度管理 的状态
|
|
|
-enum Dispatch_manager_status
|
|
|
-{
|
|
|
- E_DISPATCH_MANAGER_UNKNOW = 0; //未知
|
|
|
- E_DISPATCH_MANAGER_READY = 1; //准备,待机
|
|
|
- E_DISPATCH_MANAGER_STORE = 2; //正在存车
|
|
|
- E_DISPATCH_MANAGER_PICKUP = 3; //正在取车
|
|
|
|
|
|
- E_DISPATCH_MANAGER_FAULT = 10; //故障
|
|
|
-}
|
|
|
-
|
|
|
-//抓车器状态, 楚天项目就是AGV系统
|
|
|
-enum Catcher_status
|
|
|
-{
|
|
|
- E_CATCHER_UNKNOW = 0; //未知
|
|
|
- E_CATCHER_READY = 1; //准备,待机
|
|
|
- E_CATCHER_STORE = 2; //正在存车
|
|
|
- E_CATCHER_PICKUP = 3; //正在取车
|
|
|
-
|
|
|
- E_CATCHER_FAULT = 10; //故障
|
|
|
-}
|
|
|
-
|
|
|
-//搬运器状态, 楚天项目就是中跑车
|
|
|
-enum Carrier_status
|
|
|
-{
|
|
|
- E_CARRIER_UNKNOW = 0; //未知
|
|
|
- E_CARRIER_READY = 1; //准备,待机
|
|
|
- E_CARRIER_STORE = 2; //正在存车
|
|
|
- E_CARRIER_PICKUP = 3; //正在取车
|
|
|
-
|
|
|
- E_CARRIER_FAULT = 10; //故障
|
|
|
-}
|
|
|
-
|
|
|
-//升降机状态, 楚天项目就是电梯
|
|
|
-enum Elevator_status
|
|
|
-{
|
|
|
- E_ELEVATOR_UNKNOW = 0; //未知
|
|
|
- E_ELEVATOR_READY = 1; //准备,待机
|
|
|
- E_ELEVATOR_STORE = 2; //正在存车
|
|
|
- E_ELEVATOR_PICKUP = 3; //正在取车
|
|
|
-
|
|
|
- E_ELEVATOR_FAULT = 10; //故障
|
|
|
-}
|
|
|
-
|
|
|
-//通道口状态, 楚天项目就是一楼的出入口
|
|
|
-enum Passageway_status
|
|
|
-{
|
|
|
- E_PASSAGEWAY_UNKNOW = 0; //未知
|
|
|
- E_PASSAGEWAY_READY = 1; //准备,待机
|
|
|
- E_PASSAGEWAY_STORE = 2; //正在存车
|
|
|
- E_PASSAGEWAY_PICKUP = 3; //正在取车
|
|
|
-
|
|
|
- E_PASSAGEWAY_FAULT = 10; //故障
|
|
|
-}
|
|
|
|
|
|
//终端流程状态, 表示这个出入口到楼上停车位之间的所有设备总状态
|
|
|
enum Terminal_status
|
|
@@ -76,12 +23,13 @@ enum Passageway_direction
|
|
|
E_BILATERAL =2; //双向口
|
|
|
}
|
|
|
|
|
|
-//设备坐标
|
|
|
-message Device_position
|
|
|
+//调度模块终端出入口的状态
|
|
|
+message Dispatch_terminal_status_msg
|
|
|
{
|
|
|
- required float x=1; //X轴坐标
|
|
|
- required float y=2; //Y轴坐标
|
|
|
- required float z=3; //Z轴坐标, 楚天AGV和电梯一一对应,所以Z轴就用电梯高度表示
|
|
|
+ required Base_info base_info=1; //消息类型
|
|
|
+ required int32 terminal_id=2; //终端id
|
|
|
+ required Terminal_status terminal_status = 3; //终端流程状态, 表示这个出入口到楼上停车位之间的所有设备总状态
|
|
|
+ required Passageway_direction passageway_direction = 4; //通道口属性, 出入口的方向属性, 表示这个通道允许停车或者取车
|
|
|
}
|
|
|
|
|
|
//调度方向, 停车取车, 表示正在执行的动作
|
|
@@ -91,43 +39,277 @@ enum Dispatch_motion_direction
|
|
|
E_PICKUP_CAR =1; //取车, 停车位 -> 出入口
|
|
|
}
|
|
|
|
|
|
-//调度管理总管理的状态
|
|
|
-message Dispatch_manager_status_msg
|
|
|
+
|
|
|
+
|
|
|
+//执行搬运请求(主控->调度管理)
|
|
|
+message Dispatch_request_msg
|
|
|
{
|
|
|
- required Base_info base_info=1; //消息类型
|
|
|
- required int32 dispatch_id=2; //调度管理模块 id
|
|
|
- required Dispatch_manager_status dispatch_manager_status = 3; //调度管理模块 状态
|
|
|
- repeated Catcher_status catcher_status = 4; //抓车器状态, 楚天项目就是AGV系统
|
|
|
- repeated Carrier_status carrier_status = 5; //搬运器状态, 楚天项目就是中跑车
|
|
|
- repeated Elevator_status elevator_status = 6; //升降机状态, 楚天项目就是电梯
|
|
|
- repeated Passageway_status passageway_status = 7; //通道口状态, 楚天项目就是一楼的出入口
|
|
|
+ required Base_info base_info=1; //消息类型
|
|
|
+ required string command_key=2; //指令唯一标识符id
|
|
|
+
|
|
|
+ optional Dispatch_motion_direction dispatch_motion_direction=3; //调度方向, 停车取车
|
|
|
+ optional int32 terminal_id=4; //终端id, 出入口
|
|
|
+ optional Locate_information locate_information=5; //汽车测量信息, 只有停车时有数据, 取车时没有数据.
|
|
|
+
|
|
|
+ repeated Parkspace_info parkspace_info_ex=6; //车位编号, 停车位(B方案, 分配3个停车位)
|
|
|
+ optional Car_type car_type=7; //汽车大小
|
|
|
}
|
|
|
|
|
|
-//调度模块终端出入口的状态
|
|
|
-message Dispatch_terminal_status_msg
|
|
|
+//搬运动作执行完成后反馈结果(调度管理->主控)
|
|
|
+message Dispatch_response_msg
|
|
|
{
|
|
|
required Base_info base_info=1; //消息类型
|
|
|
- required int32 terminal_id=2; //终端id
|
|
|
- required Terminal_status terminal_status = 3; //终端流程状态, 表示这个出入口到楼上停车位之间的所有设备总状态
|
|
|
- required Passageway_direction passageway_direction = 4; //通道口属性, 出入口的方向属性, 表示这个通道允许停车或者取车
|
|
|
+ required string command_key=2; //指令唯一标识符id
|
|
|
+
|
|
|
+
|
|
|
+ optional Dispatch_motion_direction dispatch_motion_direction=3; //调度方向, 停车取车
|
|
|
+ optional int32 terminal_id=4; //终端id, 出入口
|
|
|
+ optional Locate_information locate_information=5; //汽车测量信息, 只有停车时有数据, 取车时没有数据.
|
|
|
+
|
|
|
+ repeated Parkspace_info parkspace_info_ex=6; //车位编号, 停车位(B方案, 分配3个停车位)
|
|
|
+ optional Car_type car_type=7; //汽车大小
|
|
|
+
|
|
|
+ optional Error_manager error_manager = 8;
|
|
|
}
|
|
|
|
|
|
|
|
|
-//执行搬运请求
|
|
|
-message Dispatch_request_msg
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+//调度管理 的状态
|
|
|
+enum Dispatch_manager_status
|
|
|
{
|
|
|
- required Base_info base_info=1; //消息类型
|
|
|
- required string command_key=2; //指令唯一标识符id
|
|
|
- required Dispatch_motion_direction dispatch_motion_direction=3; //调度方向, 停车取车
|
|
|
- required int32 terminal_id=4; //终端id, 出入口
|
|
|
- required int32 parkspace_id=5; //车位编号, 停车位
|
|
|
- optional Locate_information locate_information=6; //汽车测量信息, 只有停车时有数据, 取车时没有数据.
|
|
|
+ E_DISPATCH_MANAGER_UNKNOW = 0; //未知
|
|
|
+ E_DISPATCH_MANAGER_READY = 1; //准备,待机
|
|
|
+ E_DISPATCH_MANAGER_STORE = 2; //正在存车
|
|
|
+ E_DISPATCH_MANAGER_PICKUP = 3; //正在取车
|
|
|
+
|
|
|
+ E_DISPATCH_MANAGER_FAULT = 100; //故障
|
|
|
}
|
|
|
|
|
|
-//搬运动作执行完成后反馈结果
|
|
|
-message Dispatch_response_msg
|
|
|
+//设备状态,这个类的总状态,这里指工作任务流程
|
|
|
+ enum Dispatch_device_status
|
|
|
+ {
|
|
|
+ DISPATCH_DEVICE_UNKNOW = 0; //未知
|
|
|
+ DISPATCH_DEVICE_READY = 1; //准备,待机
|
|
|
+ DISPATCH_DEVICE_BUSY = 2; //工作正忙
|
|
|
+
|
|
|
+ DISPATCH_DEVICE_ONE_LEVEL_OVER = 3; //一级工作完成;
|
|
|
+ DISPATCH_DEVICE_ONE_LEVEL_WORK = 4; //一级工作状态; 就是普通的移动任务
|
|
|
+ DISPATCH_DEVICE_TWO_LEVEL_OVER = 5; //一级工作完成;
|
|
|
+ DISPATCH_DEVICE_TWO_LEVEL_WORK = 6; //二级工作状态; 就是紧急避让; 插队任务(会在执行一级任务的过程中; 插队并优先执行二级任务)
|
|
|
+ DISPATCH_DEVICE_THREE_LEVEL_OVER = 7; //一级工作完成;
|
|
|
+ DISPATCH_DEVICE_THREE_LEVEL_WORK = 8; //三级工作任务; 就是锁定硬件资源; 不让插队; (除非急停或者取消任务)
|
|
|
+
|
|
|
+ DISPATCH_DEVICE_FAULT = 100; //故障
|
|
|
+ DISPATCH_DEVICE_DISCONNECT = 101; //通信故障
|
|
|
+ };
|
|
|
+
|
|
|
+ //调度任务的等级
|
|
|
+ enum Dispatch_task_level
|
|
|
+ {
|
|
|
+// DISPATCH_TASK_UNKNOW_LEVEL = 0; //无效任务
|
|
|
+ DISPATCH_TASK_ONE_LEVEL = 1; //一级任务
|
|
|
+ DISPATCH_TASK_TWO_LEVEL = 2; //二级任务
|
|
|
+ DISPATCH_TASK_THREE_LEVEL = 3; //三级任务
|
|
|
+ };
|
|
|
+
|
|
|
+ //抓车的夹杆
|
|
|
+ enum Clamp_motion
|
|
|
+ {
|
|
|
+ E_CLAMP_NO_ACTION = 0; //无动作.
|
|
|
+ E_CLAMP_TIGHT = 1; //夹紧夹杆
|
|
|
+ E_CLAMP_LOOSE = 2; //松开夹杆
|
|
|
+ };
|
|
|
+
|
|
|
+ //中跑车和平层轨道的对接
|
|
|
+ enum Joint_motion
|
|
|
+ {
|
|
|
+ E_JOINT_NO_ACTION = 0; //无动作.
|
|
|
+ E_JOINT_HOLD_OUT = 1; //伸出对接,之后中跑车可以x轴移动,电梯不能Z轴移动
|
|
|
+ E_JOINT_TAKE_BACK = 2; //收回对接,之后中跑车固定在电梯上不能X轴移动,电梯可以Z轴移动
|
|
|
+ };
|
|
|
+
|
|
|
+ //小跑车的位置,是否在中跑车上面
|
|
|
+ enum Small_sports_car_motion
|
|
|
+ {
|
|
|
+ E_SMALL_SPORTS_NO_ACTION = 0; //无动作.
|
|
|
+ E_SMALL_SPORTS_CAR_GET_AWAY = 1; //小跑车离开中跑车
|
|
|
+ E_SMALL_SPORTS_CAR_GET_BACK = 2; //小跑车返回中跑车
|
|
|
+ };
|
|
|
+
|
|
|
+
|
|
|
+ //指令完成状态, 设备答复指令, 返回任务完成的情况
|
|
|
+ enum Respons_status
|
|
|
+ {
|
|
|
+ RESPONS_WORKING = 0; //任务进行中
|
|
|
+ RESPONS_OVER = 1; //任务完成
|
|
|
+ RESPONS_MINOR_ERROR = 100; //一般故障, 可恢复
|
|
|
+ RESPONS_CRITICAL_ERROR = 101; //致命故障,不可恢复
|
|
|
+ };
|
|
|
+
|
|
|
+ //设备的硬件设备状态
|
|
|
+ enum Hardware_device_status
|
|
|
+ {
|
|
|
+ DEVICE_UNKNOWN = 0; //设备未知
|
|
|
+ DEVICE_READY = 1; //设备空闲(可以接受新的指令任务)
|
|
|
+ DEVICE_WORKING = 2; //设备工作中
|
|
|
+ DEVICE_EMERGENCY_STOP = 3; //设备急停
|
|
|
+ DEVICE_UNSAFETY = 4; //设备不安全(暂时不考虑是否处于安全位置)
|
|
|
+ DEVICE_COLLISION = 5; //设备发生碰撞
|
|
|
+ DEVICE_FAULT = 6; //设备故障
|
|
|
+ };
|
|
|
+
|
|
|
+ //设备的负载状态, 小跑车上面是否有车.
|
|
|
+ enum Load_status
|
|
|
+ {
|
|
|
+ LOAD_UNKNOWN = 0; //负载未知
|
|
|
+ HAVE_CAR = 1; //有车
|
|
|
+ NO_CAR = 2; //没车
|
|
|
+ };
|
|
|
+
|
|
|
+ //7号出口 转台方向
|
|
|
+ enum Turntable_direction
|
|
|
+ {
|
|
|
+ TURNTABLE_DIRECTION_UNKNOWN = 0; //方向未知,
|
|
|
+ TURNTABLE_DIRECTION_INSIDE = 1; //方向朝里,对接内门的小跑车
|
|
|
+ TURNTABLE_DIRECTION_OUTSIDE = 2; //没车朝外,对接外门的出口
|
|
|
+ };
|
|
|
+
|
|
|
+ //出入口 门的开关状态
|
|
|
+ enum Door_motion
|
|
|
+ {
|
|
|
+ DOOR_UNKNOWN = 0; //门的开关状态 未知, 或者工作到一半,正在工作中.
|
|
|
+ DOOR_OPEN = 1; //开门
|
|
|
+ DOOR_CLOSE = 2; //关门
|
|
|
+ DOOR_ERROR = 3; //
|
|
|
+ };
|
|
|
+
|
|
|
+ //边界判断,是否超界
|
|
|
+ enum Overstep_the_boundary
|
|
|
+ {
|
|
|
+ BOUNDARY_NORMAL = 0; //边界 正常
|
|
|
+ BOUNDARY_OVERSTEP = 1; //超界
|
|
|
+ };
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+//抓取器的状态(机器手)
|
|
|
+message Catcher_data
|
|
|
+{
|
|
|
+ required Dispatch_device_type dispatch_device_type=1; //调度设备的类型
|
|
|
+ required Dispatch_device_status dispatch_device_status=2; //设备总状态, 控制任务流程(长流程)
|
|
|
+
|
|
|
+ required int32 device_id=3; //设备id,
|
|
|
+ optional Hardware_device_status actual_device_status=4; //机器人的硬件设备状态(短流程)
|
|
|
+ optional Load_status actual_load_status=5; //机器人的负载状态, 机器人上面是否有车.
|
|
|
+
|
|
|
+ optional int32 actual_coordinates_id=6; //机器人真实 空间位置的id.
|
|
|
+ optional float actual_x=7; //机器人坐标x轴,
|
|
|
+ optional float actual_y=8; //机器人坐标y轴,
|
|
|
+ optional float actual_b=9; //机器人坐标b轴, 旋转范围80~280
|
|
|
+ optional float actual_z=10; //机器人坐标z轴,
|
|
|
+ optional float actual_d1=11; //机器人坐标d1轴, 机器人抓车杆纵向移动(前轮抓杆)
|
|
|
+ optional float actual_d2=12; //机器人坐标d2轴, 机器人抓车杆纵向移动(后轮抓杆)
|
|
|
+ optional Clamp_motion actual_clamp_motion1=13; //机器人夹车杆. 0=无动作,1=夹紧,2=松开
|
|
|
+ optional Clamp_motion actual_clamp_motion2=14; //机器人夹车杆. 0=无动作,1=夹紧,2=松开
|
|
|
+ optional Clamp_motion actual_clamp_motion3=15; //机器人夹车杆. 0=无动作,1=夹紧,2=松开
|
|
|
+ optional Clamp_motion actual_clamp_motion4=16; //机器人夹车杆. 0=无动作,1=夹紧,2=松开
|
|
|
+
|
|
|
+ optional string actual_error_code=17; //机器人设备的故障信息位
|
|
|
+ optional string actual_warning_code=18; //机器人设备的警告信息位
|
|
|
+ optional string actual_error_description=19; //机器人设备的错误描述
|
|
|
+}
|
|
|
+
|
|
|
+//搬运器的状态
|
|
|
+message Carrier_data
|
|
|
+{
|
|
|
+ required Dispatch_device_type dispatch_device_type=1; //调度设备的类型
|
|
|
+ required Dispatch_device_status dispatch_device_status=2; //设备总状态, 控制任务流程(长流程)
|
|
|
+
|
|
|
+ required int32 device_id=3; //设备id,
|
|
|
+ optional Hardware_device_status actual_device_status=4; //搬运器的硬件设备状态(短流程)
|
|
|
+ optional Load_status actual_load_status=5; //搬运器的负载状态, 小跑车上面是否有车.
|
|
|
+
|
|
|
+ optional int32 actual_coordinates_id=6; //搬运器真实 空间位置的id.
|
|
|
+ optional float actual_x=7; //搬运器坐标x轴, 中跑车控制横向移动
|
|
|
+ optional float actual_y=8; //搬运器坐标y轴, 小跑车控制纵向移动
|
|
|
+ optional float actual_z=9; //搬运器坐标z轴, 电梯控制上下移动
|
|
|
+ optional float actual_y1=10; //搬运器坐标y1轴, 小跑车控制纵向移动(前轮抓杆)
|
|
|
+ optional float actual_y2=11; //搬运器坐标y2轴, 小跑车控制纵向移动(后轮抓杆)
|
|
|
+ optional Clamp_motion actual_clamp_motion1=12; //小跑车夹车杆. 0=无动作,1=夹紧,2=松开
|
|
|
+ optional Clamp_motion actual_clamp_motion2=13; //小跑车夹车杆. 0=无动作,1=夹紧,2=松开
|
|
|
+ optional Small_sports_car_motion actual_small_sports_car_motion=14; //小跑车的位置,是否在中跑车上面, 0=无动作,1=出发到位,2=返回到位
|
|
|
+ optional Joint_motion actual_joint_motion_x1=15; //电梯与X轴的横向轨道对接,0=无动作,1=伸出到位,2=收回到位
|
|
|
+ optional Joint_motion actual_joint_motion_x2=16; //电梯与X轴的横向轨道对接,0=无动作,1=伸出到位,2=收回到位
|
|
|
+
|
|
|
+ optional string actual_error_code=17; //搬运器设备的故障信息位
|
|
|
+ optional string actual_warning_code=18; //搬运器设备的警告信息位
|
|
|
+ optional string actual_error_description=19; //搬运器设备的错误描述
|
|
|
+}
|
|
|
+
|
|
|
+//出入口的状态
|
|
|
+message Passageway_data
|
|
|
+{
|
|
|
+ required Dispatch_device_type dispatch_device_type=1; //调度设备的类型
|
|
|
+ required Dispatch_device_status dispatch_device_status=2; //设备总状态, 控制任务流程(长流程)
|
|
|
+
|
|
|
+ required int32 device_id=3; //设备id,
|
|
|
+ //通道口的设备状态数据,
|
|
|
+ optional Hardware_device_status actual_device_status=4; //通道口的硬件设备状态(短流程)
|
|
|
+ optional Load_status actual_inside_load_status=5; //通道口的内部负载状态, 门内地感是否有车.
|
|
|
+ optional Load_status actual_outside_load_status=6; //通道口的外部负载状态, 门外地感是否有车.
|
|
|
+ optional Overstep_the_boundary actual_front_overstep_the_boundary=7; //通道口 汽车前边界
|
|
|
+ optional Overstep_the_boundary actual_back_overstep_the_boundary=8; //通道口 汽车后边界
|
|
|
+ optional Overstep_the_boundary actual_height_overstep_the_boundary=9; //通道口 车辆是否超高
|
|
|
+ optional Load_status actual_outside_door_sensor=10; //通道口 的外门处的传感器, 判断是否有车经过外门
|
|
|
+ //通道口的真实状态, 可能是路径中间的坐标
|
|
|
+ optional Door_motion actual_inside_door_motion=11; //通道口 内门动作
|
|
|
+ optional Door_motion actual_outside_door_motion=12; //通道口 外门动作
|
|
|
+ optional Load_status actual_turntable_load_status=13; //通道口 转盘负载状态, 是否有车.
|
|
|
+ optional Turntable_direction actual_turntable_direction=14; //通道口 转台方向
|
|
|
+
|
|
|
+ optional string actual_error_code=15; //通道口设备的故障信息位
|
|
|
+ optional string actual_warning_code=16; //通道口设备的警告信息位
|
|
|
+ optional string actual_error_description=17; //通道口设备的错误描述
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+//调度管理总管理的状态
|
|
|
+message Dispatch_manager_status_msg
|
|
|
{
|
|
|
required Base_info base_info=1; //消息类型
|
|
|
- required string command_key=2; //指令唯一标识符id
|
|
|
- required Error_manager error_manager = 3;
|
|
|
+
|
|
|
+ required int32 dispatch_id=2; //调度管理模块 id
|
|
|
+ required Dispatch_manager_status dispatch_manager_status = 3; //调度管理模块 状态
|
|
|
+
|
|
|
+ repeated Catcher_data catcher_data_map = 4; //机器手的数据
|
|
|
+ repeated Carrier_data carrier_data_map = 5; //搬运器的数据
|
|
|
+ repeated Passageway_data passageway_data_map = 6; //出入口的数据
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+//调度管理的设备详细的数据信息
|
|
|
+message Dispatch_manager_data_msg
|
|
|
+{
|
|
|
+ //后续再加
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+
|