Apollo 应用与源码分析:CyberRT-话题通信
admin
2024-02-05 01:08:53
0

话题通信

目录

话题通信

创建node

API

参数

创建写端

API

参数:

创建读端

API

参数

代码样例

Talker

Listener

BUILD



创建node


API

std::unique_ptr apollo::cyber::CreateNode(const std::string& node_name, const std::string& name_space = "");


参数


Node_name: 节点名,全局唯一标识符
Name_space:节点所在的空间名称
Name_space 默认为空。是与node_name连在一起的空间名。格式为/namespace/node_name
返回值-指向Node的独占智能指针
错误条件—当cyber::Init()未被调用时,系统处于未初始化状态,无法创建节点,返回nullptr

创建写端


API

template auto CreateWriter(const std::string& channel_name)-> std::shared_ptr>;
template auto CreateWriter(const proto::RoleAttributes& role_attr)-> std::shared_ptr>;


参数:


Channel_name:要写入的通道名
MessageT:要写入的消息类型
返回值- Writer对象的共享指针


创建读端


API

template 
auto CreateReader(const std::string& channel_name, const std::function&)>& reader_func)-> std::shared_ptr>;template 
auto CreateReader(const ReaderConfig& config,const CallbackFunc& reader_func = nullptr)-> std::shared_ptr>;template 
auto CreateReader(const proto::RoleAttributes& role_attr,const CallbackFunc& reader_func = nullptr)
-> std::shared_ptr>;


参数


MessageT:要读取的消息类型
Channel_name:要接收的通道的名称
Reader_func:处理消息的回调函数
返回值—Reader对象的共享指针



代码样例

Talker

#include "cyber/cyber.h"#include "cyber/proto/chatter.pb.h"#include "cyber/time/rate.h"#include "cyber/time/time.h"using apollo::cyber::Rate;using apollo::cyber::Time;using apollo::cyber::proto::Chatter;int main(int argc, char *argv[]) {// init cyber frameworkapollo::cyber::Init(argv[0]);// create talker nodestd::shared_ptr talker_node(apollo::cyber::CreateNode("talker"));// create talkerauto talker = talker_node->CreateWriter("channel/chatter");Rate rate(1.0);while (apollo::cyber::OK()) {static uint64_t seq = 0;auto msg = std::make_shared();msg->set_timestamp(Time::Now().ToNanosecond());msg->set_lidar_timestamp(Time::Now().ToNanosecond());msg->set_seq(seq++);msg->set_content("Hello, apollo!");talker->Write(msg);AINFO << "talker sent a message!";rate.Sleep();}return 0;}

Listener

#include "cyber/cyber.h"#include "cyber/proto/chatter.pb.h"void MessageCallback(const std::shared_ptr& msg) {AINFO << "Received message seq-> " << msg->seq();AINFO << "msgcontent->" << msg->content();}int main(int argc, char *argv[]) {// init cyber frameworkapollo::cyber::Init(argv[0]);// create listener nodeauto listener_node = apollo::cyber::CreateNode("listener");// create listenerauto listener =listener_node->CreateReader("channel/chatter", MessageCallback);apollo::cyber::WaitForShutdown();return 0;}

BUILD

cc_binary(name = "talker",srcs = [ "talker.cc", ],deps = ["//cyber","//cyber/examples/proto:examples_cc_proto",],)cc_binary(name = "listener",srcs = [ "listener.cc", ],deps = ["//cyber","//cyber/examples/proto:examples_cc_proto",],)

相关内容

热门资讯

支付宝消费券回收后,资金是否支... 摘要: 支付宝消费券回收变现后,资金能否直接转入信用卡?本文解答到账方式的相关规则,帮助用户了解资金...
中医介绍5个化痰穴位!收藏这篇... 很多人忽略了“痰”的危害,觉得咳几下就没事,殊不知,肺里的痰长期堆积,只会一步步加重身体负担。 中医...
黄金平台“杰我睿”涉嫌经济犯罪... 红星资本局5月7日消息,深圳水贝知名金店“杰我睿”兑付困难事件有了新进展。日前,深圳市公安局罗湖分局...
多地出台购房新政促楼市升温 记... 今年的“五一”假期,伴随着多个城市楼市新政密集落地,在叠加市场信心持续修复的作用下,房地产市场热度持...
谁是五一“吸金王”?这5座城市... 来源:市场资讯 (来源:21城市观) 哪座城市成为“五一”假期的大赢家? 图源:摄图网 作者|赵晓...
“低招低裁”格局稳固劳动力市场... 智通财经APP获悉,美国上周初请失业金人数在经历前一周回落至近几十年来最低水平后出现小幅反弹,表明尽...
刚刚,纳指冲破26000点,创... 记者|杜宇 编辑|何小桃 杜恒峰 校对|陈俊杰 5月7日晚,纳斯达克综合指数向上触及26000点,创...
美股芯片股,集体下跌 新闻荐读 5月7日,美股三大指数小幅高开,道指涨0.3%,纳指涨0.15%,标普500指数涨0.09...
DeepSeek 估值 450... DeepSeek 首轮融资曝光,估值 450 亿美元 据《金融时报》报道,多家机构目前正寻求领投 D...
焦点复盘沪指缩量收涨录得日线六... 财联社5月7日讯,今日100股涨停,31股炸板,封板率76%。金螳螂12天10板,中国长城、福达合金...
全球的“聪明钱”正集体涌入这7... 来源:虎嗅APP 当我们在谈论美股的“科技七姐妹”(Magnificent Seven)时,一场更...
单季亏超10亿元、偿付能力告急... 2026年一季度,幸福人寿保险业务收入97.38亿元,同比增长17.31%,跑赢了行业平均增速。但净...
债券市场“科技板”开闸一年:浙... 2025年10月29日,对绍兴越城区的芯联集成而言颇为特别。这家为汽车、新能源、工控、家电等领域提供...
原创 4... 最近家人嚷着要去露营,我起初还以为他们是想凑凑热闹,直到在朋友圈刷到一组照片改变了我的看法:重庆老家...
连板引爆资金追捧 中国长城关联... 【导读】连板引爆资金追捧 中国长城关联交易骤增的深层逻辑 见习记者 刘墨 进入5月,中国长城(000...
交易笔数大增 从支付数据看假期... 消费市场活力十足,尽显中国经济强劲韧性。中国人民银行5月6日发布的数据显示,今年“五一”假期支付交易...
潮评丨豆包分层付费背后:AI的... 潮新闻客户端 特约评论员 陈白 图源:视觉中国 近日,#豆包付费#的话题迅速登上微博热搜榜首,引发...
星空卫视明日停播 5月6日,星空卫视官方微博发布公告,正式宣告因运营陷入困境,卫星合作方已通知该频道将于5月8日暂停卫...
欧盟计划将中国可再生能源设备制... 【日前,欧盟宣布禁止欧洲银行为含有来自不可靠“供应商”关键部件的可再生能源项目提供融资。尽管在“不可...
原创 脸... 在俄乌冲突爆发之初,日本便迅速锁定立场,紧随西方盟友脚步,在极短时间内连发多轮对俄制裁。这一举动让俄...