Mbed library to handle GPS data reception and parsing

Dependents:   GPS_U-blox_NEO-6M_Code

Features

  • All positionning parameters are contained into a global data structure.
  • Automatic nema string parsing and data structure update.
    • GSA,GGA,VTG and RMC
  • Convert latitude and longitude to decimal value.
  • Converts latittude,longitude and altitude to ECEF coordinates.

Planed developement

  • Test library for RTOS use.
  • Complete the nema parsing decoders (couple of parameters are not parsed yet and not present in the data structure).
  • Add conversion tool to get ENU coordinates.
Committer:
chris215
Date:
Tue Feb 16 02:57:35 2016 +0000
Revision:
5:8a73e34b3978
Parent:
0:0c1aa5906cef
Function renaming. Adding gps update calls.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
chris215 0:0c1aa5906cef 1 template< class T >
chris215 0:0c1aa5906cef 2 class CircularBuffer{
chris215 0:0c1aa5906cef 3 public:
chris215 0:0c1aa5906cef 4 CircularBuffer(int FIFOsize)
chris215 0:0c1aa5906cef 5 {
chris215 0:0c1aa5906cef 6 m_FIFO = new T[FIFOsize];
chris215 0:0c1aa5906cef 7 m_size = FIFOsize;
chris215 0:0c1aa5906cef 8 m_elementcount = 0;
chris215 0:0c1aa5906cef 9 m_outindex = 0;
chris215 0:0c1aa5906cef 10 };
chris215 0:0c1aa5906cef 11 ~CircularBuffer()
chris215 0:0c1aa5906cef 12 {
chris215 0:0c1aa5906cef 13 delete[] m_FIFO;
chris215 0:0c1aa5906cef 14 };
chris215 0:0c1aa5906cef 15 T Get()
chris215 0:0c1aa5906cef 16 {
chris215 0:0c1aa5906cef 17 m_elementcount--;
chris215 0:0c1aa5906cef 18 return m_FIFO[(m_outindex++)%m_size];
chris215 0:0c1aa5906cef 19 };
chris215 0:0c1aa5906cef 20 void Put(T n)
chris215 0:0c1aa5906cef 21 {
chris215 0:0c1aa5906cef 22 m_elementcount++;
chris215 0:0c1aa5906cef 23 m_FIFO[(m_elementcount+m_outindex)%m_size] = n;
chris215 0:0c1aa5906cef 24 };
chris215 0:0c1aa5906cef 25 long GetElementCount()
chris215 0:0c1aa5906cef 26 {
chris215 0:0c1aa5906cef 27 return m_elementcount;
chris215 0:0c1aa5906cef 28 };
chris215 0:0c1aa5906cef 29 private:
chris215 0:0c1aa5906cef 30 long m_size;
chris215 0:0c1aa5906cef 31 long m_elementcount;
chris215 0:0c1aa5906cef 32 long m_outindex;
chris215 0:0c1aa5906cef 33 T* m_FIFO;
chris215 0:0c1aa5906cef 34 };