Innhold

Introduksjon

LiveRes består av en web-komponent og en PC-klient. PC-klienten er et Windows-program som leser resultater fra eTiming- eller Brikkesys-databasen og sender dem til en web-server. For løp med Time4o hentes resultatene direkte fra Time4o sin database i skyen. Dette muliggjør online resultatvisning fra løp der tidtaking gjøres med eTiming, Brikkesys og Time4o.

LiveRes er basert på og videreutviklet fra åpen kildekode publisert av Peter Löfås. Sammenlignet med den originale kildekoden er det lagt til funksjonalitet for å lese eTiming-, Brikkesys- og Time4o-baser. Mange funksjoner for webpresentasjon er også oppdatert. Det originale prosjektet viser resultater på liveresultat.orientering.se.

LiveRes-kildekoden finnes åpent på GitHub.

Korte guider

eTiming og Brikkesys

  1. Kontakt Pål Kittilsen (pal.kittilsen@gmail.com) for å få tilsendt brukernavn og passord til admin-siden, samt lenke til nedlasting av konfigurasjonsfil for LiveRes PC-klient.
  2. Opprett arrangementet på siden https://liveres.live/adm/. Merk at organizer og date må være det samme som i eTiming. Noter deg CompetitionID som blir opprettet.
  3. Last ned og pakk ut klientprogrammet herfra: GitHub. Erstatt config-filen med den du lastet ned via lenken i punkt 1.
  4. Start programmet Liveresults.Client.exe
  5. Velg eTiming, Brikkesys eller IOF XML (Time4o), og koble til en aktuell løpsdatabase. Skriv inn CompetitionID som ble notert under punkt 1.
  6. Start synkronisering, og resultatene publiseres på https://liveres.live

Time4o

For Time4o-løp hentes resultatene direkte fra Time4o sine servere. Det gir liten tidsforsinkelse og krever kun et enkelt oppsett. Man kan i tillegg velge å registrere løpet i LiveRes sin base (se informasjon om bruker og passord over). Da får man tilgang til mange LiveRes-spesifikke funksjoner, blant annet online strekktider.

  1. For å få Time4o-løp synlig i LiveRes må valget Vis løp i LiveRes være aktivt i Time4o. Se hjelpesidene til Time4o.
  2. Resultater i Time4o kommer automatisk opp i LiveRes så lenge det er aktive synk-oppgaver på løp- og klassedata og påmeldingsdata mot Time4o Center.

Disse to stegene er tilstrekkelige for visning av Time4o-løp i LiveRes-format. Videre forklares det hvordan man registrerer løpet i LiveRes sin løpsbase og får tilgang til flere funksjoner som strekktider, speakervisning, meldinger, startregistrering, løpere i skogen, Livelox-kobling og justerbare visningsparametere. Gjør dette for å koble Time4o-løpet til et LiveRes-løp (forutsetter at punkt 1 og 2 er utført):

  1. Gå til admin-siden til LiveRes og trykk deretter på Connect Time4o events på øverste meny-linje.
  2. Velg aktuelt løp fra listen over Time4o-arrangementer, og fyll deretter ut skjemaet som følger. Når man lagrer, får løpet en LiveRes-ID og er klart for visning i LiveRes.
  3. Fra admin-siden i LiveRes får man lenker til meldingstjenesten, startregistrering m.m.
  4. For å få online strekktider til løpet må disse hentes via en eksportfunksjon i Time4o og brukes sammen med LiveRes sin PC-klient.

Oppsett av løp på LiveRes admin

Admin siden

Fra admin-siden https://liveres.live/adm/ kan man nå en rekke funksjoner knyttet til løpet. Når man holder musepekeren over aktuelt løp, kommer det opp en meny (merk at det er en kortere meny for Time4o-løp):

Skjermbilde

Linkene er som følger:

Opprette løpet

Main competition data

Appearance

Online Entry

Multi-day competition

Her finner man linker og QR-koder til resultatsiden, online påmelding og online brikkeendring.

Radio Controls

Under denne overskriften følger det flere lenker for sletting, tillegg og redigering av meldepostoppsettet. Merk at dersom man redigerer meldeposter må man samtidig ta bort krysset for Update radio controls i klienten for å bevare endringene etter oppstart av klienten (se tilkobling til eTiming for dette valget).

Skjermbilde

Mellomtidseditoren

Bruk av premie-/kvalifiseringsgrenser

Merk at for Time4o-løp kan disse grensene settes i Time4o.

Bruk av kvalifiseringsgrenser (kan også brukes for premiegrenser) gir en linje i resultatlista på angitt plassering. Dersom denne funksjonen skal brukes, legges det inn hvilke klasser dette gjelder for, adskilt med komma. Klassene oppgis med anførselstegn rundt klassenavnet: Skjermbilde

Dersom det ikke er angitt noen klasser, brukes samme grense for alle klasser i løpet. Dersom det oppgis én klasse mindre enn antall grenser, brukes den siste grensen for resterende klasser.

Grense angitt som heltall tilsvarer grensen i plassering. -1 betyr at det ikke skal vises grense for klassen. Et tall mellom 0 og 1 angir grensen som en fraksjon av antall startende (ikke startet trekkes fra). F.eks. for å indikere ⅓ premiering angir man 0.333 for de aktuelle klassene. Antallet rundes av oppover.

Opplasting av resultater

Installasjon av klient

En PC-klient for opplasting av resultater er nødvendig for eTiming og Brikkesys. For Time4o trengs en slik klient for opplasting av strekktider.

Last ned siste versjon fra GitHub releases. Pakk ut filene i en katalog du enkelt finner tilbake til. Config-fil må lastes ned via lenke (se punkt 1 i eTiming og Brikkesys) og legges i samme katalog. Config-filen inneholder adresse, bruker og passord til SQL-databasen på nett. Klienten startes ved å åpne filen som ender på “.exe”.

Start LiveRes-klienten ved å starte EXE-filen som ble pakket ut fra ZIP-filen (se installasjon). Når man starter LiveRes-klienten, ledes man gjennom noen steg for å koble klienten mot Time4o (velg IOF XML) eller den lokale eTiming- eller Brikkesys-basen. For eTiming støttes både Access og Microsoft SQL Server (f.eks. MS SQL Express).

Du kan koble klienten til eTiming- eller Brikkesys-basen over det lokale nettet, eller kjøre klienten på samme PC som basen ligger. Fordelen med at klient og baser er på samme PC er at man ikke belaster det lokale nettverket ved spørringene som gjøres. PC med klienten må ha internett-tilkobling.

Skjermbilde

Tilkobling til Time4o (for strekktider)

For å laste opp strekktider for Time4o bruker man fileksport via en URL. I Time4o setter man opp en link som LiveRes-klienten bruker for å hente resultater og strekktider.

Oppsett i Time4o:

  1. Under resultater trykker man på knappen med tre prikker og velger Strekktider LiveRes for å komme til innstillinger for denne oppgaven.
    Skjermbilde
  2. Nede på siden trykker man på DELINGER og deretter på pluss-knappen for å opprette en ny deling:
    Skjermbilde
  3. Ved oppsett av delinger krysser man av for Kjør oppgave og trykker deretter på LAGRE.
    Skjermbilde
  4. Kopier delingslenken som blir opprettet (den er på formatet https://app.time4o.com/share/xxx....):
    Skjermbilde
  5. Start LiveRes klienten og velg IOF XML
  6. Lim inn delingslenken i feltet Export URL. Fyll også inn løps-ID (CompetitionID) og klubb (Organizer) som må stemme med det som ble lagt inn da løpet ble opprettet på admin-siden av LiveRes. Sett refresh tid (oppdateringsfrekvens). Anbefalt oppdateringstid for strekktider er hver 60 til 120 sekunder.
    Skjermbilde
  7. Trykk på Start upload, og data sendes til LiveRes sin webserver.
  8. For å spare mobildata kan gjerne PC-klienten kjøre på en PC som står med fast nett-tilkobling (og ikke trenger å være fysisk der løpet pågår). Pass da på at aktuell PC ikke går i dvale.

Tilkobling til eTiming

Om man velger opplasting fra eTiming, kommer man etter hvert til siden vist under.

Skjermbilde

Tilkobling til Brikkesys

Brikkesys-klienten har færre valg enn eTiming klienten. Klienten kjøres hvert 3. sekund og oppdateres fra meldinger. Strekktider lastes alltid opp til server.

Etter å ha valgt Brikkesys, skriver man inn login info til Brikkesys-databasen:

I neste trinn velger man hvilket løp som skal kobles opp.

Deretter får man opp en side hvor man skriver inn:

For Brikkesys, må meldeposter legges inn manuelt via Radio control editor. Formatet som brukes står øverst på siden i editoren. Meldeposter i klasser uten visning av tid eller urangerte får mellomtider inn på negative postkoder. F.eks. om en meldepost har kode 31, får vanlige klasser dette inn på kode 1031, mens de nevnte klassene får det på kode -1031.

Oppsett av tidtakings-database

Dette kapittelet gjelder bare for eTiming og Brikkesys.

Klasser og visningstyper

Ved oppstart (se kapittel opplasting på nett) vil PC-klienten lese klasser, tidtakingstype og mellomtidsoppsettet fra valgt kilde, slik at det er i tidtakingsprogrammet man modifiserer disse opplysningene. Dette gjelder også for stafetter.

LiveRes støtter ulike tidtakingstyper som settes i klasseoppsettet:

Løypelengder og løypenavn

Løypelengder og løypenavn hentes fra løypetabellen i eTiming og Brikkesys dersom dette er angitt:
Skjermbilde

Løypelengden (angitt i kilometer) publiseres sammen med klassenavnet og brukes også for å beregne kilometertider (m/km):
Skjermbilde

Dersom flere løyper er i bruk i samme klasse (f.eks. i stafetter), vises korteste og lengste løypelengde:
Skjermbilde

I stafetter vil en løper få beregnet kilometertid basert på lengden på den gaflingsvarianten løperen har løpt.

Mellomtidsoppsett

I løp som bruker Time4o, leses mellomtidsoppsettet direkte fra Time4o.

For Brikkesys, må meldeposter legges inn manuelt via Radio control editor. Formatet som brukes i dette oppsettet står øverst på siden i editoren.

Det som følger under gjelder for eTiming:

LiveRes-klienten leser mellomtidsoppsettet som angis i eTiming via menyen Resultat -> Registrer GPRS stasjoner. Stafetter er et spesialtilfelle som omtales i neste kapittel.

Man setter opp meldeposter per løype. Alle klasser som benytter aktuell løype får det angitte oppsettet. Følgende er det viktig å passe på:

Fra versjon 2023-08-13 kan man bruke tekstkodene “{dist}” og “{no}” for å hente ut data fra løypene i eTiming og beregne lengden og/eller postnummeret på aktuell meldepost. “{dist}” blir erstattet med teksten “xx,xkm”, og “{no}” erstattes med postnummeret på formatet “#x”. Tekstkodene kan brukes hver for seg eller sammen, og kan kombineres med fri tekst foran, mellom og/eller etter. Dersom man bruker “{dist}” og det ikke er fylt inn noe i Distanse-feltet for aktuell meldepost, settes beregnet distanse inn for bruk til verifisering av mellomtider (se forklaring over).

Eksempel på oppsett:
Skjermbilde

Som gir dette resultatet:
Skjermbilde

Stafett

Stafetter støttes i LiveRes for alle typer system: Time4o, eTiming og Brikkesys. Oppsettet i Time4o gjøres direkte der. Oppsett i Brikkesys gjøres via Radio control editor. Det følgende gjelder oppsett i eTiming:

Stafetter behandles noe spesielt da etappetid vises ved meldeposter og i mål for etappe 2 og senere. Stafetter identifiseres automatisk ved at løpstype orientering, stafett eller langrenn, stafett er valgt i eTiming (løpstype 3 eller 6).

For stafetter brukes løypekoden/nummeret som klassen er satt opp med og ikke de enkelte løperne (som gjerne har forskjellig pga gafling). Klienten takler individuelle klasser sammen med stafettklasser i samme base/arrangement.

Skjermbilde

Eksempel på oppsett for stafett i eTiming.

LiveRes støtter omstart i stafett. Når man registrerer at lag har gått ut på fellesstart i eTiming, vil disse lagene rangeres bak lag som har unngått omstart, selv om totaltiden er kortere. I web-visningen markeres sammenlagttider der det har vært omstart med en stjerne. Se eksempelet under.

Skjermbilde

Indikasjon på omstart er vist for laget på 7. plass med en stjerne bak lagets tid.

Jaktstart

Oppsettet i Time4o gjøres direkte i Time4o. Det følgende gjelder eTiming og Brikkesys. Oppsett i Brikkesys gjøres i Radio control editor.

For klasser der det er krysset av for jaktstart, vil klienten laste opp passeringstider og totaltid/sammenlagttid for hver meldepost og i mål (samme oppsett som for stafetter).

Sammenlagttiden er etappetid + grunnlagstid. I Brikkesys er grunnlagstid forskjellen mellom løperens starttid og klassens starttid. I eTiming er det to muligheter: Dersom det finnes en tid i feltet Totaltid brukes denne som grunnlagstid. Dette feltet oppdateres automatisk av eTiming ved bruk av flerdagers arrangement. Dersom feltet ikke er fylt inn, vil LiveRes klienten sette grunnlagstid lik forskjellen mellom løperens starttid og klassens starttid.

I eTiming sjekkes det også på hvor mange godkjente løp en løper har før jaktstarten. Dersom det mangler godkjente løp, settes status på løperen til utenfor konk. og disse løperne rangeres nederst på resultatene. Det sjekkes på antall løp mot hvilket dagnummer løpet er. F.eks. dersom det er jaktstart dag 3, vil bare løpere som har 2 godkjente løp før jaktstarten få godkjent jaktstart. Merk da at dersom det arrangeres jaktstart på dag 1 (man oppretter jaktstart manuelt), må løpere som ikke skal telle i jaktstarten settes til -1 antall løp. Det er feltet Ant løp som brukes til dette.

Dersom man skal lage meldepostoppsettet manuelt for jaktstart (aktuelt for Brikkesys), må man passe på å opprette “meldepost” for starttid, etappetid og både passeringstider og etappetider for hver meldepost. Se dette eksempelet.

Sprint

LiveRes klienten behandler løpstype sprint i eTiming noe spesielt. Typisk anvendelse er langrennssprint der det gjennomføres prolog og finaleheat (kvartfinaler-semifinaler-finaler).

I dette tilfellet leser klienten om resultatene skal behandles som prolog eller et av finaleheatene. Det opprettes egne klasser for hvert tilfelle som vises i web-visningen.

Online påmelding og brikkebytte

Via egne sider er det mulig å sette opp online påmelding/etteranmelding og selvbetjent brikkebytte. Time4o har egne funksjoner for dette.

Påmelding

LiveRes tilbyr en egen side for online påmelding med støtte for eTiming-baser (ikke støtte for Brikkesys foreløpig).

Det er kun mulig å melde seg på i klasser der det er definert løpere med status ledig i eTiming (ønsker man ledige plasser som ikke skal være tilgjengelig for påmelding, kan man bruke status avmeldt for disse).

Man velger om brukeren selv skal kunne opprette en ny klubb. En grunn for at man ikke ønsker at klubber opprettes, er å sikre at man har faktura-informasjon til klubber som direktepåmeldte benytter.

Klienten må være aktiv for å åpne web-påmeldingen. I klienten må det være krysset av for å tillate oppdatering via meldinger (Update eTiming from Messages). Oversikt og logg med påmeldinger finnes i meldingstjenesten knyttet til løpet.

Teknisk fungerer funksjonen ved at klienten leser eTiming-basen og legger opp løpere med status ledig ut på webserveren. Påmeldingssiden etterspør hvilke klasser det finnes ledige plasser i, og tilbyr disse i en nedtrekksmeny. Det samme gjelder hvilke klubber som er tilgjengelige. Videre sjekkes det for unikt brikkenummer før det genereres en melding til LiveRes meldingssenter med data om den nye påmeldte løperen. Denne meldingen plukkes opp av klienten som gjør automatisk tildeling av ID og evt startnummer i eTiming basen.

Det er link og QR-kode tilgjengelig fra admin-siden for aktuelt løp.

Skjermbilde

Brikkebytte

LiveRes har også en egen side for online brikkebytte med støtte for både eTiming og Brikkesys baser. Time4o har egen funksjon for dette.

Klienten må være aktiv for at brukeren skal få tilbakemelding om vellykket oppdatering. Brukeren kan likevel legge inn endringer med inaktiv klient. Da vil endringene først bli gjennomført ved oppstart av klienten. I klienten må det være krysset av for å tillate oppdatering via meldinger (“Update eTiming from Messages”). Oversikt og logg med endringene finnes i meldingstjenesten knyttet til løpet.

Endringen gjennomføres ved at man søker opp aktuell løper fra deltakerlista og legger inn brikkenummeret det skal byttes til. Dersom brikkenummeret allerede er i bruk, kan man ikke endre til dette nummeret. Endringen gjøres automatisk mot samme type brikke. Har en løper en emiTag og en EKT-brikke, og man legger inn et nytt emiTag-nummer, er det emiTag som blir endret.

Det er link og QR-kode tilgjengelig fra admin-siden for aktuelt løp.

Skjermbilde

Brikkesjekk

Brikkesjekk for eTiming og Brikkesys kan gjøres ved å bruke Torgeir Aunes brikkesjekkprogram (https://github.com/Taune/EmiTagCheck). Dette programmet leser startlista og kan foreta endringer av brikkenummer via LiveRes-databasen. Løpere som har sjekket brikken får grønn hake i startregistreringssiden og på siden over løpere igjen i skogen. Det finnes tilsvarende funksjonalitet i Time4o sin brikkesjekk.

Diverse spesielle visninger

Speaker-visning

Det er laget en egen side for speaker (tilgjengelig som lenke fra admin-siden). Eksempel

Denne siden er lik den ordinære LiveRes-websiden, bortsett fra at den har et søkefelt der man kan skrive inn startnummer. Søket gjøres blant alle løpere i aktuelt løp, og et treff gjør at klassen vises med den valgte løperen markert som vist under.

Siden har også ett døgns begrensning før den trenger bruker-interaksjon, mot 30 min for den vanlige web-siden.

Skjermbilde

Radiopost-visning

Som en del av live-tjenesten er det laget en side/scroll for visning av passeringstider. Dette er en side for arrangøren og speaker. Sidene viser inntil de 40 siste løperne som har passert valgte post. Her er et eksempel på en meldepost.

Som URL-en viser, setter man inn koden for den aktuelle onlineposten. Her er kodeoversikten:

Lenker til disse sidene, samt meldingstjenesten, finnes enklest fra “radio”-lenken på admin-siden: https://liveres.live/adm/

Radio-visningen har et input-felt for filtrering. Dette velger rader som har treff på denne søkestrengen. Funksjonen kan brukes dersom man vil vise noen utvalgte meldeposter i samme scroll, f.eks. alle forvarsel. Filterer da med en tekst som alle aktuelle meldeposter har i beskrivelsen.

Dersom man skal få inn starttider (0-post), må man huske å angi serienummeret til eLinken eller ETS i mellomtidsoppsettet og kalle opp denne i et tidtakervindu (for å få inn tider fra kode 0).

Det er også mulig å begrense hvilke startnummer man ønsker å få oppdatering fra på radio-visningen ved å bruke parameterne minbib og maxbib, f.eks. kun vise nummer mellom startnummer 1 og 30:

https://liveres.live/radio.php?comp=10017&code=1000&minbib=1&maxbib=30

Fargekodene på radio-siden er:

Startregistrering

LiveRes har en egen side tilpasset bruk av startere. URL-en har formatet: https://liveres.live/radio.php?comp=11176&code=0

På denne siden vises løperne i en periode før de skal i oppropssone (Før), i oppropssonen (Båser) og en tid etter de har startet (Etter). Det kan også filtreres på startnummer (Min no, Max no). Man velger tidsstart eller fristart (linker øverst til venstre).

I denne visningen vises løpere innenfor oppropstid med gul bakgrunn. Det er en tykk, svart strek som markerer overgangen til de som har startet. Man kan sende meldinger knyttet til løperne ved å trykke på meldingsknappen til høyre. Dette er spesielt aktuelt dersom løpere ikke starter. Se neste avsnitt.

Skjermbilde

Meldinger

LiveRes har en meldingstjeneste for kommunikasjon mellom start og tidtaker i målområdet. Ved å trykke på knappen ute til høyre på startsjekk-siden får man opp en dialog knyttet til aktuell løper (se bildet under). For registrerte løpere er standardteksten satt til ikke startet.

Skjermbilde

I løpskontoret kan man lese loggen fra start på en egen side, for eksempel denne:

https://liveres.live/message.php?comp=10023.

Skjermbilde

Dersom Vis alle er valgt, er alle meldinger i løpet synlige. Når man tar bort valget, vises bare aktive meldinger og tidligere meldinger knyttet til samme person eller brikke.

Fra meldingssiden kan man generere en ny melding knyttet til en person via lenken på personen. Det finnes også en lenke for å lage en generell melding i kolonnen Melding.

Øverst til venstre er det et høyttalersymbol. Når dette er aktivt får man et lydsignal når det kommer nye meldinger.

Om man har valgt Update eTiming from messages under oppstart av LiveRes-klienten, vil programmet prøve å endre eTiming-basen ved ikke startet og ved endring av brikkenummer. Triggere for dette ligger i bestemte felt i meldingsbasen som settes når disse meldingene opprettes. Dersom oppdateringen ikke var vellykket, lages det nye meldinger med informasjon om dette. Se for øvrig dokumentasjon av meldings-API under.

Oppsett av lokal web-server

Her følger en oppskrift på oppsett av lokal web-server. Med dette oppsettet kan man håndtere og vise resultater på PC og nettbrett som er koblet til et lokalt nett sammen med eTiming-basen. Da fristiller man seg fra internettforbindelsen og kan ha resultatservice og tilgang for speaker uten å være avhengig av internett.

Gjør følgende:

API for meldinger

Ikke startet

For å lage en melding som fører til at en løper blir satt til ikke startet, settes dns-flagget når meldingen sendes:
https://api.liveres.live/messageapi.php?method=sendmessage&comp=10001 &dbid=100&dns=1&message=ikke startet

I dette eksempelet er løpsID=10001 og løperID=100.

For å finne løpere og meldinger som skal behandles som ikke startet, kan metoden “getdns” brukes:
https://api.liveres.live/messageapi.php?method=getdns&comp=10001

Når man skal kvittere ut at aktuell melding er behandlet, brukes metoden “setdns” med dns lik 0:
https://api.liveres.live/messageapi.php?method=setdns&messid=191&dns=0

Brikkebytte

For å lage en melding som genererer et brikkebytte, angir man database-ID med negativ verdi lik nytt brikkenummer, og startnummer som del av eller som hele meldingen. Samtidig settes parameteren ecardchange til 1:
https://api.liveres.live/messageapi.php? method=sendmessage&comp=10001&dbid=-12345& ecardchange=1&message=startnummer:123

I dette eksempelet ønskes brikkebytte for startnummer 123 til nytt brikkenummer 12345.

Metoden for å finne de som skal bytte brikker er:
https://api.liveres.live/messageapi.php?method=getecardchange&comp=10001

For å sette dette som utført:
https://api.liveres.live/messageapi.php?method=setecardchange&messid=192&ecardchange=0

Brikke sjekket

URL for å sette at en brikke er sjekket er gjengitt under. Man kan bruke database-ID (dbid) eller startnummer (bib) for å identifisere løperen. Endringen settes i LiveRes-databasen og ikke i eTiming. Når en løper er markert med sjekket brikke, får løperen en grønn sjekkboks i radio-startsiden og status brikkesjekk i listen over løpere som er igjen i skogen.

API-kall for å sette at brikke er sjekket med database id:
https://api.liveres.live/messageapi.php?method=setecardchecked&comp=10002&dbid=1

API-kall for å sette at brikke er sjekket med startnummer:
https://api.liveres.livemessageapi.php?method=setecardchecked&comp=10002&bib=11

Betingelser for endringer

Betingelser for at en løper skal bli satt til ikke startet:

Betingelser for å bytte brikkenummer:

Hvilket brikkenummer oppdateres?

Kontakt

Ved spørsmål eller forslag til forbedring, ta kontakt med ansvarlig for LiveRes:

Pål Kittilsen
+47 957 45 855
pal.kittilsen@gmail.com