embedded-software-laboratory / embeddedRTPS-STM32

29 stars 16 forks source link

[Question] Does embeddedRTPS work with cyclonedds? #17

Open lisserjio opened 1 year ago

lisserjio commented 1 year ago

Hello!

I'm trying to make a connection between CycloneDDS on linux and embeddedRTPS on STM32F765 on custom board.

The thing is that embeddedRTPS works absolutely fine with it's linux software and I'm able to connect and send data any to and from board, but when I try to connect embeddedRTPS board and CycloneDDS on linux, there is no connection at all. I've checked that messages are sent and received on board's side and SDPD agent works fine, but no SEDP agent activity is visible.

So my question can be summarized into: "Has anyone tried that before me and if this connection is possible?"

akampmann commented 1 year ago

Hi @lisserjio

I have never tested interoperability with CycloneDDS, only FastDDS. I'm happy to look at a Wireshark recording, if you provide one. Please start capturing before launching the STM32 to record the full discovery process.

lisserjio commented 1 year ago

@akampmann Thanks a lot for your quick answer and assistance.

I'll record some fresh logs a bit later, but I can provide some old test logs now. I hope it will be helpful. Linux machine is 192.168.88.100 in this recordings and stm32 board is 192.168.88.95. The logs are for CycloneDDS+embeddedRTPS and FastDDS+embeddedRTPS accordingly.

I have noticed that protocol versions mismatch for Cyclone+embedded and cyclone sends READER_ENTITY_ID_UNKNOWN. That's two major differences I've found.

rtps_cyclone_plus_embedded.zip

akampmann commented 1 year ago

Could you give this branch a try:

https://github.com/embedded-software-laboratory/embeddedRTPS/tree/feature/cyclonedds/

I haven't tested this yet, most certainly READER_ENTITY_ID_UNKNOWN is the issue, which should be fixed in that branch.

You may need to update your config since I've added some additional parameters in the source branch:

https://github.com/embedded-software-laboratory/embeddedRTPS/blob/feature/cyclonedds/include/rtps/config_stm.h