PX4 ROS 2 Interface Library
Library to interface with PX4 from a companion computer using ROS 2
Loading...
Searching...
No Matches
message_version.hpp
1/****************************************************************************
2 * Copyright (c) 2025 PX4 Development Team.
3 * SPDX-License-Identifier: BSD-3-Clause
4 ****************************************************************************/
5
12#pragma once
13
14#include <string>
15#include <type_traits>
16
17namespace px4_ros2
18{
19
28template<typename T, typename = void>
29struct HasMessageVersion : std::false_type {};
30
32template<typename T>
33struct HasMessageVersion<T, std::void_t<decltype(T::MESSAGE_VERSION)>>: std::true_type {};
34
41template<typename T>
42std::string getMessageNameVersion()
43{
44 if constexpr (HasMessageVersion<T>::value) {
45 if (T::MESSAGE_VERSION == 0) {return "";}
46 return "_v" + std::to_string(T::MESSAGE_VERSION);
47 } else {
48 return "";
49 }
50}
51
52
53} // namespace px4_ros2
Trait to check if a message type T has a MESSAGE_VERSION constant.
Definition message_version.hpp:29