From 3918987507ff28feaf36843807ccb5d3b71405d9 Mon Sep 17 00:00:00 2001 From: Gavin Mogensen Date: Tue, 5 Jan 2016 12:54:05 +1000 Subject: [PATCH] Copter: aux switches for relays 2,3 and 4 --- ArduCopter/defines.h | 5 ++++- ArduCopter/switches.cpp | 15 +++++++++++++-- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/ArduCopter/defines.h b/ArduCopter/defines.h index 11083a46c8..c9320fbdec 100644 --- a/ArduCopter/defines.h +++ b/ArduCopter/defines.h @@ -65,7 +65,10 @@ enum aux_sw_func { AUXSW_LOST_COPTER_SOUND = 30, // Play lost copter sound AUXSW_MOTOR_ESTOP = 31, // Emergency Stop Switch AUXSW_MOTOR_INTERLOCK = 32, // Motor On/Off switch - AUXSW_BRAKE = 33 // Brake flight mode + AUXSW_BRAKE = 33, // Brake flight mode + AUXSW_RELAY2 = 34, // Relay2 pin on/off (in Mission planner set CH8_OPT = 34) + AUXSW_RELAY3 = 35, // Relay3 pin on/off (in Mission planner set CH9_OPT = 35) + AUXSW_RELAY4 = 36 // Relay4 pin on/off (in Mission planner set CH10_OPT = 36) }; // Frame types diff --git a/ArduCopter/switches.cpp b/ArduCopter/switches.cpp index 152a756836..e7c1b0e985 100644 --- a/ArduCopter/switches.cpp +++ b/ArduCopter/switches.cpp @@ -235,7 +235,6 @@ void Copter::init_aux_switch_function(int8_t ch_option, uint8_t ch_flag) case AUXSW_MISSION_RESET: case AUXSW_ATTCON_FEEDFWD: case AUXSW_ATTCON_ACCEL_LIM: - case AUXSW_RELAY: case AUXSW_LANDING_GEAR: case AUXSW_MOTOR_ESTOP: case AUXSW_MOTOR_INTERLOCK: @@ -521,7 +520,19 @@ void Copter::do_aux_switch_function(int8_t ch_function, uint8_t ch_flag) ServoRelayEvents.do_set_relay(0, ch_flag == AUX_SWITCH_HIGH); break; - case AUXSW_LANDING_GEAR: + case AUXSW_RELAY2: + ServoRelayEvents.do_set_relay(1, ch_flag == AUX_SWITCH_HIGH); + break; + + case AUXSW_RELAY3: + ServoRelayEvents.do_set_relay(2, ch_flag == AUX_SWITCH_HIGH); + break; + + case AUXSW_RELAY4: + ServoRelayEvents.do_set_relay(3, ch_flag == AUX_SWITCH_HIGH); + break; + + case AUXSW_LANDING_GEAR: switch (ch_flag) { case AUX_SWITCH_LOW: landinggear.set_cmd_mode(LandingGear_Deploy);