-
Notifications
You must be signed in to change notification settings - Fork 13.7k
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
msg: introduce subset of versioned messages #23850
Conversation
33b756e
to
b71401d
Compare
9d3e6b7
to
eba5c19
Compare
If we migrate the dds-xrce serializer to the cyclonedds cdr serializer already used in the zenoh bridge. We could simply transport the cdr serialization opcodes for each message which are already inside the mcu flash. Removes the need of versioning or hashing. |
e3d79c2
to
8e08ab3
Compare
This is interesting, do you have any more detail on hand or should we discuss later? |
I'm not sure aux/core is really the right distinction, it's really just versioned vs non. What if we start with something like |
If you build the zenoh target then in te build you get the generated code i.e.
You can simply transfer the ops from ROM and wire to validate the serialization/deserialization used for each message. We could also schedule meeting/brainstorm session to more into depth into this. |
Thanks @PetervdPerk-NXP. What we need goes a bit further than just version detection. You find the details under the linked doc above: https://docs.google.com/document/d/18_RxV1eEjt4haaa5QkFZAlIAJNv9w5HED2aUEiG7PVQ/edit @GuillaumeLaine there's also some scripts under |
8e08ab3
to
202c357
Compare
Very cool. Have you thought about how this will be integrated/documented? |
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.
I found another reference to msg/
: https://github.com/PX4/PX4-Autopilot/blob/main/src/modules/uxrce_dds_client/generate_dds_topics.py#L46. The argument isn't used anymore and can just be removed.
Jenkinsfile
Outdated
sh('rm -f px4_msgs/srv/*.srv') | ||
sh('cp msg/*.msg px4_msgs/msg/') | ||
sh('cp msg/versioned/*.msg px4_msgs/versioned/msg/') |
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.
This will require a change in the px4_msgs repo too: https://github.com/PX4/px4_msgs/blob/main/CMakeLists.txt#L21.
Either way is fine with me, but maybe simpler to keep them merged for now?
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.
I recall @dagar being in favor of visibly splitting the messages, so I've opened a PR in px4_msgs to address your comment thanks
f2dc913
to
96ae5f0
Compare
This pull request has been mentioned on Discussion Forum for PX4, Pixhawk, QGroundControl, MAVSDK, MAVLink. There might be relevant details there: |
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.
Looks good from my side
c02fbd7
to
5c52068
Compare
If we bring this in now do we have any mechanism for enforcing the version bump? Who is then responsible for handling the field translation? |
There's a follow-up for that which adds CI to check if versioning got added when a message changes. Here's the branch: https://github.com/PX4/PX4-Autopilot/tree/message_versioning_and_translation |
Let's get this in then while there's no conflicts, and I'll do the follow-up. The container CI build failure is a permission failure (probably because the PR comes from an external repo). |
From a docs point of view this does two things:
There is no obvious way to tell that a file is versioned or not:
Should their be? I don't think we need this information in the sidebar, but I think you might well be interested if you're looking at an individual page. Thoughts @bkueng ? |
Yes it could be added to the individual page. |
This is the first part of the larger effort to provide compatibility between PX4 and ROS2 messages versions. See the high-level design document for this effort, authored by @bkueng
Changes:
msg/versioned/
directory, but output json / headers / source files were not movedMESSAGE_VERSION = 0
to all versioned messagesDocs
Wip: PX4/PX4-user_guide#3465