From 9b5e481c9e130c4bdf1a5f9bd0634c5857c54563 Mon Sep 17 00:00:00 2001 From: 168492376 <168492376@qq.com> Date: Sat, 5 Jul 2025 15:43:44 +0800 Subject: [PATCH] add status test --- BDTest.pro | 5 +- src/cpp/globalParams.cpp | 1 + src/cpp/mainwindow.cpp | 44 ++++++++ src/cpp/msgInputWin.cpp | 1 + src/cpp/posTestWin.cpp | 16 ++- src/cpp/rnSignalPainter.cpp | 44 ++++++++ src/cpp/serialport.cpp | 6 +- src/cpp/statusTestWin.cpp | 194 ++++++++++++++++++++++++++++++++-- src/cpp/utils.cpp | 12 +++ src/include/globalParams.h | 1 + src/include/mainwindow.h | 6 ++ src/include/posTestWin.h | 2 +- src/include/rnSignalPainter.h | 25 +++++ src/include/statusTestWin.h | 17 +++ src/include/utils.h | 4 + src/ui/interfaceTestWin.ui | 6 ++ src/ui/mainwindow.ui | 2 +- src/ui/posTestWin.ui | 6 +- src/ui/rnSignalPainter.ui | 19 ++++ 19 files changed, 390 insertions(+), 21 deletions(-) create mode 100644 src/cpp/rnSignalPainter.cpp create mode 100644 src/include/rnSignalPainter.h create mode 100644 src/ui/rnSignalPainter.ui diff --git a/BDTest.pro b/BDTest.pro index 5c9b4f8..728c0df 100644 --- a/BDTest.pro +++ b/BDTest.pro @@ -31,7 +31,8 @@ SOURCES += \ src/cpp/msgInputWin.cpp \ src/cpp/statusTestWin.cpp \ src/cpp/precisionTestWin.cpp \ - src/cpp/testThread.cpp + src/cpp/testThread.cpp \ + src/cpp/rnSignalPainter.cpp HEADERS += \ src/include/posTestWin.h \ @@ -42,6 +43,7 @@ HEADERS += \ src/include/msgInputWin.h \ src/include/precisionTestWin.h \ src/include/qcustomplot.h \ + src/include/rnSignalPainter.h \ src/include/serialport.h \ src/include/sqlitedb.h \ src/include/statusTestWin.h \ @@ -50,6 +52,7 @@ HEADERS += \ src/include/utils.h FORMS += \ + src/ui/rnSignalPainter.ui \ src/ui/precisionTestWin.ui \ src/ui/posTestWin.ui \ src/ui/interfaceTestWin.ui \ diff --git a/src/cpp/globalParams.cpp b/src/cpp/globalParams.cpp index 1b13f6a..9e338dc 100644 --- a/src/cpp/globalParams.cpp +++ b/src/cpp/globalParams.cpp @@ -11,4 +11,5 @@ namespace globalParams QString classGroup; QString bdSN; QString marker; + QString curRnPosMode; } diff --git a/src/cpp/mainwindow.cpp b/src/cpp/mainwindow.cpp index 330f12a..798049c 100644 --- a/src/cpp/mainwindow.cpp +++ b/src/cpp/mainwindow.cpp @@ -7,6 +7,7 @@ #include #include #include +#include #include MainWindow::MainWindow(QWidget *parent) @@ -117,6 +118,15 @@ MainWindow::MainWindow(QWidget *parent) connect(&TestThread::getInstance(),SIGNAL(writeDataSignal(QByteArray)),this,SIGNAL(writeDataSignal(QByteArray)),Qt::QueuedConnection); connect(&TestThread::getInstance(),SIGNAL(curTestInfoSignal(QString,int)),this,SLOT(curTestInfoHandle(QString,int)),Qt::QueuedConnection); + + //状态检测 + connect(ui->statusTestWdg,SIGNAL(writeDataSignal(QByteArray)),this,SIGNAL(writeDataSignal(QByteArray)),Qt::QueuedConnection); + connect(this,SIGNAL(recvSbxSignal(QString)),ui->statusTestWdg,SLOT(recvSbxHandle(QString)),Qt::QueuedConnection); + connect(this,SIGNAL(recvIciSignal(QString)),ui->statusTestWdg,SLOT(recvIciHandle(QString)),Qt::QueuedConnection); + connect(this,SIGNAL(recvPidSignal(QString)),ui->statusTestWdg,SLOT(recvPidHandle(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(recvPmuSignal(QString)),ui->statusTestWdg,SLOT(recvPmuHandle(QString)),Qt::QueuedConnection); } MainWindow::~MainWindow() @@ -137,6 +147,40 @@ void MainWindow::receiverSerialDataHandle(const QByteArray &data) qDebug()<<"new data can't append to buf"; return; } + QStringList lines; + int start = 0; + for(int i=0;i4096){ + leftData = leftData.right(4096); + } + foreach (const QString &line, lines) { + QRegularExpression re("\\$[^\\r\\n\\*\\$]+\\*[A-Z0-9]{1,2}\\r{0,1}\\n"); + QRegularExpressionMatch match = re.match(line); + if(match.hasMatch()){ + QString cmd = match.captured(0); + if(cmd.startsWith("$BDSBX")){ + emit recvSbxSignal(cmd); + }else if(cmd.startsWith("$BDICI")){ + emit recvIciSignal(cmd); + }else if(cmd.startsWith("$BDPID")){ + emit recvPidSignal(cmd); + }else if(cmd.startsWith("$BDIID")){ + emit recvIidSignal(cmd); + }else if(cmd.startsWith("$BDICM")){ + emit recvIcmSignal(cmd); + }else if(cmd.startsWith("$BDPMU")){ + emit recvPmuSignal(cmd); + } + } + } + } void MainWindow::writeBytesHandle(int bytes) diff --git a/src/cpp/msgInputWin.cpp b/src/cpp/msgInputWin.cpp index f35caf3..e85b086 100644 --- a/src/cpp/msgInputWin.cpp +++ b/src/cpp/msgInputWin.cpp @@ -55,6 +55,7 @@ MsgInputWin::MsgInputWin(QWidget *parent) aItemList.append(aItem); msgModel->insertRow(msgModel->rowCount(),aItemList); QComboBox *carType = new QComboBox(); + carType->setCursor(Qt::PointingHandCursor); carType->setEditable(true); ui->tableView->setIndexWidget(msgModel->index(msgModel->rowCount()-1,1),carType); diff --git a/src/cpp/posTestWin.cpp b/src/cpp/posTestWin.cpp index 8522a77..cedee05 100644 --- a/src/cpp/posTestWin.cpp +++ b/src/cpp/posTestWin.cpp @@ -157,44 +157,49 @@ PosTestWin::PosTestWin(QWidget *parent) viewB1CBtn->setFont(smallFont); viewB1CBtn->setDefault(true); ui->tableViewRn->setIndexWidget(rnModel->index(2,10),viewB1CBtn); + connect(viewB1CBtn,SIGNAL(clicked()),this,SLOT(view_signal_clicked()),Qt::QueuedConnection); QPushButton *viewB3CBtn = new QPushButton("查看"); viewB3CBtn->setSizePolicy(QSizePolicy::Preferred,QSizePolicy::Preferred); viewB3CBtn->setFont(smallFont); viewB3CBtn->setDefault(true); ui->tableViewRn->setIndexWidget(rnModel->index(3,10),viewB3CBtn); + connect(viewB3CBtn,SIGNAL(clicked()),this,SLOT(view_signal_clicked()),Qt::QueuedConnection); QPushButton *viewB1B3CBtn = new QPushButton("查看"); viewB1B3CBtn->setSizePolicy(QSizePolicy::Preferred,QSizePolicy::Preferred); viewB1B3CBtn->setFont(smallFont); viewB1B3CBtn->setDefault(true); ui->tableViewRn->setIndexWidget(rnModel->index(4,10),viewB1B3CBtn); + connect(viewB1B3CBtn,SIGNAL(clicked()),this,SLOT(view_signal_clicked()),Qt::QueuedConnection); QPushButton *viewGPSBtn = new QPushButton("查看"); viewGPSBtn->setSizePolicy(QSizePolicy::Preferred,QSizePolicy::Preferred); viewGPSBtn->setFont(smallFont); viewGPSBtn->setDefault(true); ui->tableViewRn->setIndexWidget(rnModel->index(5,10),viewGPSBtn); + connect(viewGPSBtn,SIGNAL(clicked()),this,SLOT(view_signal_clicked()),Qt::QueuedConnection); QPushButton *viewB1PBtn = new QPushButton("查看"); viewB1PBtn->setSizePolicy(QSizePolicy::Preferred,QSizePolicy::Preferred); viewB1PBtn->setFont(smallFont); viewB1PBtn->setDefault(true); ui->tableViewRn->setIndexWidget(rnModel->index(6,10),viewB1PBtn); + connect(viewB1PBtn,SIGNAL(clicked()),this,SLOT(view_signal_clicked()),Qt::QueuedConnection); QPushButton *viewB3PBtn = new QPushButton("查看"); viewB3PBtn->setSizePolicy(QSizePolicy::Preferred,QSizePolicy::Preferred); viewB3PBtn->setFont(smallFont); viewB3PBtn->setDefault(true); ui->tableViewRn->setIndexWidget(rnModel->index(7,10),viewB3PBtn); + connect(viewB3PBtn,SIGNAL(clicked()),this,SLOT(view_signal_clicked()),Qt::QueuedConnection); QPushButton *viewCompatibleBtn = new QPushButton("查看"); viewCompatibleBtn->setSizePolicy(QSizePolicy::Preferred,QSizePolicy::Preferred); viewCompatibleBtn->setFont(smallFont); viewCompatibleBtn->setDefault(true); ui->tableViewRn->setIndexWidget(rnModel->index(8,10),viewCompatibleBtn); - - + connect(viewCompatibleBtn,SIGNAL(clicked()),this,SLOT(view_signal_clicked()),Qt::QueuedConnection); rdModel->item(0,0)->setText("定位模式"); rdModel->item(0,0)->setFont(font); @@ -261,3 +266,10 @@ void PosTestWin::on_btnRnTest_clicked() ui->gpbRnSignal->setVisible(false); } +void PosTestWin::view_signal_clicked() +{ + ui->gpbRdTest->setVisible(false); + ui->gpbRnTest->setVisible(false); + ui->gpbRnSignal->setVisible(true); +} + diff --git a/src/cpp/rnSignalPainter.cpp b/src/cpp/rnSignalPainter.cpp new file mode 100644 index 0000000..e35ef1a --- /dev/null +++ b/src/cpp/rnSignalPainter.cpp @@ -0,0 +1,44 @@ +#include "rnSignalPainter.h" +#include "ui_rnSignalPainter.h" +#include "globalParams.h" +#include + +RnSignalPainter::RnSignalPainter(QWidget *parent) + : QWidget(parent) + , ui(new Ui::RnSignalPainter) +{ + ui->setupUi(this); +} + +RnSignalPainter::~RnSignalPainter() +{ + delete ui; +} + +void RnSignalPainter::paintEvent(QPaintEvent *event) +{ + QPainter painter(this); + painter.setRenderHint(QPainter::Antialiasing); + painter.setRenderHint(QPainter::TextAntialiasing); + QPen pen; + pen.setWidth(1); + pen.setColor(Qt::black); + pen.setStyle(Qt::SolidLine); + painter.setPen(pen); + + int H=this->height(); //绘图区高度 + + QFontMetrics fontMetrics = painter.fontMetrics(); + int fontHeight = fontMetrics.height(); + int margin = 5; + int spacing = 5; + + painter.drawText(margin,margin+fontMetrics.ascent(),QString("当前定位模式:%1").arg(globalParams::curRnPosMode)); + + + + //坐标轴 + + + return QWidget::paintEvent(event); +} diff --git a/src/cpp/serialport.cpp b/src/cpp/serialport.cpp index b720877..3f799bd 100644 --- a/src/cpp/serialport.cpp +++ b/src/cpp/serialport.cpp @@ -14,9 +14,9 @@ SerialPort::~SerialPort() { serial->close(); serial->deleteLater(); - thread->quit(); - thread->wait(); - thread->deleteLater(); + //thread->quit(); + //thread->wait(); + //thread->deleteLater(); } bool SerialPort::open() diff --git a/src/cpp/statusTestWin.cpp b/src/cpp/statusTestWin.cpp index 6db633e..958242d 100644 --- a/src/cpp/statusTestWin.cpp +++ b/src/cpp/statusTestWin.cpp @@ -1,7 +1,9 @@ #include "statusTestWin.h" #include "ui_statusTestWin.h" +#include "utils.h" #include #include +#include StatusTestWin::StatusTestWin(QWidget *parent) : QWidget(parent) @@ -32,11 +34,14 @@ StatusTestWin::StatusTestWin(QWidget *parent) aItemList.append(aItem); aItem = new QStandardItem(""); aItem->setTextAlignment(Qt::AlignCenter); + aItemList.append(aItem); statusModel->insertRow(statusModel->rowCount(),aItemList); QPushButton *readRnSnBtn = new QPushButton("读取RNSS北斗序列号"); + connect(readRnSnBtn,SIGNAL(clicked()),this,SLOT(readRnSnHandle()),Qt::QueuedConnection); readRnSnBtn->setSizePolicy(QSizePolicy::Preferred,QSizePolicy::Preferred); readRnSnBtn->setFont(font); readRnSnBtn->setDefault(true); + readRnSnBtn->setCursor(Qt::PointingHandCursor); //QFontMetrics metrics = readRnSnBtn->fontMetrics(); //int minW = metrics.horizontalAdvance("读取RNSS北斗序列号")+40; //readRnSnBtn->setMinimumWidth(minW); @@ -60,6 +65,7 @@ StatusTestWin::StatusTestWin(QWidget *parent) readMPD9Btn->setSizePolicy(QSizePolicy::Preferred,QSizePolicy::Preferred); readMPD9Btn->setFont(font); readMPD9Btn->setDefault(true); + readMPD9Btn->setCursor(Qt::PointingHandCursor); ui->tableView->setIndexWidget(statusModel->index(statusModel->rowCount()-1,0),readMPD9Btn); ui->tableView->setSpan(statusModel->rowCount()-1,0,1,2); @@ -75,11 +81,13 @@ StatusTestWin::StatusTestWin(QWidget *parent) aItem->setTextAlignment(Qt::AlignCenter); aItemList.append(aItem); statusModel->insertRow(statusModel->rowCount(),aItemList); - QPushButton *readMPD7Btn = new QPushButton("读取MPD007编号"); - readMPD7Btn->setSizePolicy(QSizePolicy::Preferred,QSizePolicy::Preferred); - readMPD7Btn->setFont(font); - readMPD7Btn->setDefault(true); - ui->tableView->setIndexWidget(statusModel->index(statusModel->rowCount()-1,0),readMPD7Btn); + QPushButton *readMPD7IdBtn = new QPushButton("读取MPD007编号"); + connect(readMPD7IdBtn,SIGNAL(clicked()),this,SLOT(readMPD7IdHandle()),Qt::QueuedConnection); + readMPD7IdBtn->setSizePolicy(QSizePolicy::Preferred,QSizePolicy::Preferred); + readMPD7IdBtn->setFont(font); + readMPD7IdBtn->setDefault(true); + readMPD7IdBtn->setCursor(Qt::PointingHandCursor); + ui->tableView->setIndexWidget(statusModel->index(statusModel->rowCount()-1,0),readMPD7IdBtn); ui->tableView->setSpan(statusModel->rowCount()-1,0,1,2); aItemList.clear(); @@ -94,11 +102,13 @@ StatusTestWin::StatusTestWin(QWidget *parent) aItem->setTextAlignment(Qt::AlignCenter); aItemList.append(aItem); statusModel->insertRow(statusModel->rowCount(),aItemList); - QPushButton *readPrmBtn = new QPushButton("读取PRM编号"); - readPrmBtn->setSizePolicy(QSizePolicy::Preferred,QSizePolicy::Preferred); - readPrmBtn->setFont(font); - readPrmBtn->setDefault(true); - ui->tableView->setIndexWidget(statusModel->index(statusModel->rowCount()-1,0),readPrmBtn); + QPushButton *readPrmIdBtn = new QPushButton("读取PRM编号"); + connect(readPrmIdBtn,SIGNAL(clicked()),this,SLOT(readPrmIdHandle()),Qt::QueuedConnection); + readPrmIdBtn->setSizePolicy(QSizePolicy::Preferred,QSizePolicy::Preferred); + readPrmIdBtn->setFont(font); + readPrmIdBtn->setDefault(true); + readPrmIdBtn->setCursor(Qt::PointingHandCursor); + ui->tableView->setIndexWidget(statusModel->index(statusModel->rowCount()-1,0),readPrmIdBtn); ui->tableView->setSpan(statusModel->rowCount()-1,0,1,2); aItemList.clear(); @@ -114,9 +124,11 @@ StatusTestWin::StatusTestWin(QWidget *parent) aItemList.append(aItem); statusModel->insertRow(statusModel->rowCount(),aItemList); QPushButton *readMPD7DateBtn = new QPushButton("读取MPD007有效期"); + connect(readMPD7DateBtn,SIGNAL(clicked()),this,SLOT(readMPD7DateHandle()),Qt::QueuedConnection); readMPD7DateBtn->setSizePolicy(QSizePolicy::Preferred,QSizePolicy::Preferred); readMPD7DateBtn->setFont(font); readMPD7DateBtn->setDefault(true); + readMPD7DateBtn->setCursor(Qt::PointingHandCursor); ui->tableView->setIndexWidget(statusModel->index(statusModel->rowCount()-1,0),readMPD7DateBtn); ui->tableView->setSpan(statusModel->rowCount()-1,0,1,2); @@ -133,9 +145,11 @@ StatusTestWin::StatusTestWin(QWidget *parent) aItemList.append(aItem); statusModel->insertRow(statusModel->rowCount(),aItemList); QPushButton *readPrmDateBtn = new QPushButton("读取PRM有效期"); + connect(readPrmDateBtn,SIGNAL(clicked()),this,SLOT(readPrmDateHandle()),Qt::QueuedConnection); readPrmDateBtn->setSizePolicy(QSizePolicy::Preferred,QSizePolicy::Preferred); readPrmDateBtn->setFont(font); readPrmDateBtn->setDefault(true); + readPrmDateBtn->setCursor(Qt::PointingHandCursor); ui->tableView->setIndexWidget(statusModel->index(statusModel->rowCount()-1,0),readPrmDateBtn); ui->tableView->setSpan(statusModel->rowCount()-1,0,1,2); //多一行空白行合并,使该行变宽 @@ -167,9 +181,11 @@ StatusTestWin::StatusTestWin(QWidget *parent) aItemList.append(aItem); statusModel->insertRow(statusModel->rowCount(),aItemList); QPushButton *readRdSnBtn = new QPushButton("读取RDSS北斗序列号"); + connect(readRdSnBtn,SIGNAL(clicked()),this,SLOT(readRdSnHandle()),Qt::QueuedConnection); readRdSnBtn->setSizePolicy(QSizePolicy::Preferred,QSizePolicy::Preferred); readRdSnBtn->setFont(font); readRdSnBtn->setDefault(true); + readRdSnBtn->setCursor(Qt::PointingHandCursor); ui->tableView->setIndexWidget(statusModel->index(statusModel->rowCount()-1,0),readRdSnBtn); ui->tableView->setSpan(statusModel->rowCount()-1,0,1,2); @@ -187,9 +203,11 @@ StatusTestWin::StatusTestWin(QWidget *parent) aItemList.append(aItem); statusModel->insertRow(statusModel->rowCount(),aItemList); QPushButton *readIdBtn = new QPushButton("读取北斗ID号"); + connect(readIdBtn,SIGNAL(clicked()),this,SLOT(readRdSnHandle()),Qt::QueuedConnection); readIdBtn->setSizePolicy(QSizePolicy::Preferred,QSizePolicy::Preferred); readIdBtn->setFont(font); readIdBtn->setDefault(true); + readIdBtn->setCursor(Qt::PointingHandCursor); ui->tableView->setIndexWidget(statusModel->index(statusModel->rowCount()-1,0),readIdBtn); aItemList.clear(); aItem = new QStandardItem(""); @@ -251,3 +269,159 @@ StatusTestWin::~StatusTestWin() { delete ui; } + +void StatusTestWin::readRnSnHandle() +{ + statusModel->item(0,2)->setText(""); + QString cmd = "$CCRMO,SBX,2,0*37\r\n"; + emit writeDataSignal(cmd.toLatin1()); +} + +void StatusTestWin::readRdSnHandle() +{ + for(int i=7;i<=12;i++){ + statusModel->item(i,2)->setText(""); + } + QString cmd = "$CCICA,0,0*4B\r\n"; + emit writeDataSignal(cmd.toLatin1()); +} + +void StatusTestWin::readMPD7IdHandle() +{ + statusModel->item(2,2)->setText(""); + QString cmd = "$CCIID*44\r\n"; + emit writeDataSignal(cmd.toLatin1()); +} + +void StatusTestWin::readPrmIdHandle() +{ + statusModel->item(3,2)->setText(""); + QString cmd = "$CCPID*5D\r\n"; + emit writeDataSignal(cmd.toLatin1()); +} + +void StatusTestWin::readMPD7DateHandle() +{ + statusModel->item(4,2)->setText(""); + QString cmd = "$CCRMO,ICM,2,1*38\r\n"; + emit writeDataSignal(cmd.toLatin1()); +} + +void StatusTestWin::readPrmDateHandle() +{ + statusModel->item(5,2)->setText(""); + QString cmd = "$CCRMO,PMU,2,1*37\r\n"; + emit writeDataSignal(cmd.toLatin1()); +} + +void StatusTestWin::recvSbxHandle(const QString &cmd) +{ + QStringList paras = extractParaList(cmd); + if(paras.size()==7){ + QString sn = paras[5]; + statusModel->item(0,2)->setText(sn); + } +} + +void StatusTestWin::recvIciHandle(const QString &cmd) +{ + QStringList paras = extractParaList(cmd); + if(paras.size()==8){ + QString id = paras[0]; + QString sn = paras[1]; + QString brocast = paras[2]; + QString freq = paras[4]; + QString level = paras[5]; + QString encMark = paras[6]; + statusModel->item(7,2)->setText(sn); + statusModel->item(8,2)->setText(id); + statusModel->item(9,2)->setText(freq); + statusModel->item(10,2)->setText(level); + statusModel->item(11,2)->setText(brocast); + if(encMark=="E"){ + statusModel->item(12,2)->setText("加密"); + }else if(encMark=="N"){ + statusModel->item(12,2)->setText("非密"); + }else{ + statusModel->item(12,2)->setText(encMark); + } + } +} + +void StatusTestWin::recvPidHandle(const QString &cmd) +{ + QStringList paras = extractParaList(cmd); + if(paras.size()==1){ + QString pid = paras[0]; + statusModel->item(3,2)->setText(pid); + } +} + +void StatusTestWin::recvIidHandle(const QString &cmd) +{ + QStringList paras = extractParaList(cmd); + if(paras.size()==1){ + QString iid = paras[0]; + statusModel->item(2,2)->setText(iid); + } +} + +void StatusTestWin::recvIcmHandle(const QString &cmd) +{ + QStringList paras = extractParaList(cmd); + if(paras.size()==1){ + QString date = paras[0]; + if(date.size()==6){ + QString day = date.mid(0,2); + QString mon = date.mid(2,2); + QString year = date.mid(4,2); + statusModel->item(4,2)->setText(QString("%1年%2月%3日").arg(year,mon,day)); + }else{ + statusModel->item(4,2)->setText(date); + } + } +} + +void StatusTestWin::recvPmuHandle(const QString &cmd) +{ + QStringList paras = extractParaList(cmd); + if(paras.size()==3){ + QString feq = paras[0]; + QString startDate = paras[1]; + QString endDate = paras[2]; + QString feqStr; + if(feq=="3"){ + feqStr = "B3"; + }else if(feq=="1"){ + feqStr = "B1"; + }else{ + feqStr = feq; + } + QString startDateStr,endDateStr; + if(startDate.size()==6){ + QString day = startDate.mid(0,2); + QString mon = startDate.mid(2,2); + QString year = startDate.mid(4,2); + startDateStr = QString("%1年%2月%3日").arg(year,mon,day); + }else{ + startDateStr = startDate; + } + if(endDate.size()==6){ + QString day = endDate.mid(0,2); + QString mon = endDate.mid(2,2); + QString year = endDate.mid(4,2); + endDateStr = QString("%1年%2月%3日").arg(year,mon,day); + }else{ + endDateStr = endDate; + } + QString tmp = QString("%1:%2——%3").arg(feqStr,startDateStr,endDateStr); + QString txt = statusModel->item(5,2)->text(); + if(!txt.contains(tmp)){ + if(!tmp.isEmpty()){ + txt += "\n"; + } + txt += tmp; + statusModel->item(5,2)->setText(txt); + } + } +} diff --git a/src/cpp/utils.cpp b/src/cpp/utils.cpp index 7737a24..90ec4a2 100644 --- a/src/cpp/utils.cpp +++ b/src/cpp/utils.cpp @@ -80,3 +80,15 @@ void base64_decode(const unsigned char *code, int code_len, unsigned char *res, res[j+2]=(((unsigned char)table[code[i+2]])<<6) | ((unsigned char)table[code[i+3]]); //取出第三个字符对应base64表的十进制数的后2位与第4个字符进行组合 } } + +QStringList extractParaList(const QString &msg) +{ + QStringList paraList; + QString data = msg.simplified(); + if(data.startsWith("$") && data.contains("*")){ + data = data.left(data.indexOf("*")); + data = data.right(data.size()-data.indexOf(",")-1); + paraList = data.split(","); + } + return paraList; +} diff --git a/src/include/globalParams.h b/src/include/globalParams.h index 411a05f..00ef64d 100644 --- a/src/include/globalParams.h +++ b/src/include/globalParams.h @@ -13,6 +13,7 @@ namespace globalParams extern QString classGroup; extern QString bdSN; extern QString marker; + extern QString curRnPosMode; } #endif // GLOBALPARAMS_H diff --git a/src/include/mainwindow.h b/src/include/mainwindow.h index 1c96cd4..7e2d1a9 100644 --- a/src/include/mainwindow.h +++ b/src/include/mainwindow.h @@ -21,6 +21,12 @@ public: signals: void writeDataSignal(const QByteArray &buf); + void recvSbxSignal(const QString &cmd); + void recvIciSignal(const QString &cmd); + void recvPidSignal(const QString &cmd); + void recvIidSignal(const QString &cmd); + void recvIcmSignal(const QString &cmd); + void recvPmuSignal(const QString &cmd); private slots: void receiverSerialDataHandle(const QByteArray &data); diff --git a/src/include/posTestWin.h b/src/include/posTestWin.h index a66047b..224ff45 100644 --- a/src/include/posTestWin.h +++ b/src/include/posTestWin.h @@ -19,8 +19,8 @@ public: private slots: void on_btnRdTest_clicked(); - void on_btnRnTest_clicked(); + void view_signal_clicked(); private: Ui::PosTestWin *ui; diff --git a/src/include/rnSignalPainter.h b/src/include/rnSignalPainter.h new file mode 100644 index 0000000..9aea02a --- /dev/null +++ b/src/include/rnSignalPainter.h @@ -0,0 +1,25 @@ +#ifndef RNSIGNALPAINTER_H +#define RNSIGNALPAINTER_H + +#include + +namespace Ui { +class RnSignalPainter; +} + +class RnSignalPainter : public QWidget +{ + Q_OBJECT + +public: + explicit RnSignalPainter(QWidget *parent = nullptr); + ~RnSignalPainter(); + +protected: + void paintEvent(QPaintEvent *event) Q_DECL_OVERRIDE; + +private: + Ui::RnSignalPainter *ui; +}; + +#endif // RNSIGNALPAINTER_H diff --git a/src/include/statusTestWin.h b/src/include/statusTestWin.h index 99f083d..af3445e 100644 --- a/src/include/statusTestWin.h +++ b/src/include/statusTestWin.h @@ -17,6 +17,23 @@ public: explicit StatusTestWin(QWidget *parent = nullptr); ~StatusTestWin(); +signals: + void writeDataSignal(const QByteArray &buf); + +private slots: + void readRnSnHandle(); + void readRdSnHandle(); + void readMPD7IdHandle(); + void readPrmIdHandle(); + void readMPD7DateHandle(); + void readPrmDateHandle(); + void recvSbxHandle(const QString &cmd); + void recvIciHandle(const QString &cmd); + void recvPidHandle(const QString &cmd); + void recvIidHandle(const QString &cmd); + void recvIcmHandle(const QString &cmd); + void recvPmuHandle(const QString &cmd); + private: Ui::StatusTestWin *ui; QStandardItemModel *statusModel; diff --git a/src/include/utils.h b/src/include/utils.h index 435b9d4..8c33913 100644 --- a/src/include/utils.h +++ b/src/include/utils.h @@ -1,8 +1,12 @@ #ifndef UTILS_H #define UTILS_H +#include + void base64_encode(const unsigned char *str,int str_len,unsigned char *res,int *res_len); void base64_decode(const unsigned char *code,int code_len,unsigned char *res,int *res_len); +QStringList extractParaList(const QString &msg); + #endif // UTILS_H diff --git a/src/ui/interfaceTestWin.ui b/src/ui/interfaceTestWin.ui index 2a02eae..39523eb 100644 --- a/src/ui/interfaceTestWin.ui +++ b/src/ui/interfaceTestWin.ui @@ -79,6 +79,9 @@ 40 + + PointingHandCursor + CAN口检测 @@ -199,6 +202,9 @@ 40 + + PointingHandCursor + 串口检测 diff --git a/src/ui/mainwindow.ui b/src/ui/mainwindow.ui index 2df71e0..ca381ba 100644 --- a/src/ui/mainwindow.ui +++ b/src/ui/mainwindow.ui @@ -153,7 +153,7 @@ border:none; } - 4 + 3 diff --git a/src/ui/posTestWin.ui b/src/ui/posTestWin.ui index 69b8071..30b37b5 100644 --- a/src/ui/posTestWin.ui +++ b/src/ui/posTestWin.ui @@ -164,7 +164,7 @@ - + 0 @@ -348,9 +348,9 @@ - QCustomPlot + RnSignalPainter QWidget -
qcustomplot.h
+
rnSignalPainter.h
1
diff --git a/src/ui/rnSignalPainter.ui b/src/ui/rnSignalPainter.ui new file mode 100644 index 0000000..63b276f --- /dev/null +++ b/src/ui/rnSignalPainter.ui @@ -0,0 +1,19 @@ + + + RnSignalPainter + + + + 0 + 0 + 400 + 300 + + + + Form + + + + +