Browse Source

update

storage-in-realtime
zhaohe 11 months ago
parent
commit
c8e2ceb83c
  1. 2
      app_protocols/apperrorcode/app_errorcode_mgr.hpp
  2. 1
      app_protocols/apperrorcode/apperrorcode.hpp
  3. 61
      appsrc/appsetting/project_port/project_port.cpp
  4. 6
      appsrc/appsetting/project_port/project_port.hpp
  5. 6
      appsrc/baseservice/front_msg_processer/front_msg_processer.cpp
  6. 2
      appsrc/baseservice/front_msg_processer/front_msg_processer.hpp
  7. 1
      appsrc/main.cpp
  8. 10
      appsrc/service/app_core.cpp
  9. 2
      appsrc/service/disinfection_logs_service.cpp

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

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

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

6
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, "");
}
/*******************************************************************************

6
appsrc/baseservice/front_msg_processer/front_msg_processer.cpp

@ -105,13 +105,15 @@ void FrontMsgProcesser::processMsg(shared_ptr<MsgProcessContext> 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"]));
}
}

2
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 <typename T>

1
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

10
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() {

2
appsrc/service/disinfection_logs_service.cpp

@ -324,7 +324,7 @@ void DisinfectionLogsService::dumpDisinfectionRecord(string sessionId, list<shar
csv.addValue(lineNum, m_csvHeaderDict.getChName(CSVHeader::time), /******************/ tu_sys::fmt(s->time, "%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;
}

Loading…
Cancel
Save