Gli esportatori attivano l'invio di dati all'arrivo di nuove letture di chip. I dati inviati sono normalmente i dati di cronometraggio grezzi ma tutti i dati di RACE RESULT 12 possono essere inviati in questo modo.
Questo può essere utilizzato dagli utenti con software di cronometraggio / gestione gara di terze parti per ricevere dati dai sistemi di RACE RESULT, quindi di seguito è inclusa una guida rapida alla configurazione
Avrai bisogno di alcune conoscenze di base su come impostare i Punti di cronometraggio in RACE RESULT 12, poichè i tempi devono essere assegnati a un punto di cronometraggio e quindi spostati nella posizione desiderata. Se si identifica il rilevamento semplicemente tramite l'ID dispositivo, è possibile inviare tutti i dati a un singolo punto di cronometraggio ed esportare i dati con l'ID dispositivo.
Impostazione degli esportatori dei dati grezzi
Configurazione dell'esportatore
Passa alla finestra Cronometraggio attraverso la barra di navigazione in alto: qui è dove ti collegherai e controllerai i tuoi sistemi di cronometraggio e gli esportatori. Se stai lavorando online e vuoi esportare localmente (es. ad un IP locale, seriale o File) assicurati di avviare il RACE RESULT Web Server sul tuo computer.
Passa ora alla sezione Exporters+Tracking attraverso il riquadro di navigazione a sinistra: qui imposterai i diversi esportatori richiesti e il loro funzionamento. Le impostazioni disponibili sono:
Nome: Nome dell'esportatore
Punto di cronometraggio: Quale punto di cronometraggio attiverà l'esportazione dei dati
Filtro: Un filtro da applicare, ad esempio solo un intervallo di pettorali specifico.
Dati da esportare: Il formato del testo che verrà inviato: ci sono alcuni formati predefiniti o è possibile scrivere un set personalizzato di dati.
Destinazione: tipologia di esportazione (TCPIP / SERIAL / FILE / SQL) & campi aggiuntivi richiesti a seconda del formato.
LineEnd: La fine della riga prevista dal software per leggere i dati.
Se desideri scrivere un formato dati di output personalizzato, ci sono una serie di campi personalizzati che potresti utilizzare: li puoi vedere nei capitoli che seguiranno. Puoi anche usare uno qualsiasi dei campi standard di RACE RESULT se hai queste impostazioni nel file dell'evento.
Se usi l'exorter FILE, il nome deve essere l'indirizzo completo di destinazione con indicato anche il tipo di estensione come ad esempio: C:\Users\Timer\Documents\Export.csv
Connessione ai dispositivi e avvio degli esportatori.
I tuoi esportatori sono elencati nel modulo di cronometraggio insieme ai tuoi dispositivi e possono essere avviati esattamente nello stesso modo: lo stato mostrerà Connesso in caso di successo.
Puoi re-inviare tutti i dati ad un esportatore attraverso la freccia blu di riavvolgimento mentre con il pulsante rosso di stop interromperai la connessione.
I marker restituiscono un codice transponder di -1 indipendentemente dalle impostazioni del decoder.
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.
Inserimento Database
Gli esportatori di dati grezzi attualmente supportano i seguenti tipi di database SQL e driver ODBC per database Access e simili: se hai bisogno di altri tipi di database, faccelo sapere e possiamo dare un'occhiata all'implementazione. Se si utilizza un database che richiede driver ODBC, assicurarsi innanzitutto che siano installati sul computer e che ODBC possa creare una connessione al database.
Quando si configura l'esportatore, è necessario immettere le impostazioni del server per il database, che accettano stringhe diverse a seconda del tipo di database.
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
Per le connessioni del driver ODBC sarà necessario fare riferimento alla stringa di connessione corretta per i driver installati.
Alcuni tipi di database potrebbero richiedere impostazioni di sicurezza aggiuntive per nome utente e password ed una buona risorsa per questo è disponibile all'indirizzo https://www.connectionstrings.com/
È necessario formattare i dati di esportazione utilizzando l'inserimento personalizato per formulare un'istruzione come Espressione.
Per esempio per 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] &"')"
Ciò inserirà in una tabella chiamata "RawData", nei campi Chip, Time e TimingPoint i campi Codice Transponder o Chip Code, tempo dei dati grezzi formattato rispettivamente come hh:mm:ss.kkk e il punto di cronometraggio. Per i database di Microsoft Access, i nomi dei campi devono essere racchiusi tra parentesi quadre.
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.
<InternalData>;<IsActive>;[<Channel>];[<LoopID>];[<LoopOnly>];[<WakeupCounter>];
[<Battery>];[<Temperature>];[<InternalActiveData>];<BoxName>;<FileNumber>;[<MaxRSSIAntenna>];<BoxId><CrLf>
Example output
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).
<InternalData>;<IsActive>;[<Channel>];[<LoopID>];[<WakeupCounter>];
[<Battery>];[<Temperature>];[<InternalActiveData>];<BoxName>;<FileNumber>;[<MaxRSSIAntenna>];<BoxId><CrLf>
Example output
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.
<InternalData>;<IsActive>;[<Channel>];[<LoopID>];[<WakeupCounter>];
[<Battery>];[<Temperature>];[<InternalActiveData>];<BoxName>;<FileNumber>;[<MaxRSSIAntenna>];<BoxId>;[RD_Latitude];[RD_Longitude]<CrLf>
Example output
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.
Example output
RunScore RSBCI
- 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
Campi dei dati di destinazione personalizzati
È possibile creare qualsiasi combinazione di dati per la destinazione in base alle proprie esigenze. Puoi utilizzare uno qualsiasi dei campi di dati standard di RACE RESULT 12 o i campi personalizzati sottostanti che sono direttamente correlati al passaggio che ha attivato l'esportatore. I campi dei dati devono essere racchiusi tra parentesi quadre, per unire i campi di dati dovresti usare '&', ad esempio per unire solo Transponder e Tempo separati da un punto e virgola dovresti inserire - [RD_Transponder] & ";" & [RD_Time].
- [RD_ID] - Un ID univoco per quel passaggio.
- [RD_IDBib] - Se si utilizzano tag passivi standard, questo è il codice chip del tag.
- [RD_Transponder] - Se si utilizzano tag passivi non standard o transponder attivi, questo restituirà il codice transponder.
- [RD_Time] - Il tempo grezzo del passaggio in secondi. È possibile utilizzare la funzione formato tempo per visualizzarlo nel formato richiesto.
- [RD_OrderID] - L'ID dell'ordine del chip. (Solo passivo).
- [RD_Hits] - Il numero di hits del transponder per il passaggio. (Numero di volte in cui è stato visto il transponder).
- [RD_RSSI] - Il massimo RSSI (intensità) del segnale ricevuto dal transponder.
- [RD_ChannelID] - L'ID del canale attivo dal punto di cronometraggio (solo attivo).
- [RD_LoopID] - L'ID del loop dal punto di cronometraggio (solo attivo).
- [RD_WakeupCounter] - Il conteggio delle attivazioni del transponder (solo attivo).
- [RD_Battery] - La tensione della batteria del transponder. (Solo attivo)
- [RD_Temperature] - Temperatura interna del transponder. (Solo attivo)
- [RD_StatusFlags] - Il flag di stato indica se il passaggio era un passaggio memorizzato sul transponder.
- [RD_TimingPoint] - Nome del punto di cronometraggio in RACE RESULT 12.
- [RD_DecoderName] - Il nome del decoder se è stato assegnato.
- [RD_DecoderID] - L'ID del decoder.
- [RD_Port] - La porta dell'antenna con max. RSSI durante il passaggio (solo passivo)
- [RD_Latitude] / [RD_Longitude] - Le coordinate del punto di cronometraggio, a condizione che il dispositivo da cui proviene, fornisca le coordinate GPS.
- [RD_IsMarker] - se questo passaggio viene trattato o meno come un Marker
- [RD_FileNo] - indica il numero del file da un Ubidium o da un decoder.
- [RD_PassingNo] - il numero di passaggio salvato così come nel file di passaggi.
- [RD_Customer]: l'ID cliente su cui è stato caricato il passaggio.
- [RD_Received] - il timestamp con fuso orario quando il passaggio è stato ricevuto da RACE RESULT 12.
- [RD_UTCTime] - il timestamp del passaggio convertito in ora UTC
Comandi per gli esportatori
Questa è una nuova versione che include la risposta ai comandi dell'esportatore. Attualmente è solo per TCP. Una volta stabilita una connessione, il destinatario può inviare comandi.
Comando Ottieni informazioni
Per ottenere informazioni sull'esportatore, inviare il seguente comando:
GETINFO\n
La risposta sará simile a questa:
{ "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, }
Comando Interrompi
Questo comando arresta l'esportatore in qualsiasi momento.
STOP\n
Risposta normale:
{
"Command": "STOP",}
Risposta errore:
{
"Command": "STOP","Error": "Some error message" }
Comando Pausa
Questo comando mette in pausa l'esportatore in qualsiasi momento.
Comando:
PAUSE\n
Risponde con:
{
"Command": "PAUSE","Paused": true }
Comando Riprendi
Questo comando ripristina l'esportatore in qualsiasi momento.
Comando:
RESUME\n
Risponde con:
{
"Command": "RESUME","Paused": false }
Nota: se la connessione si interrompe in modalità "in pausa", non verrà riaperta a meno che non vi siano nuovi dati da scrivere. Se si desidera riprendere, è necessario attendere il ripristino della connessione.
Comando Ripeti
Questo comando consente di riprodurre l'esportatore in qualsiasi momento.
Comando:
REPLAY\n
Risposta normale:
{
"Command": "REPLAY",}
Rispota di errore:
{
"Command": "REPLAY","Error": "Some error message" }
Esportare Data & Ora
Alcune piattaforme potrebbero richiederti di inviare la data e l'ora del passaggio, tuttavia attualmente RACE RESULT 12 non memorizza la data del passaggio quando il passaggio viene salvato nel database. Per inviare correttamente le date e gli orari, è necessario impostare il modulo di cronometraggio in modo che gestisca correttamente i tempi in base alle impostazioni Gara di più giorni.
Per esportare data e ora puoi usare le seguenti formule nella tua espressione.
Data: ([EventDate]+int([RD_Time]/86400))
Ciò richiede che EventDate sia impostato nelle impostazioni di base del file; calcola il numero di giorni successivi alla data di inizio del passaggio e invia la data corrispondente.
Ora: format(([RD_Time]/86400);"hh:mm:ss.kkk")
Questo è il resto del tempo dopo che l'ora è stata divisa per 86400 (il numero di secondi in 24 ore) e quindi invierà sempre l'ora del giorno. Dato che non restituisce i millesimi, dobbiamo quindi aggiungere i millesimi con un formato separato.
È nella nostra lista dei desideri salvare e utilizzare la data di passaggio nel file dell'evento, tuttavia questa soluzione dovrebbe funzionare nella maggior parte dei casi, purché il file sia impostato correttamente.