As the documents are shown in https://community.rti.com/static/documentation/connext-dds/6.0.1/api/connext_dds/api_python/intro.html, we have some initial tests (prototype) on DDS Python APIs, based on Connext DDS v6.0.1. It is very nice we might use Python much easier. But it seems we can NOT access 'enum' variables in a 'Base' IDL, which is shown as follows.
FYI, from the 'fields', it is correctly showing all 'enum' variables, including 'eb' in struct 'Base' and 'ec' in struct 'C'
>>> print([v for v in sample.fields()])
Could you help to confirm whether it is an issue? And any quick solutions? (As you might know, we can not change the IDL for Python usually.)
// IDL files: EE.idl, Base.idl, C.idl
// EE.idl
module bbb {
enum EE {
A,
B
};
};
// Base.idl
module bbb {
struct Base {
EE eb; // reporting: member 'eb' doesn't exist.
long i; // works as expected
};
};
// C.idl
module ccc {
struct C : bbb::Base {
bbb::EE ec; // works as expected
long c;
};
};
It looks like we have a bug in accessing enumerated members in a Base class. This is currently under investigation.
Reproducer that mimics IDL code above (with slight changes):
The above reproducer code is based on the xml_application example provided with the RTI Python API.