Public Access
Position: the Fix line (or how long it has been searching), latitude and longitude in decimal degrees or degrees-minutes-seconds (Settings -> Coordinates), the Maidenhead locator, altitude, speed and course, HDOP and UTC. Sky: the satellites by azimuth and elevation, coloured by constellation, filled when used in the Fix, with used/in-view counts. Tab switches. lib/gnss/geo_format holds the formatting, the locator and the sky projection, host-tested (6 tests; locators checked against FN31pr and JN58td). Verified on the device by a window: 3D Fix from GPS, GLONASS, Galileo and BeiDou. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EhqxQ49eCju4CzKYNjZzwT
22 lines
744 B
C++
22 lines
744 B
C++
#pragma once
|
|
|
|
#include <string>
|
|
|
|
namespace roro::gnss {
|
|
|
|
// "50.86920° N": five decimals, about a metre.
|
|
std::string formatDecimal(double degrees, bool latitude);
|
|
// "50° 52' 09.1\" N" (Settings → Coordinates, Q64).
|
|
std::string formatDms(double degrees, bool latitude);
|
|
// The 6-character Maidenhead locator ("JO20ef"), as radio amateurs give their square.
|
|
std::string maidenhead(double latitude, double longitude);
|
|
|
|
// Where a satellite goes on the Sky view: the zenith in the centre, the horizon on the circle,
|
|
// north up and east right (as seen looking at the sky from above, like a map).
|
|
struct SkyPoint {
|
|
int x, y;
|
|
};
|
|
SkyPoint skyPosition(int azimuthDeg, int elevationDeg, int cx, int cy, int radius);
|
|
|
|
} // namespace roro::gnss
|