Presentación de RTI Labs y Connector para Connext DDS con Python
Han pasado muchas cosas desde que se hizo publicación publicada originalmente. ¿Sabía que ahora puede acceder a DDS mediante Python o Javascript? Puede agradecer a los probadores beta de nuestro programa RTI Labs por impulsar su demanda como conector RTI para Connext
®
DDS ahora está disponible como parte del paquete de productos Connext.
Esta semana nos complace anunciar RTI Labs, un programa gratuito que brinda a nuestros clientes acceso temprano a la nueva tecnología que estamos desarrollando para el IoT industrial. Los llamamos proyectos experimentales. Los clientes que aprovechan RTI Labs tienen la oportunidad de aprovechar la tecnología de próxima generación e influir en nuestra hoja de ruta de productos al proporcionar comentarios sobre las funciones experimentales. ¡Es una situación en la que todos ganan!
Estamos lanzando el programa con tres nuevos proyectos experimentales, siendo el primero el conector RTI (R) para Connext DDS. Si ya descargó RTI Connext 5.3.0 e inició RTI Launcher, verá algunos iconos nuevos en la pestaña "Laboratorio". Uno de estos iconos es para Connector.
Al hacer clic en el icono del conector, accederá a la página del conector RTI en el portal de la comunidad. Connector fue desarrollado por el equipo de investigación de RTI para ayudar con la creación de demostraciones y pruebas rápidas. Connector comenzó con la interfaz Lua para RTI Prototyper, y luego nos dejamos llevar y agregamos soporte para lenguajes de scripting, como Python y JavaScript / node.js.
Pero, ¿qué es el conector RTI?
Conector RTI para Connext DDS es una forma rápida y fácil de acceder al poder y la funcionalidad de RTI Connext DDS desde una variedad de lenguajes de secuencias de comandos diferentes, incluidos JavaScript, Python y Lua. Se basa en varias capacidades poderosas de Connext DDS, incluida la creación de aplicaciones XML y datos dinámicos.
Esta publicación de blog se centra en la interfaz de Python del conector RTI, pero la mayoría de los conceptos se aplican con la misma facilidad a JavaScript / node.js y a lua / prototyper.
Casos de uso
Hay muchos casos de uso para el conector RTI. Algunos de los casos de uso de los primeros usuarios incluyen:
- Pruebas : a menudo, cuando está desarrollando un sistema distribuido complejo, es posible que algunos de los componentes no estén listos; En este caso, Connector se utiliza para emular el comportamiento de un componente DDS que será completado más tarde o por otro grupo. Esto le permite probar componentes de forma aislada, lo cual es valioso cuando trabaja en un equipo distribuido o cuando no desea esperar hasta que todos los componentes estén compilados antes de realizar la prueba.
- Creación de prototipos: En el desarrollo de software, a menudo se requiere validar una idea antes de que todos los detalles estén disponibles. Usando un lenguaje de scripting como Python y una API DDS simplificada, haga que sea muy simple y rápido desarrollar una demostración o una prueba de concepto - ¡usando un orden de magnitud de código menor!
- Interfaces de usuario: Desarrollar interfaces de usuario simples (visualizar o enviar datos DDS mediante botones y activadores simples) se vuelve realmente fácil cuando el conector RTI está emparejado con la tecnología de interfaz de usuario disponible para Python, como Python QT.
- Integración: Python y otros lenguajes de secuencias de comandos vienen con un ecosistema enorme. En el momento en que se escribió este blog, PyPl tenía 112,439 paquetes. Si está tratando de integrar algo, es muy probable que haya un paquete de Python que lo ayude y ahora puede usar Connector para hablar con DDS.
- Su caso de uso aquí: Háganos saber si está utilizando RTI Connector de una manera diferente en nuestro foro.
Empiece a utilizar RTI
En esta publicación de blog asumimos que está familiarizado con Python. El conector RTI funciona tanto con python 3 como con <3. Es compatible con todos los principales sistemas empresariales y también con placas como Raspberry Pi. Puedes ver la lista de plataformas disponibles aquí. Si necesita ayuda para algo más, no dude en preguntar en el foro. Para instalar el conector RTI para Connext DDS en python, puede usar el paquete disponible en PyPI:
instalación de pip rticonnextdds_connector
Otra forma es simplemente clonar el repositorio:
clon de git https://github.com/rticommunity/rticonnextdds-connector.git
En el repositorio también encontrará algunos ejemplos para comenzar:
- simple / writer.js:muestra cómo crear un escritor, configurar una instancia y publicar muestras.
- simple / reader.js:demuestra cómo conseguir un lector, obtener muestras y acceder a su contenido.
- simple / read_and_write.py:muestra cómo escribir una muestra para cada uno recibido después de invertir dos campos.
- mixto /:estos ejemplos se actualizan periódicamente y contienen diferentes ejemplos sobre cómo acceder a la longitud de una secuencia, cómo usar wait () y más.
Descripción general de la API
Veamos cómo se ve la API. Si desea información más detallada, puede ver el archivo README en nuestro repositorio de GitHub.
Lo primero que debe hacer es importar la biblioteca del conector RTI:
importar rticonnextdds_connector como rti
Después de tener una referencia al conector RTI, puede llamar a la API para crear un nuevo conector:
conector =rti.Connector ("MyParticipantLibrary ::Zero", "./ ShapeExample.xml");
La primera cadena es el nombre de la configuración que desea usar, mientras que la segunda cadena es el archivo XML que contiene la configuración de creación de aplicaciones XML-Base. Puede ver un ejemplo de ese archivo aquí.
Una vez creado el conector, puede acceder a todos los escritores de datos mediante la API getOutput:
output =connector.getOutput ("MyPublisher ::MySquareWriter")
o puede acceder a los lectores de datos de la misma manera:
input =connector.getInput ("MySubscriber ::MySquareReader");
Ambas API obtienen una cadena como parámetro que representa el nombre de la entidad tal como se definió en el archivo XML.
Una vez que tenga una referencia al Data Writer (salida en nuestro ejemplo), puede configurar los campos de la instancia asociada. Puede hacerlo pasando un diccionario:
output.instance.setDictionary (muestra);
o configurando cada campo individualmente:
output.instance.setNumber ("y", 2);
En el lado del lector de datos (entrada en este ejemplo), puede llamar a leer o tomar:
input.read ();
o
input.take ();
Luego, puede iterar a través de las muestras recibidas:
numOfSamples =input.samples.getLength ();
para j en el rango (1, numOfSamples + 1):
si input.infos.isValid (j):
x =input.samples.getNumber (j, "x");
y =input.samples.getNumber (j, "y");
....
Se puede acceder a una muestra de dos formas. Como diccionario:
muestra =input.samples.getDictionary (j);
o campo por campo:
y =input.samples.getNumber (j, "y");
size =input.samples.getNumber (j, "tamaño de forma");
Recuerde proteger el acceso a su conector si utiliza bibliotecas de subprocesos múltiples. Puede encontrar un ejemplo de cómo hacer esto aquí.
Todo este poder viene con límites
¡El conector RTI es excelente y puede resolver muchos desafíos! Pero, como todo, no es perfecto para todo. Tiene un conjunto limitado de API:algunas cosas que puede hacer con Connext DDS Pro no se pueden hacer con el conector RTI. Solo funciona con datos dinámicos y no con tipos compilados. Para simplificar el uso y la portabilidad, hicimos algunas suposiciones teniendo en cuenta casos de uso específicos, puede que no resuelva su caso de uso específico o puede que no sea la forma más eficiente de resolverlo, pero probablemente tengamos otra herramienta o servicio para su problema específico:¡solo pregúntenos!
¿Cuánto?
Quizás se pregunte cuánto costará esta tecnología ... ¡¡es gratis !! Puedes conseguirlo y experimentar con él. Todo lo
Tecnología de Internet de las cosas
- Software Open DDS vs.RTI DDS
- Complemento Telegraf para Connext DDS:cree un sistema de monitoreo de series temporales con DDS e InfluxDB
- Connext 6:¡Ya disponible!
- Connext DDS y el IoT industrial:las cinco cosas principales que debe saber
- Anuncio de la última prueba de rendimiento de RTI para Connext DDS
- Aquí está la razón por la que todos usan RTI Connext DDS para vehículos autónomos
- Nuestros 7 recursos principales de 2017 para desarrolladores de IIoT
- Cómo diseñar sistemas de IoT industriales con DDS y LabVIEW 2017
- Introducción a Connext DDS - ELI5, por favor.
- Creación de robots con Raspberry Pi y Python
- type() y isinstance() en Python con ejemplos