Swedish Orienteering Federation

Posts in OLA > Justerings tid på kontroller

  • Magnus Johansson
    Friday 12 April 2013 at 11:21

    Det är inte särskilt mycket svårare att ändra i en databas av den inbyggda typen än i en MySQL-databas. Det jobbigaste är att H2-applikationen och OLA inte kan läsa i samma databas samtidigt, så man måste stänga ner OLA för att kunna göra ändringar. Om man gör ändringar hemma på kammaren efter en tävling är det inget större problem, men det vore jobbigt om man vill fixa något "live" under pågående tävling.

    Jag använde mig av följande script:

    UPDATE PUNCHINGENTRIES
    Set punchingtime =  DATEADD(ss, 3600, punchingtime)
    where punchingcode = 55;

    Där 3600 är tiden (i sekunder) som enheterna gick fel (i det här fallet en timme efter) och 55 är kodsiffran. Detta givet att alla stämplingar vid kodsiffra 55 var en timme fel. Om man haft två enheter med samma kodsiffra där den ena gått rätt blir det klart svårare, då måste man titta på varje löpares föregående stämpling också för se om man ska justera tiden eller inte.

    I mitt fall hamnade en del av stämplingarna före nolltiden, vilket gjorde att de hamnade 12 timmar fel. Nolltid 09:00 tolkas av OLA som att alla stämplingar gjorts mellan 09 och 21, varför en stämpling 08.45 blir 20.45 i OLA. De stämplingar som hamnade före nolltiden (dvs efter 21 när jag justerat för kontrollenhetens fel) fick jag sedan dra ifrån 12 timmar på stämplingstiden med följande skript:

    UPDATE PUNCHINGENTRIES
    Set punchingtime =  DATEADD(ss, -43200, punchingtime)
    where punchingtime > '2013-04-07 21:00:00';

    där 2013-04-07 21:00:00 är nolltiden + 12 timmar.

    Jag antar att man kan uppdatera tider för start och mål också, men jag har inte koll på vilken tabell och vilka fält som gäller för det, eftersom jag inte drabbades av det själv.

  • Felix Alnervik
    Friday 12 April 2013 at 11:10

    Nja, jag är inte helt säker på att starttiden egentligen hamnade före nolltiden. Vad jag minns satte jag den på 17:00 och de startade strax efter 18, alltså bör det varit strax efter 17 enligt start enheten.

    Om jag förstår dig rätt fick du gå in i SQL databasen och ändra alla personer som passerade de felande kontrollerna.
    Gjorde du ett script som körde igenom automatiskt eller du tog en och en?

    Har grunläggande kunsaper i SQL så jag har inga problem att gå in och ändra där.

    Problemet var nu att jag körde den inbyggda databasen. Men nu inser jag att jag altlid skall köra MySQL, så mycket lättare att fixa saker själv då =)

    Vad jag minns finns denna tidsjustering i OE/MT samt MeOS. Dock såg jag nu i MeOS att man bara kunde justera kontroller, inte  start och mål.

    Får se till att SI enheterna är "up to date" nästa gång, alltså jag får lämna över det ansvaret =)

  • Magnus Johansson
    Friday 12 April 2013 at 9:07

    Att du inte såg starttiden gissar jag beror på att den hamnade före den nolltid du satt för tävlingen, kan det stämma?

    Jag råkade ut för precis samma sak på vår tävling i helgen. I vårt fall var det ca en tredjedel av alla kontroller och flera hundra drabbade löpare. Som tur är gick dock både startenheter och målenheter rätt, det var "bara" kontroller som var drabbade.

    I dialogen Felande löpare kan du väl bara ändra löpare som inte har godkänt resultat? De löpare som fått godkänt, men med skumma sträcktider, kommer du inte kunna ändra den här vägen.

    Jag löste problemet genom att redigera direkt i databasen, med hjälp av ett skript. Det här är inget du bör försöka dig på om du inte har goda kunskaper inom SQL. Om du kört med MySQL så använder du MySQL Workbench och om du kört med den inbyggda databasen kan du ladda ner ett verktyg på http://www.h2database.com. Den tabell du ska titta på är PunchingEntries, och det är fältet PunchingTime du ska uppdatera.

  • Felix Alnervik
    Friday 12 April 2013 at 8:27

    Kan man i OLA på en specifik kontroll lägga till eller ta ifrån tid?
    Om enheten i skogen har fått fel tid inprogrammerad.

    Ifall man upptäcker att sträcktiderna för alla löpare blir fel och man inser att denna enheten går tex en timme back. Kan man då lägga till 60min, så att OLA rättar till felet?

    Råkade ut för detta igår på en träning där jag testade OLA.
    Slutade med att jag hade problem med SI enheterna istället =)
    Hade skrapat ihop lite enheter och tyvärr tänkte jag inte så långt att de kunde ha olika tid. Start och Mål var programmerade efter vintertid :/

    Hittade inte något där man administrerar kontrollerna.
    Gick istället in och hittade vart jag skulle justera felande löpare.
    Kunde där justera löparnas måltider, en efter en. Men där fanns ingen starttid. Trodde från början detta var felet. Men när jag skrev ut sträcktider via en vanlig SportIdent printer så fanns där en starttid, dock 1 timme för tidig.
    Varför såg jag ingen starttid i OLA? Då hade jag "lätt" kunnat ändra detta för löparna manuellet.

    Men hur gör man om man har en tävling med flera undra löpare?

    CS221

    CS222

    CS224

Advertisements

Bagheera