Browse Source

update

storage-in-realtime
zhaohe 12 months ago
parent
commit
087f551e49
  1. 93
      app_protocols/apperrorcode/apperrorcode.hpp
  2. 4
      app_protocols/appexception/appexception.hpp
  3. 3
      appsrc/baseservice/front_msg_processer/front_msg_processer.cpp
  4. 2
      appsrc/service/app/disinfection_ctrl/disinfection_ctrl_service.cpp
  5. 88
      appsrc/service/app_core.cpp
  6. 2
      appsrc/service/audit_mgr_service.cpp

93
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;
}

4
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);
}

3
appsrc/baseservice/front_msg_processer/front_msg_processer.cpp

@ -97,9 +97,8 @@ void FrontMsgProcesser::processMsg(shared_ptr<MsgProcessContext> 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;

2
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;
}

88
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<MsgProcessContext> cxt, string promptId)
void AppCore::promptGetAll(shared_ptr<MsgProcessContext> cxt) {
lock_guard<recursive_mutex> 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<MsgProcessContext> cxt) {
lock_guard<recursive_mutex> 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<MsgProcessContext> 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;
}

2
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;

Loading…
Cancel
Save