-
Notifications
You must be signed in to change notification settings - Fork 2
/
Actor.h
81 lines (66 loc) · 1.8 KB
/
Actor.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
#ifndef __LEGUINO_ACTOR_H
#define __LEGUINO_ACTOR_H
/**
* Constant to refer to output A (use this in the actors' constructor.
*/
#define OUT_A 'A'
/**
* Constant to refer to output B (use this in the actors' constructor.
*/
#define OUT_B 'B'
/**
* Constant to refer to output C (use this in the actors' constructor.
*/
#define OUT_C 'C'
/**
* Constant to refer to output D (use this in the actors' constructor.
*/
#define OUT_D 'D'
/**
* Constant to refer to output E (use this in the actors' constructor.
*/
#define OUT_E 'E'
/**
* <p>
* Actors represent active devices you attach to the Leguino board, like
* LEGO<sup>©</sup> motors and lights. One actor usually requires one
* output, but some actors may also represent a combination of outputs, like
* the treads (two motors).
* </p>
*
* <p>
* Add actors to your program in the setup function, after initializing Leguino,
* using the following example pattern:<br>
* <code>leguino.add(drive = new Motor(OUT_A));</code><br>
* or<br>
* <code>leguino.add(drive = new Tread(OUT_A, OUT_B));</code><br>
* or<br>
* <code>leguino.add(frontLight = new Light(OUT_C));</code><br>
* where <code>drive</code> and <code>frontLight</code> are global variables.
* </p>
*
* <p>
* In the main loop, after the regular update call to the Leguino platform,
* use the actor's methods to control the outputs, spontaneously or
* time-controlled.
* </p>
*/
class Actor
{
friend SingleActor;
public:
/**
* Destroys the actor.
* Don't call this method from your program.
*/
virtual ~Actor();
/**
* Internal Leguino method to update the actor.
* Don't call this method from your program.
* @param msecs The number of milli-seconds since the last update.
*/
virtual void update(uint16 timeStep) = NULL;
protected:
Actor();
};
#endif