Paparazzi UAS  v5.14.0_stable-0-g3f680d1
Paparazzi is a free software Unmanned Aircraft System.
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
pipe.h File Reference

arch independent PIPE API More...

#include "std.h"
#include "mcu_periph/pipe_arch.h"
#include "pprzlink/pprzlink_device.h"
+ Include dependency graph for pipe.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  pipe_periph
 

Functions

void pipe_arch_init (void)
 
void pipe_arch_periph_init (struct pipe_periph *p, char *read_name, char *write_name)
 Initialize the PIPE peripheral. More...
 
void pipe_periph_init (struct pipe_periph *p, char *name, char *write_name)
 Initialize the PIPE peripheral. More...
 
uint16_t pipe_char_available (struct pipe_periph *p)
 Get number of bytes available in receive buffer. More...
 
uint8_t pipe_getch (struct pipe_periph *p)
 Get the last character from the receive buffer. More...
 
void pipe_receive (struct pipe_periph *p)
 Read bytes from PIPE. More...
 
void pipe_send_message (struct pipe_periph *p, long fd)
 Send a message. More...
 
void pipe_send_raw (struct pipe_periph *p, long fd, uint8_t *buffer, uint16_t size)
 Send a packet from another buffer. More...
 
bool pipe_check_free_space (struct pipe_periph *p, long *fd, uint16_t len)
 Check if there is enough free space in the transmit buffer. More...
 
void pipe_put_byte (struct pipe_periph *p, long fd, uint8_t data)
 Add one data byte to the tx buffer. More...
 
void pipe_put_buffer (struct pipe_periph *p, long fd, const uint8_t *data, uint16_t len)
 

Detailed Description

arch independent PIPE API

Definition in file pipe.h.


Data Structure Documentation

struct pipe_periph

Definition at line 35 of file pipe.h.

+ Collaboration diagram for pipe_periph:
Data Fields
struct link_device device Generic device interface.
int fd_read PIPE file descriptor.
int fd_write
uint8_t rx_buf[PIPE_RX_BUFFER_SIZE] Receive buffer.
uint16_t rx_extract_idx
uint16_t rx_insert_idx
uint8_t tx_buf[PIPE_TX_BUFFER_SIZE] Transmit buffer.
uint16_t tx_insert_idx

Function Documentation

void pipe_arch_init ( void  )

Definition at line 48 of file pipe_arch.c.

References pipe_thread().

+ Here is the call graph for this function:

void pipe_arch_periph_init ( struct pipe_periph p,
char *  read_name,
char *  write_name 
)

Initialize the PIPE peripheral.

Allocate UdpSocket struct and create and bind the PIPE socket.

Definition at line 76 of file pipe_arch.c.

References pipe_periph::fd_read, and pipe_periph::fd_write.

Referenced by pipe_periph_init().

+ Here is the caller graph for this function:

uint16_t pipe_char_available ( struct pipe_periph p)

Get number of bytes available in receive buffer.

Parameters
ppointer to PIPE peripheral
Returns
number of bytes available in receive buffer

Definition at line 104 of file pipe_arch.c.

References PIPE_RX_BUFFER_SIZE, pipe_periph::rx_extract_idx, and pipe_periph::rx_insert_idx.

Referenced by pipe_periph_init(), and pipe_receive().

+ Here is the caller graph for this function:

bool pipe_check_free_space ( struct pipe_periph p,
long *  fd,
uint16_t  len 
)

Check if there is enough free space in the transmit buffer.

Parameters
ppointer to PIPE peripheral
lenhow many bytes of free space to check for
Returns
TRUE if enough space for len bytes

Definition at line 94 of file pipe.c.

References PIPE_TX_BUFFER_SIZE, and pipe_periph::tx_insert_idx.

Referenced by pipe_periph_init().

+ Here is the caller graph for this function:

uint8_t pipe_getch ( struct pipe_periph p)

Get the last character from the receive buffer.

Parameters
ppointer to PIPE peripheral
Returns
last byte

Definition at line 120 of file pipe_arch.c.

References PIPE_RX_BUFFER_SIZE, pipe_periph::rx_buf, and pipe_periph::rx_extract_idx.

Referenced by pipe_periph_init().

+ Here is the caller graph for this function:

void pipe_periph_init ( struct pipe_periph p,
char *  name,
char *  write_name 
)
void pipe_put_buffer ( struct pipe_periph p,
long  fd,
const uint8_t data,
uint16_t  len 
)

Definition at line 114 of file pipe.c.

References PIPE_TX_BUFFER_SIZE, pipe_periph::tx_buf, and pipe_periph::tx_insert_idx.

Referenced by pipe_periph_init().

+ Here is the caller graph for this function:

void pipe_put_byte ( struct pipe_periph p,
long  fd,
uint8_t  data 
)

Add one data byte to the tx buffer.

Parameters
ppointer to PIPE peripheral
databyte to add to tx buffer

Definition at line 104 of file pipe.c.

References PIPE_TX_BUFFER_SIZE, pipe_periph::tx_buf, and pipe_periph::tx_insert_idx.

Referenced by pipe_periph_init().

+ Here is the caller graph for this function:

void pipe_receive ( struct pipe_periph p)

Read bytes from PIPE.

Definition at line 132 of file pipe_arch.c.

References pipe_periph::fd_read, pipe_char_available(), PIPE_RX_BUFFER_SIZE, pipe_periph::rx_buf, and pipe_periph::rx_insert_idx.

Referenced by pipe_thread().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void pipe_send_message ( struct pipe_periph p,
long  fd 
)

Send a message.

Definition at line 160 of file pipe_arch.c.

References pipe_periph::fd_write, pipe_periph::tx_buf, and pipe_periph::tx_insert_idx.

Referenced by pipe_periph_init().

+ Here is the caller graph for this function:

void pipe_send_raw ( struct pipe_periph p,
long  fd,
uint8_t buffer,
uint16_t  size 
)

Send a packet from another buffer.

Definition at line 182 of file pipe_arch.c.

References pipe_periph::fd_write.