add status test
This commit is contained in:
parent
3e1d78f54f
commit
9b5e481c9e
|
@ -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 \
|
||||
|
|
|
@ -11,4 +11,5 @@ namespace globalParams
|
|||
QString classGroup;
|
||||
QString bdSN;
|
||||
QString marker;
|
||||
QString curRnPosMode;
|
||||
}
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
@ -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);
|
||||
}
|
|
@ -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()
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -13,6 +13,7 @@ namespace globalParams
|
|||
extern QString classGroup;
|
||||
extern QString bdSN;
|
||||
extern QString marker;
|
||||
extern QString curRnPosMode;
|
||||
}
|
||||
|
||||
#endif // GLOBALPARAMS_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);
|
||||
|
|
|
@ -19,8 +19,8 @@ public:
|
|||
|
||||
private slots:
|
||||
void on_btnRdTest_clicked();
|
||||
|
||||
void on_btnRnTest_clicked();
|
||||
void view_signal_clicked();
|
||||
|
||||
private:
|
||||
Ui::PosTestWin *ui;
|
||||
|
|
|
@ -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
|
|
@ -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;
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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">
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
Loading…
Reference in New Issue