Python API: DataReaderQos does not have 'protocol' member

4 posts / 0 new
Last post
Offline
Last seen: 8 months 1 week ago
Joined: 06/07/2023
Posts: 5
Python API: DataReaderQos does not have 'protocol' member

Copying the message scheme implemented by our C++ code to Python, I tried to set up QoS on a DataReader. Running unit tests, I got an error that the DataReaderQos member has no attribute 'protocol'; and indeed, the Python API documentation does not show the protocol member.

<https://community.rti.com/static/documentation/connext-dds/7.1.0/doc/api/connext_dds/api_python/rti.connextdds.html?highlight=timebasedfilter#rti.connextdds.DataReaderQos>

Is this an oversight or a deliberate removal?

Howard's picture
Offline
Last seen: 5 days 21 hours ago
Joined: 11/29/2012
Posts: 618

I think that the mapping to Python is

"DataReaderProtocolQoS"

  1. __lshift__(self: rti.connextdds.DataReaderQos, arg0: rti.connextdds.DataReaderProtocol) -> rti.connextdds.DataReaderQos

Set the DataReaderProtocolQoS.

Offline
Last seen: 2 months 3 weeks ago
Joined: 04/02/2013
Posts: 196

It's also DataReaderQos.data_reader_protocol

Offline
Last seen: 8 months 1 week ago
Joined: 06/07/2023
Posts: 5

Thank you, Alex, that note helped me identify several changes:

`protocol` -> `data_reader_protocol` or `data_writer_protocol`

`resource_limits` -> `data_writer_resource_limits` (but *not* `data_reader_resource_limits`)

 

I have a similar new issue that is not so readily resolved. In our version 6 C++ code, some DataWriters are setting `data_writer_protocol.rtps_reliable_writer.min_heartbeat_response_delay` and `max_heartbeat_response_delay` values. These fields don't appear in either C++ nor Python APIs for version 7. Can you point me to any documentation about this change?