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(),
dir = reply.direction(), val, maxFunc]()
{
if(auto decoder = m_decoderController->getDecoder(DCC::getProtocol(address), address))
try
{
float throttle = Decoder::speedStepToThrottle(speed, speedMax);
decoder->emergencyStop = isEStop;
decoder->direction = dir;
decoder->throttle = throttle;
for(int i = 0; i <= maxFunc; i++)
if(auto decoder = m_decoderController->getDecoder(DCC::getProtocol(address), address))
{
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;