一种轻量级的技术—使DDS数据可以用Go访问

348 阅读2分钟

rticonnextdds-connector-go

RTI Connector for Connext DDS

RTI Connectorfor Connext DDS是一种快速和简单的方式来访问 RTI Connext DDS的力量和功能。它是基于 XML的应用创建和动态数据。 连接器是由RTI研究小组创建的,用于快速和容易地开发演示和概念证明。它对任何需要快速开发通过Connext DDS数据总线通信的应用程序的人来说都是有用的 。由于与多种编程语言的结合,你可以与许多其他可用的技术集成。
连接器库以二进制形式提供给选定的架构。语言绑定和例子是以源格式提供的。GoConnector利用cgo来调用其C库;这个细节隐藏在Go包装器中。

开始使用

请确保你已经安装了golang(我们用golang v1.17测试):

安装:

$ go get github.com/rticommunity/rticonnextdds-connector-go

导入:

import "github.com/rticommunity/rticonnextdds-connector-go"

关于使用细节,请看例子

静态构建

要静态构建你的应用程序,它需要RTI Connext DDS静态库(libnddscorez.a,libnddscz.a )它们位于$NDDSHOME/lib/YOUR_ARCHITECTURE

$ cp $NDDSHOME/lib/YOUR_ARCHITECTURE/libnddscorez.a ./static_lib/YOUR_ARCHITECTURE/
$ cp $NDDSHOME/lib/YOUR_ARCHITECTURE/libnddscz.a ./static_lib/YOUR_ARCHITECTURE/

然后,你可以运行go build-tags static 来构建:

$ go build -tags static ./examples/simple/writer/writer.go

平台支持

GoConnector为一些特定的架构建立了它的库。如果你需要其他架构,请联系你的RTI客户经理或sales@rti.com。

如果你想检查库的版本,你可以运行以下命令:

strings librtiddsconnector.so | grep BUILD

线程模型

ConnectorNative API还没有实现任何线程安全的机制。最初,Connector的本地代码是为了与RTI Prototyper和Lua一起工作而构建的。那是一个单线程的循环。然后,RTI引入了对JavaScript、Python和Go的支持。现在,你要负责保护对Connector的调用。线程安全可能会在未来实现。

支持

Connector是一个实验性的RTI产品。如果你有问题,请使用RTI社区论坛。如果你想报告一个错误或有一个功能请求,请创建一个问题

文档

开始使用Connector的最好方法是看
例子;你会发现它非常容易使用。

请看API文档以了解更多信息。

贡献

我们非常感谢对代码、示例和文档的贡献。请按照以下步骤进行贡献:

  1. 签署CLA
  2. 创建一个分叉,并作出你的修改。
  3. 运行测试和linters(make test lint)。
  4. 推送你的分支。
  5. 打开一个新的拉动请求