Elma
An event loop manager for embedded systems
Public Member Functions | List of all members
feedback_example::CruiseControl Class Reference

Example: A cruise controller for a Car process. See examples/feedback.cc. More...

+ Inheritance diagram for feedback_example::CruiseControl:
+ Collaboration diagram for feedback_example::CruiseControl:

Public Member Functions

 CruiseControl (std::string name)
 
void init ()
 Nothing to do to initialize.
 
void start ()
 Nothing to do to start.
 
void update ()
 
void stop ()
 Nothing to do to stop.
 
- Public Member Functions inherited from elma::Process
 Process (int n=0)
 Default constructor. Names process "no name".
 
 Process (std::string name, int n=0)
 Constructor that takes a name for the process. More...
 
string name ()
 
void set_name (std::string str)
 
status_type status ()
 
high_resolution_clock::duration period ()
 
int num_updates ()
 
time_point< high_resolution_clock > start_time ()
 
high_resolution_clock::duration last_update ()
 
high_resolution_clock::duration previous_update ()
 
Channelchannel (string name)
 Access a channel with the given name. More...
 
double milli_time ()
 The time since the last update in millisconds, as a double. More...
 
double delta ()
 The most recent amount of time between updates. More...
 
void watch (string event_name, std::function< void(Event &)> handler)
 
void emit (const Event &event)
 
void http_get (std::string url, std::function< void(json &)> handler)
 
void halt ()
 
void set_manager (Manager *m_ptr)
 

Additional Inherited Members

- Public Types inherited from elma::Process
enum  status_type { UNINITIALIZED, STOPPED, RUNNING }
 
- Protected Attributes inherited from elma::Process
Manager_manager_ptr
 

Detailed Description

Example: A cruise controller for a Car process. See examples/feedback.cc.

See the file examples/feedback.cc for usage.

Definition at line 60 of file feedback.cc.

Constructor & Destructor Documentation

◆ CruiseControl()

feedback_example::CruiseControl::CruiseControl ( std::string  name)
inline

Wrap the base process class

Parameters
nameThe name of the controller

Definition at line 66 of file feedback.cc.

Member Function Documentation

◆ update()

void feedback_example::CruiseControl::update ( )
inlinevirtual

Get the velocity from the Velocity Channel, compute a simple proportional control law, and send the result to the Throttle channel.

Implements elma::Process.

Definition at line 77 of file feedback.cc.


The documentation for this class was generated from the following file: