FITkit
Fakulta informačních technologií

Dokumentace souboru enc28j60_tcp.h

Transportní vrstva modelu TCP/IP. Příjem a odesílání TCP datagramů. ...

#include "enc28j60_ip.h"

Zobrazit zdrojový text tohoto souboru.

Datové struktry

struct  tcp_h
 struktura tcp_h - TCP hlavička. ...

Definice maker

#define TCP_HEADER_LEN   20
 velikost TCP hlavičky
#define TCP_APP_HANDLER(x)   void (x)(struct ip_h *ip_header, struct tcp_h *tcp_header)
 deklarace TCP callback handleru

Funkce

char tcp_send ()
 Odešle TCP datagram s daty uloženými v tx bufferu - volána uživatelem.
unsigned char create_tcp_socket (unsigned int src_port, void *handler)
 Vytvoří TCP socket, zaregistruje TCP handler k portu src_port.
je možné vytvořit pouze jeden TCP socket.
char delete_tcp_socket ()
 Odstraní TCP socket.
void change_tcp_handler (void *new_handler)
 Změní TCP handler v socketu.
char tcp_connect (unsigned long ip, unsigned int port)
 Připojí se ke vzdálenému počítači.
char tcp_bind ()
 Naslouchání socketu na portu.
char tcp_unbind ()
 Zrušení naslouchání socketu na portu.
void tcp_disconnect ()
 Ukončí TCP spojení (ne zcela, pouze konečný automat přejde do stavu ukončení spojení).
char tcp_connected ()
 Vrací stav spojení.
char tcp_is_idle ()
 Vrací stav TCP socketu.
void tcp_timer ()
 TCP časovač, funkci je nutné volat v časových intervalech pro správnou funkci spojení (přeposílání datagramů apod.).
Doba mezi voláními časovače by měla být nejméně 250ms a neměla přesáhnout 2 vteřiny.


Detailní popis

Transportní vrstva modelu TCP/IP. Příjem a odesílání TCP datagramů.

Definice v souboru enc28j60_tcp.h.


Dokumentace k definicím maker

#define TCP_APP_HANDLER (  )     void (x)(struct ip_h *ip_header, struct tcp_h *tcp_header)

deklarace TCP callback handleru

Definice je uvedena na řádku 121 v souboru enc28j60_tcp.h.

#define TCP_HEADER_LEN   20

velikost TCP hlavičky

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

Používá se v tcp_out(), tcp_recv(), tcp_send() a tx_protocol().


Dokumentace funkcí

void change_tcp_handler ( void *  new_handler  ) 

Změní TCP handler v socketu.

Parametry:
new_handler - Callback handler (TCP_APP_HANDLER()).

Definice je uvedena na řádku 254 v souboru enc28j60_tcp.c.

Odkazuje se na socket.

unsigned char create_tcp_socket ( unsigned int  src_port,
void *  handler 
)

Vytvoří TCP socket, zaregistruje TCP handler k portu src_port.
je možné vytvořit pouze jeden TCP socket.

Parametry:
src_port - port socketu
handler - Callback handler (TCP_APP_HANDLER()), funkce, která bude volána při příchodu TCP datagramu na port socketu.
Vracené hodnoty:
0 - chyba, neplatné argumenty nebo není volný socket
jinak - číslo registrovaného portu

Definice je uvedena na řádku 221 v souboru enc28j60_tcp.c.

Odkazuje se na socket.

char delete_tcp_socket (  ) 

Odstraní TCP socket.

Vracené hodnoty:
0 - socket odstraněn
-1 - chyba, socket je používán

Definice je uvedena na řádku 238 v souboru enc28j60_tcp.c.

Odkazuje se na NULL, socket a tcp_is_idle().

char tcp_bind (  ) 

Naslouchání socketu na portu.

Vracené hodnoty:
1 - socket naslouchá na portu
0 - chyba, socket je zaneprázdněn

Definice je uvedena na řádku 280 v souboru enc28j60_tcp.c.

Odkazuje se na socket.

char tcp_connect ( unsigned long  ip,
unsigned int  port 
)

Připojí se ke vzdálenému počítači.

Parametry:
ip - IP adresa cílového počítače
port - cílový port
Vracené hodnoty:
0 - připojení se navazuje
-1 - chyba, socket je již připojen

Definice je uvedena na řádku 264 v souboru enc28j60_tcp.c.

Odkazuje se na NULL, socket a tcp_fsm().

char tcp_connected (  ) 

Vrací stav spojení.

Vracené hodnoty:
1 - spojení navázáno, lze odesílat data
0 - spojení nenavázáno nebo se navazuje

Definice je uvedena na řádku 319 v souboru enc28j60_tcp.c.

Odkazuje se na socket.

Používá se v tcp_send().

void tcp_disconnect (  )  [inline]

Ukončí TCP spojení (ne zcela, pouze konečný automat přejde do stavu ukončení spojení).

Definice je uvedena na řádku 307 v souboru enc28j60_tcp.c.

Odkazuje se na expected_ack_num, NULL, socket, tcp_fsm() a tcp_fsm_timer.

char tcp_is_idle (  ) 

Vrací stav TCP socketu.

Vracené hodnoty:
1 - TCP socket je nečinný
0 - TCP socket je zaneprázdněn

Definice je uvedena na řádku 330 v souboru enc28j60_tcp.c.

Odkazuje se na socket.

Používá se v delete_tcp_socket().

char tcp_send (  ) 

Odešle TCP datagram s daty uloženými v tx bufferu - volána uživatelem.

Vracené hodnoty:
0 - datagram odeslán
-1 - chyba při odesílání

Definice je uvedena na řádku 105 v souboru enc28j60_tcp.c.

Odkazuje se na expected_ack_num, local_seq_num, NULL, tcp_connected(), tcp_fsm(), TCP_HEADER_LEN, tx_data_len(), tx_save() a tx_seek().

void tcp_timer (  )  [inline]

TCP časovač, funkci je nutné volat v časových intervalech pro správnou funkci spojení (přeposílání datagramů apod.).
Doba mezi voláními časovače by měla být nejméně 250ms a neměla přesáhnout 2 vteřiny.

Definice je uvedena na řádku 343 v souboru enc28j60_tcp.c.

Odkazuje se na NULL a tcp_fsm().

char tcp_unbind (  ) 

Zrušení naslouchání socketu na portu.

Vracené hodnoty:
1 - socket odpojen
0 - chyba, socket je zaneprázdněn, pravděpodobně je někdo připojen

Definice je uvedena na řádku 294 v souboru enc28j60_tcp.c.

Odkazuje se na socket.