From 7cc5312937d5fc7ba54332a5d8b6bfabe95689fd Mon Sep 17 00:00:00 2001 From: Harald Pichler Date: Wed, 2 Oct 2013 14:22:02 +0200 Subject: [PATCH] update coap13 --- examples/osd/wirelessplug/Makefile | 64 ++++++++------- examples/osd/wirelessplug/er-example-server.c | 7 ++ examples/osd/wirelessplug/project-conf.h | 77 +++++++++++++------ 3 files changed, 97 insertions(+), 51 deletions(-) diff --git a/examples/osd/wirelessplug/Makefile b/examples/osd/wirelessplug/Makefile index c05b6890b..17792e430 100644 --- a/examples/osd/wirelessplug/Makefile +++ b/examples/osd/wirelessplug/Makefile @@ -1,45 +1,53 @@ -all: er-example-server -# Use this target explicitly if requried: er-plugtest-server +all: er-example-server er-example-client +# use this target explicitly if requried: er-plugtest-server + + +# variable for this Makefile +# configure CoAP implementation (3|7|12|13) (er-coap-07 also supports CoAP draft 08) +WITH_COAP=13 + + +# variable for Makefile.include +WITH_UIP6=1 +# for some platforms +UIP_CONF_IPV6=1 +# IPv6 make config disappeared completely +CFLAGS += -DUIP_CONF_IPV6=1 CONTIKI=../../.. CFLAGS += -DPROJECT_CONF_H=\"project-conf.h\" -# for static routing, if enabled +# variable for Makefile.include ifneq ($(TARGET), minimal-net) -ifneq ($(TARGET), native) -ifneq ($(findstring avr,$(TARGET)), avr) -PROJECT_SOURCEFILES += static-routing.c -endif -endif -endif - -PROJECT_SOURCEFILES += relay.c -# variable for root Makefile.include -WITH_UIP6=1 -# for some platforms -UIP_CONF_IPV6=1 - -# variable for this Makefile -# configure CoAP implementation (3|7) (er-coap-07 also supports CoAP draft 08) -WITH_COAP=7 - -# new variable since slip-radio -ifneq ($(TARGET), minimal-net) -UIP_CONF_RPL=1 +CFLAGS += -DUIP_CONF_IPV6_RPL=1 else # minimal-net does not support RPL under Linux and is mostly used to test CoAP only ${info INFO: compiling without RPL} -UIP_CONF_RPL=0 -CFLAGS += -DUIP_CONF_ND6_DEF_MAXDADNS=0 +CFLAGS += -DUIP_CONF_IPV6_RPL=0 CFLAGS += -DHARD_CODED_ADDRESS=\"fdfd::10\" -CFLAGS += -DUIP_CONF_BUFFER_SIZE=1280 +${info INFO: compiling with large buffers} +CFLAGS += -DUIP_CONF_BUFFER_SIZE=2048 +CFLAGS += -DREST_MAX_CHUNK_SIZE=1024 +CFLAGS += -DCOAP_MAX_HEADER_SIZE=640 endif # linker optimizations SMALL=1 # REST framework, requires WITH_COAP -ifeq ($(WITH_COAP), 7) +ifeq ($(WITH_COAP), 13) +${info INFO: compiling with CoAP-13} +CFLAGS += -DWITH_COAP=13 +CFLAGS += -DREST=coap_rest_implementation +CFLAGS += -DUIP_CONF_TCP=0 +APPS += er-coap-13 +else ifeq ($(WITH_COAP), 12) +${info INFO: compiling with CoAP-12} +CFLAGS += -DWITH_COAP=12 +CFLAGS += -DREST=coap_rest_implementation +CFLAGS += -DUIP_CONF_TCP=0 +APPS += er-coap-12 +else ifeq ($(WITH_COAP), 7) ${info INFO: compiling with CoAP-08} CFLAGS += -DWITH_COAP=7 CFLAGS += -DREST=coap_rest_implementation @@ -85,5 +93,5 @@ connect-router: $(CONTIKI)/tools/tunslip6 connect-router-cooja: $(CONTIKI)/tools/tunslip6 sudo $(CONTIKI)/tools/tunslip6 -a 127.0.0.1 aaaa::1/64 -tap0up: +connect-minimal: sudo ip address add fdfd::1/64 dev tap0 diff --git a/examples/osd/wirelessplug/er-example-server.c b/examples/osd/wirelessplug/er-example-server.c index 23751d68c..987c341f0 100644 --- a/examples/osd/wirelessplug/er-example-server.c +++ b/examples/osd/wirelessplug/er-example-server.c @@ -100,6 +100,10 @@ #include "er-coap-03.h" #elif WITH_COAP == 7 #include "er-coap-07.h" +#elif WITH_COAP == 12 +#include "er-coap-12.h" +#elif WITH_COAP == 13 +#include "er-coap-13.h" #else #warning "Erbium example without CoAP-specifc functionality" #endif /* CoAP-specific example */ @@ -122,6 +126,9 @@ #include "dev/ds1820.c" #endif +#include "relay.h" +#include "relay.c" + /******************************************************************************/ #if REST_RES_INFO diff --git a/examples/osd/wirelessplug/project-conf.h b/examples/osd/wirelessplug/project-conf.h index 1c3dd8933..f02a4c5e3 100644 --- a/examples/osd/wirelessplug/project-conf.h +++ b/examples/osd/wirelessplug/project-conf.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010, Swedish Institute of Computer Science. + * Copyright (c) 2013, Matthias Kovatsch * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -29,39 +29,70 @@ * */ -#ifndef __PROJECT_RPL_WEB_CONF_H__ -#define __PROJECT_RPL_WEB_CONF_H__ +#ifndef __PROJECT_ERBIUM_CONF_H__ +#define __PROJECT_ERBIUM_CONF_H__ -#define SICSLOWPAN_CONF_FRAG 1 +#define PLATFORM_HAS_LEDS 1 +#define PLATFORM_HAS_BUTTON 1 +#define PLATFORM_HAS_TEMPERATURE 1 +#define PLATFORM_HAS_BATTERY 1 + +/* Some platforms have weird includes. */ +#undef IEEE802154_CONF_PANID /* Disabling RDC for demo purposes. Core updates often require more memory. */ /* For projects, optimize memory and enable RDC again. */ -//#undef NETSTACK_CONF_RDC +// #undef NETSTACK_CONF_RDC //#define NETSTACK_CONF_RDC nullrdc_driver -/* Save some memory for the sky platform. */ -#undef UIP_CONF_DS6_NBR_NBU -#define UIP_CONF_DS6_NBR_NBU 10 -#undef UIP_CONF_DS6_ROUTE_NBU -#define UIP_CONF_DS6_ROUTE_NBU 10 - -/* Increase rpl-border-router IP-buffer when using 128. */ -#ifndef REST_MAX_CHUNK_SIZE +/* Increase rpl-border-router IP-buffer when using more than 64. */ +#undef REST_MAX_CHUNK_SIZE #define REST_MAX_CHUNK_SIZE 64 -#endif + +/* Estimate your header size, especially when using Proxy-Uri. */ +/* +#undef COAP_MAX_HEADER_SIZE +#define COAP_MAX_HEADER_SIZE 70 +*/ + +/* The IP buffer size must fit all other hops, in particular the border router. */ + +#undef UIP_CONF_BUFFER_SIZE +#define UIP_CONF_BUFFER_SIZE 1280 + /* Multiplies with chunk size, be aware of memory constraints. */ -#ifndef COAP_MAX_OPEN_TRANSACTIONS -#define COAP_MAX_OPEN_TRANSACTIONS 2 -#endif +#undef COAP_MAX_OPEN_TRANSACTIONS +#define COAP_MAX_OPEN_TRANSACTIONS 4 -/* Must be <= open transaction number. */ -#ifndef COAP_MAX_OBSERVERS -#define COAP_MAX_OBSERVERS COAP_MAX_OPEN_TRANSACTIONS-1 -#endif +/* Must be <= open transaction number, default is COAP_MAX_OPEN_TRANSACTIONS-1. */ +/* +#undef COAP_MAX_OBSERVERS +#define COAP_MAX_OBSERVERS 2 +*/ + +/* Filtering .well-known/core per query can be disabled to save space. */ +/* +#undef COAP_LINK_FORMAT_FILTERING +#define COAP_LINK_FORMAT_FILTERING 0 +*/ + +/* Save some memory for the sky platform. */ +/* +#undef UIP_CONF_DS6_NBR_NBU +#define UIP_CONF_DS6_NBR_NBU 10 +#undef UIP_CONF_MAX_ROUTES +#define UIP_CONF_MAX_ROUTES 10 +*/ /* Reduce 802.15.4 frame queue to save RAM. */ +/* #undef QUEUEBUF_CONF_NUM -#define QUEUEBUF_CONF_NUM 4 +#define QUEUEBUF_CONF_NUM 4 +*/ -#endif /* __PROJECT_RPL_WEB_CONF_H__ */ +/* +#undef SICSLOWPAN_CONF_FRAG +#define SICSLOWPAN_CONF_FRAG 1 +*/ +#endif /* __PROJECT_ERBIUM_CONF_H__ */