-
Notifications
You must be signed in to change notification settings - Fork 97
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
Removes units and details of probable future use from reserved message fields [OTA-197] #1202
Conversation
Ideally I would like re-arrange the fields to have all reserved bytes in one bitfield - how do we manage those kinds of API-breaking changes? |
You would need to special case the validator script so that it would recognize this change and allow it -- probably the easiest way to do this is to just rename the fields to See https://github.com/swift-nav/libsbp/blob/master/scripts/spec_validator.py |
cc @isaactorz |
On second thought, if we compare the two scenarios
So as I see it if we keep the data types the likelihood of changing wire format in the future is actually lower (!) |
72592b3
to
041da62
Compare
@silverjam I rebased in master, re-generated all files with "make clean && make all" and get a version inconsistency here: https://github.com/swift-nav/libsbp/runs/7745497456?check_suite_focus=true An idea what I am missing here? |
If you're running locally you'll need to pull tags to get the version to generate correctly: |
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.
@jtec Please update the PR description with all the final rational before merging so we can properly trace this decision if needed in the future
@fpezzinosn This PR makes some adjustments to the message documentation that I missed in the design doc - would love for you to have a quick look! |
912d352
to
eaba0f1
Compare
Description
This PR removes details of their likely future use from the description of reserved message fields.
It also adds a comment on what the message leap second fields represent instad of referencing the GPS ICD and specifies that the week number is a GPS week.
Rationale
It is very likely that the reserved fields will be used for drift parameters if needed, but this possible future choice should not be reflected in today's field documentation.
We originally considered also merging all reserved fields into one single reserved bitfield. However, if we compare the two scenarios
-> once we decide to use the reserved bytes, we re-divide this bitfield into separate fields, breaking wire format and thus backwards compatibility
So pre-defining the data field types according to their likely future use lowers the likelihood of breaking changes in the future.
API compatibility
This PR does not change the binary representation or message field types but only removes the description and units of reserved fields which are not in use.
JIRA Reference
https://swift-nav.atlassian.net/browse/OTA-197