TMM Websockets

Consuming position data from the TMM websockets.

Use the TMM websocket to receive detailed position information in your application when the TMM app is controlling a Trimble GNSS receiver.

Table of Contents

Servers

localhost Server

  • URL: localhost
  • Protocol: ws

The TMM websocket is served on 127.0.0.1 or localhost on the Android or iOS device.

Operations

PUB localhost:v2SocketPort Operation

The version 2 websocket sends extended position information. This websocket is only available for registered applications.

Message PositionInfoV2Message

The positionInfo version 2 message contains extended position information.

Payload
NameTypeDescriptionValueConstraintsNotes
(root)object---additional properties are allowed
latitudenumberLatitude in decimal degrees North positive, south negative-format (double)-
longitudenumberLongitude in decimal degrees East positive, west negative-format (double)-
altitudenumberAltitude in meters-format (double)-
speednumberSpeed in meters per second-format (double)-
bearingnumberBearing in decimal degrees Measured clockwise from north for North Azimuth projections, or clockwise from south for South Azimuth projections.-format (double)-
geoidModelstringGeoid model used for height calculations---
hrmsnumberHorizontal Root Mean Square in meters-format (double)-
vrmsnumberVertical Root Mean Square in meters-format (double)-
satellitesintegerNumber of satellites observed---
totalSatInUseintegerNumber of satellites that are used for the position solution---
totalSatInViewintegerNumber of satellites in view, identical to satellites---
pdopnumberPosition Dilution of Precision-format (double)-
hdopnumberHorizontal Dilution of Precision-format (double)-
vdopnumberVertical Dilution of Precision-format (double)-
diffAgenumberMessage age of any RTK message in seconds-format (double)-
diffStatusintegerPosition solution status: 1=Autonomous, 2=DGPS, 4=Fixed, 5=Float---
diffIDstringID of the RTK base station -1 if unknown, otherwise 4-digit ID---
receiverModelstringReceiver model type---
mockProviderstringMock provider name “Trimble Mobile Manager”---
appVersionstringTMM build version semantic versioning Major.Minor.Patch (0.0.0)---
batteryintegerBattery percentage if the receiver has an internal battery---
mslHeightnumberHeight above mean sea level in meters Includes geoid undulation if geoid is available-format (float)-
undulationnumberHeight difference between ellipsoid and geoid-format (float)-
utcTimeStampstringUTC time formatted as ISO string---
gpsTimeStampstringGPS time formatted as ISO string---
satelliteViewarrayList of satellites in view---
satelliteView.IdintegerID of the satellite---
satelliteView.ElvintegerElevation angles of the satellite above the horizon in degrees.---
satelliteView.AzmintegerAzimuth angle of the satellite in degrees.---
satelliteView.SnrintegerSignal-to-noise ratio (SNR) for the satellite.---
satelliteView.UsebooleanSatellite is is use true/false---
satelliteView.TypeintegerType of GNSS system of the satellite.---
subscriptionTypeintegerThe type of the currently used subscription 0 == Catalyst Free; 1 == Catalyst 60; 2 == Catalyst 30; 3 == Catalayst 10; 4 == Catalyst 1; 5 == Catalyst On Demand; 100 == GNSS receiver---
sourceReferenceFrameNamestringName of the source reference frame used for the GNSS.---
sourceReferenceFrameEpochnumberEpoch of the realization of the source reference frame. It’s the date at which the coordinates of the reference frame are exactly as given.-format (double)-
targetReferenceFrameEpochnumberSpecific point in time that is used as a reference for the geodetic datum.-format (double)-
targetReferenceFrameNamestringName of the target reference frame used for the GNSS.---
imuAlignmentStatusintegerCurrent IMU alignment status 0: NotAvailable, IMU is not available 1: Unaligned, IMU is not aligned, start moving the receiver to align 2: Coarse, IMU is partially aligned, keep moving the receiver to complete alignment 3: Fine, IMU is fully aligned and ready for TIP measurement---
isTIPbooleanTrue if this is a Trimble TIP position---
pitchnumberPitch of the receiver body in degrees-format (double)-
rollnumberRoll of the receiver body in degrees-format (double)-
yawnumberYaw of the receiver body in degrees-format (double)-
pitchPrecisionnumberPrecision of the pitch in degrees-format (double)-
rollPrecisionnumberPrecision of the roll in degrees-format (double)-
yawPrecisionnumberPrecision of the yaw in degrees-format (double)-
igsAntennastringIGS antenna name---
antennaHeightnumberAntenna height in meters, measured from the ground to the Antenna Reference Point (usually Bottom of antenna mount)-format (double)-

Examples of payload (generated)

{
"latitude": 0,
"longitude": 0,
"altitude": 0,
"speed": 0,
"bearing": 0,
"geoidModel": "string",
"hrms": 0,
"vrms": 0,
"satellites": 0,
"totalSatInUse": 0,
"totalSatInView": 0,
"pdop": 0,
"hdop": 0,
"vdop": 0,
"diffAge": 0,
"diffStatus": 0,
"diffID": "string",
"receiverModel": "string",
"mockProvider": "string",
"appVersion": "string",
"battery": 0,
"mslHeight": 0,
"undulation": 0,
"utcTimeStamp": "string",
"gpsTimeStamp": "string",
"satelliteView": [
{
"Id": 0,
"Elv": 0,
"Azm": 0,
"Snr": 0,
"Use": true,
"Type": 0
}
],
"subscriptionType": 0,
"sourceReferenceFrameName": "string",
"sourceReferenceFrameEpoch": 0,
"targetReferenceFrameEpoch": 0,
"targetReferenceFrameName": "string",
"imuAlignmentStatus": 0,
"isTIP": true,
"pitch": 0,
"roll": 0,
"yaw": 0,
"pitchPrecision": 0,
"rollPrecision": 0,
"yawPrecision": 0,
"igsAntenna": "string",
"antennaHeight": 0
}

PUB localhost:v1SocketPort Operation

The version 1 websocket sends v1 position information. This websocket is available to any application on the device.

Message PositionInfoMessage

The positionInfo message contains v1 position information.

Payload
NameTypeDescriptionValueConstraintsNotes
(root)object---additional properties are allowed
latitudenumberLatitude in decimal degrees North positive, south negative-format (double)-
longitudenumberLongitude in decimal degrees East positive, west negative-format (double)-
altitudenumberAltitude in meters-format (double)-
speednumberSpeed in meters per second-format (float)-
bearingnumberBearing in decimal degrees Measured clockwise from north for North Azimuth projections, or clockwise from south for South Azimuth projections.-format (float)-
accuracynumberAccuracy in meters-format (float)-
verticalAccuracyMetersnumberVertical accuracy in meters-format (float)-
satellitesintegerNumber of satellites observed---
totalSatInViewintegerNumber of satellites in view, identical to satellites---
pdopnumberPosition Dilution of Precision-format (float)-
hdopnumberHorizontal Dilution of Precision-format (float)-
vdopnumberVertical Dilution of Precision-format (float)-
diffAgenumberMessage age of any RTK message in seconds-format (float)-
diffStatusintegerPosition solution status: 1=Autonomous, 2=DGPS, 4=Fixed, 5=Float---
diffIDstringID of the RTK base station -1 if unknown, otherwise 4-digit ID---
vrmsnumberVertical Root Mean Square in meters-format (float)-
hrmsnumberHorizontal Root Mean Square in meters-format (float)-
receiverModelstringReceiver model type---
mockProviderstringMock provider name “Trimble Mobile Manager”---
appVersionstringTMM build version semantic versioning Major.Minor.Patch (0.0.0)---
batteryintegerBattery percentage if the receiver has an internal battery---
geoidModelstringGeoid model used for height calculations---
mslHeightnumberHeight above mean sea level in meters Includes geoid undulation if geoid is available-format (float)-
undulationnumberHeight difference between ellipsoid and geoid-format (float)-
utcTimenumberUTC time as a float-format (float)-
gpsTimeStampstringGPS time formatted as ISO string---
utcTimeStampstringUTC time formatted as ISO string---
satelliteViewarrayList of satellites in view---
satelliteView.IdintegerID of the satellite---
satelliteView.ElvintegerElevation angles of the satellite above the horizon in degrees.---
satelliteView.AzmintegerAzimuth angle of the satellite in degrees.---
satelliteView.SnrintegerSignal-to-noise ratio (SNR) for the satellite.---
satelliteView.UsebooleanSatellite is is use true/false---
satelliteView.TypeintegerType of GNSS system of the satellite.---
subscriptionTypeintegerThe type of the currently used subscription 0 == Catalyst Free; 1 == Catalyst 60; 2 == Catalyst 30; 3 == Catalayst 10; 4 == Catalyst 1; 5 == Catalyst On Demand; 100 == GNSS receiver---

Examples of payload (generated)

{
"latitude": 0,
"longitude": 0,
"altitude": 0,
"speed": 0,
"bearing": 0,
"accuracy": 0,
"verticalAccuracyMeters": 0,
"satellites": 0,
"totalSatInView": 0,
"pdop": 0,
"hdop": 0,
"vdop": 0,
"diffAge": 0,
"diffStatus": 0,
"diffID": "string",
"vrms": 0,
"hrms": 0,
"receiverModel": "string",
"mockProvider": "string",
"appVersion": "string",
"battery": 0,
"geoidModel": "string",
"mslHeight": 0,
"undulation": 0,
"utcTime": 0,
"gpsTimeStamp": "string",
"utcTimeStamp": "string",
"satelliteView": [
{
"Id": 0,
"Elv": 0,
"Azm": 0,
"Snr": 0,
"Use": true,
"Type": 0
}
],
"subscriptionType": 0
}