220 likes | 326 Views
Jean Paul Berríos jeanpaul@elo.utfsm.cl. Comunicación entre Motes. NesC. Lenguaje de programación orientado a componentes. El usuario crea un componente ayundándose de otros ya creados. Componente. Configuración e Implementación ( miaplicacion.nc) Módulos (miaplicacionM.nc)
E N D
Jean Paul Berríos jeanpaul@elo.utfsm.cl Comunicación entre Motes
NesC Lenguaje de programación orientado a componentes. • El usuario crea un componente ayundándose de otros ya creados
Componente • Configuración e Implementación ( miaplicacion.nc) • Módulos (miaplicacionM.nc) • librerias (.h) • Lógicamente • 3 partes • Configuración • Implementación • Módulos
El componente La biblioteca de componentes de TinyOS incluye protocolos de red, servicios distribuidos, drivers de sensores y herramientas de adquisición de datos. "Un componente posee tres grandes secciones que son: Configuration, Implementation, Module. Estas tres secciones han de estar obligatoriamente presentes en cualquier componente aunque puedan estar vacías."
Tipos de Datos uint16_t , es un entero sin signo de 16 bit uint8_t , entero de 8 bit bool , booleano ( TRUE , FALSE ) result_t , es un boolean pero ( SUCCES , FAIL ) Tipos de C
Instalación TinyOS 1.1.10 (Windows) Borrar todas las versiones previas de Cygwin. Ir a http://www.tinyos.net/dist-1.1.0/tinyos/windows/ Descargar: tinyos-1.1.11-3is.exe 166M Ó tinyos-1.1.11-2bis.zip 165M Instalar *.exe, incluye Cygwin, NesC Java software.
Instalación TinyOS 1.1.10 (Windows) Java Communication API package Contiene soporte para los puertos paralelos y seriales de PC en windows Se necesita instalar la API antes que intentar ejecutar un programa Java en el PC para el intercambio de datos con un mote http://java.sun.com/products/javacomm/downloads/index.html Click en“Download Version 2.0 for Microsoft Windows and Solaris/x86” Descargar para plataforma Windows. Descomprimir en un directorio“commapi”. Ir a “commapi”, y abrir “Readme.html”.
JVM (Java Virtual Machine) Se pueden tener múltiples máquinas virtuales instaladas en un PC. Copiar el comm.jar a: java/j2sdk1.4.0/jre/lib/ext/ Cuando se instala un jdk: C:\Program Files\Java\jdk1.5.0_01 C:\Program Files\Java\jre1.5.0_01 Para ejecutar una aplicación se usará jre C:\Program Files\Java\jre1.5.0_01\bin\java http://www.tinyos.net/windows-1_1_0.html
Instalación (Wizard) TinyOS 1.1.9 en Windows http://www.tinyos.net/windows-1_1_0.html Llenar formulario Una manera fácil de instalar todo lo necesario para TinyOS 1.1.9 es descargando todos los archivos de http://tinyos.net/telosbel cual es un wizard que incluye todo lo necesario para el desarrolo con telosb. Autorun.inf 09-Dec-2004 15:02 1k Data1.cab 09-Dec-2004 15:32 161M Setup.skin 09-Dec-2004 15:32 67k TinyOS.msi 09-Dec-2004 15:32 1.3M setup.exe 09-Dec-2004 15:33 4.3M tinyos-1.1.9telosb-1.cygwin.noarch.rpm
Wizard TinyOS 1.1.10 (Windows) Incluye todos los paquetes descritos en esta ventana
Instalación TinyOS 1.1.10 (Ubuntu) Descargar desde el siguiente link: http://www.tinyos.net/dist-1.1.0/tinyos/linux/ Son paquetes .rpm (RedHat) Se debe utilizar alien para convertirlos en paquete debian Luego descargar nesc Se puede bajar vía CVS (el paquete rpm) actualizado
Instalación TinyOS 2.0 Ubuntu edgy Editar el archivo /etc/apt/sources.list con cualquier editor de texto ejm: nano /etc/apt/sources.list Agregar la siguiente dirección: deb http://tinyos.stanford.edu/tinyos/dists/ubuntu edgy main Guardar y salir (CTRL+O) y (CTRL X). Actualizar los repositorios: $ apt-get update Instalar los paquetes: $ apt-get install tinyos tinyos-avr tinyos-msp430 tinyos-tools nesc
Instalación TinyOS 2.0 Ubuntu edgy Agregar al final de gedit $HOME/.bashrc las siguientes lineas: TOSROOT=/opt/tinyos-2.x TOSDIR=$TOSROOT/tos CLASSPATH=$TOSROOT/support/sdk/java/tinyos.jar:. MAKERULES=$TOSROOT/support/make/Makerules PATH=/opt/msp430/bin:$PATH export TOSROOT TOSDIR CLASSPATH MAKERULES PATH # Java export JDKROOT=/usr/lib/jvm/java-1.5.0-sun export JAVAXROOT=$JDKROOT # Ubuntu 6.10 comes with gcc 4.1 which is currently broken with TOSSIM so we'll # use gcc/g++ 4.0 export CC=gcc-4.0 export CXX=g++-4.0
Script para fácil manejo entre versionesTinyOS 1.1 y TinyOS 2 http://5secondfuse.com/tinyos/install.html Agregar en archivo .bashrc # http://5secondfuse.com/tinyos/install.html if [ -f ~/.bash_tinyos ]; then . ~/.bash_tinyos fi Crear archivo .bash_tinyos en home del usuario Referencia: http://5secondfuse.com/tinyos/.bash_tinyos
Instalación TinyOS 2.0 Ubuntu edgy Links http://doutdex.wordpress.com/tag/tinyos/ http://jeanpaulberrios.wordpress.com/tinyos/ http://5secondfuse.com/tinyos/install.html
Xubuntos CD live XubunTOS Xubuntu 6.10 TinyOS 2.0.1 paquetes Debian + TinyOS 1.x CVS repositorio Referencia: http://toilers.mines.edu/Public/XubunTOS
Directorios TinyOS /apps – Aplicaciones /tos/interfaces – Interfaces que ofrecen los interfaces al menos para las componentes primitivos. /tos/system – Las componentes primitivos del TinyOs /tos/types – ficheros que contiene los tipos de datos ej: AM.h contiene la estructura de un mensaje TOSMsg )
Un ejemplo de la aplicación blink Compilar aplicación en XUBUNTOS cd /opt/tinyos-1.x/apps/blink make pc Ejecutar aplicación Tossim: cd /opt/tiny-1X/apps/Blink/build ./main –p 1 1 uso: ./main [-h|--help] [-r <static|simple>] [-p sec] num_nodes In the projects, we will use “–r simple” which is default “-p pause-seconds” num_nodes =1 Creación de documentación: cd /opt/tiny-1X/nest/apps/blink $make pc docs cd /opt/tiny-1X/nesc/index.html
TOSSIM simulación Compilo para PC : make pc /build/pc tendre el ejecutable Invocacion: ./ejecutable [parametros] node motas -nodbgout No debug por la stdout -gui Espera a TinyViz -b Arranca los motes en n segundos
IDE para programar NesC Emacs Eclipse plugin CATANA