Micro-XRCE-DDS
Micro-XRCE-DDS copied to clipboard
Incompatibilities in binary entity representation
This is probably also something for v3.0.0, but Micro-XRCE-DDS does not follow the official dds_xrce_types.idl exactly for the binary entity representation:
OBJK_Topic_Binary
The official definition is
struct OBJK_Topic_Binary {
string<256> topic_name;
@optional string<256> type_reference;
@optional DDS:XTypes::TypeIdentifier type_identifier;
};
But Micro-XRCE-DDS uses
struct OBJK_Topic_Binary {
string<256> topic_name;
@optional string<256> type_reference;
@optional string<256> type_name;
};
I think type_reference
should contain the type name currently stored in type_name
. And type_name
should be replaced by type_identifier
.
OBJK_DataWriter_Binary_Qos
The official definition is
struct OBJK_DataWriter_Binary_Qos : OBJK_Endpoint_Binary_Qos {
@optional unsigned long ownership_strength;
};
but Micro-XRCE-DDS uses
struct OBJK_DataWriter_Binary_Qos : OBJK_Endpoint_Binary_Qos {
@optional unsigned long long ownership_strength;
};
OBJK_DataReader_Binary_Qos
The official definition is
struct OBJK_DataReader_Binary_Qos : OBJK_Endpoint_Binary_Qos {
@optional unsigned long timebasedfilter_msec;
@optional string contentbased_filter;
};
but Micro-XRCE-DDS uses
struct OBJK_DataReader_Binary_Qos : OBJK_Endpoint_Binary_Qos {
@optional unsigned long long timebasedfilter_msec;
@optional string contentbased_filter;
};
OBJK_DataReader_Binary and OBJK_DataWriter_Binary
The official definition is
struct OBJK_DataReader_Binary {
string topic_name;
@optional OBJK_DataReader_Binary_Qos qos;
};
and similar for OBJK_DataWriter_Binary, but Micro-XRCE-DDS uses
struct OBJK_DataReader_Binary {
ObjectId topic_id;
@optional OBJK_DataReader_Binary_Qos qos;
and similar for OBJK_DataWriter_Binary.
Adding to v3.0.0 milestone