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编译流程
具体来说
- WORKSPACE文件是标记所在文件夹是project
- 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读写