#include <stdio.h>
#include <string.h>
#include "protocol.h"
#include "datalink.h"
#define DATA_TIMER 3000
#define ACK_TIMER 1500
#define MAX_SEQ 7
void inc(unsigned char* number)
{
(*number)++;
if(*number==MAX_SEQ+1)
*number=0;
}
struct FRAME {
unsigned char kind; /* FRAME_DATA */
unsigned char ack;
unsigned char seq;
unsigned char data[PKT_LEN];
unsigned int padding;
};
struct ACK_FRAME {
unsigned char kind; /* FRAME_DATA */
unsigned char ack;
unsigned int padding;
};
static unsigned char frame_nr = 0; //next frame to send
static unsigned char ack_expected = 0;
static unsigned char buffer[MAX_SEQ+1][PKT_LEN]; //
static unsigned char nbuffered = 0; //缓冲区大小
static unsigned char frame_expected = 0;
static int phl_ready = 0;
static void put_frame(unsigned char *frame, int len)
{
*(unsigned int *)(f