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.

What it shows

  • The shared type is ShapeType.idl: @final, a @key string color and three longs — 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_QOS policy 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.

Was es zeigt

  • Der geteilte Typ ist ShapeType.idl: @final, ein @key string color und drei long — 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_QOS Policy 23.

Zuerst die ZeroDDS-Seite bauen

cargo build -p zerodds-dcps --example shapes_demo_publisher --example shapes_demo_subscriber

Verwandt