Replies: 5 comments 4 replies
-
Hello @layemiao, We moved your issue to discussion because it's a question and not an issue itself. Regarding your question, Fast-DDS Python does fully support shared memory communication. The scenario you described should work without any problems as long as you’re using matching versions. The only restriction is that shared memory isn’t supported if you mix Fast-DDS v2 with Fast-DDS v3, but that doesn’t apply to your current setup. |
Beta Was this translation helpful? Give feedback.
-
Hi again @layemiao, No example is needed because shared memory is used as default, if possible, without needing to do anything. In this picture you can see how the transport layer of Fast-DDS, and so Fast-DDS-python, works: If you are using everything in the same host, it will use shared memory communication as default. If what you are meaning is using data loan (Zero-Copy communication), that it's not support with Fast-DDS-python. |
Beta Was this translation helpful? Give feedback.
-
Hi again @layemiao, It seems the issue comes from forcing shared memory in your C++ publisher but not applying the same configuration in your Python subscriber. You’re doing in C++:
In your Python subscriber, you must configure the QoS similarly, disabling built-in transports and pushing the shared-memory transport. Please check TransportConfigQos for Fast-DDS Python API and configure Additionally, I highly recommend configuring the Participant QoS via an XML file and applying it to both the C++ Publisher and Python Subscriber. This ensures they use an identical transport configuration. Hope that helps! Let us know if it resolves your issue. |
Beta Was this translation helpful? Give feedback.
-
Hi @layemiao, Thanks for reaching out! The issue you're encountering stems from a limitation in the fastdds Python API, which doesn't allow full configuration of the transport QoS settings directly in code. Instead, you'll need to modify these settings via an XML configuration file. For more detailed information and examples on creating and configuring your XML file, please refer to the FastDDS XML Profiles documentation. If you have any further questions or need additional assistance, please don't hesitate to reply. |
Beta Was this translation helpful? Give feedback.
-
Glad to hear that, @layemiao! Since the issue has been resolved, I’ll be closing this discussion. Feel free to reopen it if needed. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Does Fast-DDS-python support communication through shared memory? What I want to achieve is to send data using the C++ version of FastDDS through shared memory and receive it using the shared memory of Fast-DDS-python. Both use the same version of FastDDS, which is 2.13.1, and the versions of fastddsgen and Fast-DDS-python are 3.2.1 and v1.4.2 respectively. Can Fast-DDS-python support the above function implementation? If so, are there any conditions or restrictions? Could you provide a shared memory example of Fast-DDS-python?
Beta Was this translation helpful? Give feedback.
All reactions