Prototyping the Adaptable Emergency System on an C027 board.
Dependencies: C027_Support mbed
Fork of c027_prototyping by
gps_locate.cpp@4:f1708f6ec905, 2014-09-30 (annotated)
- Committer:
- aroulin
- Date:
- Tue Sep 30 16:06:35 2014 +0000
- Revision:
- 4:f1708f6ec905
- Child:
- 7:eeef6f9fa1db
Merge GPS Locate and SMS features
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
aroulin | 4:f1708f6ec905 | 1 | #include "gps_locate.h" |
aroulin | 4:f1708f6ec905 | 2 | #include "GPS.h" |
aroulin | 4:f1708f6ec905 | 3 | |
aroulin | 4:f1708f6ec905 | 4 | int gps_on(void) |
aroulin | 4:f1708f6ec905 | 5 | { |
aroulin | 4:f1708f6ec905 | 6 | return 0; |
aroulin | 4:f1708f6ec905 | 7 | } |
aroulin | 4:f1708f6ec905 | 8 | |
aroulin | 4:f1708f6ec905 | 9 | int gps_off(void) |
aroulin | 4:f1708f6ec905 | 10 | { |
aroulin | 4:f1708f6ec905 | 11 | return 0; |
aroulin | 4:f1708f6ec905 | 12 | } |
aroulin | 4:f1708f6ec905 | 13 | |
aroulin | 4:f1708f6ec905 | 14 | int gps_locate(struct gps_data_t* gps_data) |
aroulin | 4:f1708f6ec905 | 15 | {/* |
aroulin | 4:f1708f6ec905 | 16 | // Power on gps |
aroulin | 4:f1708f6ec905 | 17 | GPSI2C gps; |
aroulin | 4:f1708f6ec905 | 18 | |
aroulin | 4:f1708f6ec905 | 19 | int ret = 0; |
aroulin | 4:f1708f6ec905 | 20 | char buf[512] = {0}; |
aroulin | 4:f1708f6ec905 | 21 | |
aroulin | 4:f1708f6ec905 | 22 | while ((ret = gps.getMessage(buf, sizeof(buf))) > 0) { |
aroulin | 4:f1708f6ec905 | 23 | int len = LENGTH(ret); |
aroulin | 4:f1708f6ec905 | 24 | if ((PROTOCOL(ret) == GPSParser::NMEA) && (len > 6)) { |
aroulin | 4:f1708f6ec905 | 25 | if (!strncmp("$GPGLL", buf, 6)) { |
aroulin | 4:f1708f6ec905 | 26 | double la = 0, lo = 0; |
aroulin | 4:f1708f6ec905 | 27 | char ch; |
aroulin | 4:f1708f6ec905 | 28 | if (gps.getNmeaAngle(1,buf,len,la) && |
aroulin | 4:f1708f6ec905 | 29 | gps.getNmeaAngle(3,buf,len,lo) && |
aroulin | 4:f1708f6ec905 | 30 | gps.getNmeaItem(6,buf,len,ch) && ch == 'A') { |
aroulin | 4:f1708f6ec905 | 31 | printf("GPS Location: %.5f %.5f\r\n", la, lo); |
aroulin | 4:f1708f6ec905 | 32 | printf(link, "I am here!\n" |
aroulin | 4:f1708f6ec905 | 33 | "https://maps.google.com/?q=%.5f,%.5f", la, lo); |
aroulin | 4:f1708f6ec905 | 34 | } |
aroulin | 4:f1708f6ec905 | 35 | } else if (!strncmp("$GPGGA", buf, 6)) { |
aroulin | 4:f1708f6ec905 | 36 | double a = 0; |
aroulin | 4:f1708f6ec905 | 37 | if (gps.getNmeaItem(9,buf,len,a)) // altitude msl [m] |
aroulin | 4:f1708f6ec905 | 38 | printf("GPS Altitude: %.1f\r\n", a); |
aroulin | 4:f1708f6ec905 | 39 | } else if (!strncmp("$GPVTG", buf, 6)) { |
aroulin | 4:f1708f6ec905 | 40 | double s = 0; |
aroulin | 4:f1708f6ec905 | 41 | if (gps.getNmeaItem(7,buf,len,s)) // speed [km/h] |
aroulin | 4:f1708f6ec905 | 42 | printf("GPS Speed: %.1f\r\n", s); |
aroulin | 4:f1708f6ec905 | 43 | } |
aroulin | 4:f1708f6ec905 | 44 | } |
aroulin | 4:f1708f6ec905 | 45 | }*/ return 0; |
aroulin | 4:f1708f6ec905 | 46 | } |