123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
- #include <QCoreApplication>
- #include <iostream>
- #include "cameraobjectarray.pb.h"
- #include "radarobjectarray.pb.h"
- #include "objectarray.pb.h"
- #include <QMutex>
- #include <memory>
- #include "modulecomm.h"
- #include "data_manager.h"
- static QMutex gMutex;
- typedef iv::radar::radarobjectarray RadarDataType;
- typedef iv::lidar::objectarray LidarDataType;
- typedef iv::vision::cameraobjectarray CameraDataType;
- typedef std::chrono::system_clock::time_point TimeType;
- typedef std::function<void(RadarDataType&, LidarDataType&,CameraDataType&)> DataCallback;
- void data_callback(RadarDataType& radarobjv , LidarDataType& lidarobjv,CameraDataType& cameraobjv);
- using namespace std;
- //iv::vision::cameraobjectarray* cameraobjvec = new iv::vision::cameraobjectarray();
- //iv::radar::radarobjectarray* radarobjvec = new iv::radar::radarobjectarray();
- //iv::lidar::objectarray* lidarobjvec = new iv::lidar::objectarray();
- iv::DataManager data_manager;
- void Listenesrfront(const char * strdata,const unsigned int nSize,const unsigned int index,const QDateTime * dt,const char * strmemname)
- {
- iv::radar::radarobjectarray radarobj;
- if(nSize<1)return;
- if(false == radarobj.ParseFromArray(strdata,nSize))
- {
- std::cout<<"PecerptionShow Listenesrfront fail."<<std::endl;
- return;
- }
- else{
- //std::cout<<"srfront byte size: "<<radarobjvec.ByteSize()<<std::endl;
- }
- gMutex.lock();
- data_manager.SetRadar(radarobj);
- gMutex.unlock();
- }
- void Listencamera(const char * strdata,const unsigned int nSize,const unsigned int index,const QDateTime * dt,const char * strmemname)
- {
- if(nSize<1)return;
- iv::vision::cameraobjectarray cameraobj;
- if(false == cameraobj.ParseFromArray(strdata, nSize))
- {
- // std::cout<<"ccccccccccc Listencamera fail."<<std::endl;
- return;
- }
- else{
- //std::cout<<"camera byte size: "<<cameraobjvec.ByteSize()<<std::endl;
- }
- gMutex.lock();
- data_manager.SetCamera(cameraobj);
- std::cout<<"camera: "<<cameraobj.mstime()<<std::endl;
- gMutex.unlock();
- }
- void Listenlidarcnndetect(const char * strdata,const unsigned int nSize,const unsigned int index,const QDateTime * dt,const char * strmemname)
- {
- std::cout<<"111111111111"<<std::endl;
- iv::lidar::objectarray lidarobj;
- if(nSize<1)return;
- if(false == lidarobj.ParseFromArray(strdata,nSize))
- {
- std::cout<<"PecerptionShow Listenesrfront fail."<<std::endl;
- return;
- }
- gMutex.lock();
- data_manager.SetLidar(lidarobj);
- std::cout<<"lidar :"<<lidarobj.timestamp()<<std::endl; gMutex.unlock();
- }
- void data_callback(RadarDataType& radarobjv , LidarDataType& lidarobjv,CameraDataType& cameraobjv)
- {
- if((radarobjv.ByteSize() == 0) || (cameraobjv.ByteSize() ==0) || (lidarobjv.ByteSize() ==0)) return;
- std::cout<<"radar time: "<<radarobjv.mstime()<<std::endl;
- std::cout<<"lidar time: "<<lidarobjv.timestamp()<<std::endl;
- std::cout<<"camera time: "<<cameraobjv.mstime()<<std::endl;
- }
- int main(int argc, char *argv[])
- {
- QCoreApplication a(argc, argv);
- data_manager;
- data_manager.init();
- data_manager.SetDataCallback(data_callback);
- data_manager.Ready();
- void *gpa;
- gpa = iv::modulecomm::RegisterRecv("radar0",Listenesrfront);
- gpa = iv::modulecomm::RegisterRecv("camera_output",Listencamera);
- gpa = iv::modulecomm::RegisterRecv("lidar_track",Listenlidarcnndetect);
- return a.exec();
- }
|