From 20484400531538d59da0e3113c02ae58a27dd2fd Mon Sep 17 00:00:00 2001 From: Alessio Morale Date: Fri, 16 May 2014 23:32:11 +0200 Subject: [PATCH] OP-1350 fix a review defect(a set intead of TakeOffLocationStatusGetget). Check if status is valid beside locationSet --- .../ManualControl/takeofflocationhandler.c | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/flight/modules/ManualControl/takeofflocationhandler.c b/flight/modules/ManualControl/takeofflocationhandler.c index a00785b30..42a10777d 100644 --- a/flight/modules/ManualControl/takeofflocationhandler.c +++ b/flight/modules/ManualControl/takeofflocationhandler.c @@ -62,6 +62,7 @@ void takeOffLocationHandlerInit() void takeOffLocationHandler() { uint8_t armed; + uint8_t status; FlightStatusArmedGet(&armed); @@ -70,14 +71,15 @@ void takeOffLocationHandler() return; } + TakeOffLocationStatusGet(&status); + switch (armed) { case FLIGHTSTATUS_ARMED_ARMING: case FLIGHTSTATUS_ARMED_ARMED: - if (!locationSet) { + if (!locationSet || status != TAKEOFFLOCATION_STATUS_VALID) { uint8_t mode; - uint8_t status; - TakeOffLocationStatusSet(&status); TakeOffLocationModeGet(&mode); + if ((mode != TAKEOFFLOCATION_MODE_PRESET) || (status == TAKEOFFLOCATION_STATUS_INVALID)) { SetTakeOffLocation(); } else { @@ -93,8 +95,8 @@ void takeOffLocationHandler() TakeOffLocationModeGet(&mode); if (mode == TAKEOFFLOCATION_MODE_ARMINGLOCATION) { locationSet = false; - uint8_t newStatus = TAKEOFFLOCATION_STATUS_INVALID; - TakeOffLocationStatusSet(&newStatus); + status = TAKEOFFLOCATION_STATUS_INVALID; + TakeOffLocationStatusSet(&status); } } break; @@ -113,9 +115,10 @@ void SetTakeOffLocation() PositionStateData positionState; PositionStateGet(&positionState); - takeOffLocation.North = positionState.North; - takeOffLocation.East = positionState.East; - takeOffLocation.Down = positionState.Down; + takeOffLocation.North = positionState.North; + takeOffLocation.East = positionState.East; + takeOffLocation.Down = positionState.Down; + takeOffLocation.Status = TAKEOFFLOCATION_STATUS_VALID; TakeOffLocationSet(&takeOffLocation); locationSet = true;