diff --git a/app_protocols/apperrorcode/apperrorcode.hpp b/app_protocols/apperrorcode/apperrorcode.hpp index 6c9792f..4050f2e 100644 --- a/app_protocols/apperrorcode/apperrorcode.hpp +++ b/app_protocols/apperrorcode/apperrorcode.hpp @@ -13,72 +13,41 @@ namespace iflytop { using namespace std; -// // 驱动器错误 -// kerr_motor_reset_error = 100, -// kerr_motor_subdevice_offline = 101, -// kerr_motor_driver_error = 102, -// kerr_motor_undervoltage_error = 103, -// kerr_motor_unkown_error = 104, - -// kerr_AirBlowerError = 200, // 空压机异常 -// kerr_HeaterError = 201, // 加热片异常 -// kerr_BlowerError = 202, // 鼓风机异常 -// kerr_ProportionalValveError = 203, // 气密性测试专用空压机异常 - -// kerr_noerror = 0, -// kerr_overtime = 1, -// kerr_invalid_param = 2, -// kerr_invalid_param_num = 3, -// kerr_subdevice_offline = 4, -// kerr_function_not_support = 5, - namespace err { typedef enum { ksucc = 0, - kappe_begin = 10000, - - kappe_disinfectant_insufficient = 10001, // 消毒液不足 - kappe_the_bottom_of_the_device_has_water = 10002, // 设备底部有水 - kappe_the_evaporation_bin_has_water = 10003, // 蒸发仓有水 - kappe_the_sensor_is_prehearting = 10004, // 传感器正在预热 - kappe_code_error = 10005, // 代码错误 - - kappe_user_not_exist = 10006, - kappe_operate_error = 10007, - kappe_passwd_error = 10008, - kappe_cmd_not_support = 10009, - kappe_parse_json_err = 10010, - kappe_std_exception = 10011, - kappe_db_operate_error = 10012, - - // 未检测到U盘 - kappe_not_detect_udisk = 10013, - // U盘读写错误 - kappe_udisk_wr_fail = 10014, - // - kappe_file_operate_error = 10015, - - kappe_missing_param = 10016, - kappe_param_num_err = 10017, - kappe_param_value_err = 10018, - - // 液体已加到位 - kappe_adding_liquid_is_already_in_place = 10100, - // 加液大于设备最大容量 - kappe_adding_liquid_is_greater_than_the_maximum_capacity_of_the_device = 10101, - - kappe_state_is_busy = 10020, - - kappe_is_adding_liquid = 10021, // 加液中 - kappe_is_draining_liquid = 10022, // 排液中 - kappe_is_disinfecting = 10023, // 消毒中 - kappe_is_air_leak_detect_testing = 10024, // 气密性测试中 - - kappe_is_cant_find_setting_id = 10025, // 未找到设置ID - kappe_exception_flag_is_setted = 10026, // - kappe_sensor_is_pre_hearting = 10027, // 传感器正在预热 - kappe_disinfection_state_is_wrong = 10028, // 消毒状态错误 + kappe_begin = 10000, + kappe_code_error = 10001, // 代码错误 + kappe_cmd_not_support = 10003, // 命令不支持 + kappe_parse_json_err = 10004, // 解析json错误 + kappe_std_exception = 10005, // 标准库异常 + kappe_db_operate_error = 10006, // 数据库操作错误 + kappe_missing_param = 10007, // 缺少参数 + kappe_param_num_err = 10008, // 参数个数错误 + kappe_param_value_err = 10009, // 参数值错误 + + kappe_user_not_exist = 10101, // 用户不存在 + kappe_passwd_error = 10102, // 密码错误 + + kappe_disinfectant_insufficient = 10201, // 消毒液不足 + kappe_the_bottom_of_the_device_has_water = 10202, // 设备底部有水 + kappe_the_evaporation_bin_has_water = 10203, // 蒸发仓有水 + kappe_the_sensor_is_prehearting = 10204, // 传感器正在预热 + kappe_not_detect_udisk = 10205, // 未检测到U盘 + kappe_udisk_wr_fail = 10206, // U盘读写错误 + kappe_open_file_error = 10207, // 文件操作错误 + kappe_adding_liquid_is_already_in_place = 10208, // 液体已加到位 + kappe_adding_liquid_is_greater_than_the_maximum_capacity_of_the_device = 10209, // 加液大于设备最大容量 + kappe_sensor_is_pre_hearting = 10210, // 传感器正在预热 + kappe_state_is_busy = 10211, // 设备忙 + kappe_is_adding_liquid = 10212, // 加液中 + kappe_is_draining_liquid = 10213, // 排液中 + kappe_is_disinfecting = 10214, // 消毒中 + kappe_is_air_leak_detect_testing = 10215, // 气密性测试中 + kappe_setting_id_outof_range = 10216, // 设置ID超出范围 + kappe_exception_flag_is_setted = 10217, // 异常标志已设置 + kappe_disinfection_state_is_wrong = 10218, // 消毒状态错误 } apperror_t; } diff --git a/app_protocols/appexception/appexception.hpp b/app_protocols/appexception/appexception.hpp index 8243477..0d946bd 100644 --- a/app_protocols/appexception/appexception.hpp +++ b/app_protocols/appexception/appexception.hpp @@ -33,7 +33,7 @@ class appexception : public std::exception { appexception(ThisClass &thisclass, string func, int32_t ecode, const string &description) { this->description = description; this->m_ecode = ecode; - this->whatstr = fmt::format("[{}:{}] throw exception: {} {}", thisclass.className, func, ecode2str(ecode), description); + this->whatstr = fmt::format("[FROM {}:{}],exception:{} {}", thisclass.className, func, ecode2str(ecode), description); // thisclass.logger->error(whatstr); } @@ -45,7 +45,7 @@ class appexception : public std::exception { this->description = buffer; this->m_ecode = ecode; - this->whatstr = fmt::format("[{}:{}] throw exception: {} {}", thisclass.className, func, ecode2str(ecode), buffer); + this->whatstr = fmt::format("[FROM {}:{}],exception:{} {}", thisclass.className, func, ecode2str(ecode), buffer); // thisclass.logger->error(whatstr); } diff --git a/appsrc/baseservice/front_msg_processer/front_msg_processer.cpp b/appsrc/baseservice/front_msg_processer/front_msg_processer.cpp index 0ee0030..dd4c144 100644 --- a/appsrc/baseservice/front_msg_processer/front_msg_processer.cpp +++ b/appsrc/baseservice/front_msg_processer/front_msg_processer.cpp @@ -97,9 +97,8 @@ void FrontMsgProcesser::processMsg(shared_ptr cxt) { } } catch (const appexception& e) { - logger->error("process {} error: {}", key, e.what()); cxt->receipt["ackcode"] = e.ecode(); - cxt->receipt["message"] = fmt::format("[{}],{}", ecode2str(cxt->receipt["ackcode"]), e.what()); + cxt->receipt["message"] = fmt::format("[{}],{}", ecode2str(cxt->receipt["ackcode"]), e.description); } cxt->receipt["fromClass"] = m_msgProcesserMap[key]->className; diff --git a/appsrc/service/app/disinfection_ctrl/disinfection_ctrl_service.cpp b/appsrc/service/app/disinfection_ctrl/disinfection_ctrl_service.cpp index 946abbb..754e9d7 100644 --- a/appsrc/service/app/disinfection_ctrl/disinfection_ctrl_service.cpp +++ b/appsrc/service/app/disinfection_ctrl/disinfection_ctrl_service.cpp @@ -32,7 +32,7 @@ string DisinfectionCtrlService::getSetting(SettingId sid) { string str = GET_SERVICE(SettingDBDao)->getSettingValAsString(sid); if (str.empty()) { - THROW_APP_EXCEPTION(err::kappe_is_cant_find_setting_id, "%s", string(sid).c_str()); + THROW_APP_EXCEPTION(err::kappe_setting_id_outof_range, "%s", string(sid).c_str()); } return str; } diff --git a/appsrc/service/app_core.cpp b/appsrc/service/app_core.cpp index cb6bf0f..896efef 100644 --- a/appsrc/service/app_core.cpp +++ b/appsrc/service/app_core.cpp @@ -25,13 +25,86 @@ using namespace iflytop; using namespace core; using namespace std; using namespace nlohmann; +using namespace err; void AppCore::dosystem(string order, bool dump) { if (dump) logger->info("do:{}", order); system(order.c_str()); } +static void installEcodeInfo() { + // kerr_motor_reset_error = 100, + // kerr_motor_subdevice_offline = 101, + // kerr_motor_driver_error = 102, + // kerr_motor_undervoltage_error = 103, + // kerr_motor_unkown_error = 104, + + // kerr_motor_overtemperature_flag = 105, + // kerr_motor_overtemperature_pre_warning_flag = 106, + // kerr_motor_short_to_ground_indicator_phase_A = 107, + // kerr_motor_short_to_ground_indicator_phase_B = 108, + // kerr_motor_open_load_indicator_phase_A = 109, + // kerr_motor_open_load_indicator_phase_B = 110, + // kerr_motor_standstill_indicator = 111, + + // kerr_AirBlowerError = 200, // 空压机异常 + // kerr_HeaterError = 201, // 加热片异常 + // kerr_BlowerError = 202, // 鼓风机异常 + // kerr_ProportionalValveError = 203, // 气密性测试专用空压机异常 + + 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, "电机未知错误"); + + AppEcodeInfoMgr::ins().regEcodeInfo(kerr_motor_overtemperature_flag, "电机过温"); + AppEcodeInfoMgr::ins().regEcodeInfo(kerr_motor_overtemperature_pre_warning_flag, "电机过温预警"); + AppEcodeInfoMgr::ins().regEcodeInfo(kerr_motor_short_to_ground_indicator_phase_A, "电机A相短接"); + AppEcodeInfoMgr::ins().regEcodeInfo(kerr_motor_short_to_ground_indicator_phase_B, "电机B相短接"); + AppEcodeInfoMgr::ins().regEcodeInfo(kerr_motor_open_load_indicator_phase_A, "电机A相过载"); + AppEcodeInfoMgr::ins().regEcodeInfo(kerr_motor_open_load_indicator_phase_B, "电机B相过载"); + AppEcodeInfoMgr::ins().regEcodeInfo(kerr_motor_standstill_indicator, "电机异常停止"); + + AppEcodeInfoMgr::ins().regEcodeInfo(kerr_AirBlowerError, "空压机异常"); + AppEcodeInfoMgr::ins().regEcodeInfo(kerr_HeaterError, "加热片异常"); + AppEcodeInfoMgr::ins().regEcodeInfo(kerr_BlowerError, "鼓风机异常"); + AppEcodeInfoMgr::ins().regEcodeInfo(kerr_ProportionalValveError, "气密性测试专用空压机异常"); + + AppEcodeInfoMgr::ins().regEcodeInfo(kappe_code_error, "错误码错误"); + AppEcodeInfoMgr::ins().regEcodeInfo(kappe_cmd_not_support, "命令不支持"); + AppEcodeInfoMgr::ins().regEcodeInfo(kappe_parse_json_err, "解析json错误"); + AppEcodeInfoMgr::ins().regEcodeInfo(kappe_std_exception, "标准库异常"); + AppEcodeInfoMgr::ins().regEcodeInfo(kappe_db_operate_error, "数据库操作错误"); + AppEcodeInfoMgr::ins().regEcodeInfo(kappe_missing_param, "缺少参数"); + AppEcodeInfoMgr::ins().regEcodeInfo(kappe_param_num_err, "参数个数错误"); + AppEcodeInfoMgr::ins().regEcodeInfo(kappe_param_value_err, "参数值错误"); + + AppEcodeInfoMgr::ins().regEcodeInfo(kappe_user_not_exist, "用户不存在"); + AppEcodeInfoMgr::ins().regEcodeInfo(kappe_passwd_error, "密码错误"); + + AppEcodeInfoMgr::ins().regEcodeInfo(kappe_disinfectant_insufficient, "消毒液不足"); + AppEcodeInfoMgr::ins().regEcodeInfo(kappe_the_bottom_of_the_device_has_water, "设备底部有水"); + AppEcodeInfoMgr::ins().regEcodeInfo(kappe_the_evaporation_bin_has_water, "蒸发仓有水"); + AppEcodeInfoMgr::ins().regEcodeInfo(kappe_the_sensor_is_prehearting, "传感器正在预热"); + AppEcodeInfoMgr::ins().regEcodeInfo(kappe_not_detect_udisk, "未检测到U盘"); + AppEcodeInfoMgr::ins().regEcodeInfo(kappe_udisk_wr_fail, "U盘读写错误"); + AppEcodeInfoMgr::ins().regEcodeInfo(kappe_open_file_error, "文件操作错误"); + AppEcodeInfoMgr::ins().regEcodeInfo(kappe_adding_liquid_is_already_in_place, "液体已加到位"); + AppEcodeInfoMgr::ins().regEcodeInfo(kappe_adding_liquid_is_greater_than_the_maximum_capacity_of_the_device, "加液大于设备最大容量"); + AppEcodeInfoMgr::ins().regEcodeInfo(kappe_sensor_is_pre_hearting, "传感器正在预热"); + AppEcodeInfoMgr::ins().regEcodeInfo(kappe_state_is_busy, "设备忙"); + AppEcodeInfoMgr::ins().regEcodeInfo(kappe_is_adding_liquid, "加液中"); + AppEcodeInfoMgr::ins().regEcodeInfo(kappe_is_draining_liquid, "排液中"); + AppEcodeInfoMgr::ins().regEcodeInfo(kappe_is_disinfecting, "消毒中"); + AppEcodeInfoMgr::ins().regEcodeInfo(kappe_is_air_leak_detect_testing, "气密性测试中"); + 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, "消毒状态错误"); +} + void AppCore::initialize() { + installEcodeInfo(); // FrontEnd BUILD_AND_REG_SERRVICE(IflytopFrontEndService); BUILD_AND_REG_SERRVICE(DebugPage); @@ -157,18 +230,18 @@ void AppCore::promptConfirm(shared_ptr cxt, string promptId) void AppCore::promptGetAll(shared_ptr cxt) { lock_guard lock(warningPromptListMutex); - auto content = cxt->rely; - content["prompts"] = json::array(); + auto rely = cxt->rely; + rely["prompts"] = json::array(); for (auto& p : warningPromptList) { - content["warningPromptList"].push_back(*p); + rely["prompts"].push_back(*p); } } void AppCore::promptGetNext(shared_ptr cxt) { lock_guard lock(warningPromptListMutex); - auto content = cxt->rely; + auto rely = cxt->rely; if (warningPromptList.size() > 0) { - content["warningPrompt"] = *warningPromptList.front(); + rely["prompt"] = *warningPromptList.front(); } } void AppCore::setInTestMode(shared_ptr cxt, bool isInTestMode) { DS->setTestMode(isInTestMode); } @@ -245,6 +318,9 @@ json AppCore::getState() { ret["testMode"]["isInTestMode"] = DS->isTestMode(); - ret["promptNum"] = warningPromptList.size(); + ret["prompts"] = json::array(); + for (auto& p : warningPromptList) { + ret["prompts"].push_back(*p); + } return ret; } diff --git a/appsrc/service/audit_mgr_service.cpp b/appsrc/service/audit_mgr_service.cpp index 33e44b2..c96e70e 100644 --- a/appsrc/service/audit_mgr_service.cpp +++ b/appsrc/service/audit_mgr_service.cpp @@ -47,7 +47,7 @@ int AuditMgrService::callExportData() { if (!ofs.is_open()) { logger->error("open file {} failed", filename); // return err::ksys_open_file_error; - return err::kappe_file_operate_error; + return err::kappe_open_file_error; } ofs << "date,uid,operation" << endl;