Algunos parámetros que hay que configurar (modificando las librerías) para que las aplicaciones escritas en tinyOS 2 funcionen bien y/o se adapten a tus necesidades específicas.

Frecuencia de transmisión/Recepción de la radio

Los dispositivos que utilizan el chip de radio cc1000 de Chipcon pueden no funcionar bien en tinyOS 2 debido a que en las motas, estos chips deben estar configurados para funcionar en el rango de 915 a 998 MHz y por defecto no es así. La forma de solucionar ésto es editando el archivo CC1000Const.h. Suponiendo que tienes el árbol de tinyOS instalado en /opt/tinyos-2.x/, deberás modificar el archivo /opt/tinyos-2.x/tos/chips/cc1000/CC1000Const.h y hacer que la macro que define la constante CC1K_DEF_PRESET quede de la siguiente forma:
#ifndef CC1K_DEF_PRESET
#define CC1K_DEF_PRESET	(CC1K_915_998_MHZ)
#endif
De éste modo, en los futuros programas, la radio se configurará para funcionar a la frecuencia correcta.

Longitud del campo de datos en la estructura message_t

La estructura message_t proporciona una abstracción para enviar y recibir mensajes a través de la radio o del puerto serie. El campo de datos de ésta estructura, tiene una longitud máxima prefijada de 28 Bytes, que en muchos casos puede ser mas que suficiente, pero en otras ocasiones podemos quedarnos cortos. Para solucionar ésto, debemos pasar a nesC el flag DTOSH_DATA_LENGTH para indicar la longitud máxima que queremos que tenga dicho campo de datos. La forma de hacer ésto es editando el fichero Makefile de tu proyecto añadiendo lo siguiente:
NESC_FLAGS ?= -DTOSH_DATA_LENGTH=250

COMPONENT=sampleApp
include $(MAKERULES)
No suele ser recomendable definir una longitud mayor que esa, ya que puede haber problemas de compilación.

Instalación de librerías propias

Si tenemos pensado escribir nuestros propios módulos e interfaces, como se explica en una receta publicada también en éste portal, podemos guardarlos todos bajo un mismo directorio (por ejemplo ~/tinyOS_libs/) y a continuación hacer lo siguiente para que el compilador sepa encontrar dicha librería: Editamos el archivo Makefile de tu proyecto para hacer que incluya el directorio de tu librería:
NESC_FLAGS ?= -I ~/tinyOS/libs/

COMPONENT=sampleApp
include $(MAKERULES)
Con esto, cuando compiles, se buscarán las librerías también en ese directorio.


blog comments powered by Disqus