7 changed files with 44 additions and 152 deletions
-
3README.md
-
4h2o2_computer/zh2o2_computer.c
-
25src/api/cmds/disinfection_cmd_impl.cpp
-
16src/db/db_service.cpp
-
2src/service/disfection_ctl/add_liquid_service.cpp
-
144src/service/disfection_ctl/disinfection_service.hpp.bak
-
2src/version.hpp
@ -1,144 +0,0 @@ |
|||||
// |
|
||||
// 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 "db/db_service.hpp" |
|
||||
#include "service/disinfection_logs_manager.hpp" |
|
||||
#include "disinfection_state.hpp" |
|
||||
#include "iflytop/components/zcanreceiver/zcanhost.hpp" |
|
||||
#include "iflytop/core/core.hpp" |
|
||||
#include "service/device_io_control_service.hpp" |
|
||||
#include "service/disinfection_printer_service.hpp" |
|
||||
#include "utils/dvalue_computer.hpp" |
|
||||
#include "zservice_container/zservice_container.hpp" |
|
||||
/** |
|
||||
* @brief |
|
||||
* |
|
||||
* service: DisinfectionService |
|
||||
* |
|
||||
* 监听事件: |
|
||||
* 依赖状态: |
|
||||
* 依赖服务: |
|
||||
* 作用: |
|
||||
* |
|
||||
*/ |
|
||||
|
|
||||
namespace iflytop { |
|
||||
using namespace std; |
|
||||
using namespace core; |
|
||||
class DisinfectionService : public enable_shared_from_this<DisinfectionService> { |
|
||||
ENABLE_LOGGER(DisinfectionService); |
|
||||
|
|
||||
private: |
|
||||
recursive_mutex lock_; |
|
||||
|
|
||||
unique_ptr<Thread> m_disinfectionThread; |
|
||||
shared_ptr<IF_DeviceIoContrlService> m_deviceIoControlService; |
|
||||
shared_ptr<DBService> m_dbService; |
|
||||
shared_ptr<DisinfectionLogsManager> m_disinfectionLogsManager; |
|
||||
shared_ptr<DisinfectionPrinterService> m_disinfectionPrinterService; |
|
||||
DValueComputer m_dvalueComputer; |
|
||||
|
|
||||
int m_disinfectionWorkState = 0; |
|
||||
int m_replenishingFluidsWorkState = 0; |
|
||||
int m_drainingWorkState = 0; // 消毒工作状态,0:未工作,1:工作中 |
|
||||
|
|
||||
public: |
|
||||
DisinfectionContext m_context; |
|
||||
|
|
||||
public: |
|
||||
DisinfectionService(); |
|
||||
|
|
||||
public: |
|
||||
void initialize(); |
|
||||
/** |
|
||||
* @brief 开始消毒 |
|
||||
* |
|
||||
* @param loglevel 消毒等级 |
|
||||
*/ |
|
||||
|
|
||||
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(); |
|
||||
int getDisinfectionWorkState(); |
|
||||
|
|
||||
/******************************************************************************* |
|
||||
* State * |
|
||||
*******************************************************************************/ |
|
||||
bool isDisinfectionRunning(); |
|
||||
int32_t getEstimatedRemainingTimeS(); |
|
||||
string getDisinfectionID(); |
|
||||
bool isPreheatState(); |
|
||||
int32_t getPreHeatRaminTimeS(); |
|
||||
|
|
||||
private: |
|
||||
string createDisinfectionID(); |
|
||||
|
|
||||
private: |
|
||||
float getDisinfectionDValue(float ppm); |
|
||||
|
|
||||
void initContext(DisinfectionContext& context, // |
|
||||
int loglevel, // |
|
||||
float injection_pump_speed, // |
|
||||
float stoped_gs, // |
|
||||
float continued_gs, // |
|
||||
float stoped_satur, // |
|
||||
float continued_satur, // |
|
||||
float stoped_humi, // |
|
||||
float continued_humi // |
|
||||
); |
|
||||
|
|
||||
void computeRemainTime(DisinfectionContext& context); |
|
||||
float computeNowLogLevel(DisinfectionContext& context); |
|
||||
void processPreheatState(DisinfectionContext& context); |
|
||||
void processDisinfectionState(DisinfectionContext& context); |
|
||||
void finishDisinfection(DisinfectionContext& context); |
|
||||
|
|
||||
void disinfectionLoop(bool& breakflag); |
|
||||
|
|
||||
void processState_Preheat(DisinfectionContext& context); |
|
||||
void processState_Disinfection(DisinfectionContext& context, bool& updatedval); |
|
||||
void processState_Degradation(DisinfectionContext& context); |
|
||||
|
|
||||
private: |
|
||||
shared_ptr<DisinfectionLogger> createCSVLogger(string log_file_name); |
|
||||
void dumpDisinfectionLogsToCSV(DisinfectionContext& context); |
|
||||
|
|
||||
void pushDisinfectionPrinterTask(DisinfectionContext& context); |
|
||||
|
|
||||
void log(DisinfectionContext& context); |
|
||||
void takeStateSnapshot(DisinfectionContext& context); |
|
||||
void updateH2O2SensorData(DisinfectionContext& context); |
|
||||
|
|
||||
|
|
||||
private: |
|
||||
}; |
|
||||
} // namespace iflytop |
|
@ -1,2 +1,2 @@ |
|||||
#pragma once
|
#pragma once
|
||||
#define VERSION "6.1"
|
|
||||
|
#define VERSION "6.2"
|
Write
Preview
Loading…
Cancel
Save
Reference in new issue