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