From f9ce6a4eeba0876b85aad3e28923669edc9161df Mon Sep 17 00:00:00 2001 From: zhaohe Date: Wed, 7 Aug 2024 17:41:39 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E6=88=90=E5=9F=BA=E6=9C=AC=E6=A1=86?= =?UTF-8?q?=E6=9E=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app_protocols/ecode/pcecode.hpp | 6 +++ app_protocols/ecode/publicecode.hpp | 12 ++++++ app_protocols/transmit_disfection_protocol | 2 +- .../transmit_disinfection_can_master.cpp | 13 +++++++ src/db/ecode_info_mgr.cpp | 17 +++++++++ src/db/ecode_info_mgr.hpp | 43 ++++++++++++++++++++++ .../zscanprotocol_com/zscanprotocol_com.cpp | 6 +-- .../zscanprotocol_com/zscanprotocol_com.hpp | 2 - src/zqui/ui/z_function_list_box.cpp | 2 +- src/zqui/zqui/zqui.hpp | 4 +- 10 files changed, 97 insertions(+), 10 deletions(-) create mode 100644 app_protocols/ecode/pcecode.hpp create mode 100644 app_protocols/ecode/publicecode.hpp create mode 100644 src/db/ecode_info_mgr.cpp create mode 100644 src/db/ecode_info_mgr.hpp diff --git a/app_protocols/ecode/pcecode.hpp b/app_protocols/ecode/pcecode.hpp new file mode 100644 index 0000000..7f656ea --- /dev/null +++ b/app_protocols/ecode/pcecode.hpp @@ -0,0 +1,6 @@ +#pragma once + +typedef enum { + ke_channel_is_close = 10000 + 1, + ke_parse_config_file_fail = 10000 + 2, +} pc_ecode_t; diff --git a/app_protocols/ecode/publicecode.hpp b/app_protocols/ecode/publicecode.hpp new file mode 100644 index 0000000..b1407f7 --- /dev/null +++ b/app_protocols/ecode/publicecode.hpp @@ -0,0 +1,12 @@ +#pragma once + +typedef enum { + kerr_noerror = 0, + kerr_overtime = 1, + kerr_invalid_param = 2, + kerr_invalid_param_num = 3, + kerr_subdevice_offline = 4, + kerr_function_not_support = 5, + kerr_function_not_support = 5, +} public_ecode_t; + diff --git a/app_protocols/transmit_disfection_protocol b/app_protocols/transmit_disfection_protocol index 723f3fb..7ec8b89 160000 --- a/app_protocols/transmit_disfection_protocol +++ b/app_protocols/transmit_disfection_protocol @@ -1 +1 @@ -Subproject commit 723f3fb8223f66d47cc9817a89940c93f6f2d15d +Subproject commit 7ec8b89424ab02856d3c48a77dfb11e790db4693 diff --git a/src/app/transmit_disinfection/transmit_disinfection_can_master.cpp b/src/app/transmit_disinfection/transmit_disinfection_can_master.cpp index aa98bd5..0d9708e 100644 --- a/src/app/transmit_disinfection/transmit_disinfection_can_master.cpp +++ b/src/app/transmit_disinfection/transmit_disinfection_can_master.cpp @@ -1,4 +1,6 @@ #include "transmit_disinfection_can_master.hpp" + +#include "db/ecode_info_mgr.hpp" using namespace iflytop; using namespace zscanprotocol; using namespace transmit_disfection_protocol; @@ -7,6 +9,17 @@ using namespace transmit_disfection_protocol; void TransmitDisinfectionCanMaster::initialize(QTSerialChannel *ch) { m_com = new ZSCanProtocolCom(); m_com->initialize(ch); + + EcodeInfoMgr::ins().regEcodeInfo(kerr_motor_reset_error, "kerr_motor_reset_error"); + EcodeInfoMgr::ins().regEcodeInfo(kerr_motor_subdevice_offline, "kerr_motor_subdevice_offline"); + EcodeInfoMgr::ins().regEcodeInfo(kerr_motor_driver_error, "kerr_motor_driver_error"); + EcodeInfoMgr::ins().regEcodeInfo(kerr_motor_undervoltage_error, "kerr_motor_undervoltage_error"); + EcodeInfoMgr::ins().regEcodeInfo(kerr_motor_unkown_error, "kerr_motor_unkown_error"); + + EcodeInfoMgr::ins().regEcodeInfo(kerr_AirBlowerError, "kerr_AirBlowerError"); + EcodeInfoMgr::ins().regEcodeInfo(kerr_HeaterError, "kerr_HeaterError"); + EcodeInfoMgr::ins().regEcodeInfo(kerr_BlowerError, "kerr_BlowerError"); + EcodeInfoMgr::ins().regEcodeInfo(kerr_ProportionalValveError, "kerr_ProportionalValveError"); } ack_read_board_info_data_t TransmitDisinfectionCanMaster::readboardinfo(int to) { diff --git a/src/db/ecode_info_mgr.cpp b/src/db/ecode_info_mgr.cpp new file mode 100644 index 0000000..d9c2143 --- /dev/null +++ b/src/db/ecode_info_mgr.cpp @@ -0,0 +1,17 @@ +#include "ecode_info_mgr.hpp" + +#include "ecode/pcecode.hpp" +#include "ecode/publicecode.hpp" +using namespace iflytop; + +void EcodeInfoMgr::regPublicEcode() { + regEcodeInfo(kerr_noerror, "no error"); + regEcodeInfo(kerr_overtime, "overtime"); + regEcodeInfo(kerr_invalid_param, "invalid param"); + regEcodeInfo(kerr_invalid_param_num, "invalid param num"); + regEcodeInfo(kerr_subdevice_offline, "subdevice offline"); + regEcodeInfo(kerr_function_not_support, "function not support"); + + regEcodeInfo(ke_channel_is_close, "channel is close"); + regEcodeInfo(ke_parse_config_file_fail, "parse config file fail"); +} diff --git a/src/db/ecode_info_mgr.hpp b/src/db/ecode_info_mgr.hpp new file mode 100644 index 0000000..067a0b9 --- /dev/null +++ b/src/db/ecode_info_mgr.hpp @@ -0,0 +1,43 @@ +#pragma once +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +namespace iflytop { +using namespace std; + +class EcodeInfo { + public: + int code; + string info; + EcodeInfo(int code, const string& info) : code(code), info(info) {} +}; + +class EcodeInfoMgr { + map> ecodeInfoMap; + + public: + static EcodeInfoMgr& ins() { + static EcodeInfoMgr instance; + return instance; + } + + void regEcodeInfo(int code, const string& info) { ecodeInfoMap[code] = make_shared(code, info); } + void regPublicEcode(); + + string getEcodeInfo(int code) { + auto it = ecodeInfoMap.find(code); + if (it != ecodeInfoMap.end()) { + return it->second->info; + } + return "E(" + to_string(code) + ")"; + } +}; + +} // namespace iflytop \ No newline at end of file diff --git a/src/protocol/zscanprotocol_com/zscanprotocol_com.cpp b/src/protocol/zscanprotocol_com/zscanprotocol_com.cpp index b607e83..c882b4c 100644 --- a/src/protocol/zscanprotocol_com/zscanprotocol_com.cpp +++ b/src/protocol/zscanprotocol_com/zscanprotocol_com.cpp @@ -1,4 +1,5 @@ #include "zscanprotocol_com.hpp" +#include "db/ecode_info_mgr.hpp" #include @@ -223,8 +224,5 @@ shared_ptr ZSCanProtocolCom::callcmd4(int32_t to, int32_t cmdid, int32_ void ZSCanProtocolCom::sendraw(int32_t from, int32_t to, uint8_t *data, size_t len) { sendframe(from, to, data, len); } string ZSCanProtocolCom::ecode2str(int ecode) { - if (m_ecode2str) { - return m_ecode2str(ecode); - } - return "Ecode(" + to_string(ecode) + ")"; + return EcodeInfoMgr::ins().getEcodeInfo(ecode); } diff --git a/src/protocol/zscanprotocol_com/zscanprotocol_com.hpp b/src/protocol/zscanprotocol_com/zscanprotocol_com.hpp index 4bd63c9..c5bdc4e 100644 --- a/src/protocol/zscanprotocol_com/zscanprotocol_com.hpp +++ b/src/protocol/zscanprotocol_com/zscanprotocol_com.hpp @@ -87,7 +87,6 @@ class ZSCanProtocolCom { zcanbus_packet_t *m_receipt_frame = (zcanbus_packet_t *)m_receipt_cache; size_t m_receipt_len = 0; - ecode2str_t m_ecode2str; public: ZSCanProtocolCom() {} @@ -95,7 +94,6 @@ class ZSCanProtocolCom { public: void initialize(QTSerialChannel *ch); void regOnRawData(on_raw_data_t cb) { on_rx_raw = cb; } - void regEcdoe2Str(ecode2str_t cb) { m_ecode2str = cb; } void updateChannelConfig(); shared_ptr callcmd(int32_t to, int32_t cmdid, uint8_t *param, int32_t paramLen, int32_t overtime = 100); diff --git a/src/zqui/ui/z_function_list_box.cpp b/src/zqui/ui/z_function_list_box.cpp index c0ea777..f37f082 100644 --- a/src/zqui/ui/z_function_list_box.cpp +++ b/src/zqui/ui/z_function_list_box.cpp @@ -98,7 +98,7 @@ void ZQFunctionListBox::newFunc(QString zh_name, QStringList params, std::functi onButtonClick(params.size(), (const char **)args); ISHOW("OK"); } catch (const std::zexception &e) { - ISHOW_ERROR("%s", e.what()); + ISHOW_ERROR("e.what()=%s", e.what()); } }); }); diff --git a/src/zqui/zqui/zqui.hpp b/src/zqui/zqui/zqui.hpp index 1076e3c..1c1fa24 100644 --- a/src/zqui/zqui/zqui.hpp +++ b/src/zqui/zqui/zqui.hpp @@ -4,11 +4,11 @@ // #include "zqui/channelmgr/channelmgr.hpp" // -#include "mainwindow.h" #include "appnavibar.h" +#include "mainwindow.h" #define ISHOW(fmt, ...) ZQUI::ins()->iShow(fmt, ##__VA_ARGS__) -#define ISHOW_ERROR(fmt, ...) ZQUI::ins()->iShow("错误: ", fmt, ##__VA_ARGS__) +#define ISHOW_ERROR(fmt, ...) ZQUI::ins()->iShow("错误: " fmt, ##__VA_ARGS__) #define IRSHOW(fmt, ...) ZQUI::ins()->iRawShow(fmt, ##__VA_ARGS__) #define ICLEAR() ZQUI::ins()->iClear()