diff --git a/ComParseTool/ComParseTool.pro.user b/ComParseTool/ComParseTool.pro.user index fe93e90..5113917 100644 --- a/ComParseTool/ComParseTool.pro.user +++ b/ComParseTool/ComParseTool.pro.user @@ -1,10 +1,10 @@ - + EnvironmentId - {a9a6bae5-cd8f-4b74-ae55-1c4ea6a77b25} + {b72ef07e-303d-4886-ad48-cd1f209eb895} ProjectExplorer.Project.ActiveTarget @@ -54,7 +54,12 @@ ProjectExplorer.Project.PluginSettings - + + + -fno-delayed-template-parsing + + true + ProjectExplorer.Project.Target.0 @@ -66,7 +71,7 @@ 0 0 - E:/Project/QT_Projects/ComParseTool/build-ComParseTool-Desktop_Qt_5_14_2_MinGW_32_bit-Debug + D:/_SRC/_tools/ComParseTool/build-ComParseTool-Desktop_Qt_5_14_2_MinGW_32_bit-Debug true @@ -114,7 +119,7 @@ 2 - E:/Project/QT_Projects/ComParseTool/build-ComParseTool-Desktop_Qt_5_14_2_MinGW_32_bit-Release + D:/_SRC/_tools/ComParseTool/build-ComParseTool-Desktop_Qt_5_14_2_MinGW_32_bit-Release true @@ -162,7 +167,7 @@ 0 - E:/Project/QT_Projects/ComParseTool/build-ComParseTool-Desktop_Qt_5_14_2_MinGW_32_bit-Profile + D:/_SRC/_tools/ComParseTool/build-ComParseTool-Desktop_Qt_5_14_2_MinGW_32_bit-Profile true @@ -282,8 +287,8 @@ 2 - Qt4ProjectManager.Qt4RunConfiguration:E:/Project/QT_Projects/ComParseTool/ComParseTool/ComParseTool.pro - E:/Project/QT_Projects/ComParseTool/ComParseTool/ComParseTool.pro + Qt4ProjectManager.Qt4RunConfiguration:D:/_SRC/_tools/ComParseTool/ComParseTool/ComParseTool.pro + D:/_SRC/_tools/ComParseTool/ComParseTool/ComParseTool.pro false @@ -294,7 +299,7 @@ false true - E:/Project/QT_Projects/ComParseTool/build-ComParseTool-Desktop_Qt_5_14_2_MinGW_32_bit-Debug + D:/_SRC/_tools/ComParseTool/build-ComParseTool-Desktop_Qt_5_14_2_MinGW_32_bit-Debug 1 @@ -309,7 +314,7 @@ 0 0 - E:/Project/QT_Projects/ComParseTool/build-ComParseTool-Desktop_Qt_5_14_2_MinGW_64_bit-Debug + D:/_SRC/_tools/ComParseTool/build-ComParseTool-Desktop_Qt_5_14_2_MinGW_64_bit-Debug true @@ -357,7 +362,7 @@ 2 - E:/Project/QT_Projects/ComParseTool/build-ComParseTool-Desktop_Qt_5_14_2_MinGW_64_bit-Release + D:/_SRC/_tools/ComParseTool/build-ComParseTool-Desktop_Qt_5_14_2_MinGW_64_bit-Release true @@ -405,7 +410,7 @@ 0 - E:/Project/QT_Projects/ComParseTool/build-ComParseTool-Desktop_Qt_5_14_2_MinGW_64_bit-Profile + D:/_SRC/_tools/ComParseTool/build-ComParseTool-Desktop_Qt_5_14_2_MinGW_64_bit-Profile true diff --git a/ComParseTool/lamp_type.js b/ComParseTool/lamp_type.js new file mode 100644 index 0000000..f15e0db --- /dev/null +++ b/ComParseTool/lamp_type.js @@ -0,0 +1,54 @@ +[ + { + "typeid": 0, + "typestr": "未知类型" + }, + { + "typeid": 229, + "typestr": "照明灯" + }, + { + "typeid": 230, + "typestr": "左向标志灯" + }, + { + "typeid": 231, + "typestr": "右向标志灯" + }, + { + "typeid": 232, + "typestr": "双向标志灯" + }, + { + "typeid": 233, + "typestr": "单项地埋灯" + }, + { + "typeid": 234, + "typestr": "双向地埋灯" + }, + { + "typeid": 234, + "typestr": "楼层标志灯" + }, + { + "typeid": 236, + "typestr": "安全出口灯" + }, + { + "typeid": 237, + "typestr": "语音安全出口灯" + }, + { + "typeid": 238, + "typestr": "疏散出口灯" + }, + { + "typeid": 239, + "typestr": "通用标志灯" + }, + { + "typeid": 240, + "typestr": "可变状态标志灯" + } +] diff --git a/ComParseTool/mainwindow.cpp b/ComParseTool/mainwindow.cpp index ab17e7c..52a2d26 100644 --- a/ComParseTool/mainwindow.cpp +++ b/ComParseTool/mainwindow.cpp @@ -17,6 +17,8 @@ MainWindow::MainWindow(QWidget *parent) MainWindow::~MainWindow() { + delete pQfile_ori; + delete pQfile_key; delete ui; } @@ -33,7 +35,7 @@ void MainWindow::BindSlot(void) void MainWindow::OpenExplorerFile(bool isOriFileOpen) { QString DesktopLocation = QStandardPaths::writableLocation(QStandardPaths::DesktopLocation); // 获取桌面路径 - QString filePath = QFileDialog::getOpenFileName(this, "选择源文件", DesktopLocation, "文本文件(*.txt)"); + QString filePath = QFileDialog::getOpenFileName(this, "选择文件", DesktopLocation, "文本文件(*.txt)"); if (filePath.isEmpty() != true) { ui->textEdit->clear(); @@ -71,6 +73,60 @@ void MainWindow::OpenExplorerFile(bool isOriFileOpen) } } +QString MainWindow::GetEventCode(uint8_t eventidx) +{ + QString str = 0; + QFile file(":/event_code.js"); + if (!file.open(QIODevice::ReadOnly)) + { + return "ERROR1"; + } + QJsonParseError err; + QJsonDocument doc = QJsonDocument::fromJson(file.readAll(), &err); + if (err.error != QJsonParseError::NoError) + { + return "ERROR2"; + } + QJsonArray ja = doc.array(); // 转化为json数组 + for (uint16_t i = 0; i < ja.size(); i++) + { + QJsonObject ob = ja.at(i).toObject(); + if (ob.value("idx") == eventidx) + { + str = ob.value("event").toString(); + } + } + + return str; +} + +QString MainWindow::GetLampType(uint8_t lampidx) +{ + QString str = 0; + QFile file(":/lamp_type.js"); + if (!file.open(QIODevice::ReadOnly)) + { + return "ERROR1"; + } + QJsonParseError err; + QJsonDocument doc = QJsonDocument::fromJson(file.readAll(), &err); + if (err.error != QJsonParseError::NoError) + { + return "ERROR2"; + } + QJsonArray ja = doc.array(); // 转化为json数组 + for (uint16_t i = 0; i < ja.size(); i++) + { + QJsonObject ob = ja.at(i).toObject(); + if (ob.value("typeid") == lampidx) + { + str = ob.value("typestr").toString(); + } + } + + return str; +} + QString MainWindow::AppendParse(DATA_TYPEDEF data) { QString ret = nullptr; @@ -243,6 +299,33 @@ QString MainWindow::AppendParse(DATA_TYPEDEF data) case 0x18: { ret += "器件注册/查询"; + unsigned int id = data.buf[1] << 16 | data.buf[2] << 8 | data.buf[3]; + ret += "-" + QString::number(id, 10); + ret += "-回路" + QString::number(data.buf[4], 10); + if (data.buf[5] == 0x01) + { + ret += "-flash读取"; + } + else if(data.buf[5] == 0x02) + { + ret += "-单播注册"; + } + else if (data.buf[5] == 0x03) + { + ret += "-广播注册"; + } + else if (data.buf[5] == 0x04) + { + ret += "-回路读取"; + } + else if (data.buf[5] == 0x12) + { + ret += "单播新增注册"; + } + else if (data.buf[5] == 0x13) + { + ret += "广播新增注册"; + } }break; case 0x19: { @@ -251,34 +334,97 @@ QString MainWindow::AppendParse(DATA_TYPEDEF data) case 0x1a: { ret += "读灯具信息"; + switch(data.buf[7]) + { + case 0x01: + { + ret += "-读取灯具状态"; + }break; + case 0x02: + { + ret += "-读取灯具类型"; + }break; + case 0x03: + { + ret += "-读取灯具状态和类型"; + }break; + } }break; case 0x1b: { ret += "单电源控制查询"; + switch(data.buf[4]) + { + case 0x01: + { + ret += "-月检"; + }break; + case 0x02: + { + ret += "-年季检"; + }break; + case 0x03: + { + ret += "-复位"; + }break; + case 0x04: + { + ret += "-应急"; + }break; + case 0x05: + { + ret += "-停止应急"; + }break; + case 0x06: + { + ret += "-0号预案"; + }break; + case 0x07: + { + ret += "-停止主电源断电应急"; + }break; + case 0x11: + { + ret += "-查询电源信息和状态"; + }break; + case 0x12: + { + ret += "-查询电源电压电流"; + }break; + case 0x13: + { + ret += "-查询电源回路电压电流"; + }break; + } }break; case 0x1c: { - ret += "设置单个回路器件总数"; + ret += "-设置单个回路器件总数"; }break; case 0x1d: { - ret += "版本信息查询"; + ret += "-版本信息查询"; }break; case 0x1e: { - ret += "灯具设置检查"; + ret += "-灯具设置检查"; }break; case 0x1f: { - ret += "集中电源配置"; + ret += "-集中电源配置"; }break; case 0x20: { ret += "应答单个回路器件总数"; + ret += "-回路" + QString::number(data.buf[1], 10); + ret += "-数量" + QString::number(data.buf[3] << 8 | data.buf[2], 10); }break; case 0x21: { ret += "应答灯具状态"; + unsigned long id = data.buf[6] | data.buf[5] << 8 | data.buf[4] << 16 | data.buf[3] << 24; + ret += "-" + QString::number(id, 10); + ret += "-" + GetEventCode(data.buf[7]); }break; case 0x22: // todo { @@ -291,6 +437,9 @@ QString MainWindow::AppendParse(DATA_TYPEDEF data) case 0x24: { ret += "应答灯具类型"; + unsigned long id = data.buf[6] | data.buf[5] << 8 | data.buf[4] << 16 | data.buf[3] << 24; + ret += "-" + QString::number(id, 10); + ret += "-" + GetLampType(data.buf[7]); }break; case 0x25: { @@ -316,32 +465,13 @@ QString MainWindow::AppendParse(DATA_TYPEDEF data) } else { - ret += "-拓展" + QString::number(data.buf[7], 10); + ret += "-拓展" + QString::number(data.buf[7] | data.buf[6] << 8 | data.buf[5] << 16 | data.buf[4] << 24, 10); } } else if(data.buf[1] == 0x00) { ret += "-回路" + QString::number(data.buf[2], 10); - QFile file(":/event_code.js"); - if (!file.open(QIODevice::ReadOnly)) - { - return "ERROR1"; - } - QJsonParseError err; - QJsonDocument doc = QJsonDocument::fromJson(file.readAll(), &err); - if (err.error != QJsonParseError::NoError) - { - return "ERROR2"; - } - QJsonArray ja = doc.array(); // 转化为json数组 - for (uint16_t i = 0; i < ja.size(); i++) - { - QJsonObject ob = ja.at(i).toObject(); - if (ob.value("idx") == data.buf[3]) - { - ret += "-" + ob.value("event").toString(); - } - } + ret += "-" + GetEventCode(data.buf[3]); } }break; case 0x2a: @@ -369,34 +499,58 @@ QString MainWindow::AppendParse(DATA_TYPEDEF data) case 0x31: { ret += "回路1注册灯具类型"; + unsigned long id = data.buf[6] | data.buf[5] << 8 | data.buf[4] << 16 | data.buf[3] << 24; + ret += "-" + QString::number(id, 10); + ret += "-" + GetLampType(data.buf[7]); }break; case 0x32: { ret += "回路2注册灯具类型"; + unsigned long id = data.buf[6] | data.buf[5] << 8 | data.buf[4] << 16 | data.buf[3] << 24; + ret += "-" + QString::number(id, 10); + ret += "-" + GetLampType(data.buf[7]); }break; case 0x33: { ret += "回路3注册灯具类型"; + unsigned long id = data.buf[6] | data.buf[5] << 8 | data.buf[4] << 16 | data.buf[3] << 24; + ret += "-" + QString::number(id, 10); + ret += "-" + GetLampType(data.buf[7]); }break; case 0x34: { ret += "回路4注册灯具类型"; + unsigned long id = data.buf[6] | data.buf[5] << 8 | data.buf[4] << 16 | data.buf[3] << 24; + ret += "-" + QString::number(id, 10); + ret += "-" + GetLampType(data.buf[7]); }break; case 0x35: { ret += "回路5注册灯具类型"; + unsigned long id = data.buf[6] | data.buf[5] << 8 | data.buf[4] << 16 | data.buf[3] << 24; + ret += "-" + QString::number(id, 10); + ret += "-" + GetLampType(data.buf[7]); }break; case 0x36: { ret += "回路6注册灯具类型"; + unsigned long id = data.buf[6] | data.buf[5] << 8 | data.buf[4] << 16 | data.buf[3] << 24; + ret += "-" + QString::number(id, 10); + ret += "-" + GetLampType(data.buf[7]); }break; case 0x37: { ret += "回路7注册灯具类型"; + unsigned long id = data.buf[6] | data.buf[5] << 8 | data.buf[4] << 16 | data.buf[3] << 24; + ret += "-" + QString::number(id, 10); + ret += "-" + GetLampType(data.buf[7]); }break; case 0x38: { ret += "回路8注册灯具类型"; + unsigned long id = data.buf[6] | data.buf[5] << 8 | data.buf[4] << 16 | data.buf[3] << 24; + ret += "-" + QString::number(id, 10); + ret += "-" + GetLampType(data.buf[7]); }break; case 0x39: { @@ -409,6 +563,15 @@ QString MainWindow::AppendParse(DATA_TYPEDEF data) case 0x3b: { ret += "回答版本信息"; + if (data.buf[1] == 0x01) + { + ret += "-显示板版本" + QString::number(data.buf[6] << 8 | data.buf[7], 16); + } + else + { + ret += "-回路版本" + QString::number(data.buf[2] << 8 | data.buf[3], 16); + ret += "-电源版本" + QString::number(data.buf[4] << 8 | data.buf[5], 16); + } }break; case 0x3c: { @@ -417,6 +580,18 @@ QString MainWindow::AppendParse(DATA_TYPEDEF data) case 0x3d: { ret += "集中电源注册状态"; + ret += "-回路" + QString::number(data.buf[1], 10); + if (data.buf[2] == 0x01) + { + ret += "-注册中"; + } + else if (data.buf[2] == 0x02) + { + ret += "-注册完成"; + } + + uint16_t num = data.buf[3] << 8 | data.buf[4]; + ret += "-数量" + QString::number(num, 10); }break; case 0x3e: case 0x3f: diff --git a/ComParseTool/mainwindow.h b/ComParseTool/mainwindow.h index 8cb4ae3..e87ccea 100644 --- a/ComParseTool/mainwindow.h +++ b/ComParseTool/mainwindow.h @@ -35,6 +35,8 @@ public: void BindSlot(void); void OpenExplorerFile(bool isOriFileOpen); QString AppendParse(DATA_TYPEDEF data); + QString GetLampType(uint8_t lampidx); + QString GetEventCode(uint8_t lampidx); private slots: void PushButton_Clicked_CatchFile_Callback(); diff --git a/ComParseTool/src.qrc b/ComParseTool/src.qrc index f4930ab..58c3db8 100644 --- a/ComParseTool/src.qrc +++ b/ComParseTool/src.qrc @@ -1,5 +1,6 @@ event_code.js + lamp_type.js diff --git a/release/ComParseTool.exe b/release/ComParseTool.exe index 105d9e8..f80285c 100644 Binary files a/release/ComParseTool.exe and b/release/ComParseTool.exe differ