#!/bin/bash TOS_DELUGE=`type -p tos-deluge` if [[ ! -x ${TOS_DELUGE} ]] ; then TOS_DELUGE=../../../../tools/tinyos/misc/tos-deluge fi if [ $# -ne 2 ]; then echo "Usage: $0 " echo " micaz or telosb" echo " how many motes will be used in the test" exit 2 fi PLATFORM=$1 NO_MOTES=$2 if [ ${PLATFORM} != 'micaz' -a ${PLATFORM} != 'telosb' ]; then echo "\"${PLAFTORM}\" is not a supported platform" exit 2 fi if ! [ -a ${TOSDIR}/lib/tosboot/build/${PLATFORM}/main.ihex ] then echo ========================== Compile tosboot for ${PLATFORM} =========================== ( cd $TOSDIR/lib/tosboot ; make ${PLATFORM} ) fi echo ================================ Compile Blink ================================= make clean CFLAGS=-DDELUGE_BASESTATION make ${PLATFORM} ID=0 function burn_one() { ID=`expr $ID + 1` echo -n ">>> Please plug mote $ID and type the port to continue: " read PORT if [ ${PLATFORM} == 'micaz' ] then CFLAGS=-DDELUGE_BASESTATION make ${PLATFORM} reinstall,$ID mib510,${PORT} elif [ ${PLATFORM} == 'telosb' ] then CFLAGS=-DDELUGE_BASESTATION make ${PLATFORM} reinstall,$ID bsl,${PORT} fi } while [[ ${NO_MOTES} > 0 ]] do burn_one NO_MOTES=`expr ${NO_MOTES} - 1` done echo ' +------------------------------------------------------------------------+' echo ' | |' echo ' | At this point the first led (red) of all the motes should be blinking. |' echo ' | |' echo ' | Press ENTER to continue... |' echo ' | |' echo ' +------------------------------------------------------------------------+' read echo ============================= Compile a new Blink ============================== CFLAGS=-DBLINK_REVERSE\ -DDELUGE_BASESTATION make ${PLATFORM} echo ========= Upload the new image to the external flash of the last mote ========== ${TOS_DELUGE} ${PORT} ${PLATFORM} -i 1 build/${PLATFORM}/tos_image.xml echo ' +-----------------------------------------------------+' echo ' | |' echo ' | In the next step the dissemination will be started. |' echo ' | When a node receives a page, the second led (green) |' echo ' | will blink. |' echo ' | |' echo ' | Press ENTER to continue... |' echo ' | |' echo ' +-----------------------------------------------------+' read echo ============================= Start dissemination ============================== ${TOS_DELUGE} ${PORT} ${PLATFORM} -dr 1 echo ' +------------------------------------------------------------+' echo ' | |' echo ' | The dissemination is completed when the second and third |' echo ' | led from all the motes except the last one stops blinking. |' echo ' | |' echo ' | After a mote gets the whole image he will reboot and |' echo ' | reprogram itself. If the new image contains Deluge he will |' echo ' | continue participating in dissemination. |' echo ' | |' echo ' | In the next step the motes will be rebooted to allow the |' echo ' | reprogramming to take place. |' echo ' | |' echo ' +------------------------------------------------------------+'