Skip to main content

Scheduling

Control profiles have schedule points that needs to be executed in the future following a specific timeline.

Basic Rules#

  • All schedule points must have a timestamp and a value.
  • The first schedule point must be within a tolerance of the current time.
  • All points must be in increasing order.

If a control profile is received and does not follow these rules, the whole message is dropped and a warning is printed in the console.

If a control profile does not contain any scheduled points, then it is executed as is, and no schedule is started.

Execution Procedures#

All the points that are scheduled in the past (before now) and inside the tolerance are executed together in a message with the original timestamp and with all the non-scheduled values.

Then, each point is executed at the provided timestamp. Points share the same timestamp are executed together.

If another valid scheduled control profile is received while a schedule is in progress, it is started in parallel with the first schedule.