Open-F1は、オープンソースF1ライブタイミングクライアントです。
openf1-console OpenF1.Dataを使用してセッション中にライブタイミング画面を表示し、将来のセッションリプレイのデータを記録するTUIアプリケーションです。
OpenF1.Dataライブラリは、F1ライブタイミングデータストリームとの接続を促進し、着信データのすべての処理を処理するために提供されます。また、「シミュレートされた」ストリームも可能になります。ここでは、以前に記録されたデータストリームを再生して、簡単に開発/テストすることができます。
機能のハイライト:

openf1-consoleを始めましょうこのプロジェクトは、FASTF1プロジェクトがTheoehrlyによると深くインスピレーションを受けています。彼らは、F1ライブタイミングサービスからのSignalRストリームを理解する多くの作業を行いました。過去のF1イベントに関するデータ分析を行いたい場合は、モジュールを使用してライブタイミングデータを収集する場合は、プロジェクトにアクセスしてください。
openf1-consoleを始めましょうopenf1-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/アーキテクチャ用の実行可能ファイルをダウンロードし、直接実行するだけです。アーティファクトのリストは、最新リリースのリリースページで入手できます。
# 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を起動しますSession画面に移動しますStart Live Sessionアクションでライブセッションを開始します。Timing Towerアクションでタイミングタワー画面に切り替えるセッション中に、ストリーミングされたタイミングデータは~/open-f1/data/<session-name>に書き込まれます。これにより、この記録されたデータの将来のリプレイが可能になります。
事前に録音されたセッションのデータは~/open-f1/data/<session-name>ディレクトリに保存する必要があります。サンプルデータは、このREPOSサンプルデータフォルダーにあります。このサンプルデータを使用するには、フォルダーの1つを~/open-f1/dataにコピーすると、以下のステップ4に表示されます。
openf1-consoleを起動しますSession画面に移動します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アクションで変更できます。ホールド⇧シフトは5ではなく30秒ずつ遅延を変更します。ライブセッション中にopenf1-consoleを使用する場合、この遅延を約50秒(実際の数値が異なる場合があります)に増加し、放送の遅延と一致して回避することをお勧めします。今後の行動について甘やかされている。
シミュレートされたセッションは、実際のセッションの開始から現在までの時間に等しい計算された遅延から始まります。これは、セッションを通じてn Delayアクションが早送りすることで遅延を減らすことができることを意味します。
▼ / ▲ Cursorアクションで制御されるグローバルカーソルがあります。このカーソルが何をするかは画面に依存します。たとえば、タイミングタワー画面で使用して、レースコントロールメッセージをスクロールするか、タワーのドライバーを選択して比較間隔を確認できます。
OpenF1は、Simple config.jsonファイルを使用して、起動時のコマンドラインを使用して、または環境変数を使用して構成できます。 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ログを実行するときは、2つの場所で使用できます。
Logs画面を表示できます。この画面でログをスクロールすることができ、表示されるログの最小レベルは、 MのMinimum Log Levelアクションで変更できます。~/open-f1/logsに書き込まれます。デフォルトのログレベルはInformationに設定されています。 verbose configオプションでは、より多くの冗長ロギングを有効にできます。
F1ライブタイミングは、 SignalR 2を使用してストリーミングされます。 OpenF1.Dataは、このエンドポイントに接続し、データフィードをサブスクライブし、メッセージを聴きます。次の「トピック」に登録します。
HeartbeatExtrapolatedClockTopThreeTimingStatsTimingAppDataWeatherDataTrackStatusDriverListRaceControlMessagesSessionInfoSessionDataLapCountTimingDataCarData.zPosition.zChampionshipPredictionTeamRadioライブタイミングクライアントが受信したすべてのイベントは、構成されたData Directoryに書き込まれます。詳細については、構成を参照してください。ファイルは、現在のセッション名( ~/open-f1/data/Jeddah_Race/を使用して名前が付けられたサブディレクトリに書き込まれます。このディレクトリでは、2つのファイルが書き込まれます。
subscribe.txtは、サブスクリプション時に受信されたデータが含まれています(つまり、ライブタイミングクライアントがストリームに接続されている場合)live.txtは、ストリーム内で受信されたすべてのメッセージの付録ログが含まれていますこれらのファイルは両方とも、将来のシミュレーション/リプレイに必要です。 IJsonTimingClient 、これらのファイルの読み込みをサポートし、ライブデータと同じ方法でそれらを処理します。データポイントは、計算された遅延を使用してリアルタイムで再生されます。
セクターの時間とギャップを監視し、最近のレースコントロールメッセージを参照し、位置の変更をキャプチャし、ピット戦略を観察し、標準的なタイミングタワービューを使用します。

O Timing Tower画面の▼ / ▲ Cursorアクションによって制御されたカーソルを使用して、特定のドライバー(この場合はノリス)を選択して、そのドライバーと他のすべての間の相対的な間隔を確認します。これは、ピットストップの後にドライバーがどこに落ちるか、またはカット下でピットウィンドウを見るのに役立ちます。
さらに、最後の4周で選択したドライバーと周囲のドライバーとの間のギャップが画面の下部に表示されます。これにより、時間の経過とともに進化するギャップを簡単に見ることができ、ドライバーが追いつくか、引き離すかを評価することができます。

ライブ/ベストセクターの時間、ギャップ、タイヤ、ラップの削除を、レース以外のセッションのための特殊なタイミングタワーで簡単に監視します。

Race Controlページには、セッションのすべてのレースコントロールメッセージと、天気などの他のセッションデータが表示されます。

Timing by Lapページでは、 ▼ / ▲ Cursorアクションで制御されたカーソルを使用して、すべてのラップの終わりにタイミングタワーの履歴スナップショットを表示できます。このビューでは、そのラップ中の位置の変化と、ギャップと間隔の相対的な変化が示されます。ラップをスクロールすると、レースがどのように展開されているかの写真を撮ることができます。

セッションのいつでもチームのラジオクリップを聞き、ローカルMLモデル(ささやき)を使用して、オンデマンドオーディオを転写します。

Open-F1は非公式であり、F1社に決して関連付けられていません。 F1、フォーミュラワン、フォーミュラ1、FIAフォーミュラワンワールドチャンピオンシップ、グランプリ、および関連マークはフォーミュラワンライセンスBVのトレードマークです