Subversion Repositories NaviCtrl

Rev

Rev 348 | Rev 397 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 348 Rev 386
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;  //
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
-
 
23
        u8  Name[4];                // Name of that point (ASCII)
23
        u8  reserve[6];             // reserve
24
    u8  reserve[2];                 // reserve
24
} __attribute__((packed)) Point_t;
25
} __attribute__((packed)) Point_t;
25
 
26
 
26
// Init List, return TRUE on success
27
// Init List, return TRUE on success
27
u8 PointList_Init(void);
28
u8 PointList_Init(void);
28
// Clear List, return TRUE on success
29
// Clear List, return TRUE on success
29
u8 PointList_Clear(void);
30
u8 PointList_Clear(void);
30
// Returns number of points in the list
31
// Returns number of points in the list
31
u8 PointList_GetCount(void);
32
u8 PointList_GetCount(void);
32
// return pointer to point at position
33
// return pointer to point at position
33
Point_t* PointList_GetAt(u8 index);
34
Point_t* PointList_GetAt(u8 index);
34
// 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
35
u8 PointList_SetAt(Point_t* pPoint);
36
u8 PointList_SetAt(Point_t* pPoint);
36
// 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
37
Point_t* PointList_WPBegin(void);
38
Point_t* PointList_WPBegin(void);
38
// 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
39
Point_t* PointList_WPEnd(void);
40
Point_t* PointList_WPEnd(void);
40
// goto next WP in the list and return pointer to it
41
// goto next WP in the list and return pointer to it
41
Point_t* PointList_WPNext(void);
42
Point_t* PointList_WPNext(void);
42
// enables/disables waypoint function
43
// enables/disables waypoint function
43
void PointList_WPActive(u8 set);
44
void PointList_WPActive(u8 set);
44
// returns pointer to actual POI
45
// returns pointer to actual POI
45
Point_t* PointList_GetPOI(void);
46
Point_t* PointList_GetPOI(void);
46
 
47
 
47
 
48
 
48
#endif // _WAYPOINTS_H
49
#endif // _WAYPOINTS_H
49
 
50