Communication Library for Autonomous Systems v1.0
Reliable and secure communication library for autonomous vehicle systems
Loading...
Searching...
No Matches
VehicleRSUManager< Protocol_T > Class Template Reference

#include <vehicleRSUManager.h>

Classes

struct  RSUInfo
 

Public Member Functions

 VehicleRSUManager (unsigned int vehicle_id, std::chrono::seconds timeout=std::chrono::seconds(10))
 
 ~VehicleRSUManager ()
 
void process_rsu_status (const typename Protocol_T::Address &rsu_address, double x, double y, double radius, const MacKeyType &group_key)
 
void update_leader_selection ()
 
void update_distances ()
 
void cleanup_stale_rsus ()
 
RSUInfoget_current_leader ()
 
std::vector< RSUInfoget_known_rsus ()
 
void add_neighbor_rsu_key (const MacKeyType &key)
 
std::vector< MacKeyTypeget_neighbor_rsu_keys ()
 
bool remove_neighbor_rsu_key (const MacKeyType &key)
 

Detailed Description

template<typename Protocol_T>
class VehicleRSUManager< Protocol_T >

VehicleRSUManager - Simplified collision domain logic

Leader selection is based on communication ability (collision domain). If a vehicle can receive STATUS messages from an RSU, they are within the collision domain and the RSU is eligible to be the leader.

The closest RSU (by distance) that we can communicate with becomes the leader.

Constructor & Destructor Documentation

◆ VehicleRSUManager()

template<typename Protocol_T >
VehicleRSUManager< Protocol_T >::VehicleRSUManager ( unsigned int  vehicle_id,
std::chrono::seconds  timeout = std::chrono::seconds(10) 
)
inline

◆ ~VehicleRSUManager()

template<typename Protocol_T >
VehicleRSUManager< Protocol_T >::~VehicleRSUManager ( )
inline

Member Function Documentation

◆ add_neighbor_rsu_key()

template<typename Protocol_T >
void VehicleRSUManager< Protocol_T >::add_neighbor_rsu_key ( const MacKeyType key)
inline

◆ cleanup_stale_rsus()

template<typename Protocol_T >
void VehicleRSUManager< Protocol_T >::cleanup_stale_rsus ( )
inline

◆ get_current_leader()

template<typename Protocol_T >
RSUInfo * VehicleRSUManager< Protocol_T >::get_current_leader ( )
inline

◆ get_known_rsus()

template<typename Protocol_T >
std::vector< RSUInfo > VehicleRSUManager< Protocol_T >::get_known_rsus ( )
inline

◆ get_neighbor_rsu_keys()

template<typename Protocol_T >
std::vector< MacKeyType > VehicleRSUManager< Protocol_T >::get_neighbor_rsu_keys ( )
inline

◆ process_rsu_status()

template<typename Protocol_T >
void VehicleRSUManager< Protocol_T >::process_rsu_status ( const typename Protocol_T::Address &  rsu_address,
double  x,
double  y,
double  radius,
const MacKeyType group_key 
)
inline

◆ remove_neighbor_rsu_key()

template<typename Protocol_T >
bool VehicleRSUManager< Protocol_T >::remove_neighbor_rsu_key ( const MacKeyType key)
inline

◆ update_distances()

template<typename Protocol_T >
void VehicleRSUManager< Protocol_T >::update_distances ( )
inline

◆ update_leader_selection()

template<typename Protocol_T >
void VehicleRSUManager< Protocol_T >::update_leader_selection ( )
inline

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