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