3 #include <mavros_msgs/Tunnel.h>
8 namespace extra_plugins
36 const auto mav_tunnel =
37 copy_tunnel<mavros_msgs::Tunnel, mavlink::common::msg::TUNNEL>(
42 catch (
const std::overflow_error& e)
49 mavlink::common::msg::TUNNEL& mav_tunnel)
53 const auto ros_tunnel =
54 copy_tunnel<mavlink::common::msg::TUNNEL, mavros_msgs::Tunnel>(
59 catch (
const std::overflow_error& e)
65 template <
typename From,
typename To>
68 static constexpr
auto max_payload_length =
69 sizeof(mavlink::common::msg::TUNNEL::payload) /
70 sizeof(mavlink::common::msg::TUNNEL::payload[0]);
72 if (from.payload_length > max_payload_length)
74 throw std::overflow_error(
"too long payload length");
79 to.target_system = from.target_system;
80 to.target_component = from.target_component;
81 to.payload_type = from.payload_type;
82 to.payload_length = from.payload_length;
83 std::copy(from.payload.begin(),
84 from.payload.begin() + from.payload_length,