Position: Message<"meshtastic.Position"> & {
    altitude?: number;
    altitudeGeoidalSeparation?: number;
    altitudeHae?: number;
    altitudeSource: Position_AltSource;
    fixQuality: number;
    fixType: number;
    gpsAccuracy: number;
    groundSpeed?: number;
    groundTrack?: number;
    HDOP: number;
    latitudeI?: number;
    locationSource: Position_LocSource;
    longitudeI?: number;
    nextUpdate: number;
    PDOP: number;
    precisionBits: number;
    satsInView: number;
    sensorId: number;
    seqNumber: number;
    time: number;
    timestamp: number;
    timestampMillisAdjust: number;
    VDOP: number;
}

a gps position

Type declaration

  • Optionalaltitude?: number

    In meters above MSL (but see issue #359)

    from field: optional int32 altitude = 3;

  • OptionalaltitudeGeoidalSeparation?: number

    Geoidal separation in meters

    from field: optional sint32 altitude_geoidal_separation = 10;

  • OptionalaltitudeHae?: number

    HAE altitude in meters - can be used instead of MSL altitude

    from field: optional sint32 altitude_hae = 9;

  • altitudeSource: Position_AltSource

    TODO: REPLACE

    from field: meshtastic.Position.AltSource altitude_source = 6;

  • fixQuality: number

    GPS fix quality (from NMEA GxGGA statement or similar)

    from field: uint32 fix_quality = 17;

  • fixType: number

    GPS fix type 2D/3D (from NMEA GxGSA statement)

    from field: uint32 fix_type = 18;

  • gpsAccuracy: number

    GPS accuracy (a hardware specific constant) in mm multiplied with DOP to calculate positional accuracy Default: "'bout three meters-ish" :)

    from field: uint32 gps_accuracy = 14;

  • OptionalgroundSpeed?: number

    Ground speed in m/s and True North TRACK in 1/100 degrees Clarification of terms:

    • "track" is the direction of motion (measured in horizontal plane)
    • "heading" is where the fuselage points (measured in horizontal plane)
    • "yaw" indicates a relative rotation about the vertical axis TODO: REMOVE/INTEGRATE

    from field: optional uint32 ground_speed = 15;

  • OptionalgroundTrack?: number

    TODO: REPLACE

    from field: optional uint32 ground_track = 16;

  • HDOP: number

    TODO: REPLACE

    from field: uint32 HDOP = 12;

  • OptionallatitudeI?: number

    The new preferred location encoding, multiply by 1e-7 to get degrees in floating point

    from field: optional sfixed32 latitude_i = 1;

  • locationSource: Position_LocSource

    TODO: REPLACE

    from field: meshtastic.Position.LocSource location_source = 5;

  • OptionallongitudeI?: number

    TODO: REPLACE

    from field: optional sfixed32 longitude_i = 2;

  • nextUpdate: number

    Estimated/expected time (in seconds) until next update:

    • if we update at fixed intervals of X seconds, use X
    • if we update at dynamic intervals (based on relative movement etc), but "AT LEAST every Y seconds", use Y

    from field: uint32 next_update = 21;

  • PDOP: number

    Horizontal, Vertical and Position Dilution of Precision, in 1/100 units

    • PDOP is sufficient for most cases
    • for higher precision scenarios, HDOP and VDOP can be used instead, in which case PDOP becomes redundant (PDOP=sqrt(HDOP^2 + VDOP^2)) TODO: REMOVE/INTEGRATE

    from field: uint32 PDOP = 11;

  • precisionBits: number

    Indicates the bits of precision set by the sending node

    from field: uint32 precision_bits = 23;

  • satsInView: number

    GPS "Satellites in View" number

    from field: uint32 sats_in_view = 19;

  • sensorId: number

    Sensor ID - in case multiple positioning sensors are being used

    from field: uint32 sensor_id = 20;

  • seqNumber: number

    A sequence number, incremented with each Position message to help detect lost updates if needed

    from field: uint32 seq_number = 22;

  • time: number

    This is usually not sent over the mesh (to save space), but it is sent from the phone so that the local device can set its time if it is sent over the mesh (because there are devices on the mesh without GPS or RTC). seconds since 1970

    from field: fixed32 time = 4;

  • timestamp: number

    Positional timestamp (actual timestamp of GPS solution) in integer epoch seconds

    from field: fixed32 timestamp = 7;

  • timestampMillisAdjust: number

    Pos. timestamp milliseconds adjustment (rarely available or required)

    from field: int32 timestamp_millis_adjust = 8;

  • VDOP: number

    TODO: REPLACE

    from field: uint32 VDOP = 13;

from message meshtastic.Position