You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

95 lines
2.8 KiB

//
// Created by zwsd
//
#pragma once
#include <fstream>
#include <iostream>
#include <list>
#include <map>
#include <memory>
#include <mutex>
#include <set>
#include <sstream>
#include <string>
#include <vector>
#include "disfection_ctl/add_liquid_service.hpp"
#include "disfection_ctl/disinfection_service.hpp"
#include "disfection_ctl/disinfection_state.hpp"
#include "disfection_ctl/drain_liquid_service.hpp"
/**
* @brief
*
* service: DisinfectionCtrlService
*
* 监听事件:
* 依赖状态:
* 依赖服务:
* 作用:
*
*/
namespace iflytop {
using namespace std;
using namespace core;
class DisinfectionCtrlService : public enable_shared_from_this<DisinfectionCtrlService> {
ENABLE_LOGGER(DisinfectionCtrlService);
private:
recursive_mutex lock_;
shared_ptr<AddLiquidService> m_addLiquidService;
shared_ptr<DrainLiquidService> m_drainLiquidService;
shared_ptr<DisinfectionService> m_disinfectionService;
public:
DisinfectionCtrlService() {}
public:
void initialize() {
m_addLiquidService = make_shared<AddLiquidService>();
m_drainLiquidService = make_shared<DrainLiquidService>();
m_disinfectionService = make_shared<DisinfectionService>();
m_addLiquidService->initialize();
m_drainLiquidService->initialize();
m_disinfectionService->initialize();
}
shared_ptr<AddLiquidService> getAddLiquidService() { return m_addLiquidService; }
shared_ptr<DrainLiquidService> getDrainLiquidService() { return m_drainLiquidService; }
shared_ptr<DisinfectionService> getDisinfectionService() { return m_disinfectionService; }
void startDisinfection(int loglevel, //
int injection_pump_speed, //
int stoped_gs, //
int continued_gs, //
int stoped_satur, //
int continued_satur, //
int stoped_humi, //
int continued_humi //
);
void changeDisinfectionParameter(int injection_pump_speed, //
int stoped_gs, //
int continued_gs, //
int stoped_satur, //
int continued_satur, //
int stoped_humi, //
int continued_humi //
);
void stopDisinfection();
#if (defined PROJECT_TYPE_LARGE_SPACE_DISINFECTION) || (defined PROJECT_TYPE_SMALL_SPACE_DISINFECTION) || (defined PROJECT_TYPE_PIPE_DISINFECTION)
void startReplenishingFluids(int stopatg);
void stopReplenishingFluids();
void startDraining();
void stopDraining();
#endif
private:
};
} // namespace iflytop