Add NMEA parsing library to framework #268

Closed
opened 2020-11-29 17:00:12 +01:00 by muellerr · 4 comments
Owner

NMEA is a very common format for messages, but requires ASCII parsing. Instead of implementing the parsing over and over again in mission code(there are ASCII parsing components, but no NMEA parsing components) , I suggest to add functionalities to parse NMEA sentences. However this has already been done so I don't see a reason to implement this ourselves and instead use proven code by adding a library like https://github.com/kosma/minmea , which is licensed under WTFPL to the contrib folder. It consists of one source, one header and one nice LICENSE file so its also really easy to integrate, but it appears to not really be maintained anymore.

Another option would be https://docs.majerle.eu/projects/lwgps/en/latest/index.html
but I am not sure the MIT license in compatible. According to https://law.stackexchange.com/questions/6081/can-i-bundle-mit-licensed-components-in-a-apache-2-0-licensed-project it is.
This library includes an option file, so one way to make inclusion of the whole library optional would be preprocessor defines

Background information: EIVE GPS only outputs NMEA messages and I don't want to reinvent the wheel again. Maybe there is also a way to integrate this into the framework for future missions..

NMEA is a very common format for messages, but requires ASCII parsing. Instead of implementing the parsing over and over again in mission code(there are ASCII parsing components, but no NMEA parsing components) , I suggest to add functionalities to parse NMEA sentences. However this has already been done so I don't see a reason to implement this ourselves and instead use proven code by adding a library like https://github.com/kosma/minmea , which is licensed under WTFPL to the contrib folder. It consists of one source, one header and one nice LICENSE file so its also really easy to integrate, but it appears to not really be maintained anymore. Another option would be https://docs.majerle.eu/projects/lwgps/en/latest/index.html but I am not sure the MIT license in compatible. According to https://law.stackexchange.com/questions/6081/can-i-bundle-mit-licensed-components-in-a-apache-2-0-licensed-project it is. This library includes an option file, so one way to make inclusion of the whole library optional would be preprocessor defines Background information: EIVE GPS only outputs NMEA messages and I don't want to reinvent the wheel again. Maybe there is also a way to integrate this into the framework for future missions..
muellerr added the
feature
label 2020-11-29 17:00:12 +01:00
muellerr changed title from Add NMEA library to framework to Add NMEA parsing library to framework 2020-11-29 17:02:46 +01:00
Owner

Did you use one of those libs?

Did you use one of those libs?
Author
Owner

No, but I will propably try to find and use a good (and maintained) one for the EIVE GPS device handler.

No, but I will propably try to find and use a good (and maintained) one for the EIVE GPS device handler.
Author
Owner

I added the library. I adapted it to have CMake support as well: https://github.com/rmspacefish/lwgps/tree/mueller/added-cmake-support. I will test it soon with the Hyperion GPS device NMEA strings.

I added the library. I adapted it to have CMake support as well: https://github.com/rmspacefish/lwgps/tree/mueller/added-cmake-support. I will test it soon with the Hyperion GPS device NMEA strings.
Author
Owner

These libraries are really small and can be added on a project base as a submodule. I don' think it is necessary to add them to FSFW

These libraries are really small and can be added on a project base as a submodule. I don' think it is necessary to add them to FSFW
Sign in to join this conversation.
No Milestone
No Assignees
2 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: fsfw/fsfw#268
No description provided.