From 0eccaf1574eca28aabbb1edcd0925f590c793c18 Mon Sep 17 00:00:00 2001 From: zhaohe Date: Tue, 13 Aug 2024 17:48:47 +0800 Subject: [PATCH] update --- appsrc/service/app/pipeline_pressure_control.cpp | 33 ++++++++++++ appsrc/service/app/pipeline_pressure_control.hpp | 64 ++++++++++++++++++++++++ appsrc/service/main_control_service.cpp | 2 + 3 files changed, 99 insertions(+) create mode 100644 appsrc/service/app/pipeline_pressure_control.cpp create mode 100644 appsrc/service/app/pipeline_pressure_control.hpp diff --git a/appsrc/service/app/pipeline_pressure_control.cpp b/appsrc/service/app/pipeline_pressure_control.cpp new file mode 100644 index 0000000..09b6a48 --- /dev/null +++ b/appsrc/service/app/pipeline_pressure_control.cpp @@ -0,0 +1,33 @@ +#include "pipeline_pressure_control.hpp" +using namespace iflytop; +void PipelinePressureControl::initialize() { + REGFNV2(PipelinePressureControl, setType); + REGFNV2(PipelinePressureControl, setIntensity); + REGFNV2(PipelinePressureControl, getState); + REGFNV2(PipelinePressureControl, getConfig); + + m_type = "positivePressure"; + m_intensity = "10%"; +} + +void PipelinePressureControl::fn_setType(shared_ptr cxt) { m_type = cxt->params["type"]; } +void PipelinePressureControl::fn_getConfig(shared_ptr cxt) { + json cfg; + + cfg["types"] = {"constantPressure", "positivePressure", "negativePressure"}; + cfg["typeDisplayNames"] = {"恒压", "正压", "负压"}; + cfg["intensitys"]["constantPressure"] = {}; + cfg["intensitys"]["positivePressure"] = {"0%", "10%", "20%", "30%", "40%", "50%", "60%", "70%", "80%", "90%", "100%"}; + cfg["intensitys"]["negativePressure"] = {"0%", "10%", "20%", "30%", "40%", "50%", "60%", "70%", "80%", "90%", "100%"}; + cxt->content = cfg; +} +void PipelinePressureControl::fn_setIntensity(shared_ptr cxt) { + string intensity = cxt->params["intensity"]; + m_intensity = intensity; +} +void PipelinePressureControl::fn_getState(shared_ptr cxt) { + json state; + state["type"] = m_type; + state["intensity"] = m_intensity; + cxt->content = state; +} diff --git a/appsrc/service/app/pipeline_pressure_control.hpp b/appsrc/service/app/pipeline_pressure_control.hpp new file mode 100644 index 0000000..b0a54a6 --- /dev/null +++ b/appsrc/service/app/pipeline_pressure_control.hpp @@ -0,0 +1,64 @@ +#pragma once +#include +#include +#include +#include +#include +#include +#include +#include +#include +// +#include "baseservice/baseservice.hpp" +namespace iflytop { +class PipelinePressureControl : public enable_shared_from_this { + ENABLE_LOGGER(AddLiquidService); + typedef enum { + kpositivePressure, // 正压 + knegativePressure, // 负压 + } type_t; + + static inline string type2str(type_t t) { + switch (t) { + case kpositivePressure: + return "positivePressure"; + case knegativePressure: + return "negativePressure"; + default: + return "unknown"; + } + } + + static inline type_t str2type(const string& s, bool& suc) { + suc = true; + if (s == "positivePressure") { + return kpositivePressure; + } else if (s == "negativePressure") { + return knegativePressure; + } else { + suc = false; + return kpositivePressure; + } + } + + public: + shared_ptr m_db; + shared_ptr m_ds; + shared_ptr m_gConfig; + + string m_type; + string m_intensity; + + public: + void initialize(); + + private: + void fn_setType(shared_ptr cxt); + void fn_setIntensity(shared_ptr cxt); + void fn_getState(shared_ptr cxt); + void fn_getConfig(shared_ptr cxt); + + private: +}; + +} // namespace iflytop diff --git a/appsrc/service/main_control_service.cpp b/appsrc/service/main_control_service.cpp index 3ece083..e60a96c 100644 --- a/appsrc/service/main_control_service.cpp +++ b/appsrc/service/main_control_service.cpp @@ -15,6 +15,7 @@ #include "service/app/air_tightness_test.hpp" #include "service/app/disinfection_service.hpp" #include "service/app/drain_liquid_service.hpp" +#include "service/app/pipeline_pressure_control.hpp" using namespace iflytop; using namespace core; @@ -34,6 +35,7 @@ void MainControlService::initialize() { BUILD_AND_REG_SERRVICE(FrontMsgProcesser); BUILD_AND_REG_SERRVICE(DBService); BUILD_AND_REG_SERRVICE(DeviceStateService); + BUILD_AND_REG_SERRVICE(PipelinePressureControl); // BUILD_AND_REG_SERRVICE(UDiskMgrService);