|
@ -13,7 +13,8 @@ using namespace std; |
|
|
|
|
|
|
|
|
#define DVALUE_COMPUTEPERIOD_TIME_S (10.0)
|
|
|
#define DVALUE_COMPUTEPERIOD_TIME_S (10.0)
|
|
|
#define DUMP_LOG_PERIOD (5 * 60.0)
|
|
|
#define DUMP_LOG_PERIOD (5 * 60.0)
|
|
|
#define DBDB_MINI_PWM_BLOWER_VAL 50
|
|
|
|
|
|
|
|
|
// #define DUMP_LOG_PERIOD (10.0)
|
|
|
|
|
|
#define DBDB_MINI_PWM_BLOWER_VAL 50
|
|
|
|
|
|
|
|
|
namespace iflytop { |
|
|
namespace iflytop { |
|
|
extern bool g_in_test; |
|
|
extern bool g_in_test; |
|
@ -278,6 +279,7 @@ void DisinfectionService::takeStateSnapshot() { |
|
|
void DisinfectionService::tryLogSatate(bool force) { |
|
|
void DisinfectionService::tryLogSatate(bool force) { |
|
|
if (force || zsteady_clock().elapsedTimeS(context.lastlog_tp) > DUMP_LOG_PERIOD) { |
|
|
if (force || zsteady_clock().elapsedTimeS(context.lastlog_tp) > DUMP_LOG_PERIOD) { |
|
|
context.lastlog_tp = zsteady_clock().now(); |
|
|
context.lastlog_tp = zsteady_clock().now(); |
|
|
|
|
|
logger->info("dumping state snapshot to csv"); |
|
|
takeStateSnapshot(); |
|
|
takeStateSnapshot(); |
|
|
dumpDisinfectionLogsToCSV(); |
|
|
dumpDisinfectionLogsToCSV(); |
|
|
logstate(); |
|
|
logstate(); |
|
@ -667,6 +669,7 @@ void DisinfectionService::processStateDisinfection(disinfection_event_t* event) |
|
|
m_deviceIoControlService->airCompressor_setState(true); |
|
|
m_deviceIoControlService->airCompressor_setState(true); |
|
|
usleep(1000 * 1000); |
|
|
usleep(1000 * 1000); |
|
|
m_deviceIoControlService->sprayLiquidPump_open(cfg.injection_pump_speed); |
|
|
m_deviceIoControlService->sprayLiquidPump_open(cfg.injection_pump_speed); |
|
|
|
|
|
m_deviceIoControlService->heartingPlate_setPower(true); |
|
|
#endif
|
|
|
#endif
|
|
|
|
|
|
|
|
|
#if (defined PROJECT_TYPE_DRAW_BAR_BOX)
|
|
|
#if (defined PROJECT_TYPE_DRAW_BAR_BOX)
|
|
@ -689,25 +692,22 @@ void DisinfectionService::processStateDisinfection(disinfection_event_t* event) |
|
|
else if (event->event == kdisinfection_event_exit_state) { |
|
|
else if (event->event == kdisinfection_event_exit_state) { |
|
|
context.dvalue = 0; |
|
|
context.dvalue = 0; |
|
|
|
|
|
|
|
|
#if (defined PROJECT_TYPE_LARGE_SPACE_DISINFECTION) || (defined PROJECT_TYPE_SMALL_SPACE_DISINFECTION)
|
|
|
|
|
|
m_deviceIoControlService->airBlower_setState(false); |
|
|
|
|
|
usleep(1000 * 1000); |
|
|
|
|
|
m_deviceIoControlService->airCompressor_setState(false); |
|
|
|
|
|
usleep(1000 * 1000); |
|
|
|
|
|
m_deviceIoControlService->sprayLiquidPump_close(); |
|
|
|
|
|
#elif (defined PROJECT_TYPE_PIPE_DISINFECTION)
|
|
|
|
|
|
|
|
|
#if (defined PROJECT_TYPE_LARGE_SPACE_DISINFECTION) || (defined PROJECT_TYPE_SMALL_SPACE_DISINFECTION) || (defined PROJECT_TYPE_PIPE_DISINFECTION)
|
|
|
|
|
|
|
|
|
|
|
|
#if (defined PROJECT_TYPE_PIPE_DISINFECTION)
|
|
|
m_deviceIoControlService->airCompressor_channelSelect(1); |
|
|
m_deviceIoControlService->airCompressor_channelSelect(1); |
|
|
m_deviceIoControlService->airCompressor_setValve1(1); |
|
|
m_deviceIoControlService->airCompressor_setValve1(1); |
|
|
m_deviceIoControlService->airCompressor_setValve2(1); |
|
|
m_deviceIoControlService->airCompressor_setValve2(1); |
|
|
|
|
|
|
|
|
|
|
|
#endif
|
|
|
m_deviceIoControlService->airBlower_setState(false); |
|
|
m_deviceIoControlService->airBlower_setState(false); |
|
|
usleep(1000 * 1000); |
|
|
usleep(1000 * 1000); |
|
|
m_deviceIoControlService->airCompressor_setState(false); |
|
|
m_deviceIoControlService->airCompressor_setState(false); |
|
|
usleep(1000 * 1000); |
|
|
usleep(1000 * 1000); |
|
|
m_deviceIoControlService->sprayLiquidPump_close(); |
|
|
m_deviceIoControlService->sprayLiquidPump_close(); |
|
|
|
|
|
m_deviceIoControlService->heartingPlate_setPower(false); |
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
#elif (defined PROJECT_TYPE_DRAW_BAR_BOX)
|
|
|
|
|
|
|
|
|
#if (defined PROJECT_TYPE_DRAW_BAR_BOX)
|
|
|
m_deviceIoControlService->DBDB__sprayAirCompressorPowerCtrl(0); |
|
|
m_deviceIoControlService->DBDB__sprayAirCompressorPowerCtrl(0); |
|
|
usleep(100 * 1000); |
|
|
usleep(100 * 1000); |
|
|
m_deviceIoControlService->DBDB__heaterCtrl(0); |
|
|
m_deviceIoControlService->DBDB__heaterCtrl(0); |
|
@ -716,7 +716,6 @@ void DisinfectionService::processStateDisinfection(disinfection_event_t* event) |
|
|
usleep(100 * 1000); |
|
|
usleep(100 * 1000); |
|
|
m_deviceIoControlService->DBDB__miniPwmBlowerCtrl(0); |
|
|
m_deviceIoControlService->DBDB__miniPwmBlowerCtrl(0); |
|
|
usleep(100 * 1000); |
|
|
usleep(100 * 1000); |
|
|
#else
|
|
|
|
|
|
#endif
|
|
|
#endif
|
|
|
|
|
|
|
|
|
} |
|
|
} |
|
@ -832,18 +831,24 @@ void DisinfectionService::processStateFinished(disinfection_event_t* event) { |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
void DisinfectionService::processStateDegradation(disinfection_event_t* event) { |
|
|
void DisinfectionService::processStateDegradation(disinfection_event_t* event) { |
|
|
|
|
|
//
|
|
|
if (event->event == kdisinfection_event_enter_state) { |
|
|
if (event->event == kdisinfection_event_enter_state) { |
|
|
#if (defined PROJECT_TYPE_LARGE_SPACE_DISINFECTION) || (defined PROJECT_TYPE_SMALL_SPACE_DISINFECTION) || (defined PROJECT_TYPE_PIPE_DISINFECTION)
|
|
|
#if (defined PROJECT_TYPE_LARGE_SPACE_DISINFECTION) || (defined PROJECT_TYPE_SMALL_SPACE_DISINFECTION) || (defined PROJECT_TYPE_PIPE_DISINFECTION)
|
|
|
m_deviceIoControlService->airBlower_setState(true); |
|
|
m_deviceIoControlService->airBlower_setState(true); |
|
|
#elif (defined PROJECT_TYPE_DRAW_BAR_BOX)
|
|
|
#elif (defined PROJECT_TYPE_DRAW_BAR_BOX)
|
|
|
#endif
|
|
|
#endif
|
|
|
|
|
|
|
|
|
} else if (event->event == kdisinfection_event_exit_state) { |
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
//
|
|
|
|
|
|
else if (event->event == kdisinfection_event_exit_state) { |
|
|
#if (defined PROJECT_TYPE_LARGE_SPACE_DISINFECTION) || (defined PROJECT_TYPE_SMALL_SPACE_DISINFECTION) || (defined PROJECT_TYPE_PIPE_DISINFECTION)
|
|
|
#if (defined PROJECT_TYPE_LARGE_SPACE_DISINFECTION) || (defined PROJECT_TYPE_SMALL_SPACE_DISINFECTION) || (defined PROJECT_TYPE_PIPE_DISINFECTION)
|
|
|
m_deviceIoControlService->airBlower_setState(false); |
|
|
m_deviceIoControlService->airBlower_setState(false); |
|
|
#elif (defined PROJECT_TYPE_DRAW_BAR_BOX)
|
|
|
#elif (defined PROJECT_TYPE_DRAW_BAR_BOX)
|
|
|
#endif
|
|
|
#endif
|
|
|
} else if (event->event == kdisinfection_event_tmr_1s) { |
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
else if (event->event == kdisinfection_event_tmr_1s) { |
|
|
logger->info("waitting for h2o2 concentration to safe value {}=>{}", context.max_h2o2, 1); |
|
|
logger->info("waitting for h2o2 concentration to safe value {}=>{}", context.max_h2o2, 1); |
|
|
if (context.max_h2o2 < 1) { |
|
|
if (context.max_h2o2 < 1) { |
|
|
logger->info("h2o2 concentration to safe value"); |
|
|
logger->info("h2o2 concentration to safe value"); |
|
|