CARLA
 
载入中...
搜索中...
未找到
primaryCommands.h
浏览该文件的文档.
1// Copyright (c) 2022 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/Logging.h" // 原本可能计划包含用于日志记录相关功能的头文件,但目前被注释掉了,也许后续根据需求会添加进来用于记录相关操作的日志信息
10// 包含多GPU相关命令定义的头文件,里面应该定义了在多GPU环境下涉及的各种操作命令相关的数据结构、函数等内容
11#include "carla/multigpu/commands.h" // 包含多GPU环境中主节点相关功能的头文件,可能定义了主节点相关的类、接口等,用于处理主节点的操作逻辑
12#include "carla/multigpu/primary.h" // 包含流媒体相关的TCP消息定义的头文件,用于处理在网络传输中基于TCP协议的消息相关操作和数据结构
13#include "carla/streaming/detail/tcp/Message.h" // 包含流媒体相关的令牌(Token)定义的头文件,Token可能用于标识不同的流媒体会话、资源等,方便进行相关管理和操作
14#include "carla/streaming/detail/Token.h" // 包含流媒体相关的类型定义的头文件,里面定义了在流媒体处理过程中用到的各种自定义类型,便于统一类型管理和代码的清晰性
16// 定义在carla命名空间下的multigpu命名空间中,用于组织和限定多GPU相关代码的作用域,避免命名冲突
17namespace carla {
18namespace multigpu {
19
20// using session = std::shared_ptr<Primary>;
21// using callback_response = std::function<void(std::shared_ptr<Primary>, carla::Buffer)>;
24
25class Router;
26
28 public:
29
30
32 PrimaryCommands(std::shared_ptr<Router> router);
33
34 void set_router(std::shared_ptr<Router> router);
35
36 // 向所有辅助服务器广播帧数据
37 void SendFrameData(carla::Buffer buffer);
38
39 // 向所有辅助服务器广播要加载的地图
40 void SendLoadMap(std::string map);
41
42 // 发送以了解连接是否处于活动状态
43 void SendIsAlive();
44
45 token_type GetToken(stream_id sensor_id);
46
47 void EnableForROS(stream_id sensor_id);
48
49 void DisableForROS(stream_id sensor_id);
50
51 bool IsEnabledForROS(stream_id sensor_id);
52
53 private:
54
55 // 发送到一个辅助节点以获取传感器的令牌
57
58 // 管理 ROS 传感器的启用/禁用
59 void SendEnableForROS(stream_id sensor_id); // 与SendEnableForROS函数类似,用于向相关节点发送禁用ROS传感器的消息,是DisableForROS函数的底层实现逻辑的一部分,实现关闭ROS相关功能的具体网络通信操作
60 void SendDisableForROS(stream_id sensor_id); // 与IsEnabledForROS函数类似,用于向相关节点发送查询请求以了解ROS传感器是否已被启用的消息,并返回查询结果,是IsEnabledForROS函数的底层实现逻辑的一部分,通过网络通信获取当前传感器在ROS方面的启用状态
61 bool SendIsEnabledForROS(stream_id sensor_id);
62
63
64 std::shared_ptr<Router> _router;
65 std::unordered_map<stream_id, token_type> _tokens;// 成员变量,使用无序映射(unordered_map)存储传感器流标识(stream_id)与指向Primary类的弱智能指针(std::weak_ptr<Primary>)之间的映射关系,用于关联传感器流和对应的主节点相关信息,弱智能指针可以避免循环引用等问题
66 std::unordered_map<stream_id, std::weak_ptr<Primary>> _servers;
67};
68
69} // namespace multigpu
70} // namespace carla
包含 Carla 框架中与网络流相关的类和函数的声明。
包含与Carla流处理相关的底层细节的头文件。
一块原始数据。 请注意,如果需要更多容量,则会分配一个新的内存块,并 删除旧的内存块。这意味着默认情况下,缓冲区只能增长。要释放内存,使用 clear 或 pop。
void SendEnableForROS(stream_id sensor_id)
std::unordered_map< stream_id, token_type > _tokens
void set_router(std::shared_ptr< Router > router)
void DisableForROS(stream_id sensor_id)
bool SendIsEnabledForROS(stream_id sensor_id)
token_type GetToken(stream_id sensor_id)
void SendFrameData(carla::Buffer buffer)
void EnableForROS(stream_id sensor_id)
std::unordered_map< stream_id, std::weak_ptr< Primary > > _servers
token_type SendGetToken(carla::streaming::detail::stream_id_type sensor_id)
void SendDisableForROS(stream_id sensor_id)
bool IsEnabledForROS(stream_id sensor_id)
std::shared_ptr< Router > _router
静态断言,用于确保token_data结构体的大小与Token::data的大小相同。
包含CARLA流处理相关头文件和Boost.Asio网络库头文件。 包含CARLA的调试功能相关定义。 包含CARLA流处理的端点(EndPoint)类定义。 包含CARLA流处理的令牌(Token)类...
carla::streaming::detail::stream_id_type stream_id
uint32_t stream_id_type
流ID的类型定义。
Definition Types.h:33
CARLA模拟器的主命名空间。
Definition Carla.cpp:139