#!/bin/bash
-if [ $# -ne 2 ]; then
- echo "Usage: $0 <port> <platform>"
- echo "<port> For example, /dev/ttyUSB0"
- echo "<platform> \"micaz\", \"telosb\""
+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 [ $2 != 'micaz' -a $2 != 'telosb' ]; then
- echo "\"$2\" is not a supported platform"
+if [[ $# -ne 3 ]]; then
+ echo "Usage: $0 <prog_source> <comm_source> <platform>"
+ echo " <prog_source> bsl,PORT | mib510,PORT | eprb,HOST"
+ echo " <comm_source> serial@PORT:SPEED | network@HOST:PORT"
+ echo " <platform> micaz | telosb | iris | epic"
exit 2
fi
-PORT=$1
-PLATFORM=$2
+PPORT=$1
+CPORT=$2
+PLATFORM=$3
-make clean
-
-echo ==================== Compile and load Blink ====================
-if [ $PLATFORM == 'micaz' ]
+if [ ${PLATFORM} != 'micaz' -a \
+ ${PLATFORM} != 'telosb' -a \
+ ${PLATFORM} != 'iris' -a \
+ ${PLATFORM} != 'epic' ]
then
- CFLAGS=-DDELUGE_BASESTATION make $PLATFORM install mib510,$PORT
-elif [ $PLATFORM == 'telosb' ]
+ echo "\"${PLATFORM}\" is not a supported platform"
+ exit 2
+fi
+
+if ! [ -a ${TOSDIR}/lib/tosboot/build/${PLATFORM}/main.ihex ]
then
- CFLAGS=-DDELUGE_BASESTATION make $PLATFORM install bsl,$PORT
+ echo ========================== Compile tosboot for ${PLATFORM} ===========================
+ ( cd $TOSDIR/lib/tosboot ; make ${PLATFORM} )
fi
-echo ==================== Compile a new Blink ====================
-CFLAGS=-DBLINK_REVERSE\ -DDELUGE_BASESTATION make $PLATFORM
+make clean
+
+echo ============================ Compile and load Blink ============================
+CFLAGS=-DDELUGE_BASESTATION make ${PLATFORM} install ${PPORT}
+
+
+echo ' +-------------------------------------------------------+'
+echo ' | |'
+echo ' | At this point the first led (red) 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 image ===============================
+${TOS_DELUGE} ${CPORT} -i 1 build/${PLATFORM}/tos_image.xml
-echo ==================== Upload the image ====================
-../../../../tools/tinyos/misc/tos-deluge $PORT $PLATFORM -i 0 build/$PLATFORM/tos_image.xml
+echo ' +----------------------------------------------------------------+'
+echo ' | |'
+echo ' | In the next step the following things will take place: |'
+echo ' | - the mote will be rebooted |'
+echo ' | - all the leds will blink for some time as the |'
+echo ' | reprogramming by tosboot takes place. |'
+echo ' | - a fading of the leds will indicate the exiting from tosboot. |'
+echo ' | - the mote should start blinking the 3rd led (blue/yellow). |'
+echo ' | |'
+echo ' | Press ENTER to continue... |'
+echo ' | |'
+echo ' +----------------------------------------------------------------+'
+read
-echo ==================== Reboot ====================
-../../../../tools/tinyos/misc/tos-deluge $PORT $PLATFORM -r 0
+echo =========================== Reboot the base station ============================
+${TOS_DELUGE} ${CPORT} -r 1