RTI Labs Lança Connector Python para Connext DDS — Agora na Suíte Connext
Muito mudou desde que este artigo apareceu originalmente. Hoje você pode acessar DDS diretamente de Python ou JavaScript — graças aos beta testers do nosso programa RTI Labs, RTI Connector for Connext® DDS foi integrado à família de produtos Connext.
Esta semana estamos animados em introduzir RTI Labs, iniciativa gratuita que dá aos nossos clientes acesso antecipado à próxima geração de tecnologia Industrial IoT. Projetos lançados sob RTI Labs são experimentais, permitindo participantes prototiparem novas ideias e moldarem roadmap de nossos produtos através de feedback real-world. É win-win para RTI e comunidade.
Lançamos o programa com três projetos experimentais, e o primeiro é RTI (R) Connector for Connext DDS. Se você já baixou RTI Connext 5.3.0 e lançou o RTI Launcher, notará novos ícones na aba "Lab" — um deles é o ícone Connector.

Clicar no ícone Connector abre página RTI Connector no Portal da Comunidade. Connector foi criado pela Research Team da RTI para acelerar desenvolvimento de demos e testes rápidos. Começou com interface Lua para RTI Prototyper e desde então expandiu para suportar Python e JavaScript/node.js.
O Que é RTI Connector?
RTI Connector for Connext DDS fornece interface leve, scriptável ao poder total do RTI Connext DDS. Suporta JavaScript, Python e Lua, e constrói sobre capacidades XML App Creation e Dynamic Data do Connext. Embora este artigo foque na API Python, mesmos princípios aplicam a JavaScript/node.js e Lua/Prototyper.
Casos de Uso
Early adopters encontraram Connector valioso em vários cenários:
- Testing: Quando componentes de sistema distribuído não estão prontos, Connector pode emular partes DDS faltantes, permitindo testing isolado e reduzindo delays de integração.
- Prototyping: Construa rapidamente demos ou proofs of concept com código mínimo — frequentemente ordem de magnitude menos que APIs nativas Connext.
- User Interfaces: Combine Connector com frameworks Python UI como PyQt para criar dashboards simples que publicam ou subscrevem dados DDS.
- Integração: Aproveite vasto ecossistema Python — PyPI hospeda mais de 112.439 pacotes — para adicionar funcionalidade third-party e comunicar via DDS.
- Outros: Compartilhe seu caso de uso único no RTI Community Forum e ajude moldar futuros aprimoramentos.
Começando Com RTI
O seguinte assume familiaridade básica com Python. RTI Connector funciona com Python 3 e releases anteriores, roda em todos major enterprise operating systems, e é suportado em boards embarcados como Raspberry Pi. Lista completa de plataformas disponível em nosso site. Se precisa suporte para outro ambiente, entre em contato no fórum.
Instale Connector do PyPI:
pip install rticonnextdds_connector
Alternativamente, clone repositório:
git clone https://github.com/rticommunity/rticonnextdds-connector.git
Repositório inclui vários exemplos ready-to-run:
- simple/writer.js – Cria writer, seta instância, publica samples.
- simple/reader.js – Recupera reader, busca samples, inspeciona conteúdo.
- simple/read_and_write.py – Lê cada sample, inverte dois campos, escreve de volta.
- mixed/ – Exemplos atualizados cobrindo sequence lengths, uso de wait() e mais.
Visão Geral da API
Para mergulho mais profundo, consulte README em nosso repositório GitHub. Abaixo walkthrough conciso da core API.
Primeiro, importe biblioteca Connector:
import rticonnextdds_connector as rti
Crie instância Connector com configuração desejada e arquivo XML:
connector = rti.Connector("MyParticipantLibrary::Zero", "./ShapeExample.xml") Primeira string nomeia configuração, segunda aponta para arquivo XML-Base App Creation. Arquivo sample disponível no repositório.
Acesse Data Writers via getOutput e Data Readers via getInput:
output = connector.getOutput("MyPublisher::MySquareWriter") input = connector.getInput("MySubscriber::MySquareReader") Ambos métodos aceitam nome da entidade como definido no XML.
Sete campos em writer usando dictionary ou individualmente:
output.instance.setDictionary(sample) output.instance.setNumber("y", 2) No lado reader, recupere samples com read() ou take(), então itere:
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 também podem ser acessados como dictionary:
sample = input.samples.getDictionary(j)
Ao trabalhar com multithreading, proteja acesso Connector — exemplos disponíveis no repositório.
Limitações
Embora RTI Connector simplifique muitas tarefas, é intencionalmente leve. Suporta apenas Dynamic Data, não tipos compilados, e falta alguns features avançados disponíveis no suite completo Connext DDS Pro. Para casos de uso especializados, recomendamos revisar nossa documentação ou contatar suporte para soluções alternativas.
Custo
RTI Connector é gratuito. Pedimos apenas que usuários forneçam feedback para ajudar moldar futuros releases. Seus insights influenciam nosso roadmap.
Conclusão
Este post oferece visão high-level do RTI Connector para Python. Melhor forma de aprender é experimentar — baixe pacote, rode exemplos, e compartilhe experiência no RTI Community Forum. Seu feedback é inestimável enquanto refinamos ferramenta e planejamos próxima geração de features.
Tecnologia da Internet das Coisas
- OpenDDS vs. RTI Connext DDS: Escolhendo a Solução Certa de Data Distribution Service
- Construindo um Sistema Robusto de Monitoramento de Séries Temporais: Integrando RTI Connext DDS com Telegraf e InfluxDB
- RTI Connext 6 Agora Disponível: Desempenho Aprimorado, Segurança e Conectividade Unificada
- Connext DDS no Industrial IoT: 5 Insights-Chave para Confiabilidade, Segurança e Escalabilidade
- RTI Perftest 2.4 Lançado: Testes de Performance Aprimorados para Connext DDS
- Por Que RTI Connext DDS é Middleware Preferido para Veículos Autônomos
- Top 7 Recursos para Desenvolvedores Industrial IoT – Edição 2017
- Projetando Sistemas Industrial IoT com RTI DDS Toolkit no LabVIEW 2017
- Construa um Robô com Raspberry Pi e Python: Guia Completo
- Entendendo type() e isinstance() em Python: Exemplos Práticos