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
|
|||
#define VERSION "6.1"
|
|||
#define VERSION "6.2"
|
Write
Preview
Loading…
Cancel
Save
Reference in new issue