Svenska Orienteringsförbundet

Inlägg i OLA > Egen online-klient

  • Sten Likuet
    måndag 22 mars 2021 klockan 12:14

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

  • Jon Jensen
    torsdag 11 februari 2021 klockan 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
    tisdag 9 februari 2021 klockan 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
    torsdag 4 oktober 2012 klockan 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
    tisdag 2 oktober 2012 klockan 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
    torsdag 27 september 2012 klockan 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
    torsdag 27 september 2012 klockan 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?

Annonser

Bagheera