Move px4io firmware update logic block to rc.io.

This commit is contained in:
mcsauder
2018-08-02 12:19:23 +02:00
committed by Beat Küng
parent 7723860f37
commit 0928112a80
2 changed files with 64 additions and 60 deletions
+56 -1
View File
@@ -3,6 +3,60 @@
# 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.
@@ -12,5 +66,6 @@ then
px4io limit 400
else
echo "PX4IO start failed" >> $LOG_FILE
tune_control play -m ${TUNE_ERR}
# Error tune.
tune_control play -t 2
fi