Browse Source

Fix Crash.

Haobin Luo 2 năm trước cách đây
mục cha
commit
3d4dc74c34
5 tập tin đã thay đổi với 24 bổ sung7 xóa
  1. 11 1
      mainwindow.cpp
  2. 3 1
      mainwindow.h
  3. 3 1
      radarserver.cpp
  4. 2 0
      radarserver.h
  5. 5 4
      radarsiggen.cpp

+ 11 - 1
mainwindow.cpp

@@ -1,4 +1,4 @@
-#include "mainwindow.h"
+#include "mainwindow.h"
 #include "ui_mainwindow.h"
 
 MainWindow::MainWindow(QWidget *parent)
@@ -7,9 +7,19 @@ MainWindow::MainWindow(QWidget *parent)
 {
     ui->setupUi(this);
     //radarServer = new RadarServer(this, 1234);
+    radarServerThread = new QThread(this);
+    radarSigGenThread = new QThread(this);
+
     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();
 }
 
 MainWindow::~MainWindow()

+ 3 - 1
mainwindow.h

@@ -1,4 +1,4 @@
-#ifndef MAINWINDOW_H
+#ifndef MAINWINDOW_H
 #define MAINWINDOW_H
 
 #include <QMainWindow>
@@ -14,6 +14,8 @@ class MainWindow : public QMainWindow
     Q_OBJECT
 
 public:
+    QThread *radarServerThread;
+    QThread *radarSigGenThread;
     RadarServer *radarServer;
     RadarSigGen *radarSigGen;
 

+ 3 - 1
radarserver.cpp

@@ -1,10 +1,12 @@
-#include "radarserver.h"
+#include "radarserver.h"
 
 RadarServer::RadarServer(QObject *parent, quint16 port) : QObject(parent)
 {
+    this->port = port;
     m_pWebSocketServer = new QWebSocketServer(QStringLiteral("Radar Server"),
                                                     QWebSocketServer::NonSecureMode,
                                                     this);
+
     if (m_pWebSocketServer->listen(QHostAddress::Any, port))
     {
       qDebug() << "Radar Server listening on port" << port;

+ 2 - 0
radarserver.h

@@ -13,6 +13,8 @@ class RadarServer : public QObject
     Q_OBJECT
 public:
 
+    quint16 port;
+
     QWebSocketServer *m_pWebSocketServer;
     QList<QWebSocket *> m_clients;
 

+ 5 - 4
radarsiggen.cpp

@@ -2,26 +2,27 @@
 
 RadarSigGen::RadarSigGen(QObject *parent) : QObject(parent)
 {
+    sig = new double();
     fs = new double();
     PRF = new double();
 }
 
 void RadarSigGen::SlotRadarGen(int order)
 {
-    if (sig != nullptr)
+    qDebug() << QString::fromLocal8Bit("生成信号")<<order;
+
+    if (nullptr != sig)
     {
         delete sig;
     }
 
     switch (order) {
     case 1:
-        qDebug() << QString::fromLocal8Bit("寄");
         sig = new double[400000];
         RadarSignalGenerator001(sig,fs,PRF);
-
         break;
     default:
-
+        sig = new double[20];
         break;
     }
     for (int i = 0;i < 20;i++)