|
@@ -14,6 +14,10 @@ groupclient::groupclient()
|
|
ModuleExtFun fungpsimu = std::bind(&groupclient::ListenGPSIMU,this,std::placeholders::_1);
|
|
ModuleExtFun fungpsimu = std::bind(&groupclient::ListenGPSIMU,this,std::placeholders::_1);
|
|
mpagpsimu->RegisterRecvPlus(mstrgpsimumsgname.data(),fungpsimu);
|
|
mpagpsimu->RegisterRecvPlus(mstrgpsimumsgname.data(),fungpsimu);
|
|
|
|
|
|
|
|
+ mpacarstate= new iv::modulecommext::modulecommmsg<iv::brain::carstate>();
|
|
|
|
+ ModuleExtFun funcarstate = std::bind(&groupclient::ListenCarState,this,std::placeholders::_1);
|
|
|
|
+ mpacarstate->RegisterRecvPlus(mstrcarstate.data(),funcarstate);
|
|
|
|
+
|
|
mpagroup = new iv::modulecommext::modulecommmsg<iv::group::groupinfo>();
|
|
mpagroup = new iv::modulecommext::modulecommmsg<iv::group::groupinfo>();
|
|
mpagroup->RegisterSend(mstrgroupmsgname.data(),100000,1);
|
|
mpagroup->RegisterSend(mstrgroupmsgname.data(),100000,1);
|
|
|
|
|
|
@@ -43,6 +47,14 @@ void groupclient::ListenGPSIMU(google::protobuf::Message &xmsg)
|
|
mMutexGPSIMU.unlock();
|
|
mMutexGPSIMU.unlock();
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+void groupclient::ListenCarState(google::protobuf::Message &xmsg)
|
|
|
|
+{
|
|
|
|
+ mMutexCarState.lock();
|
|
|
|
+ mncarstate = QDateTime::currentMSecsSinceEpoch();
|
|
|
|
+ mcarstate.CopyFrom(xmsg);
|
|
|
|
+ mMutexCarState.unlock();
|
|
|
|
+}
|
|
|
|
+
|
|
void groupclient::run()
|
|
void groupclient::run()
|
|
{
|
|
{
|
|
int ninterval = mnInterval;
|
|
int ninterval = mnInterval;
|
|
@@ -122,6 +134,15 @@ void groupclient::run()
|
|
xmsg.set_allocated_mgpsimu(pgps);
|
|
xmsg.set_allocated_mgpsimu(pgps);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ if((nNow - mncarstate) < mnMsgValidTime)
|
|
|
|
+ {
|
|
|
|
+ iv::brain::carstate * pcarstate = new iv::brain::carstate;
|
|
|
|
+ mMutexCarState.lock();
|
|
|
|
+ pcarstate->CopyFrom(mcarstate);
|
|
|
|
+ mMutexCarState.unlock();
|
|
|
|
+ xmsg.set_allocated_mcarstate(pcarstate);
|
|
|
|
+ }
|
|
|
|
+
|
|
int nbytesize = xmsg.ByteSize();
|
|
int nbytesize = xmsg.ByteSize();
|
|
char * strbuf = new char[nbytesize];
|
|
char * strbuf = new char[nbytesize];
|
|
std::shared_ptr<char> pstrbuf;
|
|
std::shared_ptr<char> pstrbuf;
|