Browse Source

update

storage-in-realtime
zhaohe 1 year ago
parent
commit
7266cff5f4
  1. 2
      README.md
  2. 2
      src/api/cmds/device_state_cmd_impl.cpp
  3. 44
      src/configs/project_setting.hpp
  4. 1
      src/main_control_service.cpp
  5. 29
      src/service/device_io_control_service.cpp
  6. 5
      src/service/device_io_control_service.hpp
  7. 5
      src/service/device_io_control_service_test.cpp
  8. 7
      src/service/device_io_control_service_test.hpp
  9. 21
      src/service/disfection_ctl/add_liquid_service.cpp
  10. 1
      src/service/disfection_ctl/disinfection_service.cpp
  11. 1
      src/service/disfection_ctl/disinfection_service.cpp.bak
  12. 7
      src/service/disfection_ctl/drain_liquid_service.cpp
  13. 10
      src/service/if_devoce_io_contrl_service.hpp
  14. 2
      src/version.hpp

2
README.md

@ -10,6 +10,8 @@
1.排液最后的默认排空管道时间修改成8秒
V5.2
1.添加配置恢复出场设置接口
V5.3
添加加液时排空管路的逻辑
```

2
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();

44
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 // 最大日志文件数量

1
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);

29
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");

5
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;

5
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; }

7
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;

21
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();

1
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();

1
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();

7
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

10
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

2
src/version.hpp

@ -1,2 +1,2 @@
#pragma once
#define VERSION "5.2"
#define VERSION "5.3"
Loading…
Cancel
Save