From 1a5fd9f30e081bc20e3ba14a21142fab19b36f6f Mon Sep 17 00:00:00 2001 From: James Cotton Date: Tue, 6 Sep 2011 23:16:34 -0500 Subject: [PATCH] Heli: Added an explicit collective channel. Also make the default channel number 0 since that is not invalid. --- flight/Modules/Actuator/actuator.c | 6 +++++- flight/Modules/ManualControl/manualcontrol.c | 6 ++++++ shared/uavobjectdefinition/manualcontrolcommand.xml | 5 +++-- shared/uavobjectdefinition/manualcontrolsettings.xml | 12 ++++++------ shared/uavobjectdefinition/mixersettings.xml | 2 +- 5 files changed, 21 insertions(+), 10 deletions(-) diff --git a/flight/Modules/Actuator/actuator.c b/flight/Modules/Actuator/actuator.c index 6b353d20f..2f5765016 100644 --- a/flight/Modules/Actuator/actuator.c +++ b/flight/Modules/Actuator/actuator.c @@ -42,7 +42,7 @@ #include "mixersettings.h" #include "mixerstatus.h" #include "cameradesired.h" - +#include "manualcontrolcommand.h" // Private constants #define MAX_QUEUE_SIZE 2 @@ -236,6 +236,10 @@ static void actuatorTask(void* parameters) case MIXERSETTINGS_CURVE2SOURCE_YAW: curve2 = MixerCurve(desired.Yaw,mixerSettings.ThrottleCurve2); break; + case MIXERSETTINGS_CURVE2SOURCE_COLLECTIVE: + ManualControlCommandCollectiveGet(&curve2); + curve2 = MixerCurve(curve2,mixerSettings.ThrottleCurve2); + break; case MIXERSETTINGS_CURVE2SOURCE_ACCESSORY0: case MIXERSETTINGS_CURVE2SOURCE_ACCESSORY1: case MIXERSETTINGS_CURVE2SOURCE_ACCESSORY2: diff --git a/flight/Modules/ManualControl/manualcontrol.c b/flight/Modules/ManualControl/manualcontrol.c index 95b519037..bfbc626f6 100644 --- a/flight/Modules/ManualControl/manualcontrol.c +++ b/flight/Modules/ManualControl/manualcontrol.c @@ -278,6 +278,7 @@ static void manualControlTask(void *parameters) cmd.Roll = 0; cmd.Yaw = 0; cmd.Pitch = 0; + cmd.Collective = 0; //cmd.FlightMode = MANUALCONTROLCOMMAND_FLIGHTMODE_AUTO; // don't do until AUTO implemented and functioning // Important: Throttle < 0 will reset Stabilization coefficients among other things. Either change this, // or leave throttle at IDLE speed or above when going into AUTO-failsafe. @@ -316,6 +317,11 @@ static void manualControlTask(void *parameters) cmd.Throttle = scaledChannel[MANUALCONTROLSETTINGS_CHANNELGROUPS_THROTTLE]; flightMode = scaledChannel[MANUALCONTROLSETTINGS_CHANNELGROUPS_FLIGHTMODE]; + if(cmd.Channel[MANUALCONTROLSETTINGS_CHANNELGROUPS_COLLECTIVE] != PIOS_RCVR_INVALID && + cmd.Channel[MANUALCONTROLSETTINGS_CHANNELGROUPS_COLLECTIVE] != PIOS_RCVR_NODRIVER && + cmd.Channel[MANUALCONTROLSETTINGS_CHANNELGROUPS_COLLECTIVE] != PIOS_RCVR_TIMEOUT) + cmd.Collective = scaledChannel[MANUALCONTROLSETTINGS_CHANNELGROUPS_COLLECTIVE]; + AccessoryDesiredData accessory; // Set Accessory 0 if (settings.ChannelGroups[MANUALCONTROLSETTINGS_CHANNELGROUPS_ACCESSORY0] != diff --git a/shared/uavobjectdefinition/manualcontrolcommand.xml b/shared/uavobjectdefinition/manualcontrolcommand.xml index ef74c2576..626115233 100644 --- a/shared/uavobjectdefinition/manualcontrolcommand.xml +++ b/shared/uavobjectdefinition/manualcontrolcommand.xml @@ -2,10 +2,11 @@ The output from the @ref ManualControlModule which descodes the receiver inputs. Overriden by GCS for fly-by-wire control. - + + - + diff --git a/shared/uavobjectdefinition/manualcontrolsettings.xml b/shared/uavobjectdefinition/manualcontrolsettings.xml index 025ff642d..ae7c9b24c 100644 --- a/shared/uavobjectdefinition/manualcontrolsettings.xml +++ b/shared/uavobjectdefinition/manualcontrolsettings.xml @@ -2,16 +2,16 @@ Settings to indicate how to decode receiver input by @ref ManualControlModule. - + + elementnames="Throttle,Roll,Pitch,Yaw,FlightMode,Collective,Accessory0,Accessory1,Accessory2"/> + elementnames="Throttle,Roll,Pitch,Yaw,FlightMode,Collective,Accessory0,Accessory1,Accessory2"/> + elementnames="Throttle,Roll,Pitch,Yaw,FlightMode,Collective,Accessory0,Accessory1,Accessory2"/> diff --git a/shared/uavobjectdefinition/mixersettings.xml b/shared/uavobjectdefinition/mixersettings.xml index e070814c5..64aa7604f 100644 --- a/shared/uavobjectdefinition/mixersettings.xml +++ b/shared/uavobjectdefinition/mixersettings.xml @@ -6,7 +6,7 @@ - +