Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: gnss
Revision 0:5eb7846b73b4, committed 2017-06-06
- Comitter:
- RobMeades
- Date:
- Tue Jun 06 08:30:05 2017 +0000
- Child:
- 1:3c41bde6d0bc
- Commit message:
- Initial revision.
Changed in this revision
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gnss.lib Tue Jun 06 08:30:05 2017 +0000 @@ -0,0 +1,1 @@ +https://mbed.org/teams/ublox/code/gnss/#2a1cd49ead85
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp Tue Jun 06 08:30:05 2017 +0000
@@ -0,0 +1,114 @@
+/* mbed Microcontroller Library
+ * Copyright (c) 2017 u-blox
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "mbed.h"
+#include "gnss.h"
+
+#define _CHECK_TALKER(s) ((buffer[3] == s[0]) && (buffer[4] == s[1]) && (buffer[5] == s[2]))
+
+// LEDs
+DigitalOut ledRed(LED1, 1);
+DigitalOut ledGreen(LED2, 1);
+DigitalOut ledBlue(LED3, 1);
+
+/* This example program for the u-blox C030 board instantiates
+ * the gnss interface and waits for time/position to be received from a satellite.
+ * Progress may be monitored with a serial terminal running at 9600 baud.
+ * The LED on the C030 board will turn green when this program is
+ * operating correctly, pulse blue when a time reading has been received,
+ * pulse white when GNSS position has been received or turn red if there is
+ * a failure.
+ */
+
+int main()
+{
+ GnssSerial gnss;
+ int gnssReturnCode;
+ int length;
+ char buffer[256];
+ char link[128] = "";
+
+ // Initialise GNSS
+ gnss.init();
+
+ printf ("Waiting for GNSS to receive...\n");
+ while (1) {
+ ledGreen = 1;
+ ledRed = 1;
+ ledBlue = 1;
+
+ gnssReturnCode = gnss.getMessage(buffer, sizeof(buffer));
+ if (gnssReturnCode > 0) {
+ ledGreen = 0;
+ 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("GNSS: location is %.5f %.5f.\n", latitude,
+ longitude);
+ sprintf(link, "I am here!\n"
+ "https://maps.google.com/?q=%.5f,%.5f\n",
+ latitude, longitude);
+ }
+ } else if (_CHECK_TALKER("GGA") || _CHECK_TALKER("GNS") ) {
+ double altitude = 0;
+ const char *timeString = NULL;
+
+ // altitude msl [m]
+ if (gnss.getNmeaItem(9, buffer, length, altitude)) {
+ printf("GNSS: altitude is %.1f m.\n", altitude);
+ }
+
+ // Retrieve the time
+ timeString = gnss.findNmeaItemPos(1, buffer, buffer +
+ length);
+ if (timeString != NULL) {
+ ledBlue = 0;
+ ledRed = 1;
+ ledGreen = 1;
+
+ printf("GNSS: time is %.6s.\n", timeString);
+ }
+ } else if (_CHECK_TALKER("VTG")) {
+ double speed = 0;
+
+ // speed [km/h]
+ if (gnss.getNmeaItem(7, buffer, length, speed)) {
+ printf("GNSS: speed is %.1f km/h.\n", speed);
+ }
+ }
+ }
+ }
+ }
+ }
+}
+
+// End Of File
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed-os.lib Tue Jun 06 08:30:05 2017 +0000 @@ -0,0 +1,1 @@ +https://github.com/ARMmbed/mbed-os/#5fff7e1daeb395aa3d1ecf3f9ec3f4fead3de0c2