add status test

This commit is contained in:
168492376 2025-07-05 15:43:44 +08:00
parent 3e1d78f54f
commit 9b5e481c9e
19 changed files with 390 additions and 21 deletions

View File

@ -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 \

View File

@ -11,4 +11,5 @@ namespace globalParams
QString classGroup;
QString bdSN;
QString marker;
QString curRnPosMode;
}

View File

@ -7,6 +7,7 @@
#include <QGroupBox>
#include <QHBoxLayout>
#include <QPushButton>
#include <QRegularExpression>
#include <QDebug>
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;i<leftData.size()-1;i++){
if((unsigned char)(leftData[i])==0x0D && (unsigned char)(leftData[i+1])==0x0A){
QByteArray tmp = leftData.mid(start,i+1-start+1);
start = i+2;
lines.append(QString::fromLocal8Bit(tmp));
}
}
leftData = leftData.mid(start);
if(lines.isEmpty() && leftData.size()>4096){
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)

View File

@ -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);

View File

@ -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);
}

View File

@ -0,0 +1,44 @@
#include "rnSignalPainter.h"
#include "ui_rnSignalPainter.h"
#include "globalParams.h"
#include <QPainter>
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);
}

View File

@ -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()

View File

@ -1,7 +1,9 @@
#include "statusTestWin.h"
#include "ui_statusTestWin.h"
#include "utils.h"
#include <QPushButton>
#include <QFontMetrics>
#include <QDebug>
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);
}
}
}

View File

@ -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;
}

View File

@ -13,6 +13,7 @@ namespace globalParams
extern QString classGroup;
extern QString bdSN;
extern QString marker;
extern QString curRnPosMode;
}
#endif // GLOBALPARAMS_H

View File

@ -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);

View File

@ -19,8 +19,8 @@ public:
private slots:
void on_btnRdTest_clicked();
void on_btnRnTest_clicked();
void view_signal_clicked();
private:
Ui::PosTestWin *ui;

View File

@ -0,0 +1,25 @@
#ifndef RNSIGNALPAINTER_H
#define RNSIGNALPAINTER_H
#include <QWidget>
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

View File

@ -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;

View File

@ -1,8 +1,12 @@
#ifndef UTILS_H
#define UTILS_H
#include <QStringList>
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

View File

@ -79,6 +79,9 @@
<height>40</height>
</size>
</property>
<property name="cursor">
<cursorShape>PointingHandCursor</cursorShape>
</property>
<property name="text">
<string>CAN口检测</string>
</property>
@ -199,6 +202,9 @@
<height>40</height>
</size>
</property>
<property name="cursor">
<cursorShape>PointingHandCursor</cursorShape>
</property>
<property name="text">
<string>串口检测</string>
</property>

View File

@ -153,7 +153,7 @@ border:none;
}</string>
</property>
<property name="currentIndex">
<number>4</number>
<number>3</number>
</property>
<widget class="QWidget" name="tabMsgInput">
<attribute name="title">

View File

@ -164,7 +164,7 @@
</property>
<layout class="QVBoxLayout" name="verticalLayout_2">
<item>
<widget class="QCustomPlot" name="widget" native="true">
<widget class="RnSignalPainter" name="widget" native="true">
<property name="minimumSize">
<size>
<width>0</width>
@ -348,9 +348,9 @@
</widget>
<customwidgets>
<customwidget>
<class>QCustomPlot</class>
<class>RnSignalPainter</class>
<extends>QWidget</extends>
<header location="global">qcustomplot.h</header>
<header location="global">rnSignalPainter.h</header>
<container>1</container>
</customwidget>
</customwidgets>

19
src/ui/rnSignalPainter.ui Normal file
View File

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>RnSignalPainter</class>
<widget class="QWidget" name="RnSignalPainter">
<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>