From a6f93c30d9151d0d913868e74e48979cd89197c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beat=20K=C3=BCng?= Date: Fri, 3 Aug 2018 15:06:00 +0200 Subject: [PATCH] Revert "Move px4io firmware update logic block to rc.io." This reverts commit 0928112a80d816eb82bbb3d05db01d19fc14d472. --- ROMFS/px4fmu_common/init.d/rc.io | 57 +-------------------------- ROMFS/px4fmu_common/init.d/rcS | 67 ++++++++++++++++++++++++++++---- 2 files changed, 60 insertions(+), 64 deletions(-) diff --git a/ROMFS/px4fmu_common/init.d/rc.io b/ROMFS/px4fmu_common/init.d/rc.io index 9ab87e3f22..54948b697d 100644 --- a/ROMFS/px4fmu_common/init.d/rc.io +++ b/ROMFS/px4fmu_common/init.d/rc.io @@ -3,60 +3,6 @@ # PX4IO interface init script. # -# -# Check if PX4IO present and update firmware if needed. -# -if [ -f /etc/extras/px4io-v2.bin ] -then - set IO_FILE /etc/extras/px4io-v2.bin - - if px4io checkcrc ${IO_FILE} - then - set IO_PRESENT yes - else - tune_control play -m MLL32CP8MB - - if px4io start - then - # Try to safety px4 io so motor outputs dont go crazy. - if px4io safety_on - then - # success! no-op - else - # px4io did not respond to the safety command. - px4io stop - fi - fi - - if px4io forceupdate 14662 ${IO_FILE} - then - usleep 10000 - if px4io checkcrc ${IO_FILE} - then - echo "PX4IO CRC OK after updating" >> $LOG_FILE - tune_control play -m MLL8CDE - - set IO_PRESENT yes - else - echo "PX4IO update failed" >> $LOG_FILE - # Error tune. - tune_control play -t 2 - fi - else - echo "PX4IO update failed" >> $LOG_FILE - # Error tune. - tune_control play -t 2 - fi - fi -fi - -if [ $USE_IO == yes -a $IO_PRESENT == no ] -then - echo "PX4IO not found" >> $LOG_FILE - # Error tune. - tune_control play -t 2 -fi - if px4io start then # Allow PX4IO to recover from midair restarts. @@ -66,6 +12,5 @@ then px4io limit 400 else echo "PX4IO start failed" >> $LOG_FILE - # Error tune. - tune_control play -t 2 + tune_control play -m ${TUNE_ERR} fi diff --git a/ROMFS/px4fmu_common/init.d/rcS b/ROMFS/px4fmu_common/init.d/rcS index 398ac12eed..95e8778965 100644 --- a/ROMFS/px4fmu_common/init.d/rcS +++ b/ROMFS/px4fmu_common/init.d/rcS @@ -335,6 +335,53 @@ else param set SYS_AUTOCONFIG 0 fi + # + # Check if PX4IO present and update firmware if needed. + # + if [ -f /etc/extras/px4io-v2.bin ] + then + set IO_FILE /etc/extras/px4io-v2.bin + + if px4io checkcrc ${IO_FILE} + then + set IO_PRESENT yes + else + tune_control play -m MLL32CP8MB + + if px4io start + then + # Try to safety px4 io so motor outputs don't go crazy. + if px4io safety_on + then + # success! no-op + else + # px4io did not respond to the safety command. + px4io stop + fi + fi + + if px4io forceupdate 14662 ${IO_FILE} + then + usleep 10000 + if px4io checkcrc ${IO_FILE} + then + echo "PX4IO CRC OK after updating" >> $LOG_FILE + tune_control play -m MLL8CDE + + set IO_PRESENT yes + else + echo "PX4IO update failed" >> $LOG_FILE + # Error tune. + tune_control play -t 2 + fi + else + echo "PX4IO update failed" >> $LOG_FILE + # Error tune. + tune_control play -t 2 + fi + fi + fi + # # Set USE_IO flag. # @@ -343,6 +390,18 @@ else set USE_IO yes fi + if [ $USE_IO == yes -a $IO_PRESENT == no ] + then + echo "PX4IO not found" >> $LOG_FILE + # Error tune. + tune_control play -t 2 + fi + + if [ $IO_PRESENT == no -o $USE_IO == no ] + then + rc_input start + fi + # # Sensors System (start before Commander so Preflight checks are properly run). # Commander needs to be this early for in-air-restarts. @@ -445,14 +504,6 @@ else # sh /etc/init.d/rc.logging - # - # Start the rc_input driver. - # - if [ $USE_IO == no -o $IO_PRESENT == no ] - then - rc_input start - fi - # # Start vmount to control mounts such as gimbals, disabled by default. #