Configuración de Exportadores de Datos Brutos

Configuración de Exportadores

Cuando se inicia, un exportador enviará automáticamente los datos correspondientes al recibir un disparador válido. Se pueden configurar y ejecutar múltiples exportadores simultáneamente.

Los exportadores se envían para participantes individuales, por lo tanto, el disparador, el filtro y los datos siempre hacen referencia al registro individual del participante.

Nombre
Un nombre para el exportador.

Punto de cronometraje / Split
El disparador para el exportador.

Filtro
Un filtro que se aplicará; también puede utilizar los Campos de datos sin procesar.

Destino
El tipo de exportación y configuraciones adicionales según el tipo.

Datos a exportar
Qué datos deben enviarse, ya sea en un formato predeterminado o mediante cualquier expresión personalizada.

Final de línea
El carácter de final de línea que se añadirá a cada registro enviado.

La sección adicional de [@43371|Configuración extendida] controla el flujo de datos.

Si deseas crear un formato de salida personalizado utilizando los datos sin procesar, puedes usar los [@7976|Campos de datos sin procesar]. Además, se pueden utilizar cualquier campo o función estándar en la exportación personalizada.

Si se utiliza la exportación a ARCHIVO, el nombre del archivo debe incluir la dirección completa de destino y el tipo de archivo. Por ejemplo:
C:\Users\Timer\Documents\Export.csv


Seguimiento (Tracking)

El reenvío de datos de seguimiento es compatible con varias plataformas específicas de terceros. Estas funcionan de manera similar a los exportadores, pero reenvían los datos en un formato predefinido según los requisitos de cada plataforma.

Algunas plataformas requieren además un ID de cliente para procesar los datos.

Extended Settings

The extended settings additionally control the behaviour of the exporter. 

Encoding - Either UTF-8 or ASCII.

Min. Seconds Between - Define a minimum time in seconds between each record being sent.

Max Queue Length - The maximum queue size allowed in the buffer, the buffer is first in, first out - so the earliest passings will be dropped if the queue reaches the maximum length. 

Processing Delay -  Define a delay for x seconds after a read before passings to be exported. This can be set to avoid sending multiple alerts when participants are read multiple times at a timing point.

Ignore Before / Ignore After - Define a minimum and maximum time for passings to be exported. 

Connect Message - Define a custom message string which should be sent when starting the exporter (e.g. an authentication token).

Start in Paused Mode - If enabled then the exporter will be paused when started.

Default raw data exporters

This article lists all the default available exporters. Below shows the data format of each exporter as well as an example of its output.

Raw Data Record JSON

The Raw Data Record JSON mimics a Passing Record. It is a JSON struct with all relevant data, where the first part refers to information from RACE RESULT 14, and the last object refers to the actual passing raw data. 

Example output

{
    "ID":1,
    "Bib":50001,
    "TimingPoint":"STARTFINISH",
    "Result":-10,
    "Time":32795.944,
    "Invalid":false,
    "Passing":{
        "Transponder":"ZICAD30",
        "Position":{
            "Latitude":0,
            "Longitude":0,
            "Altitude":0,
            "Flag":""
            },
        "Hits":75,
        "RSSI":-75,
        "Battery":3,
        "Temperature":17,
        "WUC":6233,
        "LoopID":8,
        "Channel":8,
        "InternalData":"",
        "StatusFlags":128,
        "DeviceID":"D-50432",
        "DeviceName":"Support Decoder",
        "OrderID":0,
        "Port":0,
        "IsMarker":false,
        "FileNo":177,
        "PassingNo":1,
        "Customer":12345,
        "Received":"2024-01-12T09:07:43.15+01:00",
        "UTCTime":"2024-01-12T09:06:35.944Z"
        }
    }

 

Raw Data Record V2

The Raw Data Record V2 mimics a Passing Record from a RACE RESULT System. It does not include values for [<LoopOnly>] and [<InternalData>], however the structure is correct.

<PassingNo>;<Bib/TranspCode>;<Date>;<Time>;[<EventID>];<Hits>;<MaxRSSI>;
<InternalData>;<IsActive>;[<Channel>];[<LoopID>];[<LoopOnly>];[<WakeupCounter>];
[<Battery>];[<Temperature>];[<InternalActiveData>];<BoxName>;<FileNumber>;[<MaxRSSIAntenna>];<BoxId><CrLf>

Example output

7750;ZCMBG52;;10:50:00.477;0;72;127;;1;1;1;;16731;2,9;17;0;D-5662;;0;D-5662

 

Raw Data Record V1

The Raw Data Record V1 is a legacy version of a Passing Record. It does not write a data and it does not include [<LoopOnly>] (see |Decoder Communication Protocol) and hence moves all columns thereafter to the left by one column when compared to a full passing record. This format has been maintained to ensure backwards compatibility for existing implementations (2023 and earlier).

<PassingNo>;<Bib/TranspCode>;<Date>;<Time>;[<EventID>];<Hits>;<MaxRSSI>;
<InternalData>;<IsActive>;[<Channel>];[<LoopID>];[<WakeupCounter>];
[<Battery>];[<Temperature>];[<InternalActiveData>];<BoxName>;<FileNumber>;[<MaxRSSIAntenna>];<BoxId><CrLf>

Example output

7750;ZCMBG52;;10:50:00.477;0;72;127;;1;1;1;16731;2,9;17;0;D-5662;;0;D-5662

 

Raw Data Record with Position

The Raw Data Record V1 with Position mimics the legacy version of a Passing Record but also adds in GPS position.

<PassingNo>;<Bib/TranspCode>;<Date>;<Time>;[<EventID>];<Hits>;<MaxRSSI>;
<InternalData>;<IsActive>;[<Channel>];[<LoopID>];[<WakeupCounter>];
[<Battery>];[<Temperature>];[<InternalActiveData>];<BoxName>;<FileNumber>;[<MaxRSSIAntenna>];<BoxId>;[RD_Latitude];[RD_Longitude]<CrLf>

Example output

7750;ZCMBG52;;10:50:00.477;0;72;127;;1;1;1;16731;2,9;17;0;D-5662;;0;D-5662;33.57663;-117.2486

 

Custom

See Custom Destination Data Fields for more information on setting up a custom exporter.

 

Raw Data Time

This exporter only exports the raw time of the passings in seconds.

<Time>

Example output

39000.477

 

RunScore RSBCI

"RSBCI," & if([RD_Transponder]<>"";[RD_Transponder];[RD_IDBib]) & "," & format([RD_Time];"hh:mm:ss.kkk") & "," & [RD_TimingPoint]
  • RSBCI - Text string "RSBCI"
  • [RD_Transponder] or [RD_IDBib] - Exports transponder if one is entered, otherwise exports bib
  • [RD_Time] - Exports raw time of the passing formatted to "hh:mm:ss.kkk"
  • [RD_TimingPoint] - Exports the TimingPoint name from RACE RESULT 14

Example output

RSBCI,ZCMBG52,10:50:00.477,START+FINISH

True Decoder Raw Data Record

True Raw Data Record

For a true raw data record according to the |Decoder Communication Protocol please define a custom exporter with the following command:

#[RD_ID];[if([RD_Transponder]<>"";[RD_Transponder];[RD_IDBib])];[([Event.Date]+int([RD_Time]/86400))];[format(([RD_Time]%86400);"hh:mm:ss.kkk")];[if([RD_OrderID]<>0;[RD_OrderID])];[RD_Hits];[RD_RSSI];;[if([RD_ChannelID]>0;1;0)];[RD_ChannelID];[RD_LoopID];[if([RD_StatusFlags]IN"64-127,192-255";1;0)];[RD_WakeupCounter];[([RD_Battery]/10)];[([RD_Temperature]-100)];[RD_StatusFlags];[if([RD_DecoderName]="";[RD_DecoderID];[RD_DecoderName])];;[if([RD_Port]>0;[RD_Port])];[RD_DecoderID]

This expression will deliver passings in the following format:

<PassingNo>;<Bib/TranspCode>;<Date>;<Time>;[<EventID>];<Hits>;<MaxRSSI>;
<InternalData>;<IsActive>;[<Channel>];[<LoopID>];[<LoopOnl<>];[<WakeupCounter>];
[<Battery>];[<Temperature>];[<InternalActiveData>];<BoxName>;<FileNumber>;[<MaxRSSIAntenna>];<BoxId><CrLf>

Reenvío de Datos de Seguimiento

Los exportadores también se pueden utilizar para enviar datos de tiempo sin procesar a los socios de seguimiento para su uso en la visualización del seguimiento.

  • Para datos pasivos de cronometraje o pases activos de Active Extension de un decodificador que tiene una ubicación de GPS y se sincroniza con la hora del GPS, se reenviará la ubicación de GPS reportada del decodificador.
  • Para las cajas de cronometraje USB, Loop Boxes en modo Store o Repeat, o sistemas sin ubicación GPS, la posición del punto de cronometraje (según la configuración de Timing Point Settings) se transmite.

Si el sistema no tiene ubicación GPS y no se ha configurado una posición para el punto de cronometraje, los datos se enviarán sin ubicación, lo cual puede hacer que algunos sistemas de visualización de seguimiento los ignoren.

Insertar base de datos

Los Exportadores de Datos Brutos actualmente admiten los tipos de bases de datos SQL y drivers ODBC para acceso mencionados más abajo, si necesita tipos de bases de datos adicionales, avísenos y podemos consultar la implementación. Si utiliza una base de datos que requiere drivers ODBC, primero asegúrese de que estos estén instalados en su computadora y que ODBC pueda crear una conexión a su base de datos.

Al configurar su exportador, deberá ingresar la configuración del servidor para su base de datos, estos aceptan diferentes strings dependiendo del tipo de base de datos.

MySQL: %USERNAME%:%PASS%@tcp(%HOSTNAME%:%PORT%)/%DATABASE%
MS-SQL:  server=%HOSTNAME%; user id=%USERNAME%; password=%PASS%; database=%DATABASE%; port=%PORT%;
PostgreSQL: postgresql://%USERNAME%:%PASS%@%HOSTNAME%:%PORT%/%DATABASE%?sslmode=disable
ODBC Drivers (e.g. Microsoft Access): Driver={Microsoft Access Driver (*.mdb, *.accdb)};Dbq=C:\Database.accdb

Para las conexiones de los drivers ODBC, deberá hacer referencia al string de conexión correcta para sus drivers instalados.

Algunos tipos de bases de datos pueden requerir configuraciones de seguridad adicionales para un nombre de usuario y contraseña, un buen recurso para esto está disponible en: https://www.connectionstrings.com/ 

Debe formatear la opción Datos a Exportar (en Exportadores + Seguimiento) utilizando la entrada Personalizada para formular una declaración de Insert como Expresión.

Por ejemplo para MS-SQL:

"INSERT INTO RawData (Chip, Time, TimingPoint) VALUES ('" & if([RD_Transponder]<>"";[RD_Transponder];[RD_IDBib]) & "', '" & format([RD_Time];"hh:mm:ss.kkk") &"', '" & [RD_TimingPoint] &"')"

 

Esto insertará en una tabla llamada "RawData", en los campos Chip, Tiempo y TimingPoint los campos Código de transpondedor o Código de chip, tiempo de datos brutos con el formato hh:mm:ss.kkk y el punto de cronometraje respectivamente. Para las bases de datos de Microsoft Access, los nombres de los campos deben estar entre corchetes.

 

Exporting Date & Time

Some platforms may require you to send the passing date and time, however currently RACE RESULT 14 does not store the passing date when the passing is saved to the database. To send dates and times correctly you will need to set the Timing Module to handle the times correctly according to Multi-Day Race settings.

To export date and time you can use the following formulas in your expression.

Date: ([EventDate]+int([RD_Time]/86400)) 
This requires the EventDate to be set in your files basic settings, it calculates how many days after the start date the passing was from and sends the corresponding date.

Time: format(([RD_Time]%86400);"hh:mm:ss.kkk")
This is the remainder of time after the time has been divided by 86400, the number of seconds in 24 hours, and so will always send the Time of Day. As the modal does not return milliseconds we must then append the milliseconds with a separate format. 

It is on our wishlist to save and use the passing date in the event file, however this solution should work for most cases so long as you setup the file correctly.