Sfoglia il codice sorgente

change pilot_apollo_bridge_gui. not complete.

yuchuli 3 mesi fa
parent
commit
f66f0e4a45

+ 0 - 3
src/apollo/code/pilot_apollo_bridge_gui/main.cpp

@@ -6,9 +6,6 @@ int main(int argc, char *argv[])
 {
     QApplication a(argc, argv);
 
-
-
-
     MainWindow w;
     w.show();
     return a.exec();

+ 44 - 1
src/apollo/code/pilot_apollo_bridge_gui/mainwindow.cpp

@@ -13,6 +13,14 @@ MainWindow::MainWindow(QWidget *parent)
     pilot_node = apollo::cyber::CreateNode("pilot_apollo_bridge_gui");
 
     mcmd_writer_ = pilot_node->CreateWriter<iv::apollo::apolloctrlcmd>("apcmd");
+    mgps_writer_ = pilot_node->CreateWriter<iv::gps::gpsimu>("adc_gps");
+    mobj_writer_ = pilot_node->CreateWriter<iv::lidar::objectarray>("adc_obj");
+
+    ModuleFun fungpsimu =std::bind(&MainWindow::ListenGPSIMU,this,std::placeholders::_1,std::placeholders::_2,std::placeholders::_3,std::placeholders::_4,std::placeholders::_5);
+    mpagps = iv::modulecomm::RegisterRecvPlus("hcp2_gpsimu",fungpsimu);
+
+    ModuleFun funlidartrack =std::bind(&MainWindow::ListenLiarTrack,this,std::placeholders::_1,std::placeholders::_2,std::placeholders::_3,std::placeholders::_4,std::placeholders::_5);
+    mpaobj = iv::modulecomm::RegisterRecvPlus("lidar_track",funlidartrack);
 
     mpthreadtest = new std::thread(&MainWindow::threadtest,this);
 
@@ -34,7 +42,7 @@ MainWindow::MainWindow(QWidget *parent)
     connect(&mProcStopMonitor,SIGNAL(readyReadStandardError()),this,SLOT(onReadStandardError()));
     connect(&mProcStopMonitor,SIGNAL(finished(int)),this,SLOT(onProcessFinished(int)));
 
-    setWindowTitle("Pilot Apollo Bridge");
+    setWindowTitle("Pilot Apollo Bridge GUI");
 }
 
 MainWindow::~MainWindow()
@@ -53,6 +61,12 @@ MainWindow::~MainWindow()
     }
     mbtestrun = false;
     mpthreadtest->join();
+
+    iv::modulecomm::Unregister(mpaobj);
+    iv::modulecomm::Unregister(mpagps);
+
+    std::this_thread::sleep_for(std::chrono::milliseconds(10));
+
     delete ui;
 }
 
@@ -174,3 +188,32 @@ void MainWindow::onProcessFinished(int nStatus)
         }
     }
 }
+
+void MainWindow::ListenGPSIMU(const char * strdata,const unsigned int nSize,const unsigned int index,const QDateTime * dt,const char * strmemname)
+{
+//    std::cout<<" listen gpsimu."<<std::endl;
+    (void)index;
+    (void)dt;
+    (void)strmemname;
+//    iv::gps::gpsimu xgpsimu;
+    auto gpsimu_ptr = std::make_shared<iv::gps::gpsimu>();
+    if(!gpsimu_ptr->ParseFromArray(strdata,nSize))
+    {
+        std::cout<<"ListenRaw Parse error."<<std::endl;
+        return;
+    }
+    mgps_writer_->Write(gpsimu_ptr);
+}
+
+void MainWindow::ListenLiarTrack(const char * strdata,const unsigned int nSize,const unsigned int index,const QDateTime * dt,const char * strmemname){
+//  iv::lidar::objectarray xobjarray;
+
+//  std::cout<<" recv lidar track."<<std::endl;
+  auto obj_ptr = std::make_shared<iv::lidar::objectarray>();
+  if(!obj_ptr->ParseFromArray(strdata,nSize))
+  {
+    std::cout<<" Parse Object Array Fail."<<std::endl;
+    return;
+  }
+  mobj_writer_->Write(obj_ptr);
+}

+ 12 - 0
src/apollo/code/pilot_apollo_bridge_gui/mainwindow.h

@@ -15,6 +15,8 @@
 
 #include <QProcess>
 
+#include "modulecomm.h"
+
 QT_BEGIN_NAMESPACE
 namespace Ui { class MainWindow; }
 QT_END_NAMESPACE
@@ -41,6 +43,8 @@ private:
 
 private:
     void threadtest();
+    void ListenGPSIMU(const char * strdata,const unsigned int nSize,const unsigned int index,const QDateTime * dt,const char * strmemname);
+    void ListenLiarTrack(const char * strdata,const unsigned int nSize,const unsigned int index,const QDateTime * dt,const char * strmemname);
 
 private:
     std::unique_ptr<apollo::cyber::Node> pilot_node;
@@ -50,6 +54,9 @@ private:
 
     std::shared_ptr<apollo::cyber::Writer<iv::apollo::apolloctrlcmd>> mcmd_writer_ = nullptr;
 
+    std::shared_ptr<apollo::cyber::Writer<iv::gps::gpsimu>> mgps_writer_ = nullptr;
+    std::shared_ptr<apollo::cyber::Writer<iv::lidar::objectarray>> mobj_writer_ = nullptr;
+
     QProcess mProc;
     bool mbDreamviewRunning = false;
 
@@ -63,5 +70,10 @@ private:
     QProcess mProcStopMonitor;
     bool mbProcStopApolloRunning = false;
 
+    void * mpagps;
+    void * mpaobj;
+
+
+
 };
 #endif // MAINWINDOW_H