1. Cyber RT概念、docker容器引擎、Bazel编译、protobuf数据协议

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Cyber RT简介

在这里插入图片描述
在这里插入图片描述
安装docker,NVIDIA ContainerToolkit,安装Cyber RT,测试

docker简介

在这里插入图片描述

1.C++实现helloworld

1 编写源文件
头文件cyber.h是因为后面在设置日志的时候需要的,设置日至名为当前文件名argv[0]
在这里插入图片描述
2. 编辑配置文件BUILD(因为将C++文件编译成01计算机语言的时候采用的是bazel编译器,而这个需要配置文件先标记那个目录下是包,bazel后面编译的时候再选择性编译)
name:生成的目标文件
srcs:要编译的文件
deps:需要的包
在这里插入图片描述
3. 编译(bazel下用build文件定位包,选择编译)这里是编译所在文件夹下的…即所有文件,但其实只需要编辑包文件就行了

4.执行(调出容器终端的快捷键为ctrl+`)
在这里插入图片描述

2.1 Bazel编译流程

在这里插入图片描述
具体来说

  1. WORKSPACE文件是标记所在文件夹是project
  2. BUILD文件是标记所在文件夹是Package

在这里插入图片描述在这里插入图片描述在这里插入图片描述

2.2 Bazel_库依赖之生成库

包PKG即后面需要编译BUILD的文件,包里面主要就是标志性的BUILD文件、主要编译对象C++文件、C++需要调用的库

库依赖语法(同包下库依赖+跨包库依赖)
在这里插入图片描述
编写被依赖库实现(库只有5步,不需要执行)
在这里插入图片描述
注意:.h 是C语言或JAVA类、函数的头文件(Head) 这里是在建立包,包里面有很多函数,建立了包,以后include之后,包里面的函数都可以调用。 这里先一个头文件,头文件的名字即以后要调用的文件名,里面就是包含参数的函数头 ,参数记name 后面的源文件就是具体的函数怎么执行
在这里插入图片描述在这里插入图片描述

2.2 Bazel_库依赖之同包依赖

在这里插入图片描述
其实这里就是正常的C++函数 只是使用的包是自己定义的包罢了
在这里插入图片描述在这里插入图片描述

2.2 Bazel_库依赖之跨包依赖

跨包可能会出现权限问题
在这里插入图片描述在这里插入图片描述
主要就是在需要被调用的包下BUILD文件下对应的cc_library文件为新的包添加权限,如上两种方式,方法1是所有包公开均可调用;方法2是指定对哪些包开放权限
在这里插入图片描述

protobuf(Protocol buffers协议缓冲区,数据载体/数据协议,st传输)简介

protobuf是一个跨语言、跨平台的序列化数据结构的方式,是用于序列化数据的协议。

数据通信协议(data communication protocols),亦称数据通信控制协议。是为保证数据通信网中通信双方能有效,可靠通信而规定的一系列约定。这些约定包括数据的格式,顺序和速率,数据传输的确认或拒收,差错检测,重传控制和询问等操作。

在Apollo Cyber RT中发布订阅例程,发布方可以发布一组数据,订阅方可以接收到数据,那么数据如何在二者之间传输?--------在cyber RT中使用protobuf实现

序列化数据常用的数据格式包括 protobuf、XML(标签语言)、JSON(键值对型语言)

在这里插入图片描述

1. 基本使用流程

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述

1. proto读写

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值