diff --git a/src/modules/zenoh/publishers/uorb_publisher.hpp b/src/modules/zenoh/publishers/uorb_publisher.hpp index d96f8a6db6..c924d7aef5 100644 --- a/src/modules/zenoh/publishers/uorb_publisher.hpp +++ b/src/modules/zenoh/publishers/uorb_publisher.hpp @@ -78,10 +78,10 @@ public: memcpy(buf, ros2_header, sizeof(ros2_header)); dds_ostream_t os; - os.m_buffer = buf; - os.m_index = (uint32_t)sizeof(ros2_header); + os.m_buffer = &buf[4]; + os.m_index = 0; os.m_size = (uint32_t)sizeof(ros2_header) + _uorb_meta->o_size + CDR_SAFETY_MARGIN; - os.m_xcdr_version = DDSI_RTPS_CDR_ENC_VERSION_2; + os.m_xcdr_version = DDSI_RTPS_CDR_ENC_VERSION_1; if (dds_stream_write(&os, &dds_allocator, diff --git a/src/modules/zenoh/subscribers/uorb_subscriber.hpp b/src/modules/zenoh/subscribers/uorb_subscriber.hpp index 694193d718..b9ba7f1c06 100644 --- a/src/modules/zenoh/subscribers/uorb_subscriber.hpp +++ b/src/modules/zenoh/subscribers/uorb_subscriber.hpp @@ -80,8 +80,8 @@ public: if (z_bytes_get_contiguous_view(payload, &view) == Z_OK) { const uint8_t *ptr = z_slice_data(z_loan(view)); - dds_istream_t is = {.m_buffer = (unsigned char *)(ptr), .m_size = static_cast(len), - .m_index = 4, .m_xcdr_version = DDSI_RTPS_CDR_ENC_VERSION_2 + dds_istream_t is = {.m_buffer = (unsigned char *)(ptr + 4), .m_size = static_cast(len), + .m_index = 0, .m_xcdr_version = DDSI_RTPS_CDR_ENC_VERSION_1 }; dds_stream_read(&is, data, &dds_allocator, _cdr_ops); @@ -92,8 +92,8 @@ public: z_bytes_reader_t reader = z_bytes_get_reader(payload); z_bytes_reader_read(&reader, reassembled_payload, len); - dds_istream_t is = {.m_buffer = reassembled_payload, .m_size = static_cast(len), - .m_index = 4, .m_xcdr_version = DDSI_RTPS_CDR_ENC_VERSION_2 + dds_istream_t is = {.m_buffer = &reassembled_payload[4], .m_size = static_cast(len), + .m_index = 0, .m_xcdr_version = DDSI_RTPS_CDR_ENC_VERSION_1 }; dds_stream_read(&is, data, &dds_allocator, _cdr_ops); }