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

Nmea #536

Open
wants to merge 3 commits into
base: master
Choose a base branch
from
Open

Nmea #536

wants to merge 3 commits into from

Conversation

je-lamiaud
Copy link
Contributor

The current code only accepts NMEA sentences referencing GPS and GNSS systems. Most receivers also use Galilleo (but generally identifying it as GPS), GLONASS, and possibly Beidu. When the receiver emits these sentences, an error log is written; which makes the log filled with two or three error lines per seconds, with a perfectly correct receiver.
The first commit simply downgrade the log to debug, as this is not an error. I also have changed the order of the tests to check for the "nothing received" case, before checking if the received sentence was parsed.

The second commit is more experimental, to process sentences from all kind of systems. With my GPS/Gallileo/GLONASS receiver, it works fine: the number of satellites in view comprises all constellations, and all other data is still correctly reported.

@rumengb
Copy link
Member

rumengb commented May 18, 2024

I reviewed your PR and I am not ready to accept it. I experimented with mixing GLONASS and GPS before but the results were not good as both systems did not return absolutely the same values. This leads to some problems synchronizing mounts so I did not release this experiment and I decided to make a switch property to choose between the sysmes to use but I never did it as there was no urge for this. This will also fix the issue with the reported SVs in use etc. Can you make your PR so that one can choose the system to use and parse messages only from the selected system and ignore the rest? You can add a ONE_OF_MANY switch to choose from GPS GLONAS etc.

@je-lamiaud
Copy link
Contributor Author

I think this property has to have an "Automatic" default item, where the first system providing a fix would be selected. As the vast majority of receivers either provide a fix for one constellation only, or only a "GN" fix combining several constellations, this automatic selection should be enough for most users. And a manual selection would allow the unlucky other few to get the driver working with their receivers.
I'm working on it, but do not have much time at the moment.

@rumengb
Copy link
Member

rumengb commented May 21, 2024 via email

@je-lamiaud
Copy link
Contributor Author

je-lamiaud commented Jun 7, 2024

I've added the property for NMEA system selection. The "Multiple" case (Talker Id "GN") still needs some specific processing, because it mixes a fix (RMC and GGA) with GN talker id, and satellites data (GSA and GSV) with all used constellations Talker Ids.
It works fine, as long as the selection is correct 🙂
I've bumped the driver revision up. I don't know if this was up to me.
Since I've pushed this last commit, there is a notification of conflict. Not being completely familiar with Github, I'm not sure what I need to do. I will read the docs before doing something wrong 🤓

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 this pull request may close these issues.

None yet

2 participants