Paparazzi UAS
v5.14.0_stable-0-g3f680d1
Paparazzi is a free software Unmanned Aircraft System.
|
arch independent PIPE API More...
#include "std.h"
#include "mcu_periph/pipe_arch.h"
#include "pprzlink/pprzlink_device.h"
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) |
arch independent PIPE API
Definition in file pipe.h.
struct 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 |
void pipe_arch_init | ( | void | ) |
Definition at line 48 of file pipe_arch.c.
References pipe_thread().
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().
uint16_t pipe_char_available | ( | struct pipe_periph * | p | ) |
Get number of bytes available in receive buffer.
p | pointer to PIPE peripheral |
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().
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.
p | pointer to PIPE peripheral |
len | how many bytes of free space to check for |
Definition at line 94 of file pipe.c.
References PIPE_TX_BUFFER_SIZE, and pipe_periph::tx_insert_idx.
Referenced by pipe_periph_init().
uint8_t pipe_getch | ( | struct pipe_periph * | p | ) |
Get the last character from the receive buffer.
p | pointer to PIPE peripheral |
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().
void pipe_periph_init | ( | struct pipe_periph * | p, |
char * | name, | ||
char * | write_name | ||
) |
Initialize the PIPE peripheral.
Definition at line 72 of file pipe.c.
References pipe_periph::device, pipe_arch_periph_init(), pipe_char_available(), pipe_check_free_space(), pipe_getch(), pipe_put_buffer(), pipe_put_byte(), pipe_send_message(), pipe_periph::rx_extract_idx, pipe_periph::rx_insert_idx, and pipe_periph::tx_insert_idx.
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().
void pipe_put_byte | ( | struct pipe_periph * | p, |
long | fd, | ||
uint8_t | data | ||
) |
Add one data byte to the tx buffer.
p | pointer to PIPE peripheral |
data | byte 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().
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().
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().
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.