Loading...
Searching...
No Matches
Ethernet-over-serial driver

Driver for the ethernet-over-serial module. More...

Detailed Description

Driver for the ethernet-over-serial module.

Modules

 Ethernet-over-serial driver driver compile configuration
 

Files

file  ethos_params.h
 Default configuration for the ethos device driver.
 
file  ethos.h
 Interface definition for the ethernet-over-serial module.
 

Data Structures

struct  ethos_t
 ethos netdev device More...
 
struct  ethos_params_t
 Struct containing the needed configuration. More...
 

Enumerations

enum  line_state_t { WAIT_FRAMESTART , IN_FRAME , IN_ESCAPE }
 Enum describing line state. More...
 

Functions

void ethos_setup (ethos_t *dev, const ethos_params_t *params, uint8_t index, void *inbuf, size_t inbuf_size)
 Setup an ethos based device state.
 
void ethos_send_frame (ethos_t *dev, const uint8_t *data, size_t len, unsigned frame_type)
 Send frame over serial port using ethos' framing.
 

Escape char definitions

#define ETHOS_FRAME_DELIMITER   (0x7E)
 
#define ETHOS_ESC_CHAR   (0x7D)
 
#define ETHOS_FRAME_TYPE_DATA   (0x0)
 
#define ETHOS_FRAME_TYPE_TEXT   (0x1)
 
#define ETHOS_FRAME_TYPE_HELLO   (0x2)
 
#define ETHOS_FRAME_TYPE_HELLO_REPLY   (0x3)
 

Macro Definition Documentation

◆ ETHOS_ESC_CHAR

#define ETHOS_ESC_CHAR   (0x7D)

Definition at line 91 of file ethos.h.

◆ ETHOS_FRAME_DELIMITER

#define ETHOS_FRAME_DELIMITER   (0x7E)

Definition at line 90 of file ethos.h.

◆ ETHOS_FRAME_TYPE_DATA

#define ETHOS_FRAME_TYPE_DATA   (0x0)

Definition at line 92 of file ethos.h.

◆ ETHOS_FRAME_TYPE_HELLO

#define ETHOS_FRAME_TYPE_HELLO   (0x2)

Definition at line 94 of file ethos.h.

◆ ETHOS_FRAME_TYPE_HELLO_REPLY

#define ETHOS_FRAME_TYPE_HELLO_REPLY   (0x3)

Definition at line 95 of file ethos.h.

◆ ETHOS_FRAME_TYPE_TEXT

#define ETHOS_FRAME_TYPE_TEXT   (0x1)

Definition at line 93 of file ethos.h.

Enumeration Type Documentation

◆ line_state_t

Enum describing line state.

Definition at line 101 of file ethos.h.

Function Documentation

◆ ethos_send_frame()

void ethos_send_frame ( ethos_t dev,
const uint8_t *  data,
size_t  len,
unsigned  frame_type 
)

Send frame over serial port using ethos' framing.

This is used by e.g., stdio over ethos to send text frames.

Note
Uses mutexes to synchronize sending multiple frames so it should not be called from ISR.
Parameters
[in]devhandle of the device to initialize
[in]dataptr to data to be sent
[in]lennr of bytes to send
[in]frame_typeframe type to use

◆ ethos_setup()

void ethos_setup ( ethos_t dev,
const ethos_params_t params,
uint8_t  index,
void *  inbuf,
size_t  inbuf_size 
)

Setup an ethos based device state.

The supplied buffer must have a power-of-two size, and it must be large enough for the largest expected packet + enough buffer space to buffer bytes that arrive while one packet is being handled.

E.g., if 1536b ethernet frames are expected, 2048 is probably a good size for buf.

Parameters
[out]devhandle of the device to initialize
[in]paramsparameters for device initialization
[in]indexIndex of params in a global parameter struct array. If initialized manually, pass a unique identifier instead.
[in]inbufbuffer to store a received frame in
[in]inbuf_sizesize of the receive buffer