server: Z21 ClientKernel, try/catch when updating decoder

Dieser Commit ist enthalten in:
Filippo Gentile 2023-05-15 11:17:43 +02:00
Ursprung 3e3eaca008
Commit 50279a12d9

Datei anzeigen

@ -133,20 +133,27 @@ void ClientKernel::receive(const Message& message)
speed = reply.speedStep(), speedMax=reply.speedSteps(), speed = reply.speedStep(), speedMax=reply.speedSteps(),
dir = reply.direction(), val, maxFunc]() dir = reply.direction(), val, maxFunc]()
{ {
if(auto decoder = m_decoderController->getDecoder(DCC::getProtocol(address), address)) try
{ {
float throttle = Decoder::speedStepToThrottle(speed, speedMax); if(auto decoder = m_decoderController->getDecoder(DCC::getProtocol(address), address))
decoder->emergencyStop = isEStop;
decoder->direction = dir;
decoder->throttle = throttle;
for(int i = 0; i <= maxFunc; i++)
{ {
decoder->setFunctionValue(i, val[i]); float throttle = Decoder::speedStepToThrottle(speed, speedMax);
decoder->emergencyStop = isEStop;
decoder->direction = dir;
decoder->throttle = throttle;
for(int i = 0; i <= maxFunc; i++)
{
decoder->setFunctionValue(i, val[i]);
}
} }
} }
catch(...)
{
}
}); });
} }
break; break;