430 likes | 3.23k Views
Fredrik Österlind Swedish Institute of Computer Science. Using COOJA for Contiki development. Co ntiki O S Ja va Simulator. Simulator for the Contiki OS Java-based, but simulates Contiki applications Support cross-level simulation Today’s focus: using COOJA
E N D
Fredrik Österlind Swedish Institute of Computer Science Using COOJA for Contiki development
Contiki OS Java Simulator • Simulator for the Contiki OS • Java-based, but simulates Contiki applications • Support cross-level simulation • Today’s focus: using COOJA • Questions/interruptions/feedback appreciated
”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...
OS level HW level App. level Cross-level simulation • Simulating motes at different abstraction levels. • Application (Java): • Effective • Easier to implement • OS: • Deployable code • Emulated: • Enables low-level driver development
Workshop COOJA objectives • Monday: • Using COOJA • Tuesday: • Extending COOJA
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
Getting started... • Need Java and Ant • contiki-2.x/tools/cooja> ant run • Start COOJA • Compilation problems • Use JNI tests to configure COOJA
Design • Mote type represents the simulated software(and hardware) Mote Mote Mote type GUI Mote Mote type Simulation Mote Mote type Mote
Contiki applications • Scans for applications to simulate • A few test applications available incontiki-2.x/platform/cooja • Applications are compiled the usual way> make testcooja TARGET=cooja ..... • Create a Contiki mote type
Pollinterfaces Switchnode Getmemory Pollinterfaces HandleContiki event Setmemory Simulating what? • COOJA uses glue drivers to communicate with Contik • Corresponding parts in Java and Contiki COOJA platform
Plugins and project directories • Main way to interact with simulations and motes • Plugin argument is: • Simulator • Simulation • Mote • COOJA needs more plugins ;)
A few plugins Mote Interface Viewer Event Breaker Log Listener
Interacting with the motes • Test simulated applications • Via plugins (and interfaces) • Click the button • Reload simulation • Break on (radio) events
Project directories • Previously called ’user platforms’ • Adds functionality to COOJA • A directory with a configuration file • Import a simple project directory
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
COOJA’s Radio Mediums • Currently two different alternatives (+ one silent) • Unit Disk Graph Medium (UDGM) • Multi-path Ray-tracer Medium (MRM) • Using MRM
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