syntax = "proto2"; package Dispatch_proto; message Catcher_parameter { required int32 id = 1; required int32 key = 2; } message Carrier_parameter { required int32 id = 1; required int32 key = 2; } message Passageway_parameter { required int32 id = 1; required int32 key = 2; } message Dispatch_device_parameter_all { required int32 catcher_size=1; repeated Catcher_parameter catcher_parameters=2; required int32 carrier_size=3; repeated Carrier_parameter carrier_parameters=4; required int32 passageway_size=5; repeated Passageway_parameter passageway_parameters=6; } /* Packspace_coordinates id 的表示含义 1~165 2楼~12楼的停车位 1100 0号出口(在一楼)(目前没有) 1101~1106 1~6号出入口 (在一楼) 1107 7号出口(在一楼) 1201~1206 1~6号出入口上方2楼处 1301~1306 1~6号出入口上方3楼处 1401~1406 1~6号出入口上方4楼处 2101~2112 左侧电梯井(1楼~12楼)(一号搬运器的待机点) 2201~2212 右侧电梯井(1楼~12楼)(二号搬运器的待机点) (由于工程问题, 每一个车位的x值略有不同, 不是等比数列) */ //楼上车位的坐标 1~165 message Packspace_coordinates_parameter { optional int32 id = 1[default = 0]; optional int32 x = 2[default = 0]; optional int32 y = 3[default = 0]; optional int32 z = 4[default = 0]; } //一楼出入口的坐标 1100~1107 message Passageway_coordinates_parameter { optional int32 id = 1[default = 0]; optional int32 x = 2[default = 0]; optional int32 y = 3[default = 0]; optional int32 z = 4[default = 0]; } //搬运器在2~4楼交界处 的坐标 1201~1206 1301~1306 1401~1406 //搬运器在电梯井的坐标 2101~2112 2201~2212 //机器手在一楼出入口的坐标 1100 和 1107 message Carrier_coordinates_parameter { optional int32 id = 1[default = 0]; optional int32 x = 2[default = 0]; optional int32 y = 3[default = 0]; optional int32 z = 4[default = 0]; } //机器手在2~4楼交界处 的坐标 1201~1206 1301~1306 1401~1406 //机器手在一楼出入口的坐标 1101~1106 message Catcher_coordinates_parameter { optional int32 id = 1[default = 0]; optional int32 x = 2[default = 0]; optional int32 y = 3[default = 0]; optional int32 z = 4[default = 0]; } //注意了, 搬运器和机器手在同层的z轴坐标是不同的, 机器手比搬运器高一点. //x轴和y必须相同, //搬运器和机器手交接时 使用汽车前轮对齐, 搬运器的Y1固定不同, 所以其他的3个夹杆需要根须轴距来计算. //搬运器 限定范围 message Carrier_box_parameter { optional int32 x_min = 1[default = -1000000]; optional int32 x_max = 2[default = 1000000]; optional int32 y_min = 3[default = -1000000]; optional int32 y_max = 4[default = 1000000]; optional int32 z_min = 5[default = -1000000]; optional int32 z_max = 6[default = 1000000]; } //机器手 限定范围 message Catcher_box_parameter { optional int32 x_min = 1[default = -1000000]; optional int32 x_max = 2[default = 1000000]; optional int32 y_min = 3[default = -1000000]; optional int32 y_max = 4[default = 1000000]; optional int32 z_min = 5[default = -1000000]; optional int32 z_max = 6[default = 1000000]; } message Axis_range_parameter { optional int32 min = 1[default = -1000000]; optional int32 max = 2[default = 1000000]; } //出入口的功能模式 enum Passageway_functioning_pattern { PASSAGEWAY_FUNCTIONING_PATTERN_UNKNOWN = 0; //未知 PASSAGEWAY_FUNCTIONING_PATTERN_INLET = 1; //单向入口 PASSAGEWAY_FUNCTIONING_PATTERN_OUTLET = 2; //单向出口 PASSAGEWAY_FUNCTIONING_PATTERN_BIDIRECTION = 3; //双向口 } message Parkspace_number { required int32 rows = 1; required int32 columns = 2; required int32 total = 3; required int32 liftway_width = 4; } message Dispatch_coordinates_parameter_all { repeated Packspace_coordinates_parameter packspace_coordinates_parameters = 1; repeated Passageway_coordinates_parameter passageway_coordinates_parameters = 2; repeated Carrier_coordinates_parameter carrier_coordinates_parameters = 3; repeated Catcher_coordinates_parameter catcher_coordinates_parameters = 4; optional Carrier_box_parameter carrier_box_parameters = 5; optional Catcher_box_parameter catcher_box_parameters = 6; optional int32 catcher_b_min = 7; optional int32 catcher_b_max = 8; optional int32 catcher_d1_min = 9; optional int32 catcher_d1_max = 10; optional int32 catcher_d2_min = 11; optional int32 catcher_d2_max = 12; optional int32 default_wheelbase = 13; optional int32 catcher_1th_floor_z = 14; optional int32 catcher_2th_floor_z = 15; optional int32 catcher_3th_floor_z = 16; optional int32 catcher_4th_floor_z = 17; optional int32 carrier_1th_floor_z = 18; optional int32 carrier_2th_floor_z = 19; optional int32 carrier_3th_floor_z = 20; optional int32 carrier_4th_floor_z = 21; optional int32 catcher_d1_d2_distance = 22; optional int32 catcher_wheel_base_limit = 23; optional int32 carrier_y_y1_distance = 24; optional int32 carrier_default_y1_back = 25; optional int32 carrier_default_y1_leave = 26; optional int32 carrier_default_y_back = 27; optional int32 carrier_default_y_leave = 28; optional int32 carrier_default_x_left = 29; optional int32 carrier_default_x_right = 30; optional int32 passageway_terminal_id_min = 31; optional int32 passageway_terminal_id_max = 32; optional int32 passageway_terminal_number = 33; repeated Passageway_functioning_pattern passageway_functioning_patterns = 34; optional int32 parkspace_id_min = 35; optional int32 parkspace_id_max = 36; optional int32 parkspace_id_total = 37; optional int32 third_floor_parkspace_id_min = 38; optional int32 third_floor_parkspace_id_max = 39; optional int32 third_floor_parkspace_id_total = 40; optional int32 car_wheel_base_min = 41; optional int32 car_wheel_base_max = 42; required Parkspace_number parkspace_number=43; optional int32 m_separated_distance_z=44; optional int32 m_separated_distance_x=45; }