123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178 |
- #include "mainwindow.h"
- #include "ui_mainwindow.h"
- MainWindow::MainWindow(QWidget *parent)
- : QMainWindow(parent)
- , ui(new Ui::MainWindow)
- {
- ui->setupUi(this);
- this->setWindowTitle("蓝方模型创建及雷达信号模拟生成软件");
- //radarServer = new RadarServer(this, 1234);
- radarServerThread = new QThread(this);
- radarSigGenThread = new QThread(this);
- tableview = new QStandardItemModel;
- tableview->setHorizontalHeaderItem(0,new QStandardItem("雷达编号"));
- tableview->setHorizontalHeaderItem(1,new QStandardItem("工作状态"));
- tableview->setHorizontalHeaderItem(2,new QStandardItem("信号类型"));
- tableview->setHorizontalHeaderItem(3,new QStandardItem("载波频率"));
- rows = 0;
- radarServer = new RadarServer();
- radarSigGen = new RadarSigGen();
- radarServer->moveToThread(radarServerThread);
- radarSigGen->moveToThread(radarSigGenThread);
- connect(radarServer,SIGNAL(SigRadarGen(int)),radarSigGen,SLOT(SlotRadarGen(int)));
- radarServerThread->start();
- radarSigGenThread->start();
- ui->lineEdit_sigType->setText(QString::fromStdString("相位编码"));
- ui->lineEdit_fc->setText(QString::number(1e9,'f',2));
- ui->lineEdit_T->setText(QString::number(5e-6,'f',6));
- ui->lineEdit_PRF->setText(QString::number(1/(20e6),'f',8));
- ui->lineEdit_BW->setText(QString::number(20e6,'f',2));
- simDisplay = new SimDisplay(this);
- ui->lineEdit_sigType->setDisabled(true);
- ui->lineEdit_fc->setDisabled(true);
- ui->lineEdit_T->setDisabled(true);
- ui->lineEdit_PRF->setDisabled(true);
- ui->lineEdit_BW->setDisabled(true);
- }
- MainWindow::~MainWindow()
- {
- delete ui;
- }
- void MainWindow::on_pushButton_42_clicked()
- {
- simDisplay->show();
- simDisplay->setModal(true);
- }
- void MainWindow::on_comboBox_radarType_currentIndexChanged(const QString &arg1)
- {
- if(arg1.toStdString()=="模型1"){
- ui->lineEdit_sigType->setText(QString::fromStdString("相位编码"));
- ui->lineEdit_fc->setText(QString::number(1e9,'f',2));
- ui->lineEdit_T->setText(QString::number(5e-6,'f',6));
- ui->lineEdit_PRF->setText(QString::number(1/(20e6),'f',8));
- ui->lineEdit_BW->setText(QString::number(20e6,'f',2));
- }
- }
- void MainWindow::on_pushButton_5_clicked()
- {
- // 1.获取画布
- std::string chooseIndex = ui->comboBox_28->currentText().toStdString();
- MyChartView = ui->SimShow;
- QValueAxis MyAxisX; // X轴
- QValueAxis MyAxisY; // Y轴
- MyAxisX.setRange(0,100);
- MyAxisY.setRange(-1,1);
- MyAxisX.setTitleText(QStringLiteral("时间"));
- MyAxisX.setTitleFont(QFont("宋体"));
- MyAxisX.setTickCount(10);
- MyAxisX.setGridLineVisible(true);
- MyAxisX.setLineVisible(true);
- MyAxisX.setGridLineColor(Qt::black);
- MyChart.addAxis(&MyAxisX,Qt::AlignLeft);
- MyChart.addAxis(&MyAxisY,Qt::AlignBottom);
- MyChartView->setChart(&MyChart);
- MyChartView->setRubberBand(QChartView::RectangleRubberBand);
- MyChart.setTitle(QString::fromStdString("信号生成预览"));
- // MyLineSeries.attachAxis(MyAxisX);
- // MyLineSeries.attachAxis(MyAxisY);
- double *currentSig;
- for(int i=0;i<interceptRadarNum;i++)
- {
- if(chooseIndex==interceptRadarList[i]->getIndex()){
- std::cout<<"选中";
- currentSig = interceptRadarList[i]->getSig();
- std::cout<<currentSig[1];
- }
- }
- // 3.给序列对象添加数据
- for(int i = 0; i < 200000; i ++)
- {
- MyPointf << QPointF(i,currentSig[i]);
- }
- MyLineSeries.replace(MyPointf);
- MyLineSeries.attachAxis(&MyAxisX);
- // 4.将序列添加到坐标对象中
- MyChart.addSeries(&MyLineSeries);
- MyChart.addAxis(&MyAxisX,Qt::AlignLeft);
- MyChart.addAxis(&MyAxisY,Qt::AlignBottom);
- // 2.展示坐标对象(将坐标对象放到画布上)
- }
- void MainWindow::on_CreateInterceptRadarButton_clicked()
- {
- std::cout<<ui->comboBox_radarType->currentIndex();
- if(ui->comboBox_radarType->currentIndex()==0){//模型1
- radarSigGen->SlotRadarGen(1);
- interceptRadarList[interceptRadarNum] = new interceptRadar();
- interceptRadarList[interceptRadarNum]->setIndex(ui->lineEdit_interceptRadarId->text().toStdString());
- interceptRadarList[interceptRadarNum++]->setSig(radarSigGen->sig);
- int lines = 0;
- tableview->setItem(rows, lines++, new QStandardItem(ui->lineEdit_interceptRadarId->text()));
- tableview->setItem(rows, lines++, new QStandardItem("正常"));
- tableview->setItem(rows, lines++, new QStandardItem("相位编码"));
- tableview->setItem(rows++, lines++, new QStandardItem(ui->lineEdit_fc->text()));
- ui->tableView_6->setModel(tableview);
- ui->tableView_11->setModel(tableview);
- ui->comboBox_28->addItem(ui->lineEdit_interceptRadarId->text());
- }
- if(ui->comboBox_radarType->currentIndex()==1){//模型2
- radarSigGen->SlotRadarGen(2);
- interceptRadarList[interceptRadarNum] = new interceptRadar();
- interceptRadarList[interceptRadarNum]->setIndex(ui->lineEdit_interceptRadarId->text().toStdString());
- interceptRadarList[interceptRadarNum++]->setSig(radarSigGen->sig);
- int lines = 0;
- tableview->setItem(rows, lines++, new QStandardItem(ui->lineEdit_interceptRadarId->text()));
- tableview->setItem(rows, lines++, new QStandardItem("正常"));
- tableview->setItem(rows, lines++, new QStandardItem("相位编码"));
- tableview->setItem(rows++, lines++, new QStandardItem(ui->lineEdit_fc->text()));
- ui->tableView_6->setModel(tableview);
- ui->tableView_11->setModel(tableview);
- ui->comboBox_28->addItem(ui->lineEdit_interceptRadarId->text());
- }
- if(ui->comboBox_radarType->currentIndex()==2){//模型3
- radarSigGen->SlotRadarGen(3);
- interceptRadarList[interceptRadarNum] = new interceptRadar();
- interceptRadarList[interceptRadarNum++]->setSig(radarSigGen->sig);
- ui->comboBox_28->addItem(ui->lineEdit_interceptRadarId->text());
- }
- }
|