Browse Source

添加UI中对激光雷达和毫米波雷达纵向偏移量的xml外部配置

fujiankuan 3 years ago
parent
commit
5e340b723a

+ 12 - 0
sh/ui_ads_hmi.xml

@@ -0,0 +1,12 @@
+<xml>	
+	<node name="ADCIntelligentVehicle-ui_ads_hmi">
+		<param name="radar" value="radar" />
+		<param name="gps" value="hcp2_gpsimu" />
+		<param name="dection" value="deciton" />
+		<param name="brainstate" value="brainstate" />
+		<param name="chassismsgname" value="chassis" />
+		<param name="esr_y_offset" value="3.7" />
+		<param name="lidar_y_offset" value="3.7" />
+	</node>
+</xml>
+

+ 13 - 3
src/ui/ui_ads_hmi/ADCIntelligentVehicle.cpp

@@ -224,6 +224,16 @@ ADCIntelligentVehicle::ADCIntelligentVehicle(QWidget *parent)
     }
     }
 */
 */
 
 
+    QString strpath = QCoreApplication::applicationDirPath();
+    strpath = strpath + "/ui_ads_hmi.xml";
+    iv::xmlparam::Xmlparam xp(strpath.toStdString());
+    ServiceCarStatus.esr_y_offset = atof(xp.GetParam("esr_y_offset","2.5").data());
+    ServiceCarStatus.lidar_y_offset = atof(xp.GetParam("lidar_y_offset","0").data());
+
+
+//   givlog->info("brain.");
+
+   gstrmemradar = xp.GetParam("radar","radar");
 
 
 
 
 
 
@@ -1188,9 +1198,9 @@ void ADCIntelligentVehicle::paintEvent(QPaintEvent *)
             {
             {
                 if (xradararray.obj(a).bvalid())
                 if (xradararray.obj(a).bvalid())
                 {
                 {
-                    painter->drawEllipse(xradararray.obj(a).x() * 10 + 450, -((xradararray.obj(a).y() + 3.2) * 10) + 700, 10, 10);
+                    painter->drawEllipse(xradararray.obj(a).x() * 10 + 450, -((xradararray.obj(a).y() + ServiceCarStatus.esr_y_offset) * 10) + 700, 10, 10);
                     sprintf(coordinate_ear, "(%d, %d)", (int)xradararray.obj(a).x(), (int)xradararray.obj(a).y());
                     sprintf(coordinate_ear, "(%d, %d)", (int)xradararray.obj(a).x(), (int)xradararray.obj(a).y());
-                    painter->drawText(xradararray.obj(a).x() * 10 + 450, -((xradararray.obj(a).y() +3.2 ) * 10) + 700, QString(coordinate_ear));
+                    painter->drawText(xradararray.obj(a).x() * 10 + 450, -((xradararray.obj(a).y() + ServiceCarStatus.esr_y_offset ) * 10) + 700, QString(coordinate_ear));
 
 
                 }
                 }
             }
             }
@@ -1208,7 +1218,7 @@ void ADCIntelligentVehicle::paintEvent(QPaintEvent *)
         painter->setPen(QColor(255,0,0));
         painter->setPen(QColor(255,0,0));
         for (unsigned int x = 0; x < Lidar_obsread->size(); x++)
         for (unsigned int x = 0; x < Lidar_obsread->size(); x++)
         {
         {
-            painter->drawPoint(((*Lidar_obsread)[x].nomal_x) * 10 + 450, -(*Lidar_obsread)[x].nomal_y * 10 + 700);
+            painter->drawPoint(((*Lidar_obsread)[x].nomal_x) * 10 + 450, -((*Lidar_obsread)[x].nomal_y + ServiceCarStatus.lidar_y_offset) * 10 + 700);
         }
         }
 
 
 
 

+ 1 - 0
src/ui/ui_ads_hmi/ADCIntelligentVehicle.h

@@ -46,6 +46,7 @@
 #include "common/hmi_type.h"
 #include "common/hmi_type.h"
 #include "common/lidar.h"
 #include "common/lidar.h"
 #include "common/obstacle_type.h"
 #include "common/obstacle_type.h"
+#include "common/constants.h"
 
 
 #include "modulecomm.h"
 #include "modulecomm.h"
 
 

+ 3 - 0
src/ui/ui_ads_hmi/common/car_status.h

@@ -98,6 +98,9 @@ public:
     uint32_t time_right;
     uint32_t time_right;
     uint32_t time_turn;
     uint32_t time_turn;
 
 
+    double esr_y_offset = 0;
+    double lidar_y_offset = 0;
+
 
 
 };
 };
 typedef boost::serialization::singleton<iv::CarStatus> CarStatusSingleton;//非线程安全,注意多线程加锁,单例模式
 typedef boost::serialization::singleton<iv::CarStatus> CarStatusSingleton;//非线程安全,注意多线程加锁,单例模式

+ 2 - 1
src/ui/ui_ads_hmi/common/constants.h

@@ -21,7 +21,8 @@ const float SPEED_RATIO = 0.08;		//实际车速和can中读出的车速比率
 const float Veh_Width = 2.1;		//车宽
 const float Veh_Width = 2.1;		//车宽
 const float Veh_Lenth = 4.6;
 const float Veh_Lenth = 4.6;
 const float Esr_Offset = 0;		//ESR偏移量
 const float Esr_Offset = 0;		//ESR偏移量
-const float Esr_Y_Offset = 2.5;  //ESR纵向偏移量
+const float Esr_Y_Offset = 3.7;  //ESR纵向偏移量    每辆车不一样
+const float Lidar_Y_Offset = 0;  //前向激光雷达的纵向偏移量   每辆车不一样
 
 
 const std::uint8_t THREAD_EXECUTECONTROL_MAXNUM = 1;	//decition_executer 执行线程最大数量
 const std::uint8_t THREAD_EXECUTECONTROL_MAXNUM = 1;	//decition_executer 执行线程最大数量