#include "ivdetection_radar.h" #include namespace iv { ivdetection_radar::ivdetection_radar() { } void ivdetection_radar::setcanmsgname(const std::string str) { mstrcanmsgname = str; } void ivdetection_radar::setradarmsgname(const std::string str) { mstrradarmsgname = str; } void ivdetection_radar::modulerun() { iv::can::canmsg xmsg; ModuleFun funcan = std::bind(&iv::ivdetection_radar::UpdateCANMsg,this,std::placeholders::_1,std::placeholders::_2,std::placeholders::_3,std::placeholders::_4,std::placeholders::_5); mpmsgcan = iv::modulecomm::RegisterRecvPlus(mstrcanmsgname.data(),funcan); mpmsgradar = iv::modulecomm::RegisterSend(mstrradarmsgname.data(),100000,3); int nnothavedata = 0; iv::radar::radarobjectarray * pradar = new iv::radar::radarobjectarray; while(mbrun) { mWaitMutex.lock(); mwc.wait(&mWaitMutex,100); mWaitMutex.unlock(); if(mbUpdateCANMsg) { mMutex.lock(); xmsg.CopyFrom(mCANMsg); mbUpdateCANMsg = false; mMutex.unlock(); nnothavedata = 0; int nRtn; int i; for(i=0;iByteSize()]; int nsize = pradar->ByteSize(); if(pradar->SerializeToArray(str,nsize)) { iv::modulecomm::ModuleSendMsg(pa,str,nsize); } else { std::cout<<"ivdetection_radar::ShareRadarMsg SerializeToArray error."<100)&&(oldrecvtime != 0)) { // givlog->warn("radar interval is more than 100ms. value is %ld",QDateTime::currentMSecsSinceEpoch() - oldrecvtime); } oldrecvtime = QDateTime::currentMSecsSinceEpoch(); // givlog->verbose("share time is %d ",gTime.elapsed()); // qDebug("share time is %d ",gTime.elapsed()); delete str; } }