mars_lib 0.1.0.2abe2576fe7f
Modular and Robust Sensor-Fusion
Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | List of all members
mars::SensorManager Class Reference

#include </home/runner/work/mars_lib/mars_lib/source/mars/include/mars/sensor_manager.h>

+ Collaboration diagram for mars::SensorManager:

Public Member Functions

 SensorManager ()=default
 
bool register_sensor (std::shared_ptr< SensorAbsClass > sensor)
 register_sensor Register a sensor with the sensor manager
 
bool remove_sensor (Buffer &buffer, std::shared_ptr< SensorAbsClass > sensor)
 remove_sensor Remove a sensor from the sensor manager
 
void list_sensors ()
 list_sensors Print the information of all registered sensors
 
bool does_sensor_exist (std::shared_ptr< SensorAbsClass > sensor)
 does_sensor_exist Check if a sensor is registered
 
bool deactivate_sensor (Buffer &buffer, std::shared_ptr< SensorAbsClass > sensor)
 deactivate_sensor Deactivate a sensor
 
bool activate_sensor (std::shared_ptr< SensorAbsClass > sensor)
 activate_sensor Activate a sensor
 

Public Attributes

std::vector< std::shared_ptr< SensorAbsClass > > sensor_list_
 Vector containing all registered sensors.
 

Constructor & Destructor Documentation

◆ SensorManager()

mars::SensorManager::SensorManager ( )
default

Member Function Documentation

◆ register_sensor()

bool mars::SensorManager::register_sensor ( std::shared_ptr< SensorAbsClass sensor)
inline

register_sensor Register a sensor with the sensor manager

Parameters
sensorSensor to be registered
Returns
True if the sensor was registered, false if the sensor is already registered
33 {
34 // Check if sensor already exists
35 if (std::find(sensor_list_.begin(), sensor_list_.end(), sensor) != sensor_list_.end())
36 {
37 // Sensor is already registered
38 return false;
39 }
40
41 sensor_list_.push_back(sensor);
42 std::cout << "Registered sensor [" << sensor->name_ << "] with Sensor Manager" << std::endl;
43 return true;
44 }
std::vector< std::shared_ptr< SensorAbsClass > > sensor_list_
Vector containing all registered sensors.
Definition sensor_manager.h:24

◆ remove_sensor()

bool mars::SensorManager::remove_sensor ( Buffer buffer,
std::shared_ptr< SensorAbsClass sensor 
)
inline

remove_sensor Remove a sensor from the sensor manager

Parameters
bufferBuffer to remove the sensor from
sensorSensor to be removed
Returns
True if the sensor was removed, false if the sensor is not registered
53 {
54 if (!does_sensor_exist(sensor))
55 {
56 // Sensor is not registered
57 return false;
58 }
59 // Deactive the sensor
60 this->deactivate_sensor(buffer, sensor);
61 // Remove the sensor from the list
62 sensor_list_.erase(std::remove(sensor_list_.begin(), sensor_list_.end(), sensor), sensor_list_.end());
63 std::cout << "Removed sensor [" << sensor->name_ << "] from Sensor Manager" << std::endl;
64 return true;
65 }
bool deactivate_sensor(Buffer &buffer, std::shared_ptr< SensorAbsClass > sensor)
deactivate_sensor Deactivate a sensor
Definition sensor_manager.h:99
bool does_sensor_exist(std::shared_ptr< SensorAbsClass > sensor)
does_sensor_exist Check if a sensor is registered
Definition sensor_manager.h:84
+ Here is the call graph for this function:

◆ list_sensors()

void mars::SensorManager::list_sensors ( )
inline

list_sensors Print the information of all registered sensors

71 {
72 std::cout << "Sensor Manager contains " << sensor_list_.size() << " sensors" << std::endl;
73 for (auto& sensor : sensor_list_)
74 {
75 std::cout << *sensor << std::endl;
76 }
77 }

◆ does_sensor_exist()

bool mars::SensorManager::does_sensor_exist ( std::shared_ptr< SensorAbsClass sensor)
inline

does_sensor_exist Check if a sensor is registered

Parameters
sensorSensor to be checked
Returns
True if the sensor is registered, otherwise false
85 {
86 if (std::find(sensor_list_.begin(), sensor_list_.end(), sensor) != sensor_list_.end())
87 {
88 return true;
89 }
90 return false;
91 }
+ Here is the caller graph for this function:

◆ deactivate_sensor()

bool mars::SensorManager::deactivate_sensor ( Buffer buffer,
std::shared_ptr< SensorAbsClass sensor 
)
inline

deactivate_sensor Deactivate a sensor

Parameters
bufferBuffer to remove the sensor from
sensorSensor to be deactivated
Returns
False if the sensor is not registered, otherwise true
100 {
101 if (!does_sensor_exist(sensor))
102 {
103 // Sensor is not registered
104 return false;
105 }
106
107 // Reset the sensor
108 sensor->do_update_ = false;
109 sensor->is_initialized_ = false;
110 sensor->ref_to_nav_given_ = false;
111
112 // Call buffer to clear all entries of the sensor
113 if (buffer.RemoveSensorFromBuffer(sensor))
114 {
115 std::cout << "Removed sensor [" << sensor->name_ << "] from buffer" << std::endl;
116 }
117 else
118 {
119 std::cout << "Could not remove sensor [" << sensor->name_ << "] from buffer as buffer is empty" << std::endl;
120 return false;
121 }
122 return true;
123 }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ activate_sensor()

bool mars::SensorManager::activate_sensor ( std::shared_ptr< SensorAbsClass sensor)
inline

activate_sensor Activate a sensor

Parameters
sensorSensor to be activated
Returns
False if the sensor is not registered, otherwise true
131 {
132 if (!does_sensor_exist(sensor))
133 {
134 // Sensor is not registered
135 return false;
136 }
137
138 sensor->do_update_ = true;
139 std::cout << "Activated sensor [" << sensor->name_ << "]" << std::endl;
140 return true;
141 }
+ Here is the call graph for this function:

Member Data Documentation

◆ sensor_list_

std::vector<std::shared_ptr<SensorAbsClass> > mars::SensorManager::sensor_list_

Vector containing all registered sensors.


The documentation for this class was generated from the following file: