px4io:Add 'supported' command and uses it in rcS

This commit is contained in:
David Sidrane 2023-11-15 09:53:40 -08:00 committed by David Sidrane
parent 9bed8f48c7
commit 8f02184669
2 changed files with 27 additions and 21 deletions

View File

@ -274,37 +274,39 @@ else
. $FCONFIG
fi
# Check if PX4IO present and update firmware if needed.
if [ -f $IOFW ]
if px4io supported
then
if ! px4io checkcrc ${IOFW}
# Check if PX4IO present and update firmware if needed.
if [ -f $IOFW ]
then
# tune Program PX4IO
tune_control play -t 16 # tune 16 = PROG_PX4IO
if px4io update ${IOFW}
if ! px4io checkcrc ${IOFW}
then
usleep 10000
tune_control stop
if px4io checkcrc ${IOFW}
# tune Program PX4IO
tune_control play -t 16 # tune 16 = PROG_PX4IO
if px4io update ${IOFW}
then
tune_control play -t 17 # tune 17 = PROG_PX4IO_OK
usleep 10000
tune_control stop
if px4io checkcrc ${IOFW}
then
tune_control play -t 17 # tune 17 = PROG_PX4IO_OK
else
tune_control play -t 18 # tune 18 = PROG_PX4IO_ERR
fi
else
tune_control play -t 18 # tune 18 = PROG_PX4IO_ERR
tune_control stop
fi
else
tune_control stop
fi
if ! px4io start
then
echo "PX4IO start failed"
set STARTUP_TUNE 2 # tune 2 = ERROR_TUNE
fi
fi
if ! px4io start
then
echo "PX4IO start failed"
set STARTUP_TUNE 2 # tune 2 = ERROR_TUNE
fi
fi
#
# RC update (map raw RC input to calibrate manual control)
# start before commander

View File

@ -1556,6 +1556,10 @@ int PX4IO::custom_command(int argc, char *argv[])
{
const char *verb = argv[0];
if (!strcmp(verb, "supported")) {
return 0;
}
if (!strcmp(verb, "checkcrc")) {
if (is_running()) {
PX4_ERR("io must be stopped");