Multiloop Timing Protocol

12
Multiloop Timing Protocol (v1.3) Record Specification Message description: Every message starts with a header (see description below) and ends with CR/LF. Inside the message, the fields are separated by a "broken bar" symbol 0xA6 (no to be confused with the pipe symbol 0x7C). The length of a message is not defined and can therefore be more than 256 characters. Header description: The header starts with a $ character. The $ character can be replaced with another character (user definable). The general structure of the header is as follows: <SOR><Command><Sep><Type><Sep><Seq. num><Sep><Preamble><Sep> …rest of the record …<EOR> where: Item Description Comment <SOR> Start of record Default value: $ <Command> Command See below <Sep> Separator Broken bar: | (Hexadecimal: 0xA6) <Type> The type of record N = new R = repeated U = updated <Seq. num> The sequence number Unique identifier per type of command record (Hex chars). <Preamble> The preamble User definable (linked to a run) <EOR> End of record CR/LF (Hexadecimal: 0x0D 0x0A) Sample: $H|N|4F3A|CP01| …rest of the record … <EOR> Ascii representation: Ascii Decimal Hexadecimal $ CR LF | 36 13 (carriage return) 10 (line feed) 166 0x24 0x0D 0x0A 0xA6

description

A description of Multiloop Timing Protocol

Transcript of Multiloop Timing Protocol

Page 1: Multiloop Timing Protocol

Multiloop Timing Protocol (v1.3)

Record Specification Message description: Every message starts with a header (see description below) and ends with CR/LF. Inside the message, the fields are separated by a "broken bar" symbol 0xA6 (no to be confused with the pipe symbol 0x7C). The length of a message is not defined and can therefore be more than 256 characters. Header description: The header starts with a $ character. The $ character can be replaced with another character (user definable). The general structure of the header is as follows: <SOR><Command><Sep><Type><Sep><Seq. num><Sep><Preamble><Sep> …rest of the record …<EOR> where: Item Description Comment <SOR> Start of record Default value: $ <Command> Command See below <Sep> Separator Broken bar: | (Hexadecimal: 0xA6) <Type> The type of record N = new

R = repeated U = updated

<Seq. num> The sequence number Unique identifier per type of command record (Hex chars).

<Preamble> The preamble User definable (linked to a run) <EOR> End of record CR/LF (Hexadecimal: 0x0D 0x0A)

Sample: $H|N|4F3A|CP01| …rest of the record … <EOR> Ascii representation: Ascii Decimal Hexadecimal $ CR LF |

36 13 (carriage return) 10 (line feed) 166

0x24 0x0D 0x0A 0xA6

Page 2: Multiloop Timing Protocol

Multiloop Timing Protocol (v1.3)

Levels and command description: The message commands can be divided into four levels. Level Command Description 1 H Heartbeat, race status, time and time of day information. 2 C Completed lap results. S Section information. L Line crossing message. I Invalidated lap information. F Flag information. N New leader. 3 C Completed lap results of all competitors (repeated). S Section information of all competitors (repeated). I Invalidated lap information (repeated). F Flag information (repeated). 4 E Current entry information. R Current run information. T Current track / section information. A Announcement information. V Version stream information.

Frequency of the commands: Level Description 1 Sent every second. 2 Event driven messages. Sent every result update (only results that

have changed are sent). 3 Sent at a lower rate (constant update of all results for new clients). 4 Sent at the lowest rate (refresh of track / section / entry information /

announcement information for new clients). The repetition rate of all repeatable messages is adjustable.

Page 3: Multiloop Timing Protocol

Multiloop Timing Protocol (v1.3)

Description of the packet sequence number scheme: The sequence number is a unique identifier per type of command record. The sequence number doesn’t necessarily start at 1 (e.g. it doesn’t always represent the number of records send). An update or repeat will contain the exact same sequence number as the record that was first send. The sequence number will be reset if it reached FFFFF (hex). Command UniqueID explanation H Represent the number of heartbeats send (starts at 1, increased by 1) E Result ID, unique identifier per result per run C Result ID (first two bytes) + Lapnumber (last two bytes) S Result ID (first two bytes) + Section ID (last two bytes) L Equal to the Passing ID in the Datamanager-Interface I Equal to the Passing ID in the Datamanager-Interface F Represents the number of flagchanges N Represents the number of leadchanges R Equal to the Run ID in the Datamanager Interface T Equal to the Track ID in the Datamanager Interface A Announcement-number in order of creation per run V Always 1

Page 4: Multiloop Timing Protocol

Multiloop Timing Protocol (v1.3)

Level description:

Level 1 $H – Heartbeat message Fieldname Data description Comments Track Status G, Y, R, W, K, U, C G

Y R W K U C

Green Yellow Red White Checkered Unflagged (warm-up or pacelaps) Cold (between sessions).

Time / Date 0 – FFFFFFFF Time in seconds since 1/1/70 Elapsed Time 0 – FFFFFFFF Time in milliseconds (hex chars). Laps to go 0 – FFFF Time to go 0 – FFFFFFFF Time in milliseconds (hex chars)

Frequency: Every second. Sample: <Header>G|BC6AD080|4CAD63|91|B837C

Fieldname String part Data Track Status G Green flag Time/Date BC6AD080 1/3/2000, 12:00 Elapsed Time 4CAD63 01:23:45.123 Laps to go 91 145 Time to go B837C 00:12:34.556

The heartbeat record will be sent (approximately) every second thus interleaving the other (repeating) records.

Page 5: Multiloop Timing Protocol

Multiloop Timing Protocol (v1.3)

Level 2

$C – Completed lap results. Fieldname Data description Comments Rank 1 – FFFF Number characters 4 characters maximum. Unique identifier 0 – FFFF A unique identification number. Completed laps 0 – FFFF Number of completed laps. Elapsed time 0 – FFFFFFFF Elapsed time in milliseconds (hex chars) Last laptime 0 – FFFFFFFF Time in milliseconds (hex chars) Lap status T, P Indicates where the lap was completed

T = Track, P = Pit lane. Fastest laptime 0 – FFFFFFFF Time in milliseconds (hex chars) Fastest lap 0 – FFFF Time behind leader 0 – FFFFFFFF Time in milliseconds (hex chars) Laps behind leader 0 – FFFF Time behind prec 0 – FFFFFFFF Time in milliseconds (hex chars) behind

preceding car. Laps behind prec 0 – FFFF Laps behind preceding car. Overall rank 0 – FFFF Rank of car in all sessions of this type. Overall best laptime 0 – FFFFFFFF Time in milliseconds (hex chars) Current status characters Active, In pits, DNS, Contact,

Mechanical, etc. Track Status G, Y, R, W, K, U G

Y R W K U

Green Yellow Red White Checkered Unflagged (warm-up or pacelaps)

Pit stop count 0 – FFFF Number of pitstops in this session Last pitted lap 0 – FFFF Lap number the car last pitted. Start position 0 – FFFF Starting position of the car. Laps led 0 – FFFF Number of laps this car was the race

leader. 0 for non-race sessions. Frequency: Each completed lap (repeated e.g. every 30 seconds).

Page 6: Multiloop Timing Protocol

Multiloop Timing Protocol (v1.3)

Sample: <Header>12|01|E7|4CAD63|11A99|T|11A99|23|6358|1E|

4D2|0|12|11A99|Active|G|2|45|10|0

Fieldname String part Data Rank 12 18 Number 01 01 Unique ID 469D 18077 Completed laps E7 231 Elapsed time 4CAD63 01:23:45.123 Last laptime 11A99 00:01:12.345 Lap status T Completed on track Best laptime 11A99 00:01:12.345 Best lap 23 35 Time behind leader 6358 00:00:25.432 Laps behind leader 1E 30 Time behind prec 4D2 00:00:01.234 Laps behind prec 0 0 Overall rank 12 18 Overall best laptime 11A99 00:01:12.345 Current status Active Active Track Status G Green Pit stop count 2 2 Last pitted lap 45 69 Start position 10 16 Laps led 0 0

$S – Completed section results. Fieldname Data description Comments Number characters 4 characters maximum. Unique identifier 0 – FFFF A unique identification number. Section identifier characters 3 characters maximum. Elapsed time 0 – FFFFFFFF Time in milliseconds (hex chars) Last section time 0 – FFFFFFFF Time in milliseconds (hex chars) Last lap 0 – FFFF Lap for the last section time.

Frequency: Each completed section (repeated e.g. every 30 seconds). Sample: <Header>01|469D|PIT|6458|761A|B5

Fieldname String part Data Number 01 01 Unique identifier 469D 18077 Section identifier PIT PIT Elapsed time 6358 00:00:25.432 Last section time 761A 00:00:30.234 Last lap B5 181

Page 7: Multiloop Timing Protocol

Multiloop Timing Protocol (v1.3)

$L – Line crossing information. Fieldname Data description Comments Number characters 4 characters maximum. Unique identifier 0 – FFFF A unique identification number. Time line characters 4 characters maximum Source A, M, P A

M P

Antenna Manual Photocell

Elapsed time 0 – FFFFFFFF Time in milliseconds (hex chars) Track Status G, Y, R, W, K, U G

Y R W K U

Green Yellow Red White Checkered Unflagged (warm-up or pacelaps)

Crossing status T, P Indicates where the line crossing was: T = Track, P = Pit lane.

Frequency: Each line crossing. Sample: <Header>01|469D|SF|A|4CAD63|G|T

Fieldname String part Data Number 01 01 Unique identifier 469D 18077 Time line SF Start Finish Source A Antenna Elapsed time 4CAD63 01:23:45.123 Track status G Green Crossing status T Track

$I – Invalidated lap information. Fieldname Data description Comments Number characters 4 characters maximum. Unique identifier 0 – FFFF A unique identification number. Elapsed time 0 – FFFFFFFF Time in milliseconds (hex chars)

Frequency: Each invalidated lap (repeated e.g. every 30 seconds). Sample: <Header>01|469D|4CAD63

Fieldname String part Data Number 01 01 Unique identifier 469D 18077 Elapsed time 4CAD63 01:23:45.123

Page 8: Multiloop Timing Protocol

Multiloop Timing Protocol (v1.3)

$F – Flag information. Fieldname Data description Comments Track Status G, Y, R, W, K, U G

Y R W K U

Green Yellow Red White Checkered Unflagged (warm-up or pacelaps)

Lap number 0 – FFFF Lap number of the track status change Green time 0 – FFFFFFFF Time in milliseconds (hex chars) Green laps 0 – FFFF Number of completed green laps. Yellow time 0 – FFFFFFFF Time in milliseconds (hex chars) Yellow laps 0 – FFFF Number of completed yellow laps. Red time 0 – FFFFFFFF Time in milliseconds (hex chars) Number of yellows 0 – FFFF Count of unique yellow periods. Current leader characters Car number of the leader of this time. Number of lead changes

0 – FFFF Number of times the lead has changed.

Average race speed characters Distance / time for the current leader Frequency: Each track status change (repeated e.g. every 20 seconds). Sample: <Header>Y|6F|4CAD63|B4|6358|13|4D2|4|01|5|130.456

Fieldname String part Data Track status Y Yellow flag Lap number 6F 111 Green Time 4CAD63 01:23:45.123 Green Laps B4 180 Yellow Time 6358 00:00:25.432 Yellow Laps 13 19 Red Time 4D2 00:00:01.234 Number of yellows 4 4 Current leader 01 01 Number of lead changes

5 5

Average race speed 130.456 130.456 mph $N – New leader information. Fieldname Data description Comments Number characters 4 characters maximum. Unique identifier 0 – FFFF A unique identification number. Lap number 0 – FFFF Lap number of the leader change Elapsed time 0 – FFFFFFFF Time in milliseconds (hex chars) Lead change index 0 – FFFF Nth leader change during the session.

Frequency: Each time a leader change occurs.

Page 9: Multiloop Timing Protocol

Multiloop Timing Protocol (v1.3)

Sample: <Header>01|469D|45|4CAD63|20

Fieldname String part Data Number 01 01 Unique identifier 469D 18077 Lap number 45 69 Elapsed time 4CAD63 01:23:45.123 Lead change index 20 32

Level 3 $C – Completed lap results. See level 2 definition. $S – Completed section results. See level 2 definition. $F – Flag information. See level 2 definition.

Level 4 $E – Entry information. Fieldname Data description Comments Number characters 4 characters maximum Unique identifier 0 – FFFF A unique identification number per run. Driver name characters Start position 0 – FF Field count 0 – FF The number of entry fields that follow. Data for each field (field count times) Field characters Competitor identifier 0 - FFFF Unique ID for all the runs

Frequency: Repeated e.g. every 15 seconds. Sample: <Header>01|469D|P. Tracy|2|3|Firestone|Reynard|Honda|B5A8

Fieldname String part Data Number 01 01 Unique identifier 469D 18077 Driver name P. Tracy P. Tracy Start position 2 2 Field count 3 3 fields to follow Field Firestone Firestone Field Reynard Reynard Field Honda Honda Competitor identifier B5A8 46504

Page 10: Multiloop Timing Protocol

Multiloop Timing Protocol (v1.3)

$R – Run information. Fieldname Data description Comments Event name characters Official name of the event. Event short name characters A short version of the event nam Run name characters Official name of the run. Run type P, Q, S, R P

Q S R

Practice Qualify Single car qualifying Race

Start time / date 0 – FFFFFFFF Time in seconds since 1/1/70. Frequency: Repeated e.g. every 15 seconds. Sample: <Header>This is event 1|Event 1|Race 1|R|BC6AD080

Fieldname String part Data Event name This is event 1 This is event 1 Event short name Event 1 Event 1 Run name Race 1 Race 1 Run type R Race Start time / date BC6AD080 1/3/2000, 12:00

$T – Track information. Fieldname Data description Comments Track name characters Official track name. Venue characters Short form of the track name. Track length nn.nnnn Length in miles Number of sections 0 – FF The number of sections that follow. Data for each section (number times) Section name characters 3 characters maximum. Section length nnnnnn Length in whole inches Section start label characters 4 characters maximum. Section end label characters 4 characters maximum.

Frequency: Repeated e.g. every 30 seconds.

Page 11: Multiloop Timing Protocol

Multiloop Timing Protocol (v1.3)

Sample: <Header>Indianapolis Motor Speedway|IMS|2.5|2|PIT|2345|PI|PO|

TU1|1234|T1|T2

Fieldname String part Data Track name Indianapolis

Motor Speedway Indianapolis Motor Speedway

Venue IMS IMS Track length 2.5 2.5 miles Number of sections 2 2 section follow Section name PIT PIT section Section length 2345 2345 inches Section start label PI PI Section end label PO PO Section name TU1 Turn 1 section Section length 1234 1234 inches Section start label T1 T1 Section end label T2 T2

$A – Announcement information. Fieldname Data description Comments Msg number 0 – FFFF Assigned sequentially Action A, D, M A

D M

Add Delete Modify

Priority U, H, N, L U H N L

Urgent High Normal Low

Timestamp 0 – FFFFFFFF Time in seconds since 1/1/70. Text characters Maximum length: 200 characters.

Frequency: Repeated e.g. every 60 seconds. Sample: <Header>2F|A|U|BC6AD080|This is an urgent message

Fieldname String part Data Msg number 2F 47 Action A Add Priority U Urgent Timestamp BC6AD080 1/3/2000, 12:00 Text This is an urgent

message This is an urgent message

Page 12: Multiloop Timing Protocol

Multiloop Timing Protocol (v1.3)

$V – Version stream information. Fieldname Data description Comments Major 0 – FFFF Major part of version number of Multiloop

Timing Protocol (hex chars) Minor 0 – FFFF Minor part of version number of Multiloop

Timing Protocol (hex chars) Info Characters User defined field, maximum length: 200

characters. Frequency: Repeated e.g. every 60 seconds. Sample: <Header>1|2|Time

Fieldname String part Data Major 1 Minor 2

Version 1.2

Info Timeas. Timeas.

Timeas.