CARLA
 
载入中...
搜索中...
未找到
GnssSerializer.h
浏览该文件的文档.
1// Copyright (c) 2019 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/Memory.h" // 提供智能指针和内存管理相关的功能
10#include "carla/geom/GeoLocation.h" // 定义了 GeoLocation,表示地理位置信息
11#include "carla/rpc/ActorId.h" // 定义了 ActorId,用于标识参与者
12#include "carla/sensor/RawData.h" // 定义了 RawData,用于表示原始传感器数据
13
14#include <cstdint> // 提供固定大小的整数类型
15#include <cstring> // 提供内存操作函数
16
17namespace carla { // Carla 项目顶级命名空间
18namespace sensor { // 包含所有与传感器相关的功能
19
20 class SensorData; // 前向声明,用于表示传感器数据的基类
21
22namespace s11n { // 提供序列化和反序列化功能的命名空间
23
24 class GnssSerializer { // 数据的序列化器,用于处理 GNSS 数据的序列化和反序列化操作
25 public:
26
28 // 使用 MsgPack 解包 RawData 中的数据,并将其解析为 GeoLocation 对象
29 return MsgPack::UnPack<geom::GeoLocation>(message.begin(), message.size());
30 }
31
32 /// @brief 将地理位置信息序列化为二进制数据
33 /// @tparam SensorT 传感器类型
34 /// @param sensor 传感器对象
35 /// @param geo_location 包含地理位置信息的 GeoLocation 对象
36 /// @return 序列化后的 Buffer 对象,包含地理位置的二进制表示
37 template <typename SensorT>
39 const SensorT &,
40 const geom::GeoLocation &geo_location
41 ) { // 使用 MsgPack 将 GeoLocation 对象序列化为二进制数据
42 return MsgPack::Pack(geo_location);
43 }
44
46 };
47
48} // namespace s11n
49} // namespace sensor
50} // namespace carla
一块原始数据。 请注意,如果需要更多容量,则会分配一个新的内存块,并 删除旧的内存块。这意味着默认情况下,缓冲区只能增长。要释放内存,使用 clear 或 pop。
static Buffer Pack(const T &obj)
Definition MsgPack.h:18
包装一个传感器生成的原始数据以及一些有用的元信息。
Definition RawData.h:20
auto begin() noexcept
指向传感器生成的数据的开始迭代器。
Definition RawData.h:52
size_t size() const
传感器生成的数据的字节大小。
Definition RawData.h:82
static Buffer Serialize(const SensorT &, const geom::GeoLocation &geo_location)
将地理位置信息序列化为二进制数据
static SharedPtr< SensorData > Deserialize(RawData &&data)
从原始 GNSS 数据反序列化为 GnssMeasurement 对象
static geom::GeoLocation DeserializeRawData(const RawData &message)
CARLA模拟器的主命名空间。
Definition Carla.cpp:139
boost::shared_ptr< T > SharedPtr
使用这个SharedPtr(boost::shared_ptr)以保持与boost::python的兼容性, 但未来如果可能的话,我们希望能为std::shared_ptr制作一个Python适配器。
Definition Memory.h:19