瀏覽代碼

change driver_group_grpc_client. add xml load and .xml.

yuchuli 3 年之前
父節點
當前提交
d133091d94

+ 11 - 0
src/driver/driver_group_grpc_client/driver_group_grpc_client.xml

@@ -0,0 +1,11 @@
+<xml>	
+	<node name="driver_group_grpc_client">
+		<param name="serverip" value="127.0.0.1" />
+		<param name="serverport" value="31001" />
+		<param name="VehicleID" value="hapo01" />
+		<param name="Interval" value="100" />
+		<param name="GroupID" value="0" />
+		<param name="IntraGroupID" value="0" />
+		<param name="Role" value="Master" />
+	</node>
+</xml>

+ 55 - 0
src/driver/driver_group_grpc_client/groupclient.cpp

@@ -79,6 +79,8 @@ void groupclient::run()
  //   ClientContext context;
 
 
+    std::vector<qint64> xvectorlatency;
+    qint64 nRPCLantecy = 0;
 
     while(!QThread::isInterruptionRequested())
     {
@@ -92,6 +94,8 @@ void groupclient::run()
             xmsg.set_vehicleid(mstrvehid);
             xmsg.set_roleid(mrole);
             xmsg.set_groupid(mgroupid);
+            xmsg.set_latency(nRPCLantecy);
+            xmsg.set_intragroupid(mintragroupid);
             qint64 nNow = QDateTime::currentMSecsSinceEpoch();
             if((nNow - mnbrainupdate) < mnMsgValidTime)
             {
@@ -140,6 +144,21 @@ void groupclient::run()
                 if (status.ok()) {
                     std::cout<<"  data size is "<<nbytesize<<std::endl;
                     std::cout<<nid<<" upload successfully"<<std::endl;
+                    qint64 xlatency = QDateTime::currentMSecsSinceEpoch() - nNow;
+                    xvectorlatency.push_back(xlatency);
+                    unsigned int j;
+                    qint64 nlatencytotal = 0;
+                    for(j=0;j<xvectorlatency.size();j++)
+                    {
+                        nlatencytotal = nlatencytotal + xvectorlatency[j];
+                    }
+                    qint64 navglatency = 0;
+                    if(xvectorlatency.size()>0)navglatency = nlatencytotal/xvectorlatency.size();
+                    nRPCLantecy = navglatency;
+                    while(xvectorlatency.size()>9)
+                    {
+                        xvectorlatency.erase(xvectorlatency.begin());
+                    }
                     if(reply.nres() == 1)
                     {
                         std::cout<<"reply size is "<<reply.xdata().size()<<std::endl;
@@ -170,3 +189,39 @@ void groupclient::run()
 
     }
 }
+
+void groupclient::setInterval(int xinterval)
+{
+    mnInterval = xinterval;
+}
+
+void groupclient::setserverip(std::string strserverip)
+{
+   mstrserverip = strserverip;
+}
+
+void groupclient::setserverport(std::string strserverport)
+{
+    mstrserverport = strserverport;
+}
+
+void groupclient::setvehid(std::string strvehid)
+{
+    mstrvehid = strvehid;
+}
+
+void groupclient::setrole(iv::group::vehicleinfo::ROLETYPE xrole)
+{
+    mrole = xrole;
+}
+
+void groupclient::setgroupid(int ngroupid)
+{
+    mgroupid = ngroupid;
+}
+
+void groupclient::setintragroupid(int xintragroupid)
+{
+    mintragroupid = xintragroupid;
+}
+

+ 10 - 0
src/driver/driver_group_grpc_client/groupclient.h

@@ -91,6 +91,16 @@ private:
     std::string mstrvehid = "demo1";
     iv::group::vehicleinfo::ROLETYPE mrole = iv::group::vehicleinfo::ROLETYPE::vehicleinfo_ROLETYPE_MASTER;
     int mgroupid = 1;  //If 0 No group
+    int mintragroupid = 0;
+
+public:
+    void setInterval(int xinterval);
+    void setserverip(std::string strserverip);
+    void setserverport(std::string strserverport);
+    void setvehid(std::string strvehid);
+    void setrole(iv::group::vehicleinfo::ROLETYPE xrole);
+    void setgroupid(int ngroupid);
+    void setintragroupid(int xintragroupid);
 
 
 };

+ 49 - 1
src/driver/driver_group_grpc_client/main.cpp

@@ -2,6 +2,10 @@
 
 #include <iostream>
 
+#include "xmlparam.h"
+#include "ivbacktrace.h"
+#include "ivversion.h"
+
 #include "groupclient.h"
 
 #include "get_interface.h"
@@ -12,15 +16,59 @@ std::string gstrVehid = "demo";
 
 int main(int argc, char *argv[])
 {
+    showversion("driver_group_grpc_client");
     QCoreApplication a(argc, argv);
 
-    std::string strmac;
+    RegisterIVBackTrace();
+
+    std::string strparapath;
+    if(argc<2)
+    {
+
+        strparapath = "./driver_group_grpc_client.xml";
+    }
+    else
+    {
+        strparapath = argv[2];
+    }
+
+
+    iv::xmlparam::Xmlparam xp(strparapath);
+    std::string strserverip = xp.GetParam("serverip","127.0.0.1");
+    std::string strserverport = xp.GetParam("serverport","31001");
+    std::string strvehid = xp.GetParam("VehicleID","unknown");
+    int nInterval = xp.GetParam("Interval",100);
+    int nGroupID = xp.GetParam("GroupID",0);
+    int nIntraGroupID = xp.GetParam("IntraGroupID",0);
+    std::string strrole = xp.GetParam("Role","Master");
+
+
+    std::string strmac = "nomac";
     if(getmac(strmac ) == 1)
     {
         std::cout<<"mac addr is :"<<strmac.data()<<std::endl;
     }
 
+    if(strvehid == "unknown")
+    {
+        strvehid = strmac;
+    }
+
+    if(nInterval == 0)nInterval = 100;
+    iv::group::vehicleinfo::ROLETYPE xrole = iv::group::vehicleinfo::ROLETYPE::vehicleinfo_ROLETYPE_MASTER;
+    if(strrole == "Slave")
+    {
+        xrole = iv::group::vehicleinfo::ROLETYPE::vehicleinfo_ROLETYPE_SLAVE;
+    }
+
     groupclient * pclient = new groupclient;
+    pclient->setgroupid(nGroupID);
+    pclient->setInterval(nInterval);
+    pclient->setintragroupid(nIntraGroupID);
+    pclient->setrole(xrole);
+    pclient->setserverip(strserverip);
+    pclient->setserverport(strserverport);
+    pclient->setvehid(strvehid);
     pclient->start();
     return a.exec();
 }

+ 2 - 0
src/include/proto/groupmsg.proto

@@ -19,6 +19,8 @@ message vehicleinfo
 	optional iv.brain.decition mdecition = 4;
 	optional iv.gps.gpsimu mgpsimu = 5;
 	optional int32  groupid = 6;
+	optional int32  intragroupid = 7;
+	optional int64	latency = 8;
 }
 
 

+ 5 - 4
src/include/proto3/grpcgroup.proto

@@ -32,10 +32,11 @@ service groupservice {
 
 message groupRequest {
 
-    string strvehid = 1;
-    int32  ngroup = 2;
-    int64 msgtime = 3;
-    bytes xdata = 4;
+    string strvehid = 1;   //车辆识别码
+    int32  ngroup = 2;   //组编号, 非0  0代表非组
+    int32 intragroupid = 3;  //组内id
+    int64 msgtime = 4;     //上传时间
+    bytes xdata = 5;      //数据
 }
 
 // The response message containing the greetings