diff --git a/conf/flight_plans/mission_fw.xml b/conf/flight_plans/mission_fw.xml new file mode 100644 index 0000000000..daef0aaf3d --- /dev/null +++ b/conf/flight_plans/mission_fw.xml @@ -0,0 +1,63 @@ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sw/airborne/modules/mission/mission.c b/sw/airborne/modules/mission/mission.c index dc20909f2f..d3794bbca9 100644 --- a/sw/airborne/modules/mission/mission.c +++ b/sw/airborne/modules/mission/mission.c @@ -76,13 +76,11 @@ bool_t mission_insert(enum MissionInsertMode insert, struct _mission_element * e } -bool_t mission_get(struct _mission_element * element __attribute__((unused))) { +struct _mission_element * mission_get(void) { if (mission.current_idx == mission.insert_idx) { - element = NULL; - return FALSE; + return NULL; } - element = &(mission.elements[mission.current_idx]); - return TRUE; + return &(mission.elements[mission.current_idx]); } diff --git a/sw/airborne/modules/mission/mission.h b/sw/airborne/modules/mission/mission.h index 14cd363ea4..d423c48c12 100644 --- a/sw/airborne/modules/mission/mission.h +++ b/sw/airborne/modules/mission/mission.h @@ -104,10 +104,9 @@ extern void mission_init(void); extern bool_t mission_insert(enum MissionInsertMode insert, struct _mission_element * element); /** Get current mission element - * @param element pointer to the current mission element - * @return TRUE if valid element, FALSE if mission queue is empty (add element is set to NULL) + * @return return a pointer to the next mission element or NULL if no more elements */ -extern bool_t mission_get(struct _mission_element * element); +extern struct _mission_element * mission_get(void); /** Run mission * diff --git a/sw/airborne/modules/mission/mission_fw_nav.c b/sw/airborne/modules/mission/mission_fw_nav.c index 7bc3494a0d..f0b24e8094 100644 --- a/sw/airborne/modules/mission/mission_fw_nav.c +++ b/sw/airborne/modules/mission/mission_fw_nav.c @@ -105,7 +105,7 @@ static inline bool_t mission_nav_path(struct _mission_path * path) { int mission_run() { // current element struct _mission_element * el = NULL; - if (!mission_get(el)) { + if ((el = mission_get()) == NULL) { // TODO do something special like a waiting circle before ending the mission ? return FALSE; // end of mission }