Class Adafruit_GPS

Description

Defines a class to use GPS module on Ameba.

Syntax

class Adafruit_GPS

Members

Public Constructors

Adafruit_GPS::Adafruit_GPS

Constructs an Adafruit_GPS object

Public Methods

Adafruit_GPS::begin

Initialize serial communication

*Adafruit_GPS:: lastNMEA

Returns the last NMEA line received and unsets the received flag

Adafruit_GPS:: newNMEAreceived

Check to see if a new NMEA line has been received

Adafruit_GPS:: common_init

Initialization code used by all constructor types

Adafruit_GPS:: sendCommand

Send a command to the GPS device

Adafruit_GPS:: pause

Pause/unpause receiving new data

Adafruit_GPS:: parseHex

Read a Hex value and return the decimal equivalent

Adafruit_GPS:: read

Read one character from the GPS device

Adafruit_GPS:: parse

Parse an NMEA string

Adafruit_GPS:: wakeup

Wake the sensor up

Adafruit_GPS:: standby

Standby Mode Switches

Adafruit_GPS::waitForSentence

Wait for a specified sentence from the device

Adafruit_GPS::LOCUS_StartLogger

Start the LOCUS logger

Adafruit_GPS::LOCUS_StopLogger

Stop the LOCUS logger

Adafruit_GPS::LOCUS_ReadStatus

Read the logger status


Adafruit_GPS::Adafruit_GPS

Description

Constructs an Adafruit_GPS object and initialize serial using a SoftSerial object.

Syntax

Adafruit_GPS::Adafruit_GPS(SoftwareSerial *ser)
Adafruit_GPS::Adafruit_GPS(HardwareSerial *ser)

Parameters

ser : a Serial instance

Returns

The function returns nothing.

Example Code

This example code from Adafruit demonstrates GPS modules using MTK3329/MTK3339 driver. This code shows how to listen to the GPS module in an interrupt which allows the program to have more ‘freedom’ – just parse when a new NMEA sentence is available! Then access data when desired.

Adafruit_GPS_parsing.ino
  1 #include <Adafruit_GPS.h>
  2 #include <SoftwareSerial.h>
  3
  4 // If you're using a GPS module:
  5 // Connect the GPS Power pin to 3.3V
  6 // Connect the GPS Ground pin to ground
  7 // Connect the GPS TX (transmit) pin to Digital 0
  8 // Connect the GPS RX (receive) pin to Digital 1
  9 #if defined(BOARD_RTL8195A)
 10 SoftwareSerial mySerial(0, 1);
 11 #elif defined(BOARD_RTL8710)
 12 SoftwareSerial mySerial(17, 5); // RTL8710 need change GPS TX/RX to pin 17 and 5
 13 #else
 14 SoftwareSerial mySerial(0, 1);
 15 #endif
 16
 17 Adafruit_GPS GPS(&mySerial);
 18
 19 // Set GPSECHO to 'false' to turn off echoing the GPS data to the Serial console
 20 // Set to 'true' if you want to debug and listen to the raw GPS sentences.
 21 #define GPSECHO  false
 22
 23 void setup()
 24 {
 25 Serial.begin(38400);
 26 Serial.println("Adafruit GPS library basic test!");
 27
 28 // 9600 NMEA is the default baud rate for Adafruit MTK GPS's- some use 4800
 29 GPS.begin(9600);
 30
 31 // uncomment this line to turn on RMC (recommended minimum) and GGA (fix data) including altitude
 32 GPS.sendCommand(PMTK_SET_NMEA_OUTPUT_RMCGGA);
 33 // uncomment this line to turn on only the "minimum recommended" data
 34 //GPS.sendCommand(PMTK_SET_NMEA_OUTPUT_RMCONLY);
 35 // For parsing data, we don't suggest using anything but either RMC only or RMC+GGA since
 36 // the parser doesn't care about other sentences at this time
 37
 38 // Set the update rate
 39 GPS.sendCommand(PMTK_SET_NMEA_UPDATE_1HZ);   // 1 Hz update rate
 40 // For the parsing code to work nicely and have time to sort thru the data, and
 41 // print it out we don't suggest using anything higher than 1 Hz
 42
 43 // Request updates on antenna status, comment out to keep quiet
 44 GPS.sendCommand(PGCMD_ANTENNA);
 45
 46 delay(1000);
 47 // Ask for firmware version
 48 mySerial.println(PMTK_Q_RELEASE);
 49 }
 50
 51 uint32_t timer = millis();
 52 void loop()                     // run over and over again
 53 {
 54 // in case you are not using the interrupt above, you'll
 55 // need to 'hand query' the GPS, not suggested :(
 56 // read data from the GPS in the 'main loop'
 57 char c = GPS.read();
 58 // if you want to debug, this is a good time to do it!
 59 if (GPSECHO)
 60     if (c) Serial.print(c);
 61
 62 // if a sentence is received, we can check the checksum, parse it...
 63 if (GPS.newNMEAreceived()) {
 64     // a tricky thing here is if we print the NMEA sentence, or data
 65     // we end up not listening and catching other sentences!
 66     // so be very wary if using OUTPUT_ALLDATA and trytng to print out data
 67     //Serial.println(GPS.lastNMEA());   // this also sets the newNMEAreceived() flag to false
 68
 69     if (!GPS.parse(GPS.lastNMEA()))   // this also sets the newNMEAreceived() flag to false
 70     return;  // we can fail to parse a sentence in which case we should just wait for another
 71 }
 72
 73 // if millis() or timer wraps around, we'll just reset it
 74 if (timer > millis())  timer = millis();
 75
 76 // approximately every 2 seconds or so, print out the current stats
 77 if (millis() - timer > 2000) {
 78     timer = millis(); // reset the timer
 79
 80     Serial.print("\nTime: ");
 81     Serial.print(GPS.hour, DEC); Serial.print(':');
 82     Serial.print(GPS.minute, DEC); Serial.print(':');
 83     Serial.print(GPS.seconds, DEC); Serial.print('.');
 84     Serial.println(GPS.milliseconds);
 85     Serial.print("Date: ");
 86     Serial.print(GPS.day, DEC); Serial.print('/');
 87     Serial.print(GPS.month, DEC); Serial.print("/20");
 88     Serial.println(GPS.year, DEC);
 89     Serial.print("Fix: "); Serial.print((int)GPS.fix);
 90     Serial.print(" quality: "); Serial.println((int)GPS.fixquality);
 91     if (GPS.fix) {
 92     Serial.print("Location: ");
 93     Serial.print(GPS.latitude, 4); Serial.print(GPS.lat);
 94     Serial.print(", ");
 95     Serial.print(GPS.longitude, 4); Serial.println(GPS.lon);
 96     Serial.print("Location (in degrees, works with Google Maps): ");
 97     Serial.print(GPS.latitudeDegrees, 4);
 98     Serial.print(", ");
 99     Serial.println(GPS.longitudeDegrees, 4);
100
101     Serial.print("Speed (knots): "); Serial.println(GPS.speed);
102     Serial.print("Angle: "); Serial.println(GPS.angle);
103     Serial.print("Altitude: "); Serial.println(GPS.altitude);
104     Serial.print("Satellites: "); Serial.println((int)GPS.satellites);
105     }
106 }
107 }

Notes and Warnings

重要

SoftSerial is using hardware serial so pin mapping cannot be altered.


Adafruit_GPS::begin

Description

Initialize serial communication

Syntax

void Adafruit_GPS::begin(uint16_t baud)

Parameters

baud : serial baud rate

Returns

The function returns nothing.

Example Code

Example: Adafruit_GPS_parsing

The details of the code can be found in the previous section of Adafruit_GPS:: Adafruit_GPS.

Notes and Warnings

NA


Adafruit_GPS::lastNMEA

Description

Returns the last NMEA line received and unsets the received flag

Syntax

char *Adafruit_GPS::lastNMEA(void0)

Parameters

The function requires no input parameter.

Returns

Pointer to the last line string

Example Code

Example: Adafruit_GPS_parsing

The details of the code can be found in the previous section of Adafruit_GPS:: Adafruit_GPS.

Notes and Warnings

NA


Adafruit_GPS::newNMEAreceived

Description

Check to see if a new NMEA line has been received

Syntax

boolean Adafruit_GPS::newNMEAreceived(void)

Parameters

The function requires no input parameter.

Returns

True if received, false if not

Example Code

Example: Adafruit_GPS_parsing The details of the code can be found in the previous section of Adafruit_GPS:: Adafruit_GPS.

Notes and Warnings

NA


Adafruit_GPS::common_init

Description

Initialization code used by all constructor types

Syntax

void Adafruit_GPS::common_init(void)

Parameters

The function requires no input parameter.

Returns

The function returns nothing.

Example Code

NA

Notes and Warnings

NA


Adafruit_GPS::sendCommand

Description

Send a command to the GPS device

Syntax

void Adafruit_GPS::sendCommand(const char * str)

Parameters

str : Pointer to a string holding the command to send

Returns

The function returns nothing.

Example Code

Example: Adafruit_GPS_parsing

The details of the code can be found in the previous section of Adafruit_GPS:: Adafruit_GPS.

Notes and Warnings

NA


Adafruit_GPS::pause

Description

Pause/unpause receiving new data

Syntax

void Adafruit_GPS::pause(boolean p)

Parameters

p : True = pause, false = unpause

Returns

The function returns nothing.

Example Code

NA

Notes and Warnings

NA


Adafruit_GPS::parseHex

Description

Read a Hex value and return the decimal equivalent

Syntax

uint8_t Adafruit_GPS::parseHex(char c)

Parameters

c : Hex value

Returns

The decimal equivalent of the Hex value

Example Code

NA

Notes and Warnings

NA


Adafruit_GPS::read

Description

Read one character from the GPS device

Syntax

char Adafruit_GPS::read(void)

Parameters

The function requires no input parameter.

Returns

The character that we received, or 0 if nothing was available

Example Code

Example: Adafruit_GPS_parsing

The details of the code can be found in the previous section of Adafruit_GPS:: Adafruit_GPS.

Notes and Warnings

NA


Adafruit_GPS::parse

Description

Parse an NMEA string

Syntax

boolean Adafruit_GPS::parse(char * nmea)

Parameters

nmea : an NMEA string

Returns

True if we parsed it, false if it has invalid data

Example Code

Example: Adafruit_GPS_parsing

Notes and Warnings

NA


Adafruit_GPS::wakeup

Description

Wake the sensor up

Syntax

boolean Adafruit_GPS::wakeup(void)

Parameters

The function requires no input parameter.

Returns

True if woken up, false if not in standby or failed to wake

Example Code

NA

Notes and Warnings

NA


Adafruit_GPS::standby

Description

Standby Mode Switches

Syntax

boolean Adafruit_GPS::standby(void)

Parameters

The function requires no input parameter.

Returns

False if already in standby, true if it entered standby

Example Code

NA

Notes and Warnings

NA


Adafruit_GPS::waitForSentence

Description

Wait for a specified sentence from the device

Syntax

boolean Adafruit_GPS::waitForSentence(const char * wait4me, uint8_tmax)

Parameters

wait4me: Pointer to a string holding the desired response max: How long to wait, default is MAXWAITSENTENCE

Returns

True if we got what we wanted, false otherwise

Example Code

NA

Notes and Warnings

NA


Adafruit_GPS::LOCUS_StartLogger

Description

Start the LOCUS logger

Syntax

boolean Adafruit_GPS::LOCUS_StartLogger(void)

Parameters

The function requires no input parameter.

Returns

True on success, false if it failed

Example Code

NA

Notes and Warnings

NA


Adafruit_GPS::LOCUS_StopLogger

Description

Stop the LOCUS logger

Syntax

boolean Adafruit_GPS::LOCUS_StopLogger(void)

Parameters

The function requires no input parameter.

Returns

True on success, false if it failed

Example Code

NA

Notes and Warnings

NA


Adafruit_GPS::LOCUS_ReadStatus

Description

Read the logger status

Syntax

boolean Adafruit_GPS::LOCUS_ReadStatus(void)

Parameters

The function requires no input parameter.

Returns

True if we read the data, false if there was no response

Example Code

NA

Notes and Warnings

NA