428 lines
16 KiB
C++
428 lines
16 KiB
C++
#include "statusTestWin.h"
|
|
#include "ui_statusTestWin.h"
|
|
#include "utils.h"
|
|
#include <QPushButton>
|
|
#include <QFontMetrics>
|
|
#include <QDebug>
|
|
|
|
StatusTestWin::StatusTestWin(QWidget *parent)
|
|
: QWidget(parent)
|
|
, ui(new Ui::StatusTestWin)
|
|
{
|
|
ui->setupUi(this);
|
|
statusModel = new QStandardItemModel(this);
|
|
statusSelect = new QItemSelectionModel(statusModel);
|
|
statusModel->setColumnCount(3);
|
|
ui->tableView->setModel(statusModel);
|
|
ui->tableView->setSelectionModel(statusSelect);
|
|
ui->tableView->horizontalHeader()->setVisible(false);
|
|
ui->tableView->verticalHeader()->setVisible(false);
|
|
ui->tableView->horizontalHeader()->setStretchLastSection(true);
|
|
ui->tableView->verticalHeader()->setSectionResizeMode(QHeaderView::Stretch);
|
|
ui->tableView->setWordWrap(true);
|
|
|
|
QFont font = ui->tableView->font();
|
|
font.setBold(true);
|
|
|
|
QList<QStandardItem *> aItemList;
|
|
QStandardItem *aItem = new QStandardItem("");
|
|
aItem->setEditable(false);
|
|
aItem->setTextAlignment(Qt::AlignCenter);
|
|
aItemList.append(aItem);
|
|
aItem = new QStandardItem("");
|
|
aItem->setTextAlignment(Qt::AlignCenter);
|
|
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);
|
|
//ui->tableView->setColumnWidth(0,minW);
|
|
ui->tableView->setIndexWidget(statusModel->index(statusModel->rowCount()-1,0),readRnSnBtn);
|
|
ui->tableView->setSpan(statusModel->rowCount()-1,0,1,2);
|
|
|
|
aItemList.clear();
|
|
aItem = new QStandardItem("");
|
|
aItem->setEditable(false);
|
|
aItem->setTextAlignment(Qt::AlignCenter);
|
|
aItemList.append(aItem);
|
|
aItem = new QStandardItem("");
|
|
aItem->setTextAlignment(Qt::AlignCenter);
|
|
aItemList.append(aItem);
|
|
aItem = new QStandardItem("");
|
|
aItem->setTextAlignment(Qt::AlignCenter);
|
|
aItemList.append(aItem);
|
|
statusModel->insertRow(statusModel->rowCount(),aItemList);
|
|
QPushButton *readMPD9Btn = new QPushButton("读取MPD009编号");
|
|
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);
|
|
|
|
aItemList.clear();
|
|
aItem = new QStandardItem("");
|
|
aItem->setEditable(false);
|
|
aItem->setTextAlignment(Qt::AlignCenter);
|
|
aItemList.append(aItem);
|
|
aItem = new QStandardItem("");
|
|
aItem->setTextAlignment(Qt::AlignCenter);
|
|
aItemList.append(aItem);
|
|
aItem = new QStandardItem("");
|
|
aItem->setTextAlignment(Qt::AlignCenter);
|
|
aItemList.append(aItem);
|
|
statusModel->insertRow(statusModel->rowCount(),aItemList);
|
|
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();
|
|
aItem = new QStandardItem("");
|
|
aItem->setEditable(false);
|
|
aItem->setTextAlignment(Qt::AlignCenter);
|
|
aItemList.append(aItem);
|
|
aItem = new QStandardItem("");
|
|
aItem->setTextAlignment(Qt::AlignCenter);
|
|
aItemList.append(aItem);
|
|
aItem = new QStandardItem("");
|
|
aItem->setTextAlignment(Qt::AlignCenter);
|
|
aItemList.append(aItem);
|
|
statusModel->insertRow(statusModel->rowCount(),aItemList);
|
|
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();
|
|
aItem = new QStandardItem("");
|
|
aItem->setEditable(false);
|
|
aItem->setTextAlignment(Qt::AlignCenter);
|
|
aItemList.append(aItem);
|
|
aItem = new QStandardItem("");
|
|
aItem->setTextAlignment(Qt::AlignCenter);
|
|
aItemList.append(aItem);
|
|
aItem = new QStandardItem("");
|
|
aItem->setTextAlignment(Qt::AlignCenter);
|
|
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);
|
|
|
|
aItemList.clear();
|
|
aItem = new QStandardItem("");
|
|
aItem->setEditable(false);
|
|
aItem->setTextAlignment(Qt::AlignCenter);
|
|
aItemList.append(aItem);
|
|
aItem = new QStandardItem("");
|
|
aItem->setTextAlignment(Qt::AlignCenter);
|
|
aItemList.append(aItem);
|
|
aItem = new QStandardItem("");
|
|
aItem->setTextAlignment(Qt::AlignCenter);
|
|
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);
|
|
//多一行空白行合并,使该行变宽
|
|
aItemList.clear();
|
|
aItem = new QStandardItem("");
|
|
aItem->setEditable(false);
|
|
aItem->setTextAlignment(Qt::AlignCenter);
|
|
aItemList.append(aItem);
|
|
aItem = new QStandardItem("");
|
|
aItem->setTextAlignment(Qt::AlignCenter);
|
|
aItemList.append(aItem);
|
|
aItem = new QStandardItem("");
|
|
aItem->setTextAlignment(Qt::AlignCenter);
|
|
aItemList.append(aItem);
|
|
statusModel->insertRow(statusModel->rowCount(),aItemList);
|
|
ui->tableView->setSpan(statusModel->rowCount()-2,0,2,2);
|
|
ui->tableView->setSpan(statusModel->rowCount()-2,2,2,1);
|
|
|
|
aItemList.clear();
|
|
aItem = new QStandardItem("");
|
|
aItem->setEditable(false);
|
|
aItem->setTextAlignment(Qt::AlignCenter);
|
|
aItemList.append(aItem);
|
|
aItem = new QStandardItem("");
|
|
aItem->setTextAlignment(Qt::AlignCenter);
|
|
aItemList.append(aItem);
|
|
aItem = new QStandardItem("");
|
|
aItem->setTextAlignment(Qt::AlignCenter);
|
|
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);
|
|
|
|
aItemList.clear();
|
|
aItem = new QStandardItem("");
|
|
aItem->setEditable(false);
|
|
aItem->setTextAlignment(Qt::AlignCenter);
|
|
aItemList.append(aItem);
|
|
aItem = new QStandardItem("北斗ID号");
|
|
aItem->setFont(font);
|
|
aItem->setTextAlignment(Qt::AlignCenter);
|
|
aItemList.append(aItem);
|
|
aItem = new QStandardItem("");
|
|
aItem->setTextAlignment(Qt::AlignCenter);
|
|
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("");
|
|
aItem->setEditable(false);
|
|
aItem->setTextAlignment(Qt::AlignCenter);
|
|
aItemList.append(aItem);
|
|
aItem = new QStandardItem("服务频度");
|
|
aItem->setFont(font);
|
|
aItem->setTextAlignment(Qt::AlignCenter);
|
|
aItemList.append(aItem);
|
|
aItem = new QStandardItem("");
|
|
aItem->setTextAlignment(Qt::AlignCenter);
|
|
aItemList.append(aItem);
|
|
statusModel->insertRow(statusModel->rowCount(),aItemList);
|
|
aItemList.clear();
|
|
aItem = new QStandardItem("");
|
|
aItem->setEditable(false);
|
|
aItem->setTextAlignment(Qt::AlignCenter);
|
|
aItemList.append(aItem);
|
|
aItem = new QStandardItem("通信等级");
|
|
aItem->setFont(font);
|
|
aItem->setTextAlignment(Qt::AlignCenter);
|
|
aItemList.append(aItem);
|
|
aItem = new QStandardItem("");
|
|
aItem->setTextAlignment(Qt::AlignCenter);
|
|
aItemList.append(aItem);
|
|
statusModel->insertRow(statusModel->rowCount(),aItemList);
|
|
aItemList.clear();
|
|
aItem = new QStandardItem("");
|
|
aItem->setEditable(false);
|
|
aItem->setTextAlignment(Qt::AlignCenter);
|
|
aItemList.append(aItem);
|
|
aItem = new QStandardItem("通播地址");
|
|
aItem->setFont(font);
|
|
aItem->setTextAlignment(Qt::AlignCenter);
|
|
aItemList.append(aItem);
|
|
aItem = new QStandardItem("");
|
|
aItem->setTextAlignment(Qt::AlignCenter);
|
|
aItemList.append(aItem);
|
|
statusModel->insertRow(statusModel->rowCount(),aItemList);
|
|
aItemList.clear();
|
|
aItem = new QStandardItem("");
|
|
aItem->setEditable(false);
|
|
aItem->setTextAlignment(Qt::AlignCenter);
|
|
aItemList.append(aItem);
|
|
aItem = new QStandardItem("保密标志");
|
|
aItem->setFont(font);
|
|
aItem->setTextAlignment(Qt::AlignCenter);
|
|
aItemList.append(aItem);
|
|
aItem = new QStandardItem("");
|
|
aItem->setTextAlignment(Qt::AlignCenter);
|
|
aItemList.append(aItem);
|
|
statusModel->insertRow(statusModel->rowCount(),aItemList);
|
|
ui->tableView->setSpan(statusModel->rowCount()-5,0,5,1);
|
|
|
|
}
|
|
|
|
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);
|
|
}
|
|
}
|
|
}
|