Skip to content

draft: Do not process PDOs whose work counter is invalid

Christian Dreher requested to merge fix/skip-invalid-frames into main

This is a first draft for fixing the problem that potentially invalid frames have been processed

The problems imply:

  • Assessing errors in slaves etc might be flawed if wkc is not valid
  • PDOs might be garbage, so don't calculate sensor values or run controllers etc.

This draft does NOT WORK though, since the realtime loop is inherently flawed in the implementation:

Current realtime loop looks something like this:

update sensors
update controllers
update actuators

bus send 
bus receive

update timestamps etc...
repeat

instead of (as one would expect and as implemented in the new realtime unit):

update timestamps etc...
bus receive
update sensors
update controllers
update actuators
bus send
repeat

So we cannot easily skip an iteration with this design. We need to further investigate how we can do this elegantly without having to guard each update_whatever() call.

Done with @pohl, @hyseni, @weiner

Edited by Christian Dreher

Merge request reports