diff --git a/src/api/cmds/test_page_cmd_impl.cpp b/src/api/cmds/test_page_cmd_impl.cpp index dd60f0f..018e707 100644 --- a/src/api/cmds/test_page_cmd_impl.cpp +++ b/src/api/cmds/test_page_cmd_impl.cpp @@ -53,7 +53,7 @@ void TestPageCmdImpl::TestPage_WarningLightCtrl(json& cmd, json& receipt) { void TestPageCmdImpl::DBDBTestPage__sprayLiquidPump_run(json& cmd, json& receipt) { int gpm = jsonGet(cmd["params"]["gpm"]); - m_deviceIoControlService->DBDB__sprayLiquidPump_run(gpm); + m_deviceIoControlService->sprayLiquidPump_open(gpm); return; } diff --git a/src/configs/project_setting.hpp b/src/configs/project_setting.hpp index f680e91..869fad3 100644 --- a/src/configs/project_setting.hpp +++ b/src/configs/project_setting.hpp @@ -54,6 +54,9 @@ #define EMTPTY_LINE_WHEN_ADDING_DISINFECTANT_TIMES 80 #endif +#define SPRAYLIQUID_PUMP_MAX_GPM 40 +#define EMTPTY_LINE_WHEN_DISINFECTION 60 + #define MAX_DISINFECTIONLOGGER_FILE_NUM 10 // 最大日志文件数量 #define USER_BEHAVIOR_RECORD_DB_MAX_RECORDS 3000 #define SENSOR_PREHEART_TIME_S (5 * 60) diff --git a/src/service/device_io_control_service.cpp b/src/service/device_io_control_service.cpp index 781fe9e..eac6ae9 100644 --- a/src/service/device_io_control_service.cpp +++ b/src/service/device_io_control_service.cpp @@ -348,6 +348,56 @@ void DeviceIoControlService::H2O2Sensor_updateSensorData(int32_t sensorid, repor } } +/******************************************************************************* + * sprayLiquidPump * + *******************************************************************************/ +static int32_t SprayLiquidPump__gpm; + +void DeviceIoControlService::sprayLiquidPump_open(int gpm) { + logger->info("sprayLiquidPump_open {}", gpm); + SprayLiquidPump__gpm = gpm; + + int speed = GPM_TO_SPEED(gpm); + if (speed > 450) { + speed = 450; + } else if (speed < -450) { + speed = -450; + } + m_zcanHost->pumpctrl_c1004(2, 100, speed, 1, 18); +} + +void DeviceIoControlService::sprayLiquidPump_close() { + logger->info("sprayLiquidPump_close"); + SprayLiquidPump__gpm = 0; + m_zcanHost->pumpctrl_c1004(2, 100, 0, 1, 15); +} + +void DeviceIoControlService::sprayLiquidPump_open_for_test(int gpm) { + logger->info("sprayLiquidPump_open {}", gpm); + int speed = GPM_TO_SPEED(gpm); + if (speed > 450) { + speed = 450; + } else if (speed < -450) { + speed = -450; + } + SprayLiquidPump__gpm = gpm; + m_zcanHost->pumpctrl_c1004(2, 100, speed, 1, 15); +} +void DeviceIoControlService::sprayLiquidPump_close_for_test() { + logger->info("sprayLiquidPump_close"); + SprayLiquidPump__gpm = 0; + m_zcanHost->pumpctrl_c1004(2, 100, 0, 1, 15); +} + +int DeviceIoControlService::sprayLiquidPump_getRPM() { return GPM_TO_SPEED(SprayLiquidPump__gpm); } +int DeviceIoControlService::sprayLiquidPump_getGPM() { return SprayLiquidPump__gpm; } + +int DeviceIoControlService::sprayLiquidPump_getState() { // + lock_guard lock(lock_); + + return (sprayLiquidPump_getRPM() != 0); +} + #if (defined PROJECT_TYPE_LARGE_SPACE_DISINFECTION) || (defined PROJECT_TYPE_SMALL_SPACE_DISINFECTION) || (defined PROJECT_TYPE_PIPE_DISINFECTION) void DeviceIoControlService::airCompressor_setState(bool val) { @@ -418,7 +468,7 @@ int DeviceIoControlService::heatingStrip_getcurrentValue() { return m_adc_2 * 0. // } #define replenishingFluidsPump_GPM2RPM(gpm) (gpm / 2) void DeviceIoControlService::replenishingFluidsPump_open(int32_t rpm) { - logger->info("replenishingFluidsPump_open {}",rpm); + logger->info("replenishingFluidsPump_open {}", rpm); // 600g/m 300RPM m_zcanHost->pumpctrl_c1004(1, 100, rpm, 1, 20); } @@ -441,54 +491,6 @@ void DeviceIoControlService::replenishingFluidsPump_close_for_test() { logger->info("replenishingFluidsPump_close_for_test"); m_zcanHost->pumpctrl_c1004(1, 100, 0, 1, 20); } -/******************************************************************************* - * sprayLiquidPump * - *******************************************************************************/ -static int32_t SprayLiquidPump__gpm; - -void DeviceIoControlService::sprayLiquidPump_open(int gpm) { - logger->info("sprayLiquidPump_open {}", gpm); - SprayLiquidPump__gpm = gpm; - - int speed = GPM_TO_SPEED(gpm); - if (speed > 450) { - speed = 450; - } else if (speed < -450) { - speed = -450; - } - m_zcanHost->pumpctrl_c1004(2, 100, speed, 1, 18); -} -void DeviceIoControlService::sprayLiquidPump_close() { - logger->info("sprayLiquidPump_close"); - SprayLiquidPump__gpm = 0; - m_zcanHost->pumpctrl_c1004(2, 100, 0, 1, 15); -} - -void DeviceIoControlService::sprayLiquidPump_open_for_test(int gpm) { - logger->info("sprayLiquidPump_open {}", gpm); - int speed = GPM_TO_SPEED(gpm); - if (speed > 450) { - speed = 450; - } else if (speed < -450) { - speed = -450; - } - SprayLiquidPump__gpm = gpm; - m_zcanHost->pumpctrl_c1004(2, 100, speed, 1, 15); -} -void DeviceIoControlService::sprayLiquidPump_close_for_test() { - logger->info("sprayLiquidPump_close"); - SprayLiquidPump__gpm = 0; - m_zcanHost->pumpctrl_c1004(2, 100, 0, 1, 15); -} - -int DeviceIoControlService::sprayLiquidPump_getRPM() { return GPM_TO_SPEED(SprayLiquidPump__gpm); } -int DeviceIoControlService::sprayLiquidPump_getGPM() { return SprayLiquidPump__gpm; } - -int DeviceIoControlService::sprayLiquidPump_getState() { // - lock_guard lock(lock_); - - return (sprayLiquidPump_getRPM() != 0); -} int DeviceIoControlService::getDisinfectantVolume_g() { // kpa; @@ -604,20 +606,6 @@ float DeviceIoControlService::airCompressor_getPressureDirectKpa() { /******************************************************************************* * 拉杆箱消毒机-喷液泵 * *******************************************************************************/ -static int DBDB__sprayLiquidPump_run_gpm = 0; -void DeviceIoControlService::DBDB__sprayLiquidPump_run(int gpm) { - logger->info("DBDB__sprayLiquidPump_run run {}", gpm); - int speed = GPM_TO_SPEED(gpm); - if (speed > 400) { - speed = 400; - } else if (speed < -400) { - speed = -400; - } - DBDB__sprayLiquidPump_run_gpm = gpm; - m_zcanHost->pumpctrl_c1004(2, 100, speed, 1, 15); -} - -int DeviceIoControlService::DBDB__sprayLiquidPump_readSpeed() { return DBDB__sprayLiquidPump_run_gpm; } int32_t DeviceIoControlService::DBDB__readPressureSensor(int index) { int32_t ackcontent = 0; diff --git a/src/service/device_io_control_service.hpp b/src/service/device_io_control_service.hpp index 60906da..eb654a9 100644 --- a/src/service/device_io_control_service.hpp +++ b/src/service/device_io_control_service.hpp @@ -78,7 +78,7 @@ class DeviceIoControlService : public IF_DeviceIoContrlService { // bool m_deviceBottomWaterDetectionSensor = false; // 漏液检测 - bool m_evaporationBinWaterDetection = false; // 仓内液体检测 + bool m_evaporationBinWaterDetection = false; // 仓内液体检测 int m_adc_0 = 0; // int m_adc_1 = 0; // @@ -117,6 +117,17 @@ class DeviceIoControlService : public IF_DeviceIoContrlService { void H2O2Sensor_updateSensorData(int32_t sensorid, report_h2o2_data_t* data); public: + // 喷液泵 + virtual void sprayLiquidPump_open(int gpm) override; + virtual void sprayLiquidPump_close() override; + virtual int sprayLiquidPump_getState() override; + virtual int sprayLiquidPump_getRPM() override; + virtual int sprayLiquidPump_getGPM() override; + + virtual void sprayLiquidPump_open_for_test(int gpm) override; + virtual void sprayLiquidPump_close_for_test() override; + + public: #if (defined PROJECT_TYPE_LARGE_SPACE_DISINFECTION) || (defined PROJECT_TYPE_SMALL_SPACE_DISINFECTION) || (defined PROJECT_TYPE_PIPE_DISINFECTION) /******************************************************************************* @@ -168,16 +179,6 @@ class DeviceIoControlService : public IF_DeviceIoContrlService { virtual void replenishingFluidsPump_open_for_test(int speed) override; virtual void replenishingFluidsPump_close_for_test() override; - // 喷液泵 - virtual void sprayLiquidPump_open(int gpm) override; - virtual void sprayLiquidPump_close() override; - virtual int sprayLiquidPump_getState() override; - virtual int sprayLiquidPump_getRPM() override; - virtual int sprayLiquidPump_getGPM() override; - - virtual void sprayLiquidPump_open_for_test(int gpm) override; - virtual void sprayLiquidPump_close_for_test() override; - /****************************************************************************** * 水浸传感器 * ******************************************************************************/ @@ -209,8 +210,6 @@ class DeviceIoControlService : public IF_DeviceIoContrlService { /******************************************************************************* * 拉杆箱消毒机-喷液泵 * *******************************************************************************/ - virtual void DBDB__sprayLiquidPump_run(int gpm) override; - virtual int DBDB__sprayLiquidPump_readSpeed() override; virtual int32_t DBDB__readPressureSensor(int index) override; virtual int32_t DBDB__sprayAirCompressorPowerCtrl(int index) override; diff --git a/src/service/device_io_control_service_test.cpp b/src/service/device_io_control_service_test.cpp index 2f795e7..b623b7c 100644 --- a/src/service/device_io_control_service_test.cpp +++ b/src/service/device_io_control_service_test.cpp @@ -84,6 +84,22 @@ void DeviceIoControlServiceTest::SelfTest_H2O2Sensor_setSensorState(int32_t sens return; } +// 喷液泵 +static int sprayLiquidPump_rpm; +void DeviceIoControlServiceTest::sprayLiquidPump_open(int gpm) { + logger->info("sprayLiquidPump_open:{}", gpm); + sprayLiquidPump_rpm = gpm; +} +void DeviceIoControlServiceTest::sprayLiquidPump_close() { + logger->info("sprayLiquidPump_close"); + sprayLiquidPump_rpm = 0; +} +int DeviceIoControlServiceTest::sprayLiquidPump_getState() { return sprayLiquidPump_rpm; } +int DeviceIoControlServiceTest::sprayLiquidPump_getRPM() { return sprayLiquidPump_rpm; } +int DeviceIoControlServiceTest::sprayLiquidPump_getGPM() { return sprayLiquidPump_rpm; } +void DeviceIoControlServiceTest::sprayLiquidPump_open_for_test(int gpm) { sprayLiquidPump_rpm = gpm; } +void DeviceIoControlServiceTest::sprayLiquidPump_close_for_test() { sprayLiquidPump_rpm = 0; } + /******************************************************************************* * 加热片控制 * *******************************************************************************/ @@ -157,21 +173,7 @@ void DeviceIoControlServiceTest::replenishingFluidsPump_open(int32_t rpm) { drai void DeviceIoControlServiceTest::replenishingFluidsPump_close() { drainingPump_rpm = 0; } void DeviceIoControlServiceTest::replenishingFluidsPump_open_for_test(int speed) { drainingPump_rpm = speed; } void DeviceIoControlServiceTest::replenishingFluidsPump_close_for_test() { drainingPump_rpm = 0; } -// 喷液泵 -static int sprayLiquidPump_rpm; -void DeviceIoControlServiceTest::sprayLiquidPump_open(int gpm) { - logger->info("sprayLiquidPump_open:{}", gpm); - sprayLiquidPump_rpm = gpm; -} -void DeviceIoControlServiceTest::sprayLiquidPump_close() { - logger->info("sprayLiquidPump_close"); - sprayLiquidPump_rpm = 0; -} -int DeviceIoControlServiceTest::sprayLiquidPump_getState() { return sprayLiquidPump_rpm; } -int DeviceIoControlServiceTest::sprayLiquidPump_getRPM() { return sprayLiquidPump_rpm; } -int DeviceIoControlServiceTest::sprayLiquidPump_getGPM() { return sprayLiquidPump_rpm; } -void DeviceIoControlServiceTest::sprayLiquidPump_open_for_test(int gpm) { sprayLiquidPump_rpm = gpm; } -void DeviceIoControlServiceTest::sprayLiquidPump_close_for_test() { sprayLiquidPump_rpm = 0; } + /****************************************************************************** * 水浸传感器 * @@ -258,13 +260,6 @@ int32_t DeviceIoControlServiceTest::AirProportionalValve_isBusy(int32_t* isbusy) /******************************************************************************* * 拉杆箱消毒机-喷液泵 * *******************************************************************************/ -int32_t DBDB__sprayLiquidPump_gpm; -void DeviceIoControlServiceTest::DBDB__sprayLiquidPump_run(int gpm) { - logger->info("DBDB__sprayLiquidPump_run gpm:{}", gpm); - DBDB__sprayLiquidPump_gpm = gpm; -} - -int DeviceIoControlServiceTest::DBDB__sprayLiquidPump_readSpeed() { return DBDB__sprayLiquidPump_gpm; } int32_t DeviceIoControlServiceTest::DBDB__readPressureSensor(int index) { return index; } int32_t DeviceIoControlServiceTest::DBDB__sprayAirCompressorPowerCtrl(int power) { diff --git a/src/service/device_io_control_service_test.hpp b/src/service/device_io_control_service_test.hpp index 757fb0e..bb73780 100644 --- a/src/service/device_io_control_service_test.hpp +++ b/src/service/device_io_control_service_test.hpp @@ -60,6 +60,17 @@ class DeviceIoControlServiceTest : public IF_DeviceIoContrlService { void SelfTest_H2O2Sensor_setSaturation(int32_t sensorid, int32_t val); void SelfTest_H2O2Sensor_setSensorState(int32_t sensorid, int32_t val); + public: + // 喷液泵 + virtual void sprayLiquidPump_open(int gpm) override; + virtual void sprayLiquidPump_close() override; + virtual int sprayLiquidPump_getState() override; + virtual int sprayLiquidPump_getRPM() override; + virtual int sprayLiquidPump_getGPM() override; + + virtual void sprayLiquidPump_open_for_test(int gpm) override; + virtual void sprayLiquidPump_close_for_test() override; + #if (defined PROJECT_TYPE_LARGE_SPACE_DISINFECTION) || (defined PROJECT_TYPE_SMALL_SPACE_DISINFECTION) || (defined PROJECT_TYPE_PIPE_DISINFECTION) /******************************************************************************* @@ -98,16 +109,6 @@ class DeviceIoControlServiceTest : public IF_DeviceIoContrlService { virtual void replenishingFluidsPump_open_for_test(int speed) override; virtual void replenishingFluidsPump_close_for_test() override; - // 喷液泵 - virtual void sprayLiquidPump_open(int gpm) override; - virtual void sprayLiquidPump_close() override; - virtual int sprayLiquidPump_getState() override; - virtual int sprayLiquidPump_getRPM() override; - virtual int sprayLiquidPump_getGPM() override; - - virtual void sprayLiquidPump_open_for_test(int gpm) override; - virtual void sprayLiquidPump_close_for_test() override; - /****************************************************************************** * 水浸传感器 * ******************************************************************************/ @@ -154,8 +155,6 @@ class DeviceIoControlServiceTest : public IF_DeviceIoContrlService { /******************************************************************************* * 拉杆箱消毒机-喷液泵 * *******************************************************************************/ - virtual void DBDB__sprayLiquidPump_run(int gpm) override; - virtual int DBDB__sprayLiquidPump_readSpeed() override; virtual int32_t DBDB__readPressureSensor(int index) override; virtual int32_t DBDB__sprayAirCompressorPowerCtrl(int index) override; diff --git a/src/service/disfection_ctl/disinfection_service.cpp b/src/service/disfection_ctl/disinfection_service.cpp index 1710ef8..f8497e2 100644 --- a/src/service/disfection_ctl/disinfection_service.cpp +++ b/src/service/disfection_ctl/disinfection_service.cpp @@ -28,17 +28,16 @@ void DisinfectionService::initialize() { GET_TO_SERVICE(m_disinfectionLogsManager); GET_TO_SERVICE(m_disinfectionPrinterService); m_dvalueComputer.initialize(); + m_deviceIoControlService->sprayLiquidPump_close(); #if (defined PROJECT_TYPE_LARGE_SPACE_DISINFECTION) || (defined PROJECT_TYPE_SMALL_SPACE_DISINFECTION) || (defined PROJECT_TYPE_PIPE_DISINFECTION) m_deviceIoControlService->replenishingFluidsPump_close(); - m_deviceIoControlService->sprayLiquidPump_close(); m_deviceIoControlService->heartingPlate_setPower(false); m_deviceIoControlService->airBlower_setState(false); m_deviceIoControlService->airCompressor_setState(false); #elif (defined PROJECT_TYPE_DRAW_BAR_BOX) m_deviceIoControlService->DBDB__airTightnessTestAirCompressorPowerCtrl(false); - m_deviceIoControlService->DBDB__sprayLiquidPump_run(0); m_deviceIoControlService->DBDB__sprayAirCompressorPowerCtrl(0); m_deviceIoControlService->DBDB__heaterCtrl(0); m_deviceIoControlService->DBDB__miniPwmBlowerCtrl(0); @@ -51,7 +50,7 @@ void DisinfectionService::initialize() { sm.regStateProcesser(kstate_finished, bind(&DisinfectionService::processStateFinished, this, placeholders::_1)); sm.regStateProcesser(kstate_dehumidification_before_disinfection, bind(&DisinfectionService::processStateDehumidification_before_disinfection, this, placeholders::_1)); sm.regStateProcesser(kstate_dehumidification_after_disinfection, bind(&DisinfectionService::processStateDehumidification_after_disinfection, this, placeholders::_1)); - + sm.regStateProcesser(kstate_empty_liquid_from_the_line, bind(&DisinfectionService::processStateEmpytLiquidFromTheLine, this, placeholders::_1)); sm.regBfStateProcess(bind(&DisinfectionService::beforeStateProcess, this)); sm.startProcess(); } @@ -199,7 +198,7 @@ void DisinfectionService::__dumpDisinfectionLogsToCSV(bool header) { if (header) { content += fmt::format(" {} ,", ZIconv::noChange("喷液泵(g/min)")); } else { - content += fmt::format(" {} ,", ds->DBDB__sprayLiquidPump_readSpeed()); + content += fmt::format(" {} ,", ds->sprayLiquidPump_getGPM()); } #endif @@ -236,7 +235,7 @@ void DisinfectionService::logstate() { #if (defined PROJECT_TYPE_LARGE_SPACE_DISINFECTION) || (defined PROJECT_TYPE_SMALL_SPACE_DISINFECTION) || (defined PROJECT_TYPE_PIPE_DISINFECTION) logval += fmt::format("h:{},airB:{},airC:{},pump:{},", ds->heatingStrip_getstate(), ds->airBlower_getstate(), ds->airCompressor_getstate(), ds->sprayLiquidPump_getGPM()); #elif (defined PROJECT_TYPE_DRAW_BAR_BOX) - logval += fmt::format("pump:{},", ds->DBDB__sprayLiquidPump_readSpeed()); + logval += fmt::format("pump:{},", ds->sprayLiquidPump_getGPM()); #endif #if (defined PROJECT_TYPE_LARGE_SPACE_DISINFECTION) || (defined PROJECT_TYPE_SMALL_SPACE_DISINFECTION) || (defined PROJECT_TYPE_PIPE_DISINFECTION) logval += fmt::format("g:{},remainS:{}", m_deviceIoControlService->getDisinfectantVolume_g(), formattimeS(remaintime)); @@ -569,27 +568,27 @@ bool DisinfectionService::isTimeToResumeDisinfection() { void DisinfectionService::pauseDisinfection() { logger->info("pauseDisinfection"); -#if (defined PROJECT_TYPE_LARGE_SPACE_DISINFECTION) || (defined PROJECT_TYPE_SMALL_SPACE_DISINFECTION) || (defined PROJECT_TYPE_PIPE_DISINFECTION) + m_deviceIoControlService->sprayLiquidPump_close(); usleep(1000 * 1000); + +#if (defined PROJECT_TYPE_LARGE_SPACE_DISINFECTION) || (defined PROJECT_TYPE_SMALL_SPACE_DISINFECTION) || (defined PROJECT_TYPE_PIPE_DISINFECTION) m_deviceIoControlService->airCompressor_setState(false); #elif (defined PROJECT_TYPE_DRAW_BAR_BOX) m_deviceIoControlService->DBDB__miniPwmBlowerCtrl(0); - m_deviceIoControlService->DBDB__sprayLiquidPump_run(0); #endif context.is_disinfection_take_break = true; } void DisinfectionService::resumeDisinfection() { logger->info("resumeDisinfection"); - -#if (defined PROJECT_TYPE_LARGE_SPACE_DISINFECTION) || (defined PROJECT_TYPE_SMALL_SPACE_DISINFECTION) || (defined PROJECT_TYPE_PIPE_DISINFECTION) m_deviceIoControlService->sprayLiquidPump_open(cfg.injection_pump_speed); usleep(1000 * 1000); + +#if (defined PROJECT_TYPE_LARGE_SPACE_DISINFECTION) || (defined PROJECT_TYPE_SMALL_SPACE_DISINFECTION) || (defined PROJECT_TYPE_PIPE_DISINFECTION) m_deviceIoControlService->airCompressor_setState(true); #elif (defined PROJECT_TYPE_DRAW_BAR_BOX) m_deviceIoControlService->DBDB__miniPwmBlowerCtrl(0); - m_deviceIoControlService->DBDB__sprayLiquidPump_run(cfg.injection_pump_speed); #endif context.is_disinfection_take_break = false; } @@ -732,7 +731,8 @@ void DisinfectionService::processStatePreheat(disinfection_event_t* event) { } void DisinfectionService::processStateDisinfection(disinfection_event_t* event) { - disinfection_state_t next_state = kstate_dehumidification_after_disinfection; + // disinfection_state_t next_state = kstate_dehumidification_after_disinfection; + disinfection_state_t next_state = kstate_empty_liquid_from_the_line; /** * @brief 状态逻辑 @@ -866,6 +866,46 @@ void DisinfectionService::processStateDisinfection(disinfection_event_t* event) } } +void DisinfectionService::processStateEmpytLiquidFromTheLine(disinfection_event_t* event) { // + disinfection_state_t next_state = kstate_dehumidification_after_disinfection; + + /** + * @brief 状态逻辑 + * 1. 记录日志 + * 2. 检查是否消毒完成 + */ + + /******************************************************************************* + * 进入状态 * + *******************************************************************************/ + if (event->event == kdisinfection_event_enter_state) { + tryLogSatate(true); + m_deviceIoControlService->sprayLiquidPump_open(-SPRAYLIQUID_PUMP_MAX_GPM); + } + + /******************************************************************************* + * 离开状态 * + *******************************************************************************/ + else if (event->event == kdisinfection_event_exit_state) { + m_deviceIoControlService->sprayLiquidPump_close(); + } + + /******************************************************************************* + * 周期 * + *******************************************************************************/ + else if (event->event == kdisinfection_event_tmr_1s) { + if (sm.getStateHasPassedTimeMs() > EMTPTY_LINE_WHEN_DISINFECTION * 1000) { + sm.changeState(next_state); + } + } + /******************************************************************************* + * 结束消毒 * + *******************************************************************************/ + else if (event->event == kdisinfection_event_stop) { + sm.changeState(kstate_finished); + } +} + void DisinfectionService::processStateDehumidification_after_disinfection(disinfection_event_t* event) { disinfection_state_t next_state = kstate_degradation; diff --git a/src/service/disfection_ctl/disinfection_service.hpp b/src/service/disfection_ctl/disinfection_service.hpp index 99e8789..5528909 100644 --- a/src/service/disfection_ctl/disinfection_service.hpp +++ b/src/service/disfection_ctl/disinfection_service.hpp @@ -75,7 +75,7 @@ class DisinfectionService : public enable_shared_from_this int remaintime = 0; float now_loglevel = 0; float dvalue = 0; - bool is_disinfection_take_break; // 消毒工作中是否暂停工作 + bool is_disinfection_take_break; // 消毒工作中是否因为RS,RH,PPM过大而暂停工作 /******************************************************************************* * 传感器信息 * @@ -181,7 +181,7 @@ class DisinfectionService : public enable_shared_from_this void processStateFinished(disinfection_event_t* event); void processStateDehumidification_before_disinfection(disinfection_event_t* event); void processStateDehumidification_after_disinfection(disinfection_event_t* event); - + void processStateEmpytLiquidFromTheLine(disinfection_event_t* event); private: void initState(); diff --git a/src/service/disfection_ctl/disinfection_state.hpp b/src/service/disfection_ctl/disinfection_state.hpp index 64e9f13..2224826 100644 --- a/src/service/disfection_ctl/disinfection_state.hpp +++ b/src/service/disfection_ctl/disinfection_state.hpp @@ -42,6 +42,7 @@ typedef enum { kstate_finished = 5, // 结束 kstate_dehumidification_before_disinfection = 6, // 消毒前除湿 kstate_dehumidification_after_disinfection = 7, // 消毒后除湿 + kstate_empty_liquid_from_the_line = 8, // 排空管路中的液体 } disinfection_state_t; @@ -150,7 +151,6 @@ class DisinfectionPrinterTask { int targetLog; int actualLog; - }; class DisinfectionContext { diff --git a/src/service/disinfection_printer_service.cpp b/src/service/disinfection_printer_service.cpp index b2d0983..c300891 100644 --- a/src/service/disinfection_printer_service.cpp +++ b/src/service/disinfection_printer_service.cpp @@ -81,9 +81,13 @@ void DisinfectionPrinterService::printTask(shared_ptr t dio->printerPrintf(fmt::format("结束...\n")); } else if (now_state == kstate_dehumidification_before_disinfection) { dio->printerPrintf(fmt::format("消毒前除湿中...\n")); + } else if (now_state == kstate_empty_liquid_from_the_line) { + dio->printerPrintf(fmt::format("排空管路中...\n")); } else if (now_state == kstate_dehumidification_after_disinfection) { dio->printerPrintf(fmt::format("消毒后除湿中...\n")); } + + dio->printerPrintf(fmt::format("{}ppm {}%RS {}%RH {}LOG\n", ss->min_h2o2, ss->max_saturation, ss->max_humid, (int)ss->dloglevel)); state = now_state; } else { diff --git a/src/service/if_devoce_io_contrl_service.hpp b/src/service/if_devoce_io_contrl_service.hpp index a49407c..714a76d 100644 --- a/src/service/if_devoce_io_contrl_service.hpp +++ b/src/service/if_devoce_io_contrl_service.hpp @@ -67,6 +67,17 @@ class IF_DeviceIoContrlService { virtual bool H2O2Sensor_readSensorState(int32_t sensorid) = 0; + // 喷液泵 + virtual void sprayLiquidPump_open(int gpm) = 0; + virtual void sprayLiquidPump_close() = 0; + virtual int sprayLiquidPump_getState() = 0; + virtual int sprayLiquidPump_getRPM() = 0; + virtual int sprayLiquidPump_getGPM() = 0; + + virtual void sprayLiquidPump_open_for_test(int gpm) = 0; + virtual void sprayLiquidPump_close_for_test() = 0; + + #if (defined PROJECT_TYPE_LARGE_SPACE_DISINFECTION) || (defined PROJECT_TYPE_SMALL_SPACE_DISINFECTION) || (defined PROJECT_TYPE_PIPE_DISINFECTION) /******************************************************************************* @@ -108,16 +119,6 @@ class IF_DeviceIoContrlService { virtual void replenishingFluidsPump_open_for_test(int speed) = 0; virtual void replenishingFluidsPump_close_for_test() = 0; - // 喷液泵 - virtual void sprayLiquidPump_open(int gpm) = 0; - virtual void sprayLiquidPump_close() = 0; - virtual int sprayLiquidPump_getState() = 0; - virtual int sprayLiquidPump_getRPM() = 0; - virtual int sprayLiquidPump_getGPM() = 0; - - virtual void sprayLiquidPump_open_for_test(int gpm) = 0; - virtual void sprayLiquidPump_close_for_test() = 0; - /****************************************************************************** * 水浸传感器 * ******************************************************************************/ @@ -173,8 +174,6 @@ class IF_DeviceIoContrlService { /******************************************************************************* * 拉杆箱消毒机-喷液泵 * *******************************************************************************/ - virtual void DBDB__sprayLiquidPump_run(int gpm) = 0; - virtual int DBDB__sprayLiquidPump_readSpeed() = 0; virtual int32_t DBDB__readPressureSensor(int index) = 0; virtual int32_t DBDB__sprayAirCompressorPowerCtrl(int index) = 0;