我一直在尝试在ubuntu20.04.2lts上使用adlink的vortex opensplice社区版和pythonapi(pyenv虚拟环境中的pythonversion3.6)。我遵循了pythondcpsapiguide,并在($ospl\u home/tools/python/examples)中使用了python示例。但是,我不知道如何使用为静态生成的主题类创建与域参与者关联的主题 idlpp
. 我怎么能做到?
到目前为止我所做的:
我有一个idl文件,它包含了许多其他idl文件的路径。我已使用以下bash脚本将这些idl文件转换为python主题类:
# !/bin/bash
for FILE in *.idl; do
$OSPL_HOME/bin/idlpp -I $OSPL_HOME/etc/idl -S -l python -d . $FILE
done
这将创建一系列python包(python主题类),我将这些包导入同一目录中的python脚本中。
使用这些包,我想在python脚本中创建或注册一个域参与者的主题。例如,下面的python代码(但是“create\u topic”函数不存在):
# myExampleDDSFile.py
from dds import *
from foo import foo_type # idlpp generated module/class
from foo2 import foo_type2 # idlpp generated module/class
dp = DomainParticipant()
topic = dp.create_topic('foo_topic',foo_type) # this function doesn't exist for a domain participant
pub = dp.create_publisher()
这可能吗?如果可能的话,我怎样才能注册一个我在python中与域参与者静态创建的主题?
我注意到在提供的python示例(例如$ospl\u home/tools/python/examples/example1.py)中,使用下面的代码动态注册了一个主题,但我不认为这与静态生成的python主题类有关:
# example1.py snippet
dp = DomainParticipant()
gen_info = ddsutil.get_dds_classes_from_idl('example1.idl', 'basic::module_SequenceOfStruct::SequenceOfStruct_struct')
topic = gen_info.register_topic(dp, 'Example1')
我在源代码中也看不到相关函数。
我很抱歉,如果这是一个简单的问题,或如果我错过了一些东西-我是非常新的涡opensplice dds。
任何帮助都将不胜感激。
暂无答案!
目前还没有任何答案,快来回答吧!