px4-firmware/ROMFS/px4fmu_test/init.d/rcS

129 lines
2.1 KiB
Bash

#!/bin/sh
#
# PX4FMU startup script for test hackery.
#
set +e
set R /
set unit_test_failure 0
set BOARD_RC ${R}etc/init.d/rc.board
if rgbled start -X
then
led_control on -c blue
fi
#
# Try to mount the microSD card.
#
mount -t vfat /dev/mmcsd0 /fs/microsd
if [ $? = 0 ]
then
echo "[i] card mounted at /fs/microsd"
# Start playing the startup tune
tune_control play -t 1 # tune 1 = STARTUP
else
echo "[i] no microSD card found"
tune_control play error
fi
#
# Start a minimal system
#
#
# Load parameters
#
set PARAM_FILE /fs/microsd/params
if mtd start
then
set PARAM_FILE /fs/mtd_params
fi
param select $PARAM_FILE
if param load
then
echo "[param] Loaded: $PARAM_FILE"
else
echo "[param] FAILED loading $PARAM_FILE"
fi
#
# run boards rc.board if available
#
if [ -f $BOARD_RC ]
then
echo "Board init: ${BOARD_RC}"
. $BOARD_RC
fi
if [ -f /etc/extras/px4_io-v2_default.bin ]
then
set io_file /etc/extras/px4_io-v2_default.bin
fi
if px4io checkcrc $io_file
then
echo "PX4IO CRC OK"
else
echo "PX4IO CRC failure"
tune_control play -t 16 # tune 16 = PROG_PX4IO
if px4io update $io_file
then
if px4io start
then
echo "PX4IO restart OK"
tune_control play-t 17 # tune 17 = PROG_PX4IO_OK
else
echo "PX4IO restart failed"
tune_control play -t 18 # tune 18 = PROG_PX4IO_ERR
set unit_test_failure 1
set unit_test_failure_list "${unit_test_failure_list} px4io_flash"
fi
else
echo "PX4IO update failed"
tune_control play -t 18 # tune 18 = PROG_PX4IO_ERR
set unit_test_failure 1
set unit_test_failure_list "${unit_test_failure_list} px4io_flash"
fi
fi
if px4io start
then
echo "PX4IO OK"
else
set unit_test_failure 1
set unit_test_failure_list "${unit_test_failure_list} px4io_start"
fi
#
# The presence of this file suggests we're running a mount stress test
#
if [ -f /fs/microsd/mount_test_cmds.txt ]
then
tests mount
fi
. ${R}etc/init.d/rc.sensors
ver all
#
# Run unit tests at board boot, reporting failure as needed.
# Add new unit tests using the same pattern as below.
#
if tests all
then
echo
echo "All Unit Tests PASSED"
led_control on -c green
else
echo
echo "Some Unit Tests FAILED"
led_control on -c red
fi
free