Open-F1是開源F1實時計時客戶端。
openf1-console是一個TUI應用程序,它使用OpenF1.Data在會話期間顯示實時計時屏幕,並記錄數據以進行將來的會話重播。
提供了OpenF1.Data庫,以促進與F1實時計時數據流的連接,並處理傳入數據的所有處理。它還允許進行“模擬”流,可以在其中播放以前記錄的數據流以易於開發/測試。
功能亮點:

openf1-console該項目受到Theoehrly的FastF1項目的極大啟發。他們做了很多工作,了解來自F1實時時間服務的Signalr流。如果您想對過去的F1事件進行任何類型的數據分析,請訪問他們的項目,或使用其模塊收集實時計時數據。
openf1-consoleopenf1-console可作為Nuget的dotnet工具提供,這意味著可以簡單地通過運行來安裝系統:
# 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建議使用此方法,因為使用dotnet tool update -g openf1-console可以易於保持應用程序更新。
獨立的可執行文件連接到每個github版本。下載用於系統OS/Architecture的可執行文件,然後直接運行它。文物列表可在發布頁面上找到最新版本。
# 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-consoleSession屏幕Start Live Session操作。Timing Tower動作切換到正時塔屏幕在會話期間,流的定時數據將寫入~/open-f1/data/<session-name> 。這將允許將來重播此記錄的數據。
預先錄製的會話的數據應存儲在~/open-f1/data/<session-name>目錄中。樣本數據可以在此存儲庫樣本數據文件夾中找到。要使用此示例數據,請將其中一個文件夾複製到~/open-f1/data ,然後在下面的步驟4中可見。
openf1-consoleSession屏幕Start Simulation操作開始模擬會話。Timing Tower動作切換到正時塔屏幕F1為已經完成的會話提供靜態的計時數據文件。可以下載此數據並將其轉換為相同的格式openf1-console用途來保存實時記錄的數據。
openf1-console import <year> list列出所選年的可用會議openf1-console import <year> list --meeting-key <meeting-key>查看會議。openf1-console import <year> --meeting-key <meeting-key> --session-key <session-key>所有會話數據,無論是實時還是預錄製,都將發送到充當延遲標題的Channel 。短暫延遲後,從隊列中提取數據點並處理,從而導致定時屏幕上的更新。在定時屏幕上,可以通過M / N Delay操作更改此延遲的量。舉行⇧移動以將延遲更改30秒而不是5。在實時會話期間使用openf1-console時,您可能希望將此延遲增加到約50秒左右(實際數字可能會有所不同)以與廣播延遲匹配並避免被寵壞了即將採取的行動。
模擬會話以計算的延遲開始,等於實際會話開始到現在之間的時間。這意味著您可以通過n Delay操作減少延遲,從而在整個會話中快速前進。
有一個由▼ / ▲ Cursor操作控制的全局光標。該光標的作用取決於屏幕,例如,可以在計時塔屏幕中使用滾動賽車控制消息,或在塔上選擇驅動程序以查看比較間隔。
可以使用簡單的config.json文件,通過啟動時的命令行或使用環境變量來配置OpenF1。 JSON配置將從~/open-f1/config.json加載。
| JSON路徑 | 命令行 | 環境變量 | 描述 |
|---|---|---|---|
dataDirectory | --data-directory | OPENF1_DATADIRECTORY | 從讀取或編寫JSON定時數據的目錄。 |
verbose | -v|--verbose | OPENF1_VERBOSE | 是否應啟用詳細記錄。默認值: false 。價值觀: true或false 。 |
apiEnabled | --with-api | OPENF1_APIENABLED | 該應用是否應在http:// localhost:61937中曝光API。默認值: false 。價值觀: true或false 。 |
OpenF1.Data使用標準ILogger實現編寫日誌。 Signalr客戶端日誌也傳遞給標準的ILoggerProvider 。
運行openf1-console日誌時,可在兩個地方可用:
Logs屏幕。可以在此屏幕上滾動日誌,並且可以通過m Minimum Log Level操作更改所顯示的日誌級別。~/open-f1/logs 。默認日誌級別設置為Information 。可以使用verbose配置選項啟用更多的詳細記錄。
F1實時時間是使用SignalR 2流進行的。 OpenF1.Data僅連接到此端點,訂閱數據feed,然後傾聽消息。它訂閱以下“主題”:
HeartbeatExtrapolatedClockTopThreeTimingStatsTimingAppDataWeatherDataTrackStatusDriverListRaceControlMessagesSessionInfoSessionDataLapCountTimingDataCarData.zPosition.zChampionshipPredictionTeamRadio實時計時客戶端收到的所有事件都將寫入配置的Data Directory ,請參閱配置有關詳細信息。文件將寫入使用當前會話名稱的命名的子目錄,例如~/open-f1/data/Jeddah_Race/ 。在此目錄中,將寫兩個文件:
subscribe.txt包含在訂閱時間接收到的數據(即實時計時客戶端連接到流時)live.txt包含流中收到的每條消息的附錄log這兩個文件都是將來的模擬/重播所必需的。 IJsonTimingClient支持加載這些文件並以相同的方式處理這些文件。數據點將使用計算的延遲實時重播。
監視行業時間和差距,查看最新的種族控制消息,捕獲位置變化,觀察坑策略等,並使用標準的正時塔視圖。

使用由O Timing Tower屏幕中的光標控制的Cursor ,以選擇特定的驅動程序(在這種情況下為Norris),以查看該驅動程序與所有其他驅動程序之間的相對間隔。這對於確定駕駛員在進站之後將在哪裡掉落或在切口下查看坑窗很有用。
此外,在最後四圈中,所選驅動程序與周圍的驅動程序之間的縫隙將顯示在屏幕底部。這使您可以輕鬆地看到隨著時間的流逝而不斷發展的差距,並評估駕駛員可以趕上或拉開多久。

通過專門的定時塔輕鬆地進行非競賽塔,可以輕鬆地監視Live/Best部門時間,間隙,輪胎和膝蓋刪除。

Race Control頁面顯示了會話的所有種族控制消息以及其他會話數據,例如天氣。

在Timing by Lap中,您可以使用由▼ / ▲ Cursor操作控制的光標來查看每個圈末端的時機塔的歷史快照。該視圖將顯示在該圈的位置變化,以及間隔和間隔的相對變化。滾動在圈圈中可以使您可以構建比賽的展開方式。

在會話中隨時收聽團隊無線電剪輯,並使用本地ML型號(Whisper)按需轉錄音頻。

Open-F1是非正式的,與一級方程式公司無關。 F1,一級方程式,Formula 1,FIA Formula One World Championship,Grand Prix和相關標記是一級方程式賽車標記BV