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.
utils/CircularBuffer.h@0:0c1aa5906cef, 2014-08-06 (annotated)
- Committer:
- chris215
- Date:
- Wed Aug 06 01:37:39 2014 +0000
- Revision:
- 0:0c1aa5906cef
Renamed library
Who changed what in which revision?
User | Revision | Line number | New 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 | }; |