diff --git a/appsrc/appsetting/project_setting/project_setting.hpp b/appsrc/appsetting/project_setting/project_setting.hpp deleted file mode 100644 index 33e5d84..0000000 --- a/appsrc/appsetting/project_setting/project_setting.hpp +++ /dev/null @@ -1,58 +0,0 @@ -#pragma once -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "appbase/appbasedep.hpp" -#include "appbase/appbean/hardware_component.hpp" -// -#include "basic/componentid.hpp" -#include "basic/gconfig.hpp" -#include "basic/project_constant.hpp" -namespace iflytop { -using namespace std; -using namespace transmit_disfection_protocol; - -class ProjectSetting { - THISCLASS(ProjectSetting); - - public: - map m_componentIdMap; - - string projectType = PROJECT_LARGE_SPACE_DM; - int projectTypeInt = klarge_space_disinfection_machine; - - // - // some properties - // - int extSensorNum = 0; - double gpmToSpeedRadio = 0; - - public: - bool isLageSpaceDM() { return projectTypeInt == klarge_space_disinfection_machine; } - bool isSmallSpaceDM() { return projectTypeInt == ksmall_space_disinfection_machine; } - bool isPipeDM() { return projectTypeInt == kpipe_disinfection_machine; } - bool isDrawBarDM() { return projectTypeInt == kdraw_bar_disinfection_box; } - - bool isProjectType(int id) { return id == projectTypeInt; } - bool isProjectType(int id0, int id1) { return id0 == projectTypeInt || id1 == projectTypeInt; } - bool isProjectType(int id0, int id1, int id2) { return id0 == projectTypeInt || id1 == projectTypeInt || id2 == projectTypeInt; } - bool isProjectType(int id0, int id1, int id2, int id3) { return id0 == projectTypeInt || id1 == projectTypeInt || id2 == projectTypeInt || id3 == projectTypeInt; } - - ComponentId getId(HardwareComponent component) { - auto it = m_componentIdMap.find(component); - if (it != m_componentIdMap.end()) { - return it->second; - } - THROW_APP_EXCEPTION(err::kappe_code_error, "ComponentIdMgr::getId: component not found"); - } -}; - -} // namespace iflytop \ No newline at end of file diff --git a/appsrc/appsetting/project_setting/project_setting_mgr.cpp b/appsrc/appsetting/project_setting/project_setting_mgr.cpp index a06d869..e22efb7 100644 --- a/appsrc/appsetting/project_setting/project_setting_mgr.cpp +++ b/appsrc/appsetting/project_setting/project_setting_mgr.cpp @@ -21,43 +21,36 @@ static string projectType2Str(int val) { void ProjectSettingMgr::initialize() { GET_TO_SERVICE(gConfig); - - projectSettingsMap[PROJECT_LARGE_SPACE_DM] = createProjectSetting(klarge_space_disinfection_machine); - projectSettingsMap[PROJECT_SMALL_SPACE_DM] = createProjectSetting(ksmall_space_disinfection_machine); - projectSettingsMap[PROJECT_PIPE_DM] = createProjectSetting(kpipe_disinfection_machine); - projectSettingsMap[PROJECT_DRAW_BAR_DM] = createProjectSetting(kdraw_bar_disinfection_box); + if (gConfig->get_projectType() == PROJECT_LARGE_SPACE_DM) { + initProjectSetting(klarge_space_disinfection_machine); + } else if (gConfig->get_projectType() == PROJECT_SMALL_SPACE_DM) { + initProjectSetting(ksmall_space_disinfection_machine); + } else if (gConfig->get_projectType() == PROJECT_PIPE_DM) { + initProjectSetting(kpipe_disinfection_machine); + } else if (gConfig->get_projectType() == PROJECT_DRAW_BAR_DM) { + initProjectSetting(kdraw_bar_disinfection_box); + } else { + THROW_APP_EXCEPTION(err::kappe_code_error, "ProjectSettingMgr::initialize: projectType not found"); + } } -shared_ptr ProjectSettingMgr::createProjectSetting(int projectTypeInt) { - shared_ptr projectSetting = make_shared(); - projectSetting->projectTypeInt = projectTypeInt; - projectSetting->projectType = projectType2Str(projectTypeInt); +void ProjectSettingMgr::initProjectSetting(int projectTypeInt) { + projectTypeInt = projectTypeInt; + projectType = projectType2Str(projectTypeInt); if (projectTypeInt == klarge_space_disinfection_machine) { - projectSetting->extSensorNum = LARGE_SPACE_DM_EXT_SENSOR_NUM; - projectSetting->gpmToSpeedRadio = LARGE_SPACE_DM_GPM_TO_SPEED_RADIO; + extSensorNum = LARGE_SPACE_DM_EXT_SENSOR_NUM; + gpmToSpeedRadio = LARGE_SPACE_DM_GPM_TO_SPEED_RADIO; } else if (projectTypeInt == ksmall_space_disinfection_machine) { - projectSetting->extSensorNum = SMALL_SPACE_DM_EXT_SENSOR_NUM; - projectSetting->gpmToSpeedRadio = SMALL_SPACE_DM_GPM_TO_SPEED_RADIO; + extSensorNum = SMALL_SPACE_DM_EXT_SENSOR_NUM; + gpmToSpeedRadio = SMALL_SPACE_DM_GPM_TO_SPEED_RADIO; } else if (projectTypeInt == kpipe_disinfection_machine) { - projectSetting->extSensorNum = PIPE_DM_EXT_SENSOR_NUM; - projectSetting->gpmToSpeedRadio = PIPE_DM_GPM_TO_SPEED_RADIO; + extSensorNum = PIPE_DM_EXT_SENSOR_NUM; + gpmToSpeedRadio = PIPE_DM_GPM_TO_SPEED_RADIO; } else if (projectTypeInt == kdraw_bar_disinfection_box) { - projectSetting->extSensorNum = DRAW_BAR_DM_EXT_SENSOR_NUM; - projectSetting->gpmToSpeedRadio = DRAW_BAR_DM_GPM_TO_SPEED_RADIO; + extSensorNum = DRAW_BAR_DM_EXT_SENSOR_NUM; + gpmToSpeedRadio = DRAW_BAR_DM_GPM_TO_SPEED_RADIO; } else { ZCHECK(false, "projectTypeInt not support: " + to_string(projectTypeInt)); } - - return projectSetting; -} -shared_ptr ProjectSettingMgr::getProjectSetting() { return getProjectSetting(gConfig->get_projectType()); } - -shared_ptr ProjectSettingMgr::getProjectSetting(string projectType) { - auto val = projectSettingsMap[projectType]; - ZCHECK(val != nullptr, "projectType not found: " + projectType); - return val; -} -shared_ptr ProjectSettingMgr::getProjectSetting(int projectTypeInt) { return getProjectSetting(projectType2Str(projectTypeInt)); } - -int32_t ProjectSettingMgr::getProjType() { return getProjectSetting()->projectTypeInt; } +} \ No newline at end of file diff --git a/appsrc/appsetting/project_setting/project_setting_mgr.hpp b/appsrc/appsetting/project_setting/project_setting_mgr.hpp index 56d1295..7821bea 100644 --- a/appsrc/appsetting/project_setting/project_setting_mgr.hpp +++ b/appsrc/appsetting/project_setting/project_setting_mgr.hpp @@ -9,12 +9,16 @@ #include #include #include - -#include "project_setting.hpp" - +// +#include "appbase/appbasedep.hpp" +#include "appbase/appbean/hardware_component.hpp" // #include "app_protocols/transmit_disfection_protocol/transmit_disfection_protocol.hpp" // +#include "basic/componentid.hpp" +#include "basic/gconfig.hpp" +#include "basic/project_constant.hpp" +// namespace iflytop { using namespace std; using namespace transmit_disfection_protocol; @@ -22,26 +26,46 @@ using namespace transmit_disfection_protocol; class ProjectSettingMgr { THISCLASS(ProjectSettingMgr); - private: + public: /* data */ + shared_ptr gConfig; + map componentIdMap; + string projectType = PROJECT_LARGE_SPACE_DM; + int projectTypeInt = klarge_space_disinfection_machine; - map> projectSettingsMap; - shared_ptr gConfig; + // + // some properties + // + int extSensorNum = 0; + double gpmToSpeedRadio = 0; public: void initialize(); public: - shared_ptr getProjectSetting(); - int32_t getProjType(); + int32_t getProjType(); - private: - shared_ptr getProjectSetting(string projectType); - shared_ptr getProjectSetting(int projectTypeInt); - shared_ptr createProjectSetting(int projectTypeInt); -}; + bool isLageSpaceDM() { return projectTypeInt == klarge_space_disinfection_machine; } + bool isSmallSpaceDM() { return projectTypeInt == ksmall_space_disinfection_machine; } + bool isPipeDM() { return projectTypeInt == kpipe_disinfection_machine; } + bool isDrawBarDM() { return projectTypeInt == kdraw_bar_disinfection_box; } -} // namespace iflytop + bool isProjectType(int id) { return id == projectTypeInt; } + bool isProjectType(int id0, int id1) { return id0 == projectTypeInt || id1 == projectTypeInt; } + bool isProjectType(int id0, int id1, int id2) { return id0 == projectTypeInt || id1 == projectTypeInt || id2 == projectTypeInt; } + bool isProjectType(int id0, int id1, int id2, int id3) { return id0 == projectTypeInt || id1 == projectTypeInt || id2 == projectTypeInt || id3 == projectTypeInt; } + + ComponentId getId(HardwareComponent component) { + auto it = componentIdMap.find(component); + if (it != componentIdMap.end()) { + return it->second; + } + THROW_APP_EXCEPTION(err::kappe_code_error, "ComponentIdMgr::getId: component not found"); + } + private: + void initProjectSetting(int projectTypeInt); +}; #define PROJECT_TYPE (GET_SERVICE(ProjectSettingMgr)->getProjType()) -#define PROJECT_SETTING (GET_SERVICE(ProjectSettingMgr)->getProjectSetting()) \ No newline at end of file +#define PROJECT_SETTING (GET_SERVICE(ProjectSettingMgr)) +} // namespace iflytop diff --git a/appsrc/baseservice/db/setting_db_dao.cpp b/appsrc/baseservice/db/setting_db_dao.cpp index f80823d..8decaad 100644 --- a/appsrc/baseservice/db/setting_db_dao.cpp +++ b/appsrc/baseservice/db/setting_db_dao.cpp @@ -106,7 +106,7 @@ void SettingDBDao::initialize() { // if (version != DB_VERSION) { keyvaldb.clear(); keyvaldb.set("version", DB_VERSION); - auto projSetting = GET_SERVICE(ProjectSettingMgr)->getProjectSetting(); + auto projSetting = GET_SERVICE(ProjectSettingMgr); for (auto& setting : settingInitTable) { // 部分设置项根据项目类型进行初始化 if (setting.setting_id == SettingId::injection_pump_speed) { diff --git a/appsrc/service/disinfection_logs_service.cpp b/appsrc/service/disinfection_logs_service.cpp index 37a0bc2..81b5680 100644 --- a/appsrc/service/disinfection_logs_service.cpp +++ b/appsrc/service/disinfection_logs_service.cpp @@ -177,7 +177,7 @@ void DisinfectionLogsService::dumpDisinfectionRecord(string sessionId, listgetProjectSetting(); + auto projSetting = m_projectSettingMgr; for (auto& s : snapshots) { csv.addValue(m_csvHeaderDict.getChName(CSVHeader::time), /******************/ tu_sys::fmt(s->time, "%Y-%m-%d %H:%M:%S")); diff --git a/appsrc/service/hardware/base/uint_convert_mgr.cpp b/appsrc/service/hardware/base/uint_convert_mgr.cpp index 7bcb212..fa903d4 100644 --- a/appsrc/service/hardware/base/uint_convert_mgr.cpp +++ b/appsrc/service/hardware/base/uint_convert_mgr.cpp @@ -9,7 +9,7 @@ void UintConvertMgr::initialize() { } isInited = true; - m_projSet = GET_SERVICE(ProjectSettingMgr)->getProjectSetting(); + m_projSet = GET_SERVICE(ProjectSettingMgr); ZASSERT(m_projSet); } double UintConvertMgr::gpm2speed(double gpm) { return gpm * m_projSet->gpmToSpeedRadio; } diff --git a/appsrc/service/hardware/base/uint_convert_mgr.hpp b/appsrc/service/hardware/base/uint_convert_mgr.hpp index 9e454d9..fabf730 100644 --- a/appsrc/service/hardware/base/uint_convert_mgr.hpp +++ b/appsrc/service/hardware/base/uint_convert_mgr.hpp @@ -32,9 +32,9 @@ using namespace core; class UintConvertMgr : public enable_shared_from_this { THISCLASS(UintConvertMgr); - recursive_mutex lock_; - bool isInited = false; - shared_ptr m_projSet; + recursive_mutex lock_; + bool isInited = false; + shared_ptr m_projSet; public: void initialize();