Example of HTTPServer with additional features: * SNTPClient, DST rules * Link status indication * Local or SDCard-based WebServer * RPC-able class * Static and Dynamic HTML page

Dependencies:   mbed

Committer:
iva2k
Date:
Fri Jan 08 00:28:14 2010 +0000
Revision:
1:ec4170739967
Parent:
0:886e4b3119ad
Child:
2:360fda42fefd

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
iva2k 0:886e4b3119ad 1 #ifndef LWIPOPTS_H
iva2k 0:886e4b3119ad 2 #define LWIPOPTS_H
iva2k 0:886e4b3119ad 3
iva2k 0:886e4b3119ad 4 #include <string.h>
iva2k 0:886e4b3119ad 5 #include <stdlib.h>
iva2k 0:886e4b3119ad 6 //#include <mbed.h>
iva2k 0:886e4b3119ad 7 #include <stdio.h>
iva2k 0:886e4b3119ad 8
iva2k 0:886e4b3119ad 9 #ifdef __cplusplus
iva2k 0:886e4b3119ad 10 using namespace std;
iva2k 0:886e4b3119ad 11 #endif
iva2k 0:886e4b3119ad 12
iva2k 0:886e4b3119ad 13 // Application specific lwIP Options.
iva2k 0:886e4b3119ad 14 #define IPv6 0
iva2k 0:886e4b3119ad 15 #define NO_SYS 1
iva2k 0:886e4b3119ad 16 #define LWIP_ARP 1
iva2k 0:886e4b3119ad 17 #define LWIP_RAW 0
iva2k 0:886e4b3119ad 18 #define LWIP_UDP 1
iva2k 0:886e4b3119ad 19 #define LWIP_TCP 1
iva2k 0:886e4b3119ad 20 #define LWIP_DNS 1
iva2k 0:886e4b3119ad 21 #define LWIP_DHCP 1
iva2k 0:886e4b3119ad 22 #define LWIP_IGMP 0
iva2k 0:886e4b3119ad 23 #define LWIP_SNMP 0
iva2k 0:886e4b3119ad 24 #define LWIP_SOCKET 0
iva2k 0:886e4b3119ad 25 #define LWIP_NETCONN 0
iva2k 0:886e4b3119ad 26 #define LWIP_AUTOIP 0
iva2k 0:886e4b3119ad 27 #define LWIP_CALLBACK_API 1
iva2k 0:886e4b3119ad 28
iva2k 0:886e4b3119ad 29 #define MEM_LIBC_MALLOC 0
iva2k 0:886e4b3119ad 30 #define MEMP_MEM_MALLOC 1
iva2k 0:886e4b3119ad 31 #define MEM_ALIGNMENT 4
iva2k 0:886e4b3119ad 32 //#define MEM_SIZE 5000
iva2k 0:886e4b3119ad 33 #define MEM_SIZE 10000
iva2k 0:886e4b3119ad 34 //#define MEM_SIZE (EMAC_MEM_SIZE - (2 * SIZEOF_STRUCT_MEM) - MEM_ALIGNMENT)
iva2k 0:886e4b3119ad 35 #define MEM_POSITION __attribute((section("AHBSRAM1"),aligned))
iva2k 0:886e4b3119ad 36 // EMAC_MEM_ADDR
iva2k 0:886e4b3119ad 37
iva2k 0:886e4b3119ad 38 #define ARP_QUEUEING 0
iva2k 0:886e4b3119ad 39 #define LWIP_NETIF_HOSTNAME 1
iva2k 0:886e4b3119ad 40
iva2k 0:886e4b3119ad 41 #define ARP_TABLE_SIZE 4
iva2k 0:886e4b3119ad 42
iva2k 0:886e4b3119ad 43 #define DNS_TABLE_SIZE 1
iva2k 0:886e4b3119ad 44 #define DNS_USES_STATIC_BUF 0
iva2k 0:886e4b3119ad 45 // 0 - Stack
iva2k 0:886e4b3119ad 46 // 1 - RW-MEM
iva2k 0:886e4b3119ad 47 // 2 - Heap
iva2k 0:886e4b3119ad 48
iva2k 0:886e4b3119ad 49 #define IP_FRAG_USES_STATIC_BUF 0
iva2k 0:886e4b3119ad 50 #define LWIP_STATS 0
iva2k 0:886e4b3119ad 51
iva2k 0:886e4b3119ad 52 #define DNS_LOCAL_HOSTLIST_IS_DYNAMIC 1
iva2k 0:886e4b3119ad 53
iva2k 0:886e4b3119ad 54 #define TCP_SND_BUF 2000
iva2k 0:886e4b3119ad 55 #define TCP_MSS 0x276
iva2k 0:886e4b3119ad 56 //0x300
iva2k 0:886e4b3119ad 57 //#define TCP_SND_QUEUELEN (2 * TCP_SND_BUF/TCP_MSS)
iva2k 0:886e4b3119ad 58 #define TCP_SND_QUEUELEN 16
iva2k 0:886e4b3119ad 59 #define MEMP_NUM_TCP_PCB 5
iva2k 0:886e4b3119ad 60 #define MEMP_NUM_TCP_PCB_LISTEN 8
iva2k 0:886e4b3119ad 61 #define MEMP_NUM_TCP_SEG 20
iva2k 0:886e4b3119ad 62 #define MEMP_NUM_PBUF 16
iva2k 0:886e4b3119ad 63 #define PBUF_POOL_SIZE 6
iva2k 0:886e4b3119ad 64
iva2k 0:886e4b3119ad 65 #ifndef HOSTNAME
iva2k 0:886e4b3119ad 66 #define HOSTNAME "mbed-c3p0"
iva2k 0:886e4b3119ad 67 #endif
iva2k 0:886e4b3119ad 68
iva2k 0:886e4b3119ad 69 //#define LWIP_DEBUG 1
iva2k 0:886e4b3119ad 70 //#define LWIP_DBG_TYPES_ON ~0x0
iva2k 0:886e4b3119ad 71 //#define LWIP_DBG_MIN_LEVEL 0
iva2k 0:886e4b3119ad 72 //#define MEM_DEBUG (LWIP_DBG_ON | LWIP_DBG_LEVEL_WARNING)
iva2k 0:886e4b3119ad 73 //#define TCP_INPUT_DEBUG (LWIP_DBG_ON | LWIP_DBG_LEVEL_WARNING)
iva2k 0:886e4b3119ad 74 //#define TCP_OUTPUT_DEBUG (LWIP_DBG_ON | LWIP_DBG_LEVEL_WARNING)
iva2k 0:886e4b3119ad 75 //#define NETIF_DEBUG (LWIP_DBG_ON | LWIP_DBG_LEVEL_WARNING)
iva2k 0:886e4b3119ad 76 //#define DHCP_DEBUG (LWIP_DBG_ON | LWIP_DBG_LEVEL_WARNING)
iva2k 0:886e4b3119ad 77 //#define IP_DEBUG (LWIP_DBG_ON | LWIP_DBG_LEVEL_WARNING)
iva2k 0:886e4b3119ad 78 //#define TCP_DEBUG (LWIP_DBG_ON | LWIP_DBG_LEVEL_WARNING)
iva2k 0:886e4b3119ad 79 //#define TCP_CWND_DEBUG (LWIP_DBG_ON | LWIP_DBG_LEVEL_WARNING)
iva2k 0:886e4b3119ad 80
iva2k 0:886e4b3119ad 81 //------------------------------------------------------------------------------
iva2k 0:886e4b3119ad 82 // [iva2k] Defines for LWIP/sntp, using SNTPClient wrapper
iva2k 0:886e4b3119ad 83
iva2k 0:886e4b3119ad 84 #ifdef __cplusplus
iva2k 0:886e4b3119ad 85 extern "C" {
iva2k 0:886e4b3119ad 86 #endif
iva2k 0:886e4b3119ad 87
iva2k 0:886e4b3119ad 88 #include <time.h>
iva2k 0:886e4b3119ad 89 extern unsigned int gSntpRecvTimeout_ms;
iva2k 0:886e4b3119ad 90 extern unsigned int gSntpUpdateDelay_ms; // Never set this below 15000
iva2k 0:886e4b3119ad 91 void SntpClientSet(time_t sec); // Receives NTP timestamp
iva2k 0:886e4b3119ad 92
iva2k 0:886e4b3119ad 93 #ifdef __cplusplus
iva2k 0:886e4b3119ad 94 };
iva2k 0:886e4b3119ad 95 #endif
iva2k 0:886e4b3119ad 96
iva2k 0:886e4b3119ad 97 // Do not change these:
iva2k 0:886e4b3119ad 98 #define SNTP_SOCKET 0
iva2k 1:ec4170739967 99 #define SNTP_DEBUG LWIP_DBG_ON
iva2k 1:ec4170739967 100 #define PBUF_DEBUG LWIP_DBG_ON
iva2k 0:886e4b3119ad 101 #define SNTP_PORT 123
iva2k 0:886e4b3119ad 102 #define SNTP_SERVER_DNS 1 // Override. Use URLs. Do not use IP addresses!
iva2k 0:886e4b3119ad 103 #define SNTP_SUPPORT_MULTIPLE_SERVERS 1 // Override. Allow multiple servers.
iva2k 0:886e4b3119ad 104 #define SNTP_SET_SYSTEM_TIME(sec) SntpClientSet(sec)
iva2k 0:886e4b3119ad 105 /** SNTP macro to get system time, used with SNTP_CHECK_RESPONSE >= 2
iva2k 0:886e4b3119ad 106 * to send in request and compare in response.
iva2k 0:886e4b3119ad 107 */
iva2k 0:886e4b3119ad 108 #define SNTP_GET_SYSTEM_TIME(sec, us) do { (sec) = 0; (us) = 0; } while(0)
iva2k 0:886e4b3119ad 109 #define SNTP_RECV_TIMEOUT gSntpRecvTimeout_ms
iva2k 0:886e4b3119ad 110 #define SNTP_UPDATE_DELAY gSntpUpdateDelay_ms
iva2k 0:886e4b3119ad 111 #define SNTP_SUPPRESS_DELAY_CHECK 1 // needed to substitute define with global
iva2k 0:886e4b3119ad 112
iva2k 0:886e4b3119ad 113 // You can change these:
iva2k 0:886e4b3119ad 114 #define SNTP_SERVER_ADDRESS \
iva2k 0:886e4b3119ad 115 "pool.ntp.org", \
iva2k 0:886e4b3119ad 116 "north-america.pool.ntp.org", \
iva2k 0:886e4b3119ad 117 "time-a.nist.gov", \
iva2k 0:886e4b3119ad 118 "time-b.nist.gov", \
iva2k 0:886e4b3119ad 119 // comma-separated list of server URLs
iva2k 0:886e4b3119ad 120 #define SNTP_CHECK_RESPONSE 2 // For now use more checks. Do not set above 2.
iva2k 0:886e4b3119ad 121 #define SNTP_STARTUP_DELAY 0 // ms, Should be randomized
iva2k 0:886e4b3119ad 122
iva2k 0:886e4b3119ad 123 // END [iva2k] Defines for LWIP/sntp, using SNTPClient wrapper
iva2k 0:886e4b3119ad 124 //------------------------------------------------------------------------------
iva2k 0:886e4b3119ad 125
iva2k 0:886e4b3119ad 126 #endif