; Defaults: 9600,8,N,1 ; ; Lynx Scoreboard Script Version 2.0 ; ; Copyright (c) 1995-2007 Lynx System Developers, Inc. ; ; Written by Kirk Sigel ; Edited by Jeff Feeney 7/10/2015 to include all fields in Finishlynx ver. 9.0. (New header and results fields) ; ; Notes: ; + Empty lines and lines that start with a semicolon are ignored. ; ; + Lines that start with two semicolons indicate a section header. ; Sections may be omitted, appear in any order, and occur more than once. ; The current section headers and their valid group codes are: ; ;;Initialization ; \10 \13 \17 \18 ; ;;TimeArmed ; ;;TimeRunning ; ;;TimePaused ; ;;TimeStopped ; ;;TimeGun ; ;;TimeBreak ; ;;TimeUpdate ; ;;TimeOfDay ; \11 \13 \17 \18 ; ;;Wind ; \12 \13 \17 \18 ; ;;StartListHeader ; ;;StartListTrailer ; ;;StartedHeader ; ;;StartedTrailer ; ;;ResultsHeader ; ;;ResultsTrailer ; \13 \17 \18 ; ;;StartList ; ;;Started ; ;;Results (or ;;Result) ; \13 \14 \17 \18 ; ;;MessageHeader ; ;;MessageTrailer ; \13 \15 \17 \18 ; ;;Message ; \13 \15 \16 \17 \18 ; The StartList*, Started*, and Results* sections may have an optional ; page number contained in square brackets immediately following the ; section name. If more than one page is defined for a section then each ; page will be shown, in order, when paging is enabled. Note that page ; numbers do not need to be contiguous; they are simply used to establish ; the order of pages. If a page number is omitted then a 0 (zero) is ; assumed. ; Some sections can be omitted and they will "fall back" to other ; sections. TimeOfDay falls back to TimeRunning. TimeArmed falls back to ; TimeRunning. TimePaused falls back to TimeStopped. The StartList* sections ; fall back to the Results* sections. The Started* sections fall back ; to the StartList* sections (after the StartList* sections have fallen ; back to the Results* sections if necessary). ; ; + Format lines must begin with a one byte group code and a one byte ; variable code. The special variable code \00 indicates that no variable ; is being requested. If a variable is requested it will be inserted where ; a '%s' printf style format specifier appears. There can only be one '%s' ; specifier in lines requesting a variable and no other printf format ; specifiers may appear. Remember, lines requesting a variable are used as ; a printf format string and therefore must behave as such. Lines not ; requesting a variable (variable code \00) can do whatever they want as ; these lines are not fed to a printf statement. ; The current group codes and their variable codes are: ; \10 Initialize ; \00 No variable ; \11 Time ; \00 No variable ; \01 Formatted time with tenth (when running) or hundredth (when ; stopped) precision ; \02 Binary time in milliseconds (4 byte little endian integer) ; \03 Formatted time with thousandth precision ; \04 Formatted time with ten thousandth precision ; \12 Wind ; \00 No variable ; \01 Formatted wind ; \02 Binary wind in hundredths of units (4 byte little endian integer) ; \13 Results Header/Trailer ; \00 No variable ; \01 OFFICIAL/UNOFFICIAL string ; \02 Event name ; \03 Wind ; \04 Event number ; \05 Round number ; \06 Heat number ; \07 AUTO/MANUAL start type ; \08 Number of participants ; \09 ARMED/RUNNING status ; \0a Distance ; \14 Result ; \00 No variable ; \01 Place ; \02 Lane ; \03 Id ; \04 Name ; \05 Affiliation ; \06 Time ; \07 Delta Time ; \08 Cumulative Split Time ; \09 Last Split Time ; \0a Laps To Go ; \0b License ; \0c ReacTime ; \0d Speed ; \0e Pace (Multi-event points for current event for LynxPad) ; \0f Best Split Time (Multi-event points for entire multi-event for LynxPad) ; \10 User1 ; \11 User2 ; \12 User3 ; \13 "From Image" Cumulative Split Time ; \14 "From Image" Window Number ; \15 Delta Time 2 ; \16 Delta Time 3 ; \17 First Name ; \18 Last Name ; \15 Message Header/Trailer ; \00 No variable ; \16 Message ; \00 No variable ; \01 Text ; \17 Break Time ; \00 No variable ; \nn Formatted break time nn ; \18 Break Name ; \00 No variable ; \nn Break name nn ; ; + Arbitrary 8 bit values are entered as \hh where h is a lowercase hex ; digit. Note that h must be lowercase. ; ; + Format lines can have the following commands embedded in them. ; Note that only 10 registers (indexed 0-9) are currently implemented. ; \U\hh Set the 'U' value to hh. It is reset after the next command. ; \Ui\hh Set the 'U' value to register[hh]. ; \X\hh Set the 'X' value to hh. It is reset after the next command. ; \Xi\hh Set the 'X' value to register[hh]. ; \=\hh register[hh] = {register[U]|X|1} (assign) ; \*\hh register[hh] = register[hh] * {register[U]|X|1} (multiply) ; \/\hh register[hh] = register[hh] / {register[U]|X|1} (divide) ; \#\hh register[hh] = register[hh] # {register[U]|X|1} (modulus) ; \+\hh register[hh] = register[hh] + {register[U]|X|1} (add) ; \-\hh register[hh] = register[hh] - {register[U]|X|1} (subtract) ; \<\hh register[hh] = register[hh] << {register[U]|X|1} (shift left) ; \>\hh register[hh] = register[hh] >> {register[U]|X|1} (shift right) ; \&\hh register[hh] = register[hh] & {register[U]|X|1} (bit and) ; \|\hh register[hh] = register[hh] | {register[U]|X|1} (bit or) ; \^\hh register[hh] = register[hh] ^ {register[U]|X|1} (bit xor) ; \~\hh register[hh] = ~register[hh] (bit invert) ; \!\hh register[hh] = !register[hh] (logical invert) ; \F\hh register[hh] = The result of running Function {U|0} on the ; next {X|} characters. ; \U\00 IDS checksum. ; \U\01 XOR checksum. register[hh] is used as the seed value. ; \U\02 ADD checksum. register[hh] is used as the seed value. ; \U\03 CRC-16. register[hh] is used as the seed value ; and register[hh+1] is the polynomial. ; \U\04 CRC-32. register[hh] is used as the seed value ; and register[hh+1] is the polynomial. ; \O\hh Output register[hh] as an {X|1} byte value using method {U|0}. ; \U\00 Binary little-endian (Intel byte order). ; \U\01 Binary big-endian (Motorola byte order). ; \U\02 ASCII text right justified space padded. ; \U\03 ASCII text right justified zero padded. ; \U\04 ASCII text left justified space padded. ; \U\05 ASCII text left justified zero padded. ; \S\hh Scan the next {X|1} bytes into register[hh] using method {U|0}. ; \U\00 ASCII text base 10. ; \U\01 Binary little-endian (Intel byte order). ; \U\02 Binary big-endian (Motorola byte order). ; \P\hh Run Procedure hh on the next {X|} characters. ; \P\00 Reverse characters. ; \P\01 Convert characters to Colorado Time format. Register[1] ; is the current character position on entry and the ; next character position on exit. ; \P\02 Convert characters to Daktronics AllSport format. ; \B\hh Delete {register[U]|hh} (to beginning of line if zero) characters ; before the cursor or until the string contains X characters. ; \D\hh Delete {register[U]|hh} (to end of line if zero) characters ; at the cursor or until the string contains X characters. ; \I\hh Insert {register[U]|hh} spaces at the cursor or until the string ; contains X characters. ; \Ic\hh Insert {register[U]|hh} {X's|spaces} at the cursor. ; \L\hh Move the cursor {register[U]|hh} positions to the left (to the ; beginning of the line if zero). ; \R\hh Move the cursor {register[U]|hh} positions to the right (to the ; end of the line if zero). ; \He\hh Halt if register[hh] == {register[U]|X|0}. ; \Hn\hh Halt if register[hh] != {register[U]|X|0}. ; \Hl\hh Halt if register[hh] < {register[U]|X|0}. ; \Hm\hh Halt if register[hh] <= {register[U]|X|0}. ; \Hg\hh Halt if register[hh] > {register[U]|X|0}. ; \Hh\hh Halt if register[hh] >= {register[U]|X|0}. ; Note that numbers 0 thru 9 can be entered directly for single character ; embedded commands. For example, '\U\04' is the same as '\U4' and ; '\=\01' is the same as '\=1'. ; ; + Be very careful about whitespace in each format line. Characters other ; than '%s' specifiers and embedded commands and values will be sent ; exactly as they appear on the line. This means, for instance, that using ; tabs to make a line 'look right' in your favorite editor will cause ; tabs to be sent to the scoreboard instead of the equivalent number of ; spaces (probably not what you wanted). ; ; The format lines follow. ;;Initialization ; This is sent once to initialize the scoreboard. ;;TimeRunning ; This is sent approximately 10 times per second. ; Setting register[0] to 1 in a format line will cause that line and ; subsequent lines to only be sent once per second (when the seconds ; digit changes) instead of approximately 10 times per second. Setting ; register[0] to 0 will resume normal operation for remaining lines. \11\01\0d10120 %12.12s\0d9 ;;TimeStopped ; This is sent when the time is stopped by a beam break. \11\01\0d10120 %12.12s\0d9 ;;TimeOfDay ; This is sent when the 'Send time of day' option is checked in the ; Scoreboard pull down menu. \11\01\=0\0d10120 %12.12s\B4 \0d9 ;;ResultsHeader ; This is sent once each time the scoreboard is updated with results. It ; is sent before any result lines are sent. ; Header \13\00\0d10120\I2 ; 12 spaces where the time goes plus 20 rfu spaces \13\00\I\20 ; Official \13\01%-10.10s ; Event name \13\02%-36.36s ; Wind \13\03%-10.10s ; Event number \13\04%4.4s ; Round number \13\05%2.2s ; Heat number \13\06%3.3s ; Auto/Manual start \13\07%-6.6s ; Number of participants \13\08%2.2s ; Armed/Running Status \13\09%8.8s ; Distance \13\0a%5.5s ; 10 rfu spaces \13\00\I\0a ;;ResultsTrailer ; This is sent once each time the scoreboard is updated with results. It ; is sent after all result lines are sent. ; Line codes are identical to the ResultsHeader line codes. \13\00\0d9 ;;Result ; This is sent once for each result line displayed on the scoreboard. ; Register[0] is initialized with the index of the current result line and ; will range from 0 through . ; ; Place \14\01%3.3s ; Lane \14\02%2.2s ; Id \14\03%4.4s ; Name \14\04%-30.30s ; Affiliation \14\05%-28.28s ; Time \14\06%11.11s ; Delta Time \14\07%11.11s ; Cumulative Split Time \14\08%11.11s ; Last Split Time \14\09%11.11s ; Laps to Go \14\0a%2.2s ; License \14\0b%8.8s ; ReacTime \14\0c%6.6s ; Speed \14\0d%3.3s ; Pace \14\0e%4.4s ; Best Split Time \14\0f%11.11s ; User1 (user defined fields added in 8.0) \14\10%12.12s ; User2 \14\11%12.12s ; User3 \14\12%12.12s ; "From Image" Cumulative Split Time (13-18 added 9.0) \14\13%11.11s ; "From Image" Window Number \14\14%2.2s ; Delta Time 2 \14\15%11.11s ; Delta Time 3 \14\16%11.11s ; First Name \14\17%-15.15s ; Last Name \14\18%-15.15s ; 54 rfu spaces \14\00\I\36