增加部分字节的详细解析功能以及界面
This commit is contained in:
parent
ae1bf3169f
commit
f8a0799e9d
|
@ -1,10 +1,10 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE QtCreatorProject>
|
||||
<!-- Written by QtCreator 4.11.1, 2024-08-27T18:34:45. -->
|
||||
<!-- Written by QtCreator 4.11.1, 2024-08-30T00:10:42. -->
|
||||
<qtcreator>
|
||||
<data>
|
||||
<variable>EnvironmentId</variable>
|
||||
<value type="QByteArray">{b72ef07e-303d-4886-ad48-cd1f209eb895}</value>
|
||||
<value type="QByteArray">{a9a6bae5-cd8f-4b74-ae55-1c4ea6a77b25}</value>
|
||||
</data>
|
||||
<data>
|
||||
<variable>ProjectExplorer.Project.ActiveTarget</variable>
|
||||
|
@ -54,12 +54,7 @@
|
|||
</data>
|
||||
<data>
|
||||
<variable>ProjectExplorer.Project.PluginSettings</variable>
|
||||
<valuemap type="QVariantMap">
|
||||
<valuelist type="QVariantList" key="ClangCodeModel.CustomCommandLineKey">
|
||||
<value type="QString">-fno-delayed-template-parsing</value>
|
||||
</valuelist>
|
||||
<value type="bool" key="ClangCodeModel.UseGlobalConfig">true</value>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap"/>
|
||||
</data>
|
||||
<data>
|
||||
<variable>ProjectExplorer.Project.Target.0</variable>
|
||||
|
@ -71,7 +66,7 @@
|
|||
<value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
|
||||
<value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
|
||||
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">D:/_SRC/_tools/ComParseTool/build-ComParseTool-Desktop_Qt_5_14_2_MinGW_32_bit-Debug</value>
|
||||
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">E:/Project/QT_Projects/ComParseTool/build-ComParseTool-Desktop_Qt_5_14_2_MinGW_32_bit-Debug</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||
|
@ -119,7 +114,7 @@
|
|||
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.1">
|
||||
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">D:/_SRC/_tools/ComParseTool/build-ComParseTool-Desktop_Qt_5_14_2_MinGW_32_bit-Release</value>
|
||||
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">E:/Project/QT_Projects/ComParseTool/build-ComParseTool-Desktop_Qt_5_14_2_MinGW_32_bit-Release</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||
|
@ -167,7 +162,7 @@
|
|||
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.2">
|
||||
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">D:/_SRC/_tools/ComParseTool/build-ComParseTool-Desktop_Qt_5_14_2_MinGW_32_bit-Profile</value>
|
||||
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">E:/Project/QT_Projects/ComParseTool/build-ComParseTool-Desktop_Qt_5_14_2_MinGW_32_bit-Profile</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||
|
@ -287,8 +282,8 @@
|
|||
</valuelist>
|
||||
<value type="int" key="PE.EnvironmentAspect.Base">2</value>
|
||||
<valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:D:/_SRC/_tools/ComParseTool/ComParseTool/ComParseTool.pro</value>
|
||||
<value type="QString" key="ProjectExplorer.RunConfiguration.BuildKey">D:/_SRC/_tools/ComParseTool/ComParseTool/ComParseTool.pro</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:E:/Project/QT_Projects/ComParseTool/ComParseTool/ComParseTool.pro</value>
|
||||
<value type="QString" key="ProjectExplorer.RunConfiguration.BuildKey">E:/Project/QT_Projects/ComParseTool/ComParseTool/ComParseTool.pro</value>
|
||||
<value type="QString" key="RunConfiguration.Arguments"></value>
|
||||
<value type="bool" key="RunConfiguration.Arguments.multi">false</value>
|
||||
<value type="QString" key="RunConfiguration.OverrideDebuggerStartup"></value>
|
||||
|
@ -299,7 +294,7 @@
|
|||
<value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
|
||||
<value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
|
||||
<value type="QString" key="RunConfiguration.WorkingDirectory"></value>
|
||||
<value type="QString" key="RunConfiguration.WorkingDirectory.default">D:/_SRC/_tools/ComParseTool/build-ComParseTool-Desktop_Qt_5_14_2_MinGW_32_bit-Debug</value>
|
||||
<value type="QString" key="RunConfiguration.WorkingDirectory.default">E:/Project/QT_Projects/ComParseTool/build-ComParseTool-Desktop_Qt_5_14_2_MinGW_32_bit-Debug</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
|
||||
</valuemap>
|
||||
|
@ -314,7 +309,7 @@
|
|||
<value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
|
||||
<value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
|
||||
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">D:/_SRC/_tools/ComParseTool/build-ComParseTool-Desktop_Qt_5_14_2_MinGW_64_bit-Debug</value>
|
||||
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">E:/Project/QT_Projects/ComParseTool/build-ComParseTool-Desktop_Qt_5_14_2_MinGW_64_bit-Debug</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||
|
@ -362,7 +357,7 @@
|
|||
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.1">
|
||||
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">D:/_SRC/_tools/ComParseTool/build-ComParseTool-Desktop_Qt_5_14_2_MinGW_64_bit-Release</value>
|
||||
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">E:/Project/QT_Projects/ComParseTool/build-ComParseTool-Desktop_Qt_5_14_2_MinGW_64_bit-Release</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||
|
@ -410,7 +405,7 @@
|
|||
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.2">
|
||||
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">D:/_SRC/_tools/ComParseTool/build-ComParseTool-Desktop_Qt_5_14_2_MinGW_64_bit-Profile</value>
|
||||
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">E:/Project/QT_Projects/ComParseTool/build-ComParseTool-Desktop_Qt_5_14_2_MinGW_64_bit-Profile</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||
|
|
|
@ -11,8 +11,11 @@ MainWindow::MainWindow(QWidget *parent)
|
|||
|
||||
ui->tableWidget->setColumnCount(12);
|
||||
ui->tableWidget->horizontalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents); // 自适应列宽
|
||||
ui->tableWidget_detail->horizontalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents); // 自适应列宽
|
||||
ui->tableWidget->horizontalHeader()->setMinimumHeight(40);
|
||||
|
||||
ui->tableWidget_detail->setVisible(false);
|
||||
|
||||
pQfile_ori = new QFile;
|
||||
pQfile_key = new QFile;
|
||||
|
||||
|
@ -32,7 +35,9 @@ void MainWindow::BindSlot(void)
|
|||
connect(ui->pushButton_oriPath, &QPushButton::clicked, this, PushButton_Clicked_CatchFile_Callback);
|
||||
connect(ui->pushButton_keyPath, &QPushButton::clicked, this, PushButton_Clicked_CatchFile_Callback);
|
||||
|
||||
connect(ui->pushButton_parse, &QPushButton::clicked, this, PushButton_Clicked_Parse_clicked);
|
||||
connect(ui->pushButton_parse, &QPushButton::clicked, this, PushButton_Clicked_Parse_Callback);
|
||||
|
||||
connect(ui->tableWidget, &QTableWidget::cellPressed, this, TableWidget_DoubleClicked_Callback);
|
||||
}
|
||||
|
||||
// 打开资源管理器
|
||||
|
@ -42,8 +47,9 @@ void MainWindow::OpenExplorerFile(bool isOriFileOpen)
|
|||
QString filePath = QFileDialog::getOpenFileName(this, "选择文件", DesktopLocation, "文本文件(*.txt)");
|
||||
if (filePath.isEmpty() != true) // 判断路径是否有效
|
||||
{
|
||||
ui->tableWidget->clear();
|
||||
ui->tableWidget->setRowCount(0);
|
||||
ui->tableWidget_detail->setVisible(false);
|
||||
ui->tableWidget_detail->setRowCount(0);
|
||||
if (isOriFileOpen)
|
||||
{
|
||||
if (pQfile_ori->fileName() != filePath)
|
||||
|
@ -712,6 +718,344 @@ QString MainWindow::AppendParse(DATA_TYPEDEF data)
|
|||
return ret;
|
||||
}
|
||||
|
||||
// 显示字节详细数据
|
||||
void MainWindow::ShowByteDetail(DATA_TYPEDEF data)
|
||||
{
|
||||
bool notNeedShow = false;
|
||||
|
||||
switch(data.buf[0]) // 指令解析
|
||||
{
|
||||
case 0x11:
|
||||
{
|
||||
ui->tableWidget_detail->setRowCount(2);
|
||||
ui->tableWidget_detail->setColumnCount(9);
|
||||
for (uint8_t i = 0; i < 2; i++)
|
||||
{
|
||||
for (uint8_t j = 0; j < 9; j++)
|
||||
{
|
||||
QTableWidgetItem *item = new QTableWidgetItem;
|
||||
item->setText("-");
|
||||
ui->tableWidget_detail->setItem(i, j, item);
|
||||
}
|
||||
}
|
||||
ui->tableWidget_detail->setSpan(0, 1, 2, 3);
|
||||
|
||||
ui->tableWidget_detail->item(0, 0)->setText("0");
|
||||
ui->tableWidget_detail->item(1, 0)->setText("1");
|
||||
ui->tableWidget_detail->item(0, 1)->setText(QString::number(((data.buf[7] & 0xe0) >> 5) + 1, 10));
|
||||
ui->tableWidget_detail->item(0, 7)->setText("右向熄灭");
|
||||
ui->tableWidget_detail->item(1, 7)->setText("右向点亮");
|
||||
ui->tableWidget_detail->item(0, 8)->setText("左向熄灭");
|
||||
ui->tableWidget_detail->item(1, 8)->setText("左向点亮");
|
||||
|
||||
if ((data.buf[7] & 0x02) == 0)
|
||||
{
|
||||
ui->tableWidget_detail->item(0, 7)->setBackground(QColor("#CCFFCC"));
|
||||
}
|
||||
else
|
||||
{
|
||||
ui->tableWidget_detail->item(1, 7)->setBackground(QColor("#CCFFCC"));
|
||||
}
|
||||
|
||||
if ((data.buf[7] & 0x01) == 0)
|
||||
{
|
||||
ui->tableWidget_detail->item(0, 8)->setBackground(QColor("#CCFFCC"));
|
||||
}
|
||||
else
|
||||
{
|
||||
ui->tableWidget_detail->item(1, 8)->setBackground(QColor("#CCFFCC"));
|
||||
}
|
||||
}break;
|
||||
case 0x12:
|
||||
{
|
||||
ui->tableWidget_detail->setRowCount(2);
|
||||
ui->tableWidget_detail->setColumnCount(9);
|
||||
for (uint8_t i = 0; i < 2; i++)
|
||||
{
|
||||
for (uint8_t j = 0; j < 9; j++)
|
||||
{
|
||||
QTableWidgetItem *item = new QTableWidgetItem;
|
||||
item->setText("-");
|
||||
ui->tableWidget_detail->setItem(i, j, item);
|
||||
}
|
||||
}
|
||||
ui->tableWidget_detail->setSpan(0, 1, 2, 3);
|
||||
|
||||
ui->tableWidget_detail->item(0, 0)->setText("0");
|
||||
ui->tableWidget_detail->item(1, 0)->setText("1");
|
||||
ui->tableWidget_detail->item(0, 1)->setText(QString::number(((data.buf[7] & 0xe0) >> 5) + 1, 10));
|
||||
ui->tableWidget_detail->item(0, 5)->setText("中间熄灭");
|
||||
ui->tableWidget_detail->item(1, 5)->setText("中间点亮");
|
||||
ui->tableWidget_detail->item(0, 7)->setText("右向熄灭");
|
||||
ui->tableWidget_detail->item(1, 7)->setText("右向点亮");
|
||||
ui->tableWidget_detail->item(0, 8)->setText("左向熄灭");
|
||||
ui->tableWidget_detail->item(1, 8)->setText("左向点亮");
|
||||
|
||||
if ((data.buf[7] & 0x08) == 0)
|
||||
{
|
||||
ui->tableWidget_detail->item(0, 5)->setBackground(QColor("#CCFFCC"));
|
||||
}
|
||||
else
|
||||
{
|
||||
ui->tableWidget_detail->item(1, 5)->setBackground(QColor("#CCFFCC"));
|
||||
}
|
||||
|
||||
if ((data.buf[7] & 0x02) == 0)
|
||||
{
|
||||
ui->tableWidget_detail->item(0, 7)->setBackground(QColor("#CCFFCC"));
|
||||
}
|
||||
else
|
||||
{
|
||||
ui->tableWidget_detail->item(1, 7)->setBackground(QColor("#CCFFCC"));
|
||||
}
|
||||
|
||||
if ((data.buf[7] & 0x01) == 0)
|
||||
{
|
||||
ui->tableWidget_detail->item(0, 8)->setBackground(QColor("#CCFFCC"));
|
||||
}
|
||||
else
|
||||
{
|
||||
ui->tableWidget_detail->item(1, 8)->setBackground(QColor("#CCFFCC"));
|
||||
}
|
||||
}break;
|
||||
case 0x14: // todo
|
||||
{
|
||||
if (data.buf[1] == 0x00)
|
||||
{
|
||||
// todo
|
||||
}
|
||||
}break;
|
||||
case 0x16:
|
||||
{
|
||||
ui->tableWidget_detail->setRowCount(2);
|
||||
ui->tableWidget_detail->setColumnCount(9);
|
||||
for (uint8_t i = 0; i < 2; i++)
|
||||
{
|
||||
for (uint8_t j = 0; j < 9; j++)
|
||||
{
|
||||
QTableWidgetItem *item = new QTableWidgetItem;
|
||||
item->setText("-");
|
||||
ui->tableWidget_detail->setItem(i, j, item);
|
||||
}
|
||||
}
|
||||
ui->tableWidget_detail->setSpan(0, 1, 2, 3);
|
||||
|
||||
ui->tableWidget_detail->item(0, 0)->setText("0");
|
||||
ui->tableWidget_detail->item(1, 0)->setText("1");
|
||||
ui->tableWidget_detail->item(0, 1)->setText(QString::number(((data.buf[7] & 0xe0) >> 5) + 1, 10));
|
||||
ui->tableWidget_detail->item(0, 5)->setText("停止");
|
||||
ui->tableWidget_detail->item(1, 5)->setText("启动");
|
||||
ui->tableWidget_detail->item(0, 6)->setText("常亮");
|
||||
ui->tableWidget_detail->item(1, 6)->setText("闪亮");
|
||||
ui->tableWidget_detail->item(0, 8)->setText("照明灯具");
|
||||
ui->tableWidget_detail->item(1, 8)->setText("标志灯具");
|
||||
|
||||
if ((data.buf[7] & 0x08) == 0)
|
||||
{
|
||||
ui->tableWidget_detail->item(0, 5)->setBackground(QColor("#CCFFCC"));
|
||||
}
|
||||
else
|
||||
{
|
||||
ui->tableWidget_detail->item(1, 5)->setBackground(QColor("#CCFFCC"));
|
||||
}
|
||||
|
||||
if ((data.buf[7] & 0x04) == 0)
|
||||
{
|
||||
ui->tableWidget_detail->item(0, 6)->setBackground(QColor("#CCFFCC"));
|
||||
}
|
||||
else
|
||||
{
|
||||
ui->tableWidget_detail->item(1, 6)->setBackground(QColor("#CCFFCC"));
|
||||
}
|
||||
|
||||
if ((data.buf[7] & 0x01) == 0)
|
||||
{
|
||||
ui->tableWidget_detail->item(0, 8)->setBackground(QColor("#CCFFCC"));
|
||||
}
|
||||
else
|
||||
{
|
||||
ui->tableWidget_detail->item(1, 8)->setBackground(QColor("#CCFFCC"));
|
||||
}
|
||||
}break;
|
||||
case 0x1f: // todo
|
||||
{
|
||||
|
||||
}break;
|
||||
case 0x25: // todo
|
||||
{
|
||||
ui->tableWidget_detail->setRowCount(6);
|
||||
ui->tableWidget_detail->setColumnCount(9);
|
||||
for (uint8_t i = 0; i < 6; i++)
|
||||
{
|
||||
for (uint8_t j = 0; j < 9; j++)
|
||||
{
|
||||
QTableWidgetItem *item = new QTableWidgetItem;
|
||||
item->setText("-");
|
||||
ui->tableWidget_detail->setItem(i, j, item);
|
||||
}
|
||||
}
|
||||
ui->tableWidget_detail->setSpan(0, 1, 2, 3);
|
||||
ui->tableWidget_detail->setSpan(4, 1, 2, 3);
|
||||
|
||||
ui->tableWidget_detail->item(0, 0)->setText("0");
|
||||
ui->tableWidget_detail->item(1, 0)->setText("1");
|
||||
ui->tableWidget_detail->item(0, 1)->setText(QString::number(((data.buf[5] & 0xe0) >> 5) + 1, 10));
|
||||
ui->tableWidget_detail->item(0, 5)->setText("旧国标");
|
||||
ui->tableWidget_detail->item(1, 5)->setText("新国标");
|
||||
ui->tableWidget_detail->item(0, 6)->setText("保险丝");
|
||||
ui->tableWidget_detail->item(1, 6)->setText("自恢复");
|
||||
ui->tableWidget_detail->item(0, 7)->setText("集中电源");
|
||||
ui->tableWidget_detail->item(1, 7)->setText("配电箱");
|
||||
ui->tableWidget_detail->item(0, 8)->setText("不带回路");
|
||||
ui->tableWidget_detail->item(1, 8)->setText("带回路");
|
||||
|
||||
ui->tableWidget_detail->item(2, 0)->setText("1");
|
||||
ui->tableWidget_detail->item(3, 0)->setText("0");
|
||||
for (uint8_t i = 0; i < 8; i++)
|
||||
{
|
||||
ui->tableWidget_detail->item(2, i + 1)->setText("离线");
|
||||
ui->tableWidget_detail->item(3, i + 1)->setText("在线");
|
||||
if ((data.buf[6] & (1 << i)) == 0)
|
||||
{
|
||||
ui->tableWidget_detail->item(2, 8 - i)->setBackground(QColor("#CCFFCC"));
|
||||
}
|
||||
else
|
||||
{
|
||||
ui->tableWidget_detail->item(3, 8 - i)->setBackground(QColor("#CCFFCC"));
|
||||
}
|
||||
}
|
||||
|
||||
ui->tableWidget_detail->item(4, 0)->setText("0");
|
||||
ui->tableWidget_detail->item(5, 0)->setText("1");
|
||||
ui->tableWidget_detail->item(4, 1)->setText("回路数量:" + QString::number(((data.buf[7] & 0xe0) >> 5) + 1, 10));
|
||||
|
||||
if ((data.buf[5] & 0x08) == 0)
|
||||
{
|
||||
ui->tableWidget_detail->item(0, 5)->setBackground(QColor("#CCFFCC"));
|
||||
}
|
||||
else
|
||||
{
|
||||
ui->tableWidget_detail->item(1, 5)->setBackground(QColor("#CCFFCC"));
|
||||
}
|
||||
|
||||
if ((data.buf[5] & 0x04) == 0)
|
||||
{
|
||||
ui->tableWidget_detail->item(0, 6)->setBackground(QColor("#CCFFCC"));
|
||||
}
|
||||
else
|
||||
{
|
||||
ui->tableWidget_detail->item(1, 6)->setBackground(QColor("#CCFFCC"));
|
||||
}
|
||||
|
||||
if ((data.buf[5] & 0x02) == 0)
|
||||
{
|
||||
ui->tableWidget_detail->item(0, 7)->setBackground(QColor("#CCFFCC"));
|
||||
}
|
||||
else
|
||||
{
|
||||
ui->tableWidget_detail->item(1, 7)->setBackground(QColor("#CCFFCC"));
|
||||
}
|
||||
|
||||
if ((data.buf[5] & 0x02) == 0)
|
||||
{
|
||||
ui->tableWidget_detail->item(0, 8)->setBackground(QColor("#CCFFCC"));
|
||||
}
|
||||
else
|
||||
{
|
||||
ui->tableWidget_detail->item(1, 8)->setBackground(QColor("#CCFFCC"));
|
||||
}
|
||||
}break;
|
||||
case 0x26:
|
||||
{
|
||||
ui->tableWidget_detail->setRowCount(4);
|
||||
ui->tableWidget_detail->setColumnCount(9);
|
||||
for (uint8_t i = 0; i < 4; i++)
|
||||
{
|
||||
for (uint8_t j = 0; j < 9; j++)
|
||||
{
|
||||
QTableWidgetItem *item = new QTableWidgetItem;
|
||||
item->setText("-");
|
||||
ui->tableWidget_detail->setItem(i, j, item);
|
||||
}
|
||||
}
|
||||
|
||||
ui->tableWidget_detail->item(0, 0)->setText("0");
|
||||
ui->tableWidget_detail->item(1, 0)->setText("1");
|
||||
ui->tableWidget_detail->item(0, 1)->setText("手动");
|
||||
ui->tableWidget_detail->item(1, 1)->setText("自动");
|
||||
ui->tableWidget_detail->item(0, 2)->setText("正常");
|
||||
ui->tableWidget_detail->item(1, 2)->setText("强启");
|
||||
ui->tableWidget_detail->item(0, 3)->setText("非消音");
|
||||
ui->tableWidget_detail->item(1, 3)->setText("消音");
|
||||
ui->tableWidget_detail->item(0, 4)->setText("主电工作");
|
||||
ui->tableWidget_detail->item(1, 4)->setText("备电工作");
|
||||
ui->tableWidget_detail->item(0, 5)->setText("充电中");
|
||||
ui->tableWidget_detail->item(1, 5)->setText("充电完成");
|
||||
ui->tableWidget_detail->item(0, 6)->setText("非故障");
|
||||
ui->tableWidget_detail->item(1, 6)->setText("故障");
|
||||
ui->tableWidget_detail->item(0, 7)->setText("非应急");
|
||||
ui->tableWidget_detail->item(1, 7)->setText("应急");
|
||||
|
||||
ui->tableWidget_detail->item(2, 0)->setText("0");
|
||||
ui->tableWidget_detail->item(3, 0)->setText("1");
|
||||
ui->tableWidget_detail->item(2, 1)->setText("非输出故障");
|
||||
ui->tableWidget_detail->item(3, 1)->setText("输出故障");
|
||||
ui->tableWidget_detail->item(2, 2)->setText("非应急时间故障");
|
||||
ui->tableWidget_detail->item(3, 2)->setText("应急时间故障");
|
||||
ui->tableWidget_detail->item(2, 3)->setText("非应急功能故障");
|
||||
ui->tableWidget_detail->item(3, 3)->setText("应急功能故障");
|
||||
ui->tableWidget_detail->item(2, 4)->setText("电池正常");
|
||||
ui->tableWidget_detail->item(3, 4)->setText("电池故障");
|
||||
ui->tableWidget_detail->item(2, 5)->setText("主电正常");
|
||||
ui->tableWidget_detail->item(3, 5)->setText("主电故障");
|
||||
ui->tableWidget_detail->item(2, 6)->setText("灯具正常");
|
||||
ui->tableWidget_detail->item(3, 6)->setText("灯具故障");
|
||||
ui->tableWidget_detail->item(2, 7)->setText("回路正常");
|
||||
ui->tableWidget_detail->item(3, 7)->setText("回路故障");
|
||||
ui->tableWidget_detail->item(2, 8)->setText("通信正常");
|
||||
ui->tableWidget_detail->item(3, 8)->setText("通信故障");
|
||||
|
||||
for (uint8_t i = 0; i < 8; i++)
|
||||
{
|
||||
if ((data.buf[1] & (1 << i)) == 0)
|
||||
{
|
||||
ui->tableWidget_detail->item(0, 8 - i)->setBackground(QColor("#CCFFCC"));
|
||||
}
|
||||
else
|
||||
{
|
||||
ui->tableWidget_detail->item(1, 8 - i)->setBackground(QColor("#CCFFCC"));
|
||||
}
|
||||
|
||||
if ((data.buf[2] & (1 << i)) == 0)
|
||||
{
|
||||
ui->tableWidget_detail->item(2, 8 - i)->setBackground(QColor("#CCFFCC"));
|
||||
}
|
||||
else
|
||||
{
|
||||
ui->tableWidget_detail->item(3, 8 - i)->setBackground(QColor("#CCFFCC"));
|
||||
}
|
||||
}
|
||||
}break;
|
||||
default:
|
||||
{
|
||||
notNeedShow = true;
|
||||
}break;
|
||||
}
|
||||
|
||||
|
||||
|
||||
// 表格2绘制
|
||||
if (!notNeedShow)
|
||||
{
|
||||
ui->tableWidget_detail->setHorizontalHeaderLabels(QStringList() << "值" << "Bit7" << "Bit6" << "Bit5" << "Bit4" << "Bit3" << "Bit2" << "Bit1" << "Bit0");
|
||||
ui->tableWidget_detail->setVisible(true);
|
||||
}
|
||||
else
|
||||
{
|
||||
ui->tableWidget_detail->setVisible(false);
|
||||
ui->tableWidget_detail->setRowCount(0);
|
||||
}
|
||||
}
|
||||
/* ********************************************************************<Slots> */
|
||||
// 文件浏览槽函数
|
||||
void MainWindow::PushButton_Clicked_CatchFile_Callback(void)
|
||||
|
@ -729,7 +1073,7 @@ void MainWindow::PushButton_Clicked_CatchFile_Callback(void)
|
|||
}
|
||||
}
|
||||
|
||||
void MainWindow::PushButton_Clicked_Parse_clicked()
|
||||
void MainWindow::PushButton_Clicked_Parse_Callback()
|
||||
{
|
||||
bool isFirstLine = true;
|
||||
qDebug() << "*** \"pushButton_parse\" Clicked Callback ***";
|
||||
|
@ -767,7 +1111,6 @@ void MainWindow::PushButton_Clicked_Parse_clicked()
|
|||
break; // todo 需要调试
|
||||
}
|
||||
}
|
||||
// todo 将String转换为数组
|
||||
QByteArray ba = QByteArray::fromHex(context.mid(strSecondIndex + 1, strFirstIndex - strSecondIndex - 2).toLatin1());
|
||||
DATA_TYPEDEF bufData;
|
||||
|
||||
|
@ -803,3 +1146,24 @@ void MainWindow::PushButton_Clicked_Parse_clicked()
|
|||
disp = context;
|
||||
}
|
||||
}
|
||||
|
||||
// 表格-选中单元格事件
|
||||
void MainWindow::TableWidget_DoubleClicked_Callback(int row, int colnum)
|
||||
{
|
||||
if (colnum == 10) // 只针对解析后的数据进行字节解析
|
||||
{
|
||||
QTableWidgetItem *item = ui->tableWidget->item(row, colnum);
|
||||
QString temp = item->text().remove(" "); // 去除多余空格
|
||||
QByteArray ba = QByteArray::fromHex(temp.toLatin1());
|
||||
DATA_TYPEDEF data;
|
||||
data.len = ba.length();
|
||||
memcpy(data.buf, ba.data(), data.len);
|
||||
|
||||
ShowByteDetail(data); // 显示字节详细数据
|
||||
}
|
||||
else
|
||||
{
|
||||
ui->tableWidget_detail->setVisible(false);
|
||||
ui->tableWidget_detail->setRowCount(0);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -12,6 +12,7 @@
|
|||
#include <QJsonDocument>
|
||||
#include <QJsonArray>
|
||||
#include <QJsonObject>
|
||||
#include <QColor>
|
||||
#include <QDebug>
|
||||
|
||||
typedef struct
|
||||
|
@ -37,11 +38,14 @@ public:
|
|||
QString AppendParse(DATA_TYPEDEF data);
|
||||
QString GetLampType(uint8_t lampidx);
|
||||
QString GetEventCode(uint8_t lampidx);
|
||||
void ShowByteDetail(DATA_TYPEDEF data);
|
||||
|
||||
private slots:
|
||||
void PushButton_Clicked_CatchFile_Callback();
|
||||
|
||||
void PushButton_Clicked_Parse_clicked();
|
||||
void PushButton_Clicked_Parse_Callback();
|
||||
|
||||
void TableWidget_DoubleClicked_Callback(int row, int colum);
|
||||
|
||||
private:
|
||||
Ui::MainWindow *ui;
|
||||
|
|
|
@ -6,10 +6,16 @@
|
|||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>924</width>
|
||||
<height>431</height>
|
||||
<width>1560</width>
|
||||
<height>919</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>1000</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>MainWindow</string>
|
||||
</property>
|
||||
|
@ -185,9 +191,41 @@ background-color: rgb(91, 255, 88);</string>
|
|||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout" stretch="5,2">
|
||||
<item>
|
||||
<widget class="QTableWidget" name="tableWidget"/>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QTableWidget" name="tableWidget_detail">
|
||||
<property name="enabled">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>350</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>700</width>
|
||||
<height>16777215</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">font: 11pt "Adobe Arabic";</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
|
@ -214,7 +252,7 @@ background-color: rgb(91, 255, 88);</string>
|
|||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>924</width>
|
||||
<width>1560</width>
|
||||
<height>21</height>
|
||||
</rect>
|
||||
</property>
|
||||
|
|
Loading…
Reference in New Issue
Block a user