Quellcode durchsuchen

change driver_cloud_grpc_client_stream. for add framerate support.

yuchuli vor 4 Jahren
Ursprung
Commit
1315e3e181
1 geänderte Dateien mit 29 neuen und 19 gelöschten Zeilen
  1. 29 19
      src/driver/driver_cloud_grpc_client_stream/grpcclient.cpp

+ 29 - 19
src/driver/driver_cloud_grpc_client_stream/grpcclient.cpp

@@ -70,7 +70,7 @@ void grpcclient::threadsend(std::shared_ptr<::grpc::ClientReaderWriter<iv::Uploa
     while(*pbrun)
     {
         std::this_thread::sleep_for(std::chrono::milliseconds(1));
-        if((xTime.elapsed()-nlastsend)<ninterval)
+        if((xTime.elapsed()-nlastsend)<mninterval)
         {
             continue;
         }
@@ -121,7 +121,8 @@ void grpcclient::threadsend(std::shared_ptr<::grpc::ClientReaderWriter<iv::Uploa
             request.set_kepptime(nkeeptime);
             request.set_bimportant(bImportant);
             request.set_nlatency(mnlatency);
-            request.set_fframerate(10);
+            ffraterate = 1000.0f/((float)mninterval);
+            request.set_fframerate(ffraterate);
             request.set_nsendtime(time1);
             nid++;
 
@@ -139,23 +140,27 @@ void grpcclient::threadsend(std::shared_ptr<::grpc::ClientReaderWriter<iv::Uploa
 
             *nlastreftime = QDateTime::currentMSecsSinceEpoch();
 
-            if(xt.elapsed()>10)
-            {
-                nok = 0;
-                if(ninterval < 1000)ninterval = ninterval * 11/10;
-                qDebug("send ela is %d ninterval is %d",xt.elapsed(),ninterval);
-            }
-            else
-            {
-                nok++;
-                if((ninterval > nrawinterval)&&(nok>10))
-                {
-                    nok = 0;
-
-                    ninterval = ninterval*10/11;
-                    std::cout<<"ninterval is "<<ninterval<<std::endl;
-                }
-            }
+//            if(xt.elapsed()>10)
+//            {
+//                nok = 0;
+//                if(ninterval < 1000)ninterval = ninterval * 11/10;
+//                mninterval = ninterval;
+//                ffraterate = 1.0f/((float)mninterval);
+//                qDebug("send ela is %d ninterval is %d",xt.elapsed(),ninterval);
+//            }
+//            else
+//            {
+//                nok++;
+//                if((ninterval > nrawinterval)&&(nok>10))
+//                {
+//                    nok = 0;
+
+//                    ninterval = ninterval*10/11;
+//                    mninterval = ninterval;
+//                    ffraterate = 1.0f/((float)mninterval);
+//                    std::cout<<"ninterval is "<<ninterval<<std::endl;
+//                }
+//            }
             if(bsend == false)std::cout<<"send msg. rtn is "<<bsend<<std::endl;
 
 
@@ -178,6 +183,11 @@ void grpcclient::threadrecv(std::shared_ptr<::grpc::ClientReaderWriter<iv::Uploa
         qint64 nlaten = QDateTime::currentMSecsSinceEpoch() - reply.nreqsendtime();
         calclatency(nlaten);
 
+        if(reply.framerate() >0.001)
+        {
+            mninterval = 1000.0/reply.framerate();
+        }
+
         qDebug("latency is %ld",QDateTime::currentMSecsSinceEpoch() - reply.nreqsendtime());
 //        nfail = 0;
 //        std::cout << "接收到回复:" << reply.remsg()<<"--\n" << std::endl;