The program sends the current location over the cellular network.
Dependencies: aconno_I2C ublox-at-cellular-interface gnss ublox-cellular-base Lis2dh12 ublox-cellular-base-n2xx ublox-at-cellular-interface-n2xx low-power-sleep
Fork of example-gnss by
Diff: main.cpp
- Revision:
- 7:746ae478fdf7
- Parent:
- 6:881e2bbf29e4
- Child:
- 8:2bf886335fd0
--- a/main.cpp Wed Jun 14 20:47:56 2017 +0100
+++ b/main.cpp Mon Jul 31 10:48:08 2017 +0100
@@ -41,35 +41,34 @@
int gnssReturnCode;
int length;
char buffer[256];
- char link[128] = "";
printf ("Starting up...\n");
if (gnss.init()) {
printf ("Waiting for GNSS to receive something...\n");
- while (1) {
+ while (1) {
gnssReturnCode = gnss.getMessage(buffer, sizeof(buffer));
if (gnssReturnCode > 0) {
ledGreen = 0;
ledBlue = 1;
ledRed = 1;
length = LENGTH(gnssReturnCode);
-
+
printf("NMEA: %.*s\n", length - 2, buffer);
-
+
if ((PROTOCOL(gnssReturnCode) == GnssParser::NMEA) && (length > 6)) {
// Talker is $GA=Galileo $GB=Beidou $GL=Glonass $GN=Combined $GP=GNSS
if ((buffer[0] == '$') || buffer[1] == 'G') {
if (CHECK_TALKER("GLL")) {
double latitude = 0, longitude = 0;
char ch;
-
+
if (gnss.getNmeaAngle(1, buffer, length, latitude) &&
gnss.getNmeaAngle(3, buffer, length, longitude) &&
gnss.getNmeaItem(6, buffer, length, ch) && (ch == 'A')) {
ledBlue = 0;
ledRed = 0;
ledGreen = 0;
-
+
printf("\nGNSS: location is %.5f %.5f.\n\n", latitude, longitude);
printf("I am here: https://maps.google.com/?q=%.5f,%.5f\n\n",
latitude, longitude);
@@ -77,24 +76,24 @@
} else if (CHECK_TALKER("GGA") || CHECK_TALKER("GNS")) {
double altitude = 0;
const char *timeString = NULL;
-
- // Altitude
+
+ // Altitude
if (gnss.getNmeaItem(9, buffer, length, altitude)) {
printf("\nGNSS: altitude is %.1f m.\n", altitude);
}
-
+
// Time
timeString = gnss.findNmeaItemPos(1, buffer, buffer + length);
if (timeString != NULL) {
ledBlue = 0;
ledRed = 1;
ledGreen = 1;
-
+
printf("\nGNSS: time is %.6s.\n\n", timeString);
}
} else if (CHECK_TALKER("VTG")) {
double speed = 0;
-
+
// Speed
if (gnss.getNmeaItem(7, buffer, length, speed)) {
printf("\nGNSS: speed is %.1f km/h.\n\n", speed);
@@ -107,7 +106,7 @@
} else {
printf("Unable to initialise GNSS.\n");
}
-
+
ledRed = 0;
ledGreen = 1;
ledBlue = 1;
