Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial Internet of Things >> Internet der Dinge-Technologie

Einführung von RTI Labs und Connector für Connext DDS mit Python

Es ist viel passiert seit dies war Beitrag ursprünglich veröffentlicht. Wussten Sie, dass Sie jetzt mit Python oder Javascript auf DDS zugreifen können? Sie können den Betatestern unseres RTI Labs-Programms dafür danken, dass sie die Nachfrage als RTI Connector für Connext ® . gesteigert haben DDS ist jetzt als Teil der Connext-Produktsuite verfügbar.

Diese Woche freuen wir uns, RTI Labs ankündigen zu können, ein kostenloses Programm, das unseren Kunden frühzeitig Zugang zu neuen Technologien bietet, die wir für das industrielle IoT entwickeln. Wir nennen sie experimentelle Projekte. Kunden, die RTI Labs nutzen, haben die Möglichkeit, Technologien der nächsten Generation zu nutzen und unsere Produkt-Roadmap zu beeinflussen, indem sie Feedback zu den experimentellen Funktionen geben. Es ist eine Win-Win-Situation!

Wir starten das Programm mit drei neuen experimentellen Projekten, von denen das erste RTI (R) Connector für Connext DDS ist. Wenn Sie RTI Connext 5.3.0 bereits heruntergeladen und den RTI Launcher gestartet haben, sehen Sie im Reiter „Lab“ ein paar neue Symbole. Eines dieser Symbole ist für Connector.

Wenn Sie auf das Connector-Symbol klicken, gelangen Sie zur RTI-Connector-Seite im Community-Portal. Connector wurde vom Forschungsteam von RTI entwickelt, um bei der Erstellung von Demos und schnellen Tests zu helfen. Connector begann mit der Lua-Schnittstelle zu RTI Prototyper, und dann haben wir uns hinreißen lassen und Unterstützung für Skriptsprachen wie Python und JavaScript/node.js hinzugefügt.

Aber was ist RTI Connector?

RTI Connector für Connext DDS ist eine schnelle und einfache Möglichkeit, über eine Vielzahl verschiedener Skriptsprachen, einschließlich JavaScript, Python und Lua, auf die Leistungsfähigkeit und Funktionalität von RTI Connext DDS zuzugreifen. Es baut auf mehreren leistungsstarken Funktionen von Connext DDS auf, darunter XML-App-Erstellung und dynamische Daten.

Dieser Blogbeitrag konzentriert sich auf die Python-Schnittstelle von RTI Connector, aber die meisten Konzepte lassen sich genauso gut auf JavaScript/node.js und lua/prototyper anwenden.

Anwendungsfälle

Es gibt viele Anwendungsfälle für RTI Connector. Einige der Anwendungsfälle von Early Adopters sind:

Erste Schritte mit RTI

In diesem Blogbeitrag gehen wir davon aus, dass Sie bereits mit Python vertraut sind. RTI Connector funktioniert sowohl mit Python 3 als auch <3. Er wird auf allen großen Enterprise-Systemen und auch auf Boards wie dem Raspberry Pi unterstützt. Die Liste der verfügbaren Plattformen können Sie hier einsehen. Wenn Sie Unterstützung für etwas anderes benötigen, zögern Sie nicht, im Forum nachzufragen. Um RTI Connector für Connext DDS in Python zu installieren, können Sie das auf PyPI verfügbare Paket verwenden:

 pip install rticonnextdds_connector

Eine andere Möglichkeit besteht darin, das Repository einfach zu klonen:

git-Klon https://github.com/rticommunity/rticonnextdds-connector.git

Im Repository finden Sie auch einige Beispiele für den Einstieg:


API-Übersicht

Sehen wir uns an, wie die API aussieht. Wenn Sie detailliertere Informationen wünschen, können Sie die README in unserem GitHub-Repository anzeigen.

Als erstes müssen Sie die RTI Connector-Bibliothek importieren:

 rticonnextdds_connector als rti . importieren 

Nachdem Sie einen Verweis auf RTI Connector haben, können Sie die API aufrufen, um einen neuen Connector zu erstellen:

 Connector =rti.Connector("MyParticipantLibrary::Zero","./ShapeExample.xml"); 

Der erste String ist der Name der Konfiguration, die Sie verwenden möchten, während der zweite String die XML-Datei ist, die die XML-Base-App-Erstellungskonfiguration enthält. Ein Beispiel für diese Datei können Sie hier sehen.

Sobald der Connector erstellt wurde, können Sie mit der getOutput-API auf alle Data Writer zugreifen:

 output =connector.getOutput("MyPublisher::MySquareWriter") 

oder Sie können auf die gleiche Weise auf die Datenleser zugreifen:

 input =connector.getInput("MySubscriber::MySquareReader"); 

Beide APIs erhalten einen String als Parameter, der den Namen der Entität darstellt, wie er in der XML-Datei definiert wurde.

Sobald Sie eine Referenz auf den Data Writer haben (Ausgabe in unserem Beispiel), können Sie die Felder der zugehörigen Instanz setzen. Sie können dies tun, indem Sie ein Wörterbuch übergeben:

 output.instance.setDictionary(Beispiel); 

oder indem Sie jedes Feld einzeln einstellen:

 output.instance.setNumber("y", 2);

Auf der Seite des Datenlesers (in diesem Beispiel Eingabe) können Sie read oder take aufrufen:

 input.read();

oder

 input.take();

Dann können Sie die erhaltenen Beispiele durchlaufen:

 numOfSamples =input.samples.getLength(); 

für j im Bereich (1, numOfSamples+1):
if input.infos.isValid(j):
x =input.samples.getNumber(j, "x");
y =input.samples.getNumber(j, "y");
....

Auf ein Beispiel kann auf zwei Arten zugegriffen werden. Als Wörterbuch:

 probe =input.samples.getDictionary(j);

oder Feld für Feld:

 y =input.samples.getNumber(j, "y"); 
size =input.samples.getNumber(j, "shapesize");

Denken Sie daran, den Zugriff auf Ihren Connector zu schützen, wenn Sie Multithreading-Bibliotheken verwenden. Ein Beispiel dafür finden Sie hier.

All diese Macht hat Grenzen

RTI Connector ist großartig und kann viele Herausforderungen lösen! Aber wie alles ist es nicht für alles perfekt. Es hat eine begrenzte Anzahl von APIs:Einige Dinge, die Sie mit Connext DDS Pro tun können, können mit dem RTI Connector nicht durchgeführt werden. Es funktioniert nur mit dynamischen Daten und nicht mit kompilierten Typen. Um die Verwendung und die Portierung zu vereinfachen, haben wir einige Annahmen getroffen, die bestimmte Anwendungsfälle berücksichtigen. Es kann sein, dass dies Ihren speziellen Anwendungsfall nicht löst oder nicht der effizienteste Weg ist, ihn zu lösen, aber wir haben wahrscheinlich ein anderes Tool oder einen anderen Dienst dafür Ihr konkretes Anliegen:Fragen Sie uns einfach!

[1] [2] 下一页

Internet der Dinge-Technologie

  1. Open DDS vs. RTI DDS-Software
  2. Telegraf-Plugin für Connext DDS:Erstellen Sie ein Zeitreihen-Überwachungssystem mit DDS und InfluxDB
  3. Verbindung 6:Jetzt verfügbar!
  4. Connext DDS und das industrielle IoT:Die 5 wichtigsten Dinge, die Sie wissen sollten
  5. Ankündigung des neuesten RTI-Perftest für Connext DDS
  6. Hier ist, warum jeder RTI Connext DDS für autonome Fahrzeuge verwendet
  7. Unsere Top-7-Ressourcen für IIoT-Entwickler 2017
  8. So entwerfen Sie industrielle IoT-Systeme mit DDS und LabVIEW 2017
  9. Roboter bauen mit Raspberry Pi und Python
  10. type() und isinstance() in Python mit Beispielen