CARLA
 
载入中...
搜索中...
未找到
LibCarla/source/carla/client/LaneInvasionSensor.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 * @file LaneInvasionSensor.h
10 * @brief 包含LaneInvasionSensor类的声明,这是一个继承自ClientSideSensor的类,用于检测车辆压线。
11 */
13
14#include <atomic>
15 /**
16 * @namespace carla
17 * @brief CARLA模拟器的主命名空间。
18 */
19namespace carla {
20 /**
21 * @namespace client
22 * @brief 包含CARLA客户端相关类和函数的命名空间。
23 */
24namespace client {
25 /**
26 * @class Map
27 * @brief 地图类的前向声明,用于在LaneInvasionSensor类中可能的引用。
28 */
29 class Map;
30 /**
31 * @class Vehicle
32 * @brief 车辆类的前向声明,用于在LaneInvasionSensor类中可能的引用。
33 */
34 class Vehicle;
35 /**
36 * @class LaneInvasionSensor
37 * @brief LaneInvasionSensor类是一个检测车辆压线的传感器,继承自ClientSideSensor。
38 */
39 class LaneInvasionSensor final : public ClientSideSensor {
40 public:
41 /**
42 * @brief 使用基类ClientSideSensor的构造函数。
43 */
44 using ClientSideSensor::ClientSideSensor;
45 /**
46 * @brief 析构函数,用于清理LaneInvasionSensor对象。
47 */
49
50 /**
51 * @brief 注册一个回调,每次收到新的车辆压线测量值时执行。
52 *
53 * @param callback 回调函数,当接收到新的测量值时会被调用。
54 * @warning 在已在监听的传感器上调用此函数会替换先前设置的回调,从而窃取其数据流。
55 * 请注意,多个传感器实例(即使在不同的进程中)可能指向模拟器中的同一物理传感器。
56 */
57 void Listen(CallbackFunctionType callback) override;
58
59 /**
60 * @brief 停止监听新的车辆压线测量结果。
61 */
62 void Stop() override;
63
64 /**
65 * @brief 返回此传感器实例当前是否正在监听模拟器中的相关传感器。
66 *
67 * @return 如果正在监听,则返回true;否则返回false。
68 */
69 bool IsListening() const override {
70 return _callback_id != 0u;
71 }
72
73 private:
74 /**
75 * @brief 原子性的回调ID,用于标识当前设置的回调。
76 * 当_callback_id不为0时,表示正在监听。
77 */
78 std::atomic_size_t _callback_id{0u};
79 };
80
81} // namespace client
82} // namespace carla
地图类的前向声明,用于在LaneInvasionSensor类中可能的引用。
LaneInvasionSensor类是一个检测车辆压线的传感器,继承自ClientSideSensor。
std::atomic_size_t _callback_id
原子性的回调ID,用于标识当前设置的回调。 当_callback_id不为0时,表示正在监听。
~LaneInvasionSensor()
析构函数,用于清理LaneInvasionSensor对象。
void Stop() override
停止监听新的车辆压线测量结果。
void Listen(CallbackFunctionType callback) override
注册一个回调,每次收到新的车辆压线测量值时执行。
bool IsListening() const override
返回此传感器实例当前是否正在监听模拟器中的相关传感器。
std::function< void(SharedPtr< sensor::SensorData >)> CallbackFunctionType
回调函数的类型别名,用于接收传感器数据。
CARLA模拟器的主命名空间。
Definition Carla.cpp:139
包含CARLA客户端相关类和函数的命名空间。