1#ifndef COAP_CONFIG_H_ 2#define COAP_CONFIG_H_ 3 4#include "contiki.h" 5#include "contiki-lib.h" 6#include "contiki-net.h" 7 8#define WITH_CONTIKI 1 9 10#ifndef COAP_CONSTRAINED_STACK 11#define COAP_CONSTRAINED_STACK 1 12#endif 13 14#ifndef COAP_DISABLE_TCP 15#define COAP_DISABLE_TCP 1 16#endif 17 18#define PACKAGE_STRING "libcoap" 19#define PACKAGE_NAME "libcoap" 20 21#ifndef COAP_DEFAULT_PDU_SIZE 22#define COAP_DEFAULT_PDU_SIZE 64 23#endif /* COAP_DEFAULT_PDU_SIZE */ 24#ifndef COAP_RXBUFFER_SIZE 25#define COAP_RXBUFFER_SIZE 64 26#endif /* COAP_RXBUFFER_SIZE */ 27 28/** Number of resources that can be handled by a CoAP server in addition to 29 * @c /.well-known/core */ 30#ifndef COAP_MAX_RESOURCES 31#define COAP_MAX_RESOURCES 3 32#endif /* COAP_MAX_RESOURCES */ 33 34/** Number of attributes that can be handled (should be at least 35 * @c 2 * COAP_MAX_RESOURCES. to carry the content type and the 36 * resource type. */ 37#ifndef COAP_MAX_ATTRIBUTES 38#define COAP_MAX_ATTRIBUTES 4 39#endif /* COAP_MAX_ATTRIBUTES */ 40 41/** 42 * Number of PDUs that can be stored simultaneously. This number 43 * includes both, the PDUs stored for retransmission as well as the 44 * PDUs received. Beware that choosing a too small value can lead to 45 * many retransmissions to be dealt with. 46 */ 47#ifndef COAP_PDU_MAXCNT 48#define COAP_PDU_MAXCNT 4 49#endif /* COAP_PDU_MAXCNT */ 50 51/** 52 * Maximum number of sessions. 53 */ 54#ifndef COAP_MAX_SESSIONS 55#define COAP_MAX_SESSIONS 2 56#endif /* COAP_MAX_SESSIONS */ 57 58/** 59 * Maximum number of subscriptions. Every additional subscriber costs 60 * 36 B. 61 */ 62#ifndef COAP_MAX_SUBSCRIBERS 63#define COAP_MAX_SUBSCRIBERS 3 64#endif /* COAP_MAX_SUBSCRIBERS */ 65 66/** 67 * The maximum number of cache-key entries that allocate 68 * fixed-size memory blocks. 69 */ 70#ifndef COAP_MAX_CACHE_KEYS 71#define COAP_MAX_CACHE_KEYS (2U) 72#endif /* COAP_MAX_CACHE_KEYS */ 73 74/** 75 * The maximum number of cache-entry entries that allocate 76 * fixed-size memory blocks. 77 */ 78#ifndef COAP_MAX_CACHE_ENTRIES 79#define COAP_MAX_CACHE_ENTRIES (2U) 80#endif /* COAP_MAX_CACHE_ENTRIES */ 81 82/** 83 * Maximum number of large body transmissions. 84 */ 85#ifndef COAP_MAX_LG_XMIT 86#define COAP_MAX_LG_XMIT 2 87#endif /* COAP_MAX_LG_XMIT */ 88 89/** 90 * Maximum number of large body client receives. 91 */ 92#ifndef COAP_MAX_LG_CRCV 93#define COAP_MAX_LG_CRCV 2 94#endif /* COAP_MAX_LG_CRCV */ 95 96/** 97 * Maximum number of large body server receives. 98 */ 99#ifndef COAP_MAX_LG_SRCV 100#define COAP_MAX_LG_SRCV 2 101#endif /* COAP_MAX_LG_SRCV */ 102 103/** 104 * Number of notifications that may be sent non-confirmable before a 105 * confirmable message is sent to detect if observers are alive. The 106 * maximum allowed value here is @c 15. 107 */ 108#ifndef COAP_OBS_MAX_NON 109#define COAP_OBS_MAX_NON 5 110#endif /* COAP_OBS_MAX_NON */ 111 112/** 113 * Number of confirmable notifications that may fail (i.e. time out 114 * without being ACKed) before an observer is removed. The maximum 115 * value for COAP_OBS_MAX_FAIL is @c 3. 116 */ 117#ifndef COAP_OBS_MAX_FAIL 118#define COAP_OBS_MAX_FAIL 3 119#endif /* COAP_OBS_MAX_FAIL */ 120 121#ifndef DEBUG 122# define DEBUG DEBUG_PRINT 123#endif 124 125#define HAVE_STRNLEN 1 126#define HAVE_SNPRINTF 1 127#define HAVE_STRINGS_H 1 128 129/* there is no file-oriented output */ 130#define COAP_DEBUG_FD NULL 131#define COAP_ERR_FD NULL 132 133#include "contiki-conf.h" 134 135#if (defined(PLATFORM) && PLATFORM == PLATFORM_MC1322X) || defined(CONTIKI_TARGET_ECONOTAG) 136/* Redbee econotags get a special treatment here: endianness is set 137 * explicitly, and 138 */ 139 140#define BYTE_ORDER UIP_LITTLE_ENDIAN 141 142#define HAVE_ASSERT_H 143#define HAVE_UNISTD_H 144#define HAVE_SYS_TYPES_H 145#define HAVE_LIMITS_H 146#endif /* PLATFORM_MC1322X || CONTIKI_TARGET_ECONOTAG */ 147 148#if defined(TMOTE_SKY) || defined(CONTIKI_TARGET_SKY) || defined(CONTIKI_TARGET_WISMOTE) 149/* Need to set the byte order for TMote Sky explicitely */ 150 151#define BYTE_ORDER UIP_LITTLE_ENDIAN 152#undef COAP_DEFAULT_PDU_SIZE 153#undef COAP_RXBUFFER_SIZE 154#define COAP_DEFAULT_PDU_SIZE 100 155#define COAP_RXBUFFER_SIZE 100 156 157#define COAP_MAX_BLOCK_SZX 2 158 159typedef int ssize_t; 160typedef void FILE; 161 162#define HAVE_LIMITS_H 1 163#undef HAVE_ASSERT_H 164#define HAVE_VPRINTF 1 165#endif /* defined(TMOTE_SKY) */ 166 167#ifdef CONTIKI_TARGET_MINIMAL_NET 168#undef COAP_DEFAULT_PDU_SIZE 169#undef COAP_RXBUFFER_SIZE 170#define COAP_DEFAULT_PDU_SIZE 1152 171#define COAP_RXBUFFER_SIZE 1472 172#define HAVE_ASSERT_H 1 173#define HAVE_VPRINTF 1 174#define HAVE_SYS_TYPES_H 1 175#endif /* CONTIKI_TARGET_MINIMAL_NET */ 176 177#ifdef CONTIKI_TARGET_CC2538DK 178#define BYTE_ORDER UIP_LITTLE_ENDIAN 179#undef COAP_DEFAULT_PDU_SIZE 180#undef COAP_RXBUFFER_SIZE 181#define COAP_DEFAULT_PDU_SIZE 100 182#define COAP_RXBUFFER_SIZE 100 183 184#undef COAP_MAX_BLOCK_SZX 185#define COAP_MAX_BLOCK_SZX 2 186 187#define HAVE_LIMITS_H 1 188#endif /* CONTIKI_TARGET_CC2538DK */ 189 190#ifndef BYTE_ORDER 191# ifdef UIP_CONF_BYTE_ORDER 192# define BYTE_ORDER UIP_CONF_BYTE_ORDER 193# else 194# error "UIP_CONF_BYTE_ORDER not defined" 195# endif /* UIP_CONF_BYTE_ORDER */ 196#endif /* BYTE_ORDER */ 197 198/* Define assert() as empty directive unless HAVE_ASSERT_H is given. */ 199#ifndef HAVE_ASSERT_H 200# define assert(x) 201#endif 202 203#define ntohs uip_ntohs 204 205#include <stdio.h> 206#define coap_log(fd, ...) printf(__VA_ARGS__) 207 208#endif /* COAP_CONFIG_H_ */ 209 210