合并工程,实现部分字节指令解析
Signed-off-by: jiangyingjie <1308784381@qq.com>
This commit is contained in:
commit
38b27ba902
|
@ -1,10 +1,10 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<!DOCTYPE QtCreatorProject>
|
<!DOCTYPE QtCreatorProject>
|
||||||
<!-- Written by QtCreator 4.11.1, 2024-08-28T18:47:22. -->
|
<!-- Written by QtCreator 4.11.1, 2024-08-30T00:10:42. -->
|
||||||
<qtcreator>
|
<qtcreator>
|
||||||
<data>
|
<data>
|
||||||
<variable>EnvironmentId</variable>
|
<variable>EnvironmentId</variable>
|
||||||
<value type="QByteArray">{b72ef07e-303d-4886-ad48-cd1f209eb895}</value>
|
<value type="QByteArray">{a9a6bae5-cd8f-4b74-ae55-1c4ea6a77b25}</value>
|
||||||
</data>
|
</data>
|
||||||
<data>
|
<data>
|
||||||
<variable>ProjectExplorer.Project.ActiveTarget</variable>
|
<variable>ProjectExplorer.Project.ActiveTarget</variable>
|
||||||
|
@ -54,12 +54,7 @@
|
||||||
</data>
|
</data>
|
||||||
<data>
|
<data>
|
||||||
<variable>ProjectExplorer.Project.PluginSettings</variable>
|
<variable>ProjectExplorer.Project.PluginSettings</variable>
|
||||||
<valuemap type="QVariantMap">
|
<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>
|
|
||||||
</data>
|
</data>
|
||||||
<data>
|
<data>
|
||||||
<variable>ProjectExplorer.Project.Target.0</variable>
|
<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.ActiveDeployConfiguration">0</value>
|
||||||
<value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
|
<value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
|
||||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
|
<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.BuildConfiguration.BuildStepList.0">
|
||||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||||
|
@ -119,7 +114,7 @@
|
||||||
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value>
|
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value>
|
||||||
</valuemap>
|
</valuemap>
|
||||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.1">
|
<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.BuildConfiguration.BuildStepList.0">
|
||||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||||
|
@ -167,7 +162,7 @@
|
||||||
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
|
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
|
||||||
</valuemap>
|
</valuemap>
|
||||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.2">
|
<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.BuildConfiguration.BuildStepList.0">
|
||||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||||
|
@ -287,8 +282,8 @@
|
||||||
</valuelist>
|
</valuelist>
|
||||||
<value type="int" key="PE.EnvironmentAspect.Base">2</value>
|
<value type="int" key="PE.EnvironmentAspect.Base">2</value>
|
||||||
<valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
|
<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.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:E:/Project/QT_Projects/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.RunConfiguration.BuildKey">E:/Project/QT_Projects/ComParseTool/ComParseTool/ComParseTool.pro</value>
|
||||||
<value type="QString" key="RunConfiguration.Arguments"></value>
|
<value type="QString" key="RunConfiguration.Arguments"></value>
|
||||||
<value type="bool" key="RunConfiguration.Arguments.multi">false</value>
|
<value type="bool" key="RunConfiguration.Arguments.multi">false</value>
|
||||||
<value type="QString" key="RunConfiguration.OverrideDebuggerStartup"></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.UseQmlDebugger">false</value>
|
||||||
<value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
|
<value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
|
||||||
<value type="QString" key="RunConfiguration.WorkingDirectory"></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>
|
</valuemap>
|
||||||
<value type="int" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
|
<value type="int" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
|
||||||
</valuemap>
|
</valuemap>
|
||||||
|
@ -314,7 +309,7 @@
|
||||||
<value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
|
<value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
|
||||||
<value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
|
<value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
|
||||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
|
<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.BuildConfiguration.BuildStepList.0">
|
||||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||||
|
@ -362,7 +357,7 @@
|
||||||
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value>
|
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value>
|
||||||
</valuemap>
|
</valuemap>
|
||||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.1">
|
<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.BuildConfiguration.BuildStepList.0">
|
||||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||||
|
@ -410,7 +405,7 @@
|
||||||
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
|
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
|
||||||
</valuemap>
|
</valuemap>
|
||||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.2">
|
<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.BuildConfiguration.BuildStepList.0">
|
||||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||||
|
|
|
@ -11,8 +11,11 @@ MainWindow::MainWindow(QWidget *parent)
|
||||||
|
|
||||||
ui->tableWidget->setColumnCount(12);
|
ui->tableWidget->setColumnCount(12);
|
||||||
ui->tableWidget->horizontalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents); // 自适应列宽
|
ui->tableWidget->horizontalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents); // 自适应列宽
|
||||||
|
ui->tableWidget_detail->horizontalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents); // 自适应列宽
|
||||||
ui->tableWidget->horizontalHeader()->setMinimumHeight(40);
|
ui->tableWidget->horizontalHeader()->setMinimumHeight(40);
|
||||||
|
|
||||||
|
ui->tableWidget_detail->setVisible(false);
|
||||||
|
|
||||||
pQfile_ori = new QFile;
|
pQfile_ori = new QFile;
|
||||||
pQfile_key = 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_oriPath, &QPushButton::clicked, this, PushButton_Clicked_CatchFile_Callback);
|
||||||
connect(ui->pushButton_keyPath, &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)");
|
QString filePath = QFileDialog::getOpenFileName(this, "选择文件", DesktopLocation, "文本文件(*.txt)");
|
||||||
if (filePath.isEmpty() != true) // 判断路径是否有效
|
if (filePath.isEmpty() != true) // 判断路径是否有效
|
||||||
{
|
{
|
||||||
ui->tableWidget->clear();
|
|
||||||
ui->tableWidget->setRowCount(0);
|
ui->tableWidget->setRowCount(0);
|
||||||
|
ui->tableWidget_detail->setVisible(false);
|
||||||
|
ui->tableWidget_detail->setRowCount(0);
|
||||||
if (isOriFileOpen)
|
if (isOriFileOpen)
|
||||||
{
|
{
|
||||||
if (pQfile_ori && pQfile_ori->fileName() != filePath)
|
if (pQfile_ori && pQfile_ori->fileName() != filePath)
|
||||||
|
@ -796,6 +802,344 @@ QString MainWindow::AppendParse(DATA_TYPEDEF data)
|
||||||
return ret;
|
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> */
|
/* ********************************************************************<Slots> */
|
||||||
// 文件浏览槽函数
|
// 文件浏览槽函数
|
||||||
void MainWindow::PushButton_Clicked_CatchFile_Callback(void)
|
void MainWindow::PushButton_Clicked_CatchFile_Callback(void)
|
||||||
|
@ -813,7 +1157,7 @@ void MainWindow::PushButton_Clicked_CatchFile_Callback(void)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::PushButton_Clicked_Parse_clicked()
|
void MainWindow::PushButton_Clicked_Parse_Callback()
|
||||||
{
|
{
|
||||||
bool isFirstLine = true;
|
bool isFirstLine = true;
|
||||||
qDebug() << "*** \"pushButton_parse\" Clicked Callback ***";
|
qDebug() << "*** \"pushButton_parse\" Clicked Callback ***";
|
||||||
|
@ -851,7 +1195,6 @@ void MainWindow::PushButton_Clicked_Parse_clicked()
|
||||||
break; // todo 需要调试
|
break; // todo 需要调试
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// todo 将String转换为数组
|
|
||||||
QByteArray ba = QByteArray::fromHex(context.mid(strSecondIndex + 1, strFirstIndex - strSecondIndex - 2).toLatin1());
|
QByteArray ba = QByteArray::fromHex(context.mid(strSecondIndex + 1, strFirstIndex - strSecondIndex - 2).toLatin1());
|
||||||
DATA_TYPEDEF bufData;
|
DATA_TYPEDEF bufData;
|
||||||
|
|
||||||
|
@ -885,3 +1228,24 @@ void MainWindow::PushButton_Clicked_Parse_clicked()
|
||||||
disp = context;
|
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 <QJsonDocument>
|
||||||
#include <QJsonArray>
|
#include <QJsonArray>
|
||||||
#include <QJsonObject>
|
#include <QJsonObject>
|
||||||
|
#include <QColor>
|
||||||
#include <QDebug>
|
#include <QDebug>
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
|
@ -37,11 +38,14 @@ public:
|
||||||
QString AppendParse(DATA_TYPEDEF data);
|
QString AppendParse(DATA_TYPEDEF data);
|
||||||
QString GetLampType(uint8_t lampidx);
|
QString GetLampType(uint8_t lampidx);
|
||||||
QString GetEventCode(uint8_t lampidx);
|
QString GetEventCode(uint8_t lampidx);
|
||||||
|
void ShowByteDetail(DATA_TYPEDEF data);
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
void PushButton_Clicked_CatchFile_Callback();
|
void PushButton_Clicked_CatchFile_Callback();
|
||||||
|
|
||||||
void PushButton_Clicked_Parse_clicked();
|
void PushButton_Clicked_Parse_Callback();
|
||||||
|
|
||||||
|
void TableWidget_DoubleClicked_Callback(int row, int colum);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Ui::MainWindow *ui;
|
Ui::MainWindow *ui;
|
||||||
|
|
|
@ -6,14 +6,14 @@
|
||||||
<rect>
|
<rect>
|
||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>1000</width>
|
<width>1560</width>
|
||||||
<height>622</height>
|
<height>919</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<property name="minimumSize">
|
<property name="minimumSize">
|
||||||
<size>
|
<size>
|
||||||
<width>1000</width>
|
<width>1000</width>
|
||||||
<height>400</height>
|
<height>0</height>
|
||||||
</size>
|
</size>
|
||||||
</property>
|
</property>
|
||||||
<property name="windowTitle">
|
<property name="windowTitle">
|
||||||
|
@ -191,9 +191,41 @@ background-color: rgb(91, 255, 88);</string>
|
||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</item>
|
</item>
|
||||||
|
<item>
|
||||||
|
<layout class="QHBoxLayout" name="horizontalLayout" stretch="5,2">
|
||||||
<item>
|
<item>
|
||||||
<widget class="QTableWidget" name="tableWidget"/>
|
<widget class="QTableWidget" name="tableWidget"/>
|
||||||
</item>
|
</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>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
@ -220,8 +252,8 @@ background-color: rgb(91, 255, 88);</string>
|
||||||
<rect>
|
<rect>
|
||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>1000</width>
|
<width>1560</width>
|
||||||
<height>23</height>
|
<height>21</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<widget class="QMenu" name="menu">
|
<widget class="QMenu" name="menu">
|
||||||
|
|
Loading…
Reference in New Issue
Block a user