RTI Labs 推出 Python 版 Connector for Connext DDS——现已纳入 Connext 套件
本文首发以来变化巨大。今日您可直接从 Python 或 JavaScript 访问 DDS——得益于 RTI Labs 计划测试者,RTI Connector for Connext® DDS 已集成至 Connext 产品家族。
本周我们激动推出 RTI Labs,免费计划让客户抢先体验下一代工业物联网技术。RTI Labs 发布的项目为实验性质,允许参与者原型验证新想法、通过实战反馈塑造产品路线图。RTI 与社区双赢。
我们以三个实验项目启动计划,首个为 RTI Connector for Connext DDS。若您已下载 RTI Connext 5.3.0 并启动 RTI Launcher,会在「Lab」标签页发现新图标——其中之一即 Connector 图标。

点击 Connector 图标打开 社区门户 上的 RTI Connector 页面。Connector 由 RTI 研究团队创建,旨在加速演示开发和快速测试。始于面向 RTI Prototyper 的 Lua 接口,现扩展支持 Python 和 JavaScript/node.js。
什么是 RTI Connector?
RTI Connector for Connext DDS 提供轻量、可脚本化的接口,释放 RTI Connext DDS 全威力。支持 JavaScript、Python、Lua,构建于 Connext XML 应用创建和动态数据能力之上。本文聚焦 Python API,同理适用于 JavaScript/node.js 和 Lua/Prototyper。
用例
早期采用者在以下场景发现 Connector 价值:
- 测试: 分布式系统组件未就绪时,Connector 可模拟缺失 DDS 部分,支持隔离测试、减少集成延迟
- 原型: 以极少代码快速构建演示或概念验证——往往比原生 Connext API 少一个数量级
- 用户界面: 结合 Python UI 框架如 PyQt 创建简单仪表盘,发布/订阅 DDS 数据
- 集成: 利用 Python 庞大生态——PyPI 托管 112,439+ 包——添加第三方功能并经 DDS 通信
- 其他: 在 RTI 社区论坛分享独特用例,助力未来增强
RTI 入门指南
假设基本熟悉 Python。RTI Connector 支持 Python 3 及早期版本,运行于所有主流企业级操作系统,支持树莓派等嵌入式板卡。完整平台列表见官网。若需其他环境支持,请论坛反馈。
从 PyPI 安装 Connector:
pip install rticonnextdds_connector
或克隆仓库:
git clone https://github.com/rticommunity/rticonnextdds-connector.git
仓库含多个即运行示例:
- simple/writer.js — 创建写入器、设置实例、发布样本
- simple/reader.js — 获取读取器、提取样本、检查内容
- simple/read_and_write.py — 读取每样本、反转两字段、写回
- mixed/ — 覆盖序列长度、wait() 用法等的更新示例
API 概览
深度探索请参考 GitHub 仓库 README。下文简述核心 API 演练。
首先导入 Connector 库:
import rticonnextdds_connector as rti
用期望配置和 XML 文件创建 Connector 实例:
connector = rti.Connector("MyParticipantLibrary::Zero", "./ShapeExample.xml")
首字符串命名配置,次字符串指向 XML 基础应用创建文件。示例文件在仓库中提供。
通过 getOutput 访问 DataWriter,getInput 访问 DataReader:
output = connector.getOutput("MyPublisher::MySquareWriter") input = connector.getInput("MySubscriber::MySquareReader")
两方法均接受 XML 中定义的实体名。
用字典或单独设置写入器字段:
output.instance.setDictionary(sample) output.instance.setNumber("y", 2)
读取器侧,用 read() 或 take() 获取样本再迭代:
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") # …
样本也可作为字典访问:
sample = input.samples.getDictionary(j)
多线程场景下保护 Connector 访问——仓库有示例。
局限性
RTI Connector 虽简化许多任务,但有意保持轻量。仅支持动态数据,不支持编译类型,缺少 Connext DDS Pro 套件的部分高级特性。专用场景建议查阅文档或联系支持寻求替代方案。
成本
RTI Connector 免费。我们仅请用户提供反馈以塑造未来版本。您的洞察影响路线图。
结语
本文提供 RTI Connector for Python 高层视角。最佳学习方式是实验——下载包、运行示例、在 RTI 社区论坛分享体验。您的反馈对我们完善工具、规划下一代特性至关重要。
物联网技术
- 树莓派与Python构建机器人:完整指南
- OpenDDS 与 RTI Connext DDS:选择正确的数据分发服务解决方案
- 构建稳健时序监控系统:集成 RTI Connext DDS 与 Telegraf 和 InfluxDB
- RTI Connext 6 发布:性能、安全与统一连接全面增强
- Connext DDS 在工业物联网中的 5 大关键洞见:可靠性、安全性与可扩展性
- RTI Perftest 2.4 发布:Connext DDS 性能测试全面升级
- 为什么 RTI Connext DDS 成自动驾驶车辆首选中间件
- 2017 版工业物联网开发者必备 7 大资源
- 用 LabVIEW 2017 中的 RTI DDS 工具包设计工业物联网系统
- Connext DDS 101:新手入门完全指南
- 2016年Connext DDS开发者必读资源TOP榜
- 理解 Python type() 与 isinstance():实战示例详解