From c8e2ceb83c4af108305a743a62eaa16d84274908 Mon Sep 17 00:00:00 2001 From: zhaohe Date: Sat, 24 Aug 2024 21:21:01 +0800 Subject: [PATCH] update --- app_protocols/apperrorcode/app_errorcode_mgr.hpp | 2 +- app_protocols/apperrorcode/apperrorcode.hpp | 1 + appsrc/appsetting/project_port/project_port.cpp | 61 +++++++++++++--------- appsrc/appsetting/project_port/project_port.hpp | 6 +-- .../front_msg_processer/front_msg_processer.cpp | 6 ++- .../front_msg_processer/front_msg_processer.hpp | 2 +- appsrc/main.cpp | 1 + appsrc/service/app_core.cpp | 10 +++- appsrc/service/disinfection_logs_service.cpp | 2 +- 9 files changed, 55 insertions(+), 36 deletions(-) diff --git a/app_protocols/apperrorcode/app_errorcode_mgr.hpp b/app_protocols/apperrorcode/app_errorcode_mgr.hpp index 7dc3407..ff17615 100644 --- a/app_protocols/apperrorcode/app_errorcode_mgr.hpp +++ b/app_protocols/apperrorcode/app_errorcode_mgr.hpp @@ -39,7 +39,7 @@ class AppEcodeInfoMgr { if (it != ecodeInfoMap.end()) { return it->second->info; } - return "错误(" + to_string(code) + ")"; + return fmt::format("unkown({})", code); } }; diff --git a/app_protocols/apperrorcode/apperrorcode.hpp b/app_protocols/apperrorcode/apperrorcode.hpp index 4050f2e..cdfa420 100644 --- a/app_protocols/apperrorcode/apperrorcode.hpp +++ b/app_protocols/apperrorcode/apperrorcode.hpp @@ -48,6 +48,7 @@ typedef enum { kappe_setting_id_outof_range = 10216, // 设置ID超出范围 kappe_exception_flag_is_setted = 10217, // 异常标志已设置 kappe_disinfection_state_is_wrong = 10218, // 消毒状态错误 + kappe_component_cfg_not_find = 10219, // 组件配置未找到 } apperror_t; } diff --git a/appsrc/appsetting/project_port/project_port.cpp b/appsrc/appsetting/project_port/project_port.cpp index 8ce6825..53c544f 100644 --- a/appsrc/appsetting/project_port/project_port.cpp +++ b/appsrc/appsetting/project_port/project_port.cpp @@ -6,7 +6,11 @@ // using namespace std; using namespace iflytop; -#define INSERT(id, boardId, subId) componentIdMap.insert({id, {boardId, subId}}) +#define INSERT(id, boardId, subId) \ + { \ + componentIdMap.insert({id.getId(), {boardId, subId}}); \ + logger->info("insert componentIdMap:{}", string(id)); \ + } static string projectType2Str(int val) { switch (val) { @@ -41,65 +45,72 @@ void ProjectPort::initialize() { if (projectTypeName.empty()) { projectTypeName = readHostname(); } + logger->info("======================================================================="); + logger->info("project type:{}", projectTypeName); if (projectTypeName == PROJECT_LARGE_SPACE_DM) { + logger->info("initProjectSetting large_space_disinfection_machine"); initProjectSetting(klarge_space_disinfection_machine); } else if (projectTypeName == PROJECT_SMALL_SPACE_DM) { + logger->info("initProjectSetting small_space_disinfectio_machine"); initProjectSetting(ksmall_space_disinfection_machine); } else if (projectTypeName == PROJECT_PIPE_DM) { + logger->info("initProjectSetting pipe_disinfection_machine"); initProjectSetting(kpipe_disinfection_machine); } else if (projectTypeName == PROJECT_DRAW_BAR_DM) { + logger->info("initProjectSetting draw_bar_disinfection_box"); initProjectSetting(kdraw_bar_disinfection_box); } else { // THROW_APP_EXCEPTION(err::kappe_code_error, "ProjectPort::initialize: projectType not found"); logger->error("project type not support:{}", projectTypeName); exit(-1); } + logger->info("======================================================================="); } int32_t ProjectPort::getProjType() { return projectTypeInt; } string ProjectPort::getProjTypeString() { return projectType; } void ProjectPort::initProjectSetting(int projectTypeInt) { - projectTypeInt = projectTypeInt; - projectType = projectType2Str(projectTypeInt); + this->projectTypeInt = projectTypeInt; + projectType = projectType2Str(projectTypeInt); // 设备ID初始化 if (isLageSpaceDM() || isSmallSpaceDM() || isPipeDM()) { // 加液泵 - INSERT(HardwareComponent::kAddLiquidPump, kFixBoardId_LiquidCtrl, kpumpid_add_liquid); + INSERT(HardwareComponent::AddLiquidPump, kFixBoardId_LiquidCtrl, kpumpid_add_liquid); // 喷雾泵 - INSERT(HardwareComponent::kSprayPump, kFixBoardId_LiquidCtrl, kpumpid_spray); + INSERT(HardwareComponent::SprayPump, kFixBoardId_LiquidCtrl, kpumpid_spray); // 风机 - INSERT(HardwareComponent::kBlower, kFixBoardId_PowerControl, 0); + INSERT(HardwareComponent::Blower, kFixBoardId_PowerControl, 0); // 空压机 - INSERT(HardwareComponent::kAirCompressor, kFixBoardId_PowerControl, 0); + INSERT(HardwareComponent::AirCompressor, kFixBoardId_PowerControl, 0); // 加热器 - INSERT(HardwareComponent::kHeater, kFixBoardId_PowerControl, 0); + INSERT(HardwareComponent::Heater, kFixBoardId_PowerControl, 0); // 报警灯 - INSERT(HardwareComponent::kWarningLight, kFixBoardId_LiquidCtrl, 0); + INSERT(HardwareComponent::WarningLight, kFixBoardId_LiquidCtrl, 0); // 蒸发仓水浸 - INSERT(HardwareComponent::kEvaporationBinWS, kFixBoardId_LiquidCtrl, 0); + INSERT(HardwareComponent::EvaporationBinWS, kFixBoardId_LiquidCtrl, 0); // 底部水浸 - INSERT(HardwareComponent::kDeviceBottomWS, kFixBoardId_LiquidCtrl, 0); + INSERT(HardwareComponent::DeviceBottomWS, kFixBoardId_LiquidCtrl, 0); // 主H2O2传感器 - INSERT(HardwareComponent::kMainH2O2Sensor, kFixBoardId_PowerControl, 0); + INSERT(HardwareComponent::MainH2O2Sensor, kFixBoardId_PowerControl, 0); // 液体重量传感器 - INSERT(HardwareComponent::kLiquidWeightPS, kFixBoardId_LiquidCtrl, 1); + INSERT(HardwareComponent::LiquidWeightPS, kFixBoardId_LiquidCtrl, 1); // 空压机后压力传感器 - INSERT(HardwareComponent::kACPostPS, kFixBoardId_LiquidCtrl, 2); + INSERT(HardwareComponent::ACPostPS, kFixBoardId_LiquidCtrl, 2); // 喷雾泵后压力传感器 - INSERT(HardwareComponent::kSprayPumpPostPS, kFixBoardId_LiquidCtrl, 3); + INSERT(HardwareComponent::SprayPumpPostPS, kFixBoardId_LiquidCtrl, 3); // 加液泵后压力传感器 - INSERT(HardwareComponent::kAddLiquidPumpPostPS, kFixBoardId_LiquidCtrl, 4); + INSERT(HardwareComponent::AddLiquidPumpPostPS, kFixBoardId_LiquidCtrl, 4); if (isPipeDM()) { // 正压比例阀 - INSERT(HardwareComponent::kPositivePressureProportional, kFixBoardId_LiquidCtrl, POSITIVE_PRESSURE_PROPORTIONAL_ID); + INSERT(HardwareComponent::PositivePressureProportional, kFixBoardId_LiquidCtrl, POSITIVE_PRESSURE_PROPORTIONAL_ID); // 负压比例阀 - INSERT(HardwareComponent::kNegativePressureProportional, kFixBoardId_LiquidCtrl, NEGATIVE_PRESSURE_PROPORTIONAL_ID); + INSERT(HardwareComponent::NegativePressureProportional, kFixBoardId_LiquidCtrl, NEGATIVE_PRESSURE_PROPORTIONAL_ID); // 空气密度测试通道控制 - INSERT(HardwareComponent::kAirLeakDetectTestModeCtrl, kFixBoardId_LiquidCtrl, 0); + INSERT(HardwareComponent::AirLeakDetectTestModeCtrl, kFixBoardId_LiquidCtrl, 0); } } if (isDrawBarDM()) { @@ -114,28 +125,28 @@ float ProjectPort::ACPostPS_To_Pa(int rawval) { if (isLageSpaceDM() || isSmallSpaceDM() || isPipeDM()) { return rawval / 10.0 * 1000; } else { - THROW_APP_EXCEPTION(err::kappe_code_error, fmt::format( "project [{}({})] not support: ", to_string(projectTypeInt).c_str(), projectTypeInt)); + THROW_APP_EXCEPTION(err::kappe_code_error, fmt::format("project [{}({})] not support: ", to_string(projectTypeInt).c_str(), projectTypeInt)); } } float ProjectPort::LiquidWeightPS_To_Pa(int rawval) { if (isLageSpaceDM() || isSmallSpaceDM() || isPipeDM()) { return rawval; } else { - THROW_APP_EXCEPTION(err::kappe_code_error, fmt::format( "project [{}({})] not support: ", to_string(projectTypeInt).c_str(), projectTypeInt)); + THROW_APP_EXCEPTION(err::kappe_code_error, fmt::format("project [{}({})] not support: ", to_string(projectTypeInt).c_str(), projectTypeInt)); } } float ProjectPort::SprayPumpPostPS_To_Pa(int rawval) { if (isLageSpaceDM() || isSmallSpaceDM() || isPipeDM()) { return rawval / 10.0 * 1000; } else { - THROW_APP_EXCEPTION(err::kappe_code_error, fmt::format( "project [{}({})] not support: ", to_string(projectTypeInt).c_str(), projectTypeInt)); + THROW_APP_EXCEPTION(err::kappe_code_error, fmt::format("project [{}({})] not support: ", to_string(projectTypeInt).c_str(), projectTypeInt)); } } float ProjectPort::AddLiquidPumpPostPS_To_Pa(int rawval) { if (isLageSpaceDM() || isSmallSpaceDM() || isPipeDM()) { return rawval / 10.0 * 1000; } else { - THROW_APP_EXCEPTION(err::kappe_code_error, fmt::format( "project [{}({})] not support: ", to_string(projectTypeInt).c_str(), projectTypeInt)); + THROW_APP_EXCEPTION(err::kappe_code_error, fmt::format("project [{}({})] not support: ", to_string(projectTypeInt).c_str(), projectTypeInt)); } } @@ -152,7 +163,7 @@ double ProjectPort::getGpm2SpeedRadio() { } else if (isDrawBarDM()) { gpmToSpeedRadio = DRAW_BAR_DM_GPM_TO_SPEED_RADIO; } else { - THROW_APP_EXCEPTION(err::kappe_code_error, fmt::format( "project [{}({})] not support: ", to_string(projectTypeInt).c_str(), projectTypeInt)); + THROW_APP_EXCEPTION(err::kappe_code_error, fmt::format("project [{}({})] not support: ", to_string(projectTypeInt).c_str(), projectTypeInt)); } return gpmToSpeedRadio; } @@ -179,7 +190,7 @@ float ProjectPort::pressurePa2VolumeG(int pa) { if (isDrawBarDM()) { return VolumeConvertor(VolumeConvertor::drawBarBoxParam).pressurePa2VolumeG(pa); } - THROW_APP_EXCEPTION(err::kappe_code_error, fmt::format( "project [{}({})] not support: ", to_string(projectTypeInt).c_str(), projectTypeInt)); + THROW_APP_EXCEPTION(err::kappe_code_error, fmt::format("project [{}({})] not support: ", to_string(projectTypeInt).c_str(), projectTypeInt)); return 0; } int32_t ProjectPort::getMainH2O2SensorId() { return getId(HardwareComponent::MainH2O2Sensor).boardId; } diff --git a/appsrc/appsetting/project_port/project_port.hpp b/appsrc/appsetting/project_port/project_port.hpp index 8c5670f..f88e65f 100644 --- a/appsrc/appsetting/project_port/project_port.hpp +++ b/appsrc/appsetting/project_port/project_port.hpp @@ -44,10 +44,6 @@ class ProjectPort { public: static ProjectPort &ins() { static ProjectPort instance; - if (!instance.isInited) { - instance.initialize(); - instance.isInited = true; - } return instance; } void initialize(); @@ -77,7 +73,7 @@ class ProjectPort { if (it != componentIdMap.end()) { return it->second; } - THROW_APP_EXCEPTION(err::kappe_code_error, "ComponentIdMgr::getId: component not found"); + THROW_APP_EXCEPTION(err::kappe_component_cfg_not_find, ""); } /******************************************************************************* diff --git a/appsrc/baseservice/front_msg_processer/front_msg_processer.cpp b/appsrc/baseservice/front_msg_processer/front_msg_processer.cpp index 9d61515..5607000 100644 --- a/appsrc/baseservice/front_msg_processer/front_msg_processer.cpp +++ b/appsrc/baseservice/front_msg_processer/front_msg_processer.cpp @@ -105,13 +105,15 @@ void FrontMsgProcesser::processMsg(shared_ptr cxt) { cxt->receipt["description"] = fmt::format("{}", e.description); cxt->receipt["fromClass"] = fmt::format("{}", e.fromClass); cxt->receipt["fromFn"] = fmt::format("{}", e.fromFn); + + logger->error("appexception: {}", e.what()); } cxt->receipt["fromClass"] = m_msgProcesserMap[key]->className; cxt->receipt["fromFn"] = m_msgProcesserMap[key]->fnName; } else { logger->error("unknown command: {}", key); - cxt->receipt["ackcode"] = err::kappe_cmd_not_support; - cxt->receipt["message"] = fmt::format("[{}]", ecode2str(cxt->receipt["ackcode"])); + cxt->receipt["ackcode"] = err::kappe_cmd_not_support; + cxt->receipt["message"] = fmt::format("[{}]", ecode2str(cxt->receipt["ackcode"])); } } diff --git a/appsrc/baseservice/front_msg_processer/front_msg_processer.hpp b/appsrc/baseservice/front_msg_processer/front_msg_processer.hpp index 60d2b14..18d80c6 100644 --- a/appsrc/baseservice/front_msg_processer/front_msg_processer.hpp +++ b/appsrc/baseservice/front_msg_processer/front_msg_processer.hpp @@ -93,7 +93,7 @@ class FrontMsgProcesser { TypeInfo info; info.typeName = name; typeInfoMap[type_index(typeid(T))] = info; - logger->info("regType:{} {}", name, typeid(T).name()); + logger->info("regType:{}", name); }; template diff --git a/appsrc/main.cpp b/appsrc/main.cpp index 93c14be..e61b917 100644 --- a/appsrc/main.cpp +++ b/appsrc/main.cpp @@ -73,6 +73,7 @@ int Main::main(int argc, char *argv[]) { // 构造GConfig BUILD_AND_REG_SERRVICE(GConfig); GET_SERVICE(GConfig)->initialize(); + ProjectPort::ins().initialize(); /** * @brief diff --git a/appsrc/service/app_core.cpp b/appsrc/service/app_core.cpp index 65bc7fd..c758cd5 100644 --- a/appsrc/service/app_core.cpp +++ b/appsrc/service/app_core.cpp @@ -74,7 +74,8 @@ static void installEcodeInfo() { AppEcodeInfoMgr::ins().regEcodeInfo(kerr_BlowerError, "鼓风机异常"); AppEcodeInfoMgr::ins().regEcodeInfo(kerr_ProportionalValveError, "气密性测试专用空压机异常"); - AppEcodeInfoMgr::ins().regEcodeInfo(kappe_code_error, "错误码错误"); + AppEcodeInfoMgr::ins().regEcodeInfo(kappe_code_error, "代码错误"); + AppEcodeInfoMgr::ins().regEcodeInfo(kappe_component_cfg_not_find, "组件配置未找到"); AppEcodeInfoMgr::ins().regEcodeInfo(kappe_cmd_not_support, "命令不支持"); AppEcodeInfoMgr::ins().regEcodeInfo(kappe_parse_json_err, "解析json错误"); AppEcodeInfoMgr::ins().regEcodeInfo(kappe_std_exception, "标准库异常"); @@ -104,6 +105,13 @@ static void installEcodeInfo() { AppEcodeInfoMgr::ins().regEcodeInfo(kappe_setting_id_outof_range, "设置ID超出范围"); AppEcodeInfoMgr::ins().regEcodeInfo(kappe_exception_flag_is_setted, "设备硬件异常"); AppEcodeInfoMgr::ins().regEcodeInfo(kappe_disinfection_state_is_wrong, "消毒状态错误"); + + + // AppEcodeInfoMgr::ins().regEcodeInfo(kerr_motor_reset_error, "电机复位错误"); + // AppEcodeInfoMgr::ins().regEcodeInfo(kerr_motor_subdevice_offline, "电机子设备离线"); + // AppEcodeInfoMgr::ins().regEcodeInfo(kerr_motor_driver_error, "电机驱动器错误"); + // AppEcodeInfoMgr::ins().regEcodeInfo(kerr_motor_undervoltage_error, "电机欠压错误"); + // AppEcodeInfoMgr::ins().regEcodeInfo(kerr_motor_unkown_error, "电机未知错误"); } void AppCore::initialize() { diff --git a/appsrc/service/disinfection_logs_service.cpp b/appsrc/service/disinfection_logs_service.cpp index 55655a2..37ef050 100644 --- a/appsrc/service/disinfection_logs_service.cpp +++ b/appsrc/service/disinfection_logs_service.cpp @@ -324,7 +324,7 @@ void DisinfectionLogsService::dumpDisinfectionRecord(string sessionId, listtime, "%Y-%m-%d %H:%M:%S")); if (s->ecode != 0) { - csv.addValue(lineNum, m_csvHeaderDict.getChName(CSVHeader::state), /*****************/ ecode2str(s->ecode)); + csv.addValue(lineNum, m_csvHeaderDict.getChName(CSVHeader::state), /*****************/ "错误:" + ecode2str(s->ecode)); lineNum++; continue; }