From 7266cff5f4cd71945d194b012a2c6c8bfbf523bc Mon Sep 17 00:00:00 2001 From: zhaohe Date: Fri, 24 May 2024 09:36:55 +0800 Subject: [PATCH] update --- README.md | 2 + src/api/cmds/device_state_cmd_impl.cpp | 2 +- src/configs/project_setting.hpp | 44 ++++++++++++---------- src/main_control_service.cpp | 1 - src/service/device_io_control_service.cpp | 29 +++++++------- src/service/device_io_control_service.hpp | 5 +-- src/service/device_io_control_service_test.cpp | 5 +-- src/service/device_io_control_service_test.hpp | 7 +--- src/service/disfection_ctl/add_liquid_service.cpp | 21 ++++++++++- .../disfection_ctl/disinfection_service.cpp | 1 - .../disfection_ctl/disinfection_service.cpp.bak | 1 - .../disfection_ctl/drain_liquid_service.cpp | 7 ++-- src/service/if_devoce_io_contrl_service.hpp | 10 ++--- src/version.hpp | 2 +- 14 files changed, 70 insertions(+), 67 deletions(-) diff --git a/README.md b/README.md index 6ba034d..6ee0ee7 100644 --- a/README.md +++ b/README.md @@ -10,6 +10,8 @@ 1.排液最后的默认排空管道时间修改成8秒 V5.2 1.添加配置恢复出场设置接口 + V5.3 + 添加加液时排空管路的逻辑 ``` diff --git a/src/api/cmds/device_state_cmd_impl.cpp b/src/api/cmds/device_state_cmd_impl.cpp index f890744..7f12054 100644 --- a/src/api/cmds/device_state_cmd_impl.cpp +++ b/src/api/cmds/device_state_cmd_impl.cpp @@ -18,7 +18,7 @@ json DeviceStateCmdImpl::createSensorDataJson() { report["heatingStrip"]["currentVal"] = m_deviceIoControlService->heatingStrip_getcurrentValue(); report["sprinklerPumpRPM"] = m_deviceIoControlService->sprayLiquidPump_getRPM(); - report["chargingPumpRPM"] = m_deviceIoControlService->drainingPump_getRPM(); + report["chargingPumpRPM"] = m_deviceIoControlService->sprayLiquidPump_getRPM(); report["sprinklerPumpGPM"] = m_deviceIoControlService->sprayLiquidPump_getGPM(); // report["chargingPumpGPM"] = m_deviceIoControlService->getChargingPump_PumpGPM(); diff --git a/src/configs/project_setting.hpp b/src/configs/project_setting.hpp index 3b28796..f680e91 100644 --- a/src/configs/project_setting.hpp +++ b/src/configs/project_setting.hpp @@ -19,35 +19,39 @@ // #if (defined PROJECT_TYPE_LARGE_SPACE_DISINFECTION) || (defined PROJECT_TYPE_SMALL_SPACE_DISINFECTION) || (defined PROJECT_TYPE_PIPE_DISINFECTION) #ifdef PROJECT_TYPE_LARGE_SPACE_DISINFECTION -#define DISINFECTANT_BUCKET_CAPACITY 5000 -#define PROJECT_NAME "large_space_disinfection" -#define MAX_H2O2_SENSOR_NUM (3) -#define MIN_DISINFECTANT_VOLUME 500 -#define DEVICE_IP "192.168.8.10" +#define DISINFECTANT_BUCKET_CAPACITY 5000 +#define PROJECT_NAME "large_space_disinfection" +#define MAX_H2O2_SENSOR_NUM (3) +#define MIN_DISINFECTANT_VOLUME 500 +#define DEVICE_IP "192.168.8.10" +#define EMTPTY_LINE_WHEN_ADDING_DISINFECTANT_TIMES 80 #endif #ifdef PROJECT_TYPE_SMALL_SPACE_DISINFECTION -#define DISINFECTANT_BUCKET_CAPACITY 2500 -#define PROJECT_NAME "small_space_disinfection" -#define MAX_H2O2_SENSOR_NUM (3) -#define MIN_DISINFECTANT_VOLUME 500 -#define DEVICE_IP "192.168.8.11" +#define DISINFECTANT_BUCKET_CAPACITY 2500 +#define PROJECT_NAME "small_space_disinfection" +#define MAX_H2O2_SENSOR_NUM (3) +#define MIN_DISINFECTANT_VOLUME 500 +#define DEVICE_IP "192.168.8.11" +#define EMTPTY_LINE_WHEN_ADDING_DISINFECTANT_TIMES 80 #endif #ifdef PROJECT_TYPE_PIPE_DISINFECTION -#define DISINFECTANT_BUCKET_CAPACITY 2500 -#define PROJECT_NAME "pipe_disinfection" -#define MAX_H2O2_SENSOR_NUM (1) -#define MIN_DISINFECTANT_VOLUME 500 -#define DEVICE_IP "192.168.8.12" +#define DISINFECTANT_BUCKET_CAPACITY 2500 +#define PROJECT_NAME "pipe_disinfection" +#define MAX_H2O2_SENSOR_NUM (1) +#define MIN_DISINFECTANT_VOLUME 500 +#define DEVICE_IP "192.168.8.12" +#define EMTPTY_LINE_WHEN_ADDING_DISINFECTANT_TIMES 80 #endif #ifdef PROJECT_TYPE_DRAW_BAR_BOX -#define DISINFECTANT_BUCKET_CAPACITY 0 -#define PROJECT_NAME "draw_bar_box_disinfection" -#define MAX_H2O2_SENSOR_NUM (1) -#define MIN_DISINFECTANT_VOLUME 0 -#define DEVICE_IP "192.168.8.13" +#define DISINFECTANT_BUCKET_CAPACITY 0 +#define PROJECT_NAME "draw_bar_box_disinfection" +#define MAX_H2O2_SENSOR_NUM (1) +#define MIN_DISINFECTANT_VOLUME 0 +#define DEVICE_IP "192.168.8.13" +#define EMTPTY_LINE_WHEN_ADDING_DISINFECTANT_TIMES 80 #endif #define MAX_DISINFECTIONLOGGER_FILE_NUM 10 // 最大日志文件数量 diff --git a/src/main_control_service.cpp b/src/main_control_service.cpp index e696b24..6c19f7b 100644 --- a/src/main_control_service.cpp +++ b/src/main_control_service.cpp @@ -159,7 +159,6 @@ void MainControlService::initialize() { m_deviceIoControlService->airCompressor_setState(0); m_deviceIoControlService->airBlower_setState(0); m_deviceIoControlService->heartingPlate_setPower(false); - m_deviceIoControlService->drainingPump_close(); m_deviceIoControlService->sprayLiquidPump_close(); #ifdef PROJECT_TYPE_PIPE_DISINFECTION m_deviceIoControlService->AirInletProportionalValve_setState(0); diff --git a/src/service/device_io_control_service.cpp b/src/service/device_io_control_service.cpp index 16dc164..781fe9e 100644 --- a/src/service/device_io_control_service.cpp +++ b/src/service/device_io_control_service.cpp @@ -407,21 +407,20 @@ int DeviceIoControlService::heatingStrip_getio2() { return m_zcanHost->read_writ int DeviceIoControlService::heatingStrip_getstate() { return m_zcanHost->read_writeio_state_cache(4) && m_zcanHost->read_writeio_state_cache(5); } int DeviceIoControlService::heatingStrip_getcurrentValue() { return m_adc_2 * 0.00336 - 2.5; } // -int DeviceIoControlService::drainingPump_getRPM() { return m_zcanHost->pumpctrl_c1004_get_speed_cache(1); } -void DeviceIoControlService::drainingPump_open() { - logger->info("drainingPump_open"); - m_zcanHost->pumpctrl_c1004(1, 100, -300, 1, 20); -} -void DeviceIoControlService::drainingPump_close() { - logger->info("drainingPump_close"); - m_zcanHost->pumpctrl_c1004(1, 100, 0, 1, 20); -} +// void DeviceIoControlService::drainingPump_open() { +// logger->info("drainingPump_open"); +// m_zcanHost->pumpctrl_c1004(1, 100, -300, 1, 20); +// } +// void DeviceIoControlService::drainingPump_close() { +// logger->info("drainingPump_close"); +// m_zcanHost->pumpctrl_c1004(1, 100, 0, 1, 20); +// } #define replenishingFluidsPump_GPM2RPM(gpm) (gpm / 2) -void DeviceIoControlService::replenishingFluidsPump_open() { - logger->info("replenishingFluidsPump_open"); +void DeviceIoControlService::replenishingFluidsPump_open(int32_t rpm) { + logger->info("replenishingFluidsPump_open {}",rpm); // 600g/m 300RPM - m_zcanHost->pumpctrl_c1004(1, 100, 300, 1, 20); + m_zcanHost->pumpctrl_c1004(1, 100, rpm, 1, 20); } void DeviceIoControlService::replenishingFluidsPump_close() { logger->info("replenishingFluidsPump_close"); @@ -454,10 +453,10 @@ void DeviceIoControlService::sprayLiquidPump_open(int gpm) { int speed = GPM_TO_SPEED(gpm); if (speed > 450) { speed = 450; - } else if (speed < 0) { - speed = 0; + } else if (speed < -450) { + speed = -450; } - m_zcanHost->pumpctrl_c1004(2, 100, speed, 1, 15); + m_zcanHost->pumpctrl_c1004(2, 100, speed, 1, 18); } void DeviceIoControlService::sprayLiquidPump_close() { logger->info("sprayLiquidPump_close"); diff --git a/src/service/device_io_control_service.hpp b/src/service/device_io_control_service.hpp index 21ec28b..60906da 100644 --- a/src/service/device_io_control_service.hpp +++ b/src/service/device_io_control_service.hpp @@ -161,11 +161,8 @@ class DeviceIoControlService : public IF_DeviceIoContrlService { * 泵控制 * *******************************************************************************/ // 排液泵 - virtual void drainingPump_open() override; - virtual void drainingPump_close() override; - virtual int drainingPump_getRPM() override; // 充液泵 - virtual void replenishingFluidsPump_open() override; + virtual void replenishingFluidsPump_open(int32_t rpm) override; virtual void replenishingFluidsPump_close() override; virtual void replenishingFluidsPump_open_for_test(int speed) override; diff --git a/src/service/device_io_control_service_test.cpp b/src/service/device_io_control_service_test.cpp index 9f1d37e..2f795e7 100644 --- a/src/service/device_io_control_service_test.cpp +++ b/src/service/device_io_control_service_test.cpp @@ -152,11 +152,8 @@ int DeviceIoControlServiceTest::airCompressor_getcurrentValue() { return airComp // 排液泵 static int drainingPump_rpm; -void DeviceIoControlServiceTest::drainingPump_open() { drainingPump_rpm = 121; } -void DeviceIoControlServiceTest::drainingPump_close() { drainingPump_rpm = 0; } -int DeviceIoControlServiceTest::drainingPump_getRPM() { return drainingPump_rpm; } // 充液泵 -void DeviceIoControlServiceTest::replenishingFluidsPump_open() { drainingPump_rpm = -122; } +void DeviceIoControlServiceTest::replenishingFluidsPump_open(int32_t rpm) { drainingPump_rpm = rpm; } 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; } diff --git a/src/service/device_io_control_service_test.hpp b/src/service/device_io_control_service_test.hpp index d4cf6c9..757fb0e 100644 --- a/src/service/device_io_control_service_test.hpp +++ b/src/service/device_io_control_service_test.hpp @@ -92,14 +92,9 @@ class DeviceIoControlServiceTest : public IF_DeviceIoContrlService { /******************************************************************************* * 泵控制 * *******************************************************************************/ - virtual int drainingPump_getRPM() override; - - virtual void drainingPump_open() override; - virtual void drainingPump_close() override; // 充液泵 - virtual void replenishingFluidsPump_open() override; + virtual void replenishingFluidsPump_open(int32_t rpm) override; virtual void replenishingFluidsPump_close() override; - virtual void replenishingFluidsPump_open_for_test(int speed) override; virtual void replenishingFluidsPump_close_for_test() override; diff --git a/src/service/disfection_ctl/add_liquid_service.cpp b/src/service/disfection_ctl/add_liquid_service.cpp index e99f322..650e252 100644 --- a/src/service/disfection_ctl/add_liquid_service.cpp +++ b/src/service/disfection_ctl/add_liquid_service.cpp @@ -41,7 +41,7 @@ void AddLiquidService::startReplenishingFluids(int stopatg) { int32_t nowvolume = m_deviceIoControlService->getDisinfectantVolume_g(); int maxg = DISINFECTANT_BUCKET_CAPACITY; - stopatg += 100; //由于加液过程中,测量到的液体要比真实的小,所以这里要比预设值大100 + stopatg += 50; // 由于加液过程中,测量到的液体要比真实的小,所以这里要比预设值大100 if (stopatg > maxg) { logger->warn("start Replenishing fail, stopatg {} > maxg {}", stopatg, maxg); @@ -55,7 +55,7 @@ void AddLiquidService::startReplenishingFluids(int stopatg) { m_disinfectionThread.reset(new Thread("disinfectionThread", [this, stopatg]() { ThisThread thisThread; - m_deviceIoControlService->replenishingFluidsPump_open(); + m_deviceIoControlService->replenishingFluidsPump_open(300); logger->info("startReplenishingFluids {}g", stopatg); while (!thisThread.getExitFlag()) { int32_t nowvolume = m_deviceIoControlService->getDisinfectantVolume_g(); @@ -66,6 +66,23 @@ void AddLiquidService::startReplenishingFluids(int stopatg) { thisThread.sleepForMs(1000); } + // 排空管路中的消毒液 + + logger->info("start drain the liquid from the line"); + m_deviceIoControlService->sprayLiquidPump_open(-40); // 40gpm 约等于450RPM + thisThread.sleepForMs(1000); + m_deviceIoControlService->replenishingFluidsPump_open(-23); + + for (size_t i = 0; i < EMTPTY_LINE_WHEN_ADDING_DISINFECTANT_TIMES; i++) { + if (thisThread.getExitFlag()) { + break; + } + thisThread.sleepForMs(1000); + } + + m_deviceIoControlService->replenishingFluidsPump_close(); + m_deviceIoControlService->sprayLiquidPump_close(); + logger->info("stopReplenishingFluids"); // replenishingFluidsPump_close(); m_deviceIoControlService->replenishingFluidsPump_close(); diff --git a/src/service/disfection_ctl/disinfection_service.cpp b/src/service/disfection_ctl/disinfection_service.cpp index 5e427cb..1710ef8 100644 --- a/src/service/disfection_ctl/disinfection_service.cpp +++ b/src/service/disfection_ctl/disinfection_service.cpp @@ -30,7 +30,6 @@ void DisinfectionService::initialize() { m_dvalueComputer.initialize(); #if (defined PROJECT_TYPE_LARGE_SPACE_DISINFECTION) || (defined PROJECT_TYPE_SMALL_SPACE_DISINFECTION) || (defined PROJECT_TYPE_PIPE_DISINFECTION) - m_deviceIoControlService->drainingPump_close(); m_deviceIoControlService->replenishingFluidsPump_close(); m_deviceIoControlService->sprayLiquidPump_close(); diff --git a/src/service/disfection_ctl/disinfection_service.cpp.bak b/src/service/disfection_ctl/disinfection_service.cpp.bak index 3efc2b9..65dd0d6 100644 --- a/src/service/disfection_ctl/disinfection_service.cpp.bak +++ b/src/service/disfection_ctl/disinfection_service.cpp.bak @@ -58,7 +58,6 @@ void DisinfectionService::initialize() { GET_TO_SERVICE(m_disinfectionPrinterService); #if (defined PROJECT_TYPE_LARGE_SPACE_DISINFECTION) || (defined PROJECT_TYPE_SMALL_SPACE_DISINFECTION) || (defined PROJECT_TYPE_PIPE_DISINFECTION) - m_deviceIoControlService->drainingPump_close(); m_deviceIoControlService->replenishingFluidsPump_close(); m_deviceIoControlService->sprayLiquidPump_close(); diff --git a/src/service/disfection_ctl/drain_liquid_service.cpp b/src/service/disfection_ctl/drain_liquid_service.cpp index 85c0c7f..5c68953 100644 --- a/src/service/disfection_ctl/drain_liquid_service.cpp +++ b/src/service/disfection_ctl/drain_liquid_service.cpp @@ -23,7 +23,6 @@ void DrainLiquidService::initialize() { GET_TO_SERVICE(m_disinfectionPrinterService); #if (defined PROJECT_TYPE_LARGE_SPACE_DISINFECTION) || (defined PROJECT_TYPE_SMALL_SPACE_DISINFECTION) || (defined PROJECT_TYPE_PIPE_DISINFECTION) - m_deviceIoControlService->drainingPump_close(); m_deviceIoControlService->replenishingFluidsPump_close(); m_deviceIoControlService->sprayLiquidPump_close(); @@ -52,7 +51,7 @@ void DrainLiquidService::startDraining() { m_disinfectionThread.reset(new Thread("disinfectionThread", [this]() { ThisThread thisThread; - m_deviceIoControlService->drainingPump_open(); + m_deviceIoControlService->replenishingFluidsPump_open(-300); logger->info("startDraining "); auto startdrainingtime = zsteady_clock().now(); @@ -79,7 +78,7 @@ void DrainLiquidService::startDraining() { } logger->info("stopDraining"); // replenishingFluidsPump_close(); - m_deviceIoControlService->drainingPump_close(); + m_deviceIoControlService->replenishingFluidsPump_close(); m_drainingWorkState = 0; })); @@ -96,7 +95,7 @@ void DrainLiquidService::stopDraining() { logger->info("stopDraining"); m_drainingWorkState = 0; // drainingPump_close(); - m_deviceIoControlService->drainingPump_close(); + m_deviceIoControlService->replenishingFluidsPump_close(); } int DrainLiquidService::getDrainingWorkState() { return m_drainingWorkState; } #endif diff --git a/src/service/if_devoce_io_contrl_service.hpp b/src/service/if_devoce_io_contrl_service.hpp index db3d946..a49407c 100644 --- a/src/service/if_devoce_io_contrl_service.hpp +++ b/src/service/if_devoce_io_contrl_service.hpp @@ -101,13 +101,9 @@ class IF_DeviceIoContrlService { /******************************************************************************* * 泵控制 * *******************************************************************************/ - virtual int drainingPump_getRPM() = 0; - // 排液泵 - virtual void drainingPump_open() = 0; - virtual void drainingPump_close() = 0; // 充液泵 - virtual void replenishingFluidsPump_open() = 0; + virtual void replenishingFluidsPump_open(int32_t rpm) = 0; virtual void replenishingFluidsPump_close() = 0; virtual void replenishingFluidsPump_open_for_test(int speed) = 0; virtual void replenishingFluidsPump_close_for_test() = 0; @@ -126,7 +122,7 @@ class IF_DeviceIoContrlService { * 水浸传感器 * ******************************************************************************/ virtual int getDeviceBottomWaterDetectionSensor() = 0; - virtual int getEvaporationBinWaterDetection() = 0; + virtual int getEvaporationBinWaterDetection() = 0; /****************************************************************************** * 水位传感器 * @@ -152,7 +148,7 @@ class IF_DeviceIoContrlService { virtual int airCompressor_getValve1() = 0; virtual int airCompressor_getValve2() = 0; virtual float airCompressor_getPressure() = 0; - virtual float airCompressor_getPressureDirectKpa() = 0; + virtual float airCompressor_getPressureDirectKpa() = 0; #endif #ifdef PROJECT_TYPE_PIPE_DISINFECTION diff --git a/src/version.hpp b/src/version.hpp index f169230..9dcf5f6 100644 --- a/src/version.hpp +++ b/src/version.hpp @@ -1,2 +1,2 @@ #pragma once -#define VERSION "5.2" \ No newline at end of file +#define VERSION "5.3" \ No newline at end of file