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);
}
====