syntax = "proto2";
package velodyne;

message velodyneManagerParams
{
    repeated velodyneLidarParams velodyne_lidars=1;
    repeated Region region=2;
    optional string fence_data_path=3 [default=""];
    optional string fence_log_path=4 [default=""];
    optional string left_model_path=5 [default=""];
    optional string right_model_path=6 [default=""];
    required bool distribution_mode=7 [default=false];//是否分布式模式，分布式模式下，各程序仅启动与自身区域相关模块
}

message velodyneLidarParams
{
    required string ip=1[default=""];
    required int32 port=2[default=2368];
    required string model=3[default="VLP16"];
    required string calibrationFile=4[default=""];
    required int32 lidar_id=5[default=0];
    optional float max_range=6[default=10.0];
    optional float min_range=7[default=0.15];
    optional int32 min_angle=8[default=0];
    optional int32 max_angle=9[default=360];
    optional int32 rpm=10[default=600];
    optional CalibParameter calib=11;
    optional int32 difop=12[default=7788];
}

message CalibParameter
{
    optional float r=1 [default=0];
    optional float p=2 [default=0];
    optional float y=3 [default=0];
    optional float cx=4 [default=0];
    optional float cy=5 [default=0];
    optional float cz=6 [default=0];
}

message lidarExtrinsic
{
    required int32 lidar_id=1;
    optional CalibParameter calib=2;
}

message Region
{
    required float minx=1;
    required float maxx=2;
    required float miny=3;
    required float maxy=4;
    required float minz=5;
    required float maxz=6;
    required int32 region_id=7;
    repeated lidarExtrinsic lidar_exts=8;
    required float turnplate_cx=9;
    required float turnplate_cy=10;
    required float border_minx=11; // 最小边界x，左超界提示
    required float border_maxx=12; // 最大边界x，右超界提示
    required float plc_offsetx=13; // plc偏移x
    required float plc_offsety=14; // plc偏移y
    required float plc_offset_degree=15; // plc偏移角度
    required float plc_border_miny=16;// plc后夹持y方向极限值
    required float plc_border_maxy=17;// plc后夹持y方向极限值
    required float car_min_width=18; // 最小车宽
    required float car_max_width=19; // 最大车宽
    required float car_min_wheelbase=20; // 最小轴距
    required float car_max_wheelbase=21; // 最大轴距
    required float turnplate_angle_limit_anti_clockwise=22; // 转盘逆时针角度极限
    required float turnplate_angle_limit_clockwise=23; // 转盘顺时针角度极限
}