From a615f57c803c7499585d01e6efe414e44899e45d Mon Sep 17 00:00:00 2001 From: Julian Oes Date: Thu, 24 Mar 2016 22:31:47 +0100 Subject: [PATCH] rcS: Make the passthrough option a vehicle_type --- .../init.d/20000_snapdragon_rc_pwm | 2 +- ROMFS/px4fmu_common/init.d/rcS | 65 ++++++++++--------- 2 files changed, 36 insertions(+), 31 deletions(-) diff --git a/ROMFS/px4fmu_common/init.d/20000_snapdragon_rc_pwm b/ROMFS/px4fmu_common/init.d/20000_snapdragon_rc_pwm index 573ef358a9..ba1a380478 100644 --- a/ROMFS/px4fmu_common/init.d/20000_snapdragon_rc_pwm +++ b/ROMFS/px4fmu_common/init.d/20000_snapdragon_rc_pwm @@ -9,4 +9,4 @@ # This startup can be used on Pixhawk/Pixfalcon/Pixracer for the # passthrough of RC input and PWM output. -set PASSTHROUGH yes +set VEHICLE_TYPE passthrough diff --git a/ROMFS/px4fmu_common/init.d/rcS b/ROMFS/px4fmu_common/init.d/rcS index 62a457eed4..3d2a392541 100644 --- a/ROMFS/px4fmu_common/init.d/rcS +++ b/ROMFS/px4fmu_common/init.d/rcS @@ -133,7 +133,6 @@ then set GPS yes set GPS_FAKE no set FAILSAFE none - set PASSTHROUGH no # # Set AUTOCNF flag to use it in AUTOSTART scripts @@ -734,6 +733,40 @@ then param set MAV_TYPE 10 fi + # + # For snapdragon, we need a passthrough mode + # Do not run any mavlink instances since we need the serial port for + # communication with Snapdragon. + # + if [ $VEHICLE_TYPE == passthrough ] + then + mavlink stop-all + + # Stop multicopter attitude controller if it is running, the controls come + # from Snapdragon. + if mc_att_control stop + then + fi + + # Start snapdragon interface on serial port. + if ver hwcmp PX4FMU_V2 + then + # On Pixfalcon use the standard telemetry port (Telem 1). + snapdragon_rc_pwm start -d /dev/ttyS1 + px4io start + fi + + if ver hwcmp PX4FMU_V4 + then + # On Pixracer use Telem 2 port (TL2). + snapdragon_rc_pwm start -d /dev/ttyS2 + fmu mode_pwm4 + fi + + # Arm straightaway. + pwm arm + fi + unset MIXER unset MAV_TYPE unset OUTPUT_MODE @@ -808,41 +841,13 @@ then nshterm /dev/ttyACM0 & else # Don't start mavlink in passthrough mode because we currently can't seem to stop it. - if [ $PASSTHROUGH == no ] + if [ $VEHICLE_TYPE != passthrough ] then mavlink start -r 800000 -d /dev/ttyACM0 -m config -x fi fi -# For snapdragon, we need a passthrough mode -# Do not run any mavlink instances since we need the serial port for -# communication with Snapdragon. -if [ $PASSTHROUGH == yes ] -then - mavlink stop-all - - # Stop multicopter attitude controller if it is running, the controls come - # from Snapdragon. - if mc_att_control stop - then - fi - - # Start snapdragon interface on serial port. - if ver hwcmp PX4FMU_V2 - then - # On Pixfalcon use the standard telemetry port (Telem 1). - snapdragon_rc_pwm start -d /dev/ttyS1 - fi - - if ver hwcmp PX4FMU_V4 - then - # On Pixracer use Telem 2 port (TL2). - snapdragon_rc_pwm start -d /dev/ttyS2 - fi -fi - - if [ $EXIT_ON_END == yes ] then echo "Exit from nsh"