Service state
{
"cars": [
[
"1",
"FIN",
"LMP2",
"1",
"Daniel Gaunt",
"Ligier JS P217",
24,
"",
[53.772, ""],
[35.093, ""],
["", ""],
[127.845, ""],
[111.95, ""],
1
],
[
"36",
"FIN",
"LMP2",
"2",
"Nicholas Foster",
"Ligier JS P217",
27,
"1.434",
[49.761, ""],
[34.184, ""],
[31.091, ""],
[115.036, ""],
[113.384, ""],
2
]
],
"highlight": ["25"],
"messages": [
[1581687316, "LMP2 AM", "#25 Driver change (Anthony Lazzaro to Phillippe Mulacek)", null, "25"],
[1581687291, "LMP3", "#8 Driver change (Rory Penttinen to Matthias Kaiser)", null, "8"],
[1581687143, "LMP3", "#8 Driver change (Matthias Kaiser to Rory Penttinen)", null, "8"],
[1581687136, "LMP3", "#13 (Martin Hippe) has entered the pits", "pit", "13"]
],
"session": {
"timeElapsed": 5688.422,
"timeRemain": -288.422,
"flagState": "chequered",
"trackData": ["23°C", "34°C"]
}
}
The service state message includes the current timing screen data for a service. It is display-oriented and requires an appropriate service manifest in order to interpret the data.
- cars: Required. An array of cars in the current session, ordered by
current classification. Each entry is itself an array, representing data for
a single car.
- Each entry in a car array should correspond to an entry in the
colSpec
of the service manifest. - A car entry can contain additional entries not specified in the
colSpec
, though this is discouraged. Such values should be ignored for display purposes. - Each entry in a car array may be either a primitive value (string, number,
null) or a two-entry array of primitives. In the latter case, the first
entry is the value, and the second metadata relating to that value, for
example:
pb
denoting a personal-best timesb
denoting a session-best (“purple”) timesb-new
denoting a session-best time that has just been setold
for older data (e.g. to differentiate sector times from previous and current lap)- For tyre types, data like
tyre-soft
that implementations can use to decide on display colours
- Car numbers should be treated as strings, not numbers
- Note that the car “state” field is free text, but standardised on certain
values:
RUN
: car is on trackPIT
: car is in pitsOUT
: car has left the pitsSTOP
: car is running slowly or stoppedFIN
: car has taken the chequered flag Other values may be used by some service plugins.
- Each entry in a car array should correspond to an entry in the
- highlight: Array of car numbers to highlight as changed in this state snapshot. Used by the Timing71 site to flash the car’s row.
- messages: Required. List of messages generated by the service.
- Each message entry is an array of between four and five elements:
- Timestamp
- Car or message category. For single-class racing this is usually something
like
Pits
orTiming
, but can be any display-formatted string. - Message text
- Display class information that implementations can use to decide on message formatting and colours
- Car number to which the message relates (optional)
- Each message entry is an array of between four and five elements:
- session: Required. Data relating to the session.
- timeElapsed: Seconds elapsed since start of session.
- timeRemain: Seconds remaining in session.
- lapsRemain: Laps remaining in race (for distance-certain events). When
present this value is assumed to take precedence over
timeRemain
. - flagState: Required. Current flag. (Note the UK English spelling of
chequered
). For possible values see Constants and enumerations. - trackData: Array of values corresponding to the headings in the service
manifest’s
trackDataSpec
array.