Track Distribution Protocol

Introduction

This section discusses the Track Distribution Protocol.

Contents



UDP Track Distribution

Witness supports a method of sending lightweight tracks via UDP for consumption on external systems.

Witness by default will send UDP packets via Multicast on 239.145.145.145 port 63170. The system can be configured to send to a Unicast address instead.

Each UDP datagram contains a single sighting for a single track. Please refer to for details on enabling and configuring this feature.

UDP Message Structure

Each message includes a header of 6 bytes followed by a variable length payload. The header includes the protocol version, message type and payload size enabling the client software to reliably decode the payload data as required.

Field

Type [Size]

Description

Field

Type [Size]

Description

Version

uint8_t [1]

Protocol version – indicates the revision of the protocol messages

Message Type

uint8_t [1]

Message type – indicates the type of the payload

Payload Length

uint32_t [4]

The length, in bytes, of the main body of the message

Track Distribution Message

The payload of this message is a Protobuf object representing the track sighting data. For more information on Google Protocol Buffers please see reference [https://developers.google.com/protocol-buffers/]. Navtech can provide Protobuf message files (.proto) on request.

The X and Y Positions are in metres relative to the system origin set within the Witness Suite. The Latitude and Longitude coordinates are based on the WGS84 datum.

syntax = "proto3"; package TrackProtobuf; message DistributionTrack { string uniqueid = 1; int32 trackid = 2; int64 senderid = 3; uint32 channelid = 4; double speedmps = 5; double coursedegrees = 6; int32 classification = 7; double classificationprobability = 8; double xposition = 9; double yposition = 10; double latitude = 11; double longitude = 12; string tag = 13; double sizeinaz = 14; double sizeinrange = 15; uint32 seen = 16; int32 coasts = 17; int64 laneuserid = 18; int64 sectionuserid = 19; string carriagewayname = 20; }

Protobuf Fields

Field

Description

Field

Description

UniqueId

A string representation of a GUID that represents the unique Id of the track.

TrackId

User friendly numeric Id for each track. Note that this Id is not unique across the system.

SenderId

User friendly numeric Id of the radar which generated the track. This value represents the User Id which is configured in the Witness software.

ChannelId

This is the index of tracking channel from which the track was generated. Typically in ClearWay™, this will represent the channel use for each carriageway.

SpeedMps

The speed of the track in metres / second.

CourseDegrees

The course of the track in degrees.

Classification

The track classification Id. Options are:

1: Unclassified

2: Vehicle

4: Person

8: Debris

16: Airplane

32: Boat

64: Large Vehicle

128: Animal

256: Drone

ClassificationProbability

The confidence level of the classification represented as a value between 0 and 1.

XPosition

X coordinate of the track based on the local Witness site coordinate system.

YPosition

Y coordinate of the track based on the local Witness site coordinate system.

Latitude

Latitude coordinate of the track based on WGS84 datum.

Longitude

Longitude coordinate of the track based on WGS84 datum.

Tag

User friendly name / description of the track. Typically not used in ClearWay™.

SizeInAz

The size of the track along the azimuth.

SizeInRange

The size of the track along the range.

Seen

Number of sightings of the track.

Coasts

Monitors the number of times a target is perceived to be coasting.

LaneUserId

User friendly numeric Id for each carriageway lane.

SectionUserId

User friendly numeric Id of the section.

CarriagewayName

Name of the carriageway.


Safety is everything.