Rev 386 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 386 | Rev 397 | ||
---|---|---|---|
1 | #ifndef _WAYPOINTS_H |
1 | #ifndef _WAYPOINTS_H |
2 | #define _WAYPOINTS_H |
2 | #define _WAYPOINTS_H |
3 | 3 | ||
4 | #include "ubx.h" |
4 | #include "ubx.h" |
5 | 5 | ||
6 | #define POINT_TYPE_INVALID 255 |
6 | #define POINT_TYPE_INVALID 255 |
7 | #define POINT_TYPE_WP 0 |
7 | #define POINT_TYPE_WP 0 |
8 | #define POINT_TYPE_POI 1 |
8 | #define POINT_TYPE_POI 1 |
9 | 9 | ||
10 | typedef struct |
10 | typedef struct |
11 | { |
11 | { |
12 | GPS_Pos_t Position; // the gps position of the waypoint, see ubx.h for details |
12 | GPS_Pos_t Position; // the gps position of the waypoint, see ubx.h for details |
13 | s16 Heading; // orientation, 0 no action, 1...360 fix heading, neg. = Index to POI in WP List |
13 | s16 Heading; // orientation, 0 no action, 1...360 fix heading, neg. = Index to POI in WP List |
14 | u8 ToleranceRadius; // in meters, if the MK is within that range around the target, then the next target is triggered |
14 | u8 ToleranceRadius; // in meters, if the MK is within that range around the target, then the next target is triggered |
15 | u8 HoldTime; // in seconds, if the was once in the tolerance area around a WP, this time defines the delay before the next WP is triggered |
15 | u8 HoldTime; // in seconds, if the was once in the tolerance area around a WP, this time defines the delay before the next WP is triggered |
16 | u8 Event_Flag; // future implementation |
16 | u8 Event_Flag; // future implementation |
17 | u8 Index; // to indentify different waypoints, workaround for bad communications PC <-> NC |
17 | u8 Index; // to indentify different waypoints, workaround for bad communications PC <-> NC |
18 | u8 Type; // typeof Waypoint |
18 | u8 Type; // typeof Waypoint |
19 | u8 WP_EventChannelValue; // |
19 | u8 WP_EventChannelValue; // Will be transferred to the FC and can be used as Poti value there |
20 | u8 AltitudeRate; // rate to change the setpoint |
20 | u8 AltitudeRate; // rate to change the setpoint |
21 | u8 Speed; // rate to change the Position |
21 | u8 Speed; // rate to change the Position |
22 | u8 CamAngle; // Camera servo angle |
22 | u8 CamAngle; // Camera servo angle in degree (255 -> POI-Automatic) |
23 | u8 Name[4]; // Name of that point (ASCII) |
23 | u8 Name[4]; // Name of that point (ASCII) |
24 | u8 reserve[2]; // reserve |
24 | u8 reserve[2]; // reserve |
25 | } __attribute__((packed)) Point_t; |
25 | } __attribute__((packed)) Point_t; |
26 | 26 | ||
27 | // Init List, return TRUE on success |
27 | // Init List, return TRUE on success |
28 | u8 PointList_Init(void); |
28 | u8 PointList_Init(void); |
29 | // Clear List, return TRUE on success |
29 | // Clear List, return TRUE on success |
30 | u8 PointList_Clear(void); |
30 | u8 PointList_Clear(void); |
31 | // Returns number of points in the list |
31 | // Returns number of points in the list |
32 | u8 PointList_GetCount(void); |
32 | u8 PointList_GetCount(void); |
33 | // return pointer to point at position |
33 | // return pointer to point at position |
34 | Point_t* PointList_GetAt(u8 index); |
34 | Point_t* PointList_GetAt(u8 index); |
35 | // set a point in the list at index, returns its index on success, else 0 |
35 | // set a point in the list at index, returns its index on success, else 0 |
36 | u8 PointList_SetAt(Point_t* pPoint); |
36 | u8 PointList_SetAt(Point_t* pPoint); |
37 | // goto the first WP in the list and return pointer to it |
37 | // goto the first WP in the list and return pointer to it |
38 | Point_t* PointList_WPBegin(void); |
38 | Point_t* PointList_WPBegin(void); |
39 | // goto the last WP in the list and return pointer to it |
39 | // goto the last WP in the list and return pointer to it |
40 | Point_t* PointList_WPEnd(void); |
40 | Point_t* PointList_WPEnd(void); |
41 | // goto next WP in the list and return pointer to it |
41 | // goto next WP in the list and return pointer to it |
42 | Point_t* PointList_WPNext(void); |
42 | Point_t* PointList_WPNext(void); |
43 | // enables/disables waypoint function |
43 | // enables/disables waypoint function |
44 | void PointList_WPActive(u8 set); |
44 | void PointList_WPActive(u8 set); |
45 | // returns pointer to actual POI |
45 | // returns pointer to actual POI |
46 | Point_t* PointList_GetPOI(void); |
46 | Point_t* PointList_GetPOI(void); |
47 | 47 | ||
48 | 48 | ||
49 | #endif // _WAYPOINTS_H |
49 | #endif // _WAYPOINTS_H |
50 | 50 |