#include #include #include #include "modulecomm.h" #include "xmlparam.h" #include "ivversion.h" #include "ivbacktrace.h" #include "canmsg.pb.h" #include "radarobjectarray.pb.h" #include "ivfault.h" #include "ivlog.h" iv::radar::radarobjectarray gobj; int gntemp = 0; void * gpa; void * gpb; iv::Ivfault *gfault = nullptr; iv::Ivlog *givlog = nullptr; static int gnNotSend = 10; QTime gTime; static bool gbinit = false; iv::radar::radarobjectarray mradararray; void ShareResult() { char * str = new char[mradararray.ByteSize()]; int nsize = mradararray.ByteSize(); if(mradararray.SerializeToArray(str,nsize)) { iv::modulecomm::ModuleSendMsg(gpa,str,nsize); } givlog->verbose("obj size is %d ",mradararray.obj_size()); // qDebug("share time is %d ",gTime.elapsed()); delete str; } void ProcRadarMsg(iv::can::canraw xmsg) { if(gbinit == false)gnNotSend = 10; if(gnNotSend > 0) { givlog->verbose("send valid data."); iv::can::canraw x; x.set_id(0x200); x.set_bext(false); x.set_bremote(false); x.set_len(8); unsigned char strdata[8]; strdata[0] = 0x08; strdata[4] = 0x08; x.set_data(strdata,8); iv::can::canmsg xsend; xsend.set_channel(0); xsend.set_index(0); iv::can::canraw * praw = xsend.add_rawmsg(); praw->CopyFrom(x); int nsize = xsend.ByteSize(); char * str = new char[nsize]; if(xsend.SerializeToArray(str,nsize)) { iv::modulecomm::ModuleSendMsg(gpb,str,nsize); } else { } delete str; gnNotSend--; } int i; if(xmsg.id() == 0x60A) { gbinit = true; mradararray.set_mstime(QDateTime::currentMSecsSinceEpoch()); ShareResult(); mradararray.clear_obj(); } if(xmsg.id() == 0x60B) { if(xmsg.len()<8) { std::cout<<"ProcRadarMsg can message length is small "<CopyFrom(xobj); } } void DecodeRadar(iv::can::canmsg xmsgvetor) { int i; for(i=0;ierror("radar Listencanmsg fail"); gfault->SetFaultState(1, 0, "radar Listencanmsg error"); std::cout<<"radar Listencanmsg fail."<verbose("%s", strpath.data()); std::cout<