#include "mainwindow.h" #include "ui_mainwindow.h" #include #include MainWindow * gw; extern std::string gstrmemradar[NUM_MAX_RADAR]; void ListenRadar(const char * strdata,const unsigned int nSize,const unsigned int index,const QDateTime * dt,const char * strmemname) { if(nSize<1)return; iv::radar::radarobjectarray xobj; if(false == xobj.ParseFromArray(strdata,nSize)) { std::cout<<"ListenenRadar fail."<= 0)gw->UpdateRADAR(xobj,radarindex); } MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { gw = this; ui->setupUi(this); mpRadarView = new IVRadarView(); mpIVView = mpRadarView; mpIVView->start(); CreateView(); int i; for(i=0;istart(10); setWindowTitle("View RADAR"); } MainWindow::~MainWindow() { QTime xTime; xTime.start(); mpIVView->requestInterruption(); while(xTime.elapsed()<1000) { if(mpIVView->isFinished())break; } delete ui; } void MainWindow::resizeEvent(QResizeEvent *event) { qDebug("resize"); QSize sizemain = ui->centralWidget->size(); qDebug("size x = %d y=%d",sizemain.width(),sizemain.height()); AdjustWPos(sizemain); } void MainWindow::AdjustWPos(QSize sizemain) { int i; int width = (sizemain.width() - 300)/2; if(width < 0)width = 20; int hgt = (sizemain.height()-20)/2; myview->setGeometry(0,10,width*2,hgt*2 ); mpGroup->setGeometry(width*2 + 20,10,sizemain.width()-width*2-20,sizemain.height()-20); // mgplidar->setGeometry(sizemain.width()-280,30,260,200); } void MainWindow::CreateView() { myview = new MyView(ui->centralWidget); myview->setObjectName(QStringLiteral("graphicsView")); myview->setGeometry(QRect(30, 30, 600, 600)); myview->setCacheMode(myview->CacheBackground); scene = new QGraphicsScene; mpGroup = new QGroupBox(ui->centralWidget); CreateRightView(mpGroup); } void MainWindow::CreateRightView(QGroupBox *pGroup) { int nXPos; int nYPos = 10; int i; nXPos = 10; // nYPos = nYPos + 50; QCheckBox * pCheck; for(i=0;isetText(gstrmemradar[i].data()); pCheck->setGeometry(nXPos,nYPos,150,30); 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;isetText(msgbox[i]); pCheck->setGeometry(nXPos,nYPos,150,20); msgCheck[i]=pCheck; if(i==0||i==1||i==4) pCheck->setChecked(true); connect(msgCheck[i],SIGNAL(clicked(bool)),this,SLOT(onCheckChange())); } for(i=0;isetChecked(true); connect(mpCheck[i],SIGNAL(clicked(bool)),this,SLOT(onCheckChange())); } // connect(pSL,SIGNAL(valueChanged())),this,SLOT(onChangeWind()); } //void MainWindow::SetRADAR(std::array xobs) //{ //// mpRadarView->SetRADAR(xobs); //} 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;ix(),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: "<(this->sender()); int i; int ncheck = -1; for(i=0;icheckState()<SetCheck(ncheck,pCheck->isChecked()); } void MainWindow::paintEvent(QPaintEvent * e) { (void)e; if(!mpRadarView->IsHaveNew())return; QImage image = mpRadarView->GetImage(); scene->clear(); scene->addPixmap(QPixmap::fromImage(image)); myview->setScene(scene); myview->show(); } void MainWindow::onTimer() { update(); } void MainWindow::onSaveFrame() { mbSaveFrame = true; }