Der TCP Stack fuer Mikrocontroller (tcp.c)


Funktionen

void tcp_init (void)
void tcp (unsigned int packet_lenght, unsigned char *ethernetbuffer)
 Die TCP-Funktion die aufgerufen wird wenn ein Packet eintrifft. Hier findet die Bearbeitung der eintreffenden Packete statt. Das Packet wird einer Verbindung zugeordnet oder einen offenen Port wenn die in die TCP_PORT Liste eingetragen ist. Danach wird es je nach Flag bearbeitet.
void TCPTimeOutHandler (void)
 Der TCP-Timeouthandler Dieser Handler schaut zyklisch in alle Sockets und verringert den Timeoutwert. Wenn ein Timeoutwert 0 erreicht hat, wird das Socket geschlossen und der Connectionstats richtig gesetz.
unsigned int Getfreesocket (void)
 Holt das naechste freie Socket.
unsigned int GetSocket (unsigned char *ethernetbuffer)
 Ordnet das Packet einen Socket zu.
unsigned int RegisterSocket (unsigned char *ethernetbuffer)
void MakeTCPheader (unsigned int Socket, unsigned char TCP_flags, unsigned int Datalenght, unsigned int Windowsize, unsigned char *ethernetbuffer)
unsigned int CopyTCPdata2socketbuffer (unsigned int Socket, unsigned int Datalenght, unsigned char *ethernetbuffer)
unsigned int RegisterTCPPort (unsigned int Port)
 Registriert einen Port auf den gelauscht wird für einegehende Verbindungen.
void UnRegisterTCPPort (unsigned int Port)
 Traegt einen Port aus der Liste der Port aus auf denen gelauscht werden soll.
unsigned int CheckPortInList (unsigned int Port)
unsigned int CheckPortRequest (unsigned int Port)
 Schaut ob auf einen Port ein Verbindung eingegangen ist.
unsigned int CheckSocketState (unsigned int Socket)
 Gibt den Status des Socket aus.
void CloseTCPSocket (unsigned int Socket)
 Schliesst ein Socket und Beendet die TCP-Verbindung.
void SendData_RPE (unsigned int Socket, unsigned int Datalenght, unsigned char *Sendbuffer, unsigned char Mode)
 Sendet Daten ueber ein Socket aus dem RAM/FLASH/EEPROM.
unsigned int PutSocketData_RPE (unsigned int Socket, unsigned int Datalenght, unsigned char *Sendbuffer, unsigned char Mode)
 Sendet Daten ueber ein Socket aus dem FLASH.
unsigned int PutSocketData_P (unsigned int Socket, unsigned int Datalenght, const prog_char *Sendbuffer)
 Sendet Daten ueber ein Socket aus dem FLASH.
unsigned int PutSocketData (unsigned int Socket, unsigned int Datalenght, unsigned char *Sendbuffer)
 Sendet Daten ueber ein Socket aus dem RAM.
unsigned int GetSocketNextLine (unsigned int Socket, unsigned int bufferlen, unsigned char *buffer)
unsigned int GetSocketData (unsigned int Socket, unsigned int bufferlen, unsigned char *buffer)
unsigned int Connect2IP (unsigned long IP, unsigned int Port)

Variablen

unsigned int TXErrorCounter = 0
unsigned int RXErrorCounter = 0
TCP_SOCKET TCP_sockettable [MAX_TCP_CONNECTIONS]
TCP_PORT TCP_porttable [MAX_LISTEN_PORTS]

Ausführliche Beschreibung

 #include "tcp.h" 
Uebersicht
Der TCP-Stack fuer Mikrocontroller. Behandelt komplett den TCP-Stack mit Verbindungsaufbau, Abbau und halten. Es werden Ereignisse wie bei Timeouts oder Retransmisions behandelt.

Dokumentation der Funktionen

unsigned int CheckPortRequest unsigned int  Port  ) 
 

Schaut ob auf einen Port ein Verbindung eingegangen ist.

Parameter:
Port Der Port der abgefragt wird.
Rückgabe:
Im Erfolgsfall die Socketnummer, im Fehlerfall 0xffff

unsigned int CheckSocketState unsigned int  Socket  ) 
 

Gibt den Status des Socket aus.

Parameter:
Socket Die Socketnummer vom dem der Status zurueckgegeben werden soll.
Rückgabe:
Der Socketstate

void CloseTCPSocket unsigned int  Socket  ) 
 

Schliesst ein Socket und Beendet die TCP-Verbindung.

Parameter:
Socket Die Socketnummer die geschlossen werden soll.
Rückgabe:
NONO

unsigned int Getfreesocket void   ) 
 

Holt das naechste freie Socket.

Warnung:
Die Funktion wir in der tcp_init() beim timerinterrupt registiert und fortan zyklisch aufgerufen.
Parameter:
NONE 
Rückgabewerte:
SOCKET Gibt die Nummer des naechsten Freien SOcket.

unsigned int GetSocket unsigned char *  ethernetbuffer  ) 
 

Ordnet das Packet einen Socket zu.

Parameter:
ethernetbuffer Zeiger auf den Ethernetpuffer.
Rückgabewerte:
Socket Im Erfolgsfall die Socketnummer, im Fehlerfall 0xffff

unsigned int PutSocketData unsigned int  Socket,
unsigned int  Datalenght,
unsigned char *  Sendbuffer
 

Sendet Daten ueber ein Socket aus dem RAM.

Parameter:
Socket Die Socketnummer die zum versnden benutzt werden soll.
Datalenght Die Datenlaenge in Bytes die sersendet werden soll.
Sendbuffer Zeiger auf die Dten im RAM der versendet werden soll.
Rückgabe:
NONE

unsigned int PutSocketData_P unsigned int  Socket,
unsigned int  Datalenght,
const prog_char *  Sendbuffer
 

Sendet Daten ueber ein Socket aus dem FLASH.

Parameter:
Socket Die Socketnummer die zum versnden benutzt werden soll.
Datalenght Die Datenlaenge in Bytes die sersendet werden soll.
Sendbuffer Zeiger auf die Daten im FLASH der versendet werden soll.
Rückgabe:
NONE

unsigned int PutSocketData_RPE unsigned int  Socket,
unsigned int  Datalenght,
unsigned char *  Sendbuffer,
unsigned char  Mode
 

Sendet Daten ueber ein Socket aus dem FLASH.

Parameter:
Socket Die Socketnummer die zum versnden benutzt werden soll.
Datalenght Die Datenlaenge in Bytes die sersendet werden soll.
Sendbuffer Zeiger auf die Daten im FLASH der versendet werden soll.
Mode Wie der Zeiger interpretiert werden soll, als RAM/FLASH/EEPROM.
Rückgabe:
NONE

unsigned int RegisterTCPPort unsigned int  Port  ) 
 

Registriert einen Port auf den gelauscht wird für einegehende Verbindungen.

Parameter:
Port Der Port auf den Gelauscht werden soll
Rückgabewerte:
Im Erfolgsfall 0, im Fehlerfall 0xffff

void SendData_RPE unsigned int  Socket,
unsigned int  Datalenght,
unsigned char *  Sendbuffer,
unsigned char  Mode
 

Sendet Daten ueber ein Socket aus dem RAM/FLASH/EEPROM.

Parameter:
Socket Die Socketnummer die zum versnden benutzt werden soll.
Datalenght Die Datenlaenge in Bytes die sersendet werden soll.
Sendbuffer Zeiger auf die Dten im RAM der versendet werden soll.
Mode Art des Zeigers (RAM/FLASH/EEPROM).
Rückgabe:
NONE

void tcp unsigned int  packet_lenght,
unsigned char *  ethernetbuffer
 

Die TCP-Funktion die aufgerufen wird wenn ein Packet eintrifft. Hier findet die Bearbeitung der eintreffenden Packete statt. Das Packet wird einer Verbindung zugeordnet oder einen offenen Port wenn die in die TCP_PORT Liste eingetragen ist. Danach wird es je nach Flag bearbeitet.

 #include "test.h"
 void main( void)
Parameter:
packet_lenght Groesse des Packetes.
ethernetbuffer Zeiger auf den Ethernetbuffer, dieser enthaelt noch die kompletten Header aller Layer.
Rückgabewerte:
NONE 

void TCPTimeOutHandler void   ) 
 

Der TCP-Timeouthandler Dieser Handler schaut zyklisch in alle Sockets und verringert den Timeoutwert. Wenn ein Timeoutwert 0 erreicht hat, wird das Socket geschlossen und der Connectionstats richtig gesetz.

Warnung:
Die Funktion wir in der tcp_init() beim timerinterrupt registiert und fortan zyklisch aufgerufen.
Parameter:
NONE 
Rückgabewerte:
NONE 

void UnRegisterTCPPort unsigned int  Port  ) 
 

Traegt einen Port aus der Liste der Port aus auf denen gelauscht werden soll.

Parameter:
Port Der Port auf den Gelauscht werden soll
Rückgabe:
Im Erfolgsfall 0, im Fehlerfall 0xffff


Erzeugt am Mon Sep 25 19:53:18 2006 für MikroEthernetBoard von  doxygen 1.4.6