Browse Source

change view_radar, add save a radar frame.

yuchuli 1 year ago
parent
commit
f4711d4a92
2 changed files with 57 additions and 0 deletions
  1. 50 0
      src/tool/view_radar/mainwindow.cpp
  2. 7 0
      src/tool/view_radar/mainwindow.h

+ 50 - 0
src/tool/view_radar/mainwindow.cpp

@@ -64,6 +64,8 @@ MainWindow::MainWindow(QWidget *parent) :
     connect(xTimer,SIGNAL(timeout()),this,SLOT(onTimer()));
     xTimer->start(10);
 
+    setWindowTitle("View RADAR");
+
 
 }
 
@@ -143,6 +145,13 @@ void MainWindow::CreateRightView(QGroupBox *pGroup)
        mpCheck[i] = pCheck;
    }
 
+   nYPos = nYPos +  300;
+   QPushButton * pSave = new QPushButton(pGroup);
+   pSave->setText(tr("Save Frame"));
+   pSave->setGeometry(nXPos,nYPos,150,50);
+   mpPBSaveFrame = pSave;
+   connect(pSave,SIGNAL(clicked()),this,SLOT(onSaveFrame()));
+
    nYPos=10;
    for(i=0;i<NUM_MAX_MSG;i++){
        nXPos = 160;
@@ -173,6 +182,41 @@ void MainWindow::CreateRightView(QGroupBox *pGroup)
 void MainWindow::UpdateRADAR(iv::radar::radarobjectarray radarobj,int index)
 {
     mpRadarView->SetRADAR(radarobj,index);
+
+   if(mbSaveFrame)
+    {
+       QFile xFile;
+       QString filename = QString("./")+QDateTime::currentDateTime().toString("RADARFRAME_yyyy-MM-dd-hh-mm-ss-zzz")+ QString(".txt");
+       xFile.setFileName(filename);
+       if(xFile.open(QIODevice::ReadWrite))
+       {
+            unsigned int i;
+            unsigned  int nobjsize = radarobj.obj_size();
+            char strline[1000];
+            if(nobjsize>0)
+            {
+                iv::radar::radarobject * pobj = radarobj.mutable_obj(0);
+                (void)pobj;
+                snprintf(strline,1000,"x\ty\tvx\t\vy\tvel\n");
+                xFile.write(strline,strnlen(strline,1000));
+            }
+            for(i=0;i<nobjsize;i++)
+            {
+                iv::radar::radarobject * pobj = radarobj.mutable_obj(i);
+                snprintf(strline,1000,"%6.3f\t%6.3f\t%6.3f\t%6.3f\t%6.3f\n",pobj->x(),pobj->y(),pobj->vx(),pobj->vy(),pobj->vel());
+                xFile.write(strline,strnlen(strline,1000));
+            }
+
+            xFile.close();
+       }
+       else
+       {
+            std::cout<<"save radar frame fail. file path: "<<filename.toStdString()<<std::endl;
+       }
+       mbSaveFrame = false;
+    }
+
+
 }
 
 void MainWindow::onCheckChange()
@@ -201,6 +245,7 @@ void MainWindow::onCheckChange()
 
 void MainWindow::paintEvent(QPaintEvent * e)
 {
+    (void)e;
     if(!mpRadarView->IsHaveNew())return;
 
     QImage image = mpRadarView->GetImage();
@@ -215,3 +260,8 @@ void MainWindow::onTimer()
 {
     update();
 }
+
+void MainWindow::onSaveFrame()
+{
+    mbSaveFrame = true;
+}

+ 7 - 0
src/tool/view_radar/mainwindow.h

@@ -5,6 +5,7 @@
 
 #include <QCheckBox>
 #include <QGroupBox>
+#include <QPushButton>
 
 #include "ivradarview.h"
 #include "ivview.h"
@@ -41,6 +42,8 @@ private slots:
 
    void onTimer();
 
+     void onSaveFrame();
+
 private:
     Ui::MainWindow *ui;
 
@@ -48,6 +51,8 @@ private:
     QCheckBox * msgCheck[NUM_MAX_MSG];
     QGroupBox * mpGroup;
 
+    QPushButton * mpPBSaveFrame;
+
     MyView *myview;
     QGraphicsScene *scene;
 
@@ -57,6 +62,8 @@ private:
 
     void * mpa[NUM_MAX_RADAR];
 
+    bool mbSaveFrame = false;
+
 public:
     QString msgbox[NUM_MAX_MSG]={"x","y","vx","vy","速度标量",
                        "数据可信标志","极坐标下距离","纵向速度","纵向加速度","位置角度",