mavros.h
Go to the documentation of this file.
1 
10 /*
11  * Copyright 2014,2015 Vladimir Ermakov.
12  *
13  * This file is part of the mavros package and subject to the license terms
14  * in the top-level LICENSE file of the mavros repository.
15  * https://github.com/mavlink/mavros/tree/master/LICENSE.md
16  */
17 
18 #pragma once
19 
20 #include <array>
21 #include <ros/ros.h>
23 #include <mavconn/interface.h>
24 #include <mavros/mavros_plugin.h>
25 #include <mavros/mavlink_diag.h>
26 #include <mavros/utils.h>
27 
28 namespace mavros {
34 class MavRos
35 {
36 public:
37  MavRos();
38  ~MavRos() {};
39 
40  void spin();
41 
42 private:
44  // fcu_link stored in mav_uas
49 
52 
56 
58  std::vector<plugin::PluginBase::Ptr> loaded_plugins;
59 
61  std::unordered_map<mavlink::msgid_t, plugin::PluginBase::Subscriptions> plugin_subscriptions;
62 
65 
67  void mavlink_pub_cb(const mavlink::mavlink_message_t *mmsg, const mavconn::Framing framing);
70 
72  void plugin_route_cb(const mavlink::mavlink_message_t *mmsg, const mavconn::Framing framing);
73 
75  void add_plugin(std::string &pl_name, ros::V_string &blacklist, ros::V_string &whitelist);
76 
78  void startup_px4_usb_quirk();
79  void log_connect_change(bool connected);
80 };
81 } // namespace mavros
82 
mavros::MavRos
MAVROS node class.
Definition: mavros.h:34
mavros::MavRos::plugin_route_cb
void plugin_route_cb(const mavlink::mavlink_message_t *mmsg, const mavconn::Framing framing)
message router
Definition: mavros.cpp:267
ros::Publisher
mavros::MavRos::startup_px4_usb_quirk
void startup_px4_usb_quirk()
start mavlink app on USB
Definition: mavros.cpp:395
mavros::MavRos::mavlink_sub_cb
void mavlink_sub_cb(const mavros_msgs::Mavlink::ConstPtr &rmsg)
ros -> fcu link
Definition: mavros.cpp:257
mavros::MavRos::loaded_plugins
std::vector< plugin::PluginBase::Ptr > loaded_plugins
Definition: mavros.h:58
ros.h
mavros::UAS
UAS for plugins.
Definition: mavros_uas.h:67
mavros::MavRos::gcs_link_diag
MavlinkDiag gcs_link_diag
Definition: mavros.h:55
diagnostic_updater::Updater
ConstPtr
std::shared_ptr< MAVConnInterface const > ConstPtr
mavros::MavRos::mavlink_nh
ros::NodeHandle mavlink_nh
Definition: mavros.h:43
mavros::MavRos::last_message_received_from_gcs
ros::Time last_message_received_from_gcs
Definition: mavros.h:47
utils.h
some useful utils
mavros::MavRos::plugin_loader
pluginlib::ClassLoader< plugin::PluginBase > plugin_loader
Definition: mavros.h:57
mavconn::Framing
Framing
mavros::MavlinkDiag
Definition: mavlink_diag.h:23
mavros::MavRos::gcs_quiet_mode
bool gcs_quiet_mode
Definition: mavros.h:46
mavros::MavRos::fcu_link_diag
MavlinkDiag fcu_link_diag
Definition: mavros.h:54
mavros::MavRos::mavlink_sub
ros::Subscriber mavlink_sub
Definition: mavros.h:51
mavros::MavRos::log_connect_change
void log_connect_change(bool connected)
Definition: mavros.cpp:407
pluginlib::ClassLoader
class_loader.hpp
mavconn::MAVConnInterface::Ptr
std::shared_ptr< MAVConnInterface > Ptr
mavros::MavRos::plugin_subscriptions
std::unordered_map< mavlink::msgid_t, plugin::PluginBase::Subscriptions > plugin_subscriptions
FCU link -> router -> plugin handler.
Definition: mavros.h:61
mavros_plugin.h
MAVROS Plugin base.
mavros::MavRos::mav_uas
UAS mav_uas
UAS object passed to all plugins.
Definition: mavros.h:64
mavros::MavRos::MavRos
MavRos()
Definition: mavros.cpp:34
mavros
Definition: frame_tf.h:34
mavros::MavRos::mavlink_pub_cb
void mavlink_pub_cb(const mavlink::mavlink_message_t *mmsg, const mavconn::Framing framing)
fcu link -> ros
Definition: mavros.cpp:245
ros::Time
mavros::MavRos::spin
void spin()
Definition: mavros.cpp:202
mavros::MavRos::add_plugin
void add_plugin(std::string &pl_name, ros::V_string &blacklist, ros::V_string &whitelist)
load plugin
Definition: mavros.cpp:329
mavros::MavRos::~MavRos
~MavRos()
Definition: mavros.h:38
mavros::MavRos::conn_timeout
ros::Duration conn_timeout
Definition: mavros.h:48
ros::V_string
std::vector< std::string > V_string
mavros::MavRos::gcs_link
mavconn::MAVConnInterface::Ptr gcs_link
Definition: mavros.h:45
mavros::MavRos::mavlink_pub
ros::Publisher mavlink_pub
Definition: mavros.h:50
interface.h
ros::Duration
mavros::MavRos::gcs_diag_updater
diagnostic_updater::Updater gcs_diag_updater
Definition: mavros.h:53
ros::NodeHandle
ros::Subscriber


mavros
Author(s): Vladimir Ermakov
autogenerated on Tue May 6 2025 02:34:03