Browse Source

change driver_map_xodrload. fix signal plan.

yuchuli 2 years ago
parent
commit
c8bdb9003a
3 changed files with 37 additions and 17 deletions
  1. 2 2
      sh/automake/autogen.sh
  2. 1 1
      sh/automake/automake_agx.sh
  3. 34 14
      src/driver/driver_map_xodrload/globalplan.cpp

+ 2 - 2
sh/automake/autogen.sh

@@ -242,8 +242,8 @@ driver_map_xodrload
 #driver_radio_p900
 driver_ntrip_client
 #driver_odomtogpsimu
-#driver_rpc_client
-#driver_rpc_server
+driver_rpc_client
+driver_rpc_server
 #driver_vbox_gaohong
 driver_ota_client
 #driver_grpc_client

+ 1 - 1
sh/automake/automake_agx.sh

@@ -34,7 +34,7 @@ echo "code version: "$GITVERSIONCODE
 
 
 month=`date +%Y.%m`
-urllink="http://111.33.136.149:3000/adc_pilot/modularization_pro/src/master/agx"
+urllink="http://10.15.0.89:3000/adc_pilot/modularization_pro/src/master/agx"
 
 
 if [ "$GITVERSIONCODE" =  "$VERSIONCODE" ]; then

+ 34 - 14
src/driver/driver_map_xodrload/globalplan.cpp

@@ -2449,22 +2449,42 @@ static void AddSignalMark(Road * pRoad, int nlane,std::vector<PlanPoint> & xvect
     for(i=0;i<nsigcount;i++)
     {
         Signal * pSig = pRoad->GetSignal(i);
-        int nfromlane = -100;
-        int ntolane = 100;
-        signal_laneValidity * pSig_laneValidity = pSig->GetlaneValidity();
-        if(pSig_laneValidity != 0)
-        {
-            nfromlane = pSig_laneValidity->GetfromLane();
-            ntolane = pSig_laneValidity->GettoLane();
-        }
-        if((nlane < 0)&&(nfromlane >= 0))
-        {
-            continue;
-        }
-        if((nlane > 0)&&(ntolane<=0))
+
+  //      signal_laneValidity * pSig_laneValidity = pSig->GetlaneValidity();
+        if(pSig->GetlaneValidityCount()>0)
         {
-            continue;
+            bool bvalid = false;
+            vector<signal_laneValidity> * pvectorval = pSig->GetlaneValidityVector();
+            unsigned int nsize = static_cast<unsigned int>(pvectorval->size());
+            unsigned int j;
+            for(j=0;j<nsize;j++)
+            {
+                int nfromlane = -100;
+                int ntolane = 100;
+                nfromlane = pvectorval->at(j).GetfromLane();
+                ntolane = pvectorval->at(j).GettoLane();
+                if((nlane>=nfromlane)&&(nlane<=ntolane))
+                {
+                    bvalid = true;
+                    break;
+                }
+            }
+
+            if(bvalid == false)continue;
         }
+//        if(pSig_laneValidity != 0)
+//        {
+//            nfromlane = pSig_laneValidity->GetfromLane();
+//            ntolane = pSig_laneValidity->GettoLane();
+//        }
+//        if((nlane < 0)&&(nfromlane >= 0))
+//        {
+//            continue;
+//        }
+//        if((nlane > 0)&&(ntolane<=0))
+//        {
+//            continue;
+//        }
 
         double s = pSig->Gets();
         double fpos = s/pRoad->GetRoadLength();