diff --git a/server/src/hardware/interface/loconetinterface.cpp b/server/src/hardware/interface/loconetinterface.cpp index d33a7eab..6e0a7359 100644 --- a/server/src/hardware/interface/loconetinterface.cpp +++ b/server/src/hardware/interface/loconetinterface.cpp @@ -303,6 +303,13 @@ bool LocoNetInterface::setOnline(bool& value, bool simulation) [this]() { setState(InterfaceState::Online); + + m_kernel->setPowerOn(contains(m_world.state.value(), WorldState::PowerOn)); + + if(contains(m_world.state.value(), WorldState::Run)) + m_kernel->resume(); + else + m_kernel->emergencyStop(); }); m_kernel->setOnError( [this]() @@ -345,13 +352,6 @@ bool LocoNetInterface::setOnline(bool& value, bool simulation) m_kernel->setConfig(loconet->config()); }); - m_kernel->setPowerOn(contains(m_world.state.value(), WorldState::PowerOn)); - - if(contains(m_world.state.value(), WorldState::Run)) - m_kernel->resume(); - else - m_kernel->emergencyStop(); - Attributes::setEnabled(type, false); Attributes::setEnabled(device, false); Attributes::setEnabled(baudrate, false);