stacktsk.h
来自「本附件为嵌入式Web的相关资料」· C头文件 代码 · 共 152 行
H
152 行
/*********************************************************************
*
* Microchip TCP/IP Stack Definitions
*
*********************************************************************
* FileName: StackTsk.h
* Dependencies: Compiler.h
* Processor: PIC18, PIC24F, PIC24H, dsPIC30F, dsPIC33F
* Complier: Microchip C18 v3.02 or higher
* Microchip C30 v2.01 or higher
* Company: Microchip Technology, Inc.
*
* Software License Agreement
*
* This software is owned by Microchip Technology Inc. ("Microchip")
* and is supplied to you for use exclusively as described in the
* associated software agreement. This software is protected by
* software and other intellectual property laws. Any use in
* violation of the software license may subject the user to criminal
* sanctions as well as civil liability. Copyright 2006 Microchip
* Technology Inc. All rights reserved.
*
* This software is provided "AS IS." MICROCHIP DISCLAIMS ALL
* WARRANTIES, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, NOT LIMITED
* TO MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND
* INFRINGEMENT. Microchip shall in no event be liable for special,
* incidental, or consequential damages.
*
*
* Author Date Comment
*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
* Nilesh Rajbharti 8/10/01 Original (Rev 1.0)
* Nilesh Rajbharti 2/9/02 Cleanup
* Nilesh Rajbharti 5/22/02 Rev 2.0 (See version.log for detail)
* Nilesh Rajbharti 8/7/03 Rev 2.21 - TFTP Client addition
* Howard Schlunder 9/30/04 Added MCHP_MAC, MAC_POWER_ON_TEST,
EEPROM_BUFFER_SIZE, USE_LCD
* Howard Schlunder 8/09/06 Removed MCHP_MAC, added STACK_USE_NBNS,
* STACK_USE_DNS, and STACK_USE_GENERIC_TCP_EXAMPLE
********************************************************************/
#ifndef __STACK_TSK_H
#define __STACK_TSK_H
#include "mchp_tcp_ip\tcpip.h"
// Check for potential configuration errors in "TCPIPConfig.h"
#if (MAX_TCP_SOCKETS <= 0 || MAX_TCP_SOCKETS > 255)
#error Invalid MAX_TCP_SOCKETS value specified.
#endif
// Check for potential configuration errors in "TCPIPConfig.h"
#if (MAX_UDP_SOCKETS <= 0 || MAX_UDP_SOCKETS > 255 )
#error Invlaid MAX_UDP_SOCKETS value specified
#endif
// Check for potential configuration errors in "TCPIPConfig.h"
#if (MAX_HTTP_CONNECTIONS <= 0 || MAX_HTTP_CONNECTIONS > 255 )
#error Invalid MAX_HTTP_CONNECTIONS value specified.
#endif
// Check for potential configuration errors in "TCPIPConfig.h"
#define AVAILABLE_SOCKETS (MAX_TCP_SOCKETS)
#if defined(STACK_USE_HTTP_SERVER)
#define AVAILABLE_SOCKETS2 (AVAILABLE_SOCKETS - MAX_HTTP_CONNECTIONS)
#else
#define AVAILABLE_SOCKETS2 (MAX_TCP_SOCKETS)
#endif
// Check for potential configuration errors in "TCPIPConfig.h"
// When using FTP, you must have at least two sockets free
#if defined(STACK_USE_FTP_SERVER)
#define AVAILABLE_SOCKETS3 (AVAILABLE_SOCKETS2 - 2)
#else
#define AVAILABLE_SOCKETS3 (AVAILABLE_SOCKETS2)
#endif
// Check for potential configuration errors in "TCPIPConfig.h"
#if AVAILABLE_SOCKETS3 < 0 || AVAILABLE_SOCKETS3 > MAX_TCP_SOCKETS
#error MAX_TCP_SOCKETS is too low to accommodate MAX_HTTP_CONNECTIONS and/or STACK_USE_FTP_SERVER
#error Either increase MAX_TCP_SOCKETS in StackTsk.h or decrease module socket usage.
#endif
// Check for potential configuration errors in "TCPIPConfig.h"
#define AVAILABLE_UDP_SOCKETS (MAX_UDP_SOCKETS)
#if defined(STACK_USE_DHCP)
#define AVAILABLE_UDP_SOCKETS2 (AVAILABLE_UDP_SOCKETS - 1)
#else
#define AVAILABLE_UDP_SOCKETS2 AVAILABLE_UDP_SOCKETS
#endif
#if defined(STACK_USE_SNMP_SERVER)
#define AVAILABLE_UDP_SOCKETS3 (AVAILABLE_UDP_SOCKETS2 - 1)
#else
#define AVAILABLE_UDP_SOCKETS3 AVAILABLE_UDP_SOCKETS2
#endif
#if defined(STACK_USE_TFTP_CLIENT)
#define AVAILABLE_UDP_SOCKETS4 (AVAILABLE_UDP_SOCKETS2)
#else
#define AVAILABLE_UDP_SOCKETS4 AVAILABLE_UDP_SOCKETS3
#endif
// Check for potential configuration errors in "TCPIPConfig.h"
#if AVAILABLE_UDP_SOCKETS4 < 0 || AVAILABLE_UDP_SOCKETS4 > MAX_UDP_SOCKETS
#error MAX_UDP_SOCKETS is too low to accommodate DHCP, SNMP, and/or TFTP client
#error Either increase MAX_UDP_SOCKETS in StackTsk.h or decrease module UDP socket usage.
#endif
typedef struct _MAC_ADDR
{
BYTE v[6];
} MAC_ADDR;
#define IP_ADDR DWORD_VAL
typedef struct _NODE_INFO
{
MAC_ADDR MACAddr;
IP_ADDR IPAddr;
} __attribute__((packed)) NODE_INFO;
typedef struct _APP_CONFIG
{
IP_ADDR MyIPAddr;
MAC_ADDR MyMACAddr;
IP_ADDR MyMask;
IP_ADDR MyGateway;
IP_ADDR PrimaryDNSServer;
struct
{
unsigned char bIsDHCPEnabled : 1;
unsigned char bInConfigMode : 1;
} Flags;
WORD_VAL SerialNumber;
IP_ADDR TFTPServerAddr; // Not used.
BYTE NetBIOSName[16];
} APP_CONFIG;
#ifndef THIS_IS_STACK_APPLICATION
extern APP_CONFIG AppConfig;
#endif
void StackInit(void);
void StackTask(void);
#endif
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?