|
@ -18,13 +18,18 @@ void DrainLiquidService::initialize() { |
|
|
REG_EXTFN_VOID(stopStateReport, void()); |
|
|
REG_EXTFN_VOID(stopStateReport, void()); |
|
|
|
|
|
|
|
|
stateUpdateThread.reset(new Thread("DrainLiquidService-stateUpdateThread", [this]() { |
|
|
stateUpdateThread.reset(new Thread("DrainLiquidService-stateUpdateThread", [this]() { |
|
|
while (!ThisThread().getExitFlag()) { |
|
|
|
|
|
|
|
|
ThisThread thisThread; |
|
|
|
|
|
while (!thisThread.getExitFlag()) { |
|
|
try { |
|
|
try { |
|
|
SEND_CLASS_REPORT(thisClass.className, "stateUpdate", getState()); |
|
|
SEND_CLASS_REPORT(thisClass.className, "stateUpdate", getState()); |
|
|
} catch (const std::exception& e) { |
|
|
} catch (const std::exception& e) { |
|
|
logger->error("stateUpdateThread error:{}", e.what()); |
|
|
logger->error("stateUpdateThread error:{}", e.what()); |
|
|
} |
|
|
} |
|
|
ThisThread().sleepForMs(500); |
|
|
|
|
|
|
|
|
if (m_workstate == kidle) { |
|
|
|
|
|
thisThread.sleepForMs(3000); |
|
|
|
|
|
} else { |
|
|
|
|
|
thisThread.sleepForMs(500); |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
})); |
|
|
})); |
|
|
} else { |
|
|
} else { |
|
@ -72,6 +77,7 @@ void DrainLiquidService::start() { |
|
|
m_workstate = kidle; |
|
|
m_workstate = kidle; |
|
|
DS->setDeviceState(DeviceState::Idle); |
|
|
DS->setDeviceState(DeviceState::Idle); |
|
|
})); |
|
|
})); |
|
|
|
|
|
stateUpdateThread->wake(); |
|
|
} |
|
|
} |
|
|
DrainLiquidService::state_t DrainLiquidService::getWorkstate() { return m_workstate; } |
|
|
DrainLiquidService::state_t DrainLiquidService::getWorkstate() { return m_workstate; } |
|
|
|
|
|
|
|
@ -84,6 +90,7 @@ void DrainLiquidService::stop() { |
|
|
m_workstate = kidle; |
|
|
m_workstate = kidle; |
|
|
m_dics->AddLiquidPump_stop(); |
|
|
m_dics->AddLiquidPump_stop(); |
|
|
logger->info("stopDraining "); |
|
|
logger->info("stopDraining "); |
|
|
|
|
|
stateUpdateThread->wake(); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
void DrainLiquidService::start(shared_ptr<MsgProcessContext> cxt) { //
|
|
|
void DrainLiquidService::start(shared_ptr<MsgProcessContext> cxt) { //
|
|
|