Exportadores de Datos Brutos

La función Exportadores activa el envío de datos a una nueva ubicación en cuanto entran nuevas lecturas de chips. Los datos enviados son normalmente datos en bruto de cronometraje pero cualquier tipo de datos de RACE RESULT 12 puede ser enviado de esta manera.

Esto puede ser usado por usuarios de softwares de cronometraje / puntuación de terceros para recibir datos de los sistemas de RACE RESULT, por lo que a continuación se incluye una guía rápida para la configuración de eventos.

Necesitará algunos conocimientos básicos sobre cómo configurar Puntos de Cronometraje en RACE RESULT 12, los tiempos deben asignarse a un punto de cronometraje y luego ser enviados a la ubicación. Si identifica la detección solo por el ID del dispositivo, puede enviar todos los datos a un solo punto de cronometraje y exportarlos con el ID del dispositivo.

Configuración de Exportadores de Datos Brutos

Configuración de Exportadores

Vaya a la pestaña Cronometraje en la barra de navegación superior, aquí es donde usted se conectará a sus sistemas de cronometraje y exportadores y donde los controlará. Si está trabajando en línea y está exportando a un destino local (por ejemplo, dirección IP de red local, en serie o archivo), asegúrese de iniciar el servidor web RACE RESULT Web Server en su computadora.

Diríjase a Exportadores+Seguimiento en el plano de navegación de la izquierda, aquí configurará los diferentes exportadores que necesite y cómo deben funcionar. Los ajustes disponibles son:

Name: Un nombre para el exportador
Timing Point: Qué punto de cronometraje activará la exportación de datos / se enviará.
Filter: Un filtro a aplicar, por ejemplo, solo un rango específico de números de dorsal.
Export Data: El formato del texto que se enviará, hay algunos formatos predefinidos o puede escribir un conjunto personalizado de datos.
Destination: Tipo de exportación (TCPIP / SERIAL / FILE / SQL) y campos adicionales requeridos dependiendo el formato.
LE: El final de la línea esperado por su software para leer los datos.

Si desea escribir un formato de datos de salida personalizado, hay varios campos personalizados que deben ser usados, puede verlos en el submenú a continuación, también puede usar cualquiera de los campos estándar de RACE RESULT si es que los tiene ocnfigurados en su archivo de evento.

Si usa FILE export entonces el nombre deberá ser la dirección de destino completa y el tipo de archivo por ejemplo: C:\Users\Timer\Documents\Export.csv 

 

Conectarse a dispositivos e iniciar los Exportadores

Sus exportadores están listados en el menú Sistemas de la misma manera que sus otros sistemas y pueden iniciarse del mismo modo, el Estado mostrará Connected si la conexión es existosa.

Puede reenviar todos los datos a un exportador a través de la flecha azul de rebobinado, y al hacer clic en el icono rojo de stop se cerrará la conexión.

Los marcadores siempre se enviarán con un código de chip de -1, independientemente de la configuración del decodificador.

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. 

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.

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.

 

Default raw data exporters

This article lists all the available exporters within RACE RESULT 12. 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 12, 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 compatability 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 in RACE RESULT 12

Example output

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

Campos de Datos de Destino Personalizados

Puede crear cualquier combinación de datos para el destino de acuerdo a sus requisitos. Puede usar cualquiera de los campos de datos estándar de RACE RESULT 12 o los campos personalizados de abajo, los cuales están relacionados directamente con el pase que activó al exportador. Los campos de datos deben estar entre corchetes, para unir los campos de datos debe usar '&', por ejemplo, para unir solo Transpondedor y Tiempo separados por un punto y coma, usted ingresaría - [RD_Transponder] & ";" & [RD_Time].

  • [RD_ID] - Un ID único para ese pase.
  • [RD_IDBib] - Si se usan transpondedores pasivos estándar, este es el código chip de la etiqueta.
  • [RD_Transponder] - Si utiliza transpondedores pasivos no estándar o transpondedores activos, esto devolverá el código del transpondedor.
  • [RD_Time] - El tiempo bruto del pase en segundos. Puede usar la función Time Format para mostrar esto en el formato requerido.
  • [RD_OrderID] - el OrderID del chip (solo pasivo).
  • [RD_Hits] - Número de veces que el transpondedor fue visto.
  • [RD_RSSI] - El máximo RSSI (intensidad) de la señal recibida del transpondedor.
  • [RD_ChannelID] - El Channel ID activo del punto de cronometraje (solo activo).
  • [RD_LoopID] - El Loop ID activo del punto de cronometraje (solo activo).
  • [RD_WakeupCounter] - La cuenta para despertar del transpondedor (solo activo).
  • [RD_Battery] - La tensión de la batería del transpondedor (solo activo).
  • [RD_Temperature] - Temperatura interna del transpondedor (solo activo).
  • [RD_StatusFlags] - Indica si el pase fue un pase almacenado en el transpondedor.
  • [RD_TimingPoint] - El nombre del TimingPoint en RACE RESULT 12.
  • [RD_DecoderName] - El nombre del decodificador si se ha sido asignado uno.
  • [RD_DecoderID] - El ID del dispositivo
  • [RD_Port] - El puerto de antena con máx. RSSI durante un paso (solo pasivo)
  • [RD_Latitude] / [RD_Longitude] - Las coordenadas de la detección, siempre y cuando el dispositivo de donde proviene proporciona coordenadas GPS.
  • [RD_IsMarker] - si esta lectura de pase se trata o no como un Marcador
  • [RD_FileNo] -indica el número de archivo de un Ubidium o decodificador
  • [RD_PassingNo] - el número de pase guardado en un archivo de pases
  • [RD_Customer] - el ID del cliente al que se ha subido el pase
  • [RD_Received] - la marca de tiempo con la zona horaria cuando el pase ha sido recibido por RACE RESULT 12
  • [RD_UTCTime] - la marca de tiempo del paso convertida a hora UTC

Exporter Commands

Esta es una nueva versión, la cual incluye responder a los comandos del exportador. Actualmente es solo para TCP. Una vez que se establece una conexión, el receptor puede enviar comandos

 

Obtener Información

Para obtener información sobre el exportador envíe el siguiente comando:

GETINFO\n

La respuesta se ve así:

{
  "Command": "GETINFO",
  "Exporter": {
    "ID": 8,
    "Name": "PacketSender Home",
    "Filter": "",
    "TriggerTimingPoint": "",
    "TriggerResultID": 0,
    "DestinationType": "TCPIP",
    "Destination": "192.168.178.25:54696",
    "Data": "[RD_ID] \u0026 \";\" \u0026 if([RD_Transponder]\u003c\u003e\"\";[RD_Transponder];[RD_IDBib]) \u0026 \";;\" \u0026 format([RD_Time];\"hh:mm:ss.kkk\") \u0026 \";\" \u0026 [RD_OrderID] \u0026 \";\" \u0026 [RD_Hits] \u0026 \";\" \u0026 [RD_RSSI] \u0026 \";;\" \u0026 if([RD_LoopID]\u003e0;1;0) \u0026 \";\" \u0026 [RD_ChannelID] \u0026 \";\" \u0026 [RD_LoopID] \u0026 \";;\" \u0026 [RD_WakeupCounter] \u0026 \";\" \u0026 ([RD_Battery]/10) \u0026 \";\" \u0026 ([RD_Temperature]-100) \u0026 \";\" \u0026 [RD_StatusFlags] \u0026 \";\" \u0026 [RD_DecoderName]",
    "MTB": 0,
    "MQL": 0,
    "LineEnding": "LF",
    "OrderPos": 7000
  },
  "Paused": false,
}

Detener Comando

Este comando detiene al exportador en cualquier momento:

STOP\n

Respuesta normal:

{
  "Command": "STOP",
}

Respuesta de error:

{
  "Command": "STOP",
  "Error": "Some error message"
}

Pausar Comando

Este comando detiene al exportador en cualquier momento:

Comando

PAUSE\n

Responde con:

{
  "Command": "PAUSE",
  "Paused": true
}

Reanudar Comando

Este comando reanuda el exportador en cualquier momento:

Comando:

RESUME\n

Responde con:

{
  "Command": "RESUME",
  "Paused": false
}

Nota: si la conexión se interrumpe mientras está en modo "pausado", no se volverá a abrir a menos que haya nuevos datos para escribir. Si desea reanudar, debe esperar a que la conexión se restablezca.

Repetir Comando

Este comando le permite repetir la reproducción del exportador en cualquier momento:

Comando:

REPLAY\n

Respuesta normal:

{
  "Command": "REPLAY",
}

Respuesta de error:

{
  "Command": "REPLAY",
  "Error": "Some error message"
}

Exportar Fecha y Hora

Algunas plataformas pueden requerirle que envíe la fecha y hora de los pases, sin embargo, actualmente el RACE RESULT 12 no almacena la fecha de los pases cuando éstos se guardan en la base de datos. Para enviar las fechas y las horas correctamente, deberá configurar el Módulo Cronometraje para que maneje las horas correctamente de acuerdo con la configuración de Multi-Day Race.

Para exportar la fecha y la hora, puede usar las siguientes fórmulas en su expresión.

Date: ([EventDate]+int([RD_Time]/86400)) 

Esto requiere que el EventDate se establezca en la configuración básica de sus archivos, calcula de cuántos días después de la fecha de inicio era el pase y envía la fecha correspondiente.

Time: format(([RD_Time]%86400);"hh:mm:ss.kkk")

Este es el resto del tiempo después de que el tiempo se haya dividido por 86400, el número de segundos en 24 horas, y por lo tanto siempre enviará la Hora del Día.

Está en nuestra lista de deseos guardar y usar la fecha del pase en el archivo de eventos, sin embargo, esta solución debería funcionar en la mayoría de los casos, siempre y cuando configure el archivo correctamente.