Swedish Orienteering Federation

Posts in OLA > Egen online-klient

  • Sten Likuet
    Monday 22 March 2021 at 12:14

    Lyckades du få svar på din fråga?https://se.wikipedia.org/wiki/Portal:Forside

  • Jon Jensen
    Thursday 11 February 2021 at 16:50

    Ghidra to the rescue ;)
    https://www.nsa.gov/resources/everyone/ghidra/

    Formatet för SI verkar se ut ungefär som nedan:

    // Lines looking like "<lastid>;<hexcode>" with no hypens.
    // Hexcode=13 bytes as below
    //000000006501e24002D0000000
    //        ssccccccttttww
    // s=station, c=cardId, t=time, w=siextrabyte (lsb=12h-bit)

  • Jon Jensen
    Tuesday 9 February 2021 at 7:46

    Är formatet för det pollade protokollet ("Hämta stämplingar från server") fortfarande okänt?

    Jag har också försökt få ut det via MeOS-sourcen, men MeOS verkar vara mer förlåtande än OLA och jag lyckas inte få OLA att acceptera mitt testdata.

  • Ulf Bergqvist
    Thursday 4 October 2012 at 11:29

    Protokollet som OLA använder för att prata med server är inte specielt bra och inte dokumenterat. Därför rekommenderar jag att inte använda det. Eventuellt kommer det att ersättas med något bättre framöver och i så fall ska vi se till att dokumentera det så att egna serverlösningar kan användas.

  • Peter Löfås
    Tuesday 2 October 2012 at 15:03

    Hej, jag har en .NET applikation för mina Radiokontroller som skickar in i OLA via SIRAP

    Uppkoppling sker med TCP (alltid mot port 10001 för OLA). För OE2003 är det port 10000 + TävlingsID

    OE2010 har ändrat formatet för stämplingar via SIRAP, så dom stödjer inte gamla klienter

    Metoden som skickar (C#)
    ====

            private static void sendSirapPunch(int chipNo, DateTime punchTime, DateTime zeroTime, int control, TcpClient client)
    {
    DateTime ZeroTime = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 0, 0, 0);
    ZeroTime.AddHours(zeroTime.Hour);
    ZeroTime.AddMinutes(zeroTime.Minute);
    NetworkStream ns = client.GetStream();
    byte[] msg = new byte[15];
    msg[0] = (byte)0x00;
    msg[1] = (byte)control; // == CSI
    msg[2] = 0; // csi hi
    msg[3] = (byte)(chipNo & 0xff);
    msg[4] = (byte)((chipNo >> 8) & 0xff);
    msg[5] = (byte)((chipNo >> 16) & 0xff);
    msg[6] = (byte)((chipNo >> 24) & 0xff);
    msg[7] = 0;
    msg[8] = 0;
    msg[9] = 0;
    msg[10] = 0;
    int time = (int)(punchTime.TimeOfDay.TotalMilliseconds / 100 - ZeroTime.TimeOfDay.TotalMilliseconds / 100);
    if (time < 0)
    time += 10 * 60 * 60 * 24;
    msg[11] = (byte)(time & 0xff);
    msg[12] = (byte)((time >> 8) & 0xff);
    msg[13] = (byte)((time >> 16) & 0xff);
    msg[14] = (byte)((time >> 24) & 0xff);
    ns.Write(msg, 0, 15);

    }

    ==== 

     

  • Henrik Ortman
    Thursday 27 September 2012 at 21:45

    Jag har också pysslat med samma sak.
    Angende SIRAP TCP/IP så luskade jag ut formatet via källkoden till MEOS.
    Jag har dock inte tagit mig tid att prova det fullt ut utan bara konstaterat att det fungerade med mitt terminalprogram.

     

  • Conny N
    Thursday 27 September 2012 at 15:40

    Hej

    Jag leker med en egen lösning för online-kontroller och funderar på hur jag ska få in dessa i OLA automatiskt. Vad jag kan se finns det två vägar, antingen 1) "Automatisk registrering av passertid" eller 2) "Hämta stämplingar från server".

    Eftersom det inte kommer vara någon kontrollenhet kopplad till dator i samma nätverk blir det för alt 1 att koda en egen klient som kommunicerar med OLA genom SIRAP TCP/IP. Någon som vet hur protokollet ser ut? Vad gör knappen "Mappningsfil" i OLA?

    Vad gäller alt 2 hittar jag inget om det i hjälpsystemet för OLA. Det verkar dock som att en server pollas på stämplingar, vilket i mitt fall nog skulle vara enklare. Men hur ser anropen ut och hur ska svaren vara?

Advertisements

Bagheera