Skip to content
forked from wixiw/fbsched

RTT in-thread function block scheduler using SlaveActivity

Notifications You must be signed in to change notification settings

arennuit/fbsched

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FBSched Component

The FBSched (Function Block Scheduler) component is a simple mechanism to sequentially execute function blocks (represented as the functionality within the updateHook of RTT components) within a single thread. The goal is to minimize overhead introduced by scheduling latencies.

The basic usage pattern is the following:

  1. Create a FBSched component and configure it either with a Activity or connect an event source to the FBSched 'trigger' port.

  2. Create slave components and configure them as slaves to the FBSched component by using the deployer operation:

       setMasterSlaveActivity(FBSchedName, SlaveName)
    
  3. First start all slaves and then the FBSched component to begin the scheduling. The FBSched component will trigger all of it's peers.

Execution Order

Per default, the order of executing slave function blocks is undefined. To configure the order the "order" property can be used. The order does not have to be completely defined: all peers not mentioned in the order property will be executed in a undefined (but consistent in the sense that it will not change between triggers) after the mentioned ones.

Future work

It would be nice to extend the component (configurably) to measure the min/avg/max duration of each slave and the total execution time.

License

Dual LGPL/BSD

Acknowledgement

Inspired by suggestions from Herman Bruyninckx.

About

RTT in-thread function block scheduler using SlaveActivity

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 74.8%
  • Lua 14.0%
  • CMake 6.3%
  • Makefile 4.9%