#!/bin/bash TOS_DELUGE=`type -p tos-deluge` if [[ ! -x ${TOS_DELUGE} ]] ; then TOS_DELUGE=../../../../tools/tinyos/misc/tos-deluge fi $TOS_DELUGE > /dev/null if [[ $? != 0 ]] then echo "Unable to locate tos-deluge." exit 2 fi if [ $# -ne 2 ]; then echo "Usage: $0 " echo " micaz, telosb, iris or mulle" echo " how many motes will be used in the test" exit 2 fi PLATFORM=$1 NO_MOTES=$2 if [ ${PLATFORM} != 'micaz' -a \ ${PLATFORM} != 'telosb' -a \ ${PLATFORM} != 'iris' \ ${PLATFORM} != 'iris' -a \ ${PLATFORM} != 'mulle' -a \ ${PLATFORM} != 'epic' ] 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 ID=0 function burn_one() { ID=`expr $ID + 1` echo -n ">>> Please plug mote $ID and type the programming sorce (bsl,PORT | mib510,PORT | eprb,HOST): " read PORT CFLAGS=$1 make ${PLATFORM} install,$ID ${PORT} } while [[ ${NO_MOTES} > 1 ]] do burn_one -DDELUGE_LIGHT_BASESTATION NO_MOTES=`expr ${NO_MOTES} - 1` done echo ">>> Note: this last mote will be the basestation! <<<" burn_one -DDELUGE_BASESTATION echo -n ">>> Please plug mote $ID and type the communication sorce (serial@PORT:SPEED | network@HOST:PORT) to continue: " read CPORT 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_LIGHT_BASESTATION make ${PLATFORM} echo ========= Upload the new image to the external flash of the last mote ========== ${TOS_DELUGE} ${CPORT} -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} ${CPORT} -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 all the motes except the basestation will |' echo ' | be rebooted to allow the reprogramming to take place. |' echo ' | |' echo ' | After reboot the motes should start blinking the 3rd led |' echo ' | (blue/yellow). |' echo ' | |' echo ' +------------------------------------------------------------+'