Open-F1 ist ein Open Source F1 Live-Timing-Client.
openf1-console ist eine TUI-Anwendung, die OpenF1.Data verwendet, um während der Sitzungen einen Live-Timing-Bildschirm anzuzeigen und die Daten für zukünftige Sitzungsreplays aufzuzeichnen.
Die OpenF1.Data -Bibliothek wird bereitgestellt, um die Konnektivität mit dem F1 -Live -Timing -Datenstrom zu erleichtern und die gesamte Verarbeitung der eingehenden Daten zu verarbeiten. Es ermöglicht auch "simulierte" Streams, in denen zuvor aufgezeichnete Datenströme zurückgespielt werden können, um eine einfache Entwicklung/Tests zu ermöglichen.
Feature -Highlights:

openf1-consoleDieses Projekt ist stark vom FastF1 -Projekt von Theoehrly inspiriert. Sie haben einen Großteil der Arbeit geleistet, die den SignalR -Stream aus dem F1 -Live -Timing -Service verstand. Besuchen Sie ihr Projekt, wenn Sie eine Datenanalyse zu früheren F1 -Ereignissen durchführen möchten, oder sammeln Sie mit ihrem Modul Live -Timing -Daten.
openf1-console openf1-console ist als dotnet -Tool von Nuget erhältlich, was bedeutet, dass es einfach durch Ausführen installiert werden kann:
# 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 Diese Methode wird empfohlen, da die App mithilfe von dotnet tool update -g openf1-console einfach auf dem Laufenden zu halten.
An jeder GitHub -Freisetzung sind eigenständige ausführbare Ausführungen angeschlossen. Laden Sie die ausführbare Datei für Ihr System -Betriebssystem/Ihre Architektur herunter und führen Sie sie einfach direkt aus. Die Liste der Artefakte finden Sie auf der Release -Seite für die neueste 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 wie oben beschriebenSessionStart Live Session .Timing Tower Während der Sitzung werden Streamed-Timing-Daten in ~/open-f1/data/<session-name> geschrieben. Dies ermöglicht zukünftige Wiederholungen dieser aufgezeichneten Daten.
Daten für vorgezeichnete Sitzungen sollten im Verzeichnis ~/open-f1/data/<session-name> gespeichert werden. Beispieldaten finden Sie in diesem Repos -Beispieldatenordner. Um diese Beispieldaten zu verwenden, kopieren Sie einen der Ordner in ~/open-f1/data und ist dann in Schritt 4 unten sichtbar.
openf1-console wie oben beschriebenSessionStart Simulation .Timing Tower F1 Bereitstellung statischer Timing -Datendateien für bereits abgeschlossene Sitzungen. Diese Daten können heruntergeladen und in das gleiche Format umgewandelt werden openf1-console verwendet, um live aufgezeichnete Daten zu speichern.
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> Alle Sitzungsdaten, ob live oder vorgezeichnet, werden an einen Channel gesendet, der als verzögerter Zeugnis fungiert. Nach einer kurzen Verzögerung werden Datenpunkte aus der Warteschlange gezogen und verarbeitet, was zu Aktualisierungen der Zeitschirme führt. Die Menge dieser Verzögerung kann mit den M / N Delay während der Zeitschirme geändert werden. Halten Sie ⇧ Verschiebung , um die Verzögerung um 30 Sekunden anstelle von 5 zu ändern. Bei der Verwendung von openf1-console während einer Live-Sitzung möchten Sie diese Verzögerung möglicherweise auf etwa ~ 50 Sekunden erhöhen (die tatsächliche Zahl kann variieren), um mit der Broadcast-Verzögerung übereinzustimmen und zu vermeiden über bevorstehende Action verwöhnt werden.
Die simulierte Sitzung beginnt mit einer berechneten Verzögerung, die der Zeit zwischen dem Beginn der tatsächlichen Sitzung und jetzt entspricht. Dies bedeutet, dass Sie die Verzögerung mit der N- Delay durch die Sitzung auf schnelle Vorwärtsfahrt verringern können.
Es gibt einen globalen Cursor, der mit den Aktionen ▼ / ▲ Cursor kontrolliert wird. Was dieser Cursor tut, hängt vom Bildschirm ab, z.
OpenF1 kann mithilfe einer einfachen config.json -Datei über die Befehlszeile beim Start oder mithilfe von Umgebungsvariablen konfiguriert werden. Die JSON-Konfiguration wird von ~/open-f1/config.json geladen.
| JSON -Pfad | Befehlszeile | Umgebungsvariable | Beschreibung |
|---|---|---|---|
dataDirectory | --data-directory | OPENF1_DATADIRECTORY | Das Verzeichnis, in dem JSON -Timing -Daten gelesen oder geschrieben werden. |
verbose | -v|--verbose | OPENF1_VERBOSE | Ob die ausführliche Protokollierung aktiviert werden sollte. Standard: false . Werte: true oder false . |
apiEnabled | --with-api | OPENF1_APIENABLED | Ob die App eine API unter http: // localhost: 61937 freilegen sollte. Standard: false . Werte: true oder false . |
OpenF1.Data schreibt Protokolle mithilfe der Standard ILogger -Implementierung. SignalR -Client -Protokolle werden ebenfalls an den Standard ILoggerProvider übergeben.
Beim Ausführen openf1-console -Protokollen sind an zwei Stellen erhältlich:
Logs befassen. Protokolle können auf diesem Bildschirm gescrollt werden, und die minimale Ebene der angezeigten Protokolle kann mit der minimalen Minimum Log Level geändert werden.~/open-f1/logs geschrieben. Die Standardprotokollebene wird auf Information gesetzt. Mit der verbose Konfigurationsoption kann mehr ausführliche Protokollierung aktiviert werden.
F1 Live -Timing wird mit SignalR 2 gestreamt. Die OpenF1.Data stellt einfach eine Verbindung zu diesem Endpunkt her, zeichnet sich mit dem Datenfeed ab und hört auf Nachrichten. Es zeichnet die folgenden "Themen" ab:
HeartbeatExtrapolatedClockTopThreeTimingStatsTimingAppDataWeatherDataTrackStatusDriverListRaceControlMessagesSessionInfoSessionDataLapCountTimingDataCarData.zPosition.zChampionshipPredictionTeamRadio Alle vom Live -Timing -Client empfangenen Ereignisse werden in das konfigurierte Data Directory geschrieben. Weitere Informationen finden Sie in der Konfiguration. Dateien werden in ein Unterverzeichnis geschrieben, das unter Verwendung des aktuellen Sitzungsnamens, z. ~/open-f1/data/Jeddah_Race/ . In diesem Verzeichnis werden zwei Dateien geschrieben:
subscribe.txt enthält die zum Abonnementzeit empfangenen Daten (dh wenn der Live -Timing -Client mit dem Stream verbunden ist)live.txt enthält einen Append-Log für jede im Stream empfangene Nachricht Beide Dateien sind für zukünftige Simulationen/Wiederholungen erforderlich. Der IJsonTimingClient unterstützt das Laden dieser Dateien und das Verarbeiten von Live -Daten. Die Datenpunkte werden in Echtzeit unter Verwendung einer berechneten Verzögerung wiedergegeben.
Überwachen Sie die Sektorzeiten und -lücken, sehen Sie sich die aktuellen Rennsteuerungsnachrichten an, erfassen Sie Positionsänderungen erfassen, Pit -Strategien beobachten und mehr mit der Standard -Turmansicht des Standards.

Verwenden Sie den Cursor, der von den ▼ / ▲ Cursor -Aktionen im Bildschirm " Timing Tower gesteuert wird, um einen bestimmten Treiber (in diesem Fall Norris) auszuwählen, um das relative Intervall zwischen diesem Treiber und allen anderen zu sehen. Dies ist nützlich, um festzustellen, wohin ein Fahrer nach einem Boxenstopp fällt oder sich bei den Schnitten die Boxenfenster ansieht.
Darüber hinaus wird die Lücke zwischen den ausgewählten Treibern und denen um sie herum in den letzten vier Runden am unteren Rand des Bildschirms angezeigt. Auf diese Weise können Sie sich im Laufe der Zeit leicht weiterentwickeln und bewerten, wie schnell ein Fahrer aufholen oder sich zurückziehen kann.

Überwachen Sie Live/Best Sector Times, Lücken, Reifen und Runden-Löschungen problemlos mit dem speziellen Timing-Turm für Nicht-Race-Sitzungen.

Auf der Seite Race Control werden alle Rennsteuermeldungen für die Sitzung zusammen mit anderen Sitzungsdaten wie dem Wetter angezeigt.

In der Timing by Lap -Seite können Sie den Cursor verwenden, der von den Aktionen ▼ / ▲ Cursor kontrolliert wird, um historische Schnappschüsse des Timing -Turms am Ende jeder Runde anzuzeigen. Diese Ansicht zeigt Positionsänderungen während dieser Runde und relative Veränderungen in Lücke und Intervall. Wenn Sie durch Runden scrollen, können Sie ein Bild davon erstellen, wie sich das Rennen entfaltet.

Hören Sie aus jeder Zeit in der Sitzung Team -Radioclips und verwenden Sie ein lokales ML -Modell (Whisper), um den Audio -On -Demand zu transkribieren.

Open-F1 ist inoffiziell und wird in keiner Weise mit den Formel-1-Unternehmen in Verbindung gebracht. F1, Formel 1, Formel 1, FIA -Formel -1 -Weltmeisterschaft, Grand Prix und verwandte Marken sind Marken der Formel 1 -Lizenzierung BV