Paparazzi UAS  v5.15_devel-81-gd13dafb
Paparazzi is a free software Unmanned Aircraft System.
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
udp_socket.h File Reference

Easily create and use UDP sockets. More...

#include <netinet/in.h>
#include "std.h"
+ Include dependency graph for udp_socket.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  UdpSocket
 

Functions

int udp_socket_create (struct UdpSocket *sock, char *host, int port_out, int port_in, bool broadcast)
 Create UDP network (in/out sockets). More...
 
int udp_socket_send (struct UdpSocket *sock, uint8_t *buffer, uint32_t len)
 Send a packet from buffer, blocking. More...
 
int udp_socket_send_dontwait (struct UdpSocket *sock, uint8_t *buffer, uint32_t len)
 Send a packet from buffer, non-blocking. More...
 
int udp_socket_recv_dontwait (struct UdpSocket *sock, uint8_t *buffer, uint32_t len)
 Receive a UDP packet, dont wait. More...
 
int udp_socket_recv (struct UdpSocket *sock, uint8_t *buffer, uint32_t len)
 Receive one UDP packet. More...
 
int udp_socket_subscribe_multicast (struct UdpSocket *sock, const char *multicast_addr)
 
int udp_socket_set_recvbuf (struct UdpSocket *sock, int buf_size)
 
int udp_socket_set_sendbuf (struct UdpSocket *sock, int buf_size)
 

Detailed Description

Easily create and use UDP sockets.

Basically just some convenience functions around a UDP socket.

Definition in file udp_socket.h.


Data Structure Documentation

struct UdpSocket

Definition at line 34 of file udp_socket.h.

+ Collaboration diagram for UdpSocket:
Data Fields
struct sockaddr_in addr_in
struct sockaddr_in addr_out
int sockfd

Function Documentation

int udp_socket_create ( struct UdpSocket sock,
char *  host,
int  port_out,
int  port_in,
bool  broadcast 
)

Create UDP network (in/out sockets).

Parameters
[out]sockpointer to already allocated UdpSocket struct
[in]hosthostname/address
[in]port_outoutput port
[in]port_ininput port (set to < 0 to disable)
[in]broadcastif TRUE enable broadcasting
Returns
-1 on error, otherwise 0

Create UDP network (in/out sockets).

Parameters
[out]sockpointer to already allocated UdpSocket struct
[in]hostip address or hostname (hostname not possible if static linking)
[in]port_outoutput port
[in]port_ininput port (set to < 0 to disable)
[in]broadcastif TRUE enable broadcasting
Returns
-1 on error, otherwise 0

Definition at line 49 of file udp_socket.c.

References UdpSocket::addr_in, UdpSocket::addr_out, and UdpSocket::sockfd.

Referenced by udp_arch_periph_init(), and viewvideo_init().

+ Here is the caller graph for this function:

int udp_socket_recv ( struct UdpSocket sock,
uint8_t buffer,
uint32_t  len 
)

Receive one UDP packet.

Parameters
[in]sockpointer to UdpSocket struct
[out]bufferbuffer to write received packet to
[in]lenbuffer length in bytes
Returns
number of bytes received (-1 on error)

Receive one UDP packet.

Parameters
[in]sockpointer to UdpSocket struct
[out]bufferbuffer to write received packet to
[in]lenbuffer length in bytes (maximum bytes to read)
Returns
number of bytes received (-1 on error)

Definition at line 185 of file udp_socket.c.

References UdpSocket::addr_in, and UdpSocket::sockfd.

int udp_socket_recv_dontwait ( struct UdpSocket sock,
uint8_t buffer,
uint32_t  len 
)

Receive a UDP packet, dont wait.

Parameters
[in]sockpointer to UdpSocket struct
[out]bufferbuffer to write received packet to
[in]lenbuffer length in bytes
Returns
number of bytes received (-1 on error)

Sets the MSG_DONTWAIT flag, returns 0 if no data is available.

Parameters
[in]sockpointer to UdpSocket struct
[out]bufferbuffer to write received packet to
[in]lenbuffer length in bytes
Returns
number of bytes received (-1 on error)

Definition at line 160 of file udp_socket.c.

References UdpSocket::addr_in, UdpSocket::sockfd, TRACE, and TRACE_ERROR.

int udp_socket_send ( struct UdpSocket sock,
uint8_t buffer,
uint32_t  len 
)

Send a packet from buffer, blocking.

Parameters
[in]sockpointer to UdpSocket struct
[in]bufferbuffer to send
[in]lenbuffer length in bytes
Returns
number of bytes sent (-1 on error)

Definition at line 120 of file udp_socket.c.

References UdpSocket::addr_out, UdpSocket::sockfd, TRACE, and TRACE_ERROR.

int udp_socket_send_dontwait ( struct UdpSocket sock,
uint8_t buffer,
uint32_t  len 
)

Send a packet from buffer, non-blocking.

Parameters
[in]sockpointer to UdpSocket struct
[in]bufferbuffer to send
[in]lenbuffer length in bytes
Returns
number of bytes sent (-1 on error)

Definition at line 141 of file udp_socket.c.

References UdpSocket::addr_out, and UdpSocket::sockfd.

Referenced by rtp_packet_send().

+ Here is the caller graph for this function:

int udp_socket_set_recvbuf ( struct UdpSocket sock,
int  buf_size 
)

Definition at line 205 of file udp_socket.c.

References UdpSocket::sockfd.

int udp_socket_set_sendbuf ( struct UdpSocket sock,
int  buf_size 
)

Definition at line 220 of file udp_socket.c.

References UdpSocket::sockfd.

int udp_socket_subscribe_multicast ( struct UdpSocket sock,
const char *  multicast_addr 
)

Definition at line 194 of file udp_socket.c.

References UdpSocket::sockfd.