add rn signal paint
This commit is contained in:
parent
9b5e481c9e
commit
840846982d
|
@ -32,7 +32,8 @@ SOURCES += \
|
||||||
src/cpp/statusTestWin.cpp \
|
src/cpp/statusTestWin.cpp \
|
||||||
src/cpp/precisionTestWin.cpp \
|
src/cpp/precisionTestWin.cpp \
|
||||||
src/cpp/testThread.cpp \
|
src/cpp/testThread.cpp \
|
||||||
src/cpp/rnSignalPainter.cpp
|
src/cpp/rnSignalPainter.cpp \
|
||||||
|
src/cpp/rdSignalPainter.cpp
|
||||||
|
|
||||||
HEADERS += \
|
HEADERS += \
|
||||||
src/include/posTestWin.h \
|
src/include/posTestWin.h \
|
||||||
|
@ -43,6 +44,7 @@ HEADERS += \
|
||||||
src/include/msgInputWin.h \
|
src/include/msgInputWin.h \
|
||||||
src/include/precisionTestWin.h \
|
src/include/precisionTestWin.h \
|
||||||
src/include/qcustomplot.h \
|
src/include/qcustomplot.h \
|
||||||
|
src/include/rdSignalPainter.h \
|
||||||
src/include/rnSignalPainter.h \
|
src/include/rnSignalPainter.h \
|
||||||
src/include/serialport.h \
|
src/include/serialport.h \
|
||||||
src/include/sqlitedb.h \
|
src/include/sqlitedb.h \
|
||||||
|
@ -52,6 +54,7 @@ HEADERS += \
|
||||||
src/include/utils.h
|
src/include/utils.h
|
||||||
|
|
||||||
FORMS += \
|
FORMS += \
|
||||||
|
src/ui/rdSignalPainter.ui \
|
||||||
src/ui/rnSignalPainter.ui \
|
src/ui/rnSignalPainter.ui \
|
||||||
src/ui/precisionTestWin.ui \
|
src/ui/precisionTestWin.ui \
|
||||||
src/ui/posTestWin.ui \
|
src/ui/posTestWin.ui \
|
||||||
|
|
|
@ -127,6 +127,12 @@ MainWindow::MainWindow(QWidget *parent)
|
||||||
connect(this,SIGNAL(recvIidSignal(QString)),ui->statusTestWdg,SLOT(recvIidHandle(QString)),Qt::QueuedConnection);
|
connect(this,SIGNAL(recvIidSignal(QString)),ui->statusTestWdg,SLOT(recvIidHandle(QString)),Qt::QueuedConnection);
|
||||||
connect(this,SIGNAL(recvIcmSignal(QString)),ui->statusTestWdg,SLOT(recvIcmHandle(QString)),Qt::QueuedConnection);
|
connect(this,SIGNAL(recvIcmSignal(QString)),ui->statusTestWdg,SLOT(recvIcmHandle(QString)),Qt::QueuedConnection);
|
||||||
connect(this,SIGNAL(recvPmuSignal(QString)),ui->statusTestWdg,SLOT(recvPmuHandle(QString)),Qt::QueuedConnection);
|
connect(this,SIGNAL(recvPmuSignal(QString)),ui->statusTestWdg,SLOT(recvPmuHandle(QString)),Qt::QueuedConnection);
|
||||||
|
|
||||||
|
//定位检测
|
||||||
|
connect(ui->posTestWdg,SIGNAL(writeDataSignal(QByteArray)),this,SIGNAL(writeDataSignal(QByteArray)),Qt::QueuedConnection);
|
||||||
|
connect(this,SIGNAL(recvBidSignal(QString)),ui->posTestWdg,SLOT(recvBidHandle(QString)),Qt::QueuedConnection);
|
||||||
|
connect(this,SIGNAL(recvGsvSignal(QString)),ui->posTestWdg,SIGNAL(recvGsvSignal(QString)),Qt::QueuedConnection);
|
||||||
|
connect(this,SIGNAL(recvGgaSignal(QString)),ui->posTestWdg,SLOT(recvGgaHandle(QString)),Qt::QueuedConnection);
|
||||||
}
|
}
|
||||||
|
|
||||||
MainWindow::~MainWindow()
|
MainWindow::~MainWindow()
|
||||||
|
@ -177,6 +183,12 @@ void MainWindow::receiverSerialDataHandle(const QByteArray &data)
|
||||||
emit recvIcmSignal(cmd);
|
emit recvIcmSignal(cmd);
|
||||||
}else if(cmd.startsWith("$BDPMU")){
|
}else if(cmd.startsWith("$BDPMU")){
|
||||||
emit recvPmuSignal(cmd);
|
emit recvPmuSignal(cmd);
|
||||||
|
}else if(cmd.startsWith("$BDBID")){
|
||||||
|
emit recvBidSignal(cmd);
|
||||||
|
}else if(cmd.startsWith("$BDGSV") || cmd.startsWith("$GPGSV") || cmd.startsWith("$GBGSV")){
|
||||||
|
emit recvGsvSignal(cmd);
|
||||||
|
}else if(cmd.contains(QRegularExpression("^[$][A-Z]{2}GGA"))){
|
||||||
|
emit recvGgaSignal(cmd);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
#include "posTestWin.h"
|
#include "posTestWin.h"
|
||||||
#include "ui_posTestWin.h"
|
#include "ui_posTestWin.h"
|
||||||
|
#include "utils.h"
|
||||||
|
#include "globalParams.h"
|
||||||
#include <QPushButton>
|
#include <QPushButton>
|
||||||
#include <qDebug>
|
#include <qDebug>
|
||||||
|
|
||||||
|
@ -13,6 +15,8 @@ PosTestWin::PosTestWin(QWidget *parent)
|
||||||
ui->gpbRnTest->setVisible(true);
|
ui->gpbRnTest->setVisible(true);
|
||||||
ui->gpbRnSignal->setVisible(false);
|
ui->gpbRnSignal->setVisible(false);
|
||||||
|
|
||||||
|
connect(this,SIGNAL(recvGsvSignal(QString)),ui->rnSignalPainterWdg,SLOT(recvGsvHandle(QString)),Qt::QueuedConnection);
|
||||||
|
|
||||||
rnModel = new QStandardItemModel(this);
|
rnModel = new QStandardItemModel(this);
|
||||||
rnSelect = new QItemSelectionModel(rnModel);
|
rnSelect = new QItemSelectionModel(rnModel);
|
||||||
rnModel->setColumnCount(10);
|
rnModel->setColumnCount(10);
|
||||||
|
@ -41,7 +45,7 @@ PosTestWin::PosTestWin(QWidget *parent)
|
||||||
QFont font = ui->tableViewRn->font();
|
QFont font = ui->tableViewRn->font();
|
||||||
font.setBold(true);
|
font.setBold(true);
|
||||||
QFont smallFont = font;
|
QFont smallFont = font;
|
||||||
smallFont.setPointSize(font.pointSize()-2);
|
//smallFont.setPointSize(font.pointSize()-2);
|
||||||
smallFont.setBold(false);
|
smallFont.setBold(false);
|
||||||
|
|
||||||
QList<QStandardItem *> aItemList;
|
QList<QStandardItem *> aItemList;
|
||||||
|
@ -79,43 +83,57 @@ PosTestWin::PosTestWin(QWidget *parent)
|
||||||
b1cBtn->setSizePolicy(QSizePolicy::Preferred,QSizePolicy::Preferred);
|
b1cBtn->setSizePolicy(QSizePolicy::Preferred,QSizePolicy::Preferred);
|
||||||
b1cBtn->setFont(smallFont);
|
b1cBtn->setFont(smallFont);
|
||||||
b1cBtn->setDefault(true);
|
b1cBtn->setDefault(true);
|
||||||
|
b1cBtn->setCursor(Qt::PointingHandCursor);
|
||||||
ui->tableViewRn->setIndexWidget(rnModel->index(2,0),b1cBtn);
|
ui->tableViewRn->setIndexWidget(rnModel->index(2,0),b1cBtn);
|
||||||
|
connect(b1cBtn,SIGNAL(clicked()),this,SLOT(b1cBtn_clicked()),Qt::QueuedConnection);
|
||||||
|
|
||||||
QPushButton *b3cBtn = new QPushButton("B3频点C码定位");
|
QPushButton *b3cBtn = new QPushButton("B3频点C码定位");
|
||||||
b3cBtn->setSizePolicy(QSizePolicy::Preferred,QSizePolicy::Preferred);
|
b3cBtn->setSizePolicy(QSizePolicy::Preferred,QSizePolicy::Preferred);
|
||||||
b3cBtn->setFont(smallFont);
|
b3cBtn->setFont(smallFont);
|
||||||
b3cBtn->setDefault(true);
|
b3cBtn->setDefault(true);
|
||||||
|
b3cBtn->setCursor(Qt::PointingHandCursor);
|
||||||
ui->tableViewRn->setIndexWidget(rnModel->index(3,0),b3cBtn);
|
ui->tableViewRn->setIndexWidget(rnModel->index(3,0),b3cBtn);
|
||||||
|
connect(b3cBtn,SIGNAL(clicked()),this,SLOT(b3cBtn_clicked()),Qt::QueuedConnection);
|
||||||
|
|
||||||
QPushButton *b1b3cBtn = new QPushButton("B1+B3频点C码定位");
|
QPushButton *b1b3cBtn = new QPushButton("B1+B3频点C码定位");
|
||||||
b1b3cBtn->setSizePolicy(QSizePolicy::Preferred,QSizePolicy::Preferred);
|
b1b3cBtn->setSizePolicy(QSizePolicy::Preferred,QSizePolicy::Preferred);
|
||||||
b1b3cBtn->setFont(smallFont);
|
b1b3cBtn->setFont(smallFont);
|
||||||
b1b3cBtn->setDefault(true);
|
b1b3cBtn->setDefault(true);
|
||||||
|
b1b3cBtn->setCursor(Qt::PointingHandCursor);
|
||||||
ui->tableViewRn->setIndexWidget(rnModel->index(4,0),b1b3cBtn);
|
ui->tableViewRn->setIndexWidget(rnModel->index(4,0),b1b3cBtn);
|
||||||
|
connect(b1b3cBtn,SIGNAL(clicked()),this,SLOT(b1b3cBtn_clicked()),Qt::QueuedConnection);
|
||||||
|
|
||||||
QPushButton *gpsBtn = new QPushButton("GPS频点C码定位");
|
QPushButton *gpsBtn = new QPushButton("GPS频点C码定位");
|
||||||
gpsBtn->setSizePolicy(QSizePolicy::Preferred,QSizePolicy::Preferred);
|
gpsBtn->setSizePolicy(QSizePolicy::Preferred,QSizePolicy::Preferred);
|
||||||
gpsBtn->setFont(smallFont);
|
gpsBtn->setFont(smallFont);
|
||||||
gpsBtn->setDefault(true);
|
gpsBtn->setDefault(true);
|
||||||
|
gpsBtn->setCursor(Qt::PointingHandCursor);
|
||||||
ui->tableViewRn->setIndexWidget(rnModel->index(5,0),gpsBtn);
|
ui->tableViewRn->setIndexWidget(rnModel->index(5,0),gpsBtn);
|
||||||
|
connect(gpsBtn,SIGNAL(clicked()),this,SLOT(gpsBtn_clicked()),Qt::QueuedConnection);
|
||||||
|
|
||||||
QPushButton *b1pBtn = new QPushButton("B1频点P码定位");
|
QPushButton *b1pBtn = new QPushButton("B1频点P码定位");
|
||||||
b1pBtn->setSizePolicy(QSizePolicy::Preferred,QSizePolicy::Preferred);
|
b1pBtn->setSizePolicy(QSizePolicy::Preferred,QSizePolicy::Preferred);
|
||||||
b1pBtn->setFont(smallFont);
|
b1pBtn->setFont(smallFont);
|
||||||
b1pBtn->setDefault(true);
|
b1pBtn->setDefault(true);
|
||||||
|
b1pBtn->setCursor(Qt::PointingHandCursor);
|
||||||
ui->tableViewRn->setIndexWidget(rnModel->index(6,0),b1pBtn);
|
ui->tableViewRn->setIndexWidget(rnModel->index(6,0),b1pBtn);
|
||||||
|
connect(b1pBtn,SIGNAL(clicked()),this,SLOT(b1pBtn_clicked()),Qt::QueuedConnection);
|
||||||
|
|
||||||
QPushButton *b3pBtn = new QPushButton("B3频点P码定位");
|
QPushButton *b3pBtn = new QPushButton("B3频点P码定位");
|
||||||
b3pBtn->setSizePolicy(QSizePolicy::Preferred,QSizePolicy::Preferred);
|
b3pBtn->setSizePolicy(QSizePolicy::Preferred,QSizePolicy::Preferred);
|
||||||
b3pBtn->setFont(smallFont);
|
b3pBtn->setFont(smallFont);
|
||||||
b3pBtn->setDefault(true);
|
b3pBtn->setDefault(true);
|
||||||
|
b3pBtn->setCursor(Qt::PointingHandCursor);
|
||||||
ui->tableViewRn->setIndexWidget(rnModel->index(7,0),b3pBtn);
|
ui->tableViewRn->setIndexWidget(rnModel->index(7,0),b3pBtn);
|
||||||
|
connect(b3pBtn,SIGNAL(clicked()),this,SLOT(b3pBtn_clicked()),Qt::QueuedConnection);
|
||||||
|
|
||||||
QPushButton *compatibleBtn = new QPushButton("兼容定位");
|
QPushButton *compatibleBtn = new QPushButton("兼容定位");
|
||||||
compatibleBtn->setSizePolicy(QSizePolicy::Preferred,QSizePolicy::Preferred);
|
compatibleBtn->setSizePolicy(QSizePolicy::Preferred,QSizePolicy::Preferred);
|
||||||
compatibleBtn->setFont(smallFont);
|
compatibleBtn->setFont(smallFont);
|
||||||
compatibleBtn->setDefault(true);
|
compatibleBtn->setDefault(true);
|
||||||
|
compatibleBtn->setCursor(Qt::PointingHandCursor);
|
||||||
ui->tableViewRn->setIndexWidget(rnModel->index(8,0),compatibleBtn);
|
ui->tableViewRn->setIndexWidget(rnModel->index(8,0),compatibleBtn);
|
||||||
|
connect(compatibleBtn,SIGNAL(clicked()),this,SLOT(compatibleBtn_clicked()),Qt::QueuedConnection);
|
||||||
|
|
||||||
rnModel->item(0,2)->setText("定位结果");
|
rnModel->item(0,2)->setText("定位结果");
|
||||||
rnModel->item(0,2)->setFont(font);
|
rnModel->item(0,2)->setFont(font);
|
||||||
|
@ -156,6 +174,7 @@ PosTestWin::PosTestWin(QWidget *parent)
|
||||||
viewB1CBtn->setSizePolicy(QSizePolicy::Preferred,QSizePolicy::Preferred);
|
viewB1CBtn->setSizePolicy(QSizePolicy::Preferred,QSizePolicy::Preferred);
|
||||||
viewB1CBtn->setFont(smallFont);
|
viewB1CBtn->setFont(smallFont);
|
||||||
viewB1CBtn->setDefault(true);
|
viewB1CBtn->setDefault(true);
|
||||||
|
viewB1CBtn->setCursor(Qt::PointingHandCursor);
|
||||||
ui->tableViewRn->setIndexWidget(rnModel->index(2,10),viewB1CBtn);
|
ui->tableViewRn->setIndexWidget(rnModel->index(2,10),viewB1CBtn);
|
||||||
connect(viewB1CBtn,SIGNAL(clicked()),this,SLOT(view_signal_clicked()),Qt::QueuedConnection);
|
connect(viewB1CBtn,SIGNAL(clicked()),this,SLOT(view_signal_clicked()),Qt::QueuedConnection);
|
||||||
|
|
||||||
|
@ -163,6 +182,7 @@ PosTestWin::PosTestWin(QWidget *parent)
|
||||||
viewB3CBtn->setSizePolicy(QSizePolicy::Preferred,QSizePolicy::Preferred);
|
viewB3CBtn->setSizePolicy(QSizePolicy::Preferred,QSizePolicy::Preferred);
|
||||||
viewB3CBtn->setFont(smallFont);
|
viewB3CBtn->setFont(smallFont);
|
||||||
viewB3CBtn->setDefault(true);
|
viewB3CBtn->setDefault(true);
|
||||||
|
viewB3CBtn->setCursor(Qt::PointingHandCursor);
|
||||||
ui->tableViewRn->setIndexWidget(rnModel->index(3,10),viewB3CBtn);
|
ui->tableViewRn->setIndexWidget(rnModel->index(3,10),viewB3CBtn);
|
||||||
connect(viewB3CBtn,SIGNAL(clicked()),this,SLOT(view_signal_clicked()),Qt::QueuedConnection);
|
connect(viewB3CBtn,SIGNAL(clicked()),this,SLOT(view_signal_clicked()),Qt::QueuedConnection);
|
||||||
|
|
||||||
|
@ -170,6 +190,7 @@ PosTestWin::PosTestWin(QWidget *parent)
|
||||||
viewB1B3CBtn->setSizePolicy(QSizePolicy::Preferred,QSizePolicy::Preferred);
|
viewB1B3CBtn->setSizePolicy(QSizePolicy::Preferred,QSizePolicy::Preferred);
|
||||||
viewB1B3CBtn->setFont(smallFont);
|
viewB1B3CBtn->setFont(smallFont);
|
||||||
viewB1B3CBtn->setDefault(true);
|
viewB1B3CBtn->setDefault(true);
|
||||||
|
viewB1B3CBtn->setCursor(Qt::PointingHandCursor);
|
||||||
ui->tableViewRn->setIndexWidget(rnModel->index(4,10),viewB1B3CBtn);
|
ui->tableViewRn->setIndexWidget(rnModel->index(4,10),viewB1B3CBtn);
|
||||||
connect(viewB1B3CBtn,SIGNAL(clicked()),this,SLOT(view_signal_clicked()),Qt::QueuedConnection);
|
connect(viewB1B3CBtn,SIGNAL(clicked()),this,SLOT(view_signal_clicked()),Qt::QueuedConnection);
|
||||||
|
|
||||||
|
@ -177,6 +198,7 @@ PosTestWin::PosTestWin(QWidget *parent)
|
||||||
viewGPSBtn->setSizePolicy(QSizePolicy::Preferred,QSizePolicy::Preferred);
|
viewGPSBtn->setSizePolicy(QSizePolicy::Preferred,QSizePolicy::Preferred);
|
||||||
viewGPSBtn->setFont(smallFont);
|
viewGPSBtn->setFont(smallFont);
|
||||||
viewGPSBtn->setDefault(true);
|
viewGPSBtn->setDefault(true);
|
||||||
|
viewGPSBtn->setCursor(Qt::PointingHandCursor);
|
||||||
ui->tableViewRn->setIndexWidget(rnModel->index(5,10),viewGPSBtn);
|
ui->tableViewRn->setIndexWidget(rnModel->index(5,10),viewGPSBtn);
|
||||||
connect(viewGPSBtn,SIGNAL(clicked()),this,SLOT(view_signal_clicked()),Qt::QueuedConnection);
|
connect(viewGPSBtn,SIGNAL(clicked()),this,SLOT(view_signal_clicked()),Qt::QueuedConnection);
|
||||||
|
|
||||||
|
@ -184,6 +206,7 @@ PosTestWin::PosTestWin(QWidget *parent)
|
||||||
viewB1PBtn->setSizePolicy(QSizePolicy::Preferred,QSizePolicy::Preferred);
|
viewB1PBtn->setSizePolicy(QSizePolicy::Preferred,QSizePolicy::Preferred);
|
||||||
viewB1PBtn->setFont(smallFont);
|
viewB1PBtn->setFont(smallFont);
|
||||||
viewB1PBtn->setDefault(true);
|
viewB1PBtn->setDefault(true);
|
||||||
|
viewB1PBtn->setCursor(Qt::PointingHandCursor);
|
||||||
ui->tableViewRn->setIndexWidget(rnModel->index(6,10),viewB1PBtn);
|
ui->tableViewRn->setIndexWidget(rnModel->index(6,10),viewB1PBtn);
|
||||||
connect(viewB1PBtn,SIGNAL(clicked()),this,SLOT(view_signal_clicked()),Qt::QueuedConnection);
|
connect(viewB1PBtn,SIGNAL(clicked()),this,SLOT(view_signal_clicked()),Qt::QueuedConnection);
|
||||||
|
|
||||||
|
@ -191,6 +214,7 @@ PosTestWin::PosTestWin(QWidget *parent)
|
||||||
viewB3PBtn->setSizePolicy(QSizePolicy::Preferred,QSizePolicy::Preferred);
|
viewB3PBtn->setSizePolicy(QSizePolicy::Preferred,QSizePolicy::Preferred);
|
||||||
viewB3PBtn->setFont(smallFont);
|
viewB3PBtn->setFont(smallFont);
|
||||||
viewB3PBtn->setDefault(true);
|
viewB3PBtn->setDefault(true);
|
||||||
|
viewB3PBtn->setCursor(Qt::PointingHandCursor);
|
||||||
ui->tableViewRn->setIndexWidget(rnModel->index(7,10),viewB3PBtn);
|
ui->tableViewRn->setIndexWidget(rnModel->index(7,10),viewB3PBtn);
|
||||||
connect(viewB3PBtn,SIGNAL(clicked()),this,SLOT(view_signal_clicked()),Qt::QueuedConnection);
|
connect(viewB3PBtn,SIGNAL(clicked()),this,SLOT(view_signal_clicked()),Qt::QueuedConnection);
|
||||||
|
|
||||||
|
@ -198,6 +222,7 @@ PosTestWin::PosTestWin(QWidget *parent)
|
||||||
viewCompatibleBtn->setSizePolicy(QSizePolicy::Preferred,QSizePolicy::Preferred);
|
viewCompatibleBtn->setSizePolicy(QSizePolicy::Preferred,QSizePolicy::Preferred);
|
||||||
viewCompatibleBtn->setFont(smallFont);
|
viewCompatibleBtn->setFont(smallFont);
|
||||||
viewCompatibleBtn->setDefault(true);
|
viewCompatibleBtn->setDefault(true);
|
||||||
|
viewCompatibleBtn->setCursor(Qt::PointingHandCursor);
|
||||||
ui->tableViewRn->setIndexWidget(rnModel->index(8,10),viewCompatibleBtn);
|
ui->tableViewRn->setIndexWidget(rnModel->index(8,10),viewCompatibleBtn);
|
||||||
connect(viewCompatibleBtn,SIGNAL(clicked()),this,SLOT(view_signal_clicked()),Qt::QueuedConnection);
|
connect(viewCompatibleBtn,SIGNAL(clicked()),this,SLOT(view_signal_clicked()),Qt::QueuedConnection);
|
||||||
|
|
||||||
|
@ -209,24 +234,28 @@ PosTestWin::PosTestWin(QWidget *parent)
|
||||||
rdPosBtn->setSizePolicy(QSizePolicy::Preferred,QSizePolicy::Preferred);
|
rdPosBtn->setSizePolicy(QSizePolicy::Preferred,QSizePolicy::Preferred);
|
||||||
rdPosBtn->setFont(font);
|
rdPosBtn->setFont(font);
|
||||||
rdPosBtn->setDefault(true);
|
rdPosBtn->setDefault(true);
|
||||||
|
rdPosBtn->setCursor(Qt::PointingHandCursor);
|
||||||
ui->tableViewRd->setIndexWidget(rdModel->index(2,0),rdPosBtn);
|
ui->tableViewRd->setIndexWidget(rdModel->index(2,0),rdPosBtn);
|
||||||
|
|
||||||
QPushButton *rdContinuePosBtn = new QPushButton("RDSS连续定位");
|
QPushButton *rdContinuePosBtn = new QPushButton("RDSS连续定位");
|
||||||
rdContinuePosBtn->setSizePolicy(QSizePolicy::Preferred,QSizePolicy::Preferred);
|
rdContinuePosBtn->setSizePolicy(QSizePolicy::Preferred,QSizePolicy::Preferred);
|
||||||
rdContinuePosBtn->setFont(font);
|
rdContinuePosBtn->setFont(font);
|
||||||
rdContinuePosBtn->setDefault(true);
|
rdContinuePosBtn->setDefault(true);
|
||||||
|
rdContinuePosBtn->setCursor(Qt::PointingHandCursor);
|
||||||
ui->tableViewRd->setIndexWidget(rdModel->index(3,0),rdContinuePosBtn);
|
ui->tableViewRd->setIndexWidget(rdModel->index(3,0),rdContinuePosBtn);
|
||||||
|
|
||||||
QPushButton *rdEmergencyPosBtn = new QPushButton("RDSS紧急定位");
|
QPushButton *rdEmergencyPosBtn = new QPushButton("RDSS紧急定位");
|
||||||
rdEmergencyPosBtn->setSizePolicy(QSizePolicy::Preferred,QSizePolicy::Preferred);
|
rdEmergencyPosBtn->setSizePolicy(QSizePolicy::Preferred,QSizePolicy::Preferred);
|
||||||
rdEmergencyPosBtn->setFont(font);
|
rdEmergencyPosBtn->setFont(font);
|
||||||
rdEmergencyPosBtn->setDefault(true);
|
rdEmergencyPosBtn->setDefault(true);
|
||||||
|
rdEmergencyPosBtn->setCursor(Qt::PointingHandCursor);
|
||||||
ui->tableViewRd->setIndexWidget(rdModel->index(4,0),rdEmergencyPosBtn);
|
ui->tableViewRd->setIndexWidget(rdModel->index(4,0),rdEmergencyPosBtn);
|
||||||
|
|
||||||
QPushButton *rdStopContinuePosBtn = new QPushButton("结束RDSS连续定位");
|
QPushButton *rdStopContinuePosBtn = new QPushButton("结束RDSS连续定位");
|
||||||
rdStopContinuePosBtn->setSizePolicy(QSizePolicy::Preferred,QSizePolicy::Preferred);
|
rdStopContinuePosBtn->setSizePolicy(QSizePolicy::Preferred,QSizePolicy::Preferred);
|
||||||
rdStopContinuePosBtn->setFont(font);
|
rdStopContinuePosBtn->setFont(font);
|
||||||
rdStopContinuePosBtn->setDefault(true);
|
rdStopContinuePosBtn->setDefault(true);
|
||||||
|
rdStopContinuePosBtn->setCursor(Qt::PointingHandCursor);
|
||||||
ui->tableViewRd->setIndexWidget(rdModel->index(5,0),rdStopContinuePosBtn);
|
ui->tableViewRd->setIndexWidget(rdModel->index(5,0),rdStopContinuePosBtn);
|
||||||
|
|
||||||
rdModel->item(0,2)->setText("定位结果");
|
rdModel->item(0,2)->setText("定位结果");
|
||||||
|
@ -251,6 +280,127 @@ PosTestWin::~PosTestWin()
|
||||||
delete ui;
|
delete ui;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void PosTestWin::recvBidHandle(const QString &cmd)
|
||||||
|
{
|
||||||
|
QStringList paras = extractParaList(cmd);
|
||||||
|
if(paras.size()==2){
|
||||||
|
QString mode = paras[0];
|
||||||
|
QString code = paras[1];
|
||||||
|
if(mode=="1"){
|
||||||
|
globalParams::curRnPosMode = "B3"+code;
|
||||||
|
}else if(mode=="2"){
|
||||||
|
globalParams::curRnPosMode = QString("B1%1+B3%2").arg(code,code);
|
||||||
|
}else if(mode=="3"){
|
||||||
|
globalParams::curRnPosMode = "B1"+code;
|
||||||
|
}else if(mode=="5"){
|
||||||
|
globalParams::curRnPosMode = "L1"+code;
|
||||||
|
}else if(mode=="8"){
|
||||||
|
globalParams::curRnPosMode = QString("B3%1+L1%2").arg(code,code);;
|
||||||
|
}else{
|
||||||
|
globalParams::curRnPosMode = "";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void PosTestWin::recvGgaHandle(const QString &cmd)
|
||||||
|
{
|
||||||
|
QStringList paras = extractParaList(cmd);
|
||||||
|
if(paras.size()<14){
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
QString time = paras[0];
|
||||||
|
bool ok;
|
||||||
|
QString lat = paras[1];
|
||||||
|
double dlat = lat.toDouble(&ok);
|
||||||
|
QString latitude,longitude,altitude;
|
||||||
|
if(ok){
|
||||||
|
dlat = degreeSecond2degree(dlat);
|
||||||
|
latitude = QString("%1°").arg(dlat,0,'f',8,QChar('0'));
|
||||||
|
}else{
|
||||||
|
latitude = "";
|
||||||
|
}
|
||||||
|
|
||||||
|
QString lon = paras[3];
|
||||||
|
double dlon = lon.toDouble(&ok);
|
||||||
|
if(ok){
|
||||||
|
dlon = degreeSecond2degree(dlon);
|
||||||
|
longitude = QString("%1°").arg(dlon,0,'f',8,QChar('0'));
|
||||||
|
}else{
|
||||||
|
longitude = "";
|
||||||
|
}
|
||||||
|
if(longitude.size()>latitude.size()){
|
||||||
|
while (longitude.size()>latitude.size()) {
|
||||||
|
latitude.append(" ");
|
||||||
|
}
|
||||||
|
}else if(longitude.size()<latitude.size()){
|
||||||
|
while (longitude.size()<latitude.size()) {
|
||||||
|
longitude.append(" ");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(!latitude.isEmpty()){
|
||||||
|
latitude.append(paras[2]);
|
||||||
|
}
|
||||||
|
if(!longitude.isEmpty()){
|
||||||
|
longitude.append(paras[4]);
|
||||||
|
}
|
||||||
|
QString high = paras[8];
|
||||||
|
float fhigh = high.toFloat(&ok);
|
||||||
|
if(ok){
|
||||||
|
fhigh = fhigh + paras[10].toFloat();
|
||||||
|
altitude = QString("%1 m").arg(fhigh,0,'f',4,QChar('0'));
|
||||||
|
}else{
|
||||||
|
altitude = "";
|
||||||
|
}
|
||||||
|
|
||||||
|
QString status = paras[5];
|
||||||
|
|
||||||
|
QString satelliteCounts = paras[6];
|
||||||
|
QString hdop = paras[7];
|
||||||
|
QString vdop;
|
||||||
|
if(paras.size()>=15){
|
||||||
|
vdop = paras[14];
|
||||||
|
}
|
||||||
|
|
||||||
|
int row = -1;
|
||||||
|
if(globalParams::curRnPosMode=="B1C"){
|
||||||
|
row = 2;
|
||||||
|
}else if(globalParams::curRnPosMode=="B3C"){
|
||||||
|
row = 3;
|
||||||
|
}else if(globalParams::curRnPosMode=="B1C+B3C"){
|
||||||
|
row = 4;
|
||||||
|
}else if(globalParams::curRnPosMode=="L1C"){
|
||||||
|
row = 5;
|
||||||
|
}else if(globalParams::curRnPosMode=="B1P"){
|
||||||
|
row = 6;
|
||||||
|
}else if(globalParams::curRnPosMode=="B3P"){
|
||||||
|
row = 7;
|
||||||
|
}else if(globalParams::curRnPosMode=="B3C+L1C"){
|
||||||
|
row = 8;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(status.toInt()!=0){
|
||||||
|
if(row >=0){
|
||||||
|
rnModel->item(row,2)->setText(time);
|
||||||
|
rnModel->item(row,3)->setText(longitude);
|
||||||
|
rnModel->item(row,4)->setText(latitude);
|
||||||
|
rnModel->item(row,5)->setText(altitude);
|
||||||
|
rnModel->item(row,7)->setText(vdop);
|
||||||
|
rnModel->item(row,8)->setText(hdop);
|
||||||
|
rnModel->item(row,9)->setText(satelliteCounts);
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
if(row >=0){
|
||||||
|
rnModel->item(row,2)->setText("");
|
||||||
|
rnModel->item(row,3)->setText("");
|
||||||
|
rnModel->item(row,4)->setText("");
|
||||||
|
rnModel->item(row,5)->setText("");
|
||||||
|
rnModel->item(row,7)->setText("");
|
||||||
|
rnModel->item(row,8)->setText("");
|
||||||
|
rnModel->item(row,9)->setText("");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void PosTestWin::on_btnRdTest_clicked()
|
void PosTestWin::on_btnRdTest_clicked()
|
||||||
{
|
{
|
||||||
ui->gpbRdTest->setVisible(true);
|
ui->gpbRdTest->setVisible(true);
|
||||||
|
@ -273,3 +423,138 @@ void PosTestWin::view_signal_clicked()
|
||||||
ui->gpbRnSignal->setVisible(true);
|
ui->gpbRnSignal->setVisible(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void PosTestWin::on_btnBack_clicked()
|
||||||
|
{
|
||||||
|
ui->gpbRdTest->setVisible(false);
|
||||||
|
ui->gpbRnTest->setVisible(true);
|
||||||
|
ui->gpbRnSignal->setVisible(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
void PosTestWin::b1cBtn_clicked()
|
||||||
|
{
|
||||||
|
for(int i=2;i<=9;i++){
|
||||||
|
rnModel->item(2,i)->setText("");
|
||||||
|
}
|
||||||
|
ui->tableViewRn->selectRow(2);
|
||||||
|
enableOnlyOneViewBtn(2);
|
||||||
|
|
||||||
|
QString cmd = "$CCMSS,Z,1,B1,C,,,,*16\r\n";
|
||||||
|
emit writeDataSignal(cmd.toLatin1());
|
||||||
|
}
|
||||||
|
|
||||||
|
void PosTestWin::b3cBtn_clicked()
|
||||||
|
{
|
||||||
|
for(int i=2;i<=9;i++){
|
||||||
|
rnModel->item(3,i)->setText("");
|
||||||
|
}
|
||||||
|
ui->tableViewRn->selectRow(3);
|
||||||
|
enableOnlyOneViewBtn(3);
|
||||||
|
|
||||||
|
QString cmd = "$CCMSS,Z,1,B3,C,,,,*14\r\n";
|
||||||
|
emit writeDataSignal(cmd.toLatin1());
|
||||||
|
}
|
||||||
|
|
||||||
|
void PosTestWin::b1b3cBtn_clicked()
|
||||||
|
{
|
||||||
|
for(int i=2;i<=9;i++){
|
||||||
|
rnModel->item(4,i)->setText("");
|
||||||
|
}
|
||||||
|
ui->tableViewRn->selectRow(4);
|
||||||
|
enableOnlyOneViewBtn(4);
|
||||||
|
|
||||||
|
QString cmd = "$CCMSS,Z,1,B3,C,B1,C,,*24\r\n";
|
||||||
|
emit writeDataSignal(cmd.toLatin1());
|
||||||
|
}
|
||||||
|
|
||||||
|
void PosTestWin::gpsBtn_clicked()
|
||||||
|
{
|
||||||
|
for(int i=2;i<=9;i++){
|
||||||
|
rnModel->item(5,i)->setText("");
|
||||||
|
}
|
||||||
|
ui->tableViewRn->selectRow(5);
|
||||||
|
enableOnlyOneViewBtn(5);
|
||||||
|
|
||||||
|
QString cmd = "$CCMSS,Z,1,L1,C,,,,*18\r\n";
|
||||||
|
emit writeDataSignal(cmd.toLatin1());
|
||||||
|
}
|
||||||
|
|
||||||
|
void PosTestWin::b1pBtn_clicked()
|
||||||
|
{
|
||||||
|
for(int i=2;i<=9;i++){
|
||||||
|
rnModel->item(6,i)->setText("");
|
||||||
|
}
|
||||||
|
ui->tableViewRn->selectRow(6);
|
||||||
|
enableOnlyOneViewBtn(6);
|
||||||
|
|
||||||
|
QString cmd = "$CCMSS,Z,1,B1,P,,,,*05\r\n";
|
||||||
|
emit writeDataSignal(cmd.toLatin1());
|
||||||
|
}
|
||||||
|
|
||||||
|
void PosTestWin::b3pBtn_clicked()
|
||||||
|
{
|
||||||
|
for(int i=2;i<=9;i++){
|
||||||
|
rnModel->item(7,i)->setText("");
|
||||||
|
}
|
||||||
|
ui->tableViewRn->selectRow(7);
|
||||||
|
enableOnlyOneViewBtn(7);
|
||||||
|
|
||||||
|
QString cmd = "$CCMSS,Z,1,B3,P,,,,*07\r\n";
|
||||||
|
emit writeDataSignal(cmd.toLatin1());
|
||||||
|
}
|
||||||
|
|
||||||
|
void PosTestWin::compatibleBtn_clicked()
|
||||||
|
{
|
||||||
|
for(int i=2;i<=9;i++){
|
||||||
|
rnModel->item(8,i)->setText("");
|
||||||
|
}
|
||||||
|
ui->tableViewRn->selectRow(8);
|
||||||
|
enableOnlyOneViewBtn(8);
|
||||||
|
|
||||||
|
QString cmd = "$CCMSS,Z,1,B3,C,L1,C,,*2A\r\n";
|
||||||
|
emit writeDataSignal(cmd.toLatin1());
|
||||||
|
}
|
||||||
|
|
||||||
|
void PosTestWin::enableOnlyOneViewBtn(int row)
|
||||||
|
{
|
||||||
|
QPushButton *viewB1CBtn = qobject_cast<QPushButton *>(ui->tableViewRn->indexWidget(rnModel->index(2,10)));
|
||||||
|
QPushButton *viewB3CBtn = qobject_cast<QPushButton *>(ui->tableViewRn->indexWidget(rnModel->index(3,10)));
|
||||||
|
QPushButton *viewB1B3CBtn = qobject_cast<QPushButton *>(ui->tableViewRn->indexWidget(rnModel->index(4,10)));
|
||||||
|
QPushButton *viewGPSBtn = qobject_cast<QPushButton *>(ui->tableViewRn->indexWidget(rnModel->index(5,10)));
|
||||||
|
QPushButton *viewB1PBtn = qobject_cast<QPushButton *>(ui->tableViewRn->indexWidget(rnModel->index(6,10)));
|
||||||
|
QPushButton *viewB3PBtn = qobject_cast<QPushButton *>(ui->tableViewRn->indexWidget(rnModel->index(7,10)));
|
||||||
|
QPushButton *viewCompatibleBtn = qobject_cast<QPushButton *>(ui->tableViewRn->indexWidget(rnModel->index(8,10)));
|
||||||
|
viewB1CBtn->setEnabled(false);
|
||||||
|
viewB3CBtn->setEnabled(false);
|
||||||
|
viewB1B3CBtn->setEnabled(false);
|
||||||
|
viewGPSBtn->setEnabled(false);
|
||||||
|
viewB1PBtn->setEnabled(false);
|
||||||
|
viewB3PBtn->setEnabled(false);
|
||||||
|
viewCompatibleBtn->setEnabled(false);
|
||||||
|
switch (row) {
|
||||||
|
case 2:
|
||||||
|
viewB1CBtn->setEnabled(true);
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
viewB3CBtn->setEnabled(true);
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
viewB1B3CBtn->setEnabled(true);
|
||||||
|
break;
|
||||||
|
case 5:
|
||||||
|
viewGPSBtn->setEnabled(true);
|
||||||
|
break;
|
||||||
|
case 6:
|
||||||
|
viewB1PBtn->setEnabled(true);
|
||||||
|
break;
|
||||||
|
case 7:
|
||||||
|
viewB3PBtn->setEnabled(true);
|
||||||
|
break;
|
||||||
|
case 8:
|
||||||
|
viewCompatibleBtn->setEnabled(true);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,14 @@
|
||||||
|
#include "rdSignalPainter.h"
|
||||||
|
#include "ui_rdSignalPainter.h"
|
||||||
|
|
||||||
|
RdSignalPainter::RdSignalPainter(QWidget *parent)
|
||||||
|
: QWidget(parent)
|
||||||
|
, ui(new Ui::RdSignalPainter)
|
||||||
|
{
|
||||||
|
ui->setupUi(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
RdSignalPainter::~RdSignalPainter()
|
||||||
|
{
|
||||||
|
delete ui;
|
||||||
|
}
|
|
@ -1,13 +1,20 @@
|
||||||
#include "rnSignalPainter.h"
|
#include "rnSignalPainter.h"
|
||||||
#include "ui_rnSignalPainter.h"
|
#include "ui_rnSignalPainter.h"
|
||||||
#include "globalParams.h"
|
#include "globalParams.h"
|
||||||
|
#include "utils.h"
|
||||||
#include <QPainter>
|
#include <QPainter>
|
||||||
|
#include <QDebug>
|
||||||
|
|
||||||
RnSignalPainter::RnSignalPainter(QWidget *parent)
|
RnSignalPainter::RnSignalPainter(QWidget *parent)
|
||||||
: QWidget(parent)
|
: QWidget(parent)
|
||||||
, ui(new Ui::RnSignalPainter)
|
, ui(new Ui::RnSignalPainter)
|
||||||
{
|
{
|
||||||
ui->setupUi(this);
|
ui->setupUi(this);
|
||||||
|
timerSnrTimeout = new QTimer(this);
|
||||||
|
timerSnrTimeout->stop();
|
||||||
|
timerSnrTimeout->setInterval(2000);
|
||||||
|
connect(timerSnrTimeout,SIGNAL(timeout()),this,SLOT(timerSnrTimeoutHandle()),Qt::QueuedConnection);
|
||||||
|
timerSnrTimeout->start();
|
||||||
}
|
}
|
||||||
|
|
||||||
RnSignalPainter::~RnSignalPainter()
|
RnSignalPainter::~RnSignalPainter()
|
||||||
|
@ -15,6 +22,62 @@ RnSignalPainter::~RnSignalPainter()
|
||||||
delete ui;
|
delete ui;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void RnSignalPainter::recvGsvHandle(const QString &cmd)
|
||||||
|
{
|
||||||
|
QString sys;
|
||||||
|
sys = cmd.mid(1,2);
|
||||||
|
if(sys=="GB"){
|
||||||
|
sys = "BD";
|
||||||
|
}
|
||||||
|
QStringList paras = extractParaList(cmd);
|
||||||
|
if(paras.size()<3){
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
QString feq = "";
|
||||||
|
if(paras.size()%4==0){
|
||||||
|
feq = paras[paras.size()-1];
|
||||||
|
}
|
||||||
|
|
||||||
|
for(int i=0;i<(paras.size()-3)/4;i++){
|
||||||
|
QString satNum = paras[3+i*4].trimmed();
|
||||||
|
QString cnr = paras[3+i*4+3].trimmed();
|
||||||
|
|
||||||
|
if(satNum.isEmpty() || cnr.isEmpty()){
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
QPair<QString,QString> key(satNum,feq);
|
||||||
|
if(sys=="GP"){
|
||||||
|
gpsSnrMap[key] = cnr;
|
||||||
|
gpsTimeoutCountMap[key] = 0;
|
||||||
|
}else if(sys=="BD"){
|
||||||
|
bdSnrMap[key] = cnr;
|
||||||
|
bdsTimeoutCountMap[key] = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
update();
|
||||||
|
}
|
||||||
|
|
||||||
|
void RnSignalPainter::timerSnrTimeoutHandle()
|
||||||
|
{
|
||||||
|
for(QPair<QString,QString> key:gpsTimeoutCountMap.keys()){
|
||||||
|
gpsTimeoutCountMap[key]++;
|
||||||
|
if(gpsTimeoutCountMap[key]>=2){
|
||||||
|
gpsSnrMap.remove(key);
|
||||||
|
gpsTimeoutCountMap.remove(key);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for(QPair<QString,QString> key:bdsTimeoutCountMap.keys()){
|
||||||
|
bdsTimeoutCountMap[key]++;
|
||||||
|
if(bdsTimeoutCountMap[key]>=2){
|
||||||
|
bdSnrMap.remove(key);
|
||||||
|
bdsTimeoutCountMap.remove(key);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
update();
|
||||||
|
}
|
||||||
|
|
||||||
void RnSignalPainter::paintEvent(QPaintEvent *event)
|
void RnSignalPainter::paintEvent(QPaintEvent *event)
|
||||||
{
|
{
|
||||||
QPainter painter(this);
|
QPainter painter(this);
|
||||||
|
@ -25,20 +88,116 @@ void RnSignalPainter::paintEvent(QPaintEvent *event)
|
||||||
pen.setColor(Qt::black);
|
pen.setColor(Qt::black);
|
||||||
pen.setStyle(Qt::SolidLine);
|
pen.setStyle(Qt::SolidLine);
|
||||||
painter.setPen(pen);
|
painter.setPen(pen);
|
||||||
|
QBrush brush;
|
||||||
|
brush.setStyle(Qt::SolidPattern);
|
||||||
|
|
||||||
int H=this->height(); //绘图区高度
|
int H = this->height(); //绘图区高度
|
||||||
|
int W = this->width();
|
||||||
|
|
||||||
QFontMetrics fontMetrics = painter.fontMetrics();
|
QFontMetrics fontMetrics = painter.fontMetrics();
|
||||||
int fontHeight = fontMetrics.height();
|
int fontHeight = fontMetrics.height();
|
||||||
int margin = 5;
|
int margin = 5;
|
||||||
int spacing = 5;
|
int spacing = 5;
|
||||||
|
|
||||||
painter.drawText(margin,margin+fontMetrics.ascent(),QString("当前定位模式:%1").arg(globalParams::curRnPosMode));
|
QString posMode;
|
||||||
|
if(globalParams::curRnPosMode=="B3C"){
|
||||||
|
posMode = "B3频点C码定位";
|
||||||
|
}else if(globalParams::curRnPosMode=="B3P"){
|
||||||
|
posMode = "B3频点P码定位";
|
||||||
|
}else if(globalParams::curRnPosMode=="B1C+B3C"){
|
||||||
|
posMode = "B1+B3频点C码定位";
|
||||||
|
}else if(globalParams::curRnPosMode=="B1P+B3P"){
|
||||||
|
posMode = "B1+B3频点P码定位";
|
||||||
|
}else if(globalParams::curRnPosMode=="B1C"){
|
||||||
|
posMode = "B1频点C码定位";
|
||||||
|
}else if(globalParams::curRnPosMode=="B1P"){
|
||||||
|
posMode = "B1频点P码定位";
|
||||||
|
}else if(globalParams::curRnPosMode=="L1C"){
|
||||||
|
posMode = "GPS频点C码定位";
|
||||||
|
}else if(globalParams::curRnPosMode=="B3C+L1C"){
|
||||||
|
posMode = "兼容定位";
|
||||||
|
}else{
|
||||||
|
posMode = globalParams::curRnPosMode;
|
||||||
|
}
|
||||||
|
painter.drawText(margin,margin+fontMetrics.ascent(),QString("当前定位模式:%1").arg(posMode));
|
||||||
|
|
||||||
|
|
||||||
|
//BD坐标轴
|
||||||
|
int yb0 = (H-margin*2)/2-margin-fontMetrics.height();
|
||||||
|
QString tmp = "北斗卫星信号";
|
||||||
|
int xb0 = margin*2 + fontMetrics.horizontalAdvance(tmp);
|
||||||
|
int hb = yb0 - margin*2 - fontMetrics.height()*2;
|
||||||
|
int wb = W - margin*2 - fontMetrics.horizontalAdvance(tmp);
|
||||||
|
painter.drawText(margin,yb0-hb/2,tmp);
|
||||||
|
painter.drawLine(xb0,yb0,xb0+wb,yb0);
|
||||||
|
painter.drawLine(xb0,yb0,xb0,yb0-hb);
|
||||||
|
//GP坐标轴
|
||||||
|
int yg0 = H-margin-fontMetrics.height();
|
||||||
|
tmp = "GPS卫星信号";
|
||||||
|
int xg0 = xb0;
|
||||||
|
int hg = hb;
|
||||||
|
int wg = wb;
|
||||||
|
painter.drawText(margin,yg0-hg/2,tmp);
|
||||||
|
painter.drawLine(xg0,yg0,xg0+wg,yg0);
|
||||||
|
painter.drawLine(xg0,yg0,xg0,yg0-hg);
|
||||||
|
|
||||||
//坐标轴
|
int sw = fontMetrics.horizontalAdvance("00.0");
|
||||||
|
|
||||||
|
//BD信号
|
||||||
|
int xb = xb0+margin;
|
||||||
|
for(const QPair<QString,QString> &key:bdSnrMap.keys()){
|
||||||
|
double strength = bdSnrMap.value(key).toDouble();
|
||||||
|
QString satNum = key.first;
|
||||||
|
QString feq = key.second;
|
||||||
|
int red = 255 - feq.toInt(nullptr,16)*10;
|
||||||
|
QColor color = QColor(red,0,0);
|
||||||
|
brush.setColor(color);
|
||||||
|
painter.setBrush(brush);
|
||||||
|
|
||||||
|
xb = xb + margin;
|
||||||
|
|
||||||
|
int w0 = fontMetrics.horizontalAdvance(satNum);//宽度
|
||||||
|
painter.drawText(xb+(sw-w0)/2,yb0+fontMetrics.ascent(),satNum);
|
||||||
|
|
||||||
|
//int h = std::min(strength,50.0);
|
||||||
|
int h = std::min(hb/50.0*strength,hb*1.0);
|
||||||
|
int y = yb0-h;
|
||||||
|
QRect rect(xb,y,sw,h);
|
||||||
|
painter.drawRect(rect);
|
||||||
|
|
||||||
|
QString str = QString("%1").arg(strength,0,'g',3);
|
||||||
|
int w1 = fontMetrics.horizontalAdvance(str);//宽度
|
||||||
|
painter.drawText(xb+(sw-w1)/2,y-margin/2-fontMetrics.descent(),str);
|
||||||
|
xb = xb + sw;
|
||||||
|
}
|
||||||
|
|
||||||
|
//GPS信号
|
||||||
|
int xg = xb0+margin;
|
||||||
|
for(const QPair<QString,QString> &key:gpsSnrMap.keys()){
|
||||||
|
double strength = gpsSnrMap.value(key).toDouble();
|
||||||
|
QString satNum = key.first;
|
||||||
|
QString feq = key.second;
|
||||||
|
int green = 255 - feq.toInt(nullptr,16)*10;
|
||||||
|
QColor color = QColor(0,green,0);
|
||||||
|
brush.setColor(color);
|
||||||
|
painter.setBrush(brush);
|
||||||
|
|
||||||
|
xg = xg + margin;
|
||||||
|
|
||||||
|
int w0 = fontMetrics.horizontalAdvance(satNum);//宽度
|
||||||
|
painter.drawText(xg+(sw-w0)/2,yg0+fontMetrics.ascent(),satNum);
|
||||||
|
|
||||||
|
//int h = std::min(strength,50.0);
|
||||||
|
int h = std::min(hb/50.0*strength,hg*1.0);
|
||||||
|
int y = yg0-h;
|
||||||
|
QRect rect(xg,y,sw,h);
|
||||||
|
painter.drawRect(rect);
|
||||||
|
|
||||||
|
QString str = QString("%1").arg(strength,0,'g',3);
|
||||||
|
int w1 = fontMetrics.horizontalAdvance(str);//宽度
|
||||||
|
painter.drawText(xg+(sw-w1)/2,y-margin/2-fontMetrics.descent(),str);
|
||||||
|
xg = xg + sw;
|
||||||
|
}
|
||||||
|
|
||||||
return QWidget::paintEvent(event);
|
return QWidget::paintEvent(event);
|
||||||
}
|
}
|
||||||
|
|
|
@ -92,3 +92,11 @@ QStringList extractParaList(const QString &msg)
|
||||||
}
|
}
|
||||||
return paraList;
|
return paraList;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
double degreeSecond2degree(double degreeSecond)
|
||||||
|
{
|
||||||
|
double degree = floor(degreeSecond/100);
|
||||||
|
double second = degreeSecond - degree*100;
|
||||||
|
double result = degree + second/60;
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
|
@ -27,6 +27,9 @@ signals:
|
||||||
void recvIidSignal(const QString &cmd);
|
void recvIidSignal(const QString &cmd);
|
||||||
void recvIcmSignal(const QString &cmd);
|
void recvIcmSignal(const QString &cmd);
|
||||||
void recvPmuSignal(const QString &cmd);
|
void recvPmuSignal(const QString &cmd);
|
||||||
|
void recvBidSignal(const QString &cmd);
|
||||||
|
void recvGsvSignal(const QString &cmd);
|
||||||
|
void recvGgaSignal(const QString &cmd);
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
void receiverSerialDataHandle(const QByteArray &data);
|
void receiverSerialDataHandle(const QByteArray &data);
|
||||||
|
|
|
@ -17,10 +17,24 @@ public:
|
||||||
explicit PosTestWin(QWidget *parent = nullptr);
|
explicit PosTestWin(QWidget *parent = nullptr);
|
||||||
~PosTestWin();
|
~PosTestWin();
|
||||||
|
|
||||||
|
signals:
|
||||||
|
void writeDataSignal(const QByteArray &buf);
|
||||||
|
void recvGsvSignal(const QString &cmd);
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
|
void recvBidHandle(const QString &cmd);
|
||||||
|
void recvGgaHandle(const QString &cmd);
|
||||||
void on_btnRdTest_clicked();
|
void on_btnRdTest_clicked();
|
||||||
void on_btnRnTest_clicked();
|
void on_btnRnTest_clicked();
|
||||||
|
void on_btnBack_clicked();
|
||||||
void view_signal_clicked();
|
void view_signal_clicked();
|
||||||
|
void b1cBtn_clicked();
|
||||||
|
void b3cBtn_clicked();
|
||||||
|
void b1b3cBtn_clicked();
|
||||||
|
void gpsBtn_clicked();
|
||||||
|
void b1pBtn_clicked();
|
||||||
|
void b3pBtn_clicked();
|
||||||
|
void compatibleBtn_clicked();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Ui::PosTestWin *ui;
|
Ui::PosTestWin *ui;
|
||||||
|
@ -28,6 +42,7 @@ private:
|
||||||
QItemSelectionModel *rnSelect;
|
QItemSelectionModel *rnSelect;
|
||||||
QStandardItemModel *rdModel;
|
QStandardItemModel *rdModel;
|
||||||
QItemSelectionModel *rdSelect;
|
QItemSelectionModel *rdSelect;
|
||||||
|
void enableOnlyOneViewBtn(int row);
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // POSTESTWIN_H
|
#endif // POSTESTWIN_H
|
||||||
|
|
|
@ -0,0 +1,22 @@
|
||||||
|
#ifndef RDSIGNALPAINTER_H
|
||||||
|
#define RDSIGNALPAINTER_H
|
||||||
|
|
||||||
|
#include <QWidget>
|
||||||
|
|
||||||
|
namespace Ui {
|
||||||
|
class RdSignalPainter;
|
||||||
|
}
|
||||||
|
|
||||||
|
class RdSignalPainter : public QWidget
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
|
||||||
|
public:
|
||||||
|
explicit RdSignalPainter(QWidget *parent = nullptr);
|
||||||
|
~RdSignalPainter();
|
||||||
|
|
||||||
|
private:
|
||||||
|
Ui::RdSignalPainter *ui;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // RDSIGNALPAINTER_H
|
|
@ -2,6 +2,8 @@
|
||||||
#define RNSIGNALPAINTER_H
|
#define RNSIGNALPAINTER_H
|
||||||
|
|
||||||
#include <QWidget>
|
#include <QWidget>
|
||||||
|
#include <QMap>
|
||||||
|
#include <QTimer>
|
||||||
|
|
||||||
namespace Ui {
|
namespace Ui {
|
||||||
class RnSignalPainter;
|
class RnSignalPainter;
|
||||||
|
@ -15,11 +17,20 @@ public:
|
||||||
explicit RnSignalPainter(QWidget *parent = nullptr);
|
explicit RnSignalPainter(QWidget *parent = nullptr);
|
||||||
~RnSignalPainter();
|
~RnSignalPainter();
|
||||||
|
|
||||||
|
private slots:
|
||||||
|
void recvGsvHandle(const QString &cmd);
|
||||||
|
void timerSnrTimeoutHandle();
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
void paintEvent(QPaintEvent *event) Q_DECL_OVERRIDE;
|
void paintEvent(QPaintEvent *event) Q_DECL_OVERRIDE;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Ui::RnSignalPainter *ui;
|
Ui::RnSignalPainter *ui;
|
||||||
|
QTimer *timerSnrTimeout;
|
||||||
|
QMap<QPair<QString,QString>,QString> bdSnrMap;
|
||||||
|
QMap<QPair<QString,QString>,QString> gpsSnrMap;
|
||||||
|
QMap<QPair<QString,QString>,int> gpsTimeoutCountMap;
|
||||||
|
QMap<QPair<QString,QString>,int> bdsTimeoutCountMap;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // RNSIGNALPAINTER_H
|
#endif // RNSIGNALPAINTER_H
|
||||||
|
|
|
@ -9,4 +9,6 @@ void base64_decode(const unsigned char *code,int code_len,unsigned char *res,int
|
||||||
|
|
||||||
QStringList extractParaList(const QString &msg);
|
QStringList extractParaList(const QString &msg);
|
||||||
|
|
||||||
|
double degreeSecond2degree(double degreeSecond);
|
||||||
|
|
||||||
#endif // UTILS_H
|
#endif // UTILS_H
|
||||||
|
|
|
@ -25,6 +25,32 @@
|
||||||
<layout class="QGridLayout" name="gridLayout">
|
<layout class="QGridLayout" name="gridLayout">
|
||||||
<item row="0" column="0">
|
<item row="0" column="0">
|
||||||
<widget class="QTableView" name="tableViewRn">
|
<widget class="QTableView" name="tableViewRn">
|
||||||
|
<property name="palette">
|
||||||
|
<palette>
|
||||||
|
<active/>
|
||||||
|
<inactive>
|
||||||
|
<colorrole role="Highlight">
|
||||||
|
<brush brushstyle="SolidPattern">
|
||||||
|
<color alpha="255">
|
||||||
|
<red>0</red>
|
||||||
|
<green>120</green>
|
||||||
|
<blue>215</blue>
|
||||||
|
</color>
|
||||||
|
</brush>
|
||||||
|
</colorrole>
|
||||||
|
<colorrole role="HighlightedText">
|
||||||
|
<brush brushstyle="SolidPattern">
|
||||||
|
<color alpha="255">
|
||||||
|
<red>255</red>
|
||||||
|
<green>255</green>
|
||||||
|
<blue>255</blue>
|
||||||
|
</color>
|
||||||
|
</brush>
|
||||||
|
</colorrole>
|
||||||
|
</inactive>
|
||||||
|
<disabled/>
|
||||||
|
</palette>
|
||||||
|
</property>
|
||||||
<property name="styleSheet">
|
<property name="styleSheet">
|
||||||
<string notr="true">QTableView
|
<string notr="true">QTableView
|
||||||
{
|
{
|
||||||
|
@ -81,6 +107,9 @@
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QPushButton" name="btnRnAutoTest">
|
<widget class="QPushButton" name="btnRnAutoTest">
|
||||||
|
<property name="cursor">
|
||||||
|
<cursorShape>PointingHandCursor</cursorShape>
|
||||||
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>自动测试</string>
|
<string>自动测试</string>
|
||||||
</property>
|
</property>
|
||||||
|
@ -104,6 +133,9 @@
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QPushButton" name="btnSave">
|
<widget class="QPushButton" name="btnSave">
|
||||||
|
<property name="cursor">
|
||||||
|
<cursorShape>PointingHandCursor</cursorShape>
|
||||||
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>保存</string>
|
<string>保存</string>
|
||||||
</property>
|
</property>
|
||||||
|
@ -127,6 +159,9 @@
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QPushButton" name="btnRdTest">
|
<widget class="QPushButton" name="btnRdTest">
|
||||||
|
<property name="cursor">
|
||||||
|
<cursorShape>PointingHandCursor</cursorShape>
|
||||||
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>RDSS定位测试</string>
|
<string>RDSS定位测试</string>
|
||||||
</property>
|
</property>
|
||||||
|
@ -164,7 +199,7 @@
|
||||||
</property>
|
</property>
|
||||||
<layout class="QVBoxLayout" name="verticalLayout_2">
|
<layout class="QVBoxLayout" name="verticalLayout_2">
|
||||||
<item>
|
<item>
|
||||||
<widget class="RnSignalPainter" name="widget" native="true">
|
<widget class="RnSignalPainter" name="rnSignalPainterWdg" native="true">
|
||||||
<property name="minimumSize">
|
<property name="minimumSize">
|
||||||
<size>
|
<size>
|
||||||
<width>0</width>
|
<width>0</width>
|
||||||
|
@ -173,6 +208,66 @@
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QGroupBox" name="groupBox_4">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="title">
|
||||||
|
<string/>
|
||||||
|
</property>
|
||||||
|
<layout class="QHBoxLayout" name="horizontalLayout_4">
|
||||||
|
<property name="topMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="bottomMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<item>
|
||||||
|
<spacer name="horizontalSpacer_8">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Horizontal</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>174</width>
|
||||||
|
<height>20</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QPushButton" name="btnBack">
|
||||||
|
<property name="cursor">
|
||||||
|
<cursorShape>PointingHandCursor</cursorShape>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>返回</string>
|
||||||
|
</property>
|
||||||
|
<property name="default">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<spacer name="horizontalSpacer_9">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Horizontal</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>40</width>
|
||||||
|
<height>20</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
@ -184,11 +279,11 @@
|
||||||
<property name="title">
|
<property name="title">
|
||||||
<string/>
|
<string/>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout" stretch="1,2">
|
<layout class="QGridLayout" name="gridLayout_2" columnstretch="1,2">
|
||||||
<item>
|
<item row="0" column="0">
|
||||||
<widget class="QWidget" name="widget_2" native="true"/>
|
<widget class="QWidget" name="rdSignalPainterWdg" native="true"/>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item row="0" column="1">
|
||||||
<widget class="QGroupBox" name="groupBox_2">
|
<widget class="QGroupBox" name="groupBox_2">
|
||||||
<property name="styleSheet">
|
<property name="styleSheet">
|
||||||
<string notr="true">QGroupBox{border:none;}</string>
|
<string notr="true">QGroupBox{border:none;}</string>
|
||||||
|
@ -202,6 +297,9 @@
|
||||||
<property name="orientation">
|
<property name="orientation">
|
||||||
<enum>Qt::Vertical</enum>
|
<enum>Qt::Vertical</enum>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="sizeType">
|
||||||
|
<enum>QSizePolicy::Expanding</enum>
|
||||||
|
</property>
|
||||||
<property name="sizeHint" stdset="0">
|
<property name="sizeHint" stdset="0">
|
||||||
<size>
|
<size>
|
||||||
<width>20</width>
|
<width>20</width>
|
||||||
|
@ -251,7 +349,10 @@
|
||||||
</property>
|
</property>
|
||||||
</spacer>
|
</spacer>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="0" colspan="2">
|
||||||
<widget class="QGroupBox" name="groupBox_3">
|
<widget class="QGroupBox" name="groupBox_3">
|
||||||
<property name="title">
|
<property name="title">
|
||||||
<string/>
|
<string/>
|
||||||
|
@ -278,6 +379,9 @@
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QPushButton" name="btnRdAutoTest">
|
<widget class="QPushButton" name="btnRdAutoTest">
|
||||||
|
<property name="cursor">
|
||||||
|
<cursorShape>PointingHandCursor</cursorShape>
|
||||||
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>自动测试</string>
|
<string>自动测试</string>
|
||||||
</property>
|
</property>
|
||||||
|
@ -301,6 +405,9 @@
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QPushButton" name="btnRnTest">
|
<widget class="QPushButton" name="btnRnTest">
|
||||||
|
<property name="cursor">
|
||||||
|
<cursorShape>PointingHandCursor</cursorShape>
|
||||||
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>RNSS定位测试</string>
|
<string>RNSS定位测试</string>
|
||||||
</property>
|
</property>
|
||||||
|
@ -325,22 +432,6 @@
|
||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
|
||||||
<spacer name="verticalSpacer_4">
|
|
||||||
<property name="orientation">
|
|
||||||
<enum>Qt::Vertical</enum>
|
|
||||||
</property>
|
|
||||||
<property name="sizeHint" stdset="0">
|
|
||||||
<size>
|
|
||||||
<width>20</width>
|
|
||||||
<height>40</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
</spacer>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
|
|
@ -0,0 +1,19 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<ui version="4.0">
|
||||||
|
<class>RdSignalPainter</class>
|
||||||
|
<widget class="QWidget" name="RdSignalPainter">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>0</x>
|
||||||
|
<y>0</y>
|
||||||
|
<width>400</width>
|
||||||
|
<height>300</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="windowTitle">
|
||||||
|
<string>Form</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
<resources/>
|
||||||
|
<connections/>
|
||||||
|
</ui>
|
Loading…
Reference in New Issue