mars_lib  0.1.0.3dc76ee85e09
Modular and Robust Sensor-Fusion
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 More...
 
bool remove_sensor (Buffer &buffer, std::shared_ptr< SensorAbsClass > sensor)
 remove_sensor Remove a sensor from the sensor manager More...
 
void list_sensors ()
 list_sensors Print the information of all registered sensors More...
 
bool does_sensor_exist (std::shared_ptr< SensorAbsClass > sensor)
 does_sensor_exist Check if a sensor is registered More...
 
bool deactivate_sensor (Buffer &buffer, std::shared_ptr< SensorAbsClass > sensor)
 deactivate_sensor Deactivate a sensor More...
 
bool activate_sensor (std::shared_ptr< SensorAbsClass > sensor)
 activate_sensor Activate a sensor More...
 

Public Attributes

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

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: