I

isap-server

Сервер сбора оценок для системы судейства

ИСАП-сервер

Сервер сбора оценок для системы судейства соревнований по тхэквондо ВТФ (дисциплина пхумсэ).

Содержание

Обзор системы

ИСАП-сервер предназначен для автоматизации судейства соревнований по тхэквондо (пхумсэ). Система позволяет:

  • Подключать судейские пульты по сети TCP/IP
  • Собирать оценки с пультов судей в реальном времени
  • Отображать результаты на демонстрационном экране
  • Вести протокол соревнований в базе данных
  • Поддерживать различные системы проведения соревнований

Поддерживаемые системы судейства

  1. Cut/Freestyle (Система срезок) — традиционная система с оценками за точность и презентацию
  2. Олимпийская система — система по одному выступлению (Recognition) или по двум (SBS)
  3. Система флагов — упрощённая система судейства

Поддерживаемое количество судей

  • 1 судья (для тестирования)
  • 3 судьи
  • 5 судей
  • 7 судей

Требования

Программные требования

  • Qt 5.15 или выше (модули: core, gui, sql, network, qml, svg, xml, widgets)
  • C++17 компилятор
  • MySQL или MariaDB (опционально, для удалённой базы данных)
  • SQLite (встроенная поддержка)

Аппаратные требования

  • Компьютер с сетевой картой (Ethernet/Wi-Fi)
  • Судейские пульты (клиенты ИСАП)
  • Демонстрационный экран (опционально)

Сборка проекта

Linux (ROSA, Ubuntu, etc.)

# Установка зависимостей (для ROSA)
sudo dnf install qt5-devel qt5-base-devel qt5-tools-devel

# Для Ubuntu/Debian
sudo apt-get install qt5-default qtbase5-dev qttools5-dev-tools

# Клонирование репозитория
git clone <repository-url>
cd isap-server

# Сборка
qmake ISAP-server.pro
make

# Запуск
./isap-server

Настройка сервера

Первоначальная настройка

При первом запуске сервер открывается на вкладке «Настройка сервера». Необходимо выбрать:

  1. Вид спорта — Пхумсэ (в разработке: Хапкидо, Кёруги)
  2. Корт — номер корта (1-7) для идентификации сервера
  3. Система — система проведения соревнований
  4. Количество судей — число судей на корте

После выбора всех параметров нажмите кнопку «Отправить» для сохранения настроек и запуска TCP-сервера.

IP-адрес сервера

IP-адрес сервера отображается в заголовке главного окна в формате:

ИСАП-сервер Eth: 192.168.1.100, WiFi: 192.168.1.101 / ver. 1.7.0

Этот адрес необходимо использовать при подключении судейских пультов.

Быстрый доступ к настройкам

Нажмите Ctrl+S в любой момент для возврата к настройкам сервера. При этом:

  • TCP-сервер останавливается
  • Все подключённые пульты отключаются
  • Экран закрывается

Системы проведения соревнований

1. Система Cut/Freestyle (Система срезок)

Файл: system/cut-of/cutofwindow.cpp

Применение: традиционные соревнования с двумя выступлениями.

Особенности:

  • Два выступления: первое и второе пхумсэ
  • Оценки по двум критериям: Точность (Accuracy) и Презентация (Presentation)
  • Шкала оценок: 0.0 — 10.0 с шагом 0.1
  • Поддержка 3, 5 или 7 судей
  • Итоговый расчёт с отбрасыванием максимальной и минимальной оценок

Настройка для Cut/Freestyle:

Вид спорта:     Пхумсэ
Система:        Cut/Freestyle
Количество судей: 3, 5 или 7

Алгоритм подсчёта оценок:

  1. При 3 судьях: все оценки учитываются
  2. При 5 судьях: отбрасываются 1 макс. и 1 мин.
  3. При 7 судьях: отбрасываются 2 макс. и 2 мин.
  4. Итоговая оценка = (Точность + Презентация) / 2

Загрузка участников:

  • Формат CSV: Номер;ФИО;Категория;Пхумсэ1;Пхумсэ2;Номер круга
  • Пример: 1;Иванов Иван;Мужчины до 30 лет;1;2;1

2. Олимпийская система

Файл: system/sbs-olimpic/sbsolimpicwindow.cpp

Применение: соревнования по олимпийской системе (Recognition или SBS).

Режимы работы:

Recognition (по одному выступлению)

  • Одно выступление на спортсмена
  • Оценки Accuracy и Presentation отдельно
  • Возможны возрастные группы (14, 17, 18+ лет)

SBS (Set By Step) — по двум выступлениям

  • Два выступления: первое и второе
  • Суммарный подсчёт оценок
  • Поддержка парных выступлений

Настройка для Олимпийской системы:

Вид спорта:     Пхумсэ
Система:        Олимпийская
Количество судей: 3, 5 или 7

Отличия от Cut/Freestyle:

  • Возможность рандомизации пхумсэ
  • Сохранение результатов в CSV файл
  • Формирование итогового протокола автоматически

3. Система флагов

Файл: system/flags/flagswindow.cpp

Применение: упрощённое судейство без числовых оценок.

Особенности:

  • Каждое выступление оценивается флагами (синий/красный)
  • Быстрое определение победителя
  • Минимальное количество судей (обычно 3)

Настройка:

Вид спорта:     Пхумсэ
Система:        Флаги
Количество судей: 3 (рекомендуется)

Таблица соответствия систем

Система Критерии оценки Выступления Возрастные группы Отбрасывание оценок
Cut/Freestyle Accuracy + Presentation 2 Нет Да (3+, 5+, 7+)
Олимпийская Accuracy + Presentation 1-2 Да (14/17/18+) Да (3+, 5+, 7+)
SBS Accuracy + Presentation 2 Да Да (3+, 5+, 7+)
Флаги Синий/Красный 1 Нет Нет

Структура проекта

isap-server/
├── base/               # Работа с базой данных
├── comboBoxModel/      # Модели для выпадающих списков
├── config/             # Конфигурационные файлы
├── ekran/              # Окна демонстрационного экрана
│   ├── ekran_ocen.*    # Экран оценок (Cut/Freestyle)
│   ├── ekran_olimpic.* # Экран (Олимпийская)
│   └── ekran_flag.*    # Экран (Флаги)
├── img/                # Изображения и логотипы
├── ServerTCP/          # TCP-сервер для подключения пультов
├── sql/                # SQL-запросы к базе данных
├── system/             # Реализации систем судейства
│   ├── cut-of/         # Система Cut/Freestyle
│   ├── sbs-olimpic/    # Олимпийская система
│   └── flags/          # Система флагов
├── dialog.*            # Диалоговые окна
├── ipmonitor.*         # Мониторинг IP-адресов
├── main.cpp            # Точка входа
├── mainwindow.*        # Главное окно
├── settingshelper.*    # Helper для настроек
└── ISAP-server.pro     # Файл проекта Qt

Использование

Подключение судейских пультов

  1. Запустите ИСАП-сервер и выполните первоначальную настройку
  2. На каждом судейском пульте запустите клиентское приложение
  3. Введите IP-адрес сервера (отображается в заголовке окна)
  4. Судьи автоматически подключатся к серверу

Проведение соревнования

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

Горячие клавиши

  • Ctrl+S — возврат к настройкам сервера
  • Ctrl+J — вызов диалога управления оценками

Демонстрационный экран

Открывается автоматически при старте первого выступления. Отображает:

  • ФИО спортсмена
  • Категорию и пхумсэ
  • Оценки судей в реальном времени
  • Итоговую оценку

Лицензия

GPL

Контакты