Cross-vendor ShapesDemo
Live RTPS interop on the OMG ShapesDemo type — each vendor's own publisher and subscriber, built with that vendor's own toolchain, run against ZeroDDS in both directions.
- Example:
cross-vendor-shapes - Repository: zero-dds-snippets
What it shows
- The shared type is
ShapeType.idl:@final, a@key string colorand threelongs — the canonical ShapesDemo wire form. - Verified live on one Linux host, RTPS-UDP, domain 0, topic
Square: CycloneDDS 11.0.1, Fast DDS 3.x, OpenDDS 3.34 and RTI Connext 7.7, both directions. - Two cells uncovered ZeroDDS conformance bugs, both fixed: DR1 — a reader announced only XCDR2 and silently dropped a Cyclone/legacy-RTI XCDR1 writer (OMG XTypes 1.3 §7.6.2 says a default reader accepts both). BE-GAP — a best-effort reader blocked forever on a leading sequence-number gap (RTPS §8.4.12.1 says skip it).
- The remaining two cells are vendor reader-side configuration: Fast DDS and RTI readers must opt into XCDR2 or they raise
INCOMPATIBLE_QOSpolicy 23.
Build the ZeroDDS side first
cargo build -p zerodds-dcps --example shapes_demo_publisher --example shapes_demo_subscriber
See also
Cross-Vendor — ShapesDemo
Live-RTPS-Interop auf dem OMG-ShapesDemo-Typ — der eigene Publisher und Subscriber jedes Vendors, mit dessen eigener Toolchain gebaut, in beide Richtungen gegen ZeroDDS gefahren.
- Beispiel:
cross-vendor-shapes - Repository: zero-dds-snippets
Was es zeigt
- Der geteilte Typ ist
ShapeType.idl:@final, ein@key string colorund dreilong— die kanonische ShapesDemo-Wire-Form. - Live verifiziert auf einem Linux-Host, RTPS-UDP, Domain 0, Topic
Square: CycloneDDS 11.0.1, Fast DDS 3.x, OpenDDS 3.34 und RTI Connext 7.7, beide Richtungen. - Zwei Zellen deckten ZeroDDS-Konformanzfehler auf, beide gefixt: DR1 — ein Reader kündigte nur XCDR2 an und verwarf einen Cyclone-/Legacy-RTI-XCDR1-Writer still (OMG XTypes 1.3 §7.6.2: ein Default-Reader nimmt beide an). BE-GAP — ein Best-Effort-Reader blockierte dauerhaft auf einer führenden Sequenznummern-Lücke (RTPS §8.4.12.1: überspringen).
- Die beiden übrigen Zellen sind Reader-seitige Vendor-Konfiguration: Fast-DDS- und RTI-Reader müssen XCDR2 aktiv annehmen, sonst melden sie
INCOMPATIBLE_QOSPolicy 23.
Zuerst die ZeroDDS-Seite bauen
cargo build -p zerodds-dcps --example shapes_demo_publisher --example shapes_demo_subscriber