Galaxis Codebase  1.0.0
Team Galaxis software stack for the Carolo Cup 2023 - ROS2 based software
ros_heartbeat.hpp
Go to the documentation of this file.
1 #ifndef ROS_HEARTBEAT_H
2 #define ROS_HEARTBEAT_H
3 
5 #include "rclcpp/rclcpp.hpp"
6 #include "galaxis/messages.hpp"
8 
9 #include <string>
10 
11 constexpr unsigned int _HEARTBEAT_MAXIMUM_PERIOD_TIME = 500;
12 
13 namespace galaxis {
14  class ROSHeartbeat {
15  private:
16  rclcpp::Node* m_nodePtr = nullptr;
17  rclcpp::Publisher<HeartbeatMessageType>::SharedPtr m_publisherSPtr;
18  std::chrono::milliseconds m_period;
19  rclcpp::TimerBase::SharedPtr m_periodicTimer;
21  std::string m_nodeName = "UNDEFINED";
22 
23  public:
24  ROSHeartbeat() = delete;
25  ROSHeartbeat(rclcpp::Node* p_nodePtr, std::string& p_nodeNameRef, unsigned int p_period);
26  ~ROSHeartbeat();
27 
28  void beat(void);
29  void set_service_state(::galaxis::serviceStates::State const p_serviceState);
30  };
31 } // namespace galaxis
32 
33 #endif // !ROS_HEARTBEAT_H
galaxis::ROSHeartbeat::beat
void beat(void)
Definition: ros_heartbeat.cpp:30
galaxis::ROSHeartbeat::m_periodicTimer
rclcpp::TimerBase::SharedPtr m_periodicTimer
Definition: ros_heartbeat.hpp:19
galaxis::ROSHeartbeat::m_serviceState
::galaxis::serviceStates::State m_serviceState
Definition: ros_heartbeat.hpp:20
node_ros_pubsub_wrapper.hpp
galaxis::ROSHeartbeat::ROSHeartbeat
ROSHeartbeat()=delete
_HEARTBEAT_MAXIMUM_PERIOD_TIME
constexpr unsigned int _HEARTBEAT_MAXIMUM_PERIOD_TIME
Definition: ros_heartbeat.hpp:11
galaxis::ROSHeartbeat
Definition: ros_heartbeat.hpp:14
galaxis::serviceStates::BOOTSTRAP
@ BOOTSTRAP
Definition: ServiceState.hpp:10
galaxis::ROSHeartbeat::m_nodePtr
rclcpp::Node * m_nodePtr
Definition: ros_heartbeat.hpp:16
galaxis::ROSHeartbeat::set_service_state
void set_service_state(::galaxis::serviceStates::State const p_serviceState)
Definition: ros_heartbeat.cpp:38
galaxis
Definition: MapClasses.hpp:10
galaxis::ROSHeartbeat::m_nodeName
std::string m_nodeName
Definition: ros_heartbeat.hpp:21
galaxis::ROSHeartbeat::~ROSHeartbeat
~ROSHeartbeat()
Definition: ros_heartbeat.cpp:26
ServiceState.hpp
galaxis::ROSHeartbeat::m_publisherSPtr
rclcpp::Publisher< HeartbeatMessageType >::SharedPtr m_publisherSPtr
Definition: ros_heartbeat.hpp:17
galaxis::ROSHeartbeat::m_period
std::chrono::milliseconds m_period
Definition: ros_heartbeat.hpp:18
messages.hpp
galaxis::serviceStates::State
State
Definition: ServiceState.hpp:9