From 451b18273e42993c70b2d3d550af24032199ed5b Mon Sep 17 00:00:00 2001 From: Adam Dunkels Date: Sat, 8 Dec 2012 22:05:57 +0100 Subject: [PATCH 01/10] The Thingsquare Mist regression test scripts --- regression-tests/Makefile | 49 ++++++++++++ regression-tests/Makefile.compile-test | 95 +++++++++++++++++++++++ regression-tests/Makefile.simulation-test | 76 ++++++++++++++++++ 3 files changed, 220 insertions(+) create mode 100644 regression-tests/Makefile create mode 100644 regression-tests/Makefile.compile-test create mode 100644 regression-tests/Makefile.simulation-test diff --git a/regression-tests/Makefile b/regression-tests/Makefile new file mode 100644 index 000000000..f705dcdce --- /dev/null +++ b/regression-tests/Makefile @@ -0,0 +1,49 @@ +# Copyright (c) 2012, Thingsquare, www.thingsquare.com. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# 3. Neither the name of the Institute nor the names of its contributors +# may be used to endorse or promote products derived from this software +# without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE +# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +# SUCH DAMAGE. + +TESTS=$(wildcard ??-*) +SUMMARIES=$(foreach test,$(TESTS),summary-$(test)) + +CONTIKI=.. + +run: clean summary + +summary: $(SUMMARIES) + grep '' $(SUMMARIES) > summary + +summary-%: + @make -C $* RUNALL=true summary || true + @echo -n $* | cat - $*/summary > $@ + @rm $*/summary + +clean: + rm -f $(SUMMARIES) + +cooja: $(CONTIKI)/tools/cooja/dist/cooja.jar +$(CONTIKI)/tools/cooja/dist/cooja.jar: + (cd $(CONTIKI)/tools/cooja; ant jar) + diff --git a/regression-tests/Makefile.compile-test b/regression-tests/Makefile.compile-test new file mode 100644 index 000000000..320127e24 --- /dev/null +++ b/regression-tests/Makefile.compile-test @@ -0,0 +1,95 @@ +# Copyright (c) 2012, Thingsquare, www.thingsquare.com. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# 3. Neither the name of the Institute nor the names of its contributors +# may be used to endorse or promote products derived from this software +# without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE +# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +# SUCH DAMAGE. + +all: summary + +build: examples tools + +dirnam = $(word 1, $(subst /, ,${1})) +target = $(word 2, $(subst /, ,${1})) + +# The stuff below is some GNU make magic to automatically make make +# give each compile test a number, prefixed with a 0 if the number is +# < 10, to match the way the simulation tests output works. +nine := x x x x x x x x x +max = $(subst xx,x,$(join ${1},${2})) +gt = $(filter-out $(words ${1}),$(words $(call max,${1},${2}))) +addzero = $(if $(call gt,${nine},$(1)),$(words ${1}),0$(words ${1})) + +define dooneexample +@echo Buildling example $(3): $(1) for target $(2) +@((cd $(EXAMPLESDIR)/$(1); \ + make TARGET=$(2) clean && make TARGET=$(2)) > \ + $(3)-$(1)-$(2).report 2>&1 && \ + (echo $(1) $(2): OK | tee $(3)-$(1)-$(2).summary) || \ + (echo $(1) $(2): FAIL ಠ.ಠ | tee $(3)-$(1)-$(2).summary ; \ + tail -10 $(3)-$(1)-$(2).report > $(3)-$(1)-$(2).faillog)) +endef + +define doexample +$(eval i+=x) +$(call dooneexample,$(call dirnam,${1}),$(call target,${1}),$(call addzero,${i})) +endef +#end of GNU make magic + + +examples: + $(foreach ex, $(EXAMPLES), $(call doexample, ${ex})) + +report: build + @echo Examples | cat - ??-*.report > report + @echo Tools | cat - $(foreach tool, $(TOOLS), $(tool).report) >> report + +examples-summary: build + @echo Example summary | cat - $(foreach example, $(EXAMPLES), \ + $(foreach target, $(EXAMPLESTARGETS), $(example)-$(target).summary)) > \ + $@ + @echo Tools summary | cat - $(foreach tool, $(TOOLS), $(tool).summary) >> $@ + +faillog-summary: build + @rm -f $@; touch $@ + @$(foreach log, $(wildcard *.faillog), grep -H '' $(log) >> $@;) + +summary: examples-summary faillog-summary + @cat *.summary > $@ + @ls -1 ??-*.faillog > /dev/null 2>&1; [ $$? = 0 ] && tail -v ??-*.faillog >> $@ || true + @rm -f $^ + +tools: + @$(foreach tool, $(TOOLS), \ + (((cd $(TOOLSDIR)/$(tool); make) > $(tool).report 2>&1) && \ + (echo $(tool): OK | tee $(tool).summary) || \ + (echo $(tool): FAIL ಠ_ಠ | tee $(tool).summary ; \ + tail -10 $(tool).report > $(tool).faillog)) ; ) + +clean: + @rm -f *.summary *.report *.faillog summary report + @$(foreach example, $(EXAMPLES), \ + $(foreach target, $(EXAMPLESTARGETS), \ + (cd $(EXAMPLESDIR)/$(example); make TARGET=$(target) clean);)) + @$(foreach tool, $(TOOLS), \ + (cd $(TOOLSDIR)/$(tool); make clean);) diff --git a/regression-tests/Makefile.simulation-test b/regression-tests/Makefile.simulation-test new file mode 100644 index 000000000..90d778f2f --- /dev/null +++ b/regression-tests/Makefile.simulation-test @@ -0,0 +1,76 @@ +# Copyright (c) 2012, Thingsquare, www.thingsquare.com. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# 3. Neither the name of the Institute nor the names of its contributors +# may be used to endorse or promote products derived from this software +# without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE +# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +# SUCH DAMAGE. + + +TESTS=$(wildcard ??-*.csc) +TESTLOGS=$(patsubst %.csc,%.testlog,$(TESTS)) +LOGS=$(patsubst %.csc,%.log,$(TESTS)) +FAILLOGS=$(patsubst %.csc,%.faillog,$(TESTS)) + +CONTIKI=../.. + +tests: $(TESTLOGS) + +report: clean tests + @echo | grep -s -e '' - $(LOGS) $(TESTLOGS) $(FAILLOGS) > $@ || true + +summary: report +ifeq ($(TESTS),) + @echo No tests > $@ +else + @egrep -e ' OK| FAIL' $< > $@ + @ls -1 ??-*.faillog > /dev/null 2>&1; [ $$? = 0 ] && tail -v ??-*.log ??-*.faillog >> $@ || true +endif + +all: cooja clean tests + +ifdef RUNALL +RUNALL=true +else +RUNALL=false +endif + +%.testlog: %.csc cooja + @echo -n Running test $(basename $<) ... "" + @(java -jar $(CONTIKI)/tools/cooja/dist/cooja.jar \ + -nogui=$< -contiki=$(CONTIKI) > $(basename $@).log || \ + (echo " FAIL ಠ_ಠ" | tee -a COOJA.testlog; \ + mv COOJA.testlog $(basename $<).faillog; \ + $(RUNALL))) && \ + (touch COOJA.testlog; \ + mv COOJA.testlog $@; \ + echo " OK") + +clean: + @rm -f $(TESTLOGS) $(LOGS) $(FAILLOGS) COOJA.log COOJA.testlog \ + report summary + + +cooja: $(CONTIKI)/tools/cooja/dist/cooja.jar +$(CONTIKI)/tools/cooja/dist/cooja.jar: + (cd $(CONTIKI)/tools/cooja; ant jar) + From 15d2c106332205684c37325d584305ba3347057b Mon Sep 17 00:00:00 2001 From: Adam Dunkels Date: Sat, 8 Dec 2012 22:10:30 +0100 Subject: [PATCH 02/10] Contiki regression tests, grouped into categories --- regression-tests/01-compile/Makefile | 39 ++++++++++++++++++++++++ regression-tests/02-hello-world/Makefile | 1 + regression-tests/03-base/Makefile | 1 + regression-tests/04-rime/Makefile | 1 + regression-tests/05-netperf/Makefile | 1 + regression-tests/06-shell/Makefile | 1 + regression-tests/07-elfloader/Makefile | 1 + regression-tests/08-collect/Makefile | 1 + regression-tests/09-ipv4/Makefile | 1 + regression-tests/10-ipv6/Makefile | 1 + regression-tests/11-rpl/Makefile | 1 + regression-tests/12-ipv6-apps/Makefile | 1 + 12 files changed, 50 insertions(+) create mode 100644 regression-tests/01-compile/Makefile create mode 100644 regression-tests/02-hello-world/Makefile create mode 100644 regression-tests/03-base/Makefile create mode 100644 regression-tests/04-rime/Makefile create mode 100644 regression-tests/05-netperf/Makefile create mode 100644 regression-tests/06-shell/Makefile create mode 100644 regression-tests/07-elfloader/Makefile create mode 100644 regression-tests/08-collect/Makefile create mode 100644 regression-tests/09-ipv4/Makefile create mode 100644 regression-tests/10-ipv6/Makefile create mode 100644 regression-tests/11-rpl/Makefile create mode 100644 regression-tests/12-ipv6-apps/Makefile diff --git a/regression-tests/01-compile/Makefile b/regression-tests/01-compile/Makefile new file mode 100644 index 000000000..b13abc4bc --- /dev/null +++ b/regression-tests/01-compile/Makefile @@ -0,0 +1,39 @@ +EXAMPLESDIR=../../examples +TOOLSDIR=../../tools + +EXAMPLES = \ +hello-world/avr-raven \ +hello-world/econotag \ +hello-world/esb \ +hello-world/exp5438 \ +hello-world/mb851 \ +hello-world/micaz \ +hello-world/minimal-net \ +hello-world/native \ +hello-world/sky \ +hello-world/wismote \ +hello-world/z1 \ +collect/sky \ +er-rest-example/sky \ +example-shell/native \ +netperf/sky \ +powertrace/sky \ +rime/sky \ +rime/z1 \ +rime/wismote \ +rest-example/sky \ +servreg-hack/sky \ +sky/sky \ +sky-ip/sky \ +sky-shell/sky \ +sky-shell-exec/sky \ +sky-shell-webserver/sky \ +telnet-server/minimal-net \ +webserver/minimal-net \ +webserver-ipv6/sky \ +wget/minimal-net \ +z1/z1 + +TOOLS= + +include ../Makefile.compile-test diff --git a/regression-tests/02-hello-world/Makefile b/regression-tests/02-hello-world/Makefile new file mode 100644 index 000000000..272bc7da1 --- /dev/null +++ b/regression-tests/02-hello-world/Makefile @@ -0,0 +1 @@ +include ../Makefile.simulation-test diff --git a/regression-tests/03-base/Makefile b/regression-tests/03-base/Makefile new file mode 100644 index 000000000..272bc7da1 --- /dev/null +++ b/regression-tests/03-base/Makefile @@ -0,0 +1 @@ +include ../Makefile.simulation-test diff --git a/regression-tests/04-rime/Makefile b/regression-tests/04-rime/Makefile new file mode 100644 index 000000000..272bc7da1 --- /dev/null +++ b/regression-tests/04-rime/Makefile @@ -0,0 +1 @@ +include ../Makefile.simulation-test diff --git a/regression-tests/05-netperf/Makefile b/regression-tests/05-netperf/Makefile new file mode 100644 index 000000000..272bc7da1 --- /dev/null +++ b/regression-tests/05-netperf/Makefile @@ -0,0 +1 @@ +include ../Makefile.simulation-test diff --git a/regression-tests/06-shell/Makefile b/regression-tests/06-shell/Makefile new file mode 100644 index 000000000..272bc7da1 --- /dev/null +++ b/regression-tests/06-shell/Makefile @@ -0,0 +1 @@ +include ../Makefile.simulation-test diff --git a/regression-tests/07-elfloader/Makefile b/regression-tests/07-elfloader/Makefile new file mode 100644 index 000000000..272bc7da1 --- /dev/null +++ b/regression-tests/07-elfloader/Makefile @@ -0,0 +1 @@ +include ../Makefile.simulation-test diff --git a/regression-tests/08-collect/Makefile b/regression-tests/08-collect/Makefile new file mode 100644 index 000000000..272bc7da1 --- /dev/null +++ b/regression-tests/08-collect/Makefile @@ -0,0 +1 @@ +include ../Makefile.simulation-test diff --git a/regression-tests/09-ipv4/Makefile b/regression-tests/09-ipv4/Makefile new file mode 100644 index 000000000..272bc7da1 --- /dev/null +++ b/regression-tests/09-ipv4/Makefile @@ -0,0 +1 @@ +include ../Makefile.simulation-test diff --git a/regression-tests/10-ipv6/Makefile b/regression-tests/10-ipv6/Makefile new file mode 100644 index 000000000..272bc7da1 --- /dev/null +++ b/regression-tests/10-ipv6/Makefile @@ -0,0 +1 @@ +include ../Makefile.simulation-test diff --git a/regression-tests/11-rpl/Makefile b/regression-tests/11-rpl/Makefile new file mode 100644 index 000000000..272bc7da1 --- /dev/null +++ b/regression-tests/11-rpl/Makefile @@ -0,0 +1 @@ +include ../Makefile.simulation-test diff --git a/regression-tests/12-ipv6-apps/Makefile b/regression-tests/12-ipv6-apps/Makefile new file mode 100644 index 000000000..272bc7da1 --- /dev/null +++ b/regression-tests/12-ipv6-apps/Makefile @@ -0,0 +1 @@ +include ../Makefile.simulation-test From d917d64cfbb770c85660085ac4b9ac3e4b4204fa Mon Sep 17 00:00:00 2001 From: Adam Dunkels Date: Sat, 8 Dec 2012 22:20:11 +0100 Subject: [PATCH 03/10] Moved the Contiki tests from the tools/cooja directory into the regression-tests/ directory --- .../02-hello-world/01-hello-world-cooja.csc | 0 .../02-hello-world/02-hello-world-sky.csc | 0 .../02-hello-world/03-hello-world-micaz.csc | 0 .../02-hello-world/04-hello-world-esb.csc | 0 .../02-hello-world/05-exp5438-hello-world.csc | 0 .../02-hello-world/06-wismote-hello-world.csc | 0 .../02-hello-world/07-z1-hello-world.csc | 0 .../02-hello-world}/hello-world.js | 0 .../03-base/01-multithreading.csc | 272 +++++++++--------- .../03-base/02-sky-coffee.csc | 0 .../03-base/04-sky-checkpointing.csc | 4 +- .../03-base/x03-crosslevel.csc | 0 .../04-rime/01-cooja-collect.csc | 0 .../04-rime/02-cooja-rucb.csc | 2 +- .../04-rime/03-sky-abc.csc | 4 +- .../04-rime/04-sky-deluge.csc | 4 +- .../04-rime/05-sky-runicast.csc | 4 +- .../04-rime/06-sky-trickle.csc | 4 +- .../04-rime/07-sky-collect.csc | 4 +- .../04-rime/08-sky-collect.csc | 0 .../05-netperf/01-sky-netperf.csc | 0 .../05-netperf/02-sky-netperf-lpp.csc | 0 .../05-netperf/03-sky-netperf-cxmac.csc | 0 .../06-shell/01-sky-shell-compile.csc | 0 .../06-shell/02-sky-shell-basic-commands.csc | 0 .../06-shell/03-sky-shell-sendcmd.csc | 0 .../06-shell/04-sky-shell-download.csc | 0 .../07-elfloader/01-sky-shell-exec-serial.csc | 2 +- .../08-collect/01-sky-shell-collect.csc | 0 .../08-collect/02-sky-shell-collect-lossy.csc | 0 .../09-ipv4/x01-ip-cooja-telnet-ping.csc | 0 .../09-ipv4/x02-ip-sky-telnet-ping.csc | 0 .../09-ipv4/x03-ip-sky-webserver-wget.csc | 0 .../10-ipv6/01-cooja-ipv6-udp.csc | 2 +- .../10-ipv6/02-sky-ipv6-udp.csc | 0 .../10-ipv6/03-sky-ipv6-udp-fragmentation.csc | 0 .../11-rpl/01-sky-ipv6-rpl-collect.csc | 0 .../12-ipv6-apps/01-sky-servreg-hack.csc | 0 .../12-ipv6-apps}/rest_rpl_coap.js | 2 +- .../12-ipv6-apps/x02-sky-coap.csc | 0 tools/cooja/contiki_tests/RUN_ALL | 97 ------- tools/cooja/contiki_tests/RUN_REPEATED | 45 --- tools/cooja/contiki_tests/RUN_TEST | 63 ---- .../cooja/contiki_tests/cooja_helloworld.info | 1 - tools/cooja/contiki_tests/cooja_ipv6_udp.info | 2 - tools/cooja/contiki_tests/crosslevel.info | 1 - tools/cooja/contiki_tests/esb_helloworld.info | 1 - .../contiki_tests/ip_cooja_telnet_ping.info | 2 - .../contiki_tests/ip_sky_telnet_ping.info | 1 - .../contiki_tests/ip_sky_webserver_wget.info | 1 - tools/cooja/contiki_tests/multithreading.info | 1 - tools/cooja/contiki_tests/rime_abc.info | 1 - tools/cooja/contiki_tests/rime_collect.info | 1 - .../cooja/contiki_tests/rime_collect_sky.info | 1 - tools/cooja/contiki_tests/rime_rucb.info | 1 - tools/cooja/contiki_tests/rime_runicast.info | 1 - tools/cooja/contiki_tests/rime_trickle.info | 1 - .../contiki_tests/sky-ipv6-rpl-collect.info | 1 - .../contiki_tests/sky_checkpointing.info | 1 - tools/cooja/contiki_tests/sky_coffee.info | 1 - tools/cooja/contiki_tests/sky_collect.info | 1 - tools/cooja/contiki_tests/sky_deluge.info | 1 - tools/cooja/contiki_tests/sky_helloworld.info | 1 - .../cooja/contiki_tests/sky_ipv6_routing.info | 1 - tools/cooja/contiki_tests/sky_ipv6_udp.info | 2 - .../sky_shell_basic_commands.info | 1 - .../contiki_tests/sky_shell_collect.info | 1 - .../sky_shell_compilation_test.info | 1 - .../contiki_tests/sky_shell_download.info | 1 - .../contiki_tests/sky_shell_exec_serial.info | 1 - .../contiki_tests/sky_shell_sendcmd.info | 1 - 71 files changed, 153 insertions(+), 387 deletions(-) rename tools/cooja/contiki_tests/cooja_helloworld.csc => regression-tests/02-hello-world/01-hello-world-cooja.csc (100%) rename tools/cooja/contiki_tests/sky_helloworld.csc => regression-tests/02-hello-world/02-hello-world-sky.csc (100%) rename tools/cooja/contiki_tests/micaz_helloworld.csc => regression-tests/02-hello-world/03-hello-world-micaz.csc (100%) rename tools/cooja/contiki_tests/esb_helloworld.csc => regression-tests/02-hello-world/04-hello-world-esb.csc (100%) rename tools/cooja/contiki_tests/exp5438_helloworld.csc => regression-tests/02-hello-world/05-exp5438-hello-world.csc (100%) rename tools/cooja/contiki_tests/wismote_helloworld.csc => regression-tests/02-hello-world/06-wismote-hello-world.csc (100%) rename tools/cooja/contiki_tests/z1_helloworld.csc => regression-tests/02-hello-world/07-z1-hello-world.csc (100%) rename {tools/cooja/contiki_tests => regression-tests/02-hello-world}/hello-world.js (100%) rename tools/cooja/contiki_tests/multithreading.csc => regression-tests/03-base/01-multithreading.csc (75%) rename tools/cooja/contiki_tests/sky_coffee.csc => regression-tests/03-base/02-sky-coffee.csc (100%) rename tools/cooja/contiki_tests/sky_checkpointing.csc => regression-tests/03-base/04-sky-checkpointing.csc (97%) rename tools/cooja/contiki_tests/crosslevel.csc => regression-tests/03-base/x03-crosslevel.csc (100%) rename tools/cooja/contiki_tests/rime_collect.csc => regression-tests/04-rime/01-cooja-collect.csc (100%) rename tools/cooja/contiki_tests/rime_rucb.csc => regression-tests/04-rime/02-cooja-rucb.csc (98%) rename tools/cooja/contiki_tests/rime_abc.csc => regression-tests/04-rime/03-sky-abc.csc (96%) rename tools/cooja/contiki_tests/sky_deluge.csc => regression-tests/04-rime/04-sky-deluge.csc (97%) rename tools/cooja/contiki_tests/rime_runicast.csc => regression-tests/04-rime/05-sky-runicast.csc (97%) rename tools/cooja/contiki_tests/rime_trickle.csc => regression-tests/04-rime/06-sky-trickle.csc (98%) rename tools/cooja/contiki_tests/sky_collect.csc => regression-tests/04-rime/07-sky-collect.csc (98%) rename tools/cooja/contiki_tests/rime_collect_sky.csc => regression-tests/04-rime/08-sky-collect.csc (100%) rename tools/cooja/contiki_tests/netperf-sky.csc => regression-tests/05-netperf/01-sky-netperf.csc (100%) rename tools/cooja/contiki_tests/netperf-sky-lpp.csc => regression-tests/05-netperf/02-sky-netperf-lpp.csc (100%) rename tools/cooja/contiki_tests/netperf-sky-cxmac.csc => regression-tests/05-netperf/03-sky-netperf-cxmac.csc (100%) rename tools/cooja/contiki_tests/sky_shell_compilation_test.csc => regression-tests/06-shell/01-sky-shell-compile.csc (100%) rename tools/cooja/contiki_tests/sky_shell_basic_commands.csc => regression-tests/06-shell/02-sky-shell-basic-commands.csc (100%) rename tools/cooja/contiki_tests/sky_shell_sendcmd.csc => regression-tests/06-shell/03-sky-shell-sendcmd.csc (100%) rename tools/cooja/contiki_tests/sky_shell_download.csc => regression-tests/06-shell/04-sky-shell-download.csc (100%) rename tools/cooja/contiki_tests/sky_shell_exec_serial.csc => regression-tests/07-elfloader/01-sky-shell-exec-serial.csc (98%) rename tools/cooja/contiki_tests/sky_shell_collect.csc => regression-tests/08-collect/01-sky-shell-collect.csc (100%) rename tools/cooja/contiki_tests/sky_shell_collect_lossy.csc => regression-tests/08-collect/02-sky-shell-collect-lossy.csc (100%) rename tools/cooja/contiki_tests/ip_cooja_telnet_ping.csc => regression-tests/09-ipv4/x01-ip-cooja-telnet-ping.csc (100%) rename tools/cooja/contiki_tests/ip_sky_telnet_ping.csc => regression-tests/09-ipv4/x02-ip-sky-telnet-ping.csc (100%) rename tools/cooja/contiki_tests/ip_sky_webserver_wget.csc => regression-tests/09-ipv4/x03-ip-sky-webserver-wget.csc (100%) rename tools/cooja/contiki_tests/cooja_ipv6_udp.csc => regression-tests/10-ipv6/01-cooja-ipv6-udp.csc (99%) rename tools/cooja/contiki_tests/sky_ipv6_udp.csc => regression-tests/10-ipv6/02-sky-ipv6-udp.csc (100%) rename tools/cooja/contiki_tests/sky_ipv6_udp_fragmentation.csc => regression-tests/10-ipv6/03-sky-ipv6-udp-fragmentation.csc (100%) rename tools/cooja/contiki_tests/sky-ipv6-rpl-collect.csc => regression-tests/11-rpl/01-sky-ipv6-rpl-collect.csc (100%) rename tools/cooja/contiki_tests/servreg-hack.csc => regression-tests/12-ipv6-apps/01-sky-servreg-hack.csc (100%) rename {tools/cooja/contiki_tests => regression-tests/12-ipv6-apps}/rest_rpl_coap.js (98%) rename tools/cooja/contiki_tests/rest_rpl_coap.csc => regression-tests/12-ipv6-apps/x02-sky-coap.csc (100%) delete mode 100644 tools/cooja/contiki_tests/RUN_ALL delete mode 100644 tools/cooja/contiki_tests/RUN_REPEATED delete mode 100644 tools/cooja/contiki_tests/RUN_TEST delete mode 100644 tools/cooja/contiki_tests/cooja_helloworld.info delete mode 100644 tools/cooja/contiki_tests/cooja_ipv6_udp.info delete mode 100644 tools/cooja/contiki_tests/crosslevel.info delete mode 100644 tools/cooja/contiki_tests/esb_helloworld.info delete mode 100644 tools/cooja/contiki_tests/ip_cooja_telnet_ping.info delete mode 100644 tools/cooja/contiki_tests/ip_sky_telnet_ping.info delete mode 100644 tools/cooja/contiki_tests/ip_sky_webserver_wget.info delete mode 100644 tools/cooja/contiki_tests/multithreading.info delete mode 100644 tools/cooja/contiki_tests/rime_abc.info delete mode 100644 tools/cooja/contiki_tests/rime_collect.info delete mode 100644 tools/cooja/contiki_tests/rime_collect_sky.info delete mode 100644 tools/cooja/contiki_tests/rime_rucb.info delete mode 100644 tools/cooja/contiki_tests/rime_runicast.info delete mode 100644 tools/cooja/contiki_tests/rime_trickle.info delete mode 100644 tools/cooja/contiki_tests/sky-ipv6-rpl-collect.info delete mode 100644 tools/cooja/contiki_tests/sky_checkpointing.info delete mode 100644 tools/cooja/contiki_tests/sky_coffee.info delete mode 100644 tools/cooja/contiki_tests/sky_collect.info delete mode 100644 tools/cooja/contiki_tests/sky_deluge.info delete mode 100644 tools/cooja/contiki_tests/sky_helloworld.info delete mode 100644 tools/cooja/contiki_tests/sky_ipv6_routing.info delete mode 100644 tools/cooja/contiki_tests/sky_ipv6_udp.info delete mode 100644 tools/cooja/contiki_tests/sky_shell_basic_commands.info delete mode 100644 tools/cooja/contiki_tests/sky_shell_collect.info delete mode 100644 tools/cooja/contiki_tests/sky_shell_compilation_test.info delete mode 100644 tools/cooja/contiki_tests/sky_shell_download.info delete mode 100644 tools/cooja/contiki_tests/sky_shell_exec_serial.info delete mode 100644 tools/cooja/contiki_tests/sky_shell_sendcmd.info diff --git a/tools/cooja/contiki_tests/cooja_helloworld.csc b/regression-tests/02-hello-world/01-hello-world-cooja.csc similarity index 100% rename from tools/cooja/contiki_tests/cooja_helloworld.csc rename to regression-tests/02-hello-world/01-hello-world-cooja.csc diff --git a/tools/cooja/contiki_tests/sky_helloworld.csc b/regression-tests/02-hello-world/02-hello-world-sky.csc similarity index 100% rename from tools/cooja/contiki_tests/sky_helloworld.csc rename to regression-tests/02-hello-world/02-hello-world-sky.csc diff --git a/tools/cooja/contiki_tests/micaz_helloworld.csc b/regression-tests/02-hello-world/03-hello-world-micaz.csc similarity index 100% rename from tools/cooja/contiki_tests/micaz_helloworld.csc rename to regression-tests/02-hello-world/03-hello-world-micaz.csc diff --git a/tools/cooja/contiki_tests/esb_helloworld.csc b/regression-tests/02-hello-world/04-hello-world-esb.csc similarity index 100% rename from tools/cooja/contiki_tests/esb_helloworld.csc rename to regression-tests/02-hello-world/04-hello-world-esb.csc diff --git a/tools/cooja/contiki_tests/exp5438_helloworld.csc b/regression-tests/02-hello-world/05-exp5438-hello-world.csc similarity index 100% rename from tools/cooja/contiki_tests/exp5438_helloworld.csc rename to regression-tests/02-hello-world/05-exp5438-hello-world.csc diff --git a/tools/cooja/contiki_tests/wismote_helloworld.csc b/regression-tests/02-hello-world/06-wismote-hello-world.csc similarity index 100% rename from tools/cooja/contiki_tests/wismote_helloworld.csc rename to regression-tests/02-hello-world/06-wismote-hello-world.csc diff --git a/tools/cooja/contiki_tests/z1_helloworld.csc b/regression-tests/02-hello-world/07-z1-hello-world.csc similarity index 100% rename from tools/cooja/contiki_tests/z1_helloworld.csc rename to regression-tests/02-hello-world/07-z1-hello-world.csc diff --git a/tools/cooja/contiki_tests/hello-world.js b/regression-tests/02-hello-world/hello-world.js similarity index 100% rename from tools/cooja/contiki_tests/hello-world.js rename to regression-tests/02-hello-world/hello-world.js diff --git a/tools/cooja/contiki_tests/multithreading.csc b/regression-tests/03-base/01-multithreading.csc similarity index 75% rename from tools/cooja/contiki_tests/multithreading.csc rename to regression-tests/03-base/01-multithreading.csc index 079a365f8..9029af9da 100644 --- a/tools/cooja/contiki_tests/multithreading.csc +++ b/regression-tests/03-base/01-multithreading.csc @@ -1,135 +1,137 @@ - - - ../apps/mrm - ../apps/mspsim - ../apps/avrora - ../apps/native_gateway - - My simulation - 0 - generated - 1000000 - - se.sics.cooja.radiomediums.UDGM - 50.0 - 100.0 - 1.0 - 1.0 - - - se.sics.cooja.mspmote.SkyMoteType - sky1 - Sky Mote Type #1 - ../../../examples/multi-threading/multi-threading.c - make clean TARGET=sky -make multi-threading.sky TARGET=sky - ../../../examples/multi-threading/multi-threading.sky - se.sics.cooja.interfaces.Position - se.sics.cooja.interfaces.IPAddress - se.sics.cooja.interfaces.Mote2MoteRelations - se.sics.cooja.mspmote.interfaces.MspClock - se.sics.cooja.mspmote.interfaces.MspMoteID - se.sics.cooja.mspmote.interfaces.SkyButton - se.sics.cooja.mspmote.interfaces.SkyFlash - se.sics.cooja.mspmote.interfaces.SkyByteRadio - se.sics.cooja.mspmote.interfaces.SkySerial - se.sics.cooja.mspmote.interfaces.SkyLED - - - se.sics.cooja.mspmote.SkyMote - sky1 - - - se.sics.cooja.interfaces.Position - 83.20518861404864 - 11.060511519885651 - 0.0 - - - se.sics.cooja.mspmote.interfaces.MspMoteID - 1 - - - - - se.sics.cooja.plugins.SimControl - 265 - 3 - 200 - 0 - 0 - false - - - se.sics.cooja.plugins.Visualizer - - 263 - 2 - 292 - 1 - 202 - false - - - se.sics.cooja.plugins.LogListener - - - - 865 - 0 - 209 - 3 - 701 - false - - - se.sics.cooja.plugins.ScriptRunner - - - true - - 600 - 1 - 700 - 267 - 1 - false - - - + + + [APPS_DIR]/mrm + [APPS_DIR]/mspsim + [APPS_DIR]/avrora + [APPS_DIR]/serial_socket + [APPS_DIR]/collect-view + [APPS_DIR]/powertracker + + My simulation + generated + 1000000 + + se.sics.cooja.radiomediums.UDGM + 50.0 + 100.0 + 1.0 + 1.0 + + + 40000 + + + se.sics.cooja.mspmote.SkyMoteType + sky1 + Sky Mote Type #1 + [CONTIKI_DIR]/examples/multi-threading/multi-threading.c + make clean TARGET=sky +make multi-threading.sky TARGET=sky + [CONTIKI_DIR]/examples/multi-threading/multi-threading.sky + se.sics.cooja.interfaces.Position + se.sics.cooja.interfaces.IPAddress + se.sics.cooja.interfaces.Mote2MoteRelations + se.sics.cooja.mspmote.interfaces.MspClock + se.sics.cooja.mspmote.interfaces.MspMoteID + se.sics.cooja.mspmote.interfaces.SkyButton + se.sics.cooja.mspmote.interfaces.SkyFlash + se.sics.cooja.mspmote.interfaces.Msp802154Radio + se.sics.cooja.mspmote.interfaces.MspSerial + se.sics.cooja.mspmote.interfaces.SkyLED + + + + + se.sics.cooja.interfaces.Position + 83.20518861404864 + 11.060511519885651 + 0.0 + + + se.sics.cooja.mspmote.interfaces.MspMoteID + 1 + + sky1 + + + + se.sics.cooja.plugins.SimControl + 265 + 3 + 200 + 0 + 0 + + + se.sics.cooja.plugins.Visualizer + + 0.9090909090909091 0.0 0.0 0.9090909090909091 49.35891944177396 108.94498952737668 + + 263 + 2 + 292 + 1 + 202 + + + se.sics.cooja.plugins.LogListener + + + + + 865 + 0 + 209 + 3 + 701 + + + se.sics.cooja.plugins.ScriptRunner + + + true + + 600 + 1 + 700 + 267 + 1 + + + diff --git a/tools/cooja/contiki_tests/sky_coffee.csc b/regression-tests/03-base/02-sky-coffee.csc similarity index 100% rename from tools/cooja/contiki_tests/sky_coffee.csc rename to regression-tests/03-base/02-sky-coffee.csc diff --git a/tools/cooja/contiki_tests/sky_checkpointing.csc b/regression-tests/03-base/04-sky-checkpointing.csc similarity index 97% rename from tools/cooja/contiki_tests/sky_checkpointing.csc rename to regression-tests/03-base/04-sky-checkpointing.csc index 55c654f09..9dc98818d 100644 --- a/tools/cooja/contiki_tests/sky_checkpointing.csc +++ b/regression-tests/03-base/04-sky-checkpointing.csc @@ -20,10 +20,10 @@ se.sics.cooja.mspmote.SkyMoteType sky1 Sky Mote Type #1 - ../../../examples/sky-shell/sky-checkpoint.c + ../../examples/sky-shell/sky-checkpoint.c make clean TARGET=sky make sky-checkpoint.sky TARGET=sky - ../../../examples/sky-shell/sky-checkpoint.sky + ../../examples/sky-shell/sky-checkpoint.sky se.sics.cooja.interfaces.Position se.sics.cooja.interfaces.IPAddress se.sics.cooja.interfaces.Mote2MoteRelations diff --git a/tools/cooja/contiki_tests/crosslevel.csc b/regression-tests/03-base/x03-crosslevel.csc similarity index 100% rename from tools/cooja/contiki_tests/crosslevel.csc rename to regression-tests/03-base/x03-crosslevel.csc diff --git a/tools/cooja/contiki_tests/rime_collect.csc b/regression-tests/04-rime/01-cooja-collect.csc similarity index 100% rename from tools/cooja/contiki_tests/rime_collect.csc rename to regression-tests/04-rime/01-cooja-collect.csc diff --git a/tools/cooja/contiki_tests/rime_rucb.csc b/regression-tests/04-rime/02-cooja-rucb.csc similarity index 98% rename from tools/cooja/contiki_tests/rime_rucb.csc rename to regression-tests/04-rime/02-cooja-rucb.csc index a6bdb9281..a8529ea85 100644 --- a/tools/cooja/contiki_tests/rime_rucb.csc +++ b/regression-tests/04-rime/02-cooja-rucb.csc @@ -20,7 +20,7 @@ se.sics.cooja.contikimote.ContikiMoteType mtype296 Contiki Mote #1 - ../../../examples/rime/example-rucb.c + [CONTIKI_DIR]/examples/rime/example-rucb.c make example-rucb.cooja TARGET=cooja se.sics.cooja.interfaces.Position se.sics.cooja.interfaces.Battery diff --git a/tools/cooja/contiki_tests/rime_abc.csc b/regression-tests/04-rime/03-sky-abc.csc similarity index 96% rename from tools/cooja/contiki_tests/rime_abc.csc rename to regression-tests/04-rime/03-sky-abc.csc index 87732991f..5c71a54b5 100644 --- a/tools/cooja/contiki_tests/rime_abc.csc +++ b/regression-tests/04-rime/03-sky-abc.csc @@ -20,10 +20,10 @@ se.sics.cooja.mspmote.SkyMoteType sky1 Sky Mote Type #1 - ../../../examples/rime/example-abc.c + [CONTIKI_DIR]/examples/rime/example-abc.c make clean TARGET=sky make example-abc.sky TARGET=sky - ../../../examples/rime/example-abc.sky + [CONTIKI_DIR]/examples/rime/example-abc.sky se.sics.cooja.interfaces.Position se.sics.cooja.interfaces.IPAddress se.sics.cooja.interfaces.Mote2MoteRelations diff --git a/tools/cooja/contiki_tests/sky_deluge.csc b/regression-tests/04-rime/04-sky-deluge.csc similarity index 97% rename from tools/cooja/contiki_tests/sky_deluge.csc rename to regression-tests/04-rime/04-sky-deluge.csc index 69f3a2051..d662b1dec 100644 --- a/tools/cooja/contiki_tests/sky_deluge.csc +++ b/regression-tests/04-rime/04-sky-deluge.csc @@ -20,10 +20,10 @@ se.sics.cooja.mspmote.SkyMoteType sky1 Sky Mote Type #1 - ../../../examples/sky/test-deluge.c + [CONTIKI_DIR]/examples/sky/test-deluge.c make clean TARGET=sky make APPS=deluge test-deluge.sky TARGET=sky - ../../../examples/sky/test-deluge.sky + [CONTIKI_DIR]/examples/sky/test-deluge.sky se.sics.cooja.interfaces.Position se.sics.cooja.interfaces.IPAddress se.sics.cooja.interfaces.Mote2MoteRelations diff --git a/tools/cooja/contiki_tests/rime_runicast.csc b/regression-tests/04-rime/05-sky-runicast.csc similarity index 97% rename from tools/cooja/contiki_tests/rime_runicast.csc rename to regression-tests/04-rime/05-sky-runicast.csc index 7a707db5d..79b3f0b0b 100644 --- a/tools/cooja/contiki_tests/rime_runicast.csc +++ b/regression-tests/04-rime/05-sky-runicast.csc @@ -20,10 +20,10 @@ se.sics.cooja.mspmote.SkyMoteType sky1 Sky Mote Type #1 - ../../../examples/rime/example-runicast.c + [CONTIKI_DIR]/examples/rime/example-runicast.c make clean TARGET=sky make example-runicast.sky TARGET=sky - ../../../examples/rime/example-runicast.sky + [CONTIKI_DIR]/examples/rime/example-runicast.sky se.sics.cooja.interfaces.Position se.sics.cooja.interfaces.IPAddress se.sics.cooja.interfaces.Mote2MoteRelations diff --git a/tools/cooja/contiki_tests/rime_trickle.csc b/regression-tests/04-rime/06-sky-trickle.csc similarity index 98% rename from tools/cooja/contiki_tests/rime_trickle.csc rename to regression-tests/04-rime/06-sky-trickle.csc index 6e0c6b71e..926ebece1 100644 --- a/tools/cooja/contiki_tests/rime_trickle.csc +++ b/regression-tests/04-rime/06-sky-trickle.csc @@ -20,10 +20,10 @@ se.sics.cooja.mspmote.SkyMoteType sky1 Sky Mote Type #1 - ../../../examples/rime/example-trickle.c + [CONTIKI_DIR]/examples/rime/example-trickle.c make clean TARGET=sky make example-trickle.sky TARGET=sky - ../../../examples/rime/example-trickle.sky + [CONTIKI_DIR]/examples/rime/example-trickle.sky se.sics.cooja.interfaces.Position se.sics.cooja.interfaces.IPAddress se.sics.cooja.interfaces.Mote2MoteRelations diff --git a/tools/cooja/contiki_tests/sky_collect.csc b/regression-tests/04-rime/07-sky-collect.csc similarity index 98% rename from tools/cooja/contiki_tests/sky_collect.csc rename to regression-tests/04-rime/07-sky-collect.csc index 03347d675..769c5b494 100644 --- a/tools/cooja/contiki_tests/sky_collect.csc +++ b/regression-tests/04-rime/07-sky-collect.csc @@ -20,10 +20,10 @@ se.sics.cooja.mspmote.SkyMoteType sky1 Sky Mote Type #1 - ../../../examples/sky/sky-collect.c + [CONTIKI_DIR]/examples/sky/sky-collect.c make clean TARGET=sky make sky-collect.sky TARGET=sky - ../../../examples/sky/sky-collect.sky + [CONTIKI_DIR]/examples/sky/sky-collect.sky se.sics.cooja.interfaces.Position se.sics.cooja.interfaces.IPAddress se.sics.cooja.interfaces.Mote2MoteRelations diff --git a/tools/cooja/contiki_tests/rime_collect_sky.csc b/regression-tests/04-rime/08-sky-collect.csc similarity index 100% rename from tools/cooja/contiki_tests/rime_collect_sky.csc rename to regression-tests/04-rime/08-sky-collect.csc diff --git a/tools/cooja/contiki_tests/netperf-sky.csc b/regression-tests/05-netperf/01-sky-netperf.csc similarity index 100% rename from tools/cooja/contiki_tests/netperf-sky.csc rename to regression-tests/05-netperf/01-sky-netperf.csc diff --git a/tools/cooja/contiki_tests/netperf-sky-lpp.csc b/regression-tests/05-netperf/02-sky-netperf-lpp.csc similarity index 100% rename from tools/cooja/contiki_tests/netperf-sky-lpp.csc rename to regression-tests/05-netperf/02-sky-netperf-lpp.csc diff --git a/tools/cooja/contiki_tests/netperf-sky-cxmac.csc b/regression-tests/05-netperf/03-sky-netperf-cxmac.csc similarity index 100% rename from tools/cooja/contiki_tests/netperf-sky-cxmac.csc rename to regression-tests/05-netperf/03-sky-netperf-cxmac.csc diff --git a/tools/cooja/contiki_tests/sky_shell_compilation_test.csc b/regression-tests/06-shell/01-sky-shell-compile.csc similarity index 100% rename from tools/cooja/contiki_tests/sky_shell_compilation_test.csc rename to regression-tests/06-shell/01-sky-shell-compile.csc diff --git a/tools/cooja/contiki_tests/sky_shell_basic_commands.csc b/regression-tests/06-shell/02-sky-shell-basic-commands.csc similarity index 100% rename from tools/cooja/contiki_tests/sky_shell_basic_commands.csc rename to regression-tests/06-shell/02-sky-shell-basic-commands.csc diff --git a/tools/cooja/contiki_tests/sky_shell_sendcmd.csc b/regression-tests/06-shell/03-sky-shell-sendcmd.csc similarity index 100% rename from tools/cooja/contiki_tests/sky_shell_sendcmd.csc rename to regression-tests/06-shell/03-sky-shell-sendcmd.csc diff --git a/tools/cooja/contiki_tests/sky_shell_download.csc b/regression-tests/06-shell/04-sky-shell-download.csc similarity index 100% rename from tools/cooja/contiki_tests/sky_shell_download.csc rename to regression-tests/06-shell/04-sky-shell-download.csc diff --git a/tools/cooja/contiki_tests/sky_shell_exec_serial.csc b/regression-tests/07-elfloader/01-sky-shell-exec-serial.csc similarity index 98% rename from tools/cooja/contiki_tests/sky_shell_exec_serial.csc rename to regression-tests/07-elfloader/01-sky-shell-exec-serial.csc index 795578ed3..2c160c8e9 100644 --- a/tools/cooja/contiki_tests/sky_shell_exec_serial.csc +++ b/regression-tests/07-elfloader/01-sky-shell-exec-serial.csc @@ -94,7 +94,7 @@ make hello-world.ce TARGET=sky SMALL=0 + true + + 600 + 2 + 439 + 771 + 165 + + + se.sics.cooja.plugins.TimeLine + + 0 + 147 + 82 + 72 + 73 + 21 + 108 + 32 + 29 + 19 + 55 + 85 + 9 + 180 + 4 + 86 + 190 + 138 + 162 + 116 + 137 + 176 + 132 + 99 + 89 + 163 + 20 + 45 + 104 + 35 + 144 + 90 + 54 + 38 + 65 + 83 + 43 + 110 + 53 + 48 + 13 + 146 + 121 + 124 + 52 + 74 + 154 + 94 + 93 + 158 + 156 + 78 + 125 + 187 + 186 + 109 + 142 + 87 + 5 + 130 + 3 + 46 + 198 + 12 + 135 + 191 + 172 + 105 + 31 + 155 + 192 + 69 + 112 + 188 + 179 + 118 + 50 + 33 + 67 + 80 + 136 + 131 + 47 + 177 + 62 + 197 + 61 + 189 + 194 + 42 + 15 + 11 + 57 + 195 + 170 + 143 + 14 + 63 + 101 + 168 + 111 + 88 + 107 + 167 + 129 + 51 + 102 + 79 + 28 + 151 + 159 + 128 + 76 + 193 + 113 + 139 + 184 + 103 + 175 + 199 + 77 + 58 + 119 + 2 + 117 + 59 + 185 + 126 + 164 + 127 + 70 + 81 + 64 + 181 + 149 + 95 + 75 + 56 + 41 + 22 + 49 + 182 + 145 + 23 + 134 + 141 + 122 + 133 + 24 + 26 + 165 + 39 + 160 + 71 + 10 + 44 + 27 + 34 + 114 + 157 + 91 + 60 + 152 + 174 + 106 + 166 + 25 + 6 + 161 + 17 + 92 + 100 + 40 + 171 + 183 + 30 + 97 + 196 + 153 + 7 + 169 + 84 + 68 + 66 + 98 + 178 + 115 + 150 + 96 + 173 + 16 + 140 + 1 + 36 + 18 + 148 + 123 + 37 + 8 + 120 + + 3677.5424662661985 + + 1600 + 0 + 289 + 0 + 416 + + + diff --git a/regression-tests/04-rime/10-cooja-mesh.csc b/regression-tests/04-rime/10-cooja-mesh.csc new file mode 100644 index 000000000..1939f1757 --- /dev/null +++ b/regression-tests/04-rime/10-cooja-mesh.csc @@ -0,0 +1,3730 @@ + + + [APPS_DIR]/mrm + [APPS_DIR]/mspsim + [APPS_DIR]/avrora + [APPS_DIR]/serial_socket + [APPS_DIR]/collect-view + [APPS_DIR]/powertracker + + My simulation + 123456 + 1000000 + + se.sics.cooja.radiomediums.UDGM + 50.0 + 100.0 + 1.0 + 1.0 + + + 40000 + + + se.sics.cooja.contikimote.ContikiMoteType + mtype140 + Cooja Mote Type #1 + [CONTIKI_DIR]/regression-tests/04-rime/code/mesh-node.c + make mesh-node.cooja TARGET=cooja + se.sics.cooja.interfaces.Position + se.sics.cooja.interfaces.Battery + se.sics.cooja.contikimote.interfaces.ContikiVib + se.sics.cooja.contikimote.interfaces.ContikiMoteID + se.sics.cooja.contikimote.interfaces.ContikiRS232 + se.sics.cooja.contikimote.interfaces.ContikiBeeper + se.sics.cooja.interfaces.RimeAddress + se.sics.cooja.contikimote.interfaces.ContikiIPAddress + se.sics.cooja.contikimote.interfaces.ContikiRadio + se.sics.cooja.contikimote.interfaces.ContikiButton + se.sics.cooja.contikimote.interfaces.ContikiPIR + se.sics.cooja.contikimote.interfaces.ContikiClock + se.sics.cooja.contikimote.interfaces.ContikiLED + se.sics.cooja.contikimote.interfaces.ContikiCFS + se.sics.cooja.interfaces.Mote2MoteRelations + se.sics.cooja.interfaces.MoteAttributes + false + + + + se.sics.cooja.interfaces.Position + -15.110131951776825 + -15.766130931184252 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 1 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 75.32698081339126 + 15.146240079902862 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 2 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 72.13994478967824 + 74.26041049728875 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 3 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 21.45905883941627 + 18.50931229663846 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 4 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 51.73154548699189 + 51.853821705262824 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 5 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 62.76256370926019 + 23.744771850412793 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 6 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 77.53279132863358 + 2.39495180445084 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 7 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 9.301610765351997 + 11.468270260551716 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 8 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 96.0279441300693 + 77.21498068457203 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 9 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 14.931779398072187 + 88.03333861239253 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 10 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 75.44726862760838 + 5.411487191515407 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 11 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 95.318884841329 + 86.20194655940381 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 12 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 18.87115940222929 + 51.75275796436098 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 13 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 39.29584130063258 + 83.73613076037893 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 14 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 18.99016360852214 + 84.31828659208982 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 15 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 94.72045049573865 + 88.8002265547872 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 16 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 9.965149552619945 + 60.9672217226311 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 17 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 75.63601320305163 + 69.30301792320999 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 18 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 44.389408292201615 + 9.32896426859151 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 19 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 5.415822927153069 + 1.1229749685748303 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 20 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 17.73197875806011 + 91.09483283627415 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 21 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 63.21117626423727 + 92.09822312636405 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 22 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 1.2023179518000582 + 6.101073555655545 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 23 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 81.87774265107667 + 17.714586672424947 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 24 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 22.521479020896074 + 14.113603880757953 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 25 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 84.02138539648226 + 17.015320265906407 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 26 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 46.852336565832964 + 77.37329070431454 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 27 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 79.21392112207015 + 28.248800955218243 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 28 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 74.80704477852946 + 60.79424441306157 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 29 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 56.051297723638584 + 51.46569350230792 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 30 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 57.1269257718506 + 61.121148185570306 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 31 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 24.768409265606838 + 66.41379589463979 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 32 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 65.86939970609022 + 74.17702928480342 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 33 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 22.730659983362024 + 88.83212690881382 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 34 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 97.72636366803897 + 89.33964870322923 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 35 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 20.374524653886226 + 45.22966122318138 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 36 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 77.86468266153415 + 22.27997310669162 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 37 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 29.08732257227028 + 87.49874641701248 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 38 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 92.28518245794669 + 46.424258423445906 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 39 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 46.05708599953595 + 54.74731598871861 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 40 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 86.44276097412764 + 57.14457919424108 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 41 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 91.18152331698074 + 44.46303779585815 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 42 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 9.495031343513304 + 32.860166235404165 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 43 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 25.532456743363362 + 50.910025313741656 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 44 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 62.22618255413567 + 37.501327897174285 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 45 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 53.39846293057672 + 11.305221368002083 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 46 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 76.03978999479973 + 18.542902882611067 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 47 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 25.280683674156457 + 14.065650667522767 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 48 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 37.47973536226168 + 84.38773756679916 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 49 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 88.03948393367386 + 35.934760179823364 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 50 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 3.0107724008282433 + 20.54172713979715 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 51 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 92.2648242893991 + 2.19984740812853 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 52 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 71.1950863336371 + 12.977697720146663 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 53 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 23.39045217087643 + 96.05336539086986 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 54 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 91.30189414809722 + 62.48046280525844 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 55 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 90.54828218741403 + 67.41740523090176 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 56 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 59.584541112217 + 79.6815014505103 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 57 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 90.05917725331057 + 19.668333608379562 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 58 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 56.19172073106215 + 66.94875781635855 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 59 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 74.11183073083164 + 44.53101125240788 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 60 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 99.62245190569143 + 1.2518386804190595 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 61 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 50.86207262991679 + 64.2596263003396 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 62 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 82.90134355007967 + 98.46998610299977 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 63 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 32.097700534946775 + 57.82370953888362 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 64 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 20.792359880663426 + 42.18171503641626 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 65 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 26.90344653082014 + 49.34860693256755 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 66 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 93.37402442548722 + 12.54036096085449 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 67 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 63.50895936766901 + 26.13335565534737 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 68 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 54.59249988579196 + 28.10613096853092 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 69 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 51.72915360045628 + 7.2358928898125345 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 70 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 69.85466521382759 + 76.11700753212021 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 71 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 81.06814365856157 + 77.36444410758936 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 72 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 12.62178613429452 + 26.220067395705293 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 73 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 76.54960310902881 + 33.57032079508466 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 74 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 43.05406862818124 + 6.671159718339769 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 75 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 8.489914638926576 + 11.364660931830084 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 76 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 92.21297935768304 + 38.901136911882226 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 77 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 12.515404095391613 + 83.18052083184756 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 78 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 11.765120085018932 + 30.535771545958923 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 79 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 21.84827655269378 + 74.8105798512456 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 80 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 23.59921216453905 + 83.77605869702256 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 81 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 30.89218892933696 + 67.24517923056783 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 82 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 16.754948076730646 + 86.76525325664295 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 83 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 94.01968091458089 + 33.32895468517063 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 84 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 14.494646399171273 + 82.39583815813506 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 85 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 48.71947952314664 + 65.39753703873185 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 86 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 44.58919963221467 + 0.08824262076495559 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 87 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 31.35911964529313 + 44.53704965455876 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 88 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 36.73949789516603 + 50.485369712324925 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 89 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 6.151679368237806 + 70.75427799132197 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 90 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 86.75159969217906 + 15.772621058761239 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 91 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 43.81709449446297 + 51.01754337793292 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 92 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 35.30424198776551 + 75.40895569308267 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 93 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 92.16764155243385 + 37.12839773343516 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 94 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 26.003971042858886 + 30.335276302978187 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 95 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 63.631134510133734 + 24.450512217715136 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 96 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 22.467333143102163 + 81.04396399393656 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 97 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 97.69844265068488 + 95.83027844609585 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 98 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 65.38894336702717 + 65.01739556197926 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 99 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 23.52628911665692 + 1.207091576759045 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 100 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 49.375308587386826 + 16.68070312353277 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 101 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 69.461379757725 + 54.48065350202764 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 102 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 55.60961339959927 + 13.809323108297345 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 103 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 23.03486784995873 + 55.66637494926414 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 104 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 23.463634800199763 + 64.86732549368021 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 105 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 3.901375281857966 + 82.15368199936674 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 106 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 13.727410765057513 + 54.54734565801572 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 107 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 51.09638459119502 + 60.3491948088858 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 108 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 63.36127151665472 + 43.29434787013787 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 109 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 58.62938785115435 + 23.937940536279946 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 110 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 60.20153526777896 + 40.21802436438158 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 111 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 94.52454590425745 + 81.6694698767615 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 112 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 52.9213694599384 + 77.86420496516587 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 113 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 68.61056178583134 + 73.64759313367774 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 114 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 32.25025125998364 + 88.09394970381855 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 115 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 45.228818349692276 + 56.6857477992902 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 116 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 72.91510428342265 + 48.016968698680444 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 117 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 36.09326383724911 + 65.93561184944842 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 118 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 59.34646598759592 + 56.68812502666998 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 119 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 24.253968594634323 + 89.69274115479124 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 120 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 52.69518046464358 + 51.18422353087328 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 121 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 16.883346155197277 + 28.45535507975351 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 122 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 11.366979180477676 + 44.752447495970756 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 123 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 67.75166344967951 + 97.82453837992166 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 124 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 94.78000175089495 + 0.9187745489910304 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 125 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 51.056290388365596 + 60.98645524111218 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 126 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 51.49684628172943 + 62.65900518969486 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 127 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 68.92410375720559 + 22.04832696437221 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 128 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 82.82918233005728 + 62.79875071353599 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 129 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 83.5631819266006 + 81.58540225851283 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 130 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 44.44732988189216 + 14.491241662688436 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 131 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 40.780333569336 + 4.009415778619951 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 132 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 87.875397456334 + 43.63036340425231 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 133 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 89.42470277518677 + 99.84079465772967 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 134 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 85.87794548965859 + 89.0352799102892 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 135 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 57.22174940143495 + 10.145407049355216 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 136 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 38.94731418883078 + 82.77439711782424 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 137 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 59.32065648187531 + 44.20774255696792 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 138 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 31.120120849726774 + 89.60000439876077 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 139 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 44.52403715783231 + 62.3194136602862 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 140 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 22.362727341005417 + 49.59730180608639 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 141 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 14.370793944637184 + 84.16542992042004 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 142 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 10.382057116504594 + 36.20777577058662 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 143 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 31.708614425954153 + 8.929196448642006 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 144 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 18.99060403390356 + 28.098507024338037 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 145 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 3.7660125313138892 + 48.586414327187164 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 146 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 23.571368218820343 + 49.185899485490594 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 147 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 26.597355199952165 + 42.03120419505485 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 148 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 80.67530824986719 + 68.69137917126238 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 149 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 95.64723800253887 + 49.22571370181109 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 150 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 10.704141148035173 + 70.55232411145946 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 151 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 64.52024310025003 + 34.475451454425986 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 152 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 85.78573465828082 + 7.916030569985 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 153 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 0.24262868892772627 + 72.63231254385946 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 154 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 93.57606012872533 + 98.82725540441758 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 155 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 78.69632487677171 + 36.37925533039474 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 156 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 99.49668801110867 + 99.53794061222166 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 157 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 64.76201671109297 + 5.055212527820718 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 158 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 80.95330430773969 + 4.015680109351305 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 159 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 65.23411064596435 + 32.474870590460114 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 160 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 96.92930107013441 + 65.03716301192813 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 161 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 51.910733667455055 + 3.0607401855079153 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 162 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 22.997927613490187 + 52.49410023194099 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 163 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 61.498404326122916 + 20.948069777061473 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 164 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 86.67187941247089 + 57.91865763266372 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 165 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 58.12331461229143 + 17.597258881851896 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 166 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 90.97447553174264 + 6.397999431511192 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 167 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 24.266277228726896 + 30.34177377688706 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 168 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 98.47208098934011 + 44.57507934017237 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 169 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 43.73081376780091 + 21.13808300018135 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 170 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 45.49162860241004 + 68.84491125995895 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 171 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 83.6456747075875 + 43.93087863088753 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 172 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 72.03579837660902 + 34.60910091231335 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 173 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 35.263754721356534 + 76.30282405093295 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 174 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 40.61467901333516 + 24.94120175915311 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 175 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 60.156002945132116 + 50.68140149744396 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 176 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 3.887768554078841 + 45.57320016474882 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 177 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 19.95603661943931 + 20.00197042619395 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 178 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 92.14169094537768 + 79.0089520316807 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 179 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 65.67068979347698 + 88.48916739527394 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 180 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 76.14334621957694 + 61.01052000065369 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 181 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 84.25336051788017 + 19.669061259592745 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 182 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 16.168238996091954 + 10.832644717909435 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 183 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 64.09766119688976 + 88.85025066318933 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 184 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 4.810483157860002 + 36.48131639750729 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 185 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 51.74308602641094 + 87.53927985054797 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 186 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 18.77259055131779 + 67.96359965661854 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 187 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 44.72430321351292 + 72.44740211096371 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 188 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 5.88546300021735 + 25.93516805671332 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 189 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 51.41061394358658 + 15.202886891183166 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 190 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 89.23533431357276 + 77.23342632923122 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 191 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 60.079346331237495 + 82.34379420397117 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 192 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 85.025456606937 + 40.33998257744421 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 193 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 94.49078377456884 + 13.806399874732389 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 194 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 17.664363452458907 + 96.61599411572223 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 195 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 0.9648947505341954 + 75.5573385733673 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 196 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 10.975537455298422 + 11.904593591027812 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 197 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 57.42097054747428 + 15.293997771212686 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 198 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 23.228255481027414 + 38.44074324739415 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 199 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.interfaces.Position + 122.09144445179118 + 123.28827939092514 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 200 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype140 + + + + se.sics.cooja.plugins.SimControl + 280 + 0 + 160 + 400 + 0 + + + se.sics.cooja.plugins.Visualizer + + se.sics.cooja.plugins.skins.IDVisualizerSkin + se.sics.cooja.plugins.skins.GridVisualizerSkin + se.sics.cooja.plugins.skins.UDGMVisualizerSkin + se.sics.cooja.plugins.skins.TrafficVisualizerSkin + 2.1537601749087445 0.0 0.0 2.1537601749087445 62.919309242649014 50.9666138148029 + + 400 + 1 + 400 + 1 + 1 + + + se.sics.cooja.plugins.LogListener + + + + + 1200 + 3 + 240 + 400 + 160 + + + se.sics.cooja.plugins.TimeLine + + 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12 + 13 + 14 + 15 + 16 + 17 + 18 + 19 + 20 + 21 + 22 + 23 + 24 + 25 + 26 + 27 + 28 + 29 + 30 + 31 + 32 + 33 + 34 + 35 + 36 + 37 + 38 + 39 + 40 + 41 + 42 + 43 + 44 + 45 + 46 + 47 + 48 + 49 + 50 + 51 + 52 + 53 + 54 + 55 + 56 + 57 + 58 + 59 + 60 + 61 + 62 + 63 + 64 + 65 + 66 + 67 + 68 + 69 + 70 + 71 + 72 + 73 + 74 + 75 + 76 + 77 + 78 + 79 + 80 + 81 + 82 + 83 + 84 + 85 + 86 + 87 + 88 + 89 + 90 + 91 + 92 + 93 + 94 + 95 + 96 + 97 + 98 + 99 + 100 + 101 + 102 + 103 + 104 + 105 + 106 + 107 + 108 + 109 + 110 + 111 + 112 + 113 + 114 + 115 + 116 + 117 + 118 + 119 + 120 + 121 + 122 + 123 + 124 + 125 + 126 + 127 + 128 + 129 + 130 + 131 + 132 + 133 + 134 + 135 + 136 + 137 + 138 + 139 + 140 + 141 + 142 + 143 + 144 + 145 + 146 + 147 + 148 + 149 + 150 + 151 + 152 + 153 + 154 + 155 + 156 + 157 + 158 + 159 + 160 + 161 + 162 + 163 + 164 + 165 + 166 + 167 + 168 + 169 + 170 + 171 + 172 + 173 + 174 + 175 + 176 + 177 + 178 + 179 + 180 + 181 + 182 + 183 + 184 + 185 + 186 + 187 + 188 + 189 + 190 + 191 + 192 + 193 + 194 + 195 + 196 + 197 + 198 + 199 + + 500.0 + + 1600 + 4 + 300 + 0 + 405 + + + se.sics.cooja.plugins.Notes + + Enter notes here + true + + 920 + 5 + 160 + 680 + 0 + + + se.sics.cooja.plugins.ScriptRunner + + + true + + 600 + 2 + 700 + 692 + -5 + + + diff --git a/regression-tests/04-rime/code/Makefile b/regression-tests/04-rime/code/Makefile new file mode 100644 index 000000000..b6db61162 --- /dev/null +++ b/regression-tests/04-rime/code/Makefile @@ -0,0 +1,5 @@ +CONTIKI = ../../.. + +all: trickle-node + +include $(CONTIKI)/Makefile.include diff --git a/regression-tests/04-rime/code/mesh-node.c b/regression-tests/04-rime/code/mesh-node.c new file mode 100644 index 000000000..9da67781c --- /dev/null +++ b/regression-tests/04-rime/code/mesh-node.c @@ -0,0 +1,70 @@ +/* + * Copyright (c) 2012, Thingsquare, www.thingsquare.com. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the Institute nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ +#include "contiki.h" +#include "net/rime/mesh.h" + +#include "sys/node-id.h" + +#include +/*---------------------------------------------------------------------------*/ +PROCESS(mesh_node_process, "Mesh node"); +AUTOSTART_PROCESSES(&mesh_node_process); +/*---------------------------------------------------------------------------*/ +static void +mesh_recv(struct mesh_conn *c, const rimeaddr_t *from, uint8_t hops) +{ + printf("%d.%d: mesh message received '%s'\n", + rimeaddr_node_addr.u8[0], rimeaddr_node_addr.u8[1], + (char *)packetbuf_dataptr()); +} +const static struct mesh_callbacks mesh_callback = {mesh_recv, NULL, NULL}; +static struct mesh_conn mesh; +/*---------------------------------------------------------------------------*/ +PROCESS_THREAD(mesh_node_process, ev, data) +{ + static struct etimer et; + PROCESS_BEGIN(); + + mesh_open(&mesh, 145, &mesh_callback); + + while(1) { + etimer_set(&et, CLOCK_SECOND * 20); + PROCESS_WAIT_UNTIL(etimer_expired(&et)); + if(node_id == 200) { + rimeaddr_t receiver; + packetbuf_copyfrom("Hello, world", 13); + + receiver.u8[0] = 1; + receiver.u8[1] = 0; + mesh_send(&mesh, &receiver); + } + } + PROCESS_END(); +} +/*---------------------------------------------------------------------------*/ diff --git a/regression-tests/04-rime/code/trickle-node.c b/regression-tests/04-rime/code/trickle-node.c new file mode 100644 index 000000000..b3714e6ca --- /dev/null +++ b/regression-tests/04-rime/code/trickle-node.c @@ -0,0 +1,67 @@ +/* + * Copyright (c) 2012, Thingsquare, www.thingsquare.com. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the Institute nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ +#include "contiki.h" +#include "net/rime/trickle.h" + +#include "sys/node-id.h" + +#include +/*---------------------------------------------------------------------------*/ +PROCESS(trickle_node_process, "Trickle node"); +AUTOSTART_PROCESSES(&trickle_node_process); +/*---------------------------------------------------------------------------*/ +static void +trickle_recv(struct trickle_conn *c) +{ + printf("%d.%d: trickle message received '%s'\n", + rimeaddr_node_addr.u8[0], rimeaddr_node_addr.u8[1], + (char *)packetbuf_dataptr()); +} +const static struct trickle_callbacks trickle_callback = {trickle_recv}; +static struct trickle_conn trickle; +/*---------------------------------------------------------------------------*/ +PROCESS_THREAD(trickle_node_process, ev, data) +{ + static struct etimer et; + PROCESS_BEGIN(); + + trickle_open(&trickle, CLOCK_SECOND, 145, &trickle_callback); + + etimer_set(&et, CLOCK_SECOND * 4); + PROCESS_WAIT_UNTIL(etimer_expired(&et)); + if(node_id == 1) { + packetbuf_copyfrom("Hello, world", 13); + trickle_send(&trickle); + } + while(1) { + PROCESS_WAIT_EVENT(); + } + PROCESS_END(); +} +/*---------------------------------------------------------------------------*/ diff --git a/regression-tests/11-rpl/01-sky-ipv6-rpl-collect.csc b/regression-tests/10-ipv6/04-sky-ipv6-rpl-collect.csc similarity index 100% rename from regression-tests/11-rpl/01-sky-ipv6-rpl-collect.csc rename to regression-tests/10-ipv6/04-sky-ipv6-rpl-collect.csc diff --git a/regression-tests/11-rpl/01-rpl-up-route.csc b/regression-tests/11-rpl/01-rpl-up-route.csc new file mode 100644 index 000000000..5d84b5f67 --- /dev/null +++ b/regression-tests/11-rpl/01-rpl-up-route.csc @@ -0,0 +1,345 @@ + + + [APPS_DIR]/mrm + [APPS_DIR]/mspsim + [APPS_DIR]/avrora + [APPS_DIR]/serial_socket + [APPS_DIR]/collect-view + [APPS_DIR]/powertracker + + My simulation + 123456 + 1000000 + + se.sics.cooja.radiomediums.UDGM + 50.0 + 50.0 + 1.0 + 1.0 + + + 40000 + + + se.sics.cooja.contikimote.ContikiMoteType + mtype456 + Sender + [CONTIKI_DIR]/regression-tests/11-rpl/code/sender-node.c + make TARGET=cooja clean +make sender-node.cooja TARGET=cooja + se.sics.cooja.interfaces.Position + se.sics.cooja.interfaces.Battery + se.sics.cooja.contikimote.interfaces.ContikiVib + se.sics.cooja.contikimote.interfaces.ContikiMoteID + se.sics.cooja.contikimote.interfaces.ContikiRS232 + se.sics.cooja.contikimote.interfaces.ContikiBeeper + se.sics.cooja.interfaces.RimeAddress + se.sics.cooja.contikimote.interfaces.ContikiIPAddress + se.sics.cooja.contikimote.interfaces.ContikiRadio + se.sics.cooja.contikimote.interfaces.ContikiButton + se.sics.cooja.contikimote.interfaces.ContikiPIR + se.sics.cooja.contikimote.interfaces.ContikiClock + se.sics.cooja.contikimote.interfaces.ContikiLED + se.sics.cooja.contikimote.interfaces.ContikiCFS + se.sics.cooja.interfaces.Mote2MoteRelations + se.sics.cooja.interfaces.MoteAttributes + false + + + se.sics.cooja.contikimote.ContikiMoteType + mtype452 + RPL root + [CONTIKI_DIR]/regression-tests/11-rpl/code/root-node.c + make TARGET=cooja clean +make root-node.cooja TARGET=cooja + se.sics.cooja.interfaces.Position + se.sics.cooja.interfaces.Battery + se.sics.cooja.contikimote.interfaces.ContikiVib + se.sics.cooja.contikimote.interfaces.ContikiMoteID + se.sics.cooja.contikimote.interfaces.ContikiRS232 + se.sics.cooja.contikimote.interfaces.ContikiBeeper + se.sics.cooja.interfaces.RimeAddress + se.sics.cooja.contikimote.interfaces.ContikiIPAddress + se.sics.cooja.contikimote.interfaces.ContikiRadio + se.sics.cooja.contikimote.interfaces.ContikiButton + se.sics.cooja.contikimote.interfaces.ContikiPIR + se.sics.cooja.contikimote.interfaces.ContikiClock + se.sics.cooja.contikimote.interfaces.ContikiLED + se.sics.cooja.contikimote.interfaces.ContikiCFS + se.sics.cooja.interfaces.Mote2MoteRelations + se.sics.cooja.interfaces.MoteAttributes + false + + + se.sics.cooja.contikimote.ContikiMoteType + mtype904 + Receiver + [CONTIKI_DIR]/regression-tests/11-rpl/code/receiver-node.c + make TARGET=cooja clean +make receiver-node.cooja TARGET=cooja + se.sics.cooja.interfaces.Position + se.sics.cooja.interfaces.Battery + se.sics.cooja.contikimote.interfaces.ContikiVib + se.sics.cooja.contikimote.interfaces.ContikiMoteID + se.sics.cooja.contikimote.interfaces.ContikiRS232 + se.sics.cooja.contikimote.interfaces.ContikiBeeper + se.sics.cooja.interfaces.RimeAddress + se.sics.cooja.contikimote.interfaces.ContikiIPAddress + se.sics.cooja.contikimote.interfaces.ContikiRadio + se.sics.cooja.contikimote.interfaces.ContikiButton + se.sics.cooja.contikimote.interfaces.ContikiPIR + se.sics.cooja.contikimote.interfaces.ContikiClock + se.sics.cooja.contikimote.interfaces.ContikiLED + se.sics.cooja.contikimote.interfaces.ContikiCFS + se.sics.cooja.interfaces.Mote2MoteRelations + se.sics.cooja.interfaces.MoteAttributes + false + + + + se.sics.cooja.interfaces.Position + 6.9596575829049145 + -25.866060090958513 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 1 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 132.8019872469463 + 146.1533406452311 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 2 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype456 + + + + se.sics.cooja.interfaces.Position + 0.026556260457749753 + 39.54055615854325 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 4 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 95.52021598473031 + 148.11553913271615 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 5 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 62.81690785997944 + 127.1854219328756 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 6 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 32.07579822271361 + 102.33090775806494 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 7 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 5.913151722912886 + 73.55199660828417 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 8 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 0.0 + 0.0 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 3 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype452 + + + + se.sics.cooja.plugins.SimControl + 280 + 2 + 160 + 400 + 0 + + + se.sics.cooja.plugins.Visualizer + + se.sics.cooja.plugins.skins.IDVisualizerSkin + se.sics.cooja.plugins.skins.UDGMVisualizerSkin + se.sics.cooja.plugins.skins.GridVisualizerSkin + se.sics.cooja.plugins.skins.MoteTypeVisualizerSkin + 0.9555608221893928 0.0 0.0 0.9555608221893928 177.34962387792274 139.71659364731656 + + 400 + 1 + 400 + 1 + 1 + + + se.sics.cooja.plugins.LogListener + + + + + 1184 + 3 + 240 + 402 + 162 + + + se.sics.cooja.plugins.Notes + + Enter notes here + true + + 904 + 4 + 160 + 680 + 0 + + + se.sics.cooja.plugins.ScriptRunner + + + true + + 962 + 0 + 596 + 603 + 43 + + + diff --git a/regression-tests/11-rpl/02-rpl-root-reboot.csc b/regression-tests/11-rpl/02-rpl-root-reboot.csc new file mode 100644 index 000000000..25888606f --- /dev/null +++ b/regression-tests/11-rpl/02-rpl-root-reboot.csc @@ -0,0 +1,345 @@ + + + [APPS_DIR]/mrm + [APPS_DIR]/mspsim + [APPS_DIR]/avrora + [APPS_DIR]/serial_socket + [APPS_DIR]/collect-view + [APPS_DIR]/powertracker + + My simulation + 123456 + 1000000 + + se.sics.cooja.radiomediums.UDGM + 50.0 + 50.0 + 1.0 + 1.0 + + + 40000 + + + se.sics.cooja.contikimote.ContikiMoteType + mtype748 + Sender + [CONTIKI_DIR]/regression-tests/11-rpl/code/sender-node.c + make TARGET=cooja clean +make sender-node.cooja TARGET=cooja + se.sics.cooja.interfaces.Position + se.sics.cooja.interfaces.Battery + se.sics.cooja.contikimote.interfaces.ContikiVib + se.sics.cooja.contikimote.interfaces.ContikiMoteID + se.sics.cooja.contikimote.interfaces.ContikiRS232 + se.sics.cooja.contikimote.interfaces.ContikiBeeper + se.sics.cooja.interfaces.RimeAddress + se.sics.cooja.contikimote.interfaces.ContikiIPAddress + se.sics.cooja.contikimote.interfaces.ContikiRadio + se.sics.cooja.contikimote.interfaces.ContikiButton + se.sics.cooja.contikimote.interfaces.ContikiPIR + se.sics.cooja.contikimote.interfaces.ContikiClock + se.sics.cooja.contikimote.interfaces.ContikiLED + se.sics.cooja.contikimote.interfaces.ContikiCFS + se.sics.cooja.interfaces.Mote2MoteRelations + se.sics.cooja.interfaces.MoteAttributes + false + + + se.sics.cooja.contikimote.ContikiMoteType + mtype442 + RPL root + [CONTIKI_DIR]/regression-tests/11-rpl/code/root-node.c + make TARGET=cooja clean +make root-node.cooja TARGET=cooja + se.sics.cooja.interfaces.Position + se.sics.cooja.interfaces.Battery + se.sics.cooja.contikimote.interfaces.ContikiVib + se.sics.cooja.contikimote.interfaces.ContikiMoteID + se.sics.cooja.contikimote.interfaces.ContikiRS232 + se.sics.cooja.contikimote.interfaces.ContikiBeeper + se.sics.cooja.interfaces.RimeAddress + se.sics.cooja.contikimote.interfaces.ContikiIPAddress + se.sics.cooja.contikimote.interfaces.ContikiRadio + se.sics.cooja.contikimote.interfaces.ContikiButton + se.sics.cooja.contikimote.interfaces.ContikiPIR + se.sics.cooja.contikimote.interfaces.ContikiClock + se.sics.cooja.contikimote.interfaces.ContikiLED + se.sics.cooja.contikimote.interfaces.ContikiCFS + se.sics.cooja.interfaces.Mote2MoteRelations + se.sics.cooja.interfaces.MoteAttributes + false + + + se.sics.cooja.contikimote.ContikiMoteType + mtype236 + Receiver + [CONTIKI_DIR]/regression-tests/11-rpl/code/receiver-node.c + make TARGET=cooja clean +make receiver-node.cooja TARGET=cooja + se.sics.cooja.interfaces.Position + se.sics.cooja.interfaces.Battery + se.sics.cooja.contikimote.interfaces.ContikiVib + se.sics.cooja.contikimote.interfaces.ContikiMoteID + se.sics.cooja.contikimote.interfaces.ContikiRS232 + se.sics.cooja.contikimote.interfaces.ContikiBeeper + se.sics.cooja.interfaces.RimeAddress + se.sics.cooja.contikimote.interfaces.ContikiIPAddress + se.sics.cooja.contikimote.interfaces.ContikiRadio + se.sics.cooja.contikimote.interfaces.ContikiButton + se.sics.cooja.contikimote.interfaces.ContikiPIR + se.sics.cooja.contikimote.interfaces.ContikiClock + se.sics.cooja.contikimote.interfaces.ContikiLED + se.sics.cooja.contikimote.interfaces.ContikiCFS + se.sics.cooja.interfaces.Mote2MoteRelations + se.sics.cooja.interfaces.MoteAttributes + false + + + + se.sics.cooja.interfaces.Position + -22.5728586847096 + 123.9358664968653 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 1 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype236 + + + + se.sics.cooja.interfaces.Position + 116.13379149678028 + 88.36698920455684 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 2 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype748 + + + + se.sics.cooja.interfaces.Position + -1.39303771455413 + 100.21446701029119 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 4 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype236 + + + + se.sics.cooja.interfaces.Position + 95.25095618820441 + 63.14998053005015 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 5 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype236 + + + + se.sics.cooja.interfaces.Position + 66.09378990830604 + 38.32698761608261 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 6 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype236 + + + + se.sics.cooja.interfaces.Position + 29.05630841762433 + 30.840688165838436 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 7 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype236 + + + + se.sics.cooja.interfaces.Position + 10.931583432822638 + 69.848248459216 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 8 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype236 + + + + se.sics.cooja.interfaces.Position + 0.0 + 0.0 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 3 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype442 + + + + se.sics.cooja.plugins.SimControl + 280 + 0 + 160 + 400 + 0 + + + se.sics.cooja.plugins.Visualizer + + se.sics.cooja.plugins.skins.IDVisualizerSkin + se.sics.cooja.plugins.skins.UDGMVisualizerSkin + se.sics.cooja.plugins.skins.GridVisualizerSkin + se.sics.cooja.plugins.skins.MoteTypeVisualizerSkin + 2.5379695437350276 0.0 0.0 2.5379695437350276 75.2726010197627 15.727272727272757 + + 400 + 2 + 400 + 1 + 1 + + + se.sics.cooja.plugins.LogListener + + + + + 1184 + 3 + 240 + 402 + 162 + + + se.sics.cooja.plugins.Notes + + Enter notes here + true + + 904 + 4 + 160 + 680 + 0 + + + se.sics.cooja.plugins.ScriptRunner + + + true + + 962 + 1 + 596 + 603 + 43 + + + diff --git a/regression-tests/11-rpl/03-rpl-28-hours.csc b/regression-tests/11-rpl/03-rpl-28-hours.csc new file mode 100644 index 000000000..80e9c7996 --- /dev/null +++ b/regression-tests/11-rpl/03-rpl-28-hours.csc @@ -0,0 +1,294 @@ + + + [APPS_DIR]/mrm + [APPS_DIR]/mspsim + [APPS_DIR]/avrora + [APPS_DIR]/serial_socket + [APPS_DIR]/collect-view + [APPS_DIR]/powertracker + + My simulation + 123456 + 1000000 + + se.sics.cooja.radiomediums.UDGM + 50.0 + 50.0 + 1.0 + 1.0 + + + 40000 + + + se.sics.cooja.contikimote.ContikiMoteType + mtype391 + Sender + [CONTIKI_DIR]/regression-tests/11-rpl/code/sender-node.c + make TARGET=cooja clean +make sender-node.cooja TARGET=cooja + se.sics.cooja.interfaces.Position + se.sics.cooja.interfaces.Battery + se.sics.cooja.contikimote.interfaces.ContikiVib + se.sics.cooja.contikimote.interfaces.ContikiMoteID + se.sics.cooja.contikimote.interfaces.ContikiRS232 + se.sics.cooja.contikimote.interfaces.ContikiBeeper + se.sics.cooja.interfaces.RimeAddress + se.sics.cooja.contikimote.interfaces.ContikiIPAddress + se.sics.cooja.contikimote.interfaces.ContikiRadio + se.sics.cooja.contikimote.interfaces.ContikiButton + se.sics.cooja.contikimote.interfaces.ContikiPIR + se.sics.cooja.contikimote.interfaces.ContikiClock + se.sics.cooja.contikimote.interfaces.ContikiLED + se.sics.cooja.contikimote.interfaces.ContikiCFS + se.sics.cooja.interfaces.Mote2MoteRelations + se.sics.cooja.interfaces.MoteAttributes + false + + + se.sics.cooja.contikimote.ContikiMoteType + mtype250 + RPL root + [CONTIKI_DIR]/regression-tests/11-rpl/code/root-node.c + make TARGET=cooja clean +make root-node.cooja TARGET=cooja + se.sics.cooja.interfaces.Position + se.sics.cooja.interfaces.Battery + se.sics.cooja.contikimote.interfaces.ContikiVib + se.sics.cooja.contikimote.interfaces.ContikiMoteID + se.sics.cooja.contikimote.interfaces.ContikiRS232 + se.sics.cooja.contikimote.interfaces.ContikiBeeper + se.sics.cooja.interfaces.RimeAddress + se.sics.cooja.contikimote.interfaces.ContikiIPAddress + se.sics.cooja.contikimote.interfaces.ContikiRadio + se.sics.cooja.contikimote.interfaces.ContikiButton + se.sics.cooja.contikimote.interfaces.ContikiPIR + se.sics.cooja.contikimote.interfaces.ContikiClock + se.sics.cooja.contikimote.interfaces.ContikiLED + se.sics.cooja.contikimote.interfaces.ContikiCFS + se.sics.cooja.interfaces.Mote2MoteRelations + se.sics.cooja.interfaces.MoteAttributes + false + + + se.sics.cooja.contikimote.ContikiMoteType + mtype822 + Receiver + [CONTIKI_DIR]/regression-tests/11-rpl/code/receiver-node.c + make TARGET=cooja clean +make receiver-node.cooja TARGET=cooja + se.sics.cooja.interfaces.Position + se.sics.cooja.interfaces.Battery + se.sics.cooja.contikimote.interfaces.ContikiVib + se.sics.cooja.contikimote.interfaces.ContikiMoteID + se.sics.cooja.contikimote.interfaces.ContikiRS232 + se.sics.cooja.contikimote.interfaces.ContikiBeeper + se.sics.cooja.interfaces.RimeAddress + se.sics.cooja.contikimote.interfaces.ContikiIPAddress + se.sics.cooja.contikimote.interfaces.ContikiRadio + se.sics.cooja.contikimote.interfaces.ContikiButton + se.sics.cooja.contikimote.interfaces.ContikiPIR + se.sics.cooja.contikimote.interfaces.ContikiClock + se.sics.cooja.contikimote.interfaces.ContikiLED + se.sics.cooja.contikimote.interfaces.ContikiCFS + se.sics.cooja.interfaces.Mote2MoteRelations + se.sics.cooja.interfaces.MoteAttributes + false + + + + se.sics.cooja.interfaces.Position + 7.772906112657773 + 86.396910401861 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 1 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype822 + + + + se.sics.cooja.interfaces.Position + 75.54361692539452 + 14.292026223193414 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 2 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype391 + + + + se.sics.cooja.interfaces.Position + 47.962513687652844 + 7.199742533488408 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 6 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype822 + + + + se.sics.cooja.interfaces.Position + 1.8626697045702818 + 47.783365869022624 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 8 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype822 + + + + se.sics.cooja.interfaces.Position + 0.0 + 0.0 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 3 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype250 + + + + se.sics.cooja.plugins.SimControl + 280 + 0 + 160 + 400 + 0 + + + se.sics.cooja.plugins.Visualizer + + se.sics.cooja.plugins.skins.IDVisualizerSkin + se.sics.cooja.plugins.skins.UDGMVisualizerSkin + se.sics.cooja.plugins.skins.GridVisualizerSkin + se.sics.cooja.plugins.skins.MoteTypeVisualizerSkin + 2.5379695437350276 0.0 0.0 2.5379695437350276 78.27260101976275 40.72727272727276 + + 400 + 2 + 400 + 1 + 1 + + + se.sics.cooja.plugins.LogListener + + + + + 1184 + 3 + 240 + 402 + 162 + + + se.sics.cooja.plugins.Notes + + Enter notes here + true + + 904 + 4 + 160 + 680 + 0 + + + se.sics.cooja.plugins.ScriptRunner + + + true + + 962 + 1 + 596 + 603 + 43 + + + diff --git a/regression-tests/11-rpl/04-rpl-large-network.csc b/regression-tests/11-rpl/04-rpl-large-network.csc new file mode 100644 index 000000000..1bbc01225 --- /dev/null +++ b/regression-tests/11-rpl/04-rpl-large-network.csc @@ -0,0 +1,7060 @@ + + + [APPS_DIR]/mrm + [APPS_DIR]/mspsim + [APPS_DIR]/avrora + [APPS_DIR]/serial_socket + [APPS_DIR]/collect-view + [APPS_DIR]/powertracker + + My simulation + 123456 + 1000000 + + se.sics.cooja.radiomediums.UDGM + 50.0 + 50.0 + 1.0 + 1.0 + + + 40000 + + + se.sics.cooja.contikimote.ContikiMoteType + mtype456 + Sender + [CONTIKI_DIR]/regression-tests/11-rpl/code/sender-node.c + make TARGET=cooja clean +make sender-node.cooja TARGET=cooja + se.sics.cooja.interfaces.Position + se.sics.cooja.interfaces.Battery + se.sics.cooja.contikimote.interfaces.ContikiVib + se.sics.cooja.contikimote.interfaces.ContikiMoteID + se.sics.cooja.contikimote.interfaces.ContikiRS232 + se.sics.cooja.contikimote.interfaces.ContikiBeeper + se.sics.cooja.interfaces.RimeAddress + se.sics.cooja.contikimote.interfaces.ContikiIPAddress + se.sics.cooja.contikimote.interfaces.ContikiRadio + se.sics.cooja.contikimote.interfaces.ContikiButton + se.sics.cooja.contikimote.interfaces.ContikiPIR + se.sics.cooja.contikimote.interfaces.ContikiClock + se.sics.cooja.contikimote.interfaces.ContikiLED + se.sics.cooja.contikimote.interfaces.ContikiCFS + se.sics.cooja.interfaces.Mote2MoteRelations + se.sics.cooja.interfaces.MoteAttributes + false + + + se.sics.cooja.contikimote.ContikiMoteType + mtype452 + RPL root + [CONTIKI_DIR]/regression-tests/11-rpl/code/root-node.c + make TARGET=cooja clean +make root-node.cooja TARGET=cooja + se.sics.cooja.interfaces.Position + se.sics.cooja.interfaces.Battery + se.sics.cooja.contikimote.interfaces.ContikiVib + se.sics.cooja.contikimote.interfaces.ContikiMoteID + se.sics.cooja.contikimote.interfaces.ContikiRS232 + se.sics.cooja.contikimote.interfaces.ContikiBeeper + se.sics.cooja.interfaces.RimeAddress + se.sics.cooja.contikimote.interfaces.ContikiIPAddress + se.sics.cooja.contikimote.interfaces.ContikiRadio + se.sics.cooja.contikimote.interfaces.ContikiButton + se.sics.cooja.contikimote.interfaces.ContikiPIR + se.sics.cooja.contikimote.interfaces.ContikiClock + se.sics.cooja.contikimote.interfaces.ContikiLED + se.sics.cooja.contikimote.interfaces.ContikiCFS + se.sics.cooja.interfaces.Mote2MoteRelations + se.sics.cooja.interfaces.MoteAttributes + false + + + se.sics.cooja.contikimote.ContikiMoteType + mtype904 + Receiver + [CONTIKI_DIR]/regression-tests/11-rpl/code/receiver-node.c + make TARGET=cooja clean +make receiver-node.cooja TARGET=cooja + se.sics.cooja.interfaces.Position + se.sics.cooja.interfaces.Battery + se.sics.cooja.contikimote.interfaces.ContikiVib + se.sics.cooja.contikimote.interfaces.ContikiMoteID + se.sics.cooja.contikimote.interfaces.ContikiRS232 + se.sics.cooja.contikimote.interfaces.ContikiBeeper + se.sics.cooja.interfaces.RimeAddress + se.sics.cooja.contikimote.interfaces.ContikiIPAddress + se.sics.cooja.contikimote.interfaces.ContikiRadio + se.sics.cooja.contikimote.interfaces.ContikiButton + se.sics.cooja.contikimote.interfaces.ContikiPIR + se.sics.cooja.contikimote.interfaces.ContikiClock + se.sics.cooja.contikimote.interfaces.ContikiLED + se.sics.cooja.contikimote.interfaces.ContikiCFS + se.sics.cooja.interfaces.Mote2MoteRelations + se.sics.cooja.interfaces.MoteAttributes + false + + + + se.sics.cooja.interfaces.Position + -15.604889524290883 + -27.272920930192623 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 1 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 218.29521040499824 + 216.70287561143516 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 2 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype456 + + + + se.sics.cooja.interfaces.Position + 0.0 + 0.0 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 3 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype452 + + + + se.sics.cooja.interfaces.Position + 27.44274795318258 + 36.980443988209856 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 4 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 185.6055859234863 + 192.99166984979271 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 5 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 7.827315175624361 + 107.95833747378225 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 6 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 82.49199862549197 + 34.72851022020231 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 7 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 35.671428723363064 + 125.82590119075962 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 8 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 33.044376889885754 + 62.443378727185774 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 9 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 152.53659733643553 + 165.87608708149403 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 10 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 22.023077232445942 + 18.41094139254531 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 11 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 41.19368867821842 + 49.201157808285224 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 12 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 114.62128502432532 + 88.58807114217633 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 13 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 61.21405469314478 + 188.6851979777661 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 14 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 104.78326932115709 + 100.84889281105585 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 15 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 90.26861048950052 + 40.550864496421404 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 16 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 137.39112328314076 + 126.5333637365394 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 17 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 14.07616766247768 + 99.85572366133869 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 18 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 192.30563307960443 + 66.83563821262344 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 19 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 129.08253247651874 + 117.20437669309078 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 20 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 21.82717410659969 + 47.523771402541335 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 21 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 35.95102103988239 + 21.74677482276881 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 22 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 61.71108896268191 + 79.91617509627334 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 23 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 16.029809485043288 + 171.05935835280616 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 24 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 138.8418552766128 + 61.418703448852185 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 25 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 151.23299942414673 + 92.41820871538522 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 26 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 197.33157775573343 + 20.6013482653864 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 27 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 121.20762229879878 + 184.81107462083565 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 28 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 102.32432527534694 + 91.9912435435037 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 29 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 88.10909646999544 + 191.21251904898142 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 30 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 72.19774934085703 + 113.58131529956069 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 31 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 53.49967737007204 + 72.45172156882643 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 32 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 172.07186411958625 + 51.47715718716961 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 33 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 185.41983532466634 + 85.60078269414 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 34 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 83.34993971740548 + 193.98111239532744 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 35 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 105.03752362550378 + 131.24078026424087 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 36 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 176.09318670322102 + 41.46760901468247 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 37 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 76.80689915307215 + 47.13815728542057 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 38 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 155.907739287817 + 15.24009422994106 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 39 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 45.992463430523436 + 124.573811024683 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 40 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 159.11361032671832 + 81.65319598335425 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 41 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 41.838657583001314 + 163.47591213471193 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 42 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 25.560001904073125 + 147.48610852243928 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 43 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 139.56489350213488 + 191.15379557180913 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 44 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 105.71342550700061 + 136.09089690661503 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 45 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 122.59378462201298 + 196.22862961645998 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 46 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 147.61372446125088 + 55.314287700435536 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 47 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 77.70218628780312 + 95.59561907133107 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 48 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 71.88244578562713 + 168.57963926907163 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 49 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 6.722298767036894 + 101.09668965729898 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 50 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 62.96680217979964 + 77.66951408660954 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 51 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 162.49011735601982 + 199.07086470932003 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 52 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 87.87526390617558 + 114.39424478293958 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 53 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 74.29230372180815 + 36.995699473573836 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 54 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 77.34619341407321 + 60.070446577058576 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 55 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 76.32695571818826 + 135.82669004433725 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 56 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 68.10326013650814 + 5.04157445893032 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 57 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 95.76993029214962 + 45.046282401332945 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 58 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 79.87963205080952 + 110.7023948653882 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 59 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 195.90349780899223 + 132.38904172009444 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 60 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 80.40108440304007 + 25.86673418569547 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 61 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 52.268877618080744 + 176.12888723955277 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 62 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 40.545541404899765 + 166.9450252729589 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 63 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 10.676184465528205 + 0.9871174057552334 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 64 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 87.35673216830257 + 23.25131234780027 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 65 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 26.745126931691352 + 87.3101256645554 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 66 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 183.2724008541638 + 167.69026002459069 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 67 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 5.934720840855223 + 77.21248812623693 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 68 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 76.49604470599058 + 108.80963795015302 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 69 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 86.10145414955488 + 12.798582653303603 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 70 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 32.435370110193816 + 29.344591306898813 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 71 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 163.72950518161596 + 154.15283820759655 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 72 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 143.96396308843373 + 132.40312602892786 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 73 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 139.20530179839795 + 144.18958011498225 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 74 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 75.22453368236212 + 119.69913560274786 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 75 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 21.83836116635087 + 191.21696522067728 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 76 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 187.94640511976667 + 113.95684826994561 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 77 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 114.61289565250618 + 27.61001303446735 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 78 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 70.83569869750504 + 113.88992677636021 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 79 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 11.616059362048992 + 45.59401384110464 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 80 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 3.4282454263252937 + 35.97653370545284 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 81 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 54.33122057405715 + 1.9759087814547494 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 82 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 69.6612091444155 + 0.45982758130533874 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 83 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 169.98417155202168 + 87.76678058442593 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 84 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 148.98441194234616 + 104.32820155415494 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 85 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 66.23883124891583 + 162.92685536074129 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 86 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 181.6348837921769 + 183.07267240808343 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 87 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 88.9829570206748 + 119.72520333459575 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 88 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 179.1527012143494 + 84.25685075020328 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 89 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 117.82537007493707 + 41.10319533518651 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 90 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 52.611633540398486 + 94.71918054798351 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 91 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 128.22088664324633 + 115.50290142480077 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 92 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 102.53841128002531 + 11.784449645612295 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 93 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 187.69871925603667 + 131.28317666772048 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 94 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 71.13897508938263 + 106.29335632876602 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 95 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 71.2216469861295 + 148.38612859488788 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 96 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 36.152562577928784 + 67.541796718348 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 97 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 118.84793016344604 + 0.49906433835273933 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 98 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 135.20417096106954 + 170.20704631856816 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 99 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 156.082359043526 + 57.62103450217495 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 100 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 180.58695188377737 + 80.75266645775669 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 101 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 38.93889890269273 + 138.60259660238856 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 102 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 159.5172788118917 + 192.24950143209503 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 103 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 154.02096825135868 + 139.67175722659056 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 104 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 38.480826888323904 + 5.502866276505292 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 105 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 27.95908088015704 + 193.85188308665965 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 106 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 198.61700949829074 + 171.1877312716402 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 107 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 106.30468818084609 + 25.058380770654654 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 108 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 40.335672117825624 + 179.59080234641004 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 109 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 22.316357638510897 + 158.94323888090028 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 110 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 99.56281553229194 + 85.64260133077535 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 111 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 60.71556414510035 + 121.53040248649711 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 112 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 27.08600745576586 + 38.17025720346818 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 113 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 147.03642509910586 + 39.51320588416096 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 114 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 180.2031547656297 + 141.5646561330238 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 115 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 73.12314629214424 + 167.80783320779847 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 116 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 167.93567452922767 + 10.060141001139144 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 117 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 163.99198875105768 + 147.48735207074026 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 118 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 154.98654737808127 + 121.17266324007643 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 119 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 57.898499791676386 + 149.3487194893122 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 120 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 64.82082963563904 + 174.0100480348673 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 121 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 114.13623920898752 + 15.754246175503095 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 122 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 0.00848902940355778 + 195.50701335573908 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 123 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 182.81764401709623 + 78.57837811285111 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 124 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 11.462145876504714 + 95.37444120802225 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 125 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 115.5020283241771 + 28.49431396939579 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 126 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 62.463952359877275 + 77.78913013330184 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 127 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 9.766778039117696 + 136.7421944039438 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 128 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 35.320514349220055 + 100.56248258192493 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 129 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 56.26732169234614 + 3.095097140731262 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 130 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 76.90164393617998 + 3.5671096386384216 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 131 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 81.97549075841862 + 13.020422155003475 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 132 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 54.87200208203389 + 77.29445717372947 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 133 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 193.47651032749548 + 144.9357554583657 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 134 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 51.65288193591992 + 126.16687604535504 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 135 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 151.66849746442173 + 158.7699863850836 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 136 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 32.469410974826005 + 113.10993021698361 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 137 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 33.04622512107349 + 25.425445944702794 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 138 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 33.53444748873715 + 112.25721598241579 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 139 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 128.9401580272291 + 100.73482184242926 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 140 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 194.6592727528704 + 102.73664509470841 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 141 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 125.47343036050516 + 106.53155237731285 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 142 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 147.40129296416038 + 12.37607345376115 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 143 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 113.32045045397959 + 126.79285457987103 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 144 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 27.174837677715825 + 66.84349985536826 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 145 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 164.20252670136998 + 51.635539499142524 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 146 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 39.351673884988394 + 65.05462325698123 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 147 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 143.91486202542433 + 171.28435110465497 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 148 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 30.926988343440186 + 130.3647571119649 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 149 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 19.897357003413617 + 22.905473451246785 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 150 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 128.36369031733133 + 170.71462512320227 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 151 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 172.1648617546042 + 184.1928317689217 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 152 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 148.16672573170842 + 107.99684523382686 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 153 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 83.90300186263724 + 169.4761782218257 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 154 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 90.86887922361453 + 142.8036645841288 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 155 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 23.18966921326753 + 69.42635534680753 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 156 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 134.59433377860168 + 37.633119904417796 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 157 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 127.97132285920065 + 158.57917470101572 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 158 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 166.2450456558778 + 108.67197275397042 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 159 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 167.334034200758 + 22.173554305333166 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 160 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 163.54194527237107 + 189.41605447848966 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 161 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 14.863357513573018 + 93.36644051662617 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 162 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 178.4370382798651 + 191.48348446587636 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 163 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 172.96087703915273 + 183.78535300027013 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 164 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 2.45779137738229 + 58.750309492130114 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 165 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 15.730601618735495 + 96.52335072173565 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 166 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 19.890833428932165 + 56.993000152370364 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 167 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 154.69166608840504 + 164.8598339150269 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 168 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 199.77196118880582 + 26.034321005016903 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 169 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 5.216343266336931 + 17.867912968799615 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 170 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 138.71273406283296 + 55.31024592694844 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 171 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 168.21144361519595 + 163.1843284579423 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 172 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 61.82504434646854 + 134.03197926926038 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 173 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 14.007317972338473 + 146.98475859141027 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 174 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 108.44210606040488 + 127.81076428732186 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 175 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 133.41957560864708 + 122.91534078890439 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 176 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 184.89266828168118 + 195.7201293014503 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 177 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 121.10492556426465 + 78.54418709376823 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 178 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 42.05271519544296 + 183.14259881514795 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 179 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 92.12119616387746 + 44.853464007589714 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 180 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 136.44039199596196 + 1.111619893261917 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 181 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 64.37440878278696 + 188.3078368775181 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 182 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 37.774149552594594 + 73.81683900641865 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 183 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 24.618589360988175 + 164.89708336795567 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 184 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 152.5950797265111 + 140.96774353352123 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 185 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 37.96933854365052 + 131.92434845994435 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 186 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 14.05145808951862 + 26.159084136809916 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 187 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 61.47558158857349 + 68.73507104275693 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 188 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 35.420404733112385 + 108.47794695541302 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 189 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 129.0179255565185 + 176.46977408461998 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 190 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 4.437687657989087 + 191.43801818673953 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 191 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 132.39232886927158 + 105.56546037448346 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 192 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 193.9356389936735 + 76.8987220921185 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 193 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 123.49672189705024 + 16.28922647444049 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 194 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 40.44058024960566 + 94.77629608096818 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 195 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 93.54168452285269 + 102.10342793159373 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 196 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 176.91858637781746 + 81.80773827257306 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 197 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 182.5062159995403 + 10.047631291589564 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 198 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 151.3211952231698 + 160.98807517681706 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 199 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 167.8826595707132 + 160.3686256248768 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 200 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 93.38491122055773 + 61.04322963139093 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 201 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 155.20211039479165 + 104.99915002371228 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 202 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 154.56882959476744 + 192.77647809954323 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 203 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 119.88029558288524 + 48.71837870038327 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 204 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 8.237800167806908 + 123.56280331420268 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 205 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 53.424877837249696 + 87.33638375233281 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 206 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 199.25320093864096 + 66.76343110330383 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 207 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 166.7255674935148 + 165.31992478582075 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 208 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 135.9334286576811 + 130.36986226660702 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 209 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 65.60950768388696 + 14.081940005079275 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 210 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 56.68133966983844 + 196.61338214776293 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 211 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 2.562777529582072 + 66.73129709411079 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 212 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 34.10919172462936 + 176.31986637140767 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 213 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 33.846173186403306 + 142.33660392777279 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 214 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 128.76326079790124 + 90.05136184351706 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 215 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 80.39617891964872 + 111.48714907972395 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 216 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 21.97338508940303 + 61.032785792453815 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 217 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 158.00182839254427 + 175.79991821384095 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 218 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 64.21702017661488 + 197.8650659620092 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 219 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 58.261430108425174 + 69.56229252260285 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 220 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 114.85635789777962 + 130.3021189977344 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 221 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 24.601661057872736 + 196.33046445845073 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 222 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 136.22037670133446 + 18.019579846123435 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 223 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 71.91168973841357 + 193.3123397692768 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 224 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 76.67497322258676 + 156.30488619961912 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 225 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 85.70841880772959 + 39.914700874835106 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 226 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 142.3427145819395 + 76.80244108802334 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 227 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 45.6821653485997 + 33.96733547026549 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 228 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 146.16353499121948 + 5.58117117441268 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 229 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 34.32680631388174 + 111.76495490887346 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 230 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 138.5676204843924 + 161.4559204389253 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 231 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 196.36096598095253 + 19.9809316402896 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 232 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 190.5761031572042 + 118.16570999859783 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 233 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 137.89894164409372 + 114.36842366282201 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 234 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 13.942927177934262 + 25.042265908173977 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 235 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 21.808225381827363 + 89.51408500063611 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 236 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 82.1665299576559 + 89.41818802221223 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 237 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 100.24631818801446 + 85.16089691564225 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 238 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 150.87166478995505 + 124.32687790892683 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 239 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 196.72953604773366 + 89.0589559016778 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 240 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 178.10423185724105 + 108.01295472332721 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 241 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 24.852336661830865 + 107.10027825925053 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 242 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 198.2838988728342 + 185.2533889301396 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 243 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 122.42366366542863 + 13.685145107609165 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 244 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 113.58516359448151 + 59.212889358544054 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 245 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 148.6689453992514 + 65.76664113968091 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 246 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 110.90604811956779 + 118.12368970120251 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 247 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 195.48877933255176 + 71.61703558744803 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 248 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 90.74911177135543 + 151.9662290090636 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 249 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 5.669662023293154 + 80.71705944385323 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 250 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 77.57071934873466 + 25.884947016521597 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 251 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 172.38535892291588 + 6.827522113737539 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 252 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 62.61595677732154 + 171.52926299696654 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 253 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 163.1605182212256 + 136.67511261098457 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 254 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 174.98684717123461 + 163.9648526025463 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 255 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 112.4179766207543 + 108.05999669756379 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 256 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 71.60510656526031 + 96.23183516652448 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 257 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 51.39949089302518 + 181.73639564248649 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 258 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 140.61625635482116 + 118.88528060437326 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 259 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 81.11235868256772 + 71.16703221921186 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 260 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 106.30383323544051 + 47.66664077552125 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 261 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 78.36392430481997 + 145.12300889005226 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 262 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 159.2795584664916 + 175.42365153724947 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 263 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 89.12806123792214 + 163.88074620615808 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 264 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 188.00194321004403 + 167.99738752402368 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 265 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 186.544702443713 + 156.12158395696437 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 266 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 2.8406717287810412 + 38.380349570314664 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 267 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 28.76119804764801 + 168.10637626762275 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 268 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 190.1115654346047 + 36.24498374070968 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 269 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 67.43484884843447 + 118.69086680825731 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 270 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 50.7959234692023 + 165.04960719272802 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 271 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 50.75575271798458 + 144.55723570362358 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 272 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 128.94257968083764 + 47.32490472068322 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 273 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 1.9193343221312942 + 112.82658785936086 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 274 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 51.82023785974064 + 148.28034473499338 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 275 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 98.55603081185546 + 178.02566808501155 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 276 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 143.40572664084078 + 183.27302398341982 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 277 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 141.0619733646239 + 54.122738136324955 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 278 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 162.29942916334053 + 67.55247227617933 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 279 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 185.29686875363197 + 118.81126461905944 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 280 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 104.06690998854779 + 5.511220514887172 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 281 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 181.82429252421596 + 47.0700962247878 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 282 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 17.604228655775245 + 96.78328313290936 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 283 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 60.74231839144737 + 136.8041677309854 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 284 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 158.57791000335715 + 90.16811700419458 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 285 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 26.040369760119475 + 115.48428978095157 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 286 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 155.33825554510548 + 122.61758874267335 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 287 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 171.04754637183774 + 49.44780022857469 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 288 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 130.8601631228818 + 115.38443324744807 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 289 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 138.51066172926747 + 85.05731662406394 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 290 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 17.01860916014879 + 85.74431631403492 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 291 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 63.632763185894994 + 73.28193598294403 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 292 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 145.51992557600448 + 190.19645657449914 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 293 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 141.3669225587347 + 128.37798094188392 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 294 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 5.624436269305666 + 10.321359475496084 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 295 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 32.62210104212715 + 80.99365929301005 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 296 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 146.82462375206796 + 189.00512676494264 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 297 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 96.89937776974169 + 61.868257009019125 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 298 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 71.17532023107206 + 32.87953533289934 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 299 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 37.21430187397199 + 21.880189704400976 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 300 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 123.17178528937387 + 23.802492560334287 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 301 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 139.8264101859233 + 106.93416114169838 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 302 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 34.97792194896952 + 182.11554692137054 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 303 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 156.016327676095 + 83.35423896139108 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 304 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 33.33352678715003 + 148.24111721535743 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 305 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 22.525965053498552 + 94.23130431241577 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 306 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 145.40586007739483 + 194.77296443866655 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 307 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 64.78487058910738 + 34.59908782949142 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 308 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 59.86114357954142 + 143.29623794752337 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 309 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 133.03711837762597 + 0.29677881350260726 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 310 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 184.05437940334514 + 80.34917749334691 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 311 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 43.18494391360306 + 0.7070568470557648 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 312 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 87.88579984985796 + 183.6845166360299 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 313 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 35.679149788796785 + 59.900754257451624 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 314 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 10.837936713278706 + 68.65555543408139 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 315 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 28.088726188466005 + 66.6117410256945 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 316 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 24.15305881985441 + 127.36722357863377 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 317 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 167.92463302345024 + 95.32246240241238 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 318 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 150.07537910034364 + 189.29680149689028 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 319 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 36.60193942102408 + 4.850860928459388 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 320 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 131.4804357164766 + 107.37981261172979 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 321 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 4.702056299253576 + 145.3571381517292 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 322 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 76.83393335740108 + 40.92489706855471 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 323 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 81.41902810900726 + 59.67311069186907 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 324 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 157.9286881274713 + 35.89390157980119 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 325 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 172.59261547136273 + 162.21173966194792 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 326 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 63.77983240079481 + 110.66181735649987 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 327 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 94.27259269172448 + 102.22907067171563 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 328 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 87.82927755519094 + 154.83172363042706 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 329 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 61.424763006386954 + 73.54903523332621 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 330 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 193.50994444846046 + 100.37438735826956 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 331 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 160.15646353486886 + 197.56265442862397 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 332 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 33.41179410209567 + 85.51716211010236 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 333 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 39.55932830334419 + 79.79114070992594 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 334 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 29.81531743952457 + 106.52370973616816 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 335 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 145.66591758403607 + 93.84627277397392 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 336 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 121.12689025085304 + 141.7616054105135 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 337 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 31.696932817539736 + 73.39512842700171 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 338 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 73.55413175311341 + 184.10063535264334 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 339 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 179.21266954315877 + 157.77936426661222 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 340 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 5.861701400590658 + 176.44679868441557 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 341 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 164.32858198885157 + 127.1649251930171 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 342 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 104.78813885934602 + 2.6978015525372934 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 343 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 9.036210189825722 + 37.29651951364714 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 344 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 69.09633192708777 + 131.08113653458605 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 345 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 23.989325789242024 + 102.76529191595212 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 346 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 32.563144827068456 + 174.05783874991164 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 347 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 26.84717981820497 + 33.708035418260465 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 348 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 23.651571274100892 + 150.9696150146202 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 349 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 7.263970263317554 + 178.4551746541966 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 350 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 137.19080046610807 + 195.47642758858956 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 351 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 100.60258790901588 + 10.122226122279043 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 352 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 158.02955707421086 + 15.552042272281575 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 353 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 69.03288347183658 + 86.65939835169405 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 354 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 197.11534487465465 + 12.227887489891408 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 355 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 109.32664513099861 + 51.47545505189106 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 356 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 7.450618560323541 + 114.12792666368863 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 357 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 96.73499758330652 + 87.34903664585806 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 358 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 143.42568088659735 + 154.7201550387036 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 359 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 16.055115327242596 + 23.72235108907279 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 360 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 36.54118641672248 + 71.60060131854802 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 361 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 153.4641555525212 + 182.30266241969497 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 362 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 179.79961054026052 + 52.374917374947486 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 363 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 51.89511924887278 + 55.715278818289924 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 364 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 160.22911392558143 + 197.03727711739174 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 365 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 141.50401865962175 + 198.17183635084353 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 366 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 144.1436553724308 + 66.26788567722302 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 367 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 114.85639238072662 + 187.02866922391485 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 368 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 14.754418142216963 + 189.75568091879705 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 369 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 40.445861020644756 + 132.87622199437286 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 370 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 70.41846318684537 + 16.353121961748673 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 371 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 11.524098377391411 + 188.46037552576104 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 372 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 19.80490164758435 + 193.31200682922997 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 373 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 170.32256510777594 + 170.204813941954 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 374 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 35.11638379627671 + 106.63452905636245 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 375 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 87.80726944100199 + 69.16884374165753 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 376 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 45.63781115512378 + 137.1790704392972 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 377 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 120.23124867416645 + 21.60172442725463 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 378 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 42.584241021086264 + 172.9365035614701 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 379 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 106.9111221907689 + 35.38132573733432 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 380 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 115.65012523180343 + 149.06748739273075 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 381 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 66.70597176653999 + 151.96624665556067 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 382 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 116.86108695969573 + 92.96503821223025 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 383 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 138.3454858274232 + 60.335069940591254 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 384 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 35.21169262537829 + 57.75683948274251 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 385 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 183.64109836494706 + 187.89865943504947 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 386 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 124.92709985349823 + 7.139364140447135 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 387 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 121.19563498360651 + 163.5898829983739 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 388 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 141.67701483198246 + 36.967824799613645 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 389 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 116.85490603618803 + 192.1746914581395 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 390 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 157.23646122348265 + 101.21354943885676 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 391 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 58.04596641555313 + 180.0770488919343 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 392 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 118.342960728573 + 65.22048911724025 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 393 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 61.42203823259405 + 117.333210601775 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 394 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 136.13358028390385 + 97.99627507346685 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 395 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 82.86089860898949 + 25.22615052347874 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 396 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 6.721379593879373 + 94.78763681182285 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 397 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 38.69266957378596 + 24.113141554020046 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 398 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 111.22857295130957 + 95.51634459331788 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 399 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 126.7915415569141 + 32.23798771734878 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 400 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 186.84699461455236 + 34.76662976923288 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 401 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 122.45497909139493 + 167.0773654715768 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 402 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.interfaces.Position + 33.03449972907999 + 172.77024458531486 + 0.0 + + + se.sics.cooja.contikimote.interfaces.ContikiMoteID + 403 + + + se.sics.cooja.contikimote.interfaces.ContikiRadio + 250.0 + + mtype904 + + + + se.sics.cooja.plugins.SimControl + 280 + 3 + 160 + 400 + 0 + + + se.sics.cooja.plugins.Visualizer + + se.sics.cooja.plugins.skins.IDVisualizerSkin + se.sics.cooja.plugins.skins.GridVisualizerSkin + se.sics.cooja.plugins.skins.MoteTypeVisualizerSkin + se.sics.cooja.plugins.skins.UDGMVisualizerSkin + 1.1671649566739442 0.0 0.0 1.1671649566739442 66.21348020552065 40.83199757586018 + + 400 + 2 + 400 + 1 + 1 + + + se.sics.cooja.plugins.LogListener + + + + + 1184 + 0 + 240 + 402 + 162 + + + se.sics.cooja.plugins.Notes + + Enter notes here + true + + 904 + 4 + 160 + 680 + 0 + + + se.sics.cooja.plugins.ScriptRunner + + + true + + 962 + 1 + 596 + 603 + 43 + + + diff --git a/regression-tests/11-rpl/code/Makefile b/regression-tests/11-rpl/code/Makefile new file mode 100644 index 000000000..dd6dc3f12 --- /dev/null +++ b/regression-tests/11-rpl/code/Makefile @@ -0,0 +1,10 @@ +all: sender-node receiver-node root-node +CONTIKI=../../.. + +WITH_UIP6=1 +UIP_CONF_IPV6=1 +CFLAGS+= -DUIP_CONF_IPV6_RPL + +CFLAGS+=-DPROJECT_CONF_H=\"project-conf.h\" + +include $(CONTIKI)/Makefile.include diff --git a/regression-tests/11-rpl/code/project-conf.h b/regression-tests/11-rpl/code/project-conf.h new file mode 100644 index 000000000..e4fb0d5d3 --- /dev/null +++ b/regression-tests/11-rpl/code/project-conf.h @@ -0,0 +1,30 @@ +/* + * Copyright (c) 2012, Thingsquare, www.thingsquare.com. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the Institute nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ +#define TCPIP_CONF_ANNOTATE_TRANSMISSIONS 1 + diff --git a/regression-tests/11-rpl/code/receiver-node.c b/regression-tests/11-rpl/code/receiver-node.c new file mode 100644 index 000000000..fbbc14983 --- /dev/null +++ b/regression-tests/11-rpl/code/receiver-node.c @@ -0,0 +1,132 @@ +/* + * Copyright (c) 2012, Thingsquare, www.thingsquare.com. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the Institute nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include "contiki.h" +#include "lib/random.h" +#include "sys/ctimer.h" +#include "sys/etimer.h" +#include "net/uip.h" +#include "net/uip-ds6.h" +#include "net/uip-debug.h" + +#include "simple-udp.h" + +#include "net/rpl/rpl.h" +#include "dev/leds.h" + +#include +#include + +#define UDP_PORT 1234 + +static struct simple_udp_connection unicast_connection; + +/*---------------------------------------------------------------------------*/ +PROCESS(receiver_node_process, "Receiver node"); +AUTOSTART_PROCESSES(&receiver_node_process); +/*---------------------------------------------------------------------------*/ +static void +receiver(struct simple_udp_connection *c, + const uip_ipaddr_t *sender_addr, + uint16_t sender_port, + const uip_ipaddr_t *receiver_addr, + uint16_t receiver_port, + const uint8_t *data, + uint16_t datalen) +{ + printf("Data received from "); + uip_debug_ipaddr_print(sender_addr); + printf(" on port %d from port %d with length %d: '%s'\n", + receiver_port, sender_port, datalen, data); +} +/*---------------------------------------------------------------------------*/ +static uip_ipaddr_t * +set_global_address(void) +{ + static uip_ipaddr_t ipaddr; + int i; + uint8_t state; + + uip_ip6addr(&ipaddr, 0xaaaa, 0, 0, 0, 0, 0, 0, 0); + uip_ds6_set_addr_iid(&ipaddr, &uip_lladdr); + uip_ds6_addr_add(&ipaddr, 0, ADDR_AUTOCONF); + + printf("IPv6 addresses: "); + for(i = 0; i < UIP_DS6_ADDR_NB; i++) { + state = uip_ds6_if.addr_list[i].state; + if(uip_ds6_if.addr_list[i].isused && + (state == ADDR_TENTATIVE || state == ADDR_PREFERRED)) { + uip_debug_ipaddr_print(&uip_ds6_if.addr_list[i].ipaddr); + printf("\n"); + } + } + + return &ipaddr; +} +/*---------------------------------------------------------------------------*/ +uint8_t should_blink = 1; +static void +route_callback(int event, uip_ipaddr_t *route, uip_ipaddr_t *ipaddr) +{ + if(event == UIP_DS6_NOTIFICATION_DEFRT_ADD) { + should_blink = 0; + } else if(event == UIP_DS6_NOTIFICATION_DEFRT_RM) { + should_blink = 1; + } +} +/*---------------------------------------------------------------------------*/ +PROCESS_THREAD(receiver_node_process, ev, data) +{ + static struct etimer et; + static struct uip_ds6_notification n; + uip_ipaddr_t *ipaddr; + + PROCESS_BEGIN(); + + ipaddr = set_global_address(); + + uip_ds6_notification_add(&n, route_callback); + + simple_udp_register(&unicast_connection, UDP_PORT, + NULL, UDP_PORT, receiver); + + etimer_set(&et, CLOCK_SECOND); + while(1) { + PROCESS_WAIT_EVENT_UNTIL(etimer_expired(&et)); + etimer_reset(&et); + if(should_blink) { + leds_on(LEDS_ALL); + PROCESS_WAIT_EVENT_UNTIL(etimer_expired(&et)); + etimer_reset(&et); + leds_off(LEDS_ALL); + } + } + PROCESS_END(); +} +/*---------------------------------------------------------------------------*/ diff --git a/regression-tests/11-rpl/code/root-node.c b/regression-tests/11-rpl/code/root-node.c new file mode 100644 index 000000000..e547e7479 --- /dev/null +++ b/regression-tests/11-rpl/code/root-node.c @@ -0,0 +1,135 @@ +/* + * Copyright (c) 2012, Thingsquare, www.thingsquare.com. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the Institute nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + + +#include "contiki.h" +#include "lib/random.h" +#include "sys/ctimer.h" +#include "sys/etimer.h" +#include "net/uip.h" +#include "net/uip-ds6.h" +#include "net/uip-debug.h" + +#include "simple-udp.h" + +#include "net/rpl/rpl.h" + +#include +#include + +#define UDP_PORT 1234 +#define SERVICE_ID 190 + +#define SEND_INTERVAL (10 * CLOCK_SECOND) +#define SEND_TIME (random_rand() % (SEND_INTERVAL)) + +static struct simple_udp_connection unicast_connection; + +/*---------------------------------------------------------------------------*/ +PROCESS(unicast_receiver_process, "Unicast receiver example process"); +AUTOSTART_PROCESSES(&unicast_receiver_process); +/*---------------------------------------------------------------------------*/ +static void +receiver(struct simple_udp_connection *c, + const uip_ipaddr_t *sender_addr, + uint16_t sender_port, + const uip_ipaddr_t *receiver_addr, + uint16_t receiver_port, + const uint8_t *data, + uint16_t datalen) +{ + printf("Data received from "); + uip_debug_ipaddr_print(sender_addr); + printf(" on port %d from port %d with length %d: '%s'\n", + receiver_port, sender_port, datalen, data); +} +/*---------------------------------------------------------------------------*/ +static uip_ipaddr_t * +set_global_address(void) +{ + static uip_ipaddr_t ipaddr; + int i; + uint8_t state; + + uip_ip6addr(&ipaddr, 0xaaaa, 0, 0, 0, 0, 0, 0, 0); + uip_ds6_set_addr_iid(&ipaddr, &uip_lladdr); + uip_ds6_addr_add(&ipaddr, 0, ADDR_AUTOCONF); + + printf("IPv6 addresses: "); + for(i = 0; i < UIP_DS6_ADDR_NB; i++) { + state = uip_ds6_if.addr_list[i].state; + if(uip_ds6_if.addr_list[i].isused && + (state == ADDR_TENTATIVE || state == ADDR_PREFERRED)) { + uip_debug_ipaddr_print(&uip_ds6_if.addr_list[i].ipaddr); + printf("\n"); + } + } + + return &ipaddr; +} +/*---------------------------------------------------------------------------*/ +static void +create_rpl_dag(uip_ipaddr_t *ipaddr) +{ + struct uip_ds6_addr *root_if; + + root_if = uip_ds6_addr_lookup(ipaddr); + if(root_if != NULL) { + rpl_dag_t *dag; + uip_ipaddr_t prefix; + + rpl_set_root(RPL_DEFAULT_INSTANCE, ipaddr); + dag = rpl_get_any_dag(); + uip_ip6addr(&prefix, 0xaaaa, 0, 0, 0, 0, 0, 0, 0); + rpl_set_prefix(dag, &prefix, 64); + PRINTF("created a new RPL dag\n"); + } else { + PRINTF("failed to create a new RPL DAG\n"); + } +} +/*---------------------------------------------------------------------------*/ +PROCESS_THREAD(unicast_receiver_process, ev, data) +{ + uip_ipaddr_t *ipaddr; + + PROCESS_BEGIN(); + + ipaddr = set_global_address(); + + create_rpl_dag(ipaddr); + + simple_udp_register(&unicast_connection, UDP_PORT, + NULL, UDP_PORT, receiver); + + while(1) { + PROCESS_WAIT_EVENT(); + } + PROCESS_END(); +} +/*---------------------------------------------------------------------------*/ diff --git a/regression-tests/11-rpl/code/sender-node.c b/regression-tests/11-rpl/code/sender-node.c new file mode 100644 index 000000000..584c0dd85 --- /dev/null +++ b/regression-tests/11-rpl/code/sender-node.c @@ -0,0 +1,129 @@ +/* + * Copyright (c) 2012, Thingsquare, www.thingsquare.com. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the Institute nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + + +#include "contiki.h" +#include "lib/random.h" +#include "sys/ctimer.h" +#include "sys/etimer.h" +#include "net/uip.h" +#include "net/uip-ds6.h" +#include "net/uip-debug.h" + +#include "simple-udp.h" + +#include +#include + +#define UDP_PORT 1234 + +#define SEND_INTERVAL (60 * CLOCK_SECOND) +#define SEND_TIME (random_rand() % (SEND_INTERVAL)) + +static struct simple_udp_connection unicast_connection; + +/*---------------------------------------------------------------------------*/ +PROCESS(sender_node_process, "Sender node process"); +AUTOSTART_PROCESSES(&sender_node_process); +/*---------------------------------------------------------------------------*/ +static void +receiver(struct simple_udp_connection *c, + const uip_ipaddr_t *sender_addr, + uint16_t sender_port, + const uip_ipaddr_t *receiver_addr, + uint16_t receiver_port, + const uint8_t *data, + uint16_t datalen) +{ + printf("Sender received data on port %d from port %d with length %d\n", + receiver_port, sender_port, datalen); +} +/*---------------------------------------------------------------------------*/ +static void +set_global_address(void) +{ + uip_ipaddr_t ipaddr; + int i; + uint8_t state; + + uip_ip6addr(&ipaddr, 0xaaaa, 0, 0, 0, 0, 0, 0, 0); + uip_ds6_set_addr_iid(&ipaddr, &uip_lladdr); + uip_ds6_addr_add(&ipaddr, 0, ADDR_AUTOCONF); + + printf("IPv6 addresses: "); + for(i = 0; i < UIP_DS6_ADDR_NB; i++) { + state = uip_ds6_if.addr_list[i].state; + if(uip_ds6_if.addr_list[i].isused && + (state == ADDR_TENTATIVE || state == ADDR_PREFERRED)) { + uip_debug_ipaddr_print(&uip_ds6_if.addr_list[i].ipaddr); + printf("\n"); + } + } +} +/*---------------------------------------------------------------------------*/ +PROCESS_THREAD(sender_node_process, ev, data) +{ + static struct etimer periodic_timer; + static struct etimer send_timer; + uip_ipaddr_t addr; + + PROCESS_BEGIN(); + + set_global_address(); + + simple_udp_register(&unicast_connection, UDP_PORT, + NULL, UDP_PORT, receiver); + + etimer_set(&periodic_timer, SEND_INTERVAL); + while(1) { + + PROCESS_WAIT_EVENT_UNTIL(etimer_expired(&periodic_timer)); + etimer_reset(&periodic_timer); + etimer_set(&send_timer, SEND_TIME); + + PROCESS_WAIT_EVENT_UNTIL(etimer_expired(&send_timer)); + + uip_ip6addr(&addr, 0xaaaa, 0, 0, 0, 0x0201, 0x001, 0x001, 0x001); + + { + static unsigned int message_number; + char buf[20]; + + printf("Sending unicast to "); + uip_debug_ipaddr_print(&addr); + printf("\n"); + sprintf(buf, "Message %d", message_number); + message_number++; + simple_udp_sendto(&unicast_connection, buf, strlen(buf) + 1, &addr); + } + } + + PROCESS_END(); +} +/*---------------------------------------------------------------------------*/ From e4aee4abbb4f2c888bc83770f5b2f30e5836566c Mon Sep 17 00:00:00 2001 From: Adam Dunkels Date: Sat, 8 Dec 2012 22:59:48 +0100 Subject: [PATCH 07/10] travis integration of the Thingsquare Mist regression test framework --- .travis.yml | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/.travis.yml b/.travis.yml index ce8f56323..8e80e7bd4 100644 --- a/.travis.yml +++ b/.travis.yml @@ -16,27 +16,27 @@ before_script: script: ## The makefile called `.travis.mk` handles most of generic logic - - "make -f .travis.mk $MAKE_TARGETS" + - "make -C regression-tests/??-$BUILD_TYPE RUNALL=true summary" after_script: ## Print a basic summary in unix style - - "echo 'Summary:'; cat results | sort | uniq -c" + - "echo 'Summary:'; cat regression-tests/??-$BUILD_TYPE/summary" ## This will detect whether the build should pass or fail - - "test `grep -c 'fail' results` -eq 0" + - "test `grep -c -i 'fail' regression-tests/??-$BUILD_TYPE/summary` -eq 0" env: ## This magically kick-off parallel jobs for each of the for the sets ## of environment variable defined below - - BUILD_TYPE='compile' MAKE_TARGETS='native minimal-net econotag sky micaz avr-raven' - - BUILD_TYPE='ipv6' MAKE_TARGETS='cooja' TAIL=cat - - BUILD_TYPE='collect-lossy' MAKE_TARGETS='cooja' TAIL=cat - - BUILD_TYPE='collect-sky' MAKE_TARGETS='cooja' TAIL=cat - - BUILD_TYPE='collect' MAKE_TARGETS='cooja' TAIL=cat - - BUILD_TYPE='helloworld' MAKE_TARGETS='cooja' TAIL=cat - - BUILD_TYPE='base' MAKE_TARGETS='cooja' TAIL=cat - - BUILD_TYPE='rime' MAKE_TARGETS='cooja' TAIL=cat - - BUILD_TYPE='netperf' MAKE_TARGETS='cooja' TAIL=cat - - BUILD_TYPE='sky-shell' MAKE_TARGETS='cooja' TAIL=cat - - BUILD_TYPE='elfloader' MAKE_TARGETS='cooja' TAIL=cat - - BUILD_TYPE='ipv6-apps' MAKE_TARGETS='cooja' TAIL=cat + - BUILD_TYPE='compile' + - BUILD_TYPE='collect' MAKE_TARGETS='cooja' + - BUILD_TYPE='rpl' MAKE_TARGETS='cooja' + - BUILD_TYPE='rime' MAKE_TARGETS='cooja' + - BUILD_TYPE='ipv6' MAKE_TARGETS='cooja' + - BUILD_TYPE='hello-world' MAKE_TARGETS='cooja' + - BUILD_TYPE='base' MAKE_TARGETS='cooja' + - BUILD_TYPE='netperf' MAKE_TARGETS='cooja' + - BUILD_TYPE='shell' MAKE_TARGETS='cooja' + - BUILD_TYPE='elfloader' MAKE_TARGETS='cooja' + - BUILD_TYPE='ipv4' MAKE_TARGETS='cooja' + - BUILD_TYPE='ipv6-apps' MAKE_TARGETS='cooja' From 3768637f03146579c3bf3dc8a1341b484bfdcaeb Mon Sep 17 00:00:00 2001 From: Adam Dunkels Date: Sun, 9 Dec 2012 01:12:59 +0100 Subject: [PATCH 08/10] Removed the .travis.mk, which isn't needed anymore --- .travis.mk | 206 ----------------------------------------------------- 1 file changed, 206 deletions(-) delete mode 100644 .travis.mk diff --git a/.travis.mk b/.travis.mk deleted file mode 100644 index 61049ab26..000000000 --- a/.travis.mk +++ /dev/null @@ -1,206 +0,0 @@ -## Makefile.CI -# -# This is for use on [Travis CI](http://travis-ci.org), which is -# a free distributed continuous integration service with unique -# set of features: -# * uses clean ephemeral virtual machines for every build -# * integrates with GitHub - triggers builds on push and pull-request -# * it is open source and free for public repositories -# * features great web UI and bunch of other stuff - -JOBS ?= 2 -TAIL ?= tail -n 15 - - -EXAMPLES_ALL = hello-world - -EXAMPLES_native = ipv6/native-border-router - -EXAMPLES_most_non_native = \ - er-rest-example \ - ipv6/rpl-border-router \ - ipv6/rpl-collect \ - ipv6/rpl-udp \ - ipv6/simple-udp-rpl \ - ipv6/slip-radio \ - webserver-ipv6 - -EXAMPLES_econotag = $(EXAMPLES_most_non_native) - -EXAMPLES_most_avr = $(EXAMPLES_most_non_native) - -EXAMPLES_micaz = $(EXAMPLES_most_avr) -EXAMPLES_avr_raven = $(EXAMPLES_most_avr) - -## MARK_EXAMPLES_$(TARGET) provides the mechanism to -## build the examples which are known to fail but -## shouldn't be counted as failing for some reason -MARK_EXAMPLES_micaz = \ - er-rest-example \ - ipv6/rpl-border-router \ - ipv6/rpl-collect \ - ipv6/rpl-udp \ - ipv6/simple-udp-rpl \ - ipv6/slip-radio \ - webserver-ipv6 - -## EXCLUDE_$(TARGETS) provides the mechanism to -## not build the examples which are known to fail -EXCLUDE_avr_raven = ipv6/rpl-collect - -EXAMPLES_sky = $(EXAMPLES_most_non_native) sky-shell - -COOJA_TESTS_DIR = tools/cooja/contiki_tests -COOJA_TESTS_HELLO_WORLD = $(COOJA_TESTS_DIR)/*_helloworld.csc -COOJA_TESTS_BASE = $(COOJA_TESTS_DIR)/multithreading.csc \ - $(COOJA_TESTS_DIR)/sky_coffee.csc -# $(COOJA_TESTS_DIR)/crosslevel.csc -# The crosslevel test is unstable and therefore not included yet -COOJA_TESTS_RIME = $(COOJA_TESTS_DIR)/rime_abc.csc \ - $(COOJA_TESTS_DIR)/rime_rucb.csc \ - $(COOJA_TESTS_DIR)/rime_runicast.csc \ - $(COOJA_TESTS_DIR)/sky_deluge.csc \ - $(COOJA_TESTS_DIR)/sky_collect.csc -# $(COOJA_TESTS_DIR)/rime_trickle.csc -# The rime_trickle test sometimes fails so it isn't included here -COOJA_TESTS_NETPERF = $(COOJA_TESTS_DIR)/netperf-*.csc -COOJA_TESTS_SKY_SHELL = $(COOJA_TESTS_DIR)/sky_shell_basic_commands.csc \ - $(COOJA_TESTS_DIR)/sky_shell_compliation_test.csc \ - $(COOJA_TESTS_DIR)/sky_shell_download.csc \ - $(COOJA_TESTS_DIR)/sky_checkpointing.csc \ - $(COOJA_TESTS_DIR)/sky_shell_sendcmd.csc -COOJA_TESTS_ELFLOADER = $(COOJA_TESTS_DIR)/sky_shell_exec_serial.csc -COOJA_TESTS_COLLECT = $(COOJA_TESTS_DIR)/rime_collect.csc \ - $(COOJA_TESTS_DIR)/rime_collect_sky.csc -COOJA_TESTS_COLLECT_SKY = $(COOJA_TESTS_DIR)/sky_shell_collect.csc -COOJA_TESTS_COLLECT_LOSSY = $(COOJA_TESTS_DIR)/sky_shell_collect_lossy.csc -COOJA_TESTS_IPV6 = $(COOJA_TESTS_DIR)/sky-ipv6-rpl-collect.csc \ - $(COOJA_TESTS_DIR)/sky_ipv6_udp.csc \ - $(COOJA_TESTS_DIR)/sky_ipv6_udp_fragmentation.csc \ - $(COOJA_TESTS_DIR)/cooja_ipv6_udp.csc -COOJA_TESTS_IPV6_APPS = $(COOJA_TESTS_DIR)/servreg-hack.csc \ - $(COOJA_TESTS_DIR)/rest_rpl_coap.csc - -# The IPv4 test are not stable yet: -#COOJA_TESTS_IPV4 = $(COOJA_TESTS_DIR)/ip_cooja_telnet_ping.csc \ -# $(COOJA_TESTS_DIR)/ip_sky_telnet_ping.csc \ -# $(COOJA_TESTS_DIR)/ip_sky_webserver_wget.csc - -## Some Cooja tests can also be excluded: -#EXCLUDE_COOJA_TESTS = servreg-hack.csc sky_coffee.csc rime_collect.csc rime_trickle.csc -## And some can also be marked: -#MARK_COOJA_TESTS = crosslevel.csc ip_sky_telnet_ping.csc - -CT := \033[0;0m - -ifdef BOXED_SIGNS - SKIP_SIGN := ☐ - FAIL_SIGN := ☒ - PASS_SIGN := ☑ -else - SKIP_SIGN := ✈ - FAIL_SIGN := ✘ - PASS_SIGN := ✔ -endif - - -## FIXME: this will misbehave when we intend to skip `examples1` but there is also `examples123` that fails also -SKIP = (echo $(SKIP_LIST) | grep -q $$e && (echo "\033[1;36m $(SKIP_SIGN) ➝ ❨ $$e ⊈ $@ ❩$(CT)"; $(TAIL) $(LOG); echo skip >> results) || false) -FAIL = (echo "\033[1;35m $(FAIL_SIGN) ➝ ❨ $$e ∉ $@ ❩$(CT)"; $(TAIL) $(LOG); echo fail >> results) -PASS = (echo "\033[1;32m $(PASS_SIGN) ➝ ❨ $$e ∈ $@ ❩$(CT)"; echo pass >> results) - - -# This is the definition of the basic compilation test -ifeq ($(BUILD_TYPE),compile) -THIS = $(MAKE) -C examples/$$e TARGET=$@ > $(LOG) 2>&1 -MINE = $(filter-out $(EXCLUDE_$(subst -,_,$@)), $(EXAMPLES_ALL) $(EXAMPLES_$(subst -,_,$@))) -SKIP_LIST = $(MARK_EXAMPLES_$(subst -,_,$@)) -endif - -# Below are the Contiki functional tests, which all use Cooja so we -# need to define JAVA and the COOJA_COMMAND -JAVA = java -mx512m -COOJA_COMMAND = $(SHELL) -x -c "cd `dirname $$e` && $(JAVA) -jar ../dist/cooja.jar -nogui=`basename $$e`" > $(LOG) #2>&1 - -ifeq ($(BUILD_TYPE),helloworld) -THIS = $(COOJA_COMMAND) -MINE = $(filter-out $(addprefix $(COOJA_TESTS_DIR)/, $(EXCLUDE_COOJA_TESTS)), \ - $(wildcard $(COOJA_TESTS_HELLO_WORLD))) -SKIP_LIST = $(addprefix $(COOJA_TESTS_DIR)/, $(MARK_COOJA_TESTS)) -endif - -ifeq ($(BUILD_TYPE),base) -THIS = $(COOJA_COMMAND) -MINE = $(filter-out $(addprefix $(COOJA_TESTS_DIR)/, $(EXCLUDE_COOJA_TESTS)), \ - $(wildcard $(COOJA_TESTS_BASE))) -SKIP_LIST = $(addprefix $(COOJA_TESTS_DIR)/, $(MARK_COOJA_TESTS)) -endif - -ifeq ($(BUILD_TYPE),rime) -THIS = $(COOJA_COMMAND) -MINE = $(filter-out $(addprefix $(COOJA_TESTS_DIR)/, $(EXCLUDE_COOJA_TESTS)), \ - $(wildcard $(COOJA_TESTS_RIME))) -SKIP_LIST = $(addprefix $(COOJA_TESTS_DIR)/, $(MARK_COOJA_TESTS)) -endif - -ifeq ($(BUILD_TYPE),netperf) -THIS = $(COOJA_COMMAND) -MINE = $(filter-out $(addprefix $(COOJA_TESTS_DIR)/, $(EXCLUDE_COOJA_TESTS)), \ - $(wildcard $(COOJA_TESTS_NETPERF))) -SKIP_LIST = $(addprefix $(COOJA_TESTS_DIR)/, $(MARK_COOJA_TESTS)) -endif - -ifeq ($(BUILD_TYPE),sky-shell) -THIS = $(COOJA_COMMAND) -MINE = $(filter-out $(addprefix $(COOJA_TESTS_DIR)/, $(EXCLUDE_COOJA_TESTS)), \ - $(wildcard $(COOJA_TESTS_SKY_SHELL))) -SKIP_LIST = $(addprefix $(COOJA_TESTS_DIR)/, $(MARK_COOJA_TESTS)) -endif - -ifeq ($(BUILD_TYPE),elfloader) -THIS = $(COOJA_COMMAND) -MINE = $(filter-out $(addprefix $(COOJA_TESTS_DIR)/, $(EXCLUDE_COOJA_TESTS)), \ - $(wildcard $(COOJA_TESTS_ELFLOADER))) -SKIP_LIST = $(addprefix $(COOJA_TESTS_DIR)/, $(MARK_COOJA_TESTS)) -endif - -ifeq ($(BUILD_TYPE),collect) -THIS = $(COOJA_COMMAND) -MINE = $(filter-out $(addprefix $(COOJA_TESTS_DIR)/, $(EXCLUDE_COOJA_TESTS)), \ - $(wildcard $(COOJA_TESTS_COLLECT))) -SKIP_LIST = $(addprefix $(COOJA_TESTS_DIR)/, $(MARK_COOJA_TESTS)) -endif - -ifeq ($(BUILD_TYPE),collect-sky) -THIS = $(COOJA_COMMAND) -MINE = $(filter-out $(addprefix $(COOJA_TESTS_DIR)/, $(EXCLUDE_COOJA_TESTS)), \ - $(wildcard $(COOJA_TESTS_COLLECT_SKY))) -SKIP_LIST = $(addprefix $(COOJA_TESTS_DIR)/, $(MARK_COOJA_TESTS)) -endif - -ifeq ($(BUILD_TYPE),collect-lossy) -THIS = $(COOJA_COMMAND) -MINE = $(filter-out $(addprefix $(COOJA_TESTS_DIR)/, $(EXCLUDE_COOJA_TESTS)), \ - $(wildcard $(COOJA_TESTS_COLLECT_LOSSY))) -SKIP_LIST = $(addprefix $(COOJA_TESTS_DIR)/, $(MARK_COOJA_TESTS)) -endif - -ifeq ($(BUILD_TYPE),ipv6) -THIS = $(COOJA_COMMAND) -MINE = $(filter-out $(addprefix $(COOJA_TESTS_DIR)/, $(EXCLUDE_COOJA_TESTS)), \ - $(wildcard $(COOJA_TESTS_IPV6))) -SKIP_LIST = $(addprefix $(COOJA_TESTS_DIR)/, $(MARK_COOJA_TESTS)) -endif - -ifeq ($(BUILD_TYPE),ipv6-apps) -THIS = $(COOJA_COMMAND) -MINE = $(filter-out $(addprefix $(COOJA_TESTS_DIR)/, $(EXCLUDE_COOJA_TESTS)), \ - $(wildcard $(COOJA_TESTS_IPV6_APPS))) -SKIP_LIST = $(addprefix $(COOJA_TESTS_DIR)/, $(MARK_COOJA_TESTS)) -endif - -LOG = /tmp/$@_`echo $$e | sed 's:/:_:g'`.log - -%: - @echo "\033[1;37m ➠ ❨$@❩ $(CT)" - @for e in $(MINE); do $(THIS) && $(PASS) || $(SKIP) || $(FAIL); done; From aaa950ab178da4b0cfa99a9227e41ef2df3d8c42 Mon Sep 17 00:00:00 2001 From: Adam Dunkels Date: Sun, 9 Dec 2012 21:24:03 +0100 Subject: [PATCH 09/10] Cooja platform changes to get IPv6/RPL to work better --- platform/cooja/Makefile.cooja | 2 +- platform/cooja/contiki-conf.h | 145 +++++++++++++++++++++++----- platform/cooja/contiki-cooja-main.c | 87 +++++++++++------ platform/cooja/sys/log.c | 44 ++++++++- 4 files changed, 219 insertions(+), 59 deletions(-) diff --git a/platform/cooja/Makefile.cooja b/platform/cooja/Makefile.cooja index d4e80f182..d40bfb0a2 100644 --- a/platform/cooja/Makefile.cooja +++ b/platform/cooja/Makefile.cooja @@ -71,7 +71,7 @@ CONTIKI_CPU=$(CONTIKI)/cpu/x86 ### Compiler arguments #CC = gcc CFLAGSNO = $(EXTRA_CC_ARGS) -Wall -g -I/usr/local/include -DCLASSNAME=$(CLASSNAME) -CFLAGS = $(CFLAGSNO) +CFLAGS += $(CFLAGSNO) ifdef UIP_CONF_IPV6 CFLAGS += -DWITH_UIP6=1 diff --git a/platform/cooja/contiki-conf.h b/platform/cooja/contiki-conf.h index 3c6154ed2..89996ea82 100644 --- a/platform/cooja/contiki-conf.h +++ b/platform/cooja/contiki-conf.h @@ -39,6 +39,8 @@ #define COOJA 1 +#define w_memcpy memcpy + #if WITH_UIP #if WITH_UIP6 #error WITH_UIP && WITH_IP6: Bad configuration @@ -57,13 +59,18 @@ /* Default network config */ #if WITH_UIP6 +#define NULLRDC_CONF_802154_AUTOACK 0 +#define NULLRDC_CONF_SEND_802154_ACK 0 +#define NULLRDC_CONF_ACK_WAIT_TIME RTIMER_SECOND / 500 +#define NULLRDC_CONF_AFTER_ACK_DETECTED_WAIT_TIME RTIMER_SECOND / 250 + + /* Network setup for IPv6 */ -#define NETSTACK_CONF_NETWORK uip_driver -#define NETSTACK_CONF_MAC nullmac_driver -#define NETSTACK_CONF_RDC nullrdc_driver -#define NETSTACK_CONF_RADIO cooja_radio_driver -#define UIP_CONF_IPV6 1 -#define UIP_CONF_IP_FORWARD 0 +#define NETSTACK_CONF_NETWORK sicslowpan_driver +#define NETSTACK_CONF_MAC csma_driver +#define NETSTACK_CONF_RDC nullrdc_driver +#define NETSTACK_CONF_RADIO cooja_radio_driver +#define NETSTACK_CONF_FRAMER framer_802154 #else /* WITH_UIP6 */ @@ -80,7 +87,7 @@ /* Network setup for Rime */ #define NETSTACK_CONF_NETWORK rime_driver -#define NETSTACK_CONF_MAC nullmac_driver +#define NETSTACK_CONF_MAC csma_driver #define NETSTACK_CONF_RDC nullrdc_driver #define NETSTACK_CONF_RADIO cooja_radio_driver /*#define NETSTACK_CONF_FRAMER framer_nullmac*/ @@ -90,6 +97,86 @@ #endif /* NETSTACK_CONF_H */ +#define NETSTACK_CONF_RDC_CHANNEL_CHECK_RATE 8 + +/* Default network config */ +#if WITH_UIP6 + + + +/* Network setup for IPv6 */ +#define NETSTACK_CONF_NETWORK sicslowpan_driver +#define NETSTACK_CONF_MAC csma_driver +#define NETSTACK_CONF_RDC nullrdc_driver +#define NETSTACK_CONF_RADIO cooja_radio_driver +#define NETSTACK_CONF_FRAMER framer_802154 +#define UIP_CONF_IPV6 1 + +#define RIMEADDR_CONF_SIZE 8 + +#define UIP_CONF_LL_802154 1 +#define UIP_CONF_LLH_LEN 0 + +#define UIP_CONF_ROUTER 1 +#ifndef UIP_CONF_IPV6_RPL +#define UIP_CONF_IPV6_RPL 1 +#endif /* UIP_CONF_IPV6_RPL */ + +/* configure number of neighbors and routes */ +#ifndef UIP_CONF_DS6_NBR_NBU +#define UIP_CONF_DS6_NBR_NBU 300 +#endif /* UIP_CONF_DS6_NBR_NBU */ +#ifndef UIP_CONF_DS6_ROUTE_NBU +#define UIP_CONF_DS6_ROUTE_NBU 300 +#endif /* UIP_CONF_DS6_ROUTE_NBU */ + +#define TCPIP_CONF_ANNOTATE_TRANSMISSIONS 1 + +#define RPL_CONF_DIO_INTERVAL_MIN 16 + +#define RPL_DIS_INTERVAL_CONF (5 * 60) +#define RPL_CONF_DAO_LATENCY (CLOCK_SECOND * 60) + +#define UIP_CONF_ND6_SEND_RA 0 +#define UIP_CONF_ND6_REACHABLE_TIME 600000 +#define UIP_CONF_ND6_RETRANS_TIMER 10000 + +#define RIMEADDR_CONF_SIZE 8 +#define UIP_CONF_NETIF_MAX_ADDRESSES 3 +#define UIP_CONF_ND6_MAX_PREFIXES 3 +#define UIP_CONF_ND6_MAX_NEIGHBORS 4 +#define UIP_CONF_ND6_MAX_DEFROUTERS 2 + +#ifndef UIP_CONF_IPV6_QUEUE_PKT +#define UIP_CONF_IPV6_QUEUE_PKT 1 +#endif /* UIP_CONF_IPV6_QUEUE_PKT */ +#define UIP_CONF_IPV6_CHECKS 1 +#define UIP_CONF_IPV6_REASSEMBLY 0 +#define UIP_CONF_NETIF_MAX_ADDRESSES 3 +#define UIP_CONF_ND6_MAX_PREFIXES 3 +#define UIP_CONF_ND6_MAX_NEIGHBORS 4 +#define UIP_CONF_ND6_MAX_DEFROUTERS 2 +#define UIP_CONF_IP_FORWARD 0 +#ifndef UIP_CONF_BUFFER_SIZE +#define UIP_CONF_BUFFER_SIZE 240 +#endif + +#define SICSLOWPAN_CONF_COMPRESSION_IPV6 0 +#define SICSLOWPAN_CONF_COMPRESSION_HC1 1 +#define SICSLOWPAN_CONF_COMPRESSION_HC01 2 +#define SICSLOWPAN_CONF_COMPRESSION SICSLOWPAN_COMPRESSION_HC06 +#ifndef SICSLOWPAN_CONF_FRAG +#define SICSLOWPAN_CONF_FRAG 1 +#define SICSLOWPAN_CONF_MAXAGE 8 +#endif /* SICSLOWPAN_CONF_FRAG */ +#define SICSLOWPAN_CONF_CONVENTIONAL_MAC 1 +#define SICSLOWPAN_CONF_MAX_ADDR_CONTEXTS 2 +#ifndef SICSLOWPAN_CONF_MAX_MAC_TRANSMISSIONS +#define SICSLOWPAN_CONF_MAX_MAC_TRANSMISSIONS 8 +#endif /* SICSLOWPAN_CONF_MAX_MAC_TRANSMISSIONS */ + +#endif /* WITH_UIP6 */ + #define PACKETBUF_CONF_ATTRS_INLINE 1 @@ -123,28 +210,38 @@ typedef unsigned long rtimer_clock_t; #define WITH_ASCII 1 -#define UIP_CONF_MAX_LISTENPORTS 40 -#define UIP_CONF_MAX_CONNECTIONS 40 -#define UIP_CONF_BYTE_ORDER UIP_LITTLE_ENDIAN -#define UIP_CONF_TCP_SPLIT 0 -#define UIP_CONF_LOGGING 0 -#define UIP_CONF_UDP_CHECKSUMS 0 -#define UIP_CONF_BROADCAST 1 +#define UIP_CONF_ICMP_DEST_UNREACH 1 -#define UIP_CONF_UDP 1 -#define UIP_CONF_TCP 1 +#define UIP_CONF_DHCP_LIGHT +#define UIP_CONF_LLH_LEN 0 +#ifndef UIP_CONF_RECEIVE_WINDOW +#define UIP_CONF_RECEIVE_WINDOW 48 +#endif +#ifndef UIP_CONF_TCP_MSS +#define UIP_CONF_TCP_MSS 48 +#endif +#define UIP_CONF_MAX_CONNECTIONS 4 +#define UIP_CONF_MAX_LISTENPORTS 8 +#define UIP_CONF_UDP_CONNS 12 +#define UIP_CONF_FWCACHE_SIZE 30 +#define UIP_CONF_BROADCAST 1 +#define UIP_ARCH_IPCHKSUM 1 +#define UIP_CONF_UDP 1 +#define UIP_CONF_UDP_CHECKSUMS 1 +#define UIP_CONF_PINGADDRCONF 0 +#define UIP_CONF_LOGGING 0 + +#define UIP_CONF_TCP_SPLIT 0 #if UIP_CONF_IPV6 -#define RIMEADDR_CONF_SIZE 8 -#define UIP_CONF_IPV6_QUEUE_PKT 1 -#define UIP_CONF_IPV6_CHECKS 1 -#define UIP_CONF_IPV6_REASSEMBLY 1 -#define UIP_CONF_NETIF_MAX_ADDRESSES 3 -#define UIP_CONF_ND6_MAX_PREFIXES 3 -#define UIP_CONF_ND6_MAX_NEIGHBORS 4 -#define UIP_CONF_ND6_MAX_DEFROUTERS 2 #endif /* UIP_CONF_IPV6 */ #define CFS_CONF_OFFSET_TYPE long +/* include the project config */ +/* PROJECT_CONF_H might be defined in the project Makefile */ +#ifdef PROJECT_CONF_H +#include PROJECT_CONF_H +#endif /* PROJECT_CONF_H */ + #endif /* __CONTIKI_CONF_H__ */ diff --git a/platform/cooja/contiki-cooja-main.c b/platform/cooja/contiki-cooja-main.c index 4bf54c95d..2fa8706fc 100644 --- a/platform/cooja/contiki-cooja-main.c +++ b/platform/cooja/contiki-cooja-main.c @@ -102,8 +102,6 @@ static uint8_t is_gateway; #define PRINT6ADDR(addr) printf("%02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x", ((uint8_t *)addr)[0], ((uint8_t *)addr)[1], ((uint8_t *)addr)[2], ((uint8_t *)addr)[3], ((uint8_t *)addr)[4], ((uint8_t *)addr)[5], ((uint8_t *)addr)[6], ((uint8_t *)addr)[7], ((uint8_t *)addr)[8], ((uint8_t *)addr)[9], ((uint8_t *)addr)[10], ((uint8_t *)addr)[11], ((uint8_t *)addr)[12], ((uint8_t *)addr)[13], ((uint8_t *)addr)[14], ((uint8_t *)addr)[15]) #endif /* WITH_UIP6 */ -PROCINIT(&etimer_process,&sensors_process); - /* Simulation mote interfaces */ SIM_INTERFACE_NAME(moteid_interface); SIM_INTERFACE_NAME(vib_interface); @@ -179,6 +177,30 @@ rtimer_thread_loop(void *data) } } /*---------------------------------------------------------------------------*/ +static void +set_rime_addr(void) +{ + rimeaddr_t addr; + int i; + + memset(&addr, 0, sizeof(rimeaddr_t)); +#if WITH_UIP6 + for(i = 0; i < sizeof(uip_lladdr.addr); i += 2) { + addr.u8[i + 1] = node_id & 0xff; + addr.u8[i + 0] = node_id >> 8; + } +#else /* WITH_UIP6 */ + addr.u8[0] = node_id & 0xff; + addr.u8[1] = node_id >> 8; +#endif /* WITH_UIP6 */ + rimeaddr_set_node_addr(&addr); + printf("Rime started with address "); + for(i = 0; i < sizeof(addr.u8) - 1; i++) { + printf("%d.", addr.u8[i]); + } + printf("%d\n", addr.u8[i]); +} +/*---------------------------------------------------------------------------*/ void contiki_init() { @@ -187,8 +209,12 @@ contiki_init() /* Start process handler */ process_init(); + /* Start Contiki processes */ - procinit_init(); + + process_start(&etimer_process, NULL); + process_start(&sensors_process, NULL); + ctimer_init(); /* Print startup information */ printf(CONTIKI_VERSION_STRING " started. "); @@ -198,28 +224,28 @@ contiki_init() printf("Node id is not set.\n"); } - /* RIME CONFIGURATION */ + set_rime_addr(); { - int i; - rimeaddr_t rimeaddr; - - /* Init Rime */ - ctimer_init(); - rimeaddr.u8[0] = node_id & 0xff; - rimeaddr.u8[1] = node_id >> 8; - rimeaddr_set_node_addr(&rimeaddr); - printf("Rime address: "); - for(i = 0; i < sizeof(rimeaddr_node_addr.u8) - 1; i++) { - printf("%d.", rimeaddr_node_addr.u8[i]); - } - printf("%d\n", rimeaddr_node_addr.u8[i]); + uint8_t longaddr[8]; + uint16_t shortaddr; + + shortaddr = (rimeaddr_node_addr.u8[0] << 8) + + rimeaddr_node_addr.u8[1]; + memset(longaddr, 0, sizeof(longaddr)); + rimeaddr_copy((rimeaddr_t *)&longaddr, &rimeaddr_node_addr); + printf("MAC %02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x ", + longaddr[0], longaddr[1], longaddr[2], longaddr[3], + longaddr[4], longaddr[5], longaddr[6], longaddr[7]); } queuebuf_init(); /* Initialize communication stack */ netstack_init(); - printf("MAC %s RDC %s NETWORK %s\n", NETSTACK_MAC.name, NETSTACK_RDC.name, NETSTACK_NETWORK.name); + printf("%s/%s/%s, channel check rate %lu Hz\n", + NETSTACK_NETWORK.name, NETSTACK_MAC.name, NETSTACK_RDC.name, + CLOCK_SECOND / (NETSTACK_RDC.channel_check_interval() == 0 ? 1: + NETSTACK_RDC.channel_check_interval())); #if WITH_UIP /* IPv4 CONFIGURATION */ @@ -255,27 +281,26 @@ contiki_init() { int i; uint8_t addr[sizeof(uip_lladdr.addr)]; - for (i=0; i < sizeof(uip_lladdr.addr); i++) { - addr[i] = node_id & 0xff; + for(i = 0; i < sizeof(uip_lladdr.addr); i += 2) { + addr[i + 1] = node_id & 0xff; + addr[i + 0] = node_id >> 8; } + rimeaddr_copy(addr, &rimeaddr_node_addr); memcpy(&uip_lladdr.addr, addr, sizeof(uip_lladdr.addr)); + process_start(&tcpip_process, NULL); printf("Tentative link-local IPv6 address "); { - int i, a; - for(a = 0; a < UIP_DS6_ADDR_NB; a++) { - if (uip_ds6_if.addr_list[a].isused) { + uip_ds6_addr_t *lladdr; + int i; + lladdr = uip_ds6_get_link_local(-1); for(i = 0; i < 7; ++i) { - printf("%02x%02x:", - uip_ds6_if.addr_list[a].ipaddr.u8[i * 2], - uip_ds6_if.addr_list[a].ipaddr.u8[i * 2 + 1]); - } - printf("%02x%02x\n", - uip_ds6_if.addr_list[a].ipaddr.u8[14], - uip_ds6_if.addr_list[a].ipaddr.u8[15]); - } + printf("%02x%02x:", lladdr->ipaddr.u8[i * 2], + lladdr->ipaddr.u8[i * 2 + 1]); } + printf("%02x%02x\n", lladdr->ipaddr.u8[14], + lladdr->ipaddr.u8[15]); } if(1) { diff --git a/platform/cooja/sys/log.c b/platform/cooja/sys/log.c index 7f6a836e3..a5f11958d 100644 --- a/platform/cooja/sys/log.c +++ b/platform/cooja/sys/log.c @@ -101,12 +101,45 @@ doInterfaceActionsAfterTick(void) { } /*-----------------------------------------------------------------------------------*/ +static int log_putchar_with_slip; +void +log_set_putchar_with_slip(int with) +{ + log_putchar_with_slip = with; +} +/*-----------------------------------------------------------------------------------*/ #if IMPLEMENT_PRINTF int putchar(int c) { - simlog_char(c); - return c; +#define SLIP_END 0300 + static char debug_frame = 0; + + if(log_putchar_with_slip) { + simlog_char(SLIP_END); + + if(!debug_frame) { /* Start of debug output */ + simlog_char(SLIP_END); + simlog_char('\r'); /* Type debug line == '\r' */ + debug_frame = 1; + } + + simlog_char((char)c); + + /* + * Line buffered output, a newline marks the end of debug output and + * implicitly flushes debug output. + */ + if(c == '\n') { + simlog_char(SLIP_END); + debug_frame = 0; + } + + return c; + } else { + simlog_char(c); + return c; + } } /*-----------------------------------------------------------------------------------*/ int @@ -123,11 +156,16 @@ printf(const char *fmt, ...) int res; static char buf[MAX_LOG_LENGTH]; va_list ap; + int i; + va_start(ap, fmt); res = vsnprintf(buf, MAX_LOG_LENGTH, fmt, ap); va_end(ap); - simlog(buf); + // simlog(buf); + for(i = 0; i < res; i++) { + putchar(buf[i]); + } return res; } #endif /* IMPLEMENT_PRINTF */ From 4324d74f124b3a35f8f4633d1b485da116584932 Mon Sep 17 00:00:00 2001 From: Adam Dunkels Date: Mon, 10 Dec 2012 01:09:14 +0100 Subject: [PATCH 10/10] Check callback pointers to avoid calling a NULL pointer --- core/net/rime/mesh.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/core/net/rime/mesh.c b/core/net/rime/mesh.c index 0ceecb49b..39231cc3e 100644 --- a/core/net/rime/mesh.c +++ b/core/net/rime/mesh.c @@ -126,11 +126,15 @@ found_route(struct route_discovery_conn *rdc, const rimeaddr_t *dest) c->queued_data = NULL; rt = route_lookup(dest); - if (rt != NULL) { + if(rt != NULL) { multihop_resend(&c->multihop, &rt->nexthop); - c->cb->sent(c); + if(c->cb->sent != NULL) { + c->cb->sent(c); + } } else { - c->cb->timedout(c); + if(c->cb->timedout != NULL) { + c->cb->timedout(c); + } } } } @@ -191,7 +195,9 @@ mesh_send(struct mesh_conn *c, const rimeaddr_t *to) PRINTF("mesh_send: could not send\n"); return 0; } - c->cb->sent(c); + if(c->cb->sent != NULL) { + c->cb->sent(c); + } return 1; } /*---------------------------------------------------------------------------*/