Galaxis Codebase  1.0.0
Team Galaxis software stack for the Carolo Cup 2023 - ROS2 based software
masterNode.hpp
Go to the documentation of this file.
1 #ifndef MASTERNODE_H
2 #define MASTERNODE_H
3 
4 #include <rclcpp/rclcpp.hpp>
7 #include <chrono>
8 
9 #include <atomic>
10 
11 constexpr long long _HEARTBEAT_CHECK_PERIOD = 50;
13 
14 class masterNode : public rclcpp::Node {
15 public:
16  masterNode();
17  ~masterNode();
18 
19 private:
20  std::map<std::string, std::pair<long long, galaxis::serviceStates::State>> system_state_;
21 
22  std::string nodeName;
23  rclcpp::Publisher<ServiceStateType>::SharedPtr service_state_pub_;
24  rclcpp::Publisher<SettingsValuesType>::SharedPtr settingsValuesPubSPtr;
25  rclcpp::Subscription<HeartbeatMessageType>::SharedPtr heartbeat_sub_;
26  rclcpp::Subscription<ButtonStateMessageType>::SharedPtr buttonStateSubSPtr;
28 
31  bool m_systemOnlineStatus = false;
32 
33  bool m_ecuOnlineStatus = false;
34  bool m_ecuInitStatus = false;
35 
36  void init(void);
37  void heartbeat_callback(const messages::msg::Heartbeat::SharedPtr msg);
38  bool getSystemOnlineState();
39  void print_system_status();
40  void check_heartbeats();
41  void switch_system_state(galaxis::serviceStates::State p_state, bool p_force);
42  void callback_buttonState(ButtonStateMessageType::SharedPtr const buttonStateMsgSPtr);
43  void handle_controller(bool start);
44 
46 
49 };
50 
51 #endif //MASTERNODE_H
masterNode::masterNode
masterNode()
Definition: masterNode.cpp:20
masterNode::m_previousServiceState
galaxis::serviceStates::State m_previousServiceState
Definition: masterNode.hpp:30
masterNode::get_service_state_by_uint8
galaxis::serviceStates::State get_service_state_by_uint8(uint8_t p_state)
Definition: masterNode.cpp:259
masterNode::print_system_status
void print_system_status()
Definition: masterNode.cpp:83
masterNode::m_ecuOnlineStatus
bool m_ecuOnlineStatus
Definition: masterNode.hpp:33
masterNode::switch_system_state
void switch_system_state(galaxis::serviceStates::State p_state, bool p_force)
Definition: masterNode.cpp:140
masterNode::heartbeat_sub_
rclcpp::Subscription< HeartbeatMessageType >::SharedPtr heartbeat_sub_
Definition: masterNode.hpp:25
masterNode::buttonStateSubSPtr
rclcpp::Subscription< ButtonStateMessageType >::SharedPtr buttonStateSubSPtr
Definition: masterNode.hpp:26
masterNode::periodic_timer_print_system_status_
rclcpp::TimerBase::SharedPtr periodic_timer_print_system_status_
Definition: masterNode.hpp:27
masterNode::init
void init(void)
Definition: masterNode.cpp:36
_HEARTBEAT_MAXIMUM_PERIOD_TIME
constexpr unsigned int _HEARTBEAT_MAXIMUM_PERIOD_TIME
Definition: ros_heartbeat.hpp:11
masterNode::service_state_pub_
rclcpp::Publisher< ServiceStateType >::SharedPtr service_state_pub_
Definition: masterNode.hpp:23
_HEARTBEAT_MAXIMUM_OFF_TIME_MS
constexpr long long _HEARTBEAT_MAXIMUM_OFF_TIME_MS
Definition: masterNode.hpp:12
masterNode::check_heartbeats
void check_heartbeats()
Definition: masterNode.cpp:119
masterNode::system_state_
std::map< std::string, std::pair< long long, galaxis::serviceStates::State > > system_state_
Definition: masterNode.hpp:20
masterNode::callback_buttonState
void callback_buttonState(ButtonStateMessageType::SharedPtr const buttonStateMsgSPtr)
Definition: masterNode.cpp:174
masterNode::m_systemOnlineStatus
bool m_systemOnlineStatus
Definition: masterNode.hpp:31
galaxis::serviceStates::BOOTSTRAP
@ BOOTSTRAP
Definition: ServiceState.hpp:10
masterNode::getSystemOnlineState
bool getSystemOnlineState()
Definition: masterNode.cpp:102
masterNode::m_currentServiceState
galaxis::serviceStates::State m_currentServiceState
Definition: masterNode.hpp:29
ServiceState.hpp
masterNode::periodic_timer_
rclcpp::TimerBase::SharedPtr periodic_timer_
Definition: masterNode.hpp:27
masterNode::~masterNode
~masterNode()
Definition: masterNode.cpp:30
masterNode::settingsValuesPubSPtr
rclcpp::Publisher< SettingsValuesType >::SharedPtr settingsValuesPubSPtr
Definition: masterNode.hpp:24
masterNode::m_ecuInitStatus
bool m_ecuInitStatus
Definition: masterNode.hpp:34
ros_heartbeat.hpp
masterNode::heartbeat_callback
void heartbeat_callback(const messages::msg::Heartbeat::SharedPtr msg)
Definition: masterNode.cpp:153
masterNode
Definition: masterNode.hpp:14
masterNode::handle_controller
void handle_controller(bool start)
Definition: masterNode.cpp:169
_HEARTBEAT_CHECK_PERIOD
constexpr long long _HEARTBEAT_CHECK_PERIOD
Definition: masterNode.hpp:11
masterNode::get_service_state_by_enum_state
uint8_t get_service_state_by_enum_state(galaxis::serviceStates::State p_state)
Definition: masterNode.cpp:281
masterNode::initial_set_ecu_settings
void initial_set_ecu_settings()
Definition: masterNode.cpp:65
masterNode::nodeName
std::string nodeName
Definition: masterNode.hpp:22
galaxis::serviceStates::State
State
Definition: ServiceState.hpp:9