RMVL  2.4.0-dev
Robotic Manipulation and Vision Library
载入中...
搜索中...
未找到
rm::lpss::async::Node类 参考

轻量级发布订阅服务异步节点 更多...

#include <rmvl/lpss/node.hpp>

类 rm::lpss::async::Node 继承关系图:
rm::lpss::async::Node 的协作图:

Public 成员函数

 Node (std::string_view name, uint8_t domain_id=0)
 创建通用节点,默认域 ID 为 0
 ~Node ()
template<typename MsgType>
Publisher< MsgType >::ptr createPublisher (std::string_view topic) noexcept
 创建发布者
template<typename MsgType, typename SubscribeMsgCallback, typename = std::enable_if_t<std::is_invocable_v<SubscribeMsgCallback, const MsgType &>>>
Subscriber< MsgType >::ptr createSubscriber (std::string_view topic, SubscribeMsgCallback callback) noexcept
 创建订阅者
template<typename Rep, typename Period, typename TimerCallback>
Timer::ptr createTimer (std::chrono::duration< Rep, Period > dur, TimerCallback callback) noexcept
 创建异步定时器
void spin ()
 运行异步 IO 上下文

详细描述

轻量级发布订阅服务异步节点

  • 内置节点发现协议 NDP (Node Discovery Protocol),用于节点间的自动发现与通信
  • 内置通信端点发现协议 EDP (Endpoint Discovery Protocol),用于发布者与订阅者间的自动发现与通信
    参见
    详情见 轻量发布订阅服务 —— LPSS

构造及析构函数说明

◆ Node()

rm::lpss::async::Node::Node ( std::string_view name,
uint8_t domain_id = 0 )
explicit

创建通用节点,默认域 ID 为 0

参数
[in]name节点名称
[in]domain_id域 ID

◆ ~Node()

rm::lpss::async::Node::~Node ( )

成员函数说明

◆ createPublisher()

template<typename MsgType>
Publisher< MsgType >::ptr rm::lpss::async::Node::createPublisher ( std::string_view topic)
noexcept

创建发布者

模板参数
MsgType消息类型
参数
[in]topic话题名称
返回
发布者对象的智能指针

◆ createSubscriber()

template<typename MsgType, typename SubscribeMsgCallback, typename Enable>
Subscriber< MsgType >::ptr rm::lpss::async::Node::createSubscriber ( std::string_view topic,
SubscribeMsgCallback callback )
noexcept

创建订阅者

模板参数
MsgType消息类型
SubscribeMsgCallback订阅回调函数类型
参数
[in]topic话题名称
[in]callback订阅回调函数
返回
订阅者对象的智能指针

◆ createTimer()

template<typename Rep, typename Period, typename TimerCallback>
Timer::ptr rm::lpss::async::Node::createTimer ( std::chrono::duration< Rep, Period > dur,
TimerCallback callback )
noexcept

创建异步定时器

模板参数
Rep定时器时间间隔的表示类型
Period定时器时间间隔的周期类型
TimerCallback定时器回调函数类型
参数
[in]dur定时器时间间隔
[in]callback定时器回调函数
返回
定时器对象的智能指针
函数调用图:

◆ spin()

void rm::lpss::async::Node::spin ( )
inline

运行异步 IO 上下文