Rev 283 | Rev 291 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
41 | ingob | 1 | #ifndef _WAYPOINTS_H |
2 | #define _WAYPOINTS_H |
||
3 | |||
4 | #include "ubx.h" |
||
5 | |||
277 | killagreg | 6 | #define POINT_TYPE_INVALID 255 |
225 | killagreg | 7 | #define POINT_TYPE_WP 0 |
8 | #define POINT_TYPE_POI 1 |
||
9 | |||
283 | holgerb | 10 | extern u8 POIIndex; // list index of GPS Point representing the current POI, can be maximal WPCount |
11 | |||
41 | ingob | 12 | typedef struct |
13 | { |
||
14 | GPS_Pos_t Position; // the gps position of the waypoint, see ubx.h for details |
||
277 | killagreg | 15 | s16 Heading; // orientation, 0 no action, 1...360 fix heading, neg. = Index to POI in WP List |
41 | ingob | 16 | u8 ToleranceRadius; // in meters, if the MK is within that range around the target, then the next target is triggered |
88 | killagreg | 17 | 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 |
18 | u8 Event_Flag; // future implementation |
||
162 | ingob | 19 | u8 Index; // to indentify different waypoints, workaround for bad communications PC <-> NC |
225 | killagreg | 20 | u8 Type; // typeof Waypoint |
277 | killagreg | 21 | u8 WP_EventChannelValue; // |
286 | killagreg | 22 | u8 AltitudeRate; // rate to change the setpoint |
23 | u8 reserve[8]; // reserve |
||
280 | killagreg | 24 | } __attribute__((packed)) Point_t; |
41 | ingob | 25 | |
283 | holgerb | 26 | extern Point_t* GPS_pPoi; // pointer to the actual point of interrest |
27 | extern u8 POICount; |
||
28 | |||
29 | |||
277 | killagreg | 30 | // Init List, return TRUE on success |
280 | killagreg | 31 | u8 PointList_Init(void); |
277 | killagreg | 32 | // Clear List, return TRUE on success |
280 | killagreg | 33 | u8 PointList_Clear(void); |
277 | killagreg | 34 | // Returns number of points in the list |
280 | killagreg | 35 | u8 PointList_GetCount(void); |
36 | // return pointer to point at position |
||
37 | Point_t* PointList_GetAt(u8 index); |
||
277 | killagreg | 38 | // appends a point to the list, returns TRUE on success |
280 | killagreg | 39 | u8 PointList_Append(Point_t* pwp); |
277 | killagreg | 40 | // goto the first WP in the list and return pointer to it |
280 | killagreg | 41 | Point_t* PointList_WPBegin(void); |
277 | killagreg | 42 | // goto the last WP in the list and return pointer to it |
280 | killagreg | 43 | Point_t* PointList_WPEnd(void); |
277 | killagreg | 44 | // goto next WP in the list and return pointer to it |
280 | killagreg | 45 | Point_t* PointList_WPNext(void); |
46 | // disables waypoint function |
||
47 | void PointList_WPActive(u8 set); |
||
277 | killagreg | 48 | // returns pointer to actual POI |
280 | killagreg | 49 | Point_t* PointList_GetPOI(void); |
41 | ingob | 50 | |
280 | killagreg | 51 | |
41 | ingob | 52 | #endif // _WAYPOINTS_H |