Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Industrial Internet of Things >> Internet of Things-technologie

Introductie van RTI Labs en Connector voor Connext DDS met Python

Er is veel gebeurd sinds dit oorspronkelijk gepubliceerd bericht. Wist je dat je nu toegang hebt tot DDS met Python of Javascript? U kunt de bètatesters van ons RTI Labs-programma bedanken voor het stimuleren van de vraag naar RTI Connector for Connext ® DDS is nu beschikbaar als onderdeel van de Connext-productsuite.

Deze week zijn we verheugd om RTI Labs aan te kondigen, een gratis programma dat onze klanten vroege toegang geeft tot nieuwe technologie die we ontwikkelen voor het industriële IoT. We noemen ze experimentele projecten. Klanten die profiteren van RTI Labs hebben de mogelijkheid om de volgende generatie technologie te benutten en onze productroadmap te beïnvloeden door feedback te geven over de experimentele functies. Het is een win-winsituatie!

We lanceren het programma met drie nieuwe experimentele projecten, waarvan de eerste RTI(R) Connector for Connext DDS is. Als je RTI Connext 5.3.0 al hebt gedownload en de RTI Launcher hebt gestart, zie je een paar nieuwe pictogrammen op het tabblad 'Lab'. Een van deze pictogrammen is voor Connector.

Als u op het Connector-pictogram klikt, gaat u naar de RTI Connector-pagina op de Community Portal. Connector is ontwikkeld door het onderzoeksteam van RTI om te helpen bij het maken van demo's en snel testen. Connector begon met de Lua-interface naar RTI Prototyper, en toen lieten we ons meeslepen en voegden ondersteuning toe voor scripttalen, zoals Python en JavaScript/node.js.

Maar wat is RTI Connector?

RTI Connector for Connext DDS is een snelle en gemakkelijke manier om toegang te krijgen tot de kracht en functionaliteit van RTI Connext DDS vanuit een groot aantal verschillende scripttalen, waaronder JavaScript, Python en Lua. Het bouwt voort op verschillende krachtige mogelijkheden van Connext DDS, waaronder het maken van XML-apps en dynamische gegevens.

Deze blogpost richt zich op de python-interface van RTI Connector, maar de meeste concepten zijn even gemakkelijk van toepassing op JavaScript/node.js als op lua/prototyper.

Gebruiksvoorbeelden

Er zijn veel gebruiksscenario's voor RTI Connector. Enkele van de gebruiksscenario's van early adopters zijn:

  • Testen : vaak wanneer u een complex gedistribueerd systeem ontwikkelt, zijn sommige componenten mogelijk niet gereed; In dit geval wordt Connector gebruikt om het gedrag van een DDS-component te emuleren die later of door een andere groep zal worden voltooid. Hierdoor kunt u componenten afzonderlijk testen, wat waardevol is wanneer u in een gedistribueerd team werkt, of wanneer u niet wilt wachten tot elk component is gebouwd voordat u gaat testen.
  • Prototyping: Bij softwareontwikkeling is het vaak nodig om een ​​idee te valideren voordat alle details beschikbaar zijn. Door gebruik te maken van een scripttaal zoals Python en een vereenvoudigde DDS API, wordt het heel eenvoudig en snel om een ​​demo of een proof of concept te ontwikkelen - met een orde van grootte minder code!
  • Gebruikersinterfaces: het ontwikkelen van eenvoudige gebruikersinterfaces (visualiseren of verzenden van DDS-gegevens met behulp van knoppen en eenvoudige triggers) wordt heel eenvoudig wanneer de RTI-connector is gekoppeld aan UI-technologie die beschikbaar is voor python, zoals python QT.
  • Integratie: Python en andere scripttalen hebben een gigantisch ecosysteem. Op het moment dat deze blog werd geschreven, had PyPl 112.439 pakketten. Als je iets probeert te integreren, is de kans groot dat er een python-pakket is dat je zal helpen en nu kun je Connector gebruiken om DDS te praten!
  • Uw gebruiksvoorbeeld hier: laat het ons weten als je RTI Connector op een andere manier gebruikt op ons forum!

Aan de slag met RTI

In deze blogpost gaan we ervan uit dat je enige bekendheid hebt met python. RTI Connector werkt zowel met python 3 als met <3. Het wordt ondersteund op alle grote bedrijfssystemen en ook op boards zoals de Raspberry Pi. U kunt de lijst met beschikbare platforms hier bekijken. Als je ondersteuning nodig hebt voor iets anders, aarzel dan niet om het op het forum te vragen. Om RTI Connector for Connext DDS in python te installeren, kunt u het pakket gebruiken dat beschikbaar is op PyPI:

 pip install rticonnextdds_connector

Een andere manier is om gewoon de repository te klonen:

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

In de repository vindt u ook enkele voorbeelden om u op weg te helpen:

  • simple/writer.js:laat zien hoe u een schrijver maakt, een instantie instelt en voorbeelden publiceert.
  • simple/reader.js:laat zien hoe je een lezer kunt krijgen, voorbeelden kunt krijgen en toegang kunt krijgen tot de inhoud ervan.
  • simple/read_and_write.py:laat zien hoe je een voorbeeld schrijft voor elke ontvangen na het omkeren van twee velden.
  • mixed/:deze voorbeelden worden periodiek bijgewerkt en bevatten verschillende voorbeelden over hoe toegang te krijgen tot de lengte van een reeks, hoe wait() te gebruiken en meer.

API-overzicht

Laten we eens kijken hoe de API eruitziet. Als je meer gedetailleerde informatie wilt, kun je de README bekijken in onze GitHub-repository.

Het eerste dat u moet doen, is de RTI Connector-bibliotheek importeren:

 importeer rticonnextdds_connector als rti 

Nadat u een verwijzing naar RTI Connector heeft, kunt u de API aanroepen om een ​​nieuwe Connector te maken:

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

De eerste string is de naam van de configuratie die u wilt gebruiken, terwijl de tweede string het XML-bestand is dat de XML-Base App Creation-configuratie bevat. Je kunt hier een voorbeeld van dat bestand zien.

Zodra de connector is gemaakt, hebt u toegang tot alle gegevensschrijvers met behulp van de getOutput-API:

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

of u kunt op dezelfde manier toegang krijgen tot de gegevenslezers:

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

Beide API's krijgen één string als parameter die de naam van de entiteit vertegenwoordigt zoals deze is gedefinieerd in het XML-bestand.

Zodra u een verwijzing naar de Data Writer heeft (uitvoer in ons voorbeeld), kunt u de velden van de bijbehorende instantie instellen. Je kunt dat doen door een woordenboek door te geven:

 output.instance.setDictionary(sample); 

of door elk veld afzonderlijk in te stellen:

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

Aan de kant van de gegevenslezer (invoer in dit voorbeeld), kunt u read of take noemen:

invoer.read();

of

invoer.take();

Vervolgens kunt u de ontvangen voorbeelden doorlopen:

 numOfSamples =input.samples.getLength(); 

voor j binnen bereik (1, numOfSamples+1):
als input.infos.isValid(j):
x =input.samples.getNumber(j, "x");
y =input.samples.getNumber(j, "y");
....

Een voorbeeld kan op twee manieren worden geopend. Als woordenboek:

 voorbeeld =input.samples.getDictionary(j);

of veld voor veld:

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

Vergeet niet om de toegang tot uw Connector te beveiligen als u multithreading-bibliotheken gebruikt. Je kunt hier een voorbeeld vinden om dit te doen.

Al deze kracht komt met grenzen

RTI Connector is geweldig en kan veel uitdagingen oplossen! Maar, zoals alles, is het niet perfect voor alles. Het heeft een beperkte set API's:sommige dingen die u met Connext DDS Pro kunt doen, kunnen niet worden gedaan met de RTI Connector. Het werkt alleen met dynamische gegevens en niet met gecompileerde typen. Om het gebruiks- en overdraagbaar te maken, hebben we een aantal aannames gedaan met het oog op specifieke use-cases. Het is mogelijk dat het uw specifieke use-case niet oplost of dat het niet de meest efficiënte manier is om het op te lossen, maar we hebben waarschijnlijk een andere tool of service voor uw specifieke probleem:vraag het ons!

Hoeveel?

Je vraagt ​​je misschien af ​​wat deze technologie gaat kosten... het is gratis!! Je kunt het gewoon krijgen en ermee experimenteren. Het enige dat we van u vragen, is dat u ons uw feedback en suggesties geeft. D

[1] [2] 下一页

Internet of Things-technologie

  1. Open DDS versus RTI DDS-software
  2. Telegraf-plug-in voor Connext DDS:bouw een tijdreeksbewakingssysteem met DDS en InfluxDB
  3. Connex 6:Nu beschikbaar!
  4. Connext DDS en het industriële IoT:de 5 belangrijkste dingen om te weten
  5. Aankondiging van de nieuwste RTI Perftest voor Connext DDS
  6. Dit is waarom iedereen RTI Connext DDS gebruikt voor autonome voertuigen
  7. Onze 7 beste bronnen voor IIoT-ontwikkelaars van 2017
  8. Hoe industriële IoT-systemen te ontwerpen met DDS en LabVIEW 2017
  9. Aan de slag met Connext DDS - ELI5, alstublieft.
  10. Botten bouwen met Raspberry Pi en Python
  11. type() en isinstance() in Python met voorbeelden