amiro-os / devices / DiWheelDrive / amiro_map.hpp @ e1f1c4b5
History | View | Annotate | Download (671 Bytes)
1 | e1f1c4b5 | galberding | #ifndef AMIRO_MAP
|
---|---|---|---|
2 | #define AMIRO_MAP
|
||
3 | |||
4 | #include <ch.hpp> |
||
5 | #include "global.hpp" |
||
6 | #include <amiroosconf.h> |
||
7 | |||
8 | |||
9 | #define MAX_NODES 20 |
||
10 | #define NODE_ATTRIBUTES 4 |
||
11 | |||
12 | |||
13 | namespace amiro {
|
||
14 | |||
15 | |||
16 | struct node{
|
||
17 | uint8_t id; |
||
18 | uint8_t flag; |
||
19 | types::position pL; //Left
|
||
20 | types::position pR; //Right
|
||
21 | types::position pB; //Back
|
||
22 | }; |
||
23 | |||
24 | class AmiroMap{ |
||
25 | public:
|
||
26 | AmiroMap(Global *global):global{global}{} |
||
27 | void initialize(int8_t (&config)[MAX_NODES][NODE_ATTRIBUTES]);
|
||
28 | void update();
|
||
29 | private:
|
||
30 | Global *global; |
||
31 | bool valid = false; |
||
32 | node *nodeList = NULL;
|
||
33 | node *current = NULL;
|
||
34 | node *next = NULL;
|
||
35 | void uninitialize();
|
||
36 | }; |
||
37 | }; |
||
38 | |||
39 | |||
40 | #endif /* AMIRO_MAP */ |