cyclonedds
cyclonedds copied to clipboard
Deserialization of sample failed due to reasons unknown, possibly related to a sequence
I am using the cyclonedds python bindings to test some proof of concept connectivity and processes to another machine. That machine has a production standard interface (that I have no control over) which sends a topic with mocked up IDL similar to below (unable to share the full IDL).
struct ContributingData {
string sensorName;
short dataItemIndex;
};
typedef sequence<ContributingData, 20> ContributingDataType;
struct Data {
short systemDataIndex;
int dataValue;
ContributingDataType contributingSensors;
};
On a machine running OSPL Test I can receive samples from the production VM, and if I create a sample with the same data on the Test VM I can also receive that at OSPL Test. However the packets from the Production VM on the Test VM produce the error "Unable to deserialize TopicName (reasons unknown)." I think that packets from the Test VM are received at the Production Machine and return the OSPL Error "Malformed Packet", but I am not able to monitor this in real time with any great ease.
It appears that there is something wrong in the serialization, possibly in the IDLC generated python code (I note that at least one of the members is named format which is a Python built in function). However other errors along these lines appear to point to sequences, but I am not sure where to start with debugging.
Any help greatly appreciated! For additional context I have successfully communicated to this machine from cyclonedds using topics not containing populated sequences. But this is the first data type I am receiving that has a populated sequence.