Open-F1 est un client de synchronisation en direct F1 open source.
openf1-console est une application TUI qui utilise OpenF1.Data pour afficher un écran de synchronisation en direct pendant les sessions, et enregistre les données pour les futures reéplays de session.
La bibliothèque OpenF1.Data est fournie pour faciliter la connectivité avec le flux de données de synchronisation en direct F1 et gérer tout le traitement des données entrantes. Il permet également des flux "simulés", où des flux de données précédemment enregistrés peuvent être lus pour permettre un développement / test facile.
Fonctionnement des éléments:

openf1-consoleCe projet est fortement inspiré par le projet FastF1 par Theoehrly. Ils ont fait une grande partie du travail en comprenant le flux Signalr provenant du service de synchronisation en direct F1. Visitez leur projet si vous souhaitez effectuer une sorte d'analyse de données sur les événements F1 passés, ou collectez des données de synchronisation en direct à l'aide de leur module.
openf1-console openf1-console est disponible en tant qu'outil dotnet de NuGet, ce qui signifie qu'il peut être installé à l'échelle du système simplement en fonctionnant:
# 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 Cette méthode est recommandée car il est facile de maintenir l'application à jour à l'aide dotnet tool update -g openf1-console .
Les exécutables autonomes sont attachés à chaque version de GitHub. Téléchargez l'exécutable pour votre système d'exploitation / architecture système et exécutez-le simplement directement. La liste des artefacts est disponible sur la page de version de la dernière version.
# 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 comme décrit ci-dessusSession SStart Live Session L.Timing Tower T Au cours de la session, les données de synchronisation diffusées seront écrites sur ~/open-f1/data/<session-name> . Cela permettra de futurs rediffusions de ces données enregistrées.
Les données pour les sessions pré-enregistrées doivent être stockées dans le répertoire ~/open-f1/data/<session-name> . Des données d'échantillons peuvent être trouvées dans ce dossier de données d'échantillon de repos. Pour utiliser cet exemple de données, copiez l'un des dossiers sur ~/open-f1/data , puis il sera visible à l'étape 4 ci-dessous.
openf1-console comme décrit ci-dessusSession SStart Simulation .Timing Tower T F1 fournit des fichiers de données de synchronisation statique pour les sessions déjà terminées. Ces données peuvent être téléchargées et converties au même format Utilisations openf1-console pour enregistrer les données enregistrées en direct.
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> Toutes les données de session, qu'elles soient en direct ou pré-enregistrées, sont envoyées à un Channel qui agit comme une fidélité retardée. Après un court délai, les points de données sont tirés de la file d'attente et traités, conduisant à des mises à jour sur les écrans de synchronisation. Le montant de ce retard peut être modifié avec les actions Delay M / N lorsqu'ils sont sur les écrans de synchronisation. Hold ⇧ Shift pour modifier le retard de 30 secondes au lieu openf1-console 5. être gâté sur l'action à venir.
La session simulée commence par un retard calculé égal à la durée entre le début de la session réelle et maintenant. Cela signifie que vous pouvez réduire le retard avec l'action N Delay pour avancer rapidement pendant la session.
Il existe un curseur global qui est contrôlé avec les actions Cursor ▼ / ▲ . Ce que ce curseur dépend dépend de l'écran, par exemple, peut être utilisé dans l'écran de la tour de synchronisation pour faire défiler les messages de contrôle de la course, ou pour sélectionner un pilote sur la tour pour voir des intervalles comparatifs.
OpenF1 peut être configuré à l'aide d'un fichier config.json simple, via la ligne de commande au démarrage ou à l'aide de variables d'environnement. La configuration JSON sera chargée à partir de ~/open-f1/config.json .
| Chemin JSON | Ligne de commande | Variable d'environnement | Description |
|---|---|---|---|
dataDirectory | --data-directory | OPENF1_DATADIRECTORY | Le répertoire dans lequel les données de synchronisation JSON sont lues ou écrites. |
verbose | -v|--verbose | OPENF1_VERBOSE | Si la journalisation verbeuse doit être activée. Par défaut: false . Valeurs: true ou false . |
apiEnabled | --with-api | OPENF1_APIENABLED | Si l'application doit exposer une API sur http: // localhost: 61937. Par défaut: false . Valeurs: true ou false . |
OpenF1.Data écrit des journaux à l'aide de l'implémentation standard ILogger . Les journaux du client SignalR sont également transmis au standard ILoggerProvider .
Lors de l'exécution de journaux openf1-console sont disponibles à deux endroits:
Logs L. Les journaux peuvent être défilés sur cet écran, et le niveau minimum de journaux affichés peut être modifié avec l'action Minimum Log Level M.~/open-f1/logs . Le niveau de journal par défaut est défini sur Information . Une journalisation plus verbeuse peut être activée avec l'option de configuration verbose .
Le synchronisation en direct F1 est diffusé à l'aide de SignalR 2 . L' OpenF1.Data se connecte simplement à ce point de terminaison, souscrit au flux de données et écoute les messages. Il s'abonne aux "sujets" suivants:
HeartbeatExtrapolatedClockTopThreeTimingStatsTimingAppDataWeatherDataTrackStatusDriverListRaceControlMessagesSessionInfoSessionDataLapCountTimingDataCarData.zPosition.zChampionshipPredictionTeamRadio Tous les événements reçus par le client de synchronisation en direct seront écrits dans le Data Directory configuré, voir la configuration de la configuration pour plus de détails. Les fichiers seront écrits dans un sous-répertoire nommé en utilisant le nom actuel des sessions, par exemple ~/open-f1/data/Jeddah_Race/ . Dans ce répertoire, deux fichiers seront écrits:
subscribe.txt contient les données reçues au moment de l'abonnement (c'est-à-dire lorsque le client de synchronisation en direct est connecté au flux)live.txt contient une annexe de chaque message reçu dans le flux Ces deux fichiers sont requis pour les futures simulations / rediffusion. L' IJsonTimingClient prend en charge le chargement de ces fichiers et les traite de la même manière que les données en direct seraient. Les points de données seront rejoués en temps réel, en utilisant un retard calculé.
Surveiller les temps et les lacunes du secteur, voir les messages récents de contrôle de la race, les changements de position de capture, observer les stratégies de fosse, et plus encore avec la vue standard de la tour de synchronisation.

Utilisez le curseur contrôlé par les actions Cursor ▼ / ▲ dans l'écran O Timing Tower pour sélectionner un pilote spécifique (dans ce cas Norris) pour voir l'intervalle relatif entre ce pilote et tous les autres. Ceci est utile pour déterminer où un conducteur tombera après un arrêt au stand ou en regardant des fenêtres au fosse pendant les coupes.
De plus, l'écart entre les pilotes sélectionnés et ceux qui les entourent au cours des quatre derniers tours seront affichés en bas de l'écran. Cela vous permet de voir facilement les lacunes en évolution au fil du temps et d'évaluer à quel point un conducteur peut rattraper ou s'éloigner.

Surveillez facilement les temps du secteur en direct / les meilleures lacunes, les pneus et les suppressions LAP avec la tour de synchronisation spécialisée pour les séances de non-course.

La page Race Control montre tous les messages de contrôle de la course pour la session, ainsi que d'autres données de session telles que la météo.

Dans la page Timing by Lap , vous pouvez utiliser le curseur contrôlé par les actions Cursor ▼ / ▲ pour afficher les instantanés historiques de la tour de synchronisation à la fin de chaque tour. Cette vue montrera des changements de position pendant ce tour et des changements relatifs dans l'écart et l'intervalle. Le défilement dans les tours vous permet de construire une image de la façon dont la course se déroule.

Écoutez des clips de radio d'équipe de tout moment dans la session et utilisez un modèle ML local (Whisper) pour transcrire l'audio à la demande.

Open-F1 n'est pas officiel et n'est associé en aucune façon aux sociétés de Formule 1. F1, Formule One, Formule 1, FIA Formula One Championship, Grand Prix et Marques connexes sont des marques de Formule One Licensing BV