UDP interface. More...
#include <udp.h>
Public Member Functions | |
void | close () override |
Close connection. More... | |
bool | is_open () override |
MAVConnUDP (uint8_t system_id=1, uint8_t component_id=MAV_COMP_ID_UDP_BRIDGE, std::string bind_host=DEFAULT_BIND_HOST, unsigned short bind_port=DEFAULT_BIND_PORT, std::string remote_host=DEFAULT_REMOTE_HOST, unsigned short remote_port=DEFAULT_REMOTE_PORT) | |
void | send_bytes (const uint8_t *bytes, size_t length) override |
Send raw bytes (for some quirks) More... | |
void | send_message (const mavlink::mavlink_message_t *message) override |
Send message (mavlink_message_t) More... | |
void | send_message (const mavlink::Message &message, const uint8_t source_compid) override |
Send message (child of mavlink::Message) More... | |
~MAVConnUDP () | |
Public Member Functions inherited from mavconn::MAVConnInterface | |
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 () |
MAVConnInterface (uint8_t system_id=1, uint8_t component_id=MAV_COMP_ID_UDP_BRIDGE) | |
virtual void | send_message (const mavlink::Message &message) |
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 Attributes | |
static constexpr auto | BROADCAST_REMOTE_HOST = "***i want broadcast***" |
Markers for broadcast modes. Not valid domain names. More... | |
static constexpr auto | DEFAULT_BIND_HOST = "localhost" |
static constexpr auto | DEFAULT_BIND_PORT = 14555 |
static constexpr auto | DEFAULT_REMOTE_HOST = "" |
static constexpr auto | DEFAULT_REMOTE_PORT = 14550 |
static constexpr auto | PERMANENT_BROADCAST_REMOTE_HOST = "***permanent broadcast***" |
Private Member Functions | |
void | do_recvfrom () |
void | do_sendto (bool check_tx_state) |
Private Attributes | |
boost::asio::ip::udp::endpoint | bind_ep |
boost::asio::io_service | io_service |
std::thread | io_thread |
std::unique_ptr< boost::asio::io_service::work > | io_work |
boost::asio::ip::udp::endpoint | last_remote_ep |
std::recursive_mutex | mutex |
bool | permanent_broadcast |
boost::asio::ip::udp::endpoint | recv_ep |
boost::asio::ip::udp::endpoint | remote_ep |
std::atomic< bool > | remote_exists |
std::array< uint8_t, MsgBuffer::MAX_SIZE > | rx_buf |
boost::asio::ip::udp::socket | socket |
std::atomic< bool > | tx_in_progress |
std::deque< MsgBuffer > | tx_q |
Additional Inherited Members | |
Public Types inherited from mavconn::MAVConnInterface | |
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 > |
Static Public Member Functions inherited from mavconn::MAVConnInterface | |
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 inherited from mavconn::MAVConnInterface | |
ReceivedCb | message_received_cb |
Message receive callback. More... | |
ClosedCb | port_closed_cb |
Port closed notification callback. More... | |
Protected Member Functions inherited from mavconn::MAVConnInterface | |
mavlink::mavlink_message_t * | get_buffer_p () |
mavlink::mavlink_status_t * | get_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 inherited from mavconn::MAVConnInterface | |
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 inherited from mavconn::MAVConnInterface | |
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... | |