Class supervisor_fsm

Inheritance Relationships

Base Types

  • public rpfsm::simple_fsm

  • public rer::client< supervisor_fsm >

Class Documentation

class supervisor_fsm : public rpfsm::simple_fsm, public rer::client<supervisor_fsm>

An FSM used supervise robot operation.

In normal operation, the cta::taskable object is just executed. If a non-standard event is received (implemented in derived classes), then normal operation can be replaced by something else (e.g., stopping all robot motion if a robot malfunction event is received).

Public Functions

supervisor_fsm(const supervisor_fsm&) = delete
explicit supervisor_fsm(csubsystem::base_saa_subsystem *saa)
void event_malfunction(void)

Signal that the cta::taskable object should not be run every timestep until the robot has been repaired.

void event_repair(void)

Signal that the cta::taskable object should not be run every timestep until the robot has been repaired.

void event_stop(void)

Signal that the cta::taskable object should not be run again until the robot is reset, AND that all sensors and actuators should be disabled.

supervisor_fsm &operator=(const supervisor_fsm&) = delete
inline void run(void)
inline bool state_is_stopped(void) const
template<typename T>
inline void supervisee_update(T *h)