Classes | Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes | Static Protected Attributes | Private Member Functions | Static Private Member Functions | Private Attributes | Static Private Attributes | Friends | List of all members
mavconn::MAVConnInterface Class Referenceabstract

Generic mavlink interface. More...

#include <interface.h>

Inheritance diagram for mavconn::MAVConnInterface:
Inheritance graph
[legend]

Classes

struct  IOStat
 

Public Types

using ClosedCb = std::function< void(void)>
 
using ConstPtr = std::shared_ptr< MAVConnInterface const >
 
using Ptr = std::shared_ptr< MAVConnInterface >
 
using ReceivedCb = std::function< void(const mavlink::mavlink_message_t *message, const Framing framing)>
 
using WeakPtr = std::weak_ptr< MAVConnInterface >
 

Public Member Functions

virtual void close ()=0
 Close connection. More...
 
uint8_t get_component_id ()
 
virtual IOStat get_iostat ()
 
Protocol get_protocol_version ()
 
virtual mavlink::mavlink_status_t get_status ()
 
uint8_t get_system_id ()
 
virtual bool is_open ()=0
 
 MAVConnInterface (uint8_t system_id=1, uint8_t component_id=MAV_COMP_ID_UDP_BRIDGE)
 
virtual void send_bytes (const uint8_t *bytes, size_t length)=0
 Send raw bytes (for some quirks) More...
 
virtual void send_message (const mavlink::mavlink_message_t *message)=0
 Send message (mavlink_message_t) More...
 
virtual void send_message (const mavlink::Message &message)
 Send message (child of mavlink::Message) More...
 
virtual void send_message (const mavlink::Message &message, const uint8_t src_compid)=0
 Send message (child of mavlink::Message) More...
 
void send_message_ignore_drop (const mavlink::mavlink_message_t *message)
 Send message and ignore possible drop due to Tx queue limit. More...
 
void send_message_ignore_drop (const mavlink::Message &message)
 Send message and ignore possible drop due to Tx queue limit. More...
 
void send_message_ignore_drop (const mavlink::Message &message, const uint8_t src_compid)
 Send message and ignore possible drop due to Tx queue limit. More...
 
void set_component_id (uint8_t compid)
 
void set_protocol_version (Protocol pver)
 
void set_system_id (uint8_t sysid)
 

Static Public Member Functions

static std::vector< std::string > get_known_dialects ()
 
static Ptr open_url (std::string url, uint8_t system_id=1, uint8_t component_id=MAV_COMP_ID_UDP_BRIDGE)
 Construct connection from URL. More...
 

Public Attributes

ReceivedCb message_received_cb
 Message receive callback. More...
 
ClosedCb port_closed_cb
 Port closed notification callback. More...
 

Protected Member Functions

mavlink::mavlink_message_tget_buffer_p ()
 
mavlink::mavlink_status_tget_status_p ()
 
void iostat_rx_add (size_t bytes)
 
void iostat_tx_add (size_t bytes)
 
void log_recv (const char *pfx, mavlink::mavlink_message_t &msg, Framing framing)
 
void log_send (const char *pfx, const mavlink::mavlink_message_t *msg)
 
void log_send_obj (const char *pfx, const mavlink::Message &msg)
 
void parse_buffer (const char *pfx, uint8_t *buf, const size_t bufsize, size_t bytes_received)
 

Protected Attributes

uint8_t comp_id
 Connection Component Id. More...
 
size_t conn_id
 Channel number used for logging. More...
 
uint8_t sys_id
 Connection System Id. More...
 

Static Protected Attributes

static constexpr size_t MAX_PACKET_SIZE = MAVLINK_MAX_PACKET_LEN + 16
 Maximum mavlink packet size + some extra bytes for padding. More...
 
static constexpr size_t MAX_TXQ_SIZE = 1000
 Maximum count of transmission buffers. More...
 
static std::unordered_map< mavlink::msgid_t, const mavlink::mavlink_msg_entry_t * > message_entries {}
 This map merge all dialect mavlink_msg_entry_t structs. Needed for packet parser. More...
 

Private Member Functions

 MAVConnInterface (const MAVConnInterface &)=delete
 

Static Private Member Functions

static void init_msg_entry ()
 

Private Attributes

std::recursive_mutex iostat_mutex
 
std::chrono::time_point< steady_clocklast_iostat
 
size_t last_rx_total_bytes
 
size_t last_tx_total_bytes
 
mavlink::mavlink_message_t m_buffer
 
mavlink::mavlink_status_t m_mavlink_status
 
mavlink::mavlink_status_t m_parse_status
 
std::atomic< size_t > rx_total_bytes
 
std::atomic< size_t > tx_total_bytes
 

Static Private Attributes

static std::atomic< size_t > conn_id_counter {0}
 monotonic counter (increment only) More...
 
static std::once_flag init_flag
 init_msg_entry() once flag More...
 

Friends

const mavlink::mavlink_msg_entry_tmavlink::mavlink_get_msg_entry (uint32_t msgid)
 

Detailed Description

Generic mavlink interface.

Definition at line 97 of file interface.h.


The documentation for this class was generated from the following files:


libmavconn
Author(s): Vladimir Ermakov
autogenerated on Tue Jun 1 2021 02:36:21