Browse Source

fix(grpc_BS):fix uploadmap interval error, and some qtime mistake using.

孙嘉城 3 years ago
parent
commit
2461ebf34c

+ 8 - 8
src/driver/driver_cloud_grpc_client_BS/vehicle_control.cpp

@@ -192,11 +192,11 @@ void VehicleControlClient::run()
 {
     QTime xTime;
     xTime.start();
-    uint64_t lastTime = xTime.elapsed();
+    int lastTime = xTime.elapsed();
     uint64_t interval = std::atoi(gstrcontrolInterval.c_str());
     while (true)
     {
-        if((xTime.elapsed() - lastTime)>=interval)
+        if(abs(xTime.elapsed() - lastTime)>=interval)
         {
             std::string reply = vehicleControl();
             std::cout<< reply <<std::endl;
@@ -271,11 +271,11 @@ void VehicleChangeCtrlModeClient::run()
 {
     QTime xTime;
     xTime.start();
-    uint64_t lastTime = xTime.elapsed();
-    uint64_t interval = std::atoi(gstrcontrolInterval.c_str());
+    int lastTime = xTime.elapsed();
+    uint64_t interval = std::atoi(gstrcontrolInterval.c_str()) + 5; // move 5 ms to avoid ctrl data request
     while (true)
     {
-        if((xTime.elapsed() - lastTime)>=interval)
+        if(abs(xTime.elapsed() - lastTime)>=interval)
         {
             std::string reply = changeCtrlMode();
             std::cout<< reply <<std::endl;
@@ -358,11 +358,11 @@ void VehicleUploadMapClient::run()
 {
     QTime xTime;
     xTime.start();
-    uint64_t lastTime = xTime.elapsed();
-    uint64_t interval = std::atoi(gstrcontrolInterval.c_str());
+    int lastTime = xTime.elapsed();
+    uint64_t interval = std::atoi(gstruploadMapInterval.c_str());
     while (true)
     {
-        if((xTime.elapsed() - lastTime)>=interval)
+        if(abs(xTime.elapsed() - lastTime)>=interval)
         {
             if(isNeedMap == false)
             {

+ 2 - 2
src/driver/driver_cloud_grpc_client_BS/vehicle_patrol.cpp

@@ -184,11 +184,11 @@ void VehiclePatrolExceptionClient::run()
 {
     QTime xTime;
     xTime.start();
-    uint64_t lastTime = xTime.elapsed();
+    int lastTime = xTime.elapsed();
     uint64_t interval = std::atoi(gstrpatrolInterval.c_str());
     while (true)
     {
-        if((xTime.elapsed() - lastTime)>=interval)
+        if(abs(xTime.elapsed() - lastTime)>=interval)
         {
             updatePatrolData();
             std::string reply = uploadVehiclePatrolInfo();

+ 6 - 6
src/driver/driver_cloud_grpc_client_BS/vehicle_upload.cpp

@@ -516,7 +516,7 @@ void DataExchangeClient::updateData(uint64_t timeInterval_ms)
     gMutex_GPSIMU.lock();
     mileage += (speed * timeInterval_ms/1000.0)/1000.0; // kilometer
     gMutex_GPSIMU.unlock();
-//    speed = 0.1; // m/s
+//    speed = 0.0; // m/s
 //    shiftFeedback = ShiftStatus::SHIFT_DRIVE;
 //    steeringWheelAngleFeedback = 1.23; //+/-540 degree
 //    throttleFeedback = 0.12;
@@ -592,7 +592,7 @@ void DataExchangeClient::run()
 
     QFile mileageFile;
     mileageFile.setFileName("./mileage.txt");
-    uint64_t fileWriteTime = xTime.elapsed();
+    int fileWriteTime = xTime.elapsed();
     if(mileageFile.exists())
     {
         if(mileageFile.open(QIODevice::ReadOnly | QIODevice::Text))
@@ -613,20 +613,20 @@ void DataExchangeClient::run()
         mileageFile.close();
     }
 
-    uint64_t lastTime = xTime.elapsed();
+    int lastTime = xTime.elapsed();
     uint64_t interval = std::atoi(gstruploadInterval.c_str());
     while (true)
     {
-        if((xTime.elapsed() - lastTime)>=interval)
+        if(abs(xTime.elapsed() - lastTime)>=interval)
         {
             updateData(xTime.elapsed() - lastTime);
             std::string reply = uploadVehicleInfo();
             std::cout<< reply <<std::endl;
-            std::cout<<std::setprecision(8)<<destinationPosition.latitude()<<","<<destinationPosition.longitude()<<std::endl;
+//            std::cout<<std::setprecision(8)<<destinationPosition.latitude()<<","<<destinationPosition.longitude()<<std::endl;
             lastTime = xTime.elapsed();
         }
 
-        if((xTime.elapsed() - fileWriteTime) >= 2500)
+        if(abs(xTime.elapsed() - fileWriteTime) >= 2500)
         {
             if(mileageFile.open(QIODevice::WriteOnly | QIODevice::Text))
             {