Open-F1-это клиент Live Timing с открытым исходным кодом.
openf1-console -это приложение TUI, которое использует OpenF1.Data , чтобы показать живой экран времени во время сеансов, и записывает данные для повторных повторений в будущем.
Библиотека OpenF1.Data предоставляется для облегчения подключения к потоку данных F1 Live Timing и обработке входящих данных. Это также позволяет использовать «смоделированные» потоки, где ранее записанные потоки данных можно воспроизвести, чтобы обеспечить легкую разработку/тестирование.
Основные моменты функции:

openf1-consoleЭтот проект сильно вдохновлен проектом Fastf1 Theoehrly. Они проделали большую часть работы, понимая поток SignalR, поступающий из службы Live F1 Live. Посетите их проект, если вы хотите провести какой -либо анализ данных о прошлых событиях F1 или собрать данные о времени живого времени, используя их модуль.
openf1-console openf1-console доступен в качестве инструмента dotnet от Nuget, что означает, что он может быть установлен по всей системе, просто запустив:
# 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. Загрузите исполняемый файл для вашей системной ОС/Архитектуры и просто запустите его напрямую. Список артефактов доступен на странице релиза для последнего релиза.
# 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 SStart Live Session .Timing Tower Во время сеанса потоковые данные времени будут записаны в ~/open-f1/data/<session-name> . Это позволит для будущих повторений этих зарегистрированных данных.
Данные для предварительно записанных сеансов должны храниться в каталоге ~/open-f1/data/<session-name> . Примерные данные можно найти в этой папке данных репо. Чтобы использовать этот пример данных, скопируйте одну из папок в ~/open-f1/data , а затем он будет виден на шаге 4 ниже.
openf1-console , как описано вышеSession SStart Simulation .Timing Tower F1 Предоставляет статические файлы данных времени для уже завершенных сеансов. Эти данные могут быть загружены и преобразованы в тот же формат openf1-console который используется для сохранения живых записанных данных.
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> Все данные сеанса, будь то живые или предварительно записанные, отправляются на Channel , который действует как задержка. После короткой задержки точки данных извлекаются из очереди и обрабатываются, что приводит к обновлениям экранов времени. Сумма этой задержки может быть изменена с помощью действий Delay M / N, пока на экранах ГРМ. Удерживайте ⇧ Сдвиг , чтобы изменить задержку на 30 секунд вместо 5. При использовании openf1-console во время живого сеанса вы можете увеличить эту задержку до ~ 50 секунд (фактическое число может варьироваться), чтобы соответствовать задержке вещания и избежать избаловано предстоящим действием.
Моделируемый сеанс начинается с рассчитанной задержки, равным количеству времени между началом фактического сеанса и теперь. Это означает, что вы можете уменьшить задержку с действием N Delay , чтобы быстро перейти через сеанс.
Существует глобальный курсор, который контролируется с действиями Cursor ▼ / ▲ . То, что этот курсор делает, зависит от экрана, например, можно использовать на экране TIME Tower для прокрутки гоночных управляющих сообщений или для выбора драйвера на башне, чтобы увидеть сравнительные интервалы.
OpenF1 может быть настроен с использованием простого файла config.json через командную строку при запуске или с использованием переменных среды. Конфигурация JSON будет загружена из ~/open-f1/config.json .
| JSON PATH | Командная строка | Переменная среды | Описание |
|---|---|---|---|
dataDirectory | --data-directory | OPENF1_DATADIRECTORY | Каталог, в котором данные времени JSON читаются или написаны из. |
verbose | -v|--verbose | OPENF1_VERBOSE | Следует ли включить регистрацию словеса. По умолчанию: false . Значения: true или false . |
apiEnabled | --with-api | OPENF1_APIENABLED | Должно ли приложение разоблачить API по адресу http: // localhost: 61937. По умолчанию: false . Значения: true или false . |
OpenF1.Data записывает журналы с использованием стандартной реализации ILogger . Журналы клиентов SignalR также передаются стандартному ILoggerProvider .
При запуске журналов openf1-console доступны в двух местах:
Logs L. Журналы могут быть прокручены на этом экране, и минимальный уровень показанных журналов может быть изменен с помощью Minimum Minimum Log Level Dection.~/open-f1/logs . Уровень журнала по умолчанию устанавливается на Information . Больше многословного регистрации может быть включено с помощью параметра конфигурации verbose .
Живое время F1 транслируется с использованием SignalR 2 . OpenF1.Data просто подключается к этой конечной точке, подписывается на подачу данных и прослушивает сообщения. Он подписывается на следующие «темы»:
HeartbeatExtrapolatedClockTopThreeTimingStatsTimingAppDataWeatherDataTrackStatusDriverListRaceControlMessagesSessionInfoSessionDataLapCountTimingDataCarData.zPosition.zChampionshipPredictionTeamRadio Все события, полученные клиентом Live Timing, будут записаны в Data Directory , для получения подробной информации см. Конфигурацию. Файлы будут записаны в подкаталог с именем с использованием текущего имени сеансов, например ~/open-f1/data/Jeddah_Race/ . В этом каталоге будет написано два файла:
subscribe.txt содержит данные, полученные во время подписки (т. Е. Когда клиент Live Timing подключен к потоку)live.txt содержит приложение-лог каждого сообщения, полученного в потоке Оба эти файла необходимы для будущих симуляций/повторов. IJsonTimingClient поддерживает загрузку этих файлов и обработку их так же, как и живые данные. Точки данных будут воспроизведены в режиме реального времени, используя рассчитанную задержку.
Мониторинг сектора времени и пробелов, см. Недавние сообщения о контроле по гонкам, изменения позиции, наблюдать за стратегиями ям и многое другое со стандартным видом на Timing Tower.

Используйте курсор, управляемый действиями Cursor ▼ / ▲ на экране O Timing Tower , чтобы выбрать конкретный драйвер (в данном случае Норрис), чтобы увидеть относительный интервал между этим драйвером и всеми остальными. Это полезно для определения того, куда водитель попадет после пит -стопа, или просмотр ямы во время сокращений.
Кроме того, разрыв между выбранными драйверами и окружающими за последние четыре круга будет отображаться внизу экрана. Это позволяет легко увидеть развивающиеся зазоры с течением времени и оценить, как скоро водитель может наверстать упущенное или отстраниться.

Мониторинг в прямом эфире/лучшем секторе, пробелы, шинах и удаления коленей с помощью специализированной магистральной башни для сеансов, не связанных с гонкой.

На странице Race Control показывается все сообщения о управлении гонкой для сеанса, а также другие данные сеанса, такие как погода.

На странице Timing by Lap вы можете использовать курсор, управляемый действиями Cursor ▼ / ▲ для просмотра исторических снимков башни ГРМ в конце каждого круга. Эта точка зрения покажет изменения позиции во время этого круга и относительные изменения в разрыве и интервале. Прокрутка кругов позволяет создать картину того, как разворачивается гонка.

Слушайте командные радиоприемники из любого времени на сессии и используйте местную модель ML (Whisper), чтобы расшифровать аудио по требованию.

Open-F1 неофициален и никоим образом не связан с компаниями Формулы 1. F1, Формула -1, Формула 1, FIA Formula -One Championship, Гран -при и связанные с ними отметки являются торговыми знаками лицензирования Формулы -1 BV