I want to use TRANSPORT_UNICAST QoS, I use rtiddsgen tool to make a simple demo, then just add this QoS to the USER_QOS_PROFILES.xml as follow:
after config qos, I run the Program,then DDS show some error message:
now I want to know what's wrong with that configuration? or should I config some other QoS to keep consistent with TRANSPORT_UNICAST QoS?
Thanks!
Hi,
The error messages indicate that the middleware is not able to find the transport you specified. This is because it is looking for a transport called
builtin.udpv4://192.168.0.1
which is not known by the middleware. The reason is that the<transports>
element should contain only the name of the transport (transport aliases), that is either a built-in one or one you have registered with the middleware. These "aliases" just select transport names, not the actual IP addresses/interfaces to use. For the case of the builtin UDPv4 transports it should be something like:I there a reason you are trying to limit the DataReader to only use the 192.168.0.1 interface? This is not needed in general and leaving it unspecified will make the application more portable.
I do not think we currently have a way to restrict the interface used by a specific DataReader. What we do provide is a way to restrict the interfaces used by the whole domain participant which will impact all the DataReader entities created by the DomainParticipant.
To restrict the interfaces used by the whole DomainParticipant you can use the DomainParticipant properties "dds.transport.UDPv4.builtin.parent.allow_interfaces_list" and/or "dds.transport.UDPv4.builtin.parent.deny_interfaces_list". There are examples of this in knowledge base: https://community.rti.com/forum-topic/how-do-i-configure-dds-work-multiple-network-interfaces and https://community.rti.com/kb/how-do-i-restrict-rti-connext-use-only-subset-interfaces
Gerardo
Many thanks Gerardo! I think I made a stupid mistake...
I have read the other two links you give and I know how to configure my QoS file.
thanks again.