Flash3388 / FlashLib

A robotics development framework
BSD 3-Clause "New" or "Revised" License
10 stars 0 forks source link

State Machines #84

Open tomtzook opened 2 years ago

tomtzook commented 2 years ago

Part of an attempt to improve and manage control of robot operations and scheduling, this new feature will introduce State Machines integrated with the Scheduling System, allowing the activation of Actions and management of Triggers in a smarter way.

Based on NFAs (inspired by this), users will be able to manage states of separate Subsystems on the robot, configure transitions between and attach actions to them.

Basically, the machine will hold a set of active states, each configured by the user. Transitions between states will be enforced based on those configurations to deny certain invalid transitions.

States will allow attaching Actions` to them.

Transitions are more of an instant change of states, triggered manually by a user API call, or automatically via some condition (or Trigger).

API design is still in brain-storming phase. See branch feature/state-machines.

tomtzook commented 2 years ago

Some notes about designing: