I'm running a DDS micro application (v 2.4.10) on a linux ARM system (compiled from source).
As participants, I also have an RTI Admin Console running on windows, and a custom application that is consuming the data that this application produces.
My DDS topic has a variable length sequence in it, as such:
module MyModule {
const long MAX_DATA_SIZE = 20000;
struct DataMessage {
sequence<long, MAX_DATA_SIZE> data;
};
};
In the example code below, I'm simplifying by using a constant "8" for the data length. It is really variable based on the input data.
I attempt to publish to this topic like this:
std::cout << "Instantiating MyModule_DataMessage" << std::endl;
MyModule_DataMessage msg;
std::cout <<"Setting msg.data.length(" << 8 << ")" << std::endl;
msg.data.length(8);
std::cout << "Length is " << 8 << std::endl;
MyModule_DataMessageDataWriter::narrow(dataWriter_)->write(msg, DDS_HANDLE_NIL);
However, the output I get is very interesting:
Instantiating MyModule_DataMessage
Setting msg.data.length(8)
[1520895931.646172999]ERROR: ModuleID=1 Errcode=105 X=0 E=1 T=1
<not found>/<not found>:-1/<not found>:
publishData: Length is 8
[1520895931.646231999]ERROR: ModuleID=1 Errcode=106 X=0 E=1 T=1
<not found>/<not found>:-1/<not found>:
[1520895931.646282999]ERROR: ModuleID=1 Errcode=106 X=0 E=1 T=1
<not found>/<not found>:-1/<not found>:
Other modules also report errors at other times. These are just the errors that occur when I attempt to set the data length on this sequence.
Here are the other ones that occur during my application's initialization - possibly during discovery or DDS setup:
[1520898029.191983000]ERROR: ModuleID=2 Errcode=12 X=0 E=1 T=1
<not found>/<not found>:-1/<not found>:
[1520898029.192051000]ERROR: ModuleID=7 Errcode=109 X=0 E=1 T=1
<not found>/<not found>:-1/<not found>:
[1520898029.192100000]ERROR: ModuleID=11 Errcode=45 X=0 E=1 T=1
<not found>/<not found>:-1/<not found>:
(these actually repeat about 5 or 6 times during init)