-
-
Notifications
You must be signed in to change notification settings - Fork 51
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
[NMEA2K]: Add general NMEA2000 message interface, fix FP issues #288
Conversation
dc410ed
to
2b5e60c
Compare
2b5e60c
to
fe93775
Compare
I can try to test this interface later this week, but I've been quite busy lately so I can't really promise anything. Sorry for the delay |
fe93775
to
e90eb49
Compare
e90eb49
to
0494003
Compare
0494003
to
297e7f4
Compare
297e7f4
to
fa5e62d
Compare
Kudos, SonarCloud Quality Gate passed! 0 Bugs 83.1% Coverage The version of Java (11.0.17) you have used to run this analysis is deprecated and we will stop accepting it soon. Please update to at least Java 17. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
First of all, sorry for taking so extremely long for my review 😞. But now it's here, I can say you did some neat stuff! A few small thing I noticed here and there, but overall happy with this addition :)
For testing this I started of by making a 'generator' example, and reading the output with another lovely open-source project canboat. Using candump vcan0 | candump2analyzer | analyzer
I then verified everything is correctly serialized as per their output.
After all was correct, I created an example for the other way around, i.e. a 'parser' program. That way also the de-serialization could be verified. There was little I had to change to make it all work, so props for that. I'll create a PR for my changes 🔥
fa5e62d
to
61ea638
Compare
Started adding message definitions and storage for some more common NMEA2000 messages that might be found on an ISOBUS.
Added serialize functions for each NMEA2K message data object. Added more doxygen. Added ways to get both raw and scaled values for most things.
Added a way to get signed data values using the CANMessage class as an alternative to doing all the bit shifting and masking manually. This is similar to the already existing uint getters on the same class.
Added a class that will provide a nice common interface for common NMEA 2000 messages that might be found on an ISOBUS.
…CF destruction Fixed a rare crash that might happen if a CF address became 0xFE at destruction time.
feat: extra raw/converted message field getters
Fixed every NMEA2K message triggering a callback/event because the timestamp was being considered as something that changed.
23bb9cf
to
7cd8c88
Compare
Kudos, SonarCloud Quality Gate passed! |
What's New:
Caveats, etc
I don't really have a good way to test most of these messages to know if my scaling is correct (and coming across definitions for the scaling is... tricky...) so if anyone out there is willing, I'd love some help testing this with different GNSS receivers in the real world.
Please also let me know if you want additional messages added to this interface.