Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of autonomousRobotAndroid by
Task/Task.h
- Committer:
- chrigelburri
- Date:
- 2013-03-23
- Revision:
- 6:48eeb41188dd
- Parent:
- 1:6cd533a712c6
- Child:
- 11:775ebb69d5e1
File content as of revision 6:48eeb41188dd:
#ifndef _TASK_H_
#define _TASK_H_
#include "mbed.h"
/**
* @author Christian Burri
*
* @section LICENSE
*
* Copyright © 2013 HSLU Pren Team #1 Cruising Crêpe
* All rights reserved.
*
* @section DESCRIPTION
* The <code>Task</code> class allows to install periodic, time-triggered
* tasks. An example of a simple user-defined task is given below:
* <pre><code>
* class MyTask : public Task {
* public:
* void run();
* };
*
* void MyTask::run() {
* <span style="color:#FF0000">// code to be executed periodically</span>
* }
* </code></pre>
* This task can then be created and started as follows:
* <pre><code>
* MyTask myTask(0.1); <span style="color:#FF0000">// period in seconds</span>
* myTask.start();
* ...
*
* myTask.stop();
* </code></pre>
*/
class Task
{
private:
/** specifiying the interval in seconds */
float period;
/** The Ticker interface is used to setup a recurring interrupt to
* repeatedly call a function at a specified rate.
*/
Ticker ticker;
public:
/**
* Creates a task object with a given period.
* @param period the period of this task in seconds.
*/
Task(float period);
virtual ~Task();
/**
* Gets the period of this task.
* @return the period in seconds.
*/
float getPeriod();
/**
* Starts this task.
*/
void start();
/**
* Stops this task.
*/
void stop();
/**
* This method needs to be implemented by a user task.
*/
virtual void run();
};
#endif
