pour ismet only

Dependencies:   MODGPS

Committer:
fadi_lad
Date:
Wed Jan 18 16:47:23 2017 +0000
Revision:
0:d7ffee41722a
GPS hello ismet

Who changed what in which revision?

UserRevisionLine numberNew contents of line
fadi_lad 0:d7ffee41722a 1
fadi_lad 0:d7ffee41722a 2 #include "mbed.h"
fadi_lad 0:d7ffee41722a 3 #include "GPS.h"
fadi_lad 0:d7ffee41722a 4
fadi_lad 0:d7ffee41722a 5 Serial pc(D8, PA_10); // tx, rx
fadi_lad 0:d7ffee41722a 6 DigitalOut led1(LED1);
fadi_lad 0:d7ffee41722a 7
fadi_lad 0:d7ffee41722a 8 // SET THIS.
fadi_lad 0:d7ffee41722a 9 // Create an instance of the GPS object. You will need to
fadi_lad 0:d7ffee41722a 10 // set p25 to whichever Serial RX pin you have connected
fadi_lad 0:d7ffee41722a 11 // your GPS module to.
fadi_lad 0:d7ffee41722a 12 GPS gps(NC, D0);
fadi_lad 0:d7ffee41722a 13
fadi_lad 0:d7ffee41722a 14 char rmc[GPS_BUFFER_LEN];
fadi_lad 0:d7ffee41722a 15 char gga[GPS_BUFFER_LEN];
fadi_lad 0:d7ffee41722a 16 char vtg[GPS_BUFFER_LEN];
fadi_lad 0:d7ffee41722a 17 char ukn[GPS_BUFFER_LEN];
fadi_lad 0:d7ffee41722a 18
fadi_lad 0:d7ffee41722a 19 // 0.1 second flash of LED2
fadi_lad 0:d7ffee41722a 20 DigitalOut led2(LED2);
fadi_lad 0:d7ffee41722a 21 Timeout t2;
fadi_lad 0:d7ffee41722a 22 void t2out(void) { led2 = 0; }
fadi_lad 0:d7ffee41722a 23 void blip2(void) { led2 = 1; t2.attach(&t2out, 0.1); }
fadi_lad 0:d7ffee41722a 24
fadi_lad 0:d7ffee41722a 25 // 0.1 second flash of LED3
fadi_lad 0:d7ffee41722a 26 DigitalOut led3(LED3);
fadi_lad 0:d7ffee41722a 27 Timeout t3;
fadi_lad 0:d7ffee41722a 28 void t3out(void) { led3 = 0; }
fadi_lad 0:d7ffee41722a 29 void blip3(void) { led3 = 1; t3.attach(&t3out, 0.1); }
fadi_lad 0:d7ffee41722a 30
fadi_lad 0:d7ffee41722a 31 // 0.1 second flash of LED4
fadi_lad 0:d7ffee41722a 32 DigitalOut led4(LED4);
fadi_lad 0:d7ffee41722a 33
fadi_lad 0:d7ffee41722a 34 Timeout t4;
fadi_lad 0:d7ffee41722a 35 void t4out(void) { led4 = 0; }
fadi_lad 0:d7ffee41722a 36 void blip4(void) { led4 = 1; t4.attach(&t4out, 0.1); }
fadi_lad 0:d7ffee41722a 37
fadi_lad 0:d7ffee41722a 38 int main() {
fadi_lad 0:d7ffee41722a 39 GPS_Time q1;
fadi_lad 0:d7ffee41722a 40
fadi_lad 0:d7ffee41722a 41 // SET THIS.
fadi_lad 0:d7ffee41722a 42 // Ensure you set the baud rate to match your serial
fadi_lad 0:d7ffee41722a 43 // communications to your PC/Max/Linux host so you
fadi_lad 0:d7ffee41722a 44 // can read the messages.
fadi_lad 0:d7ffee41722a 45 pc.baud(PCBAUD);
fadi_lad 0:d7ffee41722a 46
fadi_lad 0:d7ffee41722a 47 // Tell MODGPS "we want copies of the NMEA sentences". When a callback
fadi_lad 0:d7ffee41722a 48 // is made our buffers will contain a copy of the last received sentence
fadi_lad 0:d7ffee41722a 49 // before it was processed/destroyed.
fadi_lad 0:d7ffee41722a 50 gps.setRmc(rmc);
fadi_lad 0:d7ffee41722a 51 gps.setGga(gga);
fadi_lad 0:d7ffee41722a 52 gps.setVtg(vtg);
fadi_lad 0:d7ffee41722a 53 gps.setUkn(ukn);
fadi_lad 0:d7ffee41722a 54
fadi_lad 0:d7ffee41722a 55 // SET THIS.
fadi_lad 0:d7ffee41722a 56 // Most GPS modules use 9600,8,n,1 so that's what
fadi_lad 0:d7ffee41722a 57 // we default to here. Ensure your GPS module matches
fadi_lad 0:d7ffee41722a 58 // this, otherwise set it to match.
fadi_lad 0:d7ffee41722a 59 gps.baud(GPSBUAD);
fadi_lad 0:d7ffee41722a 60 gps.format(8, GPS::None, 1);
fadi_lad 0:d7ffee41722a 61
fadi_lad 0:d7ffee41722a 62 // OPTIONAL
fadi_lad 0:d7ffee41722a 63 // If you GPS has a 1 pulse per second output you can
fadi_lad 0:d7ffee41722a 64 // connect it to an Mbed pin. Here you specify what pin
fadi_lad 0:d7ffee41722a 65 // and on what "edge" teh signal is active. If your GPS
fadi_lad 0:d7ffee41722a 66 // module has a rising edge at the one second point then
fadi_lad 0:d7ffee41722a 67 // use GPS::ppsRise
fadi_lad 0:d7ffee41722a 68 #ifdef PPSPIN
fadi_lad 0:d7ffee41722a 69 gps.ppsAttach(PPSPIN, GPS::ppsFall);
fadi_lad 0:d7ffee41722a 70 #endif
fadi_lad 0:d7ffee41722a 71
fadi_lad 0:d7ffee41722a 72 // Sample of a callback to a function when the 1PPS activates.
fadi_lad 0:d7ffee41722a 73 // For this example, we flash LED2 for 0.1 second.
fadi_lad 0:d7ffee41722a 74 gps.attach_pps(&blip2);
fadi_lad 0:d7ffee41722a 75
fadi_lad 0:d7ffee41722a 76 // Sample of a callback to a function when a NMEA GGA message is recieved.
fadi_lad 0:d7ffee41722a 77 // For this example, we flash LED2 for 0.1 second.
fadi_lad 0:d7ffee41722a 78 gps.attach_gga(&blip3);
fadi_lad 0:d7ffee41722a 79
fadi_lad 0:d7ffee41722a 80 // Sample of a callback to a function when a NMEA RMC message is recieved.
fadi_lad 0:d7ffee41722a 81 // For this example, we flash LED2 for 0.1 second.
fadi_lad 0:d7ffee41722a 82 gps.attach_rmc(&blip4);
fadi_lad 0:d7ffee41722a 83
fadi_lad 0:d7ffee41722a 84 while(1) {
fadi_lad 0:d7ffee41722a 85 // Every 3 seconds, flip LED1 and print the basic GPS info.
fadi_lad 0:d7ffee41722a 86 wait(3);
fadi_lad 0:d7ffee41722a 87 led1 = 1;
fadi_lad 0:d7ffee41722a 88
fadi_lad 0:d7ffee41722a 89 // Demonstrate how to find out the GPS location co-ords.
fadi_lad 0:d7ffee41722a 90 pc.printf("Method 1. Lat = %.4f ", gps.latitude());
fadi_lad 0:d7ffee41722a 91 pc.printf("Lon = %.4f ", gps.longitude());
fadi_lad 0:d7ffee41722a 92 pc.printf("Alt = %.4f ", gps.altitude());
fadi_lad 0:d7ffee41722a 93
fadi_lad 0:d7ffee41722a 94 // Gran a snapshot of the current time.
fadi_lad 0:d7ffee41722a 95 gps.timeNow(&q1);
fadi_lad 0:d7ffee41722a 96 pc.printf("%02d:%02d:%02d %02d/%02d/%04d\r\n",
fadi_lad 0:d7ffee41722a 97 q1.hour, q1.minute, q1.second, q1.day, q1.month, q1.year);
fadi_lad 0:d7ffee41722a 98
fadi_lad 0:d7ffee41722a 99 // Alternative method that does the same thing.
fadi_lad 0:d7ffee41722a 100 pc.printf("Method 2. Lat = %.4f ", gps.latitude());
fadi_lad 0:d7ffee41722a 101 pc.printf("Lon = %.4f ", gps.longitude());
fadi_lad 0:d7ffee41722a 102 pc.printf("Alt = %.4f ", gps.altitude());
fadi_lad 0:d7ffee41722a 103
fadi_lad 0:d7ffee41722a 104 GPS_Time *q2 = gps.timeNow();
fadi_lad 0:d7ffee41722a 105 pc.printf("%02d:%02d:%02d %02d/%02d/%04d\r\n\n",
fadi_lad 0:d7ffee41722a 106 q2->hour, q2->minute, q2->second, q2->day, q2->month, q2->year);
fadi_lad 0:d7ffee41722a 107 delete(q2);
fadi_lad 0:d7ffee41722a 108 led1 = 0;
fadi_lad 0:d7ffee41722a 109 }
fadi_lad 0:d7ffee41722a 110 }
fadi_lad 0:d7ffee41722a 111