RTI Labs startet Python-fähigen Connector für Connext DDS – jetzt in der Connext Suite
Seit Erscheinen dieses Artikels hat sich viel geändert. Heute können Sie DDS direkt aus Python oder JavaScript nutzen – dank der Beta-Tester unseres RTI Labs Programms wurde RTI Connector für Connext® DDS in die Connext-Produktfamilie integriert.
Diese Woche freuen wir uns, RTI Labs vorzustellen, eine kostenlose Initiative, die unseren Kunden frühen Zugriff auf die nächste Generation Industrial-IoT-Technologie gibt. Die unter RTI Labs veröffentlichten Projekte sind experimentell und erlauben Teilnehmern, neue Ideen zu prototypen und die Roadmap unserer Produkte durch reales Feedback zu formen. Ein Win-Win für RTI und die Community.
Wir starten das Programm mit drei experimentellen Projekten, das erste ist RTI (R) Connector für Connext DDS. Wenn Sie bereits RTI Connext 5.3.0 heruntergeladen und den RTI Launcher gestartet haben, werden Sie neue Icons im „Lab“-Tab bemerken – eines davon ist das Connector-Icon.

Klicken Sie auf das Connector-Icon, öffnet sich die RTI Connector Seite auf dem Community Portal. Connector wurde von RTIs Research Team entwickelt, um Demo-Entwicklung und Rapid Testing zu beschleunigen. Es begann mit einem Lua-Interface zu RTI Prototyper und wurde seither auf Python und JavaScript/node.js erweitert.
Was ist RTI Connector?
RTI Connector für Connext DDS bietet ein leichtgewichtiges, scriptbares Interface zur vollen Power von RTI Connext DDS. Es unterstützt JavaScript, Python und Lua und baut auf Connexts XML App Creation und Dynamic Data Fähigkeiten auf. Während dieser Artikel sich auf die Python API fokussiert, gelten die gleichen Prinzipien für JavaScript/node.js und Lua/Prototyper.
Use Cases
Early Adopters haben Connector in mehreren Szenarien als wertvoll empfunden:
- Testing: Wenn Komponenten eines verteilten Systems nicht bereit sind, kann Connector fehlende DDS-Teile emulieren, was isoliertes Testen ermöglicht und Integrationsverzögerungen reduziert.
- Prototyping: Rasch Demos oder Proofs-of-Concept mit minimalem Code bauen – oft eine Größenordnung weniger als native Connext APIs.
- User Interfaces: Connector mit Python UI-Frameworks wie PyQt kombinieren, um einfache Dashboards zu erstellen, die DDS-Daten publizieren oder abonnieren.
- Integration: Pythons riesiges Ökosystem nutzen – PyPI hostet über 112.439 Pakete – um Third-Party-Funktionalität hinzuzufügen und über DDS zu kommunizieren.
- Sonstiges: Teilen Sie Ihren einzigartigen Use Case im RTI Community Forum und helfen Sie, zukünftige Enhancements zu formen.
Erste Schritte mit RTI
Das Folgende setzt grundlegende Python-Kenntnisse voraus. RTI Connector funktioniert mit Python 3 und früheren Releases, läuft auf allen Major-Enterprise-OS und wird auf Embedded-Boards wie Raspberry Pi unterstützt. Eine vollständige Plattformliste ist auf unserer Website verfügbar. Benötigen Sie Support für eine andere Umgebung, melden Sie sich im Forum.
Installieren Sie Connector von PyPI:
pip install rticonnextdds_connector
Alternativ Repository klonen:
git clone https://github.com/rticommunity/rticonnextdds-connector.git
Das Repository enthält mehrere ready-to-run Beispiele:
- simple/writer.js – Writer erstellen, Instanz setzen, Samples publizieren.
- simple/reader.js – Reader abrufen, Samples fetchen, Inhalt inspizieren.
- simple/read_and_write.py – Jedes Sample lesen, zwei Felder invertieren, zurückschreiben.
- mixed/ – Aktualisierte Beispiele zu Sequenzlängen, wait()-Usage und mehr.
API-Überblick
Für einen tieferen Einblick konsultieren Sie das README in unserem GitHub-Repository. Unten ist ein knapper Walkthrough der Kern-API.
Zuerst Connector-Bibliothek importieren:
import rticonnextdds_connector as rti
Connector-Instanz mit gewünschter Konfiguration und XML-Datei erstellen:
connector = rti.Connector("MyParticipantLibrary::Zero", "./ShapeExample.xml")
Der erste String benennt die Konfiguration, der zweite verweist auf eine XML-Base App Creation Datei. Eine Beispieldatei ist im Repository verfügbar.
Auf Data Writers via getOutput und Data Readers via getInput zugreifen:
output = connector.getOutput("MyPublisher::MySquareWriter") input = connector.getInput("MySubscriber::MySquareReader")
Beide Methoden akzeptieren den Entity-Namen wie in der XML definiert.
Felder auf einem Writer per Dictionary oder einzeln setzen:
output.instance.setDictionary(sample) output.instance.setNumber("y", 2)
Auf der Reader-Seite Samples mit read() oder take() abrufen, dann iterieren:
input.read() # or input.take() numOfSamples = input.samples.getLength() for j in range(1, numOfSamples+1): if input.infos.isValid(j): x = input.samples.getNumber(j, "x") y = input.samples.getNumber(j, "y") # …
Samples können auch als Dictionary zugegriffen werden:
sample = input.samples.getDictionary(j)
Bei Multithreading Connector-Zugriff schützen – Beispiele im Repository.
Limitierungen
Während RTI Connector viele Aufgaben vereinfacht, ist er absichtlich leichtgewichtig. Er unterstützt nur Dynamic Data, keine kompilierten Typen, und fehlt einige Advanced Features des vollen Connext DDS Pro Suites. Für spezialisierte Use Cases empfehlen wir, unsere Dokumentation zu prüfen oder Support für alternative Lösungen zu kontaktieren.
Kosten
RTI Connector ist kostenlos. Wir bitten nur um Feedback, um zukünftige Releases zu formen. Ihre Insights beeinflussen unsere Roadmap.
Fazit
Dieser Post bietet einen High-Level-Überblick über RTI Connector für Python. Der beste Weg zu lernen ist zu experimentieren – Paket herunterladen, Beispiele laufen lassen, Erfahrung im RTI Community Forum teilen. Ihr Feedback ist unschätzbar, während wir das Tool verfeinern und die nächste Feature-Generation planen.
Internet der Dinge-Technologie
- OpenDDS vs. RTI Connext DDS: Die richtige Data Distribution Service Lösung wählen
- Robustes Time-Series Monitoring bauen: RTI Connext DDS mit Telegraf und InfluxDB integrieren
- RTI Connext 6 jetzt verfügbar: Verbesserte Performance, Sicherheit und vereinheitlichte Konnektivität
- Connext DDS im Industrial IoT: 5 Schlüsselerkenntnisse für Zuverlässigkeit, Sicherheit und Skalierbarkeit
- RTI Perftest 2.4 veröffentlicht: Verbessertes Performance-Testing für Connext DDS
- Warum RTI Connext DDS die Middleware der Wahl für autonome Fahrzeuge ist
- Top 7 Ressourcen für Industrial IoT Entwickler – 2017 Edition
- Industrial IoT Systeme mit dem RTI DDS Toolkit in LabVIEW 2017 designen
- Roboter mit Raspberry Pi und Python bauen: Komplette Anleitung
- type() und isinstance() in Python verstehen: Praktische Beispiele