NMEA currently seems to be the only standard way of communicating GPS data. Lots of GPS module manufacturers have their own, more efficient, interfaces but most/all support NMEA. I tried to make the most of this protocol by optimising:
- Jitter: The presented library aims to split the parsing job up as much as possible. I still wouldn't call the
nmea_parsefunction from an ISR, but... you get the idea.
- Ease of use: Just feed characters straight from your UART port into the
nmea_parsefunction - no need for a buffer.
- Extendability: Because all the fields are processed separately, if you would like to support a currently unsupported sentence, any fields within that sentence that are shared with currently supported sentences can reuse existing code.