syntax = "proto3"; /*测量信息*/ message measure_info { float cx=1; float cy=2; float theta=3; float length=4; float width=5; float height=6; float wheelbase=7; float front_theta=8; int32 border_statu=9; int32 ground_status=10; //0 ok 1,nothing 2,noise 3,border } /*分配的车位信息*/ message parkspace_info{ int32 id=1; int32 unit_id=2; //单元号 int32 floor=3; //楼层号 int32 room_id=4; //同层编号 } enum STATU{ eNormal=0; eError=1; } /* 表单执行状态 */ message table_statu{ STATU execute_statu=1; //执行状态 string statu_description=2; //状态描述 } /* 停车表单 */ message park_table{ table_statu statu=1; //表单状态 int32 queue_id=2; //指令排队编号 string car_number=3; int32 unit_id=4; int32 terminal_id=5; string primary_key=6; measure_info entrance_measure_info=7; //入口测量信息 parkspace_info allocated_space_info=8; //分配的车位信息 measure_info actually_measure_info=9; //实际测量信息或者叫二次测量信息 parkspace_info actually_space_info=10; //实际停放的车位 } /* 取车表单 */ message pick_table{ table_statu statu=1; //表单状态 int32 queue_id=2; //指令排队编号 string car_number=3; int32 unit_id=4; int32 terminal_id=5; string primary_key=6; parkspace_info actually_space_info=7; //实际停放的车位信息 measure_info actually_measure_info=8; //存车时的实际测量信息(轴距) int32 export_id=9; //分配出口 bool is_leaved=10; //是否离开 } /* 以下是状态消息 */ /* 单片机节点状态 */ message out_mcpu_statu{ //数值+1后 int32 door_statu=1; //外门状态 0无效, 1无效, 2开到位, 3 关到位, 4开关中, 5 故障 int32 outside_safety=2; //是否有车 0无效, 1无车, 2有车 } message in_mcpu_statu{ //数值+1后 int32 door_statu=1; //外门状态 0无效, 1无效, 2开到位, 3 关到位, 4开关中, 5 故障 int32 back_io=2; //后超界 0无效, 1后超界, 2正常 int32 is_occupy=3; //是否有车 0无效, 1无车, 2有车 int32 heighth=4; //车高状态 0无效, 1无效, 2小车, 3中车, 4大车, 5故障, 6故障 } /* 测量节点状态 */ message measure_statu{ measure_info info=1; } //搬运器状态枚举 enum CarrierStatu{ eIdle=0; eBusy=1; eFault=2; } //调度入口汽车范围的修正信息 message dispatch_region_info { int32 terminal_id=1; //入口终端编号, 1~6 float turnplate_angle_min=2; //转盘角度最小值, 负值, 例如 -5度 float turnplate_angle_max=3; //转盘角度最大值, 正值, 例如 +5度 } /* 搬运器状态消息 */ message dispatch_node_statu{ CarrierStatu statu=1; int32 idle_stop_floor=2; //空闲时停留位置 park_table running_pack_info=3; //正在执行的停车表单 pick_table running_pick_info=4; //正在执行的取车表单 int32 unit_id = 5; //单元号, 1~3 int32 plc_heartbeat = 6; //plc心跳信息 int32 plc_status_info = 7; //plc状态的集合 //0 bit, 手动模式 //1 bit, 自动模式 //2 bit, 自动运行中 //3 bit, 复位 //4 bit, 1号口可以进车 //5 bit, 2号口可以进车 //6 bit, 预留 //7 bit, 预留 repeated dispatch_region_info dispatch_region_info_vector = 8; //调度入口汽车范围的修正信息 }