ecos: STOP/GO button now affects world power/run

Dieser Commit ist enthalten in:
Reinder Feenstra 2022-04-07 23:30:08 +02:00
Ursprung 6d677f2300
Commit 54b4a57f4c
2 geänderte Dateien mit 32 neuen und 2 gelöschten Zeilen

Datei anzeigen

@ -191,7 +191,18 @@ bool ECoSInterface::setOnline(bool& value, bool simulation)
{
status.setValueInternal(InterfaceStatus::Online);
});
m_kernel->setOnEmergencyStop(
[this]()
{
if(contains(m_world.state.value(), WorldState::PowerOn | WorldState::Run))
m_world.powerOff();
});
m_kernel->setOnGo(
[this]()
{
if(!contains(m_world.state.value(), WorldState::Run))
m_world.run();
});
m_kernel->setDecoderController(this);
m_kernel->setInputController(this);
m_kernel->setOutputController(this);

Datei anzeigen

@ -113,7 +113,26 @@ void ECoS::stop()
void ECoS::update(std::string_view option, std::string_view value)
{
if(option == Option::applicationVersion)
if(option == Option::status)
{
if(value == "STOP")
{
if(m_go != TriState::False)
{
m_go = TriState::False;
m_kernel.ecosGoChanged(m_go);
}
}
else if(value == "GO")
{
if(m_go != TriState::True)
{
m_go = TriState::True;
m_kernel.ecosGoChanged(m_go);
}
}
}
else if(option == Option::applicationVersion)
{
Version::fromChars(value, m_applicationVersion);
}