mirror of
https://github.com/iNavFlight/inav.git
synced 2025-07-19 06:15:14 +03:00
WP mission Home WP option (#6920)
* Initial build
* Add new waypoint type FlyBy Home (FBH)
* Revert "Add new waypoint type FlyBy Home (FBH)"
This reverts commit a37dec5695
.
* Remove FBH WP type, use Home flag instead
* Fixes
This commit is contained in:
parent
940169cf82
commit
1b2d75dec7
3 changed files with 23 additions and 15 deletions
|
@ -1460,7 +1460,7 @@ static void cliWaypoints(char *cmdline)
|
||||||
|
|
||||||
if (!(validArgumentCount == 6 || validArgumentCount == 8)) {
|
if (!(validArgumentCount == 6 || validArgumentCount == 8)) {
|
||||||
cliShowParseError();
|
cliShowParseError();
|
||||||
} else if (!(action == 0 || action == NAV_WP_ACTION_WAYPOINT || action == NAV_WP_ACTION_RTH || action == NAV_WP_ACTION_JUMP || action == NAV_WP_ACTION_HOLD_TIME || action == NAV_WP_ACTION_LAND || action == NAV_WP_ACTION_SET_POI || action == NAV_WP_ACTION_SET_HEAD) || !(flag == 0 || flag == NAV_WP_FLAG_LAST)) {
|
} else if (!(action == 0 || action == NAV_WP_ACTION_WAYPOINT || action == NAV_WP_ACTION_RTH || action == NAV_WP_ACTION_JUMP || action == NAV_WP_ACTION_HOLD_TIME || action == NAV_WP_ACTION_LAND || action == NAV_WP_ACTION_SET_POI || action == NAV_WP_ACTION_SET_HEAD) || !(flag == 0 || flag == NAV_WP_FLAG_LAST || flag == NAV_WP_FLAG_HOME)) {
|
||||||
cliShowParseError();
|
cliShowParseError();
|
||||||
} else {
|
} else {
|
||||||
posControl.waypointList[i].action = action;
|
posControl.waypointList[i].action = action;
|
||||||
|
|
|
@ -2933,8 +2933,15 @@ static void mapWaypointToLocalPosition(fpVector3_t * localPos, const navWaypoint
|
||||||
{
|
{
|
||||||
gpsLocation_t wpLLH;
|
gpsLocation_t wpLLH;
|
||||||
|
|
||||||
|
/* Default to home position if lat & lon = 0 or HOME flag set
|
||||||
|
* Applicable to WAYPOINT, HOLD_TIME & LANDING WP types */
|
||||||
|
if ((waypoint->lat == 0 && waypoint->lon == 0) || waypoint->flag == NAV_WP_FLAG_HOME) {
|
||||||
|
wpLLH.lat = GPS_home.lat;
|
||||||
|
wpLLH.lon = GPS_home.lon;
|
||||||
|
} else {
|
||||||
wpLLH.lat = waypoint->lat;
|
wpLLH.lat = waypoint->lat;
|
||||||
wpLLH.lon = waypoint->lon;
|
wpLLH.lon = waypoint->lon;
|
||||||
|
}
|
||||||
wpLLH.alt = waypoint->alt;
|
wpLLH.alt = waypoint->alt;
|
||||||
|
|
||||||
geoConvertGeodeticToLocal(localPos, &posControl.gpsOrigin, &wpLLH, altConv);
|
geoConvertGeodeticToLocal(localPos, &posControl.gpsOrigin, &wpLLH, altConv);
|
||||||
|
|
|
@ -306,6 +306,7 @@ typedef enum {
|
||||||
} navWaypointHeadings_e;
|
} navWaypointHeadings_e;
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
|
NAV_WP_FLAG_HOME = 0x48,
|
||||||
NAV_WP_FLAG_LAST = 0xA5
|
NAV_WP_FLAG_LAST = 0xA5
|
||||||
} navWaypointFlags_e;
|
} navWaypointFlags_e;
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue