19 #ifndef LIBPROPELLER_MTK3339_H_
20 #define LIBPROPELLER_MTK3339_H_
22 #include "libpropeller/gpsparser/gpsparser.h"
23 #include <propeller.h>
50 bool Start(
int rxPin,
int txPin,
int ppsPin = -1){
52 gpsStatus = CheckBaud();
53 if (gpsStatus ==
true) {
55 gps_serial_.PutFormatted(kPMTK_SET_NMEA_BAUDRATE_115200);
57 gps_serial_.SetBaud(115200);
59 gps_serial_.SetBaud(115200);
60 gpsStatus = CheckBaud();
61 if (gpsStatus ==
false) {
66 gps_serial_.PutFormatted(kPMTK_API_SET_NMEA_OUTPUT);
67 gps_serial_.PutFormatted(kPMTK_SET_NMEA_UPDATE_10HZ);
73 bool GetStatus(
void) {
93 bool CheckBaud(
void) {
94 gps_serial_.GetFlush();
96 gps_serial_.GetFlush();
97 for (
int i = 0; i < 50; i++) {
98 unsigned char byte = (
unsigned char) gps_serial_.Get();
108 static constexpr
const char * kPMTK_SET_NMEA_UPDATE_10HZ =
"$PMTK220,100*2F\r\n";
109 static constexpr
const char * kPMTK_SET_NMEA_BAUDRATE_115200 =
"$PMTK251,115200*1F\r\n";
110 static constexpr
const char * kPMTK_API_SET_NMEA_OUTPUT =
"$PMTK314,0,1,0,1,5,5,0,0,0,0,0,0,0,0,0,0,0,0,0*28\r\n";
119 #endif // LIBPROPELLER_MTK3339_H_