diff --git a/src/configs/project_setting.hpp b/src/configs/project_setting.hpp index 9ac76cf..9438f73 100644 --- a/src/configs/project_setting.hpp +++ b/src/configs/project_setting.hpp @@ -10,8 +10,8 @@ #define REG_EXCEPTION_FLAG 0x0100 // 异常标志位 // #define PROJECT_TYPE_LARGE_SPACE_DISINFECTION 1 // 大空间 -#define PROJECT_TYPE_SMALL_SPACE_DISINFECTION 1 // 小空间 -// #define PROJECT_TYPE_PIPE_DISINFECTION 1 // 管道消毒机 +// #define PROJECT_TYPE_SMALL_SPACE_DISINFECTION 1 // 小空间 +#define PROJECT_TYPE_PIPE_DISINFECTION 1 // 管道消毒机 #ifdef PROJECT_TYPE_SMALL_SPACE_DISINFECTION #define DISINFECTANT_BUCKET_CAPACITY 2300 diff --git a/src/main_control_service.cpp b/src/main_control_service.cpp index dcc5f54..1c214af 100644 --- a/src/main_control_service.cpp +++ b/src/main_control_service.cpp @@ -1,5 +1,6 @@ #include "main_control_service.hpp" +#include "api/cmds/pipeline_disinfection_cmd_append.hpp" #include "configs/project_setting.hpp" #include "iflytop/components/zcanreceiver/zcanreceiverhost.hpp" #include "iflytop/core/components/stringutils.hpp" @@ -87,6 +88,9 @@ void MainControlService::initialize() { BUILD_AND_REG_SERRVICE(TestPageCmdImpl); BUILD_AND_REG_SERRVICE(UserCmdImpl); BUILD_AND_REG_SERRVICE(SelfTestCmdImpl); +#ifdef PROJECT_TYPE_PIPE_DISINFECTION + BUILD_AND_REG_SERRVICE(PipelineDisinfectionCmdAppend); +#endif GET_SERVICE(DeviceStateCmdImpl)->initialize(); GET_SERVICE(DisinfectionCmdImpl)->initialize(); @@ -96,4 +100,7 @@ void MainControlService::initialize() { GET_SERVICE(TestPageCmdImpl)->initialize(); GET_SERVICE(UserCmdImpl)->initialize(); GET_SERVICE(SelfTestCmdImpl)->initialize(); +#ifdef PROJECT_TYPE_PIPE_DISINFECTION + GET_SERVICE(PipelineDisinfectionCmdAppend)->initialize(); +#endif }; diff --git a/src/service/device_io_control_service.hpp b/src/service/device_io_control_service.hpp index e8d877e..189ac9f 100644 --- a/src/service/device_io_control_service.hpp +++ b/src/service/device_io_control_service.hpp @@ -90,9 +90,9 @@ class DeviceIoControlService : public IF_DeviceIoContrlService { int32_t m_AirInletProportionalValve_state = 0; int32_t m_AirOutletProportionalValve_state = 0; - int32_t m_airCompressor_valve1State = 0; - int32_t m_airCompressor_valve2State = 0; - int32_t m_airCompressor_channelIndex = 0; + int32_t m_airCompressor_valve1State = 0; + int32_t m_airCompressor_valve2State = 0; + int32_t m_airCompressor_channelIndex = 0; #endif public: @@ -139,14 +139,14 @@ class DeviceIoControlService : public IF_DeviceIoContrlService { virtual int airCompressor_getcurrentValue() override; #ifdef PROJECT_TYPE_PIPE_DISINFECTION - virtual int airCompressor_channelSelect(int32_t val); - virtual int airCompressor_getChannelIndex(); - virtual int airCompressor_setValve1(int32_t val); // 0关闭通道 1打开通道 - virtual int airCompressor_setValve2(int32_t val); // 0关闭通道 1打开通道 - virtual int airCompressor_getValve1(); - virtual int airCompressor_getValve2(); - virtual float airCompressor_getPressure(); - virtual float airCompressor_getPressureDirect(); + virtual int airCompressor_channelSelect(int32_t val) override; + virtual int airCompressor_getChannelIndex() override; + virtual int airCompressor_setValve1(int32_t val) override; // 0关闭通道 1打开通道 + virtual int airCompressor_setValve2(int32_t val) override; // 0关闭通道 1打开通道 + virtual int airCompressor_getValve1() override; + virtual int airCompressor_getValve2() override; + virtual float airCompressor_getPressure() override; + virtual float airCompressor_getPressureDirect() override; #endif /******************************************************************************* @@ -188,15 +188,15 @@ class DeviceIoControlService : public IF_DeviceIoContrlService { /******************************************************************************* * 比例阀控制 * *******************************************************************************/ - virtual void AirInletProportionalValve_setState(int32_t val); - virtual void AirOutletProportionalValve_setState(int32_t val); + virtual void AirInletProportionalValve_setState(int32_t val) override; + virtual void AirOutletProportionalValve_setState(int32_t val) override; - virtual int32_t AirInletProportionalValve_getState(); - virtual int32_t AirOutletProportionalValve_getState(); + virtual int32_t AirInletProportionalValve_getState() override; + virtual int32_t AirOutletProportionalValve_getState() override; - virtual int32_t AirProportionalValve_setState(int32_t inlet, int32_t outlet); - virtual int32_t AirProportionalValve_getState(int32_t* inlet, int32_t* outlet); - virtual int32_t AirProportionalValve_isBusy(int32_t* isbusy); + virtual int32_t AirProportionalValve_setState(int32_t inlet, int32_t outlet) override; + virtual int32_t AirProportionalValve_getState(int32_t* inlet, int32_t* outlet) override; + virtual int32_t AirProportionalValve_isBusy(int32_t* isbusy) override; #endif private: diff --git a/src/service/device_io_control_service_test.cpp b/src/service/device_io_control_service_test.cpp index 49716f9..5825a2d 100644 --- a/src/service/device_io_control_service_test.cpp +++ b/src/service/device_io_control_service_test.cpp @@ -1,8 +1,8 @@ #include "device_io_control_service_test.hpp" + #include "iflytop/components/uart_printer/uart_printer.hpp" #include "iflytoplinuxsdk/src/iflytop/components/ziconv.hpp" - using namespace iflytop; using namespace std; @@ -10,7 +10,7 @@ using namespace std; void DeviceIoControlServiceTest::printerPrintf(string str) { // logger->info("PP:{}", str); - GET_SERVICE(UartPrinter)->print(ZIconv::utf8_to_gb2312(str)); + GET_SERVICE(UartPrinter)->print(ZIconv::utf8_to_gb2312(str)); } int32_t DeviceIoControlServiceTest::H2O2Sensor_readH2O2PPM(int32_t sensorid) { return 300 + rand() % 1000; } @@ -112,4 +112,62 @@ int DeviceIoControlServiceTest::getWaterImmersionSensor1() { return 0; } int DeviceIoControlServiceTest::getWaterImmersionSensor2() { return 1; } int DeviceIoControlServiceTest::getDisinfectantVolume_g() { return 123; } // g int DeviceIoControlServiceTest::getPressureSensorData(int index) { return 456; } // g -void DeviceIoControlServiceTest::warningLightCtrl(int r, int g, int b, int w) { logger->info("warningLightCtrl r:{} g:{} b:{} w:{}", r, g, b, w); } \ No newline at end of file +void DeviceIoControlServiceTest::warningLightCtrl(int r, int g, int b, int w) { logger->info("warningLightCtrl r:{} g:{} b:{} w:{}", r, g, b, w); } + +#ifdef PROJECT_TYPE_PIPE_DISINFECTION +/******************************************************************************* + * 比例法阀门状态 * + *******************************************************************************/ +int32_t m_AirInletProportionalValve_state = 0; +int32_t m_AirOutletProportionalValve_state = 0; + +int32_t m_airCompressor_valve1State = 0; +int32_t m_airCompressor_valve2State = 0; +int32_t m_airCompressor_channelIndex = 0; +#endif + +#ifdef PROJECT_TYPE_PIPE_DISINFECTION +int DeviceIoControlServiceTest::airCompressor_channelSelect(int32_t val) { + m_airCompressor_channelIndex = val; + return 0; +} +int DeviceIoControlServiceTest::airCompressor_getChannelIndex() { return m_airCompressor_channelIndex; } +int DeviceIoControlServiceTest::airCompressor_setValve1(int32_t val) { + m_airCompressor_valve1State = val; + return 0; +} +int DeviceIoControlServiceTest::airCompressor_setValve2(int32_t val) { + m_airCompressor_valve2State = val; + return 0; +} +int DeviceIoControlServiceTest::airCompressor_getValve1() { return m_airCompressor_valve1State; } +int DeviceIoControlServiceTest::airCompressor_getValve2() { return m_airCompressor_valve2State; } +float DeviceIoControlServiceTest::airCompressor_getPressure() { return 123.0; } +float DeviceIoControlServiceTest::airCompressor_getPressureDirect() { return 123.0; } +#endif + +#ifdef PROJECT_TYPE_PIPE_DISINFECTION +/******************************************************************************* + * 比例阀控制 * + *******************************************************************************/ +void DeviceIoControlServiceTest::AirInletProportionalValve_setState(int32_t val) { m_AirInletProportionalValve_state = val; } +void DeviceIoControlServiceTest::AirOutletProportionalValve_setState(int32_t val) { m_AirOutletProportionalValve_state = val; } + +int32_t DeviceIoControlServiceTest::AirInletProportionalValve_getState() { return m_AirInletProportionalValve_state; } +int32_t DeviceIoControlServiceTest::AirOutletProportionalValve_getState() { return m_AirOutletProportionalValve_state; } + +int32_t DeviceIoControlServiceTest::AirProportionalValve_setState(int32_t inlet, int32_t outlet) { + m_AirInletProportionalValve_state = inlet; + m_AirOutletProportionalValve_state = outlet; + return 0; +} +int32_t DeviceIoControlServiceTest::AirProportionalValve_getState(int32_t* inlet, int32_t* outlet) { + *inlet = m_AirInletProportionalValve_state; + *outlet = m_AirOutletProportionalValve_state; + return 0; +} +int32_t DeviceIoControlServiceTest::AirProportionalValve_isBusy(int32_t* isbusy) { + *isbusy = 0; + return 0; +} +#endif \ No newline at end of file diff --git a/src/service/device_io_control_service_test.hpp b/src/service/device_io_control_service_test.hpp index a62eff4..639956a 100644 --- a/src/service/device_io_control_service_test.hpp +++ b/src/service/device_io_control_service_test.hpp @@ -82,7 +82,7 @@ class DeviceIoControlServiceTest : public IF_DeviceIoContrlService { /******************************************************************************* * 泵控制 * *******************************************************************************/ - virtual int drainingPump_getRPM() override; + virtual int drainingPump_getRPM() override; virtual void drainingPump_open() override; virtual void drainingPump_close() override; @@ -113,5 +113,31 @@ class DeviceIoControlServiceTest : public IF_DeviceIoContrlService { virtual int getPressureSensorData(int index) override; virtual void warningLightCtrl(int r, int g, int b, int w) override; + +#ifdef PROJECT_TYPE_PIPE_DISINFECTION + virtual int airCompressor_channelSelect(int32_t val) override; + virtual int airCompressor_getChannelIndex() override; + virtual int airCompressor_setValve1(int32_t val) override; // 0关闭通道 1打开通道 + virtual int airCompressor_setValve2(int32_t val) override; // 0关闭通道 1打开通道 + virtual int airCompressor_getValve1() override; + virtual int airCompressor_getValve2() override; + virtual float airCompressor_getPressure() override; + virtual float airCompressor_getPressureDirect() override; +#endif + +#ifdef PROJECT_TYPE_PIPE_DISINFECTION + /******************************************************************************* + * 比例阀控制 * + *******************************************************************************/ + virtual void AirInletProportionalValve_setState(int32_t val) override; + virtual void AirOutletProportionalValve_setState(int32_t val) override; + + virtual int32_t AirInletProportionalValve_getState() override; + virtual int32_t AirOutletProportionalValve_getState() override; + + virtual int32_t AirProportionalValve_setState(int32_t inlet, int32_t outlet) override; + virtual int32_t AirProportionalValve_getState(int32_t* inlet, int32_t* outlet) override; + virtual int32_t AirProportionalValve_isBusy(int32_t* isbusy) override; +#endif }; } // namespace iflytop \ No newline at end of file diff --git a/src/service/if_devoce_io_contrl_service.hpp b/src/service/if_devoce_io_contrl_service.hpp index 504d6b4..143e235 100644 --- a/src/service/if_devoce_io_contrl_service.hpp +++ b/src/service/if_devoce_io_contrl_service.hpp @@ -60,10 +60,10 @@ class IF_DeviceIoContrlService { virtual void printerPrintf(string str) = 0; public: - virtual int32_t H2O2Sensor_readH2O2PPM(int32_t sensorid) = 0; - virtual int32_t H2O2Sensor_readHumid(int32_t sensorid) = 0; - virtual int32_t H2O2Sensor_readTemperature(int32_t sensorid) = 0; - virtual int32_t H2O2Sensor_readSaturation(int32_t sensorid) = 0; + virtual int32_t H2O2Sensor_readH2O2PPM(int32_t sensorid) = 0; + virtual int32_t H2O2Sensor_readHumid(int32_t sensorid) = 0; + virtual int32_t H2O2Sensor_readTemperature(int32_t sensorid) = 0; + virtual int32_t H2O2Sensor_readSaturation(int32_t sensorid) = 0; /******************************************************************************* * 加热片控制 * @@ -139,5 +139,31 @@ class IF_DeviceIoContrlService { *******************************************************************************/ virtual void warningLightCtrl(int r, int g, int b, int w) = 0; + +#ifdef PROJECT_TYPE_PIPE_DISINFECTION + virtual int airCompressor_channelSelect(int32_t val) = 0; + virtual int airCompressor_getChannelIndex() = 0; + virtual int airCompressor_setValve1(int32_t val) = 0; // 0关闭通道 1打开通道 + virtual int airCompressor_setValve2(int32_t val) = 0; // 0关闭通道 1打开通道 + virtual int airCompressor_getValve1() = 0; + virtual int airCompressor_getValve2() = 0; + virtual float airCompressor_getPressure() = 0; + virtual float airCompressor_getPressureDirect() = 0; +#endif + +#ifdef PROJECT_TYPE_PIPE_DISINFECTION + /******************************************************************************* + * 比例阀控制 * + *******************************************************************************/ + virtual void AirInletProportionalValve_setState(int32_t val) = 0; + virtual void AirOutletProportionalValve_setState(int32_t val) = 0; + + virtual int32_t AirInletProportionalValve_getState() = 0; + virtual int32_t AirOutletProportionalValve_getState() = 0; + + virtual int32_t AirProportionalValve_setState(int32_t inlet, int32_t outlet) = 0; + virtual int32_t AirProportionalValve_getState(int32_t* inlet, int32_t* outlet) = 0; + virtual int32_t AirProportionalValve_isBusy(int32_t* isbusy) = 0; +#endif }; } // namespace iflytop \ No newline at end of file