TopicForge 0.5.4
First run of the DDS code against a live bus (Windows 11, a Python / Cyclone DDS
participant and a Rust / Dust DDS participant). It exposed four defects that
left the DDS module non-functional on Cyclone; all are fixed and tested.
Fixed
list_participantsreports the participant name and hostname on Cyclone
(both were always null).- Participant GUIDs were never read, so every participant collapsed onto one
unknownentry. - Vendors were never identified. The vendor id is now read from the GUID prefix;
Dust DDS and RTI by default still reportunknown. - The OMG vendor-id table mapped Fast DDS and Cyclone to the wrong ids (now
01.0Fand01.10). The Fast DDS side is verified statically only. ParticipantInfo.vendoralso acceptsrti_micro,opensplice,opendds,
coredx,intercomanddust.detect_qos_mismatchesnever reported anything on Cyclone because policy
class names were not normalized.- A stopped participant never disappeared; departed participants and endpoints
are now dropped. - The Cyclone adapter leaked a reader per tool call and waited 2 s each; it now
keeps one reader per builtin topic. peek_dds_samplesonDCPSPublication/DCPSSubscriptionlisted endpoints
of participants that had left, and now includes the endpointtype_name.- Example role nodes published below their rate on Windows.
Added
examples/dds/: fourteen runnable examples (concepts and use cases), all
passing on a live bus.scripts/integration/: a demo driver, twelve interop programs (Cyclone, Dust,
Fast DDS, RTI, OpenSplice), one-command setup scripts and CI workflows. Only
Cyclone Python and Dust Rust / Python / C have been run, on Windows.
Removed
- The docker / scenario integration rig, replaced by the demo driver.