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? |
bkueng
left a comment
There was a problem hiding this comment.
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.
| sh('rm -f px4_msgs/msg/versioned/*.msg') | ||
| 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.
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.
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: |
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 = 0to all versioned messagesDocs
Wip: PX4/PX4-user_guide#3465