syntax = "proto2";
package wj;

message wjManagerParams
{
    repeated wjLidarParams wj_lidar=1;
    repeated Region regions=2;
    optional string fence_data_path=3 [default=""];
    optional string fence_log_path=4 [default=""];
    optional string plc_ip_address=5 [default="192.168.0.1"];
    required bool distribution_mode=6 [default=false];//是否分布式模式，分布式模式下，各程序仅启动与自身区域相关模块
}

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 car_min_width=17; // 最小车宽
    required float car_max_width=18; // 最大车宽
    required float car_min_wheelbase=19; // 最小轴距
    required float car_max_wheelbase=20; // 最大轴距
    required float turnplate_angle_limit_anti_clockwise=21; // 转盘逆时针角度极限
    required float turnplate_angle_limit_clockwise=22; // 转盘顺时针角度极限
}

message wjLidarParams
{
	optional float angle_min=1 [default=-2.35619449];
	optional float angle_max=2 [default=2.35619449];
	optional float angle_increment=3 [default=0.00582];
	optional float time_increment=4 [default=0.000062];
	optional int32 range_min=5 [default=0];
	optional int32 range_max=6 [default=30];
	required netConfig net_config=7;
    required Transform2d transform=8;
	required scanLimit scan_limit=9;
    required int32 lidar_id=10[default=0];
}

message netConfig
{
	optional string ip_address=1 [default=""];
	optional int32 port=2 [default=8000];
}

message Transform2d
{
    optional float m00=1 [default=1.0];
    optional float m01=2 [default=0.0];
    optional float m02=3 [default=0.0];
    optional float m10=4 [default=0.0];
    optional float m11=5 [default=1.0];
    optional float m12=6 [default=0.0];
}

message scanLimit
{
	optional float dist_limit=1 [default=8.0];
    optional float minx=2 [default=-6];
    optional float maxx=3 [default=-0.2];
    optional float miny=4 [default=-3.5];
    optional float maxy=5 [default=3.5];
}
