forked from Archive/PX4-Autopilot
220 lines
3.1 KiB
Plaintext
220 lines
3.1 KiB
Plaintext
#!nsh
|
|
#
|
|
# PX4FMU startup script for test hackery.
|
|
#
|
|
set unit_test_failure 0
|
|
|
|
uorb start
|
|
|
|
if sercon
|
|
then
|
|
echo "[i] USB interface connected"
|
|
|
|
# Try to get an USB console
|
|
nshterm /dev/ttyACM0 &
|
|
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
|
|
tone_alarm start
|
|
else
|
|
echo "[i] no microSD card found"
|
|
# Play SOS
|
|
tone_alarm 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 [ -f /etc/extras/px4io-v2_default.bin ]
|
|
then
|
|
set io_file /etc/extras/px4io-v2_default.bin
|
|
else
|
|
set io_file /etc/extras/px4io-v1_default.bin
|
|
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
|
|
|
|
if px4io checkcrc $io_file
|
|
then
|
|
echo "PX4IO CRC OK"
|
|
else
|
|
echo "PX4IO CRC failure"
|
|
tone_alarm MBABGP
|
|
if px4io forceupdate 14662 $io_file
|
|
then
|
|
if px4io start
|
|
then
|
|
echo "PX4IO restart OK"
|
|
tone_alarm MSPAA
|
|
else
|
|
echo "PX4IO restart failed"
|
|
tone_alarm MNGGG
|
|
set unit_test_failure 1
|
|
set unit_test_failure_list "${unit_test_failure_list} px4io_flash"
|
|
fi
|
|
else
|
|
echo "PX4IO update failed"
|
|
tone_alarm MNGGG
|
|
set unit_test_failure 1
|
|
set unit_test_failure_list "${unit_test_failure_list} px4io_flash"
|
|
fi
|
|
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
|
|
|
|
#
|
|
# Run unit tests at board boot, reporting failure as needed.
|
|
# Add new unit tests using the same pattern as below.
|
|
#
|
|
|
|
if mavlink_tests
|
|
then
|
|
else
|
|
set unit_test_failure 1
|
|
set unit_test_failure_list "${unit_test_failure_list} mavlink_tests"
|
|
fi
|
|
|
|
if commander_tests
|
|
then
|
|
else
|
|
set unit_test_failure 1
|
|
set unit_test_failure_list "${unit_test_failure_list} commander_tests"
|
|
fi
|
|
|
|
if uorb test
|
|
then
|
|
else
|
|
set unit_test_failure 1
|
|
set unit_test_failure_list "${unit_test_failure_list} uorb_tests"
|
|
fi
|
|
|
|
# Start all sensors on all boards
|
|
ms5611 start
|
|
adc start
|
|
|
|
if mpu6000 -X start
|
|
then
|
|
fi
|
|
|
|
if mpu6000 start
|
|
then
|
|
fi
|
|
|
|
if l3gd20 -X start
|
|
then
|
|
fi
|
|
|
|
if l3gd20 start
|
|
then
|
|
fi
|
|
|
|
# MAG selection
|
|
if param compare SENS_EXT_MAG 2
|
|
then
|
|
if hmc5883 -I start
|
|
then
|
|
fi
|
|
else
|
|
# Use only external as primary
|
|
if param compare SENS_EXT_MAG 1
|
|
then
|
|
if hmc5883 -X start
|
|
then
|
|
fi
|
|
else
|
|
# auto-detect the primary, prefer external
|
|
if hmc5883 start
|
|
then
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
if ver hwcmp PX4FMU_V2
|
|
then
|
|
if lsm303d -X start
|
|
then
|
|
fi
|
|
|
|
if lsm303d start
|
|
then
|
|
fi
|
|
|
|
if ms5611 -X start
|
|
then
|
|
fi
|
|
fi
|
|
|
|
if meas_airspeed start
|
|
then
|
|
else
|
|
if ets_airspeed start
|
|
then
|
|
else
|
|
if ets_airspeed start -b 1
|
|
then
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
if sensors start
|
|
then
|
|
fi
|
|
|
|
# Check for flow sensor
|
|
if px4flow start
|
|
then
|
|
fi
|
|
|
|
if ll40ls start
|
|
then
|
|
fi
|
|
|
|
if tests all
|
|
then
|
|
else
|
|
set unit_test_failure 1
|
|
set unit_test_failure_list "${unit_test_failure_list} system_tests"
|
|
fi
|
|
|
|
if [ $unit_test_failure == 0 ]
|
|
then
|
|
echo
|
|
echo "All Unit Tests PASSED"
|
|
else
|
|
echo
|
|
echo "Some Unit Tests FAILED:${unit_test_failure_list}"
|
|
fi
|
|
|
|
ver all
|