Fuentes de Datos (referencia)
3 · Configuración inicial
¿Cómo usar las Fuentes de Datos?
La Fuente de Datos es de donde Race-G 5.0 lee la carrera en vivo: tiempos, posiciones, vueltas, gaps, Pit In/Out, sectores y banderas. Sin fuente no hay nada para graficar. Elegís una fuente en CONFIG y Race-G lee solo esa; las demás quedan guardadas por si volvés a usarlas más tarde. También podés tener varias fuentes configuradas por categoría y cambiarlas al toque desde la cabecera de Clasificación en PLAY.
1. Dónde se elige y cómo funciona el selector
CONFIG → Fuente de datos
Arriba de todo en CONFIG tenés el selector Fuente de datos. Ahí elegís: Parcialera, Orbit, Orbit TCP/IP, Current XML, SpeedHive, Race-Monitor, Apex Timing, Alkamel. Al lado tenés una leyenda gris: "Solo se muestran los parámetros de la fuente elegida".
Asistente Nuevo Evento
En 🚀 Nuevo Evento hay un paso de Fuentes donde podés dejar precargadas varias fuentes por categoría (ej: TC usa Parcialera, TC Pista usa Orbit TCP). Eso crea botones rápidos en PLAY para cambiar sin entrar a CONFIG.
Cambio rápido en PLAY
En la cabecera de Clasificación en PLAY aparece #src-switch: un botón por cada fuente configurada en el evento. Tocás y cambia de fuente al instante y guarda la config. Ideal para eventos con 2 cronometrajes paralelos.
Se guarda todo
IP, puertos, URLs, IDs, ms, campo equipo/marca y grupo elegido a mano se guardan. No tenés que recargar cada vez que abrís Race-G.
2. Tipos de fuentes — Resumen rápido
| Fuente | Qué es | Necesita Internet / Chrome | Archivo o Red |
|---|---|---|---|
| Parcialera | XML clásico de parcialera ACTC (clasificacion.xml). El más usado en Argentina. | No (si es archivo local) | Archivo .xml local o URL http/file |
| Orbit | XML de Orbits / MyLaps con formato Orbit | No si es local | Archivo .xml local o URL |
| Orbit TCP/IP | Conexión directa por red al servidor de cronometraje vía RMonitor TCP. Sin archivo. | Red local (misma LAN del crono) | TCP IP + Puerto (ej 192.168.1.50:50000) |
| Current XML | current.xml complementario (tiempos de sector más fino, a veces lo entrega crono junto a clasificacion.xml) | No si es local | Archivo .xml local o URL |
| SpeedHive | MYLAPS SpeedHive en la nube | Sí, internet | Event ID largo (ej AC3FE8...) |
| Race-Monitor | race-monitor.com — tabla que se arma con JavaScript después de cargar | Sí + Chrome + chromedriver | Race ID numérico |
| Apex Timing | apex-timing.com — live timing de karting y autos, también renderizado por JS | Sí + Chrome + chromedriver | Event ID / slug del evento |
| Alkamel | Al Kamel Systems (WEC, ELMS, etc.), también JS | Sí + Chrome + chromedriver | Event ID / slug |
| Simulador interno | Race-G genera Simulator/clasificacion.xml + RMonitor :50000 para entrenar | No | Archivo local + TCP opcional |
3. Parcialera — La más usada
URL XML + 📂
Campo URL XML. Podés pegar una URL http:// (si el crono lo comparte por red) o una ruta local C:\.... Botón 📂 abre explorador para elegir archivo local sin escribir ruta. Si elegís archivo local, se convierte a file:/// automáticamente.
ms — polling
Cada cuántos ms lee el archivo. Default 300–500 ms. 100 ms = más vivo pero más CPU y más lectura de disco. Si el archivo está en red lenta, subí a 800–1000 ms para evitar leer a medias. Con Simulador podés dejar 200 ms.
Qué datos trae: posiciones, NRO, piloto, marca, equipo, vueltas, tiempo total, gap, intervalos, última vuelta, mejor vuelta, S1/S2/S3, Pit In/Out (lasttimeline), nopitstops, pit_time, bandera, session_id, runname.
Qué revisa Race-G: si archivo existe, si cambió (por fecha), si es XML válido, si tiene nodos de competidores. Si falla, no tira abajo nada: mantiene última foto buena y reintenta.
Falla típica: archivo bloqueado por otro programa, ruta con acentos o espacios raros, XML a medio escribir justo cuando lee (pasa en redes lentas). Solución: ms más alto, exclusión antivirus en carpeta, usar SSD local si podés.
4. Orbit (XML)
URL XML + 📂 + ms
Igual que Parcialera pero formato Orbit de Orbits. Botón 📂 para archivo local. ms configurable. Si tenés Orbits local exportando XML a carpeta compartida, apuntá ahí.
Cuándo usar Orbit vs Parcialera
Si tu cronometraje es Orbits y exporta clasificacion.xml con estructura Orbit, usá Orbit. Si exporta parcialera ACTC, usá Parcialera. Si no sabés, probá las dos y mirá si la tabla en Race-G se llena.
5. Orbit TCP/IP — Conexión directa sin archivo (RMonitor)
Es la conexión más limpia cuando tenés acceso a la red del crono. No usa archivos: se conecta directo al servidor de Orbits que habla protocolo RMonitor y recibe líneas en vivo.
IP del servidor
IP de la PC de cronometraje en la LAN. Ej 192.168.1.50. No es tu IP, es la del crono. Si Race-G y crono están en misma PC, usá 127.0.0.1. Si usás Simulador interno, también 127.0.0.1.
Puerto
Puerto TCP donde escucha Orbits / Simulador. Orbits suele usar 50000, 50001 o 50880. Simulador de Race-G usa 50000 por defecto (configurable en pestaña Salida del Simulador). Si ponés puerto equivocado verás "No se pudo abrir puerto".
ms
Frecuencia interna de lectura. Default 200–300 ms. En TCP es menos crítico que en archivo porque llega por push, pero igual regula refresco de tabla.
Ordenar posiciones por
RMonitor manda $G (carrera) y $H (práctica/clasifica). Opciones:
Automático = usa carrera si hay, si no práctica (recomendado).
Forzar carrera ($G) = siempre orden por vueltas/tiempo total.
Forzar práctica ($H) = siempre por mejor vuelta.
Campo para Equipo (opcional)
RMonitor no tiene columnas fijas de equipo/marca. Algunos servidores de Orbits reusan nationality o campo libre extra para eso. Si tu crono pone equipo en "nationality", escribí nationality acá. Dejalo vacío si no aplica.
Campo para Marca (opcional)
Igual que equipo pero para marca. Si crono pone marca en campo extra, poné extra. Si no, vacío y Race-G usa marca de tu base de pilotos.
Grupo / Categoría (elegido a mano)
Obligatorio en TCP. RMonitor no manda nombre de categoría/grupo. Tenés que elegirlo vos (ej TC, TC2000, TN). Se usa para logos de marca, campeonato activo, sponsors, etc. Se guarda por fuente, no global.
6. Current XML
URL XML + 📂 + ms
Igual que Parcialera. Algunos cronos entregan clasificacion.xml y current.xml a la vez. Current suele traer sectores más finos o Pit In/Out con menos delay. Si tenés ambos, podés configurar uno como principal y el otro como secundario según evento (ver Asistente Nuevo Evento).
Cuándo usarlo
Cuando tu parcialera trae solo posiciones pero current trae S1/S2/S3 y Pit. Race-G puede leer current como fuente principal y sigue funcionando igual. Probá cuál de los dos trae datos más completos en tu circuito.
7. SpeedHive (MYLAPS)
Event ID
ID largo de SpeedHive, formato AC3FE8EA9E8BD3AD-2147485001. Lo copiás de la URL de SpeedHive cuando ves el evento. Es único por evento.
Internet + ms
Necesita internet sí o sí. ms mínimo 500 ms (recomendado 1000–2000 ms para no saturar API). Si evento es privado o pide login, Race-G no puede entrar — debe ser público.
Qué trae y qué no
Trae posiciones y tiempos pero a veces no trae Pit In/Out ni equipo/marca. Depende de cómo lo configure crono en SpeedHive. No sirve para boxes avanzado si no manda lasttimeline.
8. Race-Monitor, Apex Timing y Alkamel — Fuentes que necesitan Chrome
Race-Monitor
Race ID numérico, ej 123456. Lo sacás de la URL: race-monitor.com/.../race/123456. ms mínimo 500 ms, recomendado 1000–2000 ms. Tabla con posiciones, gaps, vueltas, mejor vuelta. Boxes depende de si la web lo muestra.
Apex Timing
Event ID es el slug del evento, ej nombre-del-evento que aparece en URL apex-timing.com. Usado mucho en karting. ms 500+ recomendado 1500 ms.
Alkamel
Event ID slug del evento en alkamel. Usado en WEC, ELMS, etc. Misma lógica que Apex. ms 500+.
Cómo instalar Chrome + chromedriver: 1) Instalá Google Chrome estable. 2) Bajá chromedriver misma versión que tu Chrome desde https://chromedriver.chromium.org/ 3) Poné chromedriver.exe en PATH o en misma carpeta que Race-G. Reiniciá Race-G. Verás "HAS_SELENIUM_STACK" OK en log si quedó bien.
Fallas típicas: Chrome actualizado y chromedriver viejo → no abre. Antivirus bloquea Chrome headless. Evento privado pide login → no entra. Internet lenta → timeout y tabla vacía. Usá ms más alto.
9. Simulador interno — Tu fuente para entrenar sin estar en autódromo
Qué genera
El Simulador escribe Simulator/clasificacion.xml y Simulator/current.xml en DATA_DIR/Simulator y opcionalmente emite RMonitor TCP en 127.0.0.1:50000. Todo 4 veces por segundo con posición real D sobre SVG.
Cómo conectás Race-G
Opción A archivo: CONFIG → Fuente Parcialera → URL = .../Simulator/clasificacion.xml (botón 📂) + Current = .../Simulator/current.xml. Opción B TCP: CONFIG → Orbit TCP/IP → IP 127.0.0.1 Puerto 50000.
Boxes en Simulador
Pestaña Realismo → Pits % (0–100). Solo en carrera/final, 1 vez por auto desde vuelta 2, duración 16–28s aleatoria, marca IN PIT / Pit In / nopitstops=1 / pit_time. Alimenta EN BOXES, Historial, Reingreso y Top10 real para entrenar operador.
10. Polling — Cada cuánto lee
ms por fuente
Cada fuente tiene su ms guardado. Parcialera/Orbit/Current/Orbit TCP: 100–1000 ms (recomendado 300–500). SpeedHive/Race-Monitor/Apex/Alkamel: 500–5000 ms (recomendado 1000–2000 para no banearte y porque web tarda).
Status y guardado
En CONFIG abajo ves Polling status: si está leyendo, error, archivo no encontrado, timeout, etc. El ms se guarda en config.json por fuente, no global.
Solo fuente activa lee
Race-G solo hace polling de la fuente elegida en selector. Las demás no gastan recursos aunque tengan URL cargada.
11. Parámetros clave que debés revisar SIEMPRE
| Parámetro | Dónde | Por qué importa |
|---|---|---|
| URL / IP / ID | Parcialera, Orbit, Current, SpeedHive, Race-Monitor, Apex, Alkamel, Orbit TCP | Si está mal, tabla vacía. En archivo local, que no tenga acentos ni esté en OneDrive con sincronización lenta. En TCP, IP de crono y no tu IP. |
| ms | Todas | Muy bajo = CPU y lecturas a medias en red. Muy alto = delay visible en gráficos. 300–500 archivo, 1000–2000 nube/JS. |
| Ordenar por | Orbit TCP/IP | Auto = carrera si hay, si no práctica. Forzar mal hace que en clasificación ordene por vueltas y quede todo mal. |
| Campo Equipo / Marca | Orbit TCP/IP | Si tu crono manda equipo en nationality y lo dejás vacío, Race-G no muestra equipo. Probá nationality, extra, team, brand. |
| Grupo / Categoría | Orbit TCP/IP | Obligatorio. Sin grupo no hay logos de marca ni campeonato activo. Elegí TC, etc. |
| Chrome + chromedriver | Race-Monitor, Apex, Alkamel | Sin esto no funcionan. Verificá versión misma que Chrome. |
12. Datos que obtiene Race-G de cada fuente
Siempre
Posición, NRO, piloto, vueltas, tiempo total / mejor vuelta, gap, intervalo, estado (PIT, RET, FIN), session_id, runname, bandera.
Si la fuente lo trae
S1/S2/S3, última vuelta, 2da mejor, mejor vuelta personal, sector colors, pit_time, nopitstops, lasttimeline = Pit In / Pit Out, sincepit, marca, equipo, nacionalidad, transponder.
Derivados que calcula Race-G
EN BOXES (cronómetro Pit In→Pit Out/S1), duración, Historial 300, reingreso visual / carrera (P9 V / P14 P), Top 10 Pit Stop (con resta configurable), Top 10 Refuelling solo efectivas, Totem modo paradas (dif / paradas).
13. Flujo recomendado según tu evento
14. Precauciones — Lo que más falla en vivo
Archivo bloqueado: Parcialera/Orbit/Current leído justo cuando crono lo escribe a medias → XML inválido. Race-G mantiene última buena y reintenta. Si pasa seguido subí ms a 800–1000 y excluí carpeta de antivirus.
Ruta con OneDrive / Dropbox: sincronización retrasa escritura → Race-G lee viejo. Usá carpeta local real, no sincronizada, o apuntá directo a PC de crono por red compartida.
Firewall bloquea TCP: Orbit TCP/IP no conecta. Creá regla en Windows Defender para Race-G y puerto, o probá desactivar firewall privado momentáneamente.
IP dinámica del crono: PC de crono con DHCP cambia IP → se cae TCP. Poné IP fija en PC de crono o reservá en router.
Grupo / Categoría vacío en TCP: sin grupo no hay logos ni campeonato. Siempre cargá grupo en Orbit TCP/IP, aunque sea "TC" genérico.
Campo Equipo/Marca vacío: ves NRO y piloto pero no equipo/marca. Probá poner nationality o extra en esos campos. Si sigue vacío es porque crono no lo manda y Race-G usa tu base de pilotos.
Ordenar por mal seteado: en clasificación ves orden por vueltas en lugar de mejor vuelta → en Orbit TCP cambiá a Automático o Forzar práctica ($H).
Chrome desactualizado vs chromedriver: Race-Monitor/Apex/Alkamel no abren y queda tabla vacía. Actualizá chromedriver misma versión que Chrome. Reiniciá Race-G.
Evento privado / con login: SpeedHive/Race-Monitor/Apex/Alkamel piden login → Race-G no entra. Pedí al crono que lo ponga público o usá fuente local XML/TCP.
ms muy bajo en nube: SpeedHive/Race-Monitor/Apex/Alkamel con ms 100 → baneo IP o saturación. Usá 1000–2000 ms mínimo.
Simulador: Pits 0%: EN BOXES nunca aparece. Para entrenar boxes poné 80–100% y carrera 12+ vueltas. Solo en carrera/final, 1 vez por auto desde vuelta 2.
Cambiar fuente a mitad de carrera: al cambiar runname/session_id EN BOXES e Historial se vacían automático para no mezclar tandas. Si necesitás historial anterior sacalo antes.
15. Problemas frecuentes
| Lo que ves | Qué significa y qué hacer |
|---|---|
| Tabla vacía en Race-G | Fuente no lee. Verificá URL/IP/ID, ms, que archivo exista, que TCP IP sea de crono y no tuya, que Chrome+driver estén si es Race-Monitor/Apex/Alkamel, que evento sea público, que internet esté ok. |
| Archivo no encontrado | Ruta mal o archivo aún no creado por crono. Usá 📂 para elegir, no escribas a mano. Verificá que no esté en OneDrive. |
| XML inválido / error parse | Archivo a medio escribir. Subí ms a 800–1000, excluí carpeta de antivirus, usa SSD local. |
| Orbit TCP no conecta / puerto ocupado | IP/puerto mal, firewall, crono apagado, puerto ya usado por otro. Probá 50000, 50001, 50880. Ping a IP del crono. |
| No se pudo abrir puerto X | En Simulador, puerto RMonitor ocupado. Cambiá a 50001 y poné ese en Race-G Orbit TCP. |
| Race-Monitor / Apex / Alkamel vacío | Sin Chrome/chromedriver, versión distinta, evento privado, internet lenta, ms muy bajo. Instalá Chrome+driver misma versión, ms 1500, verificá ID. |
| Veo piloto pero no equipo/marca | Campo Equipo/Marca vacío y crono no lo manda en esos campos. Probá nationality o extra, o cargá equipo/marca en tu base de pilotos. |
| Clasificación ordena por vueltas en qualy | Orbit TCP → Ordenar por → poné Automático o Forzar práctica ($H). |
| EN BOXES nunca aparece | Fuente no manda lasttimeline Pit In/Out o Pits 0% en Simulador. Verificá que parcialera traiga Pit In, o subí Pits a 80% en Simulador. |
| Totem no muestra paradas | CONFIG → Stops Display Mode debe estar en paradas, no dif. Además piloto debe tener efectivas o nopitstops. |
| Cambio de categoría borra boxes | Normal: al cambiar session_id/runname EN BOXES e Historial se vacían para no mezclar tandas. |
16. Lista de control rápida
Al preparar evento
Elegí fuente según crono. Cargá URL/IP/ID con 📂 o IP fija. ms 400 archivo, 1500 nube. Grupo elegido a mano en TCP. Campos equipo/marca si aplica. Si usás Race-Monitor/Apex/Alkamel instalá Chrome+chromedriver misma versión.
Antes de salir al aire
Verificá Polling status OK y tabla con pilotos en Race-G. Probá MOSTRAR En Boxes y Reingreso con Simulador Pits 80%. Si varias categorías, probá #src-switch en PLAY.
Durante transmisión
No cambies fuente a menos que sea necesario. Si cambiás, EN BOXES e Historial se vacían. Si se cae TCP, reconecta solo; si no, revisá IP de crono y firewall.
Al terminar
Cambio de sesión limpia boxes automáticamente. Guardá historial si necesitás. Dejá config guardada para próximo evento con misma fuente.