Line 15... |
Line 15... |
#define FRAME_COUNT 100
|
#define FRAME_COUNT 100
|
#define FRAME_COUNT_WINDOW 50
|
#define FRAME_COUNT_WINDOW 50
|
#define FRAME_COUNT_SYNC 50
|
#define FRAME_COUNT_SYNC 50
|
#define FRAME_COUNT_SEND 10
|
#define FRAME_COUNT_SEND 10
|
#define FRAME_COUNT_RCV 5
|
#define FRAME_COUNT_RCV 5
|
#define RETRANSMIT_TIME 3
|
#define RETRANSMIT_TIME 110
|
#define SOCKET_TIMEOUT 12
|
#define SOCKET_TIMEOUT 12
|
|
|
typedef enum IPMode_e {
|
typedef enum IPMode_e {
|
IP_MODE_UDP,
|
IP_MODE_UDP,
|
IP_MODE_TCP,
|
IP_MODE_TCP,
|
Line 42... |
Line 42... |
typedef struct IPFrame {
|
typedef struct IPFrame {
|
uint8 packet[PACKET_SIZE];
|
uint8 packet[PACKET_SIZE];
|
struct IPFrame *next, *prev;
|
struct IPFrame *next, *prev;
|
struct IPSocket *socket;
|
struct IPSocket *socket;
|
uint32 seqEnd;
|
uint32 seqEnd;
|
uint16 length, timeout;
|
uint16 length;
|
|
short timeout;
|
uint8 state, retryCnt;
|
uint8 state, retryCnt;
|
} IPFrame;
|
} IPFrame;
|
|
|
typedef struct IPSocket {
|
typedef struct IPSocket {
|
struct IPSocket *next, *prev;
|
struct IPSocket *next, *prev;
|
Line 69... |
Line 70... |
void *userPtr;
|
void *userPtr;
|
uint32 userData;
|
uint32 userData;
|
} IPSocket;
|
} IPSocket;
|
|
|
//ethernet.c
|
//ethernet.c
|
void EthernetSendPacket(const unsigned char *packet, int length);
|
void EthernetSendPacket(const unsigned char *packet, int length); //Windows
|
|
void EthernetInit(unsigned char MacAddress[6]);
|
|
int EthernetReceive(unsigned char *buffer, int length);
|
|
void EthernetTransmit(unsigned char *buffer, int length);
|
|
|
//tcpip.c
|
//tcpip.c
|
void IPInit(IPFuncPtr frameSendFunction);
|
void IPInit(IPFuncPtr frameSendFunction);
|
IPFrame *IPFrameGet(int freeCount);
|
IPFrame *IPFrameGet(int freeCount);
|
int IPProcessEthernetPacket(IPFrame *frameIn, int length);
|
int IPProcessEthernetPacket(IPFrame *frameIn, int length);
|