CARLA
载入中...
搜索中...
未找到
LibCarla
source
carla
sensor
s11n
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
12
namespace
carla
{
13
namespace
sensor {
14
namespace
s11n {
15
16
/// 类的功能注释,说明这个类用于对所有传感器数据附带的元信息(头部信息)进行序列化操作
17
class
SensorHeaderSerializer
{
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
Buffer.h
carla::Buffer
一块原始数据。 请注意,如果需要更多容量,则会分配一个新的内存块,并 删除旧的内存块。这意味着默认情况下,缓冲区只能增长。要释放内存,使用 clear 或 pop。
Definition
carla/Buffer.h:52
carla::Buffer::data
const value_type * data() const noexcept
直接访问分配的内存,如果没有分配内存则返回 nullptr。
Definition
carla/Buffer.h:193
carla::geom::Transform
Definition
geom/Transform.h:26
carla::sensor::s11n::SensorHeaderSerializer
类的功能注释,说明这个类用于对所有传感器数据附带的元信息(头部信息)进行序列化操作
Definition
SensorHeaderSerializer.h:17
carla::sensor::s11n::SensorHeaderSerializer::Serialize
static Buffer Serialize(uint64_t index, uint64_t frame, double timestamp, rpc::Transform transform)
Definition
SensorHeaderSerializer.cpp:24
carla::sensor::s11n::SensorHeaderSerializer::header_offset
static constexpr auto header_offset
Definition
SensorHeaderSerializer.h:32
carla::sensor::s11n::SensorHeaderSerializer::Deserialize
static const Header & Deserialize(const Buffer &message)
Definition
SensorHeaderSerializer.h:40
carla
CARLA模拟器的主命名空间。
Definition
Carla.cpp:139
Transform.h
carla::sensor::s11n::SensorHeaderSerializer::Header
Definition
SensorHeaderSerializer.h:23
carla::sensor::s11n::SensorHeaderSerializer::Header::timestamp
double timestamp
Definition
SensorHeaderSerializer.h:26
carla::sensor::s11n::SensorHeaderSerializer::Header::frame
uint64_t frame
Definition
SensorHeaderSerializer.h:25
carla::sensor::s11n::SensorHeaderSerializer::Header::sensor_transform
rpc::Transform sensor_transform
Definition
SensorHeaderSerializer.h:27
carla::sensor::s11n::SensorHeaderSerializer::Header::sensor_type
uint64_t sensor_type
Definition
SensorHeaderSerializer.h:24
制作者
1.10.0