Browse Source

update

master
zhaohe 2 years ago
parent
commit
e198dbdbb0
  1. 21
      src/main.cpp
  2. 32
      src/service/device_io_control_service.cpp
  3. 21
      src/service/disinfection_ctl_service.cpp

21
src/main.cpp

@ -6,6 +6,11 @@
using namespace iflytop;
using namespace core;
using namespace std;
namespace iflytop {
bool g_preheat = false;
};
/*******************************************************************************
* MAIN => MAIN *
*******************************************************************************/
@ -25,12 +30,19 @@ int Main::main(int argc, char *argv[]) {
/**
* @brief
*/
// string device_id;
// auto cli = ((required("-device_id") & value("device_id", device_id)).doc("device_id"));
// if (!parse(argc, argv, cli)) {
string preheat;
auto cli = ((required("--preheat") & value("preheat", preheat)).doc("preheat"));
if (!parse(argc, argv, cli)) {
preheat = "true";
// cout << make_man_page(cli, argv[0]);
// exit(-1);
// }
}
if (preheat == "false") {
g_preheat = false;
} else {
g_preheat = true;
}
logger->info("preheat:{}:{}", preheat, g_preheat);
/**
* @brief
@ -46,7 +58,6 @@ int Main::main(int argc, char *argv[]) {
BUILD_AND_REG_SERRVICE(GConfig);
GET_SERVICE(GConfig)->initialize();
/**
* @brief
*/

32
src/service/device_io_control_service.cpp

@ -40,6 +40,38 @@ void DeviceIoControlService::startScan() {
if (i % 3000 == 0) {
// m_hpp272_data_1
m_zcanHost->hpp272_read_c1000(1, m_hpp272_data_1);
// hydrogen_peroxide_volume
// h2o_h2o2_rs
// temperature1
// relative_humidity
// absolute_hydrogen_peroxide
// h2o_h2o2dew_point_temperature
// reserved1
// water_volume
// water_vapor_pressure
// absolute_humidity
// water_vapor_saturation_pressure_h2o
// temperature2
// h2o2_vapor_pressure
// water_vapor_saturation_pressure_h2o_h2o2
logger->info("---------hpp272_read_c1000---------");
logger->info("hydrogen_peroxide_volume :{}", m_hpp272_data_1.hydrogen_peroxide_volume);
logger->info("h2o_h2o2_rs :{}", m_hpp272_data_1.h2o_h2o2_rs);
logger->info("temperature1 :{}", m_hpp272_data_1.temperature1);
logger->info("relative_humidity :{}", m_hpp272_data_1.relative_humidity);
logger->info("absolute_hydrogen_peroxide :{}", m_hpp272_data_1.absolute_hydrogen_peroxide);
logger->info("h2o_h2o2dew_point_temperature :{}", m_hpp272_data_1.h2o_h2o2dew_point_temperature);
logger->info("reserved1 :{}", m_hpp272_data_1.reserved1);
logger->info("water_volume :{}", m_hpp272_data_1.water_volume);
logger->info("water_vapor_pressure :{}", m_hpp272_data_1.water_vapor_pressure);
logger->info("absolute_humidity :{}", m_hpp272_data_1.absolute_humidity);
logger->info("water_vapor_saturation_pressure_h2o:{}", m_hpp272_data_1.water_vapor_saturation_pressure_h2o);
logger->info("temperature2 :{}", m_hpp272_data_1.temperature2);
logger->info("h2o2_vapor_pressure :{}", m_hpp272_data_1.h2o2_vapor_pressure);
logger->info("water_vapor_saturation_pressure_h2o_h2o2:{}", m_hpp272_data_1.water_vapor_saturation_pressure_h2o_h2o2);
logger->info("");
}
if (i % 300 == 0) {

21
src/service/disinfection_ctl_service.cpp

@ -22,10 +22,16 @@ using namespace std;
*
*/
#define PRE_HEAT_TIME (2)
// #define PRE_HEAT_TIME (2)
#define PRE_HEAT_TIME (5 * 60)
#define DVALUE_COMPUTEPERIOD_TIME_S (15.0)
#define MAX_VOLUME (5000)
namespace iflytop {
extern bool g_preheat;
}
DisinfectionCtrlService::DisinfectionCtrlService() {}
void DisinfectionCtrlService::initialize() {
GET_TO_SERVICE(m_zcanHost);
@ -108,7 +114,7 @@ void DisinfectionCtrlService::computeRemainTime(DisinfectionContext& context) {
void DisinfectionCtrlService::initContext(DisinfectionContext& context, int loglevel, float roomVol) {
context.m_disinfectionID = createDisinfectionID();
// m_remaintime = loglevel * 20 * 60; // 计算总的加热时间
context.m_remaintime = PRE_HEAT_TIME + loglevel * 20 * 60 * (roomVol / 20.0); // 计算总的加热时间
context.m_remaintime = PRE_HEAT_TIME + loglevel * 90 * 60; // 计算总的加热时间
m_disinfectionWorkState = 1;
context.m_targetLoglevel = loglevel;
context.m_nowLoglevel = 0;
@ -132,7 +138,8 @@ void DisinfectionCtrlService::initContext(DisinfectionContext& context, int logl
m_zcanHost->warning_light_ctrl_c1002(1, 0, 0, 1, 0);
m_deviceIoControlService->heartingPlate_setPower(true);
context.csvlogger = m_disinfectionLogsManager->createNewLogger(context.m_disinfectionID);
context.csvlogger->write("time,h2o21,temp1,humi1,saturation1,h2o22,temp2,humi2,saturation2,h2o23,temp3,humi3,saturation3,dvalue,nowlog,targetlog,remaintime\n");
context.csvlogger->write(
"time,h2o21,temp1,humi1,saturation1,h2o22,temp2,humi2,saturation2,h2o23,temp3,humi3,saturation3,dvalue,nowlog,targetlog,remaintime\n");
}
void DisinfectionCtrlService::finishDisinfection(DisinfectionContext& context) {
context.m_remaintime = 0;
@ -155,7 +162,7 @@ void DisinfectionCtrlService::finishDisinfection(DisinfectionContext& context) {
}
void DisinfectionCtrlService::processPreheatState(DisinfectionContext& context) {
if (context.m_preheatFlag && zsteady_clock().elapsedTimeS(context.m_starttp) > PRE_HEAT_TIME) {
if ((context.m_preheatFlag && zsteady_clock().elapsedTimeS(context.m_starttp) > PRE_HEAT_TIME) || !g_preheat) {
logger->info("preheat finished {}", context.m_disinfectionID);
// blower_setPower(true);
m_deviceIoControlService->AirBlower_setState(true);
@ -241,7 +248,8 @@ void DisinfectionCtrlService::processDisinfectionState(DisinfectionContext& cont
float nowh2o2 = m_context.h2o2data.max_h2o2;
float humid = m_context.h2o2data.max_humid;
if (nowSatur > m_context.stoped_satur || nowh2o2 > m_context.stoped_gs || humid > m_context.stoped_satur) {
// humid > m_context.stoped_satur
if (nowSatur > m_context.stoped_satur || nowh2o2 > m_context.stoped_gs) {
logger->info("stop sprayLiquid");
m_deviceIoControlService->sprayLiquidPump_close();
@ -255,7 +263,8 @@ void DisinfectionCtrlService::processDisinfectionState(DisinfectionContext& cont
float nowh2o2 = m_context.h2o2data.max_h2o2;
float humid = m_context.h2o2data.max_humid;
if (nowSatur < m_context.continued_satur && nowh2o2 < m_context.continued_gs && humid < m_context.continued_satur) {
// && humid < m_context.continued_satur
if (nowSatur < m_context.continued_satur && nowh2o2 < m_context.continued_gs) {
logger->info("start sprayLiquid");
m_deviceIoControlService->sprayLiquidPump_open();

Loading…
Cancel
Save