(Type 5) TRIGGERED TEST DATA MESSAGE
MSG[0] = 102
MSG[1] = 57 (Length if no marker information is present)
or 93 (Length if marker information is present)
MSG[2] = 5 (Message type)
MSG[3] = Test status flags
NOTE: The test status flags require SPEEDBOX firmware v3.9.0 or later, and will read zero on earlier firmware versions
Format: Bitfield with the following meanings:
Bit 0: Ready (1) / Not ready (0)
Not ready indicates that the unit cannot start a test at present, e.g. no GPS lock or INS not converged.
Ready indicates that the unit is in a state at which testing could be performed if required, although it
should be noted that this is not an absolute guarantee since conditions do continuously change.
Bit 1: Armed (1) / Not armed (0)
Armed indicates the configured test will start when the configured threshold is crossed.
Bit 2: Active (1) / Not active (0)
Active indicates that a test is currently in progress.
Bits 3 - 4: Reserved for future use.
Bits 5 - 6: MFDD threshold speed units (only valid when Bit 7 is set)
The units are given as follows from the bit pattern:
Bit 5 zero, Bit 6 zero [00]: Units are m/s
Bit 5 set, Bit 6 zero [01]: Units are kph
Bit 5 zero, Bit 6 set [10]: Units are mph
Bit 5 set, Bit 6 set [11]: Units are knots
Bit 7: MFDD threshold type flag
When Bit 7 is zero, MFDD thresholds are percentages of test start speed.
When Bit 7 is set, MFDD thresholds are fixed speeds in the units given by Bits 5 and 6.
MSG[4, 5, 6] = Time into Test
Format: 24bit, big endian, unsigned integer.
Units: Seconds
Scaling: 1000
MSG[7, 8, 9, 10] = Path Distance 3D
Format: 32bit, big endian, unsigned integer.
Units: Meters
Scaling: 1000
MSG[11, 12, 13, 14] = Forward Distance 2D (forwards and vertical distance components)
Format: 32bit, big endian, signed integer.
Units: Meters
Scaling: 1000
MSG[15, 16, 17, 18] = Deviation Distance 1D (sideways distance component)
Format: 32bit, big endian, signed integer.
Units: Meters
Scaling: 1000
MSG[19, 20, 21, 22] = Direct Distance 3D
Format: 32bit, big endian, unsigned integer.
Units: Meters
Scaling: 1000
MSG[23, 24, 25, 26] = Path Distance 2D
Format: 32bit, big endian, unsigned integer.
Units: Meters
Scaling: 1000
MSG[27, 28] = Average Acceleration during Test
Format: 16bit, big endian, signed integer.
Units: g
Scaling: 1000
MSG[29, bit 7 (MSB)] = MFDD Validity Flag
Format: Single bit (byte 29 & 0x80)
Meaning: 0 = MFDD Invalid, 1 = MFDD Valid
MSG[29 (bits 0->6), 30] = MFDD (only if MFDD validity flag set)
Format: 15bit, big endian, unsigned integer
Units: g
Scaling: 1000
MSG[31] = Configured MFDD Start Threshold
Format: Unsigned byte
Units: % if MSG[3] Bit 7 is clear, otherwise units given by MSG[3] Bits 5 and 6
Scaling: None
MSG[32] = Configured MFDD End Threshold
Format: Unsigned byte
Units: % if MSG[3] Bit 7 is clear, otherwise units given by MSG[3] Bits 5 and 6
Scaling: None
MSG[33, 34, 35] = Initial Speed 3D (at start of triggered test)
Format: 24bit, big endian, unsigned integer
Units: m/s
Scaling: 1000
MSG[36, 37] = Initial Heading (at start of triggered test)
Format: 16bit, big endian, signed integer
Units: degrees
Scaling: 100
Range: -180..180°
MSG[38, bit 7 (MSB)] = Final Speed Validity Flag
Format: Single bit (byte 38 & 0x80)
Meaning: 0 = Final Speed Invalid, 1 = Final Speed Valid
MSG[38 (bits 0->6), 39, 40] = Final Speed 3D (only if Final Speed Validity Flag set)
Format: 23bit, big endian, unsigned integer
Units: m/s
Scaling: 1000
MSG[41, 42, 43] = Speed 3D
Format: 24bit, big endian, unsigned integer
Units: m/s
Scaling: 1000
MSG[44, 45] = Longitudinal Acceleration (continuous during test, peak value after completion of test)
Format: 16bit, big endian, signed integer.
Units: g
Scaling: 1000
NOTE: The continuous longitudinal acceleration is output during the test, but following the completion of
the test the peak value is output, i.e:
if Final_Speed_Validity_Flag == 1 then
Longitudinal_Acceleration = peak value
else
Longitudinal_Acceleration = current value
endif
MSG[46, 47] = Lateral Acceleration
Format: 16bit, big endian, signed integer.
Units: g
Scaling: 1000
MSG[48, 49, 50, 51] = X Distance
Format: 32bit, big endian, signed integer.
Units: Meters
Scaling: 1000
MSG[52, 53, 54, 55] = Y Distance
Format: 32bit, big endian, signed integer.
Units: Meters
Scaling: 1000
MSG[56] = Distance Accuracy Estimate
Format: Unsigned byte
Units: Centimeters
Scaling: None
NOTE: Distance accuracy estimate is only available for SPEEDBOX-INS systems, and will simply output zero on non-INS systems.
MSG[57, 58] = MFDD Time
Format: 16bit, big endian, unsigned integer.
Units: Seconds
Scaling: 1000
NOTE: MFDD Time is the time duration over which the MFDD has been calculated.
If a marker condition has been configured, then MSG[59..91] contains the extra marker fields and MSG[92] contains the checksum, otherwise MSG[59] contains the checksum.
If a marker condition is configured:
MSG[59, 60, 61] = Longitudinal distance to collision
Format: 24bit, big endian, unsigned integer
Units: Meters
Scaling: 1000
Max value output: 1000m
Note: This is the distance to/from collision with the extended target bar along the current direction of rover travel, taking both rover and target movement into account.
MSG[62, 63, 64] = Lateral distance to collision
Format: 24bit, big endian, signed integer
Units: Meters
Scaling: 1000
Max value output: +-100m
Polarity: -ve: Target is/will be to left of vehicle at impact
+ve: Target is/will be to right of vehicle at impact
Note: This is the distance along the extended marker bar to the target centre at the projected point of collision on the current rover trajectory, taking both rover and target movement into account.
MSG[65, 66, 67] = Direct distance to collision
Format: 24bit, big endian, unsigned integer
Units: Meters
Scaling: 1000
Max value output: 1000m
Note: This is the direct distance from the current rover location to collision with the target centre, taking both rover and target movement into account.
MSG[68, 69, 70] = Longitudinal time to collision
Format: 24bit, big endian, unsigned integer
Units: Seconds
Scaling: 1000
Note: This is the time to collision with the extended target bar along the current direction of rover travel, taking both rover and target movement into account.
MSG[71, 72, 73] = Direct time to collision
Format: 24bit, big endian, unsigned integer
Units: Seconds
Scaling: 1000
Note: This is the time to collision with target centre, taking target movement into account, and assuming the rover follows the optimum trajectory to collide with target centre at current rover speed.
MSG[74] = Collision flag
Format: 0 => No collision occurred
1 => Collision occurred
Note: Flag is set true if collision with the target bar +-2m from the target centre occurred during the test, and set false otherwise.
MSG[75, 76, 77, 78] = Collision longitude
Format: 32bit, big endian, signed integer
Units: Degrees
Scaling: 1e7
Note: This is the longitude of the currently projected collision position with the extended target bar, taking both rover and target movement into account.
MSG[79, 80, 81, 82] = Collision latitude
Format: 32bit, big endian, signed integer
Units: Degrees
Scaling: 1e7
Note: This is the latitude of the currently projected collision position with the extended target bar, taking both rover and target movement into account.
MSG[83, 84, 85] = Longitudinal distance to target
Format: 24bit, big endian, unsigned integer
Units: Meters
Scaling: 1000
Max value output: 1000m
Note: This is the distance to/from intersection with the extended target bar along the current direction of rover travel, at the current target location (i.e. target movement ignored).
MSG[86, 87, 88] = Lateral distance to target
Format: 24bit, big endian, signed integer
Units: Meters
Scaling: 1000
Max value output: +-100m
Polarity: -ve: Target is/will be to left of vehicle at impact
+ve: Target is/will be to right of vehicle at impact
Note: This is the distance along the extended marker bar to the target centre at the projected point of intersection on the current rover trajectory, at the current target location (i.e. target movement ignored).
MSG[89, 90, 91] = Direct distance to target
Format: 24bit, big endian, unsigned integer
Units: Meters
Scaling: 1000
Max value output: 1000m
Note: This is the direct distance from the current rover location to the target centre, at the current target location (i.e. target movement ignored).
MSG[92, 93, 94] = Speed at collision
Format: 24bit, big endian, unsigned integer
Units: m/s
Scaling: 1000
Note: This is the speed at the point of collision. It is only valid if the collision flag is true.
MSG[95] = Checksum
If a marker condition is not configured:
MSG[59] = Checksum