diff --git a/appsrc/service/app/add_liquid_service.cpp b/appsrc/service/app/add_liquid_service.cpp index 63f0a89..b0fe7c7 100644 --- a/appsrc/service/app/add_liquid_service.cpp +++ b/appsrc/service/app/add_liquid_service.cpp @@ -8,9 +8,9 @@ void AddLiquidService::initialize() { REGFNV2(AddLiquidService, getServiceConfig); } -void AddLiquidService::start(int stopatg) {} -void AddLiquidService::stop() {} -AddLiquidService::state_t AddLiquidService::getWorkstate() { return kidle; } +void AddLiquidService::start(int stopatg) { m_workstate = kaddingLiquid; } +void AddLiquidService::stop() { m_workstate = kidle; } +AddLiquidService::state_t AddLiquidService::getWorkstate() { return m_workstate; } void AddLiquidService::fn_start(shared_ptr cxt) { // int stopatg = jsonGet(cxt->params["stopatg"]); @@ -18,13 +18,15 @@ void AddLiquidService::fn_start(shared_ptr cxt) { // } void AddLiquidService::fn_stop(shared_ptr cxt) { stop(); } void AddLiquidService::fn_getState(shared_ptr cxt) { // - cxt->content["workState"] = state2str(getWorkstate()); - cxt->content["nowLiquid"] = 1000; + cxt->content["workState"] = state2str(getWorkstate()); + cxt->content["workStateDisplay"] = state2chstr(getWorkstate()); + cxt->content["nowLiquid"] = 1000; } void AddLiquidService::fn_getServiceConfig(shared_ptr cxt) { json cfg; - cfg["maxLiquid"] = 4950; - cfg["show"] = true; - cxt->content = cfg; + cfg["maxLiquid"] = 4950; + cfg["show"] = true; + cfg["updatePeriod"] = 300; + cxt->content = cfg; } diff --git a/appsrc/service/app/add_liquid_service.hpp b/appsrc/service/app/add_liquid_service.hpp index 5824287..087d7c8 100644 --- a/appsrc/service/app/add_liquid_service.hpp +++ b/appsrc/service/app/add_liquid_service.hpp @@ -34,6 +34,19 @@ class AddLiquidService : public enable_shared_from_this { } } + static const char* state2chstr(state_t state) { + switch (state) { + case kidle: + return "空闲"; + case kaddingLiquid: + return "加液中"; + case kemptyLineLiquid: + return "排空管路中"; + default: + return "未知"; + } + } + private: shared_ptr m_db; shared_ptr m_ds; diff --git a/appsrc/service/app/air_tightness_test.cpp b/appsrc/service/app/air_tightness_test.cpp index d8ae336..cee69e4 100644 --- a/appsrc/service/app/air_tightness_test.cpp +++ b/appsrc/service/app/air_tightness_test.cpp @@ -1,4 +1,31 @@ #include "air_tightness_test.hpp" - using namespace iflytop; -void AirTightnessTest::initialize() { logger->info("AirTightnessTest initialize"); } +void AirTightnessTest::initialize() { + logger->info("AirTightnessTest initialize"); + REGFNV2(AirTightnessTest, start); + REGFNV2(AirTightnessTest, stop); + REGFNV2(AirTightnessTest, getState); + REGFNV2(AirTightnessTest, getServiceConfig); +} + +void AirTightnessTest::start() { m_workstate = kleakTesting; } +void AirTightnessTest::stop() { m_workstate = kidle; } +AirTightnessTest::state_t AirTightnessTest::getWorkstate() { return m_workstate; } + +void AirTightnessTest::fn_start(shared_ptr cxt) { // + start(); +} +void AirTightnessTest::fn_stop(shared_ptr cxt) { stop(); } +void AirTightnessTest::fn_getState(shared_ptr cxt) { // + cxt->content["workState"] = state2str(getWorkstate()); + cxt->content["workStateDisplay"] = state2chstr(getWorkstate()); + cxt->content["pressure"] = 3.1; +} +void AirTightnessTest::fn_getServiceConfig(shared_ptr cxt) { + json cfg; + cfg["pressureUint"] = "kPa"; + cfg["pressureMax"] = 5.0; + cfg["show"] = true; + cfg["updatePeriod"] = 300; + cxt->content = cfg; +} diff --git a/appsrc/service/app/air_tightness_test.hpp b/appsrc/service/app/air_tightness_test.hpp index 245730f..02bd1e2 100644 --- a/appsrc/service/app/air_tightness_test.hpp +++ b/appsrc/service/app/air_tightness_test.hpp @@ -12,15 +12,65 @@ #include "baseservice/baseservice.hpp" namespace iflytop { class AirTightnessTest : public enable_shared_from_this { - ENABLE_LOGGER(AirTightnessTest); + ENABLE_LOGGER(AddLiquidService); + public: + typedef enum { + kidle = 0, // 空闲 + kinflating = 1, // 打压中 + kleakTesting = 2, // 检漏中 + kstopping = 3, // 停止中 + } state_t; + + static const char* state2str(state_t state) { + switch (state) { + case kidle: + return "idle"; + case kinflating: + return "inflating"; + case kleakTesting: + return "leakTesting"; + case kstopping: + return "stopping"; + default: + return "unknown"; + } + } + + static const char* state2chstr(state_t state) { + switch (state) { + case kidle: + return "空闲"; + case kinflating: + return "打压中"; + case kleakTesting: + return "检漏中"; + case kstopping: + return "停止中"; + default: + return "未知"; + } + } + + private: shared_ptr m_db; shared_ptr m_ds; shared_ptr m_gConfig; + state_t m_workstate = kidle; + public: void initialize(); + void start(); + void stop(); + state_t getWorkstate(); + + void fn_start(shared_ptr cxt); + void fn_stop(shared_ptr cxt); + void fn_getState(shared_ptr cxt); + void fn_getServiceConfig(shared_ptr cxt); + private: }; diff --git a/appsrc/service/app/drain_liquid_service.cpp b/appsrc/service/app/drain_liquid_service.cpp index 6016e7a..29b5326 100644 --- a/appsrc/service/app/drain_liquid_service.cpp +++ b/appsrc/service/app/drain_liquid_service.cpp @@ -1,4 +1,32 @@ #include "drain_liquid_service.hpp" - using namespace iflytop; -void DrainLiquidService::initialize() { logger->info("DrainLiquidService initialize"); } \ No newline at end of file +void DrainLiquidService::initialize() { + logger->info("DrainLiquidService initialize"); + REGFNV2(DrainLiquidService, start); + REGFNV2(DrainLiquidService, stop); + REGFNV2(DrainLiquidService, getState); + REGFNV2(DrainLiquidService, getServiceConfig); +} + +void DrainLiquidService::start() { m_workstate = kwork; } +void DrainLiquidService::stop() { m_workstate = kidle; } +DrainLiquidService::state_t DrainLiquidService::getWorkstate() { return m_workstate; } + +void DrainLiquidService::fn_start(shared_ptr cxt) { // + start(); +} +void DrainLiquidService::fn_stop(shared_ptr cxt) { stop(); } +void DrainLiquidService::fn_getState(shared_ptr cxt) { // + cxt->content["workState"] = state2str(getWorkstate()); + cxt->content["workStateDisplay"] = state2chstr(getWorkstate()); + cxt->content["nowLiquid"] = 1000; +} + +void DrainLiquidService::fn_getServiceConfig(shared_ptr cxt) { + json cfg; + cfg["maxLiquid"] = 4950; + cfg["show"] = true; + cfg["updatePeriod"] = 300; + + cxt->content = cfg; +} diff --git a/appsrc/service/app/drain_liquid_service.hpp b/appsrc/service/app/drain_liquid_service.hpp index 89b4456..c34448b 100644 --- a/appsrc/service/app/drain_liquid_service.hpp +++ b/appsrc/service/app/drain_liquid_service.hpp @@ -12,15 +12,55 @@ #include "baseservice/baseservice.hpp" namespace iflytop { class DrainLiquidService : public enable_shared_from_this { - ENABLE_LOGGER(DrainLiquidService); + ENABLE_LOGGER(AddLiquidService); + public: + typedef enum { + kidle = 0, + kwork = 1, + } state_t; + + static const char* state2str(state_t state) { + switch (state) { + case kidle: + return "idle"; + case kwork: + return "work"; + default: + return "unknown"; + } + } + + static const char* state2chstr(state_t state) { + switch (state) { + case kidle: + return "空闲"; + case kwork: + return "排液中"; + default: + return "未知"; + } + } + + private: shared_ptr m_db; shared_ptr m_ds; shared_ptr m_gConfig; + state_t m_workstate = kidle; + public: void initialize(); + void start(); + void stop(); + state_t getWorkstate(); + + void fn_start(shared_ptr cxt); + void fn_stop(shared_ptr cxt); + void fn_getState(shared_ptr cxt); + void fn_getServiceConfig(shared_ptr cxt); + private: };