|
|
@ -69,37 +69,33 @@ void DisinfectionCtrlService::startDisinfection(int loglevel, float roomVol) { |
|
|
|
thisThread.sleepForMs(1000); |
|
|
|
} |
|
|
|
|
|
|
|
{ m_isDisinfectionRunning = false; } |
|
|
|
m_remaintime = 0; |
|
|
|
logger->info("stop disinfection {}", m_disinfectionID); |
|
|
|
|
|
|
|
m_zcanHost->writeio(0, 0); |
|
|
|
m_zcanHost->writeio(1, 0); |
|
|
|
sleep(1); |
|
|
|
m_zcanHost->writeio(2, 0); |
|
|
|
m_zcanHost->writeio(3, 0); |
|
|
|
sleep(1); |
|
|
|
m_zcanHost->writeio(4, 0); |
|
|
|
m_zcanHost->writeio(5, 0); |
|
|
|
sleep(1); |
|
|
|
m_zcanHost->pumpctrl_c1004(2, 300, 0); |
|
|
|
m_disinfectionWorkState = 0; |
|
|
|
})); |
|
|
|
} |
|
|
|
|
|
|
|
int DisinfectionCtrlService::getDisinfectionWorkState() { return m_disinfectionWorkState; } |
|
|
|
int DisinfectionCtrlService::getReplenishingFluidsWorkState() { return m_replenishingFluidsWorkState; } |
|
|
|
int DisinfectionCtrlService::getDrainingWorkState() { return m_drainingWorkState; } |
|
|
|
|
|
|
|
void DisinfectionCtrlService::pauseDisinfection() { m_drainingWorkState = 2; } |
|
|
|
void DisinfectionCtrlService::continueDisinfection() { m_drainingWorkState = 1; } |
|
|
|
void DisinfectionCtrlService::pauseDisinfection() { m_disinfectionWorkState = 2; } |
|
|
|
void DisinfectionCtrlService::continueDisinfection() { m_disinfectionWorkState = 1; } |
|
|
|
void DisinfectionCtrlService::stopDisinfection() { |
|
|
|
lock_guard<recursive_mutex> lock(lock_); |
|
|
|
|
|
|
|
if (m_disinfectionThread) { |
|
|
|
m_disinfectionThread->join(); |
|
|
|
m_disinfectionThread = nullptr; |
|
|
|
} |
|
|
|
m_remaintime = 0; |
|
|
|
logger->info("stop disinfection {}", m_disinfectionID); |
|
|
|
|
|
|
|
m_zcanHost->writeio(0, 0); |
|
|
|
m_zcanHost->writeio(1, 0); |
|
|
|
sleep(1); |
|
|
|
m_zcanHost->writeio(2, 0); |
|
|
|
m_zcanHost->writeio(3, 0); |
|
|
|
sleep(1); |
|
|
|
m_zcanHost->writeio(4, 0); |
|
|
|
m_zcanHost->writeio(5, 0); |
|
|
|
sleep(1); |
|
|
|
m_zcanHost->pumpctrl_c1004(2, 300, 0); |
|
|
|
m_drainingWorkState = 0; |
|
|
|
} |
|
|
|
bool DisinfectionCtrlService::isDisinfectionRunning() { |
|
|
|
lock_guard<recursive_mutex> lock(lock_); |
|
|
@ -115,24 +111,57 @@ string DisinfectionCtrlService::getDisinfectionID() { |
|
|
|
return m_disinfectionID; |
|
|
|
} |
|
|
|
|
|
|
|
// 加液
|
|
|
|
void DisinfectionCtrlService::startReplenishingFluids() { |
|
|
|
lock_guard<recursive_mutex> lock(lock_); |
|
|
|
|
|
|
|
if (m_disinfectionThread) { |
|
|
|
m_disinfectionThread->join(); |
|
|
|
m_disinfectionThread = nullptr; |
|
|
|
} |
|
|
|
|
|
|
|
logger->info("startReplenishingFluids"); |
|
|
|
m_zcanHost->pumpctrl_c1004(1, 300, 1000); |
|
|
|
m_zcanHost->pumpctrl_c1004(1, 300, 300, 1, 20); |
|
|
|
m_replenishingFluidsWorkState = 1; |
|
|
|
} |
|
|
|
// 停止加液
|
|
|
|
void DisinfectionCtrlService::stopReplenishingFluids() { |
|
|
|
lock_guard<recursive_mutex> lock(lock_); |
|
|
|
|
|
|
|
logger->info("stopReplenishingFluids"); |
|
|
|
m_zcanHost->pumpctrl_c1004(1, 300, 0); |
|
|
|
m_zcanHost->pumpctrl_c1004(1, 300, 0, 1, 20); |
|
|
|
m_replenishingFluidsWorkState = 0; |
|
|
|
} |
|
|
|
|
|
|
|
if (m_disinfectionThread) { |
|
|
|
m_disinfectionThread->join(); |
|
|
|
m_disinfectionThread = nullptr; |
|
|
|
} |
|
|
|
} |
|
|
|
// 开始排液
|
|
|
|
void DisinfectionCtrlService::startDraining() { |
|
|
|
lock_guard<recursive_mutex> lock(lock_); |
|
|
|
|
|
|
|
logger->info("startDraining"); |
|
|
|
m_zcanHost->pumpctrl_c1004(1, 300, -1000); |
|
|
|
m_replenishingFluidsWorkState = 1; |
|
|
|
m_zcanHost->pumpctrl_c1004(1, 300, -300, 1, 20); |
|
|
|
m_drainingWorkState = 1; |
|
|
|
|
|
|
|
if (m_disinfectionThread) { |
|
|
|
m_disinfectionThread->join(); |
|
|
|
m_disinfectionThread = nullptr; |
|
|
|
} |
|
|
|
} |
|
|
|
// 停止排液体
|
|
|
|
void DisinfectionCtrlService::stopDraining() { |
|
|
|
lock_guard<recursive_mutex> lock(lock_); |
|
|
|
|
|
|
|
logger->info("stopDraining"); |
|
|
|
m_zcanHost->pumpctrl_c1004(1, 300, 0); |
|
|
|
m_replenishingFluidsWorkState = 0; |
|
|
|
m_zcanHost->pumpctrl_c1004(1, 300, 0, 1, 20); |
|
|
|
m_drainingWorkState = 0; |
|
|
|
|
|
|
|
if (m_disinfectionThread) { |
|
|
|
m_disinfectionThread->join(); |
|
|
|
m_disinfectionThread = nullptr; |
|
|
|
} |
|
|
|
} |
|
|
|
int DisinfectionCtrlService::getReplenishingFluidsWorkState() { return m_replenishingFluidsWorkState; } |
|
|
|
int DisinfectionCtrlService::getDrainingWorkState() { return m_drainingWorkState; } |