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.
approaching_emergency_vehicle_transition_table.hpp
Go to the documentation of this file.
1/*
2 * Copyright (C) 2022 LEIDOS.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License"); you may not
5 * use this file except in compliance with the License. You may obtain a copy of
6 * the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
12 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
13 * License for the specific language governing permissions and limitations under
14 * the License.
15 */
16
17#pragma once
18
20#include <rclcpp/rclcpp.hpp>
21#include <functional>
22
24{
29 {
30 public:
33
40
46
53
62
63 private:
66
68
69 // Helper functions for processing each the provided events based on the current state
73
79
87 };
88} // namespace approaching_emergency_vehicle_plugin
Class defining the state transition table behavior for the ApproachingEmergencyVehiclePlugin.
void logDebugEvent(ApproachingEmergencyVehicleEvent event) const
Helper function for logging the provide event.
void setAndLogState(ApproachingEmergencyVehicleState new_state, ApproachingEmergencyVehicleEvent source_event)
Function to change the current state and log the details of the transition.
ApproachingEmergencyVehicleTransitionTable()=default
ApproachingEmergencyVehicleTransitionTable Constructor.
void event(ApproachingEmergencyVehicleEvent event)
Trigger event for the transition table.
ApproachingEmergencyVehicleState state_
Current state. This state should only ever be set using the setAndLogState() function.
void setTransitionCallback(TransitionCallback cb)
Callback setting function. The provided callback will be triggered any time the current state changes...
std::function< void(ApproachingEmergencyVehicleState prev_state, ApproachingEmergencyVehicleState new_state, ApproachingEmergencyVehicleEvent event)> TransitionCallback
ApproachingEmergencyVehicleEvent
Enum describing the possible signals to change the current ApproachingEmergencyVehicleState.
ApproachingEmergencyVehicleState
Enum describing the possible states of the ApproachingEmergencyVehiclePlugin (Strategic Plugin)