Browse Source

feat(driver_radar_srr):add filter level to driver

HAPO#9 3 years ago
parent
commit
1c2cce8c30

+ 3 - 1
src/detection/detection_radar_delphi_srr/detection_radar_delphi_srr.xml

@@ -8,10 +8,12 @@
 		<param name="radar_left_angle" value="120" />
 		<param name="radar_left_offset_x" value="0" />
 		<param name="radar_left_offset_y" value="0" />
-		<param name="radar_left_mirror" value="0" />
+		<param name="radar_left_mirror" value="1" />
+		<param name="radar_left_filter_level" value="1" />
 		<param name="radar_right_angle" value="-120" />
 		<param name="radar_right_offset_x" value="0" />
 		<param name="radar_right_offset_y" value="0" />
 		<param name="radar_right_mirror" value="0" />
+		<param name="radar_right_filter_level" value="1" />
 	</node>
 </xml>

+ 9 - 2
src/detection/detection_radar_delphi_srr/main.cpp

@@ -25,10 +25,12 @@ QString gstrRadarLeft_Angle;
 QString gstrRadarLeft_Offset_X;
 QString gstrRadarLeft_Offset_Y;
 QString gstrRadarLeft_Mirror;
+QString gstrRadarLeft_Filter_Level;
 QString gstrRadarRight_Angle;
 QString gstrRadarRight_Offset_X;
 QString gstrRadarRight_Offset_Y;
 QString gstrRadarRight_Mirror;
+QString gstrRadarRight_Filter_Level;
 
 double g_gyro_z;   //
 double g_v;        //
@@ -118,6 +120,9 @@ void DecodeRadar(iv::can::canmsg xmsg)
     int16_t range, rate, angle,range_right,rate_right,angle_right;
     if(xmsg.rawmsg_size() < 1)return;
 
+    uint8_t filter_level_left = gstrRadarLeft_Filter_Level.toInt();
+    uint8_t filter_level_right = gstrRadarRight_Filter_Level.toInt();
+
     int i;
     for(i=0;i<xmsg.rawmsg_size();i++)
     {
@@ -170,7 +175,7 @@ void DecodeRadar(iv::can::canmsg xmsg)
             vx_temp = x * cos_rotation - y * sin_rotation;
             vy_temp = y * cos_rotation + x * sin_rotation;
 
-            if ((angle != 0 || range != 0) && detect_status != 0 && detect_valid_level >= 1) {
+            if ((angle != 0 || range != 0) && detect_status != 0 && detect_valid_level >= filter_level_left) {
                 iv::radar::radarobject * pobj = gobj.mutable_obj(radar_ID_index);
                 pobj->set_bvalid(true);
                 pobj->set_x(x_temp);
@@ -266,7 +271,7 @@ void DecodeRadar(iv::can::canmsg xmsg)
             vx_temp = x * cos_rotation - y * sin_rotation;
             vy_temp = y * cos_rotation + x * sin_rotation;
 
-            if ((angle_right != 0 || range_right != 0) && detect_status != 0 && detect_valid_level >= 1) {
+            if ((angle_right != 0 || range_right != 0) && detect_status != 0 && detect_valid_level >= filter_level_right) {
                 iv::radar::radarobject * pobj = gobjright.mutable_obj(radar_ID_index);
                 pobj->set_bvalid(true);
                 pobj->set_x(x_temp);
@@ -415,10 +420,12 @@ int main(int argc, char *argv[])
     gstrRadarLeft_Offset_X = gstrRadarLeft_Offset_X.fromStdString(xp.GetParam("radar_left_offset_x","0"));
     gstrRadarLeft_Offset_Y = gstrRadarLeft_Offset_Y.fromStdString(xp.GetParam("radar_left_offset_y","0"));
     gstrRadarLeft_Mirror = gstrRadarLeft_Mirror.fromStdString(xp.GetParam("radar_left_mirror","0"));
+    gstrRadarLeft_Filter_Level = gstrRadarLeft_Filter_Level.fromStdString(xp.GetParam("radar_left_filter_level","1"));
     gstrRadarRight_Angle = gstrRadarRight_Angle.fromStdString(xp.GetParam("radar_right_angle","-120"));
     gstrRadarRight_Offset_X = gstrRadarRight_Offset_X.fromStdString(xp.GetParam("radar_right_offset_x","0"));
     gstrRadarRight_Offset_Y = gstrRadarRight_Offset_Y.fromStdString(xp.GetParam("radar_right_offset_y","0"));
     gstrRadarRight_Mirror = gstrRadarRight_Mirror.fromStdString(xp.GetParam("radar_right_mirror","0"));
+    gstrRadarRight_Filter_Level = gstrRadarRight_Filter_Level.fromStdString(xp.GetParam("radar_right_filter_level","1"));
 
     gpa = iv::modulecomm::RegisterSend(strmemradarleft.data(),100000,3);
     gpb = iv::modulecomm::RegisterSend(strmemradaright.data(),100000,3);