netcom.h

来自「移植到51单片机的UIP代码」· C头文件 代码 · 共 122 行

H
122
字号
#ifndef NETCOM_H
#define NETCOM_H

extern void uip_appcall( void );
extern void NetcomInit( void );
extern void ComInit( void );
#ifndef UIP_APPCALL
#define UIP_APPCALL		uip_appcall
#endif

#define bool unsigned char
#define u8  unsigned char
#define u16 unsigned int
#define u32 unsigned long

#ifndef UIP_APPSTATE_SIZE
#define UIP_APPSTATE_SIZE (1500)
#endif

#define MODE_UDP			1
#define MODE_TCP_CLIENT		2
#define MODE_TCP_SERVER		3

#define VERY_NONE       0
#define VERY_EVEN       1
#define VERY_ODD        2
#define VERY_LOW        3
#define VERY_HIGH       4

#define SENDBUF_LEN 1460
#define RECVBUF_LEN	1460

#define T1_RELOAD	0xf8cc

typedef struct
{
	u8 SendBuf[SENDBUF_LEN];
	u16 SendPtr;
	u16 SendLen;
	bool SendFlag;
	
	u8 RecvBuf[RECVBUF_LEN];
	u16 RecvPtr;
	u16 RecvLen;
	bool RecvFlag;
	bool Com2NetFlag;
	bool RstRecvFlag;

	u8 RecvTime;
}COM_BUF;

typedef struct
{
	u8 LocalIP[4];	//本地IP
	u8 GateWay[4];	//网关
	u8 NetMask[4];	//子网掩码
	u8 MacAddr[6];	//物理地址
	u8 GetIPMode;	//获取IP的方式

	u8 WorkMode;	//工作方式
	u8 TargetIP[4];	//目标IP
	u16 LocalPort;	//本地UDP端口
	u16 TargetPort;	//目标UDP端口
	
	u32 BaudRate;	//串行通讯波特率
	u8 VerifyBit;	//校验位
	u8 DataBit;		//数据位数
	u8 StopBit;		//停止位数
	u8 FrameTime;	//作为不同帧之间的识别时间
	
	u16 CrcVerify;	//CRC校验字节
}PARA_SET;

typedef struct
{
	union
	{
		u32 a;
		struct
		{
			union
			{
				u16 b;
				struct
				{
					u8 CL:8;
					u8 CH:8;
				}CHAR;
			}IL;
			union
			{
				u16 c;
				struct
				{
					u8 CL:8;
					u8 CH:8;
				}CHAR;
			}IH;
		}L2I;
	}L;
}PC2MCU51;

typedef struct
{
	union
	{
		u16 a;
		struct
		{
			u8 CL:8;
			u8 CH:8;
		}CHAR;
	}I;
}SWAP_INT;

extern PARA_SET ParaSet;

extern void ComTask( void );
extern void TcpTask( void );
extern bit WriteSendBuf( u8 *ptr, u16 len );

#endif

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?