CARLA
 
载入中...
搜索中...
未找到
SensorHeaderSerializer.h
浏览该文件的文档.
1// Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma
2// de Barcelona (UAB).
3//
4// This work is licensed under the terms of the MIT license.
5// For a copy, see <https://opensource.org/licenses/MIT>.
6
7#pragma once
8// 预处理指令,保证该头文件在整个项目的编译过程中只会被包含一次,防止重复定义等问题
9#include "carla/Buffer.h" // 引入carla项目中名为Buffer的头文件,大概率其中定义了用于存储数据的缓冲区相关的类、结构体或者函数等内容
10#include "carla/rpc/Transform.h" // 引入carla项目中rpc模块下关于Transform(可能表示坐标变换等相关概念)的头文件,应该包含了Transform相关的类型定义、操作函数等内容
11
12namespace carla {
13namespace sensor {
14namespace s11n {
15
16 /// 类的功能注释,说明这个类用于对所有传感器数据附带的元信息(头部信息)进行序列化操作
18 public:
19
20#pragma pack(push, 1)
21// 这是一个预处理指令,用于设置结构体的字节对齐方式。这里将对齐方式设置为1字节对齐,这样结构体成员在内存中的布局会更紧凑,按照定义顺序依次紧密排列,常用于和二进制数据交互等场景,保证结构体在内存中的布局和后续要处理的实际数据格式一致(比如网络传输或者文件存储格式)
22
23 struct Header {
24 uint64_t sensor_type; // 定义一个64位无符号整数类型的成员变量
25 uint64_t frame; // 同样是64位无符号整数类型,
26 double timestamp; // 定义一个双精度浮点数类型的成员变量,用于存储时间戳信息,代表传感器采集该数据的时间点
27 rpc::Transform sensor_transform;// 包含了rpc模块中定义的Transform类型的成员变量,用于存储传感器的坐标变换相关信息
28 };
29#pragma pack(pop)
30// 恢复之前的默认字节对齐方式,结束由#pragma pack(push, 1)设置的紧凑对齐状态
31
32 constexpr static auto header_offset = sizeof(Header);
33// 使用constexpr关键字定义一个静态常量,其值为Header结构体的大小(字节数)
34 static Buffer Serialize(
35 uint64_t index,
36 uint64_t frame,
37 double timestamp,
38 rpc::Transform transform);
39// 定义一个静态函数Serialize,用于将传入的传感器相关索引
40 static const Header &Deserialize(const Buffer &message) {
41 return *reinterpret_cast<const Header *>(message.data());
42 }
43// 定义一个静态函数Deserialize,用于将传入的Buffer类型的消息数据
44// 进行反序列化操作,通过将缓冲区的起始地址(message.data())强制转换为指向Header结构体的指针类型(reinterpret_cast),并返回其引用,从而获取到其中解析出来的头部信息结构体,便于后续使用其中的各个成员变量进行相应处理
45 };
46
47} // namespace s11n
48} // namespace sensor
49} // namespace carla
一块原始数据。 请注意,如果需要更多容量,则会分配一个新的内存块,并 删除旧的内存块。这意味着默认情况下,缓冲区只能增长。要释放内存,使用 clear 或 pop。
const value_type * data() const noexcept
直接访问分配的内存,如果没有分配内存则返回 nullptr。
类的功能注释,说明这个类用于对所有传感器数据附带的元信息(头部信息)进行序列化操作
static Buffer Serialize(uint64_t index, uint64_t frame, double timestamp, rpc::Transform transform)
static const Header & Deserialize(const Buffer &message)
CARLA模拟器的主命名空间。
Definition Carla.cpp:139