SkiRacePRO
Руководство пользователя · 7.0 RC1

От первого запуска
до итогового протокола.

Пошаговая работа с соревнованием, камерами, результатами и лицензией.

01. Перед первым соревнованием

SkiRace PRO — локальное рабочее место судьи лыжных гонок. Программа помогает подготовить старт, вести ручной хронометраж, сверяться с видео и выпускать протоколы. Она не заменяет аппаратную систему электронного хронометража и не подключает чипы или фотофиниш в этой сборке.

Число 0,01 с в интерфейсе означает шаг представления времени. Точность отсечки зависит от способа ввода, часов компьютера и действий судьи. Для официального старта согласуйте применяемую методику с регламентом соревнования.

  • Подключите ноутбук к питанию. Отключите автоматический сон и проверьте свободное место на дисках.
  • Проверьте дату, время и часовой пояс компьютера. После начала гонки не переводите системные часы.
  • Перед соревнованием проведите учебный старт: сигнал, несколько отсечек, видео, просмотр записи и печать.
  • Распечатайте стартовый список и предусмотрите резервную фиксацию результатов. Сохраняйте копии на отдельный носитель.

Учебный пример доступен через кнопку «Посмотреть пример». До активации он работает в памяти: изменения не сохраняются и создание видеозаписи недоступно. Собственные сохранённые результаты можно просматривать и экспортировать без действующей лицензии.

02. Установка и запуск

Windows

  1. Выберите архив Windows x64 для 64-разрядной системы или x86 для 32-разрядной. Windows 11 использует сборку x64 для Intel/AMD. Разрядность посмотрите в свойствах системы.
  2. Распакуйте весь архив в отдельную папку. Не запускайте SkiRace.exe прямо из окна ZIP. Сохраните папку tools рядом с EXE: в ней находится FFmpeg для камеры.
  3. Запустите SkiRace.exe. Интерфейс откроется в окне браузера. Можно создать ярлык с помощью поставляемого командного файла.
  4. Для Windows 7 нужен Service Pack 1 и совместимый Chrome или Edge 109. Системные компоненты и браузер на старой ОС должны уже быть установлены. Для Windows 10/11 используйте поддерживаемый браузер.

Коммерческая сборка подготовлена с Go 1.20.14 для сохранения совместимости с Windows 7. Исполняемые файлы не имеют сертификата подписи кода Windows. Проверяйте источник загрузки и SHA-256; автоматическое прохождение предупреждений Windows не гарантируется.

Linux

  1. Распакуйте архив Linux x64 для архитектуры x86-64. Сборка не предназначена для ARM.
  2. Разрешите выполнение файлов SkiRace и start.sh. В терминале из папки программы: chmod +x SkiRace start.sh.
  3. Запустите ./start.sh. Нужен Chrome/Chromium либо доступный системный браузер.
  4. Для видео установите FFmpeg из репозитория вашего дистрибутива с кодировщиком libvpx. Для USB-камеры убедитесь, что вашему пользователю доступно устройство /dev/videoN.

Если окно не открылось

  • Проверьте, не запущена ли другая копия SkiRace. Локальный порт по умолчанию — 8765. Программа не завершает чужие процессы.
  • В этом же компьютере откройте http://127.0.0.1:8765. Это локальный адрес программы, его не нужно публиковать в интернете.
  • Не открывайте файл index.html вручную: без локального сервера данные не будут сохраняться.
  • Не отключайте антивирус целиком. Проверьте журнал обнаружений, источник архива и доступность файлов программы.

03. Покупка и активация

  1. На сайте продавца откройте «Получить счёт». Введите реквизиты организации или ИП, адрес и контактную почту. Ознакомьтесь с условиями.
  2. После создания заказа сохраните номер и код доступа отдельным файлом. Автоматическая отправка письма в этой поставке не подключена. Код нужен для получения лицензии, но в PDF-счёт он не включается.
  3. Скачайте PDF-счёт. Проверьте продавца, покупателя, сумму, срок действия и назначение платежа. Оплатите точную сумму с расчётного счёта покупателя.
  4. Продавец проверяет реальное поступление денег по банку и меняет статус заказа. Нажатие «Обновить статус» на сайте не подтверждает оплату самостоятельно.
  5. На компьютере для соревнований откройте SkiRace → «Активировать» или «Лицензия». Скопируйте 64-символьный код установки.
  6. На сайте откройте «Активация», введите номер заказа и код доступа. После подтверждения оплаты вставьте код установки и получите файл .srlic.
  7. В программе выберите файл лицензии или вставьте его текст, нажмите «Применить лицензию». После перезагрузки окна появится «Лицензия активна».

Интернет требуется только для работы с сайтом. Можно скачать лицензию на другом компьютере и перенести файл на флешке. Сама программа проверяет цифровую подпись локально.

Срок и число установок определяются приобретённым заказом. Повторное скачивание лицензии для того же кода не расходует новую установку. Лицензия для другого компьютера не подойдёт. При переустановке ОС, потере папки License или переносе обратитесь к продавцу с номером заказа.

Срок проверяется при запуске и применении лицензии. Если срок закончился во время открытой рабочей сессии, программа позволяет завершить текущую работу; после следующего запуска останутся просмотр, экспорт и очистка. Автономная лицензия не требует регулярного обращения к серверу.

04. Создание соревнования и категорий

  1. Откройте раздел «Соревнование». Укажите название, дату, место, организатора и стиль передвижения. Сохраните форму.
  2. В «Категории и дистанции» создайте каждую зачётную группу. Укажите понятное название, дистанцию, число кругов и время старта.
  3. Выберите интервальный или массовый старт. При интервальном старте участники выпускаются по очереди, при массовом — одновременно в пределах группы.
  4. Проверьте число кругов. При двух кругах первая отсечка является промежуточной, вторая — финишем.
  5. Заполните «Судейскую коллегию»: должности, фамилии и квалификацию. Эти сведения попадут в протоколы.

Начало суток и переход через полночь требуют особенно внимательной проверки даты соревнования и смещения дня старта. Для обычной дневной гонки смещение дня равно нулю.

Поля времени показывают маску во время ввода. Указывайте часы, минуты и секунды в соответствии с подписью поля. Не вводите длительность гонки вместо времени выпуска по часам.

05. Участники и импорт CSV

  1. Сначала создайте категории. Затем откройте «Спортсмены» и добавьте участника вручную либо скачайте шаблон CSV.
  2. В шаблоне заполните номер, ФИО, год рождения, команду и название существующей категории. Сохраните CSV, сохранив читаемость кириллицы.
  3. Импортируйте файл и внимательно прочитайте сообщение об ошибках, если оно появится. Названия категорий должны соответствовать заведённым группам.
  4. Проверьте количество спортсменов, номера, распределение по категориям и команды. Пустые номера можно назначить автоматически.
  5. Для исправления откройте карточку спортсмена. Перед стартом устраните повторяющиеся номера и случайные дубли участников.

Встроенный шаблон предпочтительнее самостоятельного создания заголовков: он соответствует формату импорта. Не переносите в одну ячейку одновременно номер и ФИО.

Сохраните JSON-копию после завершения регистрации. Она содержит состояние соревнования, но не видеозаписи.

06. Жеребьёвка и выпуск групп

  1. Назначьте номера всем спортсменам. Проверьте общий интервал старта и настройки каждой группы.
  2. В разделе «Жеребьёвка» выберите нужный порядок. Проведение жеребьёвки меняет очерёдность старта; введённые номера остаются.
  3. Если нужен порядок по номерам, используйте пересчёт стартовых времён без новой жеребьёвки.
  4. Укажите паузу между группами в минутах. Шаг 0,5 минуты равен 30 секундам: 1,5 — это 1 минута 30 секунд.
  5. Проверьте первый и последний старт каждой группы. Пауза между группами отсчитывается от последнего выпуска предыдущей группы.
  6. При необходимости назначьте индивидуальное время вручную. Оно сохраняется при жеребьёвке; для возврата к расписанию используйте соответствующий флажок.
  7. Сформируйте и распечатайте стартовый протокол. Сверьте его со стартовой бригадой.

После включения хронометража или появления отсечек стартовый порядок защищён от случайного пересчёта. Для нового старта сначала завершите работу с текущими результатами и сохраните копию.

07. Стартовое табло и звук

  1. Откройте «Стартовое табло» и при необходимости разверните его на весь экран. Выберите отображаемую группу или порядок ближайших стартов.
  2. Нажмите «Тест звука», проверьте громкость и выбранное устройство. Браузеру требуется действие пользователя для разрешения воспроизведения.
  3. Включите хронометраж и проверьте сообщение о готовности звуковых сигналов. Одна только открытая страница не означает, что гонка запущена.
  4. Проведите контрольный отсчёт до старта. Если используете смещение звука, положительное значение подаёт сигнал раньше.
  5. Оставьте компьютер подключённым к питанию. Не переводите его в сон и не меняйте время во время гонки.

Звук и табло зависят от браузера, нагрузки и аудиоустройства. Закрытие рабочего окна не позволяет рассчитывать на звуковые сигналы. Не используйте звук браузера как единственную страховку стартовой бригады.

08. Быстрый хронометраж

  1. В «Центре гонки» нажмите «Начать хронометраж».
  2. Введите стартовый номер и нажмите Enter. Проверьте ФИО и категорию выбранного спортсмена.
  3. Введите накопленное время от старта, затем Enter. Например, 123456 превращается в 12:34.56, а 1234 — в 12:34.00.
  4. Для длительности больше часа включите режим с часами. Неполный ввод минут или секунд не следует подтверждать как готовый результат.
  5. Если фиксируете момент по часам компьютера, используйте Пробел в поле времени. Длительность вычисляется относительно заданного времени старта спортсмена.
  6. Следите за последними отметками, количеством финишировавших и спортсменами на дистанции.
РежимКогда использовать
По кругамПрограмма последовательно заполняет круги. Последняя отсечка становится финишем.
Выбрать кругВы выбираете номер промежуточной отсечки, например при восстановлении пропущенной записи.
ФинишНужно сразу записать окончательное время спортсмена.

Отсечка всегда является накопленным временем от старта. Если первый круг пройден за 05:10, а второй за 05:20, второй накопленный результат — 10:30, а не 05:20.

Время по часам или видео

Откройте «Время по часам / видео», укажите время события и проверьте вычисленную длительность. Учитывайте дату и переход через полночь. Время на оверлее IP-камеры может отличаться от часов компьютера; до гонки измерьте смещение.

Исправление ошибки

  • Для последнего действия используйте «Отменить». Убедитесь, что отменяется именно нужная отсечка.
  • Для другого результата нажмите карандаш у спортсмена. Исправляется накопленное время; пустое поле удаляет соответствующую отметку.
  • Если промежуточную отсечку случайно записали как финиш, используйте действие переноса финиша в отсечку и проверьте оставшиеся круги.
  • DNS означает не стартовал, DNF — сошёл, DSQ — дисквалифицирован. DSQ исключает спортсмена из зачёта, сохраняя записанное время.
  • Штраф вводится в секундах в карточке спортсмена. После исправления перепроверьте место и итог.

09. Видео коридора и локальная камера

  1. В центре гонки нажмите «Видео коридора». Появится компактная панель под счётчиками. Для подробного просмотра разверните её в отдельное окно.
  2. Выберите источник: USB-камера либо IP-поток. В Windows камера определяется через DirectShow, в Linux — через устройство Video4Linux2.
  3. Дождитесь предпросмотра и проверьте ракурс, освещение, читаемость номеров и отсутствие перекрытия финишной линии.
  4. Начните запись. Убедитесь, что её статус действительно изменился и появляются сохранённые фрагменты.
  5. Скройте панель, если она мешает хронометражу. Нативная запись FFmpeg продолжает работать при скрытой панели.
  6. Для завершения нажмите «Стоп и сохранить» и дождитесь окончания записи. Только затем закрывайте программу или отключайте камеру.

Запись разбивается на короткие фрагменты примерно по 10 секунд. Поэтому просмотр последних секунд из сохранённого видео может запаздывать примерно на длительность фрагмента. Предпросмотр и сохранённая запись — разные источники изображения.

Закрытие вкладки браузера само по себе не завершает нативную запись. Для штатного выхода используйте кнопку завершения программы после остановки видео. Распознавание номеров работает в браузере: оно продолжается при скрытой панели, пока основное окно остаётся открытым, и прекращается при закрытии всех окон.

Метки и распознавание номеров

Добавляйте метки вручную, чтобы быстро вернуться к спорному финишу. Локальное распознавание предлагает номера, которые нужно проверить. Размытый, перекрытый или повёрнутый номер может распознаться неправильно. Метка помогает найти момент; результат подтверждает судья.

10. IP-камеры: RTSP и ONVIF

Подключение по известному адресу

  1. Подключите компьютер и камеру в доступную друг другу сеть. Уточните IP-адрес, порт, логин, пароль и адрес потока у производителя или в настройках регистратора.
  2. Вставьте полный адрес без изменения символов. Пример структуры: rtsp://192.168.2.45:554/mode=real&idc=1&ids=1. Это пример адреса из частной сети; он не является универсальным адресом всех камер.
  3. Если авторизация задаётся отдельными полями, введите логин и пароль там. Не публикуйте адрес с паролем в переписке или на скриншоте.
  4. Начните с автоматического выбора транспорта. Для RTSP программа пробует TCP, затем UDP. Если сеть теряет пакеты, явно выберите TCP; при специфической камере проверьте UDP.
  5. Для RTSPS используется TCP. Также можно подключать поддерживаемые HTTP/HTTPS видеопотоки, например MJPEG или HLS, если их принимает FFmpeg.

Поиск через ONVIF

  1. Запустите обнаружение камер. WS-Discovery обычно работает в локальном сегменте IPv4 и может не проходить через маршрутизатор или изолированную Wi-Fi сеть.
  2. Если камера найдена, укажите учётные данные пользователя с правами ONVIF и просмотра потока. Иногда такого пользователя нужно отдельно создать в камере.
  3. Получите профили и выберите подходящий основной или дополнительный поток. Для слабого ноутбука начните с меньшего разрешения.
  4. Если обнаружение пустое, попробуйте ручной адрес ONVIF-службы. Её HTTP-порт может отличаться от RTSP-порта 554.
  5. Проверьте часы камеры и компьютера: часть камер отклоняет WS-Security при расхождении времени.

Если регистратор видит камеру, а программа — нет

  • Камеры на PoE-портах регистратора нередко находятся в отдельной подсети. Компьютер должен иметь маршрут к камере либо получать поток через сам регистратор.
  • Проверьте, включены ли ONVIF и RTSP и разрешён ли ещё один клиент. Камера может ограничивать число подключений.
  • Проверьте пароль, профиль кодека, порт, сетевой экран и точный путь потока. Сохраните диагностическое сообщение без пароля.
  • Попробуйте дополнительный поток камеры. Если нагрузка снижается и поток появляется, проблема может быть в декодировании или пропускной способности.
  • Поддержка протокола не гарантирует совместимость со всеми моделями. Для обращения в поддержку укажите модель, прошивку, способ подключения и текст ошибки; пароль не прикладывайте.

11. Защита диска при долгой записи

Нативный процесс проверяет свободное место перед началом записи и примерно каждые 2 секунды. Это работает независимо от того, видна ли видеопанель.

ДискПредупреждениеОстановка записи
С видеозаписямиОсталось менее 5 ГиБОсталось около 2 ГиБ
СистемныйОсталось менее 10 ГиБОсталось около 5 ГиБ
Один общий дискПрименяются оба контроляДействует больший резерв: около 5 ГиБ

ГиБ — двоичная единица: 1 ГиБ = 1 073 741 824 байта. При достижении порога программа завершает запись и сохраняет причину остановки. Старые видеозаписи автоматически не удаляются.

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

  1. Посмотрите свободное место перед соревнованием.
  2. После теста найдите папку видео и оцените размер записи за известное время.
  3. Подготовьте запас места и внешний носитель для копий.
  4. Если запись остановилась, сохраните результаты, освободите место и проверьте новую тестовую запись. Не удаляйте файлы, которые ещё открыты записью.

12. Погода и состояние лыжни

  1. Откройте «Погода». Для протокола предпочтительны фактические измерения на месте соревнования.
  2. Заполните температуру, ветер, давление и осадки вручную. Доступны, в частности, «Солнечно» и «Небольшой снег».
  3. Укажите состояние лыжни отдельным текстом: например, жёсткая подготовленная, свежий снег или рыхлая после снегопада.
  4. При загрузке прогноза проверьте населённый пункт, дату и источник данных. Ручное состояние лыжни сохраняется независимо от прогноза.
  5. Перед печатью убедитесь, что давление и состояние лыжни отображаются в выбранном протоколе.

Давление в протоколах выводится в мм рт. ст. У внешнего погодного источника оно может быть приведено к уровню моря; это не обязательно давление непосредственно на высоте трассы. Не смешивайте прогноз с фактическими измерениями без пояснения.

13. Результаты, круги и протоколы

  1. Откройте «Результаты». Проверьте категорию, дистанцию, финиш, штрафы и статусы каждого участника.
  2. Основное место определяется в своей группе. Дополнительное общее место может объединять разные дистанции; выбирайте представление по дистанциям, если нужен сопоставимый общий зачёт.
  3. При одинаковом итоговом времени программа показывает одинаковое место. Убедитесь, что такой порядок соответствует регламенту соревнования.
  4. Откройте анализ кругов спортсмена. Накопленные отсечки и время отдельного круга — разные величины; проверьте отсутствие случайного ввода времени круга в поле накопленного времени.
  5. В «Протоколах» выберите стартовый, общий, по категориям или по дистанциям. Проверьте заголовок, дату, судей, погоду, давление и лыжню.
  6. Нажмите «Печать / PDF». В диалоге браузера выберите принтер либо «Сохранить в PDF», проверьте ориентацию, поля и предварительный просмотр.

Перед окончательным протоколом проверьте спортсменов без результата и необработанные статусы. Для передачи данных в таблицы используйте экспорт результатов CSV. После утверждения результатов сохраните JSON и PDF отдельно.

14. Копии, восстановление и перенос

Изменения сохраняются на локальном компьютере автоматически. Следите за индикатором сохранения: сообщение о невозможности записи означает, что нельзя считать текущие изменения записанными на диск.

  1. Откройте «Данные и копии» и нажмите «Скачать JSON». Проверьте наличие файла в папке загрузок и скопируйте его на отдельный носитель.
  2. Для дополнительной точки восстановления нажмите «Создать снимок». Программа хранит предыдущую запись и до 80 автоматических снимков.
  3. Для переноса откройте JSON-копию на другом компьютере и проверьте название, участников и результаты. Для внесения изменений на втором компьютере нужна соответствующая лицензия.
  4. Видеозаписи не включены в JSON. Остановите запись и копируйте папку Video отдельно вместе с её внутренними файлами.
  5. При восстановлении из снимка сначала сохраните текущее состояние отдельным JSON. Выберите нужную копию по дате и подтвердите восстановление.

Где находятся данные

Путь показывается в разделе «Данные и копии» и открывается кнопкой «Открыть папку данных». Обычно в Windows это папка пользователя AppData\Roaming\SkiRace PRO\Data, в Linux — $XDG_CONFIG_HOME/SkiRace PRO/Data или ~/.config/SkiRace PRO/Data. При запуске с --data-dir используется заданная папка.

Папка License расположена рядом с Data. В ней находятся идентификатор установки и файл лицензии. Копирование этой папки на другой компьютер не делает лицензию действительной: при проверке учитывается идентификатор ОС.

Если появилось сообщение о конфликте

Не продолжайте параллельное редактирование в двух окнах. Сохраните JSON с нужными изменениями, закройте лишнее окно и перечитайте состояние. При аварийной копии браузера сначала скачайте её для проверки, затем решайте, нужно ли восстанавливать.

15. Очистка и завершение работы

  1. Остановите видео и дождитесь сохранения. Скачайте необходимые JSON, PDF и видеозаписи.
  2. Для нового соревнования обычно достаточно «Новое соревнование» или «Очистить результаты». Это отличается от полной очистки файлов.
  3. Для удаления локальных рабочих данных откройте «Данные и копии» → «Удалить все данные…». Проверьте путь и объём, включая видео.
  4. Введите УДАЛИТЬ и подтвердите. Будут удалены соревнование, видеозаписи и метки, резервные копии, журнал, настройки, погодный кэш и копии SkiRace в текущем профиле браузера.
  5. Лицензия и идентификатор установки сохраняются отдельно. Для полного удаления программы закройте её, удалите папку установки, а затем папку SkiRace PRO в профиле пользователя, если в ней не осталось нужных данных.
  6. Файлы, которые вы скачали или перенесли в другие каталоги, удаляются отдельно. Другие профили браузера тоже очищаются отдельно.

Полное удаление без резервной копии необратимо. После обычной работы используйте кнопку завершения программы, дождитесь сообщения о сохранении и только затем закрывайте окно. Закрытие вкладки не равно остановке нативной записи.

16. Быстрая диагностика

СитуацияЧто проверить
Интерфейс слишком крупныйВыберите сверху Вид → Компактный. В режиме Авто плотность зависит от размеров окна. Проверьте масштаб браузера и системное масштабирование.
Время не принимаетсяПроверьте номер участника, маску, полноту минут и секунд, режим с часами и то, что вводится накопленное время.
Нет звукового сигналаТест звука, первое нажатие в окне, громкость, аудиоустройство, включение хронометража и разрешение воспроизведения.
Видео не начинаетсяFFmpeg, доступ к камере, учётные данные, точный адрес потока, свободное место и действующая лицензия.
ONVIF не находит камеруОдна ли подсеть, нет ли изоляции PoE, включён ли ONVIF и правильный ли порт его службы.
Не сохраняются измененияСвободное место, права на папку Data, конфликт другого окна. Сразу скачайте аварийную JSON-копию.
Лицензия не подходитКод именно этой установки, целый файл .srlic, дата компьютера, срок лицензии. При переносе обратитесь к продавцу.
Оплата не подтверждаетсяНомер заказа, точная сумма и назначение платежа. Свяжитесь с продавцом; статус меняется после проверки банка.

Для обращения за помощью укажите версию программы, ОС и разрядность, точные действия перед ошибкой, текст сообщения и при необходимости диагностический журнал. Не прикладывайте код доступа к заказу, пароль камеры или полные персональные данные спортсменов в публичное сообщение.