aboutsummaryrefslogtreecommitdiff
path: root/ROMFS/px4fmu_test/init.d/rcS
blob: 4b9a9b68a052e8c8f11488f54eb651df38e26661 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
#!nsh
#
# PX4FMU startup script for test hackery.
#
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.
#
echo "[i] looking for microSD..."
if mount -t vfat /dev/mmcsd0 /fs/microsd
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
#

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"
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
		usleep 500000
		if px4io start
		then
			echo "PX4IO restart OK"
			tone_alarm MSPAA
		else
			echo "PX4IO restart failed"
			tone_alarm MNGGG
			sleep 5
			reboot
		fi
	else
		echo "PX4IO update failed"
		tone_alarm MNGGG
	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.
#

set unit_test_failure 0

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

if hmc5883 -I start
then
	# This is an FMUv3
	echo "FMUv3"
	ms5611 start
	mpu6000 -X start
	mpu6000 start
	lsm303d -X start
	l3gd20 -X start
	echo "EVALUATION ONLY SENSORS (not used in production)"
	ms5611 -X start
else
	# This is an FMUv1 or FMUv2
	echo "FMUv2 (or FMUv3 where 'hmc5883 -I start' failed)"
	ms5611 start
	mpu6000 start
	lsm303d start
	l3gd20 start
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