rtiddsgen for micro dds 2.4.4 igores enumeration constants when generating typedef for enum. The attached h files are generated from RTI Connext 5.2.0 and RTI micro DDS 2.4.4. Note that for the file from micro DDS, the constant expressions for the enumerators are missing.
"C:\Program Files\rti_connext_micro.2.4.4\rtiddsgen\scripts\rtiddsgen" -language microC -replace DDSTypesBus.idl
"C:\Program Files\rti_connext_dds-5.2.0\bin\rtiddsgen" -language C -verbosity 3 -replace DDSTypesBus.idl
Attachment | Size |
---|---|
header file generated by rtiddsgen for 5.2.0 | 4.23 KB |
IDL file | 456 bytes |
header file generated by rtiddsgen for micro 2.4.4 | 3.04 KB |
There seems to be an error in the templates used by rtiddsgen to generate code for enum types in RTI Connext Micro 2.4.4
A temporary solution consists in changing file rti_connext_micro.2.4.4/resource/rtiddsgen/templates/micro_c/typeMacros.vm, at line 59, from
member.name #if($member.autoOrdinal.equals("false")) = $member.ordinal#end
to
$member.name #if($member.autoOrdinal == "false") = $member.ordinal#end
and then regenerate the type support code. The preferred way to do this is:
/path/to/rtiddsgen -language C -micro -replace MyTypes.idl
The option "-language microC" is still supported but only for backward compatibility with previous versions.
That worked. Thanks for the quick response.
Mark.