Skip to content

Commit

Permalink
drivers: gnss: Add geoid separation to navigation_data
Browse files Browse the repository at this point in the history
Currently altitude is only provided above MSL. Adding
geoid seperation allows for ellipsoidal height to be
determined.

Signed-off-by: Maxmillion McLaughlin <[email protected]>
  • Loading branch information
maxmclau committed Jan 25, 2025
1 parent 6894fce commit cafa6e2
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 1 deletion.
10 changes: 10 additions & 0 deletions drivers/gnss/gnss_nmea0183.c
Original file line number Diff line number Diff line change
Expand Up @@ -545,6 +545,16 @@ int gnss_nmea0183_parse_gga(const char **argv, uint16_t argc, struct gnss_data *
}

data->nav_data.altitude = (int32_t)tmp64;

/* Parse geoid separation */
if ((gnss_parse_dec_to_milli(argv[11], &tmp64) < 0) ||
(tmp64 > INT32_MAX) ||
(tmp64 < INT32_MIN)) {
return -EINVAL;
}

data->nav_data.geoid_separation = (int32_t)tmp64;

Check failure on line 557 in drivers/gnss/gnss_nmea0183.c

View workflow job for this annotation

GitHub Actions / Run compliance checks on patch series (PR)

TRAILING_WHITESPACE

drivers/gnss/gnss_nmea0183.c:557 trailing whitespace

Check failure on line 557 in drivers/gnss/gnss_nmea0183.c

View workflow job for this annotation

GitHub Actions / Run compliance checks on patch series (PR)

TRAILING_WHITESPACE

drivers/gnss/gnss_nmea0183.c:557 trailing whitespace
return 0;
}

Expand Down
4 changes: 3 additions & 1 deletion include/zephyr/data/navigation.h
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,10 @@ struct navigation_data {
uint32_t bearing;
/** Speed in millimeters per second */
uint32_t speed;
/** Altitude in millimeters */
/** Altitude above MSL in millimeters */
int32_t altitude;
/** Geoid separation in millimeters */
int32_t geoid_separation;
};

/**
Expand Down

0 comments on commit cafa6e2

Please sign in to comment.