Open-F1 es un cliente de sincronización en vivo F1 de código abierto.
openf1-console es una aplicación TUI que utiliza OpenF1.Data para mostrar una pantalla de sincronización en vivo durante las sesiones, y registra los datos para futuras repeticiones de sesión.
La biblioteca OpenF1.Data se proporciona para facilitar la conectividad con el flujo de datos de sincronización en vivo F1 y manejar todo el procesamiento de los datos entrantes. También permite transmisiones "simuladas", donde se pueden reproducir flujos de datos previamente grabados para permitir un fácil desarrollo/pruebas.
Lo más destacado de la característica:

openf1-consoleEste proyecto está fuertemente inspirado en el proyecto Fastf1 por Theoehrly. Hicieron mucho trabajo entendiendo la transmisión de señales provenientes del servicio de sincronización en vivo F1. Visite su proyecto si desea realizar algún tipo de análisis de datos sobre eventos de F1 pasados o recopilar datos de tiempo en vivo utilizando su módulo.
openf1-console openf1-console está disponible como una herramienta dotnet de Nuget, lo que significa que se puede instalar en todo el sistema simplemente ejecutando:
# Install globally using the -g flag
dotnet tool install -g openf1-console
# Assuming the dotnet tools directory is on your path, simply execute openf1-console
openf1-console Se recomienda este método, ya que es fácil mantener la aplicación actualizada utilizando dotnet tool update -g openf1-console .
Los ejecutables independientes están conectados a cada liberación de GitHub. Descargue el ejecutable para su sistema operativo/arquitectura de su sistema y simplemente ejecutarlo directamente. La lista de artefactos está disponible en la página de lanzamiento para la última versión.
# Download the latest executable (in this case for osx-arm64)
curl https://github.com/JustAman62/open-f1/releases/latest/download/openf1-console-osx-arm64 -o ./openf1-console -L
# Execute openf1-console to start the TUI
./openf1-console # Checkout the git repository
git clone [email protected]:JustAman62/open-f1.git
# Run the console project with `dotnet run`
dotnet run --project OpenF1.Console/OpenF1.Console.csprojopenf1-console como se describe anteriormenteSession SStart Live Session .Timing Tower T Durante la sesión, los datos de sincronización transmitidos se escribirán en ~/open-f1/data/<session-name> . Esto permitirá futuras repeticiones de estos datos registrados.
Los datos para las sesiones pregrabadas deben almacenarse en el directorio ~/open-f1/data/<session-name> . Los datos de muestra se pueden encontrar en esta carpeta de datos de muestra Repos. Para usar estos datos de muestra, copie una de las carpetas a ~/open-f1/data y luego será visible en el paso 4 a continuación.
openf1-console como se describe anteriormenteSession SStart Simulation F.Timing Tower T F1 proporciona archivos de datos de sincronización estática para sesiones ya completadas. Estos datos se pueden descargar y convertir en el mismo formato que usa openf1-console para guardar datos grabados en vivo.
openf1-console import <year> listopenf1-console import <year> list --meeting-key <meeting-key>openf1-console import <year> --meeting-key <meeting-key> --session-key <session-key> Todos los datos de la sesión, ya sean en vivo o pregrabados, se envían a un Channel que actúa como un retraso. Después de un breve retraso, los puntos de datos se extraen de la cola y se procesan, lo que lleva a actualizaciones sobre las pantallas de sincronización. La cantidad de este retraso se puede cambiar con las acciones Delay m / n mientras está en las pantallas de sincronización. Mantenga ⇧ Cambio para cambiar el retraso en 30 segundos en lugar de 5. Cuando se usa openf1-console durante una sesión en vivo, es posible que desee aumentar este retraso a alrededor de ~ 50 segundos (el número real puede variar) para que coincida con el retraso de la transmisión y evite ser mimado sobre la próxima acción.
La sesión simulada comienza con un retraso calculado igual a la cantidad de tiempo entre el inicio de la sesión real y ahora. Esto significa que puede disminuir el retraso con la acción Delay N para avanzar rápidamente a través de la sesión.
Hay un cursor global que se controla con las acciones Cursor ▼ / ▲ . Lo que hace este cursor depende de la pantalla, por ejemplo, se puede usar en la pantalla de la torre de distribución para desplazarse a través de mensajes de control de carrera, o para seleccionar un conductor en la torre para ver intervalos comparativos.
OpenF1 se puede configurar utilizando un archivo config.json simple, a través de la línea de comando al inicio o utilizando variables de entorno. La configuración de JSON se cargará desde ~/open-f1/config.json .
| Camino json | Línea de comando | Variable de entorno | Descripción |
|---|---|---|---|
dataDirectory | --data-directory | OPENF1_DATADIRECTORY | El directorio en el que se lee o escribe datos de tiempo JSON. |
verbose | -v|--verbose | OPENF1_VERBOSE | Si el registro detallado debe estar habilitado. Predeterminado: false . Valores: true o false . |
apiEnabled | --with-api | OPENF1_APIENABLED | Si la aplicación debe exponer una API en http: // localhost: 61937. Predeterminado: false . Valores: true o false . |
OpenF1.Data escribe registros utilizando la implementación estándar ILogger . Los registros de clientes de SignalR también se pasan al estándar ILoggerProvider .
Cuando se ejecuta los registros openf1-console están disponibles en dos lugares:
Logs . Los registros se pueden desplazar en esta pantalla, y el nivel mínimo de registros que se muestran se pueden cambiar con la acción Minimum Log Level m mínimo.~/open-f1/logs . El nivel de registro predeterminado se establece en Information . Se puede habilitar más registro verboso con la opción de configuración verbose .
El tiempo en vivo F1 se transmite usando SignalR 2 . OpenF1.Data simplemente se conecta a este punto final, se suscribe a la alimentación de datos y escucha los mensajes. Se suscribe a los siguientes "temas":
HeartbeatExtrapolatedClockTopThreeTimingStatsTimingAppDataWeatherDataTrackStatusDriverListRaceControlMessagesSessionInfoSessionDataLapCountTimingDataCarData.zPosition.zChampionshipPredictionTeamRadio Todos los eventos recibidos por el cliente de tiempo en vivo se escribirán en el Data Directory configurado, consulte la configuración para obtener detalles. Los archivos se escribirán en un subdirectorio nombrado utilizando el nombre de las sesiones actuales, por ejemplo, ~/open-f1/data/Jeddah_Race/ . En este directorio, se escribirán dos archivos:
subscribe.txt contiene los datos recibidos en el tiempo de suscripción (es decir, cuando el cliente de tiempo en vivo conectado a la transmisión)live.txt contiene una sesión de append de cada mensaje recibido en la transmisión Ambos archivos son necesarios para futuras simulaciones/repeticiones. IJsonTimingClient admite la carga de estos archivos y procesarlos de la misma manera que los datos en vivo serían. Los puntos de datos se reproducirán en tiempo real, utilizando un retraso calculado.
Monitoree los tiempos y las brechas del sector, consulte los mensajes de control de carrera recientes, capturar cambios en la posición, observar estrategias de boxes y más con la vista de la torre de tiempo estándar.

Use el cursor controlado por las acciones Cursor ▼ / ▲ en la pantalla Timing Tower O para seleccionar un controlador específico (en este caso Norris) para ver el intervalo relativo entre ese controlador y todos los demás. Esto es útil para determinar dónde caerá un conductor después de una parada en boxes, o mirar ventanas de boxes durante los cortes.
Además, la brecha entre los controladores seleccionados y los que los rodean en las últimas cuatro vueltas se mostrará en la parte inferior de la pantalla. Esto le permite ver fácilmente los espacios en evolución con el tiempo y evaluar qué tan pronto un conductor puede ponerse al día o alejarse.

Monitoree fácilmente fácilmente los mejores tiempos del sector, los mejores tiempos del sector, las deleciones de LAP con la torre de sincronización especializada para sesiones no de carrera.

La página Race Control muestra todos los mensajes de control de la carrera para la sesión, junto con otros datos de la sesión, como el clima.

En la página Timing by Lap , puede usar el cursor controlado por las acciones Cursor ▼ / ▲ para ver las instantáneas históricas de la torre de sincronización al final de cada vuelta. Esta vista mostrará cambios de posición durante esa vuelta y cambios relativos en la brecha e intervalo. Desplácese a través de las vueltas le permite construir una imagen de cómo se desarrolla la carrera.

Escuche los clips de radio del equipo de cualquier momento de la sesión y use un modelo ML local (Whisper) para transcribir el audio a pedido.

Open-F1 no es oficial y no se asocia de ninguna manera con las compañías de Fórmula 1. F1, Fórmula Uno, Fórmula 1, Campeonato Mundial de Fórmula Uno de la FIA, Gran Premio y marcas relacionadas son Marcas de Fórmula Uno BV BV