用于Connext DDS的RTI连接器
rticonnextdds-connector的Python项目详细描述
本文研究的对象是:python
>
>
(返回
`rticconnextdds connector<;https://github.com/articommunity/rticconnextdds connector>;` ` ` ` ` ` rti connext dds connector<;https://github.com/articommunity/rticconnextdds connector>;
>~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~>*RTI连接器*用于Connext DDS是访问"rti connext
dds<;http://www.rti.com/products/index.html>;"的
功能和功能的一种快速简便的方法。它基于
`xml-based application
creation<;https://community.rti.com/static/documentation/connext dds/6.0.0/doc/manuals/connext-dds/xml-application-creation/rti-connextdds-corelibraries-xml-appcreation-gettingstarted.pdf>;`_
和动态数据。
----
**警告**:python*连接器*从v0.4.1开始对序列使用基于0的索引。以前的序列从索引1开始。更多信息,请参见"读取/获取数据"。\_\
语言支持
~对于其他语言(lua、c、
等),请参阅"main connector
repository<;https://github.com/rticommunity/rticonnextdds connector>;` ` ` `.
我们使用cTypes调用本机函数;这些详细信息隐藏在python包装中。rti使用python
2.7.14和python 3.6.3测试了它的python实现。
`_.
如果您需要其他体系结构,请联系您的RTI帐户
经理或sales@rti.com。
bit:centos 6.5 gcc 4.8.2\*对于
linux 32位:ubuntu 16.04 gcc 5.4.0\*对于arm:yocto linux 2.0.3 gcc
5.2.0
connext版本
~对于
示例:
…代码::bash
strings librtidsconnector.dylib grep build
目前,保护对
*连接器*的呼叫的责任由您来承担。(将来,线程安全可能会添加到
本机层中。)在python中,如果使用不同的线程,则必须保护对
*connector*的调用。例如,请参见下面的
"保护对连接器的调用
library<;https://github.com/rticomunity/rticonnextdds connector py";保护对连接器库的调用
支持
~~~~~
*连接器*是一个实验性的rti产品。如果您有问题,请使用
rti community
论坛<;https://community.rti.com/forums/technical questions>;` ` ` ` ` ` `<>
开始使用python
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
确保您有python。然后使用pip安装*连接器*:
…代码::bash
$pip安装rticonnextdds_连接器
您还可以克隆存储库:
…代码::bash
$git clone--recursive https://github.com/rticomunity/rticonnextdds connector py.git
如果使用pip安装,您需要从存储库中克隆上述示例。
-**simple**:演示如何编写示例以及如何读取/获取示例。
-**mixed**:包含各种示例。
保护对*连接器的调用*库
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
如上所述,您负责保护对
*连接器*的调用。有很多选择python中的离子;一种是使用
"线程"包:
…代码::py
…
…
import threading
sem=threading.semaphore();
…
…
…
…
释放信号量
sem.release();
…
…
…
有关线程python包的更多信息,请参阅"python
文档<;https://docs.python.org/2/library/threading.html>;`_.
API概述
~~~~~~~~~~~~~~
需要*连接器*库
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
要使用"rticonnextdds-u连接器",请导入它:
代码::py
import rticonnextdds_connector as rti
code::py
connector=rti.connector("myparticipantlibrary::zero","/shapeexample.xml");
有关XML格式的详细信息,请参阅"基于XML的应用程序创建指南<;https://community.rti.com/static/documentation/connext dds/6.0.0/doc/manuals/connext dds/xml_application_creation/rti_connextdds_corelibraries_xml_appcreation_gettingstarted.pdf>;``uuuuxample.xml<;examples/python/shapeexample.xml>;`_
此示例目录中包含的文件。
代码::py
connector=rti.connector("myparticipantlibrary::zero","/shapeexample.xml");
…
…
…
connector.delete();
代码::py
output=connector.getoutput("mypublisher::mysquarewriter")
,然后设置实例的字段:
。代码::py
output.instance.setNumber("x",1);
output.instance.setNumber("y",2);
output.instance.setNumber("shapeSize",30);
output.instance.setString("color","blue");
代码::py
output.write();
代码::py
假设示例是一个字典,其中包含一个与输出类型相同的对象。实例:
output.instance.setDictionary(示例);
-**逐字段**:
代码::py
output.instance.setNumber("y",2);
以下API逐字段设置实例:
``setNumber(fieldname,number);````setBoolean(fieldname,boolean);``
和``set string(fieldname,string);``.
可以使用点符号"x.y.z"来访问嵌套字段。数组
或序列可以使用方括号来访问:``"x.y[1].z``。有关如何访问字段的详细信息,请参阅"rti prototyper入门指南"的"数据访问api"部分。https://community.rti.com/static/documentation/connext dds/6.0.0/doc/manuals/connext-dds/prototyper/rti-connextdds-corelibraries-prototyper-gettingstarted.pdf>;` ` ` `.
read/take data
^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^
要读取/获取示例,请首先获取输入端口的引用:
代码::py
input=connector.getinput("mySubscriber::mySquareReader");
代码::py
input.read();
代码::pu
input.take();
瓮多个样本。因此,必须对数组进行
迭代:
…代码::py
input.take();
numofsamples=input.samples.getlength();
对于范围(0,numofsamples)中的j:
如果input.infos.isvalid(j):
x=input.samples.getNumber(j,"x");
y=input.samples.getNumber(j,"y");
size=input.samples.getNumber(j,"shapeSize");
color=input.samples.getString(j,"color");
toprint="已接收x:"+repr(x)+"y:"+repr(y)+"size:"+repr(size)+"color:"+repr(color);
打印(toprint);
}
它们存储在一个数组中。每次尝试访问特定示例时,
必须指定索引(下面的示例中为j)。
您可以通过在dictionary对象中获取副本来访问数据,或者
可以单独访问每个字段:
-**使用dictionary**:
。代码::py
numofsamples=input.samples.getlength();
对于范围(0,numofsamples)中的j:
如果input.infos.isvalid(j):
sample=input.samples.getdictionary(j);
打印整个示例单个元素
打印(示例['x']);
}
-**逐字段**:
…代码::py
对于范围(0,numofsamples)中的j:
如果input.infos.isvalid(j):
x=input.samples.getNumber(j,"x");
y=input.samples.getNumber(j,"y");
size=input.samples.getNumber(j,"shapeSize");
color=input.samples.getString(j,"color");
toprint="已接收x:"+repr(x)+"y:"+repr(y)+"size:"+repr(size)+"color:"+repr(color);
打印(toprint);
}
``.
许可证
~
"examples"子目录中的文件按文件中的标记获得许可。
此软件是一个实验性("预生产")产品。
软件按"原样"提供,不提供任何类型的担保,包括任何用途的适用性担保。rti没有义务维护或支持软件。对于因使用或无法使用本软件而引起的任何附带或间接损害,RTI概不负责。
(返回
`RTIConnextDDS connector<;https://github.com/rticomunity/rticonnextDDS connector>;``uu)
>
>
(返回
`rticconnextdds connector<;https://github.com/articommunity/rticconnextdds connector>;` ` ` ` ` ` rti connext dds connector<;https://github.com/articommunity/rticconnextdds connector>;
>~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~>*RTI连接器*用于Connext DDS是访问"rti connext
dds<;http://www.rti.com/products/index.html>;"的
功能和功能的一种快速简便的方法。它基于
`xml-based application
creation<;https://community.rti.com/static/documentation/connext dds/6.0.0/doc/manuals/connext-dds/xml-application-creation/rti-connextdds-corelibraries-xml-appcreation-gettingstarted.pdf>;`_
和动态数据。
----
**警告**:python*连接器*从v0.4.1开始对序列使用基于0的索引。以前的序列从索引1开始。更多信息,请参见"读取/获取数据"。\_\
语言支持
~对于其他语言(lua、c、
等),请参阅"main connector
repository<;https://github.com/rticommunity/rticonnextdds connector>;` ` ` `.
我们使用cTypes调用本机函数;这些详细信息隐藏在python包装中。rti使用python
2.7.14和python 3.6.3测试了它的python实现。
`_.
如果您需要其他体系结构,请联系您的RTI帐户
经理或sales@rti.com。
bit:centos 6.5 gcc 4.8.2\*对于
linux 32位:ubuntu 16.04 gcc 5.4.0\*对于arm:yocto linux 2.0.3 gcc
5.2.0
connext版本
~对于
示例:
…代码::bash
strings librtidsconnector.dylib grep build
目前,保护对
*连接器*的呼叫的责任由您来承担。(将来,线程安全可能会添加到
本机层中。)在python中,如果使用不同的线程,则必须保护对
*connector*的调用。例如,请参见下面的
"保护对连接器的调用
library<;https://github.com/rticomunity/rticonnextdds connector py";保护对连接器库的调用
支持
~~~~~
*连接器*是一个实验性的rti产品。如果您有问题,请使用
rti community
论坛<;https://community.rti.com/forums/technical questions>;` ` ` ` ` ` `<>
开始使用python
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
确保您有python。然后使用pip安装*连接器*:
…代码::bash
$pip安装rticonnextdds_连接器
您还可以克隆存储库:
…代码::bash
$git clone--recursive https://github.com/rticomunity/rticonnextdds connector py.git
如果使用pip安装,您需要从存储库中克隆上述示例。
-**simple**:演示如何编写示例以及如何读取/获取示例。
-**mixed**:包含各种示例。
保护对*连接器的调用*库
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
如上所述,您负责保护对
*连接器*的调用。有很多选择python中的离子;一种是使用
"线程"包:
…代码::py
…
…
import threading
sem=threading.semaphore();
…
…
…
…
释放信号量
sem.release();
…
…
…
有关线程python包的更多信息,请参阅"python
文档<;https://docs.python.org/2/library/threading.html>;`_.
API概述
~~~~~~~~~~~~~~
需要*连接器*库
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
要使用"rticonnextdds-u连接器",请导入它:
代码::py
import rticonnextdds_connector as rti
code::py
connector=rti.connector("myparticipantlibrary::zero","/shapeexample.xml");
有关XML格式的详细信息,请参阅"基于XML的应用程序创建指南<;https://community.rti.com/static/documentation/connext dds/6.0.0/doc/manuals/connext dds/xml_application_creation/rti_connextdds_corelibraries_xml_appcreation_gettingstarted.pdf>;``uuuuxample.xml<;examples/python/shapeexample.xml>;`_
此示例目录中包含的文件。
代码::py
connector=rti.connector("myparticipantlibrary::zero","/shapeexample.xml");
…
…
…
connector.delete();
代码::py
output=connector.getoutput("mypublisher::mysquarewriter")
,然后设置实例的字段:
。代码::py
output.instance.setNumber("x",1);
output.instance.setNumber("y",2);
output.instance.setNumber("shapeSize",30);
output.instance.setString("color","blue");
代码::py
output.write();
代码::py
假设示例是一个字典,其中包含一个与输出类型相同的对象。实例:
output.instance.setDictionary(示例);
-**逐字段**:
代码::py
output.instance.setNumber("y",2);
以下API逐字段设置实例:
``setNumber(fieldname,number);````setBoolean(fieldname,boolean);``
和``set string(fieldname,string);``.
可以使用点符号"x.y.z"来访问嵌套字段。数组
或序列可以使用方括号来访问:``"x.y[1].z``。有关如何访问字段的详细信息,请参阅"rti prototyper入门指南"的"数据访问api"部分。https://community.rti.com/static/documentation/connext dds/6.0.0/doc/manuals/connext-dds/prototyper/rti-connextdds-corelibraries-prototyper-gettingstarted.pdf>;` ` ` `.
read/take data
^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^
要读取/获取示例,请首先获取输入端口的引用:
代码::py
input=connector.getinput("mySubscriber::mySquareReader");
代码::py
input.read();
代码::pu
input.take();
瓮多个样本。因此,必须对数组进行
迭代:
…代码::py
input.take();
numofsamples=input.samples.getlength();
对于范围(0,numofsamples)中的j:
如果input.infos.isvalid(j):
x=input.samples.getNumber(j,"x");
y=input.samples.getNumber(j,"y");
size=input.samples.getNumber(j,"shapeSize");
color=input.samples.getString(j,"color");
toprint="已接收x:"+repr(x)+"y:"+repr(y)+"size:"+repr(size)+"color:"+repr(color);
打印(toprint);
}
它们存储在一个数组中。每次尝试访问特定示例时,
必须指定索引(下面的示例中为j)。
您可以通过在dictionary对象中获取副本来访问数据,或者
可以单独访问每个字段:
-**使用dictionary**:
。代码::py
numofsamples=input.samples.getlength();
对于范围(0,numofsamples)中的j:
如果input.infos.isvalid(j):
sample=input.samples.getdictionary(j);
打印整个示例单个元素
打印(示例['x']);
}
-**逐字段**:
…代码::py
如果input.infos.isvalid(j):
x=input.samples.getNumber(j,"x");
y=input.samples.getNumber(j,"y");
size=input.samples.getNumber(j,"shapeSize");
color=input.samples.getString(j,"color");
toprint="已接收x:"+repr(x)+"y:"+repr(y)+"size:"+repr(size)+"color:"+repr(color);
打印(toprint);
}
``.
许可证
~
"examples"子目录中的文件按文件中的标记获得许可。
此软件是一个实验性("预生产")产品。
软件按"原样"提供,不提供任何类型的担保,包括任何用途的适用性担保。rti没有义务维护或支持软件。对于因使用或无法使用本软件而引起的任何附带或间接损害,RTI概不负责。
(返回
`RTIConnextDDS connector<;https://github.com/rticomunity/rticonnextDDS connector>;``uu)