فهرست منبع

change uplaodstreammsg.proto for calculate server latency.

yuchuli 4 سال پیش
والد
کامیت
b161138e1e
2فایلهای تغییر یافته به همراه12 افزوده شده و 2 حذف شده
  1. 7 2
      src/driver/driver_cloud_grpc_client_stream/grpcclient.cpp
  2. 5 0
      src/include/proto3/uploadstreammsg.proto

+ 7 - 2
src/driver/driver_cloud_grpc_client_stream/grpcclient.cpp

@@ -31,7 +31,7 @@ grpcclient::grpcclient(std::string stryamlpath)
 qint64 grpcclient::calclatency(qint64 nnewlatency)
 {
     mvectorlatency.push_back(nnewlatency);
-    while(mvectorlatency.size()>1000)mvectorlatency.erase(mvectorlatency.begin());
+    while(mvectorlatency.size()>30)mvectorlatency.erase(mvectorlatency.begin());
     qint64 nlatencytotal =0;
     int nsize = mvectorlatency.size();
     int i;
@@ -181,6 +181,11 @@ void grpcclient::threadrecv(std::shared_ptr<::grpc::ClientReaderWriter<iv::Uploa
 
         *nlastreftime = QDateTime::currentMSecsSinceEpoch();
         qint64 nlaten = QDateTime::currentMSecsSinceEpoch() - reply.nreqsendtime();
+        if(reply.nreqsendtime() == 0)nlaten = 0;
+        else
+        {
+            nlaten = nlaten - reply.npausetime();
+        }
         calclatency(nlaten);
 
         if(reply.framerate() >0.001)
@@ -188,7 +193,7 @@ void grpcclient::threadrecv(std::shared_ptr<::grpc::ClientReaderWriter<iv::Uploa
             mninterval = 1000.0/reply.framerate();
         }
 
-        qDebug("latency is %ld",QDateTime::currentMSecsSinceEpoch() - reply.nreqsendtime());
+        qDebug("latency is %ld",nlaten);
 //        nfail = 0;
 //        std::cout << "接收到回复:" << reply.remsg()<<"--\n" << std::endl;
         if(reply.nres() == 1)

+ 5 - 0
src/include/proto3/uploadstreammsg.proto

@@ -69,6 +69,9 @@ message queryReqStream {
   int32 kepptime = 7;   //If important keep this data before ctrl ms.  if -1 must send.
   int32 ntype = 8;  //0 only query  1 ctrl.
   float nSuggestFrameRate = 9;
+  int32 nreplyid = 10;  
+  int64 nreplySendTime = 11;  //id and SendTime used for calculate latency. 
+  int64 npausetime = 12;  //upload message in server pause time, calculate latency need substract this value.
 }
 
 message queryReplyStream {
@@ -78,6 +81,8 @@ message queryReplyStream {
     bytes xdata = 4;
     int64 nculatency = 5;
     float ncuFrameRage = 6;
+    int64 nSendTime = 7;
+    int64 nserverLatency = 8;
 }