From 1d28acd182129db38f290f78995323b5cec88edc Mon Sep 17 00:00:00 2001 From: Emile Castelnuovo Date: Fri, 4 Apr 2014 11:21:22 +0200 Subject: [PATCH] VRBRAIN: Added missing files. Added *.vbrain files to git ignore. --- .gitignore | 1 + mk/VRBRAIN/ROMFS/init.d/rc.APM | 148 +++++++++++++++++++++++++++++++ mk/VRBRAIN/ROMFS/init.d/rc.APMNS | 121 +++++++++++++++++++++++++ mk/VRBRAIN/ROMFS/init.d/rc.error | 14 +++ mk/VRBRAIN/ROMFS/init.d/rcS | 97 ++++++++++++++++++++ 5 files changed, 381 insertions(+) create mode 100644 mk/VRBRAIN/ROMFS/init.d/rc.APM create mode 100644 mk/VRBRAIN/ROMFS/init.d/rc.APMNS create mode 100644 mk/VRBRAIN/ROMFS/init.d/rc.error create mode 100644 mk/VRBRAIN/ROMFS/init.d/rcS diff --git a/.gitignore b/.gitignore index a9fe99662e..25f0ef15fd 100644 --- a/.gitignore +++ b/.gitignore @@ -11,6 +11,7 @@ *.pyc *.tlog *.tlog.raw +*.vbrain *.zip .*.swo .*.swp diff --git a/mk/VRBRAIN/ROMFS/init.d/rc.APM b/mk/VRBRAIN/ROMFS/init.d/rc.APM new file mode 100644 index 0000000000..d55d21b58f --- /dev/null +++ b/mk/VRBRAIN/ROMFS/init.d/rc.APM @@ -0,0 +1,148 @@ +#!nsh + +# APM startup script for NuttX on VRBRAIN + +# To disable APM startup add a /fs/microsd/APM/nostart file + +# check for an old file called APM, caused by +# a bug in an earlier firmware release +if [ -f /fs/microsd/APM ] +then + echo "[APM] APM file found - renaming" + mv /fs/microsd/APM /fs/microsd/APM.old +fi + +if [ -f /fs/microsd/APM/nostart ] +then + echo "[APM] APM/nostart found - skipping APM startup" + sh /etc/init.d/rc.error +fi + +# mount binfs so we can find the built-in apps +if [ -f /bin/reboot ] +then + echo "[APM] binfs already mounted" +else + echo "[APM] Mounting binfs" + if mount -t binfs /dev/null /bin + then + echo "[APM] binfs mounted OK" + else + sh /etc/init.d/rc.error + fi +fi + +if rm /fs/microsd/APM/boot.log +then + echo "[APM] Removed old boot.log" +fi +set logfile /fs/microsd/APM/BOOT.LOG + +if [ ! -f /bin/ArduPilot ] +then + echo "[APM] /bin/ArduPilot not found" + sh /etc/init.d/rc.error +fi + +if mkdir /fs/microsd/APM > /dev/null +then + echo "[APM] Created APM directory" +fi + +echo "[APM] Starting UORB" +if uorb start +then + echo "[APM] UORB started OK" +else + sh /etc/init.d/rc.error +fi + +echo "[APM] Starting ADC" +if adc start +then + echo "[APM] ADC started OK" +else + sh /etc/init.d/rc.error +fi + +echo "[APM] Starting APM sensors" +if ms5611 start +then + echo "[APM] MS5611 started OK" +else + echo "[APM] MS5611 start failed" + sh /etc/init.d/rc.error +fi + +if hmc5883 start +then + echo "[APM] HMC5883 started OK" +else + echo "[APM] HMC5883 start failed" + sh /etc/init.d/rc.error +fi + +if mpu6000 start +then + echo "[APM] MPU6000 started OK" +else + echo "[APM] MPU6000 start failed" + sh /etc/init.d/rc.error +fi + +echo "[APM] Starting MTD driver" +if mtd start /fs/mtd +then + echo "[APM] MTD driver started OK" +else + echo "[APM] MTD driver start failed" + sh /etc/init.d/rc.error +fi + +echo "[APM] MTD driver read test" +if mtd readtest /fs/mtd +then + echo "[APM] MTD driver readtest OK" +else + echo "[APM] MTD driver failed to read" + sh /etc/init.d/rc.error +fi + +echo "[APM] Starting VROUTPUT driver" +vroutput mode_pwm +#if vroutput mode_pwm +#then +# echo "[APM] VROUTPUT driver started OK" +#else +# echo "[APM] VROUTPUT driver start failed" +# sh /etc/init.d/rc.error +#fi + +echo "[APM] Starting VRINPUT driver" +vrinput start +#if vrinput start +#then +# echo "[APM] VRINPUT driver started OK" +#else +# echo "[APM] VRINPUT driver start failed" +# sh /etc/init.d/rc.error +#fi + +set sketch NONE +set deviceA /dev/ttyACM0 +set deviceC /dev/ttyS2 + +echo "[APM] Starting ArduPilot" $deviceA $deviceC +if ArduPilot -d $deviceA -d2 $deviceC start +then + echo "[APM] ArduPilot started OK" +else + echo "[APM] ArduPilot start failed" + sh /etc/init.d/rc.error +fi + +echo "[APM] Exiting from nsh shell" +exit + +echo "[APM] Script finished" + diff --git a/mk/VRBRAIN/ROMFS/init.d/rc.APMNS b/mk/VRBRAIN/ROMFS/init.d/rc.APMNS new file mode 100644 index 0000000000..c90a5ad8da --- /dev/null +++ b/mk/VRBRAIN/ROMFS/init.d/rc.APMNS @@ -0,0 +1,121 @@ +#!nsh + +# APM startup script for NuttX on VRBRAIN + +# mount binfs so we can find the built-in apps +if [ -f /bin/reboot ] +then + echo "[APMNS] binfs already mounted" +else + echo "[APMNS] Mounting binfs" + if mount -t binfs /dev/null /bin + then + echo "[APMNS] binfs mounted OK" + else + sh /etc/init.d/rc.error + fi +fi + +if [ ! -f /bin/ArduPilot ] +then + echo "[APMNS] /bin/ArduPilot not found" + sh /etc/init.d/rc.error +fi + +echo "[APMNS] Starting UORB" +if uorb start +then + echo "[APMNS] UORB started OK" +else + sh /etc/init.d/rc.error +fi + +echo "[APMNS] Starting ADC" +if adc start +then + echo "[APMNS] ADC started OK" +else + sh /etc/init.d/rc.error +fi + +echo "[APMNS] Starting APM sensors" +if ms5611 start +then + echo "[APMNS] MS5611 started OK" +else + echo "[APMNS] MS5611 start failed" + sh /etc/init.d/rc.error +fi + +if hmc5883 start +then + echo "[APMNS] HMC5883 started OK" +else + echo "[APMNS] HMC5883 start failed" + sh /etc/init.d/rc.error +fi + +if mpu6000 start +then + echo "[APMNS] MPU6000 started OK" +else + echo "[APMNS] MPU6000 start failed" + sh /etc/init.d/rc.error +fi + +echo "[APMNS] Starting MTD driver" +if mtd start /fs/mtd +then + echo "[APMNS] MTD driver started OK" +else + echo "[APMNS] MTD driver start failed" + sh /etc/init.d/rc.error +fi + +echo "[APMNS] MTD driver read test" +if mtd readtest /fs/mtd +then + echo "[APMNS] MTD driver readtest OK" +else + echo "[APMNS] MTD driver failed to read" + sh /etc/init.d/rc.error +fi + +echo "[APMNS] Starting VROUTPUT driver" +vroutput mode_pwm +#if vroutput mode_pwm +#then +# echo "[APMNS] VROUTPUT driver started OK" +#else +# echo "[APMNS] VROUTPUT driver start failed" +# sh /etc/init.d/rc.error +#fi + +echo "[APMNS] Starting VRINPUT driver" +vrinput start +#if vrinput start +#then +# echo "[APMNS] VRINPUT driver started OK" +#else +# echo "[APMNS] VRINPUT driver start failed" +# sh /etc/init.d/rc.error +#fi + +set sketch NONE +set deviceA /dev/ttyACM0 +set deviceC /dev/ttyS2 + +echo "[APMNS] Starting ArduPilot" $deviceA $deviceC +if ArduPilot -d $deviceA -d2 $deviceC start +then + echo "[APMNS] ArduPilot started OK" +else + echo "[APMNS] ArduPilot start failed" + sh /etc/init.d/rc.error +fi + +echo "[APMNS] Exiting from nsh shell" +exit + +echo "[APMNS] Script finished" + diff --git a/mk/VRBRAIN/ROMFS/init.d/rc.error b/mk/VRBRAIN/ROMFS/init.d/rc.error new file mode 100644 index 0000000000..d1c195daa4 --- /dev/null +++ b/mk/VRBRAIN/ROMFS/init.d/rc.error @@ -0,0 +1,14 @@ +echo "Error in startup" + +tone_alarm MNCC + + + + + + +nshterm /dev/ttyACM0 & +sleep 1 +nshterm /dev/ttyS0 & +sleep 1 +exit diff --git a/mk/VRBRAIN/ROMFS/init.d/rcS b/mk/VRBRAIN/ROMFS/init.d/rcS new file mode 100644 index 0000000000..303159a99d --- /dev/null +++ b/mk/VRBRAIN/ROMFS/init.d/rcS @@ -0,0 +1,97 @@ +#!nsh +# +# VRBRAIN startup script. +# +# This script is responsible for: +# +# - mounting the microSD card (if present) +# - running the user startup script from the microSD card (if present) +# - detecting the configuration of the system and picking a suitable +# startup script to continue with +# +# Note: DO NOT add configuration-specific commands to this script; +# add them to the per-configuration scripts instead. +# + +# +# Default to auto-start mode. An init script on the microSD card +# can change this to prevent automatic startup of the flight script. +# +set MODE autostart +set USB autoconnect + +# +# Try to mount the microSD card. +# +echo "[init] looking for microSD..." +if mount -t vfat /dev/mmcsd0 /fs/microsd +then + echo "[init] card mounted at /fs/microsd" + set HAVE_MICROSD 1 + # Start playing the startup tune + tone_alarm start +else + echo "[init] no microSD card found" + set HAVE_MICROSD 0 + # Play SOS + tone_alarm 2 +fi + +# +# Look for an init script on the microSD card. +# +# To prevent automatic startup in the current flight mode, +# the script should set MODE to some other value. +# +if [ -f /fs/microsd/etc/rc ] +then + echo "[init] reading /fs/microsd/etc/rc" + sh /fs/microsd/etc/rc +fi +# Also consider rc.txt files +if [ -f /fs/microsd/etc/rc.txt ] +then + echo "[init] reading /fs/microsd/etc/rc.txt" + sh /fs/microsd/etc/rc.txt +fi + +# +# Check for USB host +# +if [ $USB != autoconnect ] +then + echo "[init] not connecting USB" +else + if sercon + then + echo "[init] USB interface connected" + else + echo "[init] No USB connected" + fi +fi + +if [ $HAVE_MICROSD == 1 ] +then + if [ ! -f /fs/microsd/APM/nostart ] + then + if [ -f /etc/init.d/rc.APM ] + then + echo "[init] Running rc.APM" + # if APM startup is successful then nsh will exit + sh /etc/init.d/rc.APM + else + nshterm /dev/ttyACM0 & + fi + else + nshterm /dev/ttyACM0 & + fi +else + if [ -f /etc/init.d/rc.APMNS ] + then + echo "[init] Running rc.APM without SD" + # if APM startup is successful then nsh will exit + sh /etc/init.d/rc.APMNS + else + nshterm /dev/ttyACM0 & + fi +fi