Browse Source

update

master
zhaohe 1 year ago
parent
commit
e90b6f98b8
  1. 38
      src/db/db_service.cpp
  2. 30
      src/service/disfection_ctl/disinfection_service.cpp
  3. 5
      src/service/disfection_ctl/disinfection_service.hpp

38
src/db/db_service.cpp

@ -6,8 +6,8 @@
#include "db_service.hpp"
//
#include "iflytop/components/sqlite_orm/sqlite_orm.hpp"
#include "configs/project_setting.hpp"
#include "iflytop/components/sqlite_orm/sqlite_orm.hpp"
using namespace std;
using namespace iflytop;
@ -36,9 +36,9 @@ using namespace nlohmann;
make_column("val_lower_limit", &Setting::val_lower_limit), /**/ \
make_column("val_upper_limit", &Setting::val_upper_limit), /**/ \
make_column("permission_level", &Setting::permission_level), /**/ \
make_column("val", &Setting::val),/**/ \
make_column("default_val", &Setting::default_val)/**/ \
)
make_column("val", &Setting::val), /**/ \
make_column("default_val", &Setting::default_val) /**/ \
)
#define FORMULA_DB_STRUCT \
make_table("formulas", /**/ \
@ -83,29 +83,29 @@ using namespace nlohmann;
#if (defined PROJECT_TYPE_LARGE_SPACE_DISINFECTION) || (defined PROJECT_TYPE_SMALL_SPACE_DISINFECTION) || (defined PROJECT_TYPE_PIPE_DISINFECTION)
#define INJECTION_PUMP_SPEED_DEFAULT 15
#define INJECTION_PUMP_SPEED_DEFAULT 15
#define INJECTION_PUMP_SPEED_LIMIT_VAL 40
#endif
#ifdef PROJECT_TYPE_DRAW_BAR_BOX
#define INJECTION_PUMP_SPEED_DEFAULT 4
#define INJECTION_PUMP_SPEED_DEFAULT 4
#define INJECTION_PUMP_SPEED_LIMIT_VAL 8
#endif
static Setting config_settings_table[] = {
SETTING_ITEM(1, "stoped_gs", /*************/ "消毒停止过氧化氢溶度", /**********/ 0, 2000, 300), //
SETTING_ITEM(2, "continued_gs", /**********/ "消毒继续过氧化氢溶度", /**********/ 0, 2000, 200), //
SETTING_ITEM(3, "stoped_satur", /**********/ "消毒停止过氧化氢相对饱和度", /*****/ 0, 100, 85), //
SETTING_ITEM(4, "continued_satur", /*******/ "消毒继续过氧化氢相对饱和度", /*****/ 0, 100, 60), //
SETTING_ITEM(5, "max_humidity", /**********/ "允许消毒最大湿度", /*************/ 0, 100, 90), //
SETTING_ITEM(6, "drainage_pump_speed", /***/ "排液蠕动泵最大转速", /************/ 0, 400, 400), //
SETTING_ITEM(7, "injection_pump_speed", /**/ "喷射蠕动泵转速", /***************/ 0, INJECTION_PUMP_SPEED_LIMIT_VAL, INJECTION_PUMP_SPEED_DEFAULT), //
SETTING_ITEM(8, "pre_heat_time_s", /*******/ "预热时间", /*******************/ 0, 1200, 120), //
SETTING_ITEM(9, "stoped_humi", /***********/ "消毒停止相对湿度", /************/ 0, 100, 85), //
SETTING_ITEM(10, "continued_humi", /*******/ "消毒继续相对湿度", /************/ 0, 100, 60), //
SETTING_ITEM(11, "proportional_valve_default_value", "正负压默认开合比例", 0, 100, 10), //
SETTING_ITEM(1, "stoped_gs", /*************/ "消毒停止过氧化氢溶度", /**********/ 0, 2000, 300), //
SETTING_ITEM(2, "continued_gs", /**********/ "消毒继续过氧化氢溶度", /**********/ 0, 2000, 200), //
SETTING_ITEM(3, "stoped_satur", /**********/ "消毒停止过氧化氢相对饱和度", /*****/ 0, 100, 85), //
SETTING_ITEM(4, "continued_satur", /*******/ "消毒继续过氧化氢相对饱和度", /*****/ 0, 100, 60), //
SETTING_ITEM(5, "max_humidity", /**********/ "允许消毒最大湿度", /*************/ 0, 100, 90), //
SETTING_ITEM(6, "drainage_pump_speed", /***/ "排液蠕动泵最大转速", /************/ 0, 400, 400), //
SETTING_ITEM(7, "injection_pump_speed", /**/ "喷射蠕动泵转速", /***************/ 0, INJECTION_PUMP_SPEED_LIMIT_VAL, INJECTION_PUMP_SPEED_DEFAULT), //
SETTING_ITEM(8, "pre_heat_time_s", /*******/ "预热时间", /*******************/ 0, 1200, 120), //
SETTING_ITEM(9, "stoped_humi", /***********/ "消毒停止相对湿度", /************/ 0, 100, 85), //
SETTING_ITEM(10, "continued_humi", /*******/ "消毒继续相对湿度", /************/ 0, 100, 60), //
SETTING_ITEM(11, "proportional_valve_default_value", "正负压默认开合比例", 0, 100, 10), //
SETTING_ITEM(12, "record_period_min", "消毒日志记录间隔", 1, 10, 1), //
SETTING_ITEM(13, "record_printer_period_min", "消毒日志打印间隔", 1, 10, 3), //
};

30
src/service/disfection_ctl/disinfection_service.cpp

@ -316,13 +316,32 @@ void DisinfectionService::takeStateSnapshot() {
}
void DisinfectionService::tryLogSatate(bool force) {
if (force || zsteady_clock().elapsedTimeS(context.lastlog_tp) > DUMP_LOG_PERIOD) {
// record_period_min
// record_printer_period_min
int record_period_s = m_dbService->getSettingVal("record_period_min") * 60;
int record_printer_period_s = m_dbService->getSettingVal("record_printer_period_min") * 60;
if (record_period_s <= 60) {
record_period_s = 60;
}
if (record_printer_period_s <= 60) {
record_printer_period_s = 60;
}
if (force || zsteady_clock().elapsedTimeS(context.lastlog_tp) > record_period_s) {
context.lastlog_tp = zsteady_clock().now();
logger->info("dumping state snapshot to csv");
takeStateSnapshot();
logger->info("log state snapshot to csv");
dumpDisinfectionLogsToCSV();
logstate();
}
if (force || zsteady_clock().elapsedTimeS(context.last_log_printer_data_tp) > record_printer_period_s) {
context.last_log_printer_data_tp = zsteady_clock().now();
logger->info("take state snapshot");
takeStateSnapshot();
logstate();
}
}
int DisinfectionService::getDisinfectionWorkState() { return sm.getState(); }
@ -751,16 +770,17 @@ void DisinfectionService::processStateDisinfection(disinfection_event_t* event)
if (!context.is_disinfection_take_break) {
if (isTimeToPauseDisinfection()) {
logger->info("pauseDisinfection");
logstate();
// logstate();
m_disinfectionServicePort->doStateDisinfection_whenPause();
context.is_disinfection_take_break = true;
tryLogSatate(true);
}
} else {
if (isTimeToResumeDisinfection()) {
logger->info("resumeDisinfection");
logstate();
m_disinfectionServicePort->doStateDisinfection_whenContinue();
context.is_disinfection_take_break = false;
tryLogSatate(true);
}
}

5
src/service/disfection_ctl/disinfection_service.hpp

@ -52,8 +52,9 @@ class DisinfectionService : public enable_shared_from_this<DisinfectionService>
zsystem_tp start_tp;
zsystem_tp complete_tp;
zsteady_tp last_compute_dvalue_tp; // 上次计算dvalue时间
zsteady_tp lastlog_tp; // 上次日志时间
zsteady_tp last_compute_dvalue_tp; // 上次计算dvalue时间
zsteady_tp lastlog_tp; // 上次日志时间
zsteady_tp last_log_printer_data_tp; // 上次日志时间
int remaintime = 0;
float now_loglevel = 0;
float dvalue = 0;

Loading…
Cancel
Save