我正在使用ADLINK的OpenSplice和他们的Python API。我似乎找不到好的文档或类参考。我想设置一种非阻塞方式来接收多条消息。他们的侦听器似乎提供了这一点,但不清楚如何在python中设置它
他们的DDS教程给出了一个C示例:
class TempSensorListener :
public dds::sub::NoOpDataReaderListener<tutorial::TempSensorType>
{
public:
virtual void on_data_available(dds::sub::DataReader<tutorial::TempSensorType>& dr)
{
...
});
}
};
TempSensorListener listener;
dr.listener(&listener, dds::core::status::StatusMask::data_available());
这似乎表明datareceiver有一个“listener”方法,用于将侦听器分配给datareader
如何使用Python API实现这一点?我似乎无法从python datareceiver中找到侦听器方法
提供的Python示例(example1.py和example2.py)提供了
# Data available listener
class DataAvailableListener(Listener):
def __init__(self):
Listener.__init__(self)
def on_data_available(self, entity):
print('on_data_available called')
l = entity.read(10)
for (sd, si) in l:
sd.print_vars()
但是我没有看到这个类的实例化。该示例似乎使用Waitset,而根本不使用侦听器
我期望的是:
listener = DataAvailableListener()
reader.listener(listener)
reader确实有一个名为listener的属性。我将对象指定给该属性,但它似乎没有任何效果
我如何找到与6.10.4相同问题的解决方案:
参考
dds
包(包含在$OSPL_HOME/tools/python/docs/html/dds.html
中)中的文档,可以使用Subscriber
类的create_datareader
方法设置侦听器:相关问题 更多 >
编程相关推荐