Browse Source

recode code

storage-in-realtime
zhaohe 12 months ago
parent
commit
b89759cb85
  1. 58
      appsrc/appsetting/project_setting/project_setting.hpp
  2. 53
      appsrc/appsetting/project_setting/project_setting_mgr.cpp
  3. 54
      appsrc/appsetting/project_setting/project_setting_mgr.hpp
  4. 2
      appsrc/baseservice/db/setting_db_dao.cpp
  5. 2
      appsrc/service/disinfection_logs_service.cpp
  6. 2
      appsrc/service/hardware/base/uint_convert_mgr.cpp
  7. 6
      appsrc/service/hardware/base/uint_convert_mgr.hpp

58
appsrc/appsetting/project_setting/project_setting.hpp

@ -1,58 +0,0 @@
#pragma once
#include <fstream>
#include <iostream>
#include <list>
#include <map>
#include <memory>
#include <mutex>
#include <set>
#include <sstream>
#include <string>
#include <vector>
#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<int, ComponentId> 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

53
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<ProjectSetting> ProjectSettingMgr::createProjectSetting(int projectTypeInt) {
shared_ptr<ProjectSetting> projectSetting = make_shared<ProjectSetting>();
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<ProjectSetting> ProjectSettingMgr::getProjectSetting() { return getProjectSetting(gConfig->get_projectType()); }
shared_ptr<ProjectSetting> ProjectSettingMgr::getProjectSetting(string projectType) {
auto val = projectSettingsMap[projectType];
ZCHECK(val != nullptr, "projectType not found: " + projectType);
return val;
}
shared_ptr<ProjectSetting> ProjectSettingMgr::getProjectSetting(int projectTypeInt) { return getProjectSetting(projectType2Str(projectTypeInt)); }
int32_t ProjectSettingMgr::getProjType() { return getProjectSetting()->projectTypeInt; }
}

54
appsrc/appsetting/project_setting/project_setting_mgr.hpp

@ -9,12 +9,16 @@
#include <sstream>
#include <string>
#include <vector>
#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> gConfig;
map<int, ComponentId> componentIdMap;
string projectType = PROJECT_LARGE_SPACE_DM;
int projectTypeInt = klarge_space_disinfection_machine;
map<string, shared_ptr<ProjectSetting>> projectSettingsMap;
shared_ptr<GConfig> gConfig;
//
// some properties
//
int extSensorNum = 0;
double gpmToSpeedRadio = 0;
public:
void initialize();
public:
shared_ptr<ProjectSetting> getProjectSetting();
int32_t getProjType();
int32_t getProjType();
private:
shared_ptr<ProjectSetting> getProjectSetting(string projectType);
shared_ptr<ProjectSetting> getProjectSetting(int projectTypeInt);
shared_ptr<ProjectSetting> 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())
#define PROJECT_SETTING (GET_SERVICE(ProjectSettingMgr))
} // namespace iflytop

2
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) {

2
appsrc/service/disinfection_logs_service.cpp

@ -177,7 +177,7 @@ void DisinfectionLogsService::dumpDisinfectionRecord(string sessionId, list<shar
// 保存到记录到csv文件中
//
ZCSV csv;
auto projSetting = m_projectSettingMgr->getProjectSetting();
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"));

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

6
appsrc/service/hardware/base/uint_convert_mgr.hpp

@ -32,9 +32,9 @@ using namespace core;
class UintConvertMgr : public enable_shared_from_this<UintConvertMgr> {
THISCLASS(UintConvertMgr);
recursive_mutex lock_;
bool isInited = false;
shared_ptr<ProjectSetting> m_projSet;
recursive_mutex lock_;
bool isInited = false;
shared_ptr<ProjectSettingMgr> m_projSet;
public:
void initialize();

Loading…
Cancel
Save