FITkit
Fakulta informačních technologií

Dokumentace souboru enc28j60_spi_tx.h

Knihovna funkcí pro práci s odesílacím bufferem v ENC28J60. ...

Zobrazit zdrojový text tohoto souboru.

Definice maker

#define TCP_PROTO   1
 TCP protokol.
#define UDP_PROTO   2
 UDP protokol.
#define ICMP_PROTO   3
 ICMP protokol.
#define ARP_PROTO   4
 ARP protokol.
#define tx_write_str(str)   tx_write(str,enc_strlen(str))
 Zapíše řetězec ukončený hodnotou 0 z adresy odkazované ukazatelem str do bufferu pro odeslání.

Funkce

char tx_init (unsigned char transport_protocol)
 Inicializace bufferu pro odesílání paketu.
void tx_rewind ()
 Funkce vrátí ukazatel pro zápis v odesílacím bufferu na začátek (jako po inicializaci). Data se zachovají. Je tak možné provést dodatečné změny v paketu před odesláním.
void tx_close ()
 Uloží pozici konce paketu a tím ho připraví na odeslání. Volání této funkce je důležité, označí totiž konec paketu. Všechna data až po takto označený konec se odešlou, data zapsaná do bufferu za něj se ignorují.
unsigned char tx_putc (char c)
 Zapíše znak do bufferu.
unsigned int tx_write (void *ptr, unsigned int length)
 Zapíše blok dat velikosti length z adresy odkazované ukazatelem ptr do bufferu pro odeslání.
unsigned int tx_skip (unsigned int length)
 Přeskočí místo v odesílacím bufferu. Vhodné zejména v kombinaci s funkcí tx_rewind(), kdy chceme dodatečně přepsat některé části datagramu.
unsigned int tx_fill (unsigned char value, unsigned int length)
 Vyplní v odesílacím bufferu length bajtů hodnotou value.
unsigned int tx_left ()
 Vrátí údaj o volném místu v bufferu.


Detailní popis

Knihovna funkcí pro práci s odesílacím bufferem v ENC28J60.

Definice v souboru enc28j60_spi_tx.h.


Dokumentace k definicím maker

#define ARP_PROTO   4

ARP protokol.

Definice je uvedena na řádku 58 v souboru enc28j60_spi_tx.h.

Používá se v arp_recv(), arp_send(), tx_init() a tx_protocol().

#define ICMP_PROTO   3

ICMP protokol.

Definice je uvedena na řádku 57 v souboru enc28j60_spi_tx.h.

Používá se v icmp_recv(), tx_init() a tx_protocol().

#define TCP_PROTO   1

TCP protokol.

Definice je uvedena na řádku 55 v souboru enc28j60_spi_tx.h.

Používá se v tx_init() a tx_protocol().

#define tx_write_str ( str   )     tx_write(str,enc_strlen(str))

Zapíše řetězec ukončený hodnotou 0 z adresy odkazované ukazatelem str do bufferu pro odeslání.

Parametry:
str - ukazatel na řetězec
Návratová hodnota:
počet zapsaných bajtů
Viz také:
tx_putc()

tx_write()

Definice je uvedena na řádku 221 v souboru enc28j60_spi_tx.h.

#define UDP_PROTO   2

UDP protokol.

Definice je uvedena na řádku 56 v souboru enc28j60_spi_tx.h.

Používá se v dhcp_send_discover(), dhcp_send_request(), tx_init() a tx_protocol().


Dokumentace funkcí

void tx_close (  )  [inline]

Uloží pozici konce paketu a tím ho připraví na odeslání. Volání této funkce je důležité, označí totiž konec paketu. Všechna data až po takto označený konec se odešlou, data zapsaná do bufferu za něj se ignorují.

Definice je uvedena na řádku 281 v souboru enc28j60_spi_tx.c.

Odkazuje se na select_bank(), tx_end_ptr, tx_ptr a write_reg16().

Používá se v arp_recv(), arp_send(), dhcp_send_discover(), dhcp_send_request(), icmp_recv() a tcp_send_header().

unsigned int tx_fill ( unsigned char  value,
unsigned int  length 
)

Vyplní v odesílacím bufferu length bajtů hodnotou value.

Parametry:
value - hodnota, kterou se bude vyplňovat buffer
length - délka vyplnění
Návratová hodnota:
počet zapsaných bajtů

Definice je uvedena na řádku 400 v souboru enc28j60_spi_tx.c.

Odkazuje se na spi_fill(), tx_left(), tx_ptr a TXND.

Používá se v dhcp_send_discover() a dhcp_send_request().

char tx_init ( unsigned char  transport_protocol  ) 

Inicializace bufferu pro odesílání paketu.

Parametry:
transport_protocol - jedna z konstant TCP_PROTO, UDP_PROTO a ICMP_PROTO
podle protokolu, kterým se data budou odesílat
Vracené hodnoty:
0 - inicializace proběhla úspěšně
-1 - chyba při inicializaci - UDP a ICMP - reinicializace bufferu, TCP - nepotvrzení posledně odeslaného paketu
ve všech případech může nastat chyba příčinou nedoodesílání dříve odesílaného paketu - buffer se do úplného odeslání nesmí měnit

Definice je uvedena na řádku 90 v souboru enc28j60_spi_tx.c.

Odkazuje se na act_tx, ARP_PROTO, ICMP_PROTO, LOCKED, read_reg8(), select_bank(), TCP_PROTO, tx1_end_ptr, tx1_lock, tx1_protocol, tx1_ptr, tx2_end_ptr, tx2_lock, tx2_protocol, tx2_ptr, tx3_end_ptr, tx3_lock, tx3_protocol, tx3_ptr, tx_protocol(), tx_ptr, tx_save(), TXND, TXST, UDP_PROTO a write_reg16().

Používá se v arp_recv(), arp_send(), dhcp_send_discover(), dhcp_send_request(), icmp_recv() a tcp_send_header().

unsigned int tx_left (  )  [inline]

Vrátí údaj o volném místu v bufferu.

Návratová hodnota:
počet volných bajtů

Definice je uvedena na řádku 482 v souboru enc28j60_spi_tx.c.

Odkazuje se na tx_ptr a TXND.

Používá se v tx_fill(), tx_skip() a tx_write().

unsigned char tx_putc ( char  c  ) 

Zapíše znak do bufferu.

Parametry:
c znak, který chceme zapsat
Vracené hodnoty:
0 - znak nezapsán - buffer plný
1 - znak úspěšně zapsán
Viz také:
tx_write()

tx_write_str()

Definice je uvedena na řádku 364 v souboru enc28j60_spi_tx.c.

Odkazuje se na spi_putc(), tx_ptr a TXND.

Používá se v dhcp_send_discover(), dhcp_send_request() a eth_send().

void tx_rewind (  ) 

Funkce vrátí ukazatel pro zápis v odesílacím bufferu na začátek (jako po inicializaci). Data se zachovají. Je tak možné provést dodatečné změny v paketu před odesláním.

Viz také:
tx_skip()

Definice je uvedena na řádku 233 v souboru enc28j60_spi_tx.c.

Odkazuje se na act_tx, tx1_protocol, tx2_protocol, tx3_protocol a tx_protocol().

unsigned int tx_skip ( unsigned int  length  ) 

Přeskočí místo v odesílacím bufferu. Vhodné zejména v kombinaci s funkcí tx_rewind(), kdy chceme dodatečně přepsat některé části datagramu.

Parametry:
length - délka skoku v bajtech.
Návratová hodnota:
počet přeskočených bajtů

Definice je uvedena na řádku 423 v souboru enc28j60_spi_tx.c.

Odkazuje se na tx_left(), tx_ptr, TXND a write_reg16().

unsigned int tx_write ( void *  ptr,
unsigned int  length 
)

Zapíše blok dat velikosti length z adresy odkazované ukazatelem ptr do bufferu pro odeslání.

Parametry:
ptr - ukazatel na data
length - délka dat v bajtech
Návratová hodnota:
počet zapsaných bajtů
Viz také:
tx_putc()

tx_write_str()

Definice je uvedena na řádku 378 v souboru enc28j60_spi_tx.c.

Odkazuje se na spi_write(), tx_left(), tx_ptr a TXND.

Používá se v arp_recv(), arp_send(), dhcp_send_discover(), dhcp_send_request(), eth_send(), icmp_recv(), icmp_send(), ip_send(), tcp_out() a udp_send().