فهرست منبع

Modify data parse between obu&UI

lijinliang 3 سال پیش
والد
کامیت
60b32f9277

+ 75 - 23
src/ui/ui_ads_hmi_1px/ADCIntelligentVehicle.cpp

@@ -359,7 +359,7 @@ ADCIntelligentVehicle::ADCIntelligentVehicle(QWidget *parent)
     ModuleFun fundecition =std::bind(&ADCIntelligentVehicle::UpdateDecition,this,std::placeholders::_1,std::placeholders::_2,std::placeholders::_3,std::placeholders::_4,std::placeholders::_5);
     mpaDecition = iv::modulecomm::RegisterRecvPlus("deciton",fundecition);
     mpaLidar = iv::modulecomm::RegisterRecv("lidar_obs",ListenOBS);
-    mpaObu = iv::modulecomm::RegisterRecv("obu",ListenObu);
+    mpaObu = iv::modulecomm::RegisterRecv("v2r_send",ListenObu);
     mpaHMI = iv::modulecomm::RegisterSend("hmi",10*sizeof(iv::hmi::HMIBasic),10);
     mpadst = iv::modulecomm::RegisterSend("xodrreq",1000,1);//地图站点gps信息
 
@@ -814,63 +814,101 @@ void ADCIntelligentVehicle::onStateTimerTraffic()
             break;
         }
     }
+    else
+    {
+        img3.load(":/light_image/zhixing-black.png");
+        img3 = img3.scaled(66,66,Qt::IgnoreAspectRatio);
+        ui->label_35->setPixmap(QPixmap::fromImage(img3));
+        ui->lcdStraight->display(0);
+    }
     if(mobuEn)
     {
         if(mbTrafficInfoEn)
         {
-            if(miobuSt<10)
+            if(miobuSt == 1)
             {
                 ui->button_trafficInfoLight_st->setStyleSheet("background-color: green");
-                ui->lineEd_trafficInfo->setText("减速至xx km/h");
-                ui->textBr_trafficInfo->append(QTime::currentTime().toString("hh:mm:ss.zzz") + "xxxxx");
+                ui->textBr_trafficInfo->append(QTime::currentTime().toString("hh:mm:ss.zzz") + \
+                                               "\n\t事件范围[ 经度:" + QString::number(miBroadcastGpsLon,'g',6) +\
+                                               " 纬度:" + QString::number(miBroadcastGpsLat,'g',6) + \
+                                               " ]\n\t辐射范围: " + QString::number(miBroadcastRange) + \
+                                               "\n\t事件类型: " + QString::number(miBroadcastTrafficType));
+                switch(micarSt){
+                case 0:
+                    ui->lineEd_trafficInfo->setText("正常行驶");
+                    break;
+                case 1:
+                    ui->lineEd_trafficInfo->setText("减速至 " + QString::number(micarSpeedDis,'g',1) + "km/h");
+                    break;
+                case 2:
+                    ui->lineEd_trafficInfo->setText("停车");
+                    break;
+                default:
+                    break;
+                }
             }
-            else
+            else if(miobuSt == 10)
             {
                 ui->button_trafficInfoLight_st->setStyleSheet("background-color: red");
-                ui->textBr_trafficInfo->clear();
+                ui->textBr_trafficInfo->append(QTime::currentTime().toString("hh:mm:ss.zzz") +"连接丢失");
                 ui->lineEd_trafficInfo->clear();
+                miobuSt++;
             }
         }
         else if(mbFCWEn)//碰撞预警
         {
-            if(miobuSt<10)
+            if(miobuSt == 1)
             {
-                ui->textBr_FCW->append(QTime::currentTime().toString("hh:mm:ss.zzz") + "xxxxx");
+                switch(miWarningType){
+                case 1:
+                    ui->textBr_FCW->append(QTime::currentTime().toString("hh:mm:ss.zzz") + \
+                                       "前方碰撞预警,减速至:" + QString::number(miWarningSpeedLimit));
+                    break;
+                case 2:
+                    ui->textBr_FCW->append(QTime::currentTime().toString("hh:mm:ss.zzz") + \
+                                              "前方碰撞预警,停车");
+                    break;
+                default:
+                    break;
+                }
                 ui->button_FWCLight_st->setStyleSheet("background-color: green");
             }
-            else
+            else if(miobuSt == 10)
             {
-                ui->textBr_FCW->clear();
+                ui->textBr_FCW->append(QTime::currentTime().toString("hh:mm:ss.zzz") +"连接丢失");
                 ui->button_FWCLight_st->setStyleSheet("background-color: red");
+                miobuSt++;
             }
         }
         else if(mbjamsEn)//交通拥堵
         {
-            if(miobuSt<10)
+            if(miobuSt == 1)
             {
                 ui->button_jamsLight_st->setStyleSheet("background-color: green");
-                ui->lineEdit_jamsMode->setText("xxx");
+                ui->lineEdit_jamsMode->setText("开启");
                 ui->lineEdit_jamsVIN->setText(QString::fromStdString(gstrvin));
 
             }
-            else
+            else if(miobuSt == 10)
             {
                 ui->button_jamsLight_st->setStyleSheet("background-color: red");
                 ui->lineEdit_jamsMode->clear();
                 ui->lineEdit_jamsVIN->clear();
+                miobuSt++;
             }
         }
         else if(mbdriCrimsEn)//危险驾驶
         {
-            if(miobuSt<10)
+            if(miobuSt == 1)
             {
                 ui->button_DriCrimsLight_st->setStyleSheet("background-color: green");
                 ui->textBr_FCW_2->append(QTime::currentTime().toString("hh:mm:ss.zzz")+"进入危险驾驶模式");
             }
-            else
+            else if(miobuSt == 10)
             {
                 ui->button_DriCrimsLight_st->setStyleSheet("background-color: red");
-                ui->textBr_FCW_2->clear();
+                ui->textBr_FCW_2->append(QTime::currentTime().toString("hh:mm:ss.zzz") +"连接丢失");
+                miobuSt++;
             }
         }
     }
@@ -1793,15 +1831,27 @@ void ADCIntelligentVehicle::UpdateVehicleState(const char * strdata,const unsign
         gIvlog->warn("ADCIntelligentVehicle::UpdateVehicleState parse error,nSize is %d ",nSize);
         return;
     }
-    ServiceCarStatus.bocheEnable = xbrainstate.mbbocheenable();
-    ServiceCarStatus.mObs = xbrainstate.mfobs();
-    ServiceCarStatus.mLidarObs = xbrainstate.mflidarobs();
-    ServiceCarStatus.mRadarObs = xbrainstate.mfradarobs();
-    mbBrainRunning = xbrainstate.mbbrainrunning();
-    ServiceCarStatus.mbBrainCtring = xbrainstate.mbbrainrunning();
-    mdecition_period =  xbrainstate.decision_period();
+    if(xbrainstate.has_mbbocheenable())
+        ServiceCarStatus.bocheEnable = xbrainstate.mbbocheenable();
+    if(xbrainstate.has_mfobs())
+        ServiceCarStatus.mObs = xbrainstate.mfobs();
+    if(xbrainstate.has_mflidarobs())
+        ServiceCarStatus.mLidarObs = xbrainstate.mflidarobs();
+    if(xbrainstate.has_mfradarobs())
+        ServiceCarStatus.mRadarObs = xbrainstate.mfradarobs();
+    if(xbrainstate.has_mbbrainrunning())
+        mbBrainRunning = xbrainstate.mbbrainrunning();
+    if(xbrainstate.has_mbbrainrunning())
+        ServiceCarStatus.mbBrainCtring = xbrainstate.mbbrainrunning();
+    if(xbrainstate.has_decision_period())
+        mdecition_period =  xbrainstate.decision_period();
+    if(xbrainstate.has_vehicle_state())
+        micarSt = xbrainstate.vehicle_state();
+    if(xbrainstate.has_vehicle_spd())
+        micarSpeedDis = xbrainstate.vehicle_spd();
 
     mnTimeUpdateVS = mTimeState.elapsed();
+
 }
 
 /**
@@ -2246,6 +2296,8 @@ void ADCIntelligentVehicle::on_button_SimCar_en_clicked()
     hmi.set_headingup(ui->lineEdit_jamsHead_up->text().toDouble());
     hmi.set_headinglow(ui->lineEdit_jamsHead_low->text().toDouble());
     hmi.set_carcount(ui->lineEdit_jamsCarNum->text().toInt());
+    hmi.set_speedlow(ui->lineEdit_jamsSpeed_low->text().toDouble());
+    hmi.set_speedup(ui->lineEdit_jamsSpeed_up->text().toDouble());
     ShareHMIMsgPro(hmi);
 }
 

+ 8 - 6
src/ui/ui_ads_hmi_1px/ADCIntelligentVehicle.h

@@ -360,12 +360,14 @@ private:
     int miLightRemain = 0;//当前灯剩余时间 单位:S
     double miBroadcastGpsLat = 0;//实时路况广播lat
     double miBroadcastGpsLon = 0;//实时路况广播lon
-    int  miBroadcastRange    = 65535;//实时路况广播辐射范围 有效范围1-1000,单位:M ,65534:异常 65535:无效
-    int  miBroadcastTrafficType  = 255;//实时路况广播交通状况类型 1:塌方 2:施工 3:道路结冰 4: 前方限速 254:异常 255:无效
-    int  miBroadcastSpeedLimit   = 255;//实时路况广播限速值 有效范围1-120,单位:KM/H 254:异常 255:无效
-    int  miWarningType           = 255;//碰撞预警类型 1:减速 2:停车 254:异常 255:无效
-    int  miWarningSpeedLimit     = 255;//碰撞预警限速值 有效范围1-120,单位:KM/H 254:异常 255:无效
-    int  miIdentiStart= 255;//拥堵识别开启指令 1:开启 254:异常 255:无效
+    int miBroadcastRange    = 65535;//实时路况广播辐射范围 有效范围1-1000,单位:M ,65534:异常 65535:无效
+    int miBroadcastTrafficType  = 255;//实时路况广播交通状况类型 1:塌方 2:施工 3:道路结冰 4: 前方限速 254:异常 255:无效
+    int miBroadcastSpeedLimit   = 255;//实时路况广播限速值 有效范围1-120,单位:KM/H 254:异常 255:无效
+    int miWarningType           = 255;//碰撞预警类型 1:减速 2:停车 254:异常 255:无效
+    int miWarningSpeedLimit     = 255;//碰撞预警限速值 有效范围1-120,单位:KM/H 254:异常 255:无效
+    int miIdentiStart= 255;//拥堵识别开启指令 1:开启 254:异常 255:无效
+    int micarSt = 255;//路况信息执行动作
+    float micarSpeedDis = 0.0;//当前车速目标
 
 public:
     void updateV2R(iv::v2r::v2r_send xv2rMsg);

+ 2 - 2
src/ui/ui_ads_hmi_1px/ADCIntelligentVehicle.ui

@@ -8100,7 +8100,7 @@ p, li { white-space: pre-wrap; }
       <widget class="QLCDNumber" name="lcdStraight">
        <property name="geometry">
         <rect>
-         <x>360</x>
+         <x>250</x>
          <y>110</y>
          <width>64</width>
          <height>33</height>
@@ -8119,7 +8119,7 @@ p, li { white-space: pre-wrap; }
       <widget class="QLCDNumber" name="lcdRight">
        <property name="geometry">
         <rect>
-         <x>250</x>
+         <x>360</x>
          <y>110</y>
          <width>64</width>
          <height>33</height>