From 7ed8e636896f1dcc060be182eacd0dc7bc2e7035 Mon Sep 17 00:00:00 2001 From: Alessio Morale Date: Mon, 29 Aug 2016 19:57:55 +0200 Subject: [PATCH] LP-385 - Fix Actuator support for CameraControl --- flight/modules/Actuator/actuator.c | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/flight/modules/Actuator/actuator.c b/flight/modules/Actuator/actuator.c index c716bf5c2..6ad511fdc 100644 --- a/flight/modules/Actuator/actuator.c +++ b/flight/modules/Actuator/actuator.c @@ -89,6 +89,7 @@ static xTaskHandle taskHandle; static FrameType_t frameType = FRAME_TYPE_MULTIROTOR; static SystemSettingsThrustControlOptions thrustType = SYSTEMSETTINGS_THRUSTCONTROL_THROTTLE; static bool camStabEnabled; +static bool camControlEnabled; static uint8_t pinsMode[MAX_MIX_ACTUATORS]; // used to inform the actuator thread that actuator update rate is changed @@ -165,8 +166,8 @@ int32_t ActuatorInitialize() HwSettingsOptionalModulesData optionalModules; HwSettingsInitialize(); HwSettingsOptionalModulesGet(&optionalModules); - camStabEnabled = (optionalModules.CameraStab == HWSETTINGS_OPTIONALMODULES_ENABLED); - + camStabEnabled = (optionalModules.CameraStab == HWSETTINGS_OPTIONALMODULES_ENABLED); + camControlEnabled = (optionalModules.CameraControl == HWSETTINGS_OPTIONALMODULES_ENABLED); // Primary output of this module ActuatorCommandInitialize(); @@ -471,9 +472,6 @@ static void actuatorTask(__attribute__((unused)) void *parameters) case MIXERSETTINGS_MIXER1TYPE_CAMERAYAW: status[ct] = cameraDesired.Yaw; break; - case MIXERSETTINGS_MIXER1TYPE_CAMERATRIGGER: - status[ct] = cameraDesired.Trigger; - break; default: break; } @@ -486,6 +484,14 @@ static void actuatorTask(__attribute__((unused)) void *parameters) command.Channel[ct] = 0; } } + + if (mixer_type == MIXERSETTINGS_MIXER1TYPE_CAMERATRIGGER) { + if (camControlEnabled) { + CameraDesiredTriggerGet(&status[ct]); + } else { + status[ct] = 0; + } + } } // If mixer type is motor we need to find which motor has the highest value and which motor has the lowest value.