Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support for Signal ID to GSV Parser #116

Open
ghillert opened this issue Jul 14, 2020 · 4 comments · May be fixed by #118
Open

Add support for Signal ID to GSV Parser #116

ghillert opened this issue Jul 14, 2020 · 4 comments · May be fixed by #118

Comments

@ghillert
Copy link
Contributor

ghillert commented Jul 14, 2020

NMEA 4.10+ added support for the GNSS Signal ID to GSV messages.

Some additional pointers: https://www.nmea.org/Assets/20190515%20nmea%200183%20gsv%20sentence%20corrections.pdf

ghillert added a commit to ghillert/marine-api that referenced this issue Aug 3, 2020
@ghillert
Copy link
Contributor Author

ghillert commented Aug 3, 2020

Added PR. I refrained from creating an enum for the signal ids. It looks like devices may send back proprietary values for older protocol versions. Also having the signal field behind a variable-length group, is kind of screwy. I hope the parsing logic makes sense.

NMEA in general and GSV in particular are really quite messed up. E.g. How do you know that you received ALL GSV messages for the cycle? And the signal id function as a key, too (Talker ID + Signal Id) with the added fun that the signal id may be null ...

@ktuukkan
Copy link
Owner

ktuukkan commented Aug 5, 2020

Yep, in many places it's quite inconsistent and messed up with proprietary conventions. That's what I've always tried to hide and make easier for users in this library, but unfortunately it's not always that easy, given all those oddities. In other words, following the sentence structure 1:1 isn't always the feasible way when designing the sentence interface.

@ghillert
Copy link
Contributor Author

ghillert commented Aug 6, 2020

@ktuukkan By the way, I was thinking about the issue of the "reporting cycle". As there is no way to know where the message cycle ("transaction") starts or ends, GPSD does some profiling to determine a complete cycle across GPS devices. Did you ever consider implementing something like this in Marine API? I wonder if that would be a good add-on. It is crazy that this is not covered in the standard.

@ktuukkan
Copy link
Owner

ktuukkan commented Aug 7, 2020

SatelliteInfoProvider collects a sequence of GSVs and delivers the data in a single event, but other than that I haven't given it much attention. Now that you meantioned it, the provider should probably be amended with signal ID as well, in any case. And while at it, maybe see if there's also something to improve?

ktuukkan added a commit to ghillert/marine-api that referenced this issue Nov 21, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants