专栏算法工具链Communication模块的简介与pub sub示例

Communication模块的简介与pub sub示例

TROS.Assist2024-01-19
115
0

Communication模块

简介

Communication作为通信总线,为应用屏蔽底层通信链路细节,提供统一的通信接口。支持多种通信模式、多个平台,使应用开发者能够快速搭建应用和解决方案。

image-20240109161143360

功能特性

通信模式
COM模块以接口的形式提供三种不同的通讯模式分别为:publish/subscribeserviceaction
通信协议
communication 本身具有可扩展性,可以集成不同的通信协议,目前支持如下通信协议:zmq tcpzmq ipczmq epgmintrabif-sdioshared memoryPCIeFast-DDShybridcomposite

COM模块的安装和编译

编译

这里主要以ubuntu为例

communication目录下:

安装

执行下面命令安装目标文件到 bin 目录下:

配置文件

使用示例

这里的示例以C++为基础

Pub sub通信模式示例

pub-sub 模式是发布订阅模式,subscriber 订阅某个主题(topic),每当 publisher 发布该主题的消息,subscriber 就会收到对应消息,该模式是一种松耦合的通信模式,publisher 和 subscriber 是 M:N 的关系。

具体代码:

  • example/pub_sub_example/publisher_example.cpp

  • example/pub_sub_example/subscriber_example.cpp

proto message

example/protocol_msg

image-20240111142701501

protocolC工具通过protol文件生成消息定义和序列号功能,在这里就是pb.cc pb.h文件

image-20240111143506637

以zmq iqc通信为例:

  1. 在communication.json文件中配置相关的信息

  2. 调用 hobot::communication::Init(“communication.json”) 接口

  3. 创建 pub 通信实例

  1. 定义 subscriber 回调函数,用来处理订阅的消息,创建 sub 通信实例

编译

image-20240111151235528

利用example下的build.py脚本进行编译

编译完成后会生成build目录,里面有两个可执行程序publisher和subscriber:

image-20240111152811847

执行./subscriber 4 4代表通讯使用的协议号,4号为zmq ipc。

sub成功执行,等待中:

image-20240111175443756

执行./publisher 4:

image-20240111175637711

可以看到这边sub成功接收,并调用回调函数输出信息:

image-20240111175659512
算法工具链
杂谈
评论0
0/1000