Sie sind auf Seite 1von 19

Using COOJA for Contiki development

Fredrik sterlind
Swedish Institute of Computer Science

Using COOJA for Contiki development Fredrik sterlind <fros@sics.se>

Contiki OS Java Simulator

Simulator for the Contiki OS Java-based, but simulates Contiki applications

Support cross-level simulation Todays focus: using COOJA Questions/interruptions/feedback appreciated

Using COOJA for Contiki development Fredrik sterlind <fros@sics.se>

CoOJa
Cooya = Look at me! (Jamaican broken english)

Included with Contiki Active development for 1 years

Compared to Contiki Netsim:

Heavier

More powerful
(More installation problems)

Uses external programs such as make, gcc, grep...


Using COOJA for Contiki development Fredrik sterlind <fros@sics.se>

Cross-level simulation
Simulating motes at different abstraction levels.
Application (Java):

OS level

Effective Easier to implement

HW level

App. level

OS:

Deployable code

Emulated:

Enables low-level driver development


Using COOJA for Contiki development Fredrik sterlind <fros@sics.se>

Workshop COOJA objectives


Monday: Using COOJA

Tuesday: Extending COOJA

Using COOJA for Contiki development Fredrik sterlind <fros@sics.se>

TODO (before lunch)

Installation/Startup

Compiling code from within COOJA

Create simulations

Basic concepts in COOJA Using plugins to interact with motes

Adding project directories

Using COOJA for Contiki development Fredrik sterlind <fros@sics.se>

Getting started...

Need Java and Ant

contiki-2.x/tools/cooja> ant run

Start COOJA

Compilation problems

Use JNI tests to configure COOJA

Using COOJA for Contiki development Fredrik sterlind <fros@sics.se>

Design

Mote type represents the simulated software (and hardware) Mote

Mote type
GUI Simulation Mote type

Mote

Mote
Mote

Mote type

Mote

Using COOJA for Contiki development Fredrik sterlind <fros@sics.se>

Contiki applications

Scans for applications to simulate

A few test applications available in contiki-2.x/platform/cooja

Applications are compiled the usual way > make testcooja TARGET=cooja .....

Create a Contiki mote type

Using COOJA for Contiki development Fredrik sterlind <fros@sics.se>

Simulating what?

COOJA uses glue drivers to communicate with Contik Corresponding parts in Java and Contiki COOJA platform
Poll interfaces Switch node

Get memory
Handle Contiki event Set memory

Poll interfaces

10

Using COOJA for Contiki development Fredrik sterlind <fros@sics.se>

Plugins and project directories

Main way to interact with simulations and motes

Plugin argument is:

Simulator Simulation

Mote

COOJA needs more plugins ;)

11

Using COOJA for Contiki development Fredrik sterlind <fros@sics.se>

A few plugins
Mote Interface Viewer

Event Breaker

Log Listener

12

Using COOJA for Contiki development Fredrik sterlind <fros@sics.se>

Interacting with the motes

Test simulated applications Via plugins (and interfaces)

Click the button Reload simulation Break on (radio) events

13

Using COOJA for Contiki development Fredrik sterlind <fros@sics.se>

Project directories

Previously called user platforms

Adds functionality to COOJA

A directory with a configuration file

Import a simple project directory

14

Using COOJA for Contiki development Fredrik sterlind <fros@sics.se>

More on project directories

Can be used for much more than adding applications to simulate! Interfaces, plugins, applications, mote types, radio mediums...

Examples available in: contiki-2.x/tools/cooja/examples

Preview of emulated mote

15

Using COOJA for Contiki development Fredrik sterlind <fros@sics.se>

COOJAs Radio Mediums

Currently two different alternatives (+ one silent)

Unit Disk Graph Medium (UDGM) Multi-path Ray-tracer Medium (MRM)

Using MRM

16

Using COOJA for Contiki development Fredrik sterlind <fros@sics.se>

Quick-starting COOJA
The usual way is via: contiki-2.x/tools/cooja/> ant run

Shortcut that fits nicely into Contiki development: yourapp/> make myapp TARGET=cooja

Creates a typical simulation and starts a few plugins

Hello-World
Using COOJA for Contiki development Fredrik sterlind <fros@sics.se>

17

Questions?

18

Using COOJA for Contiki development Fredrik sterlind <fros@sics.se>

Cross-Level simulations

19

Using COOJA for Contiki development Fredrik sterlind <fros@sics.se>

Das könnte Ihnen auch gefallen