namespace Tinkerforge
{
    public static class EGps
    {
        public static (long Latitude, char NS, long Longitude, char EW, int PDOP, int HDOP, int VDOP, int EPE) GetCoordinates(
            this BrickletGPS gps)
        {
            gps.GetCoordinates(out long latitude, out char ns, out long longitude, out char ew, out int pdop,
                out int hdop, out int vdop, out int epe);
            return (latitude, ns, longitude, ew, pdop, hdop, vdop, epe);
        }

        public static (byte Fix, byte SatellitesView, byte SatellitesUsed) GetStatus(this BrickletGPS gps)
        {
            gps.GetStatus(out byte fix, out byte satellitesView, out byte satellitesUsed);
            return (fix, satellitesView, satellitesUsed);
        }

        public static (int Altitude, int GeoidalSeparation) GetAltitude(this BrickletGPS gps)
        {
            gps.GetAltitude(out int altitude, out int geoidalSeparation);
            return (altitude, geoidalSeparation);
        }

        public static (long Course, long Speed) GetMotion(this BrickletGPS gps)
        {
            gps.GetMotion(out long course, out long speed);
            return (course, speed);
        }

        public static (long Date, long Time) GetDateTime(this BrickletGPS gps)
        {
            gps.GetDateTime(out long date, out long time);
            return (date, time);
        }

    }
}
