Loading...
Searching...
No Matches
sam_m10q.h
1
9
10// ALLOW FORMATTING
11#ifndef GPS_H
12#define GPS_H
13
14#include "stdint.h"
15#include "stdbool.h"
16#include "uart.h"
17
18#define GPS_PUBX_SILENCE \
19 "$PUBX,40,GLL,0,0,0,0,0,0*5C\r\n$PUBX,40,RMC,0,0,0,0,0,0*47\r\n$PUBX,40," \
20 "GSA,0,0,0,0,0,0*4E\r\n$PUBX,40,GSV,0,0,0,0,0,0*59\r\n$PUBX,40,GGA,0,0,0,0," \
21 "0,0*5A\r\n$PUBX,40,VTG,0,0,0,0,0,0*5E\r\n$PUBX,40,GSV,0,0,0,0,0,0*59\r\n"
22
23#define GPS_PUBX_POLL "$PUBX,00*33\r\n"
24
25#define SAM_M10Q_PUBX_POSITION_FIELD_COUNT 22
26#define SAM_M10Q_PUBX_POSITION_TOKEN 0
27#define SAM_M10Q_PUBX_POSITION_ID 1
28#define SAM_M10Q_PUBX_POSITION_TIME 2
29#define SAM_M10Q_PUBX_POSITION_LAT 3
30#define SAM_M10Q_PUBX_POSITION_NS 4
31#define SAM_M10Q_PUBX_POSITION_LONG 5
32#define SAM_M10Q_PUBX_POSITION_EW 6
33#define SAM_M10Q_PUBX_POSITION_NAV_STAT 8
34
39
40typedef struct {
41 char time[15];
42 float latitude;
43 char ns;
44 float longitude;
45 char ew;
46 char altref[15];
47 char navstat[2];
49
50typedef struct SAM_M10Q {
51 UART_t *uart;
52 uint32_t baud;
53 SAM_M10Q_Data sampleData;
54 void (*message)(struct SAM_M10Q *, char *);
55 void (*setBaud)(struct SAM_M10Q *gps, uint32_t baud);
56 void (*pollPUBX)(struct SAM_M10Q *gps);
57 bool (*parsePUBX)(struct SAM_M10Q *gps, uint8_t *bytes, SAM_M10Q_Data *data);
59
60bool SAM_M10Q_init(SAM_M10Q_t *gps, UART_t *uart, uint32_t baud);
61void SAM_M10Q_setBaud(SAM_M10Q_t *gps, uint32_t baud);
63bool SAM_M10Q_parsePUBX(SAM_M10Q_t *gps, uint8_t *bytes, SAM_M10Q_Data *data);
64
66#endif
bool SAM_M10Q_parsePUBX(SAM_M10Q_t *gps, uint8_t *bytes, SAM_M10Q_Data *data)
Definition sam_m10q.c:82
void SAM_M10Q_setBaud(SAM_M10Q_t *gps, uint32_t baud)
Definition sam_m10q.c:50
void SAM_M10Q_pollPUBX(SAM_M10Q_t *gps)
Definition sam_m10q.c:68
bool SAM_M10Q_init(SAM_M10Q_t *gps, UART_t *uart, uint32_t baud)
Definition sam_m10q.c:27
Struct definition for UART interface.
Definition uart.h:132