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 Track Engine Configuration 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 |
---|---|---|
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 [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 |
---|---|
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:
|
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. |