Carma-platform v4.2.0
CARMA Platform is built on robot operating system (ROS) and utilizes open source software (OSS) that enables Cooperative Driving Automation (CDA) features to allow Automated Driving Systems to interact and cooperate with infrastructure and other vehicles through communication.
route::RouteStateWorker Class Reference

#include <route_state_worker.hpp>

Collaboration diagram for route::RouteStateWorker:
Collaboration graph

Public Member Functions

 RouteStateWorker ()=default
 
void onRouteEvent (RouteEvent event)
 Process route event based on designed state machine diagram. More...
 
RouteState getRouteState () const
 Get current route state machine state. More...
 
void setLoggerInterface (rclcpp::node_interfaces::NodeLoggingInterface::SharedPtr logger)
 

Private Attributes

RouteState state_ = RouteState::LOADING
 
rclcpp::node_interfaces::NodeLoggingInterface::SharedPtr logger_
 

Detailed Description

Definition at line 118 of file route_state_worker.hpp.

Constructor & Destructor Documentation

◆ RouteStateWorker()

route::RouteStateWorker::RouteStateWorker ( )
default

Member Function Documentation

◆ getRouteState()

RouteState route::RouteStateWorker::getRouteState ( ) const

◆ onRouteEvent()

void route::RouteStateWorker::onRouteEvent ( RouteEvent  event)

Process route event based on designed state machine diagram.

Parameters
eventIncoming route event

Definition at line 25 of file route_state_worker.cpp.

25 {
26
27 auto old_state = state_;
28
29 switch (state_)
30 {
32 if(event == RouteEvent::ROUTE_LOADED)
33 {
35 }
36 break;
39 {
41 }
42 break;
44 if(event == RouteEvent::ROUTE_STARTED)
45 {
47 } else if(event == RouteEvent::ROUTE_GEN_FAILED)
48 {
50 }
51 break;
54 {
56 }
57 else if(event == RouteEvent::ROUTE_INVALIDATION)
58 {
60 }
61 break;
62 default:
63 // should not reach here
64 throw std::invalid_argument("Current state is illegal: " + std::to_string(state_));
65 }
66
67 RCLCPP_INFO_STREAM(logger_->get_logger(), "Received Route Event: "
68 << static_cast<RouteEvent>(event) << " transitioning from: "
69 << static_cast<RouteState>(old_state) << " to: "
70 << static_cast<RouteState>(state_));
71 }
rclcpp::node_interfaces::NodeLoggingInterface::SharedPtr logger_
auto to_string(const UtmZone &zone) -> std::string
Definition: utm_zone.cpp:21

References route::FOLLOWING, route::LOADING, logger_, route::ROUTE_ABORTED, route::ROUTE_COMPLETED, route::ROUTE_DEPARTED, route::ROUTE_GEN_FAILED, route::ROUTE_INVALIDATION, route::ROUTE_LOADED, route::ROUTE_SELECTED, route::ROUTE_STARTED, route::ROUTING, route::SELECTION, state_, and carma_cooperative_perception::to_string().

Referenced by route::RouteGeneratorWorker::abortActiveRouteCb(), route::RouteGeneratorWorker::bumperPoseCb(), route::RouteGeneratorWorker::getAvailableRouteCb(), route::RouteGeneratorWorker::setActiveRouteCb(), route::RouteGeneratorWorker::setRouteFilePath(), and route::RouteGeneratorWorker::spinCallback().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ setLoggerInterface()

void route::RouteStateWorker::setLoggerInterface ( rclcpp::node_interfaces::NodeLoggingInterface::SharedPtr  logger)

Definition at line 73 of file route_state_worker.cpp.

74 {
75 logger_ = logger;
76 }

References logger_.

Referenced by route::RouteGeneratorWorker::setLoggerInterface().

Here is the caller graph for this function:

Member Data Documentation

◆ logger_

rclcpp::node_interfaces::NodeLoggingInterface::SharedPtr route::RouteStateWorker::logger_
private

Definition at line 143 of file route_state_worker.hpp.

Referenced by onRouteEvent(), and setLoggerInterface().

◆ state_

RouteState route::RouteStateWorker::state_ = RouteState::LOADING
private

Definition at line 140 of file route_state_worker.hpp.

Referenced by getRouteState(), and onRouteEvent().


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