This is used for sending Data to receiving mDot

Dependencies:   libmDot-dev-mbed5-deprecated sd-driver ISL29011

Fork of mdot-examples by 3mdeb

Committer:
SDesign2018
Date:
Sat Apr 14 18:20:55 2018 +0000
Revision:
31:79940947df2c
Parent:
26:15df8f054d11
SD card functionality isn't working as wanted. Was working before.; Add method to send longitude and latitude floats.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
SDesign2018 26:15df8f054d11 1 /***********************************
SDesign2018 26:15df8f054d11 2 This is the Adafruit GPS library - the ultimate GPS library
SDesign2018 26:15df8f054d11 3 for the ultimate GPS module!
SDesign2018 26:15df8f054d11 4
SDesign2018 26:15df8f054d11 5 Tested and works great with the Adafruit Ultimate GPS module
SDesign2018 26:15df8f054d11 6 using MTK33x9 chipset
SDesign2018 26:15df8f054d11 7 ------> http://www.adafruit.com/products/746
SDesign2018 26:15df8f054d11 8 Pick one up today at the Adafruit electronics shop
SDesign2018 26:15df8f054d11 9 and help support open source hardware & software! -ada
SDesign2018 26:15df8f054d11 10
SDesign2018 26:15df8f054d11 11 Adafruit invests time and resources providing this open source code,
SDesign2018 26:15df8f054d11 12 please support Adafruit and open-source hardware by purchasing
SDesign2018 26:15df8f054d11 13 products from Adafruit!
SDesign2018 26:15df8f054d11 14
SDesign2018 26:15df8f054d11 15 Written by Limor Fried/Ladyada for Adafruit Industries.
SDesign2018 26:15df8f054d11 16 BSD license, check license.txt for more information
SDesign2018 26:15df8f054d11 17 All text above must be included in any redistribution
SDesign2018 26:15df8f054d11 18 ****************************************/
SDesign2018 26:15df8f054d11 19 #include "mbed.h"
SDesign2018 26:15df8f054d11 20 #include <stdint.h>
SDesign2018 26:15df8f054d11 21 #include <math.h>
SDesign2018 26:15df8f054d11 22 #include <ctype.h>
SDesign2018 26:15df8f054d11 23
SDesign2018 26:15df8f054d11 24 #ifndef _MBED_ADAFRUIT_GPS_H
SDesign2018 26:15df8f054d11 25 #define _MBED_ADAFRUIT_GPS_H
SDesign2018 26:15df8f054d11 26
SDesign2018 26:15df8f054d11 27
SDesign2018 26:15df8f054d11 28 // different commands to set the update rate from once a second (1 Hz) to 10 times a second (10Hz)
SDesign2018 26:15df8f054d11 29 #define PMTK_SET_NMEA_UPDATE_1HZ "$PMTK220,1000*1F"
SDesign2018 26:15df8f054d11 30 #define PMTK_SET_NMEA_UPDATE_5HZ "$PMTK220,200*2C"
SDesign2018 26:15df8f054d11 31 #define PMTK_SET_NMEA_UPDATE_10HZ "$PMTK220,100*2F"
SDesign2018 26:15df8f054d11 32
SDesign2018 26:15df8f054d11 33
SDesign2018 26:15df8f054d11 34 #define PMTK_SET_BAUD_57600 "$PMTK251,57600*2C"
SDesign2018 26:15df8f054d11 35 #define PMTK_SET_BAUD_9600 "$PMTK251,9600*17"
SDesign2018 26:15df8f054d11 36
SDesign2018 26:15df8f054d11 37 // turn on only the second sentence (GPRMC)
SDesign2018 26:15df8f054d11 38 #define PMTK_SET_NMEA_OUTPUT_RMCONLY "$PMTK314,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0*29"
SDesign2018 26:15df8f054d11 39 // turn on GPRMC and GGA
SDesign2018 26:15df8f054d11 40 #define PMTK_SET_NMEA_OUTPUT_RMCGGA "$PMTK314,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0*28"
SDesign2018 26:15df8f054d11 41 // turn on ALL THE DATA
SDesign2018 26:15df8f054d11 42 #define PMTK_SET_NMEA_OUTPUT_ALLDATA "$PMTK314,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0*28"
SDesign2018 26:15df8f054d11 43 // turn off output
SDesign2018 26:15df8f054d11 44 #define PMTK_SET_NMEA_OUTPUT_OFF "$PMTK314,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0*28"
SDesign2018 26:15df8f054d11 45
SDesign2018 26:15df8f054d11 46 // to generate your own sentences, check out the MTK command datasheet and use a checksum calculator
SDesign2018 26:15df8f054d11 47 // such as the awesome http://www.hhhh.org/wiml/proj/nmeaxor.html
SDesign2018 26:15df8f054d11 48
SDesign2018 26:15df8f054d11 49 #define PMTK_LOCUS_STARTLOG "$PMTK185,0*22"
SDesign2018 26:15df8f054d11 50 #define PMTK_LOCUS_LOGSTARTED "$PMTK001,185,3*3C"
SDesign2018 26:15df8f054d11 51 #define PMTK_LOCUS_QUERY_STATUS "$PMTK183*38"
SDesign2018 26:15df8f054d11 52 #define PMTK_LOCUS_ERASE_FLASH "$PMTK184,1*22"
SDesign2018 26:15df8f054d11 53 #define LOCUS_OVERLAP 0
SDesign2018 26:15df8f054d11 54 #define LOCUS_FULLSTOP 1
SDesign2018 26:15df8f054d11 55
SDesign2018 26:15df8f054d11 56 // standby command & boot successful message
SDesign2018 26:15df8f054d11 57 #define PMTK_STANDBY "$PMTK161,0*28"
SDesign2018 26:15df8f054d11 58 #define PMTK_STANDBY_SUCCESS "$PMTK001,161,3*36" // Not needed currently
SDesign2018 26:15df8f054d11 59 #define PMTK_AWAKE "$PMTK010,002*2D"
SDesign2018 26:15df8f054d11 60
SDesign2018 26:15df8f054d11 61 // ask for the release and version
SDesign2018 26:15df8f054d11 62 #define PMTK_Q_RELEASE "$PMTK605*31"
SDesign2018 26:15df8f054d11 63
SDesign2018 26:15df8f054d11 64 // request for updates on antenna status
SDesign2018 26:15df8f054d11 65 #define PGCMD_ANTENNA "$PGCMD,33,1*6C"
SDesign2018 26:15df8f054d11 66 #define PGCMD_NOANTENNA "$PGCMD,33,0*6D"
SDesign2018 26:15df8f054d11 67
SDesign2018 26:15df8f054d11 68 // how long to wait when we're looking for a response
SDesign2018 26:15df8f054d11 69 #define MAXWAITSENTENCE 5
SDesign2018 26:15df8f054d11 70
SDesign2018 26:15df8f054d11 71
SDesign2018 26:15df8f054d11 72
SDesign2018 26:15df8f054d11 73 class Adafruit_GPS {
SDesign2018 26:15df8f054d11 74 public:
SDesign2018 26:15df8f054d11 75 void begin(int baud);
SDesign2018 26:15df8f054d11 76
SDesign2018 26:15df8f054d11 77 Adafruit_GPS(Serial * ser);
SDesign2018 26:15df8f054d11 78
SDesign2018 26:15df8f054d11 79 char *lastNMEA(void);
SDesign2018 26:15df8f054d11 80 bool newNMEAreceived();
SDesign2018 26:15df8f054d11 81 void common_init(void);
SDesign2018 26:15df8f054d11 82 void sendCommand(char *);
SDesign2018 26:15df8f054d11 83 void pause(bool b);
SDesign2018 26:15df8f054d11 84
SDesign2018 26:15df8f054d11 85 bool parseNMEA(char *response);
SDesign2018 26:15df8f054d11 86 uint8_t parseHex(char c);
SDesign2018 26:15df8f054d11 87
SDesign2018 26:15df8f054d11 88 char read(void);
SDesign2018 26:15df8f054d11 89 bool parse(char * nmea);
SDesign2018 26:15df8f054d11 90 void interruptReads(bool r);
SDesign2018 26:15df8f054d11 91
SDesign2018 26:15df8f054d11 92 bool wakeup(void);
SDesign2018 26:15df8f054d11 93 bool standby(void);
SDesign2018 26:15df8f054d11 94
SDesign2018 26:15df8f054d11 95 uint8_t hour, minute, seconds, year, month, day;
SDesign2018 26:15df8f054d11 96 uint16_t milliseconds;
SDesign2018 26:15df8f054d11 97 float latitude, longitude, geoidheight, altitude;
SDesign2018 26:15df8f054d11 98 float speed, angle, magvariation, HDOP;
SDesign2018 26:15df8f054d11 99 float latitudeDegrees, longitudeDegrees;
SDesign2018 26:15df8f054d11 100 char lat, lon, mag;
SDesign2018 26:15df8f054d11 101 bool fix;
SDesign2018 26:15df8f054d11 102 uint8_t fixquality, satellites;
SDesign2018 26:15df8f054d11 103
SDesign2018 26:15df8f054d11 104 bool waitForSentence(char *wait, uint8_t max = MAXWAITSENTENCE);
SDesign2018 26:15df8f054d11 105 bool LOCUS_StartLogger(void);
SDesign2018 26:15df8f054d11 106 bool LOCUS_ReadStatus(void);
SDesign2018 26:15df8f054d11 107
SDesign2018 26:15df8f054d11 108 uint16_t LOCUS_serial, LOCUS_records;
SDesign2018 26:15df8f054d11 109 uint8_t LOCUS_type, LOCUS_mode, LOCUS_config, LOCUS_interval, LOCUS_distance, LOCUS_speed, LOCUS_status, LOCUS_percent;
SDesign2018 26:15df8f054d11 110 private:
SDesign2018 26:15df8f054d11 111 bool paused;
SDesign2018 26:15df8f054d11 112
SDesign2018 26:15df8f054d11 113 Serial * gpsSerial;
SDesign2018 26:15df8f054d11 114 };
SDesign2018 26:15df8f054d11 115
SDesign2018 26:15df8f054d11 116 #endif