Contest Arbitrator GIT
Contest Evaluation software for RU-QRP Club and others
Status: Beta
Brought to you by:
ur4mck
***** Contest Arbitrator ("Судья Соревнований") ***** версия 0.3.2 РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ Программа Contest Arbitrator (contesta) предназначена для выполнения судейства радиолюбительских соревнований. Изначально программа была написана по заказу и для облегчения судейства мероприятий клуба RU-QRP. Открытые исходные коды, а также модульная структура программы contesta позволяет использовать ее для судейства и любых других соревнований. Программа contesta находится в стадии разработки и тестирования. Любые замечания и предложения по ее улучшению принимаются по адресу: ur4mck@gmail.com I, УСТАНОВКА На данный момент программа contesta работает на платформах Linux и Windows (Проверено на Linux Debian, CentOS Linux, Xubuntu и Microsoft Windows XP SP 2). Если Вы собираете программу из исходных кодов, обратитесь за инструкцией к файлу INSTALL внутри директории с исходным кодом. Если Вы используете готовые исполняемые файлы, то следуйте инструкциям ниже. Программа contesta является самодостаточной. Это означает, что для ее работы требуется только операционная система и минимальный объем оперативной памяти. Для запуска программы на платформе Win32 требуется Windows 95 или выше. Для запуска программы на платформе Linux требуется библиотека libc-2.5 или выше. Программа contesta не требует установки, она может работать из любой директории. Однако, для упрощения работы с ней рекомендуется скопировать все файлы в специально созданную для программы директорию на локальном диске, например, в C:\contesta Таким образом, в этой директории у Вас будут находиться: contesta.exe - программа Contest Arbitrator /conf - примеры конфигурационных файлов для соревнований RU-QRP Эти файлы откомпилированы для операционной системы Windows. Если Вам они нужны для Linux, то Вам необходимо откомпилировать программу самостоятельно (см. инструкции в файле INSTALL). Проверьте, что программа запускается на Вашем компьютере. Для этого выполните следующие действия: 1. Откройте командную строку (Пуск -> Выполнить -> в поле "Открыть" напишите cmd) 2. В появившемся черном окне перейдите в директорию, в которую Вы скопировали .exe файлы программы contesta (в нашем примере это "C:\contesta"). Для этого в командной строке наберите: cd C:\contesta и нажмите [Enter]. После этого Вы должны увидеть, что сменилась текущая директория (последняя строка в консоли будет такой: C:\contesta> 3. Теперь попробуйте запустить программу с ключом "-h". Так Вы увидите доступные опции программы и убедитесь, что программа запускается на Вашем компьютере. Для этого в командной строке наберите: contesta -h и Вы увидите краткую справку по опциям программы: c:\contesta>contesta -h Contest Arbitrator version 0.3.2 (c) 2009-2013 by Dmitry Gorokh, UR4MCK This program is FREEWARE Usage: contesta [options] [files] Available options are: -h - Show usage information -c <file> - Specify configuration file -d <path> - Specify directory with log files (default is current directory) -o <file> - Specify output file with results (default is stdout) -r <path> - Specify directory for log analyzis reports (default is ./reports) -u <path> -Specify directory for UBN files (default is ./ubn) Please report bugs to ur4mck@gmail.com c:\contesta> II. КОНФИГУРАЦИЯ Программа Contest Arbitrator является консольной программой и требует указания параметров того или иного соревнования в конфигурационном файле. Файл конфигурации представляет собой обычный текстовый файл в удобочитаемым для человека формате. Пример файлов конфигурации для вы найдете в директории /conf. Прежде чем начать судейство нового соревнования, нужно обязательно создать для него файл конфигурации. Для этого можно просто скопировать файл-пример conf/general.conf в другой файл и отредактировать его. Ниже приведено краткое описание формата файла конфигурации. ОПИСАНИЕ ФОРМАТА ФАЙЛА КОНФИГУРАЦИИ Файл конфигурации состоит из пары "имя параметра" и "значение", а также из комментариев к ним. Каждый параметр, определяющий соревнование, начинается с имени параметра, после чего через пробел указывается его значение. Числовые значения указываются как есть (без кавычек или скобок), строковые параметры (нечисловые или такие, в которых присутствует пробел) ОБЯЗАТЕЛЬНО указываются в кавычках. Символ '#' (без кавычек) означает, что до конца строки написан комментарий и этот текст игнорируется программой. В файле конфигурации могут присутствовать пробелы и табуляторы в любых местах, они, также как и пустые строки, игнорируются программой contesta. Описанный формат совместим с принятым в операционных системах семейства *nix и мире OpenSource. Откройте в текстовом редакторе файл conf/general.conf и посмотрите, какие параметры там присутствуют. Параметр "name" - определят название соревнований. Это название фигурирует в результатах анализа отчетов и итоговой рейтинговой таблице. Пример: name "RU-QRP Wake-Up! Sprint" Параметр "id" - определяет условный идентификатор соревнований. Он используется внутри программы contesta для выбора того или иного контестового модуля. Перечень идентификаторов указан в комментариях в файле conf/general.conf: Пример: id 1 Параметр "start" - указывает на начальную дату и время соревнований. Формат такой: "год-месяц-день часыминуты". Время указывается в UTC. Пример: start "2009-06-06 0600" Параметр "end" - указывает на конечную дату и время соревнований. Формат такой же, как и для "start". Обратите внимание, что конечная дата и время указывает следующую минуту сразу после последней минуты соревнований. Так, если в конфигурационном файле указано окончание соревнований в 2009-06-06 0800, то последняя минута соревнований будет 2009-06-06 0759 (точнее время - 07:59:59) Пример: end "2009-06-06 0800" Параметр "rounds" - определяет количество туров (раундов) в соревнованиях. Если раунды не используются, удалите этот параметр из файла конфигурации или укажите его равным 1 или 0. Все раунды делят время проведения соревнований на равные интервалы. Пример: rounds 4 Параметр "max_dt" - устанавливает для соревнований максимально допустимое время расхождения во времени в отчетах участников. Время указывается в секундах. Так, 3-х минутное допустимое расхождение будет иметь значение 180 (сек). Пример: max_dt 180 Параметр "band_list" - определяет перечень допустимых в соревновании радиолюбительских диапазонов. Список состоит из названий диапазонов перечисленных через запятую. Допустимые диапазоны: 160M, 80M, 40M, 20M, 15M, 10M, 6M, 2M, 222, 432, 902, 1.2G, 2.3G, 3.4G, 5.7G, 10G, 24G, 47G, 75G, 119G, 142G, 241G, Light, ALL. Список диапазонов соответствует описанию формата Cabrillo v3. Пример: band_list "40M,20M" Параметр "mode_list" - также как и band_list, этот параметр определяет список допустимых в соревновании режимов работ. Допустимые режимы: CW, SSB, DIGI, RTTY, MIXED, ALL. Пример: mode_list "CW" Параметр "signature" - для обеспечения возможности ручного редактирования судьей отчетов участников требуется указание этого параметра. Эта своеобразная подпись судьи, которая должна совпадать со значением, вручную добавляемого в отчет тэга "SIGNATURE:". Подписью может являться любая строка символов. Редактирование отчетов с использованием подписи может потребоваться, когда судья решает, что какое-либо конкретное QSO в отчете требуется отметить для того, чтобы программа contesta форсировала решение засчитывать или нет это QSO для очков и(или) для множителя. Подпись с тэгом "SIGNATURE:" (без кавычек) в отчете может располагаться в любом месте между тэгами "START-OF-LOG:" и "END-OF-LOG:". Для отметок QSO в отчетах определены следующие символы (без кавычек): '+' - засчитывать QSO для очков '-' - не засчитывать QSO для очков '*' - засчитывать QSO для множителя '%' - не засчитывать QSO для множителя Допускается указание нескольких отметок сразу (без пробелов), но не более двух. Например, '+*' (без кавычек) означает не делать автоматическую проверку этого QSO, а сразу засчитывать его для очков и для множителя. Отрицательные отметки ('-', '%') имеют приоритет над положительными. Так, если будет указана отметка '+-' или '-+' это будет означать не засчитывать очков. Отметки указываются в самом конце значения тэга "QSO:" Примеры: QSO: 14000 CW 2009-06-06 0749 DL9ZP 599 040 CBS RX3PR 559 042 AA/9 + QSO: 14000 CW 2009-06-06 0757 DL9ZP 599 041 PR UA1AFT 599 052 JMG -* В первом примере - засчитывать QSO без проверки. Во втором - не засчитывать QSO для очков, но засчитывать для множителя. При отсутствии тэга "SIGNATURE:" в отчете с отметками они не распознаются программой. Если в отчете присутствует тэг "SIGNATURE:" со значением отличным от подписи в конфигурационном файле, программа предупреждает о мошенничестве выводом сообщения в результат анализа. Пример: signature "UR4MCK signature" Параметр "skip_rst_snt" - если значение равно 1, то при перекрестной проверке не сверяется отправленный RST. Если значение равно 0 или отсутствует в файле конфигурации, то проверка осуществляется. Пример: skip_rst_snt 1 Параметр "skip_rst_rcv" - аналогично: 0 - проверять принятый RST 1 - не проверять принятый RST Пример: skip_rst_rcv 0 Параметр "skip_num_snt" - аналогично: 0 - проверять отправленный порядковый номер 1 - не проверять отправленный порядковый номер Пример: skip_num_snt 1 Параметр "skip_num_rcv" - аналогично: 0 - проверять принятый порядковый номер 1 - не проверять принятый порядковый номер Пример: skip_num_rcv 0 Параметр "skip_chk_snt" - аналогично: 0 - проверять отправленный контрольный номер (или слово) 1 - не проверять отправленный контрольный номер (или слово) Пример: skip_chk_snt 0 Параметр "skip_chk_rcv" - аналогично: 0 - проверять принятый контрольный номер (или слово) 1 - не проверять принятый контрольный номер (или слово) Пример: skip_chk_rcv 0 Параметр "uniq_mult" - управляет подсчетом множителей: 0 - все множители 1 - уникальные множители Пример: uniq_mult 1 Параметр "strict_eval" - Определяет используется ли строгий режим судейства: 0 - обычный режим 1 - строгий режим Пример: strict_eval 0 Параметр "allow_dupes" - разрешает повторные связи: 0 - Повторные связи запрещены и обозначаются ошибкой 1 - Повторные связи разрешены Пример: allow_dupes 1 Параметр "report_dir" - директория для размещения файлов с результатами предварительного анализа Пример: report_dir "reports" Параметр "ubn_dir" - директория, в которой будут размещаться UBN-файлы Пример: ubn_dir "ubn" Параметр "log_emails" - список e-mail адресов, на которые следует высылать исправленные отчеты Пример: log_emails "contest@qrp.ru, rw3ai@mail.ru" Параметр "cfm_unresolved" - задает минимальное кол-во непроверенных QSO, чтобы засчитать их как правильные QSO и для множителя. Минимальное: 2 По-умолчанию: 2 Пример: cfm_unresolved 3 Параметр "search_tags" - определяет нужно ли пытаться искать подходящие теги для тех из них, которые были написаны в отчете с ошибкой. Работает только при ignore_tags 0. 0 - не искать и не исправлять ошибочные теги 1 - искать и пытаться исправлять ошибочно написанные или недопустимые теги Пример: search_tags 0 Параметр "ignore_tags" - игнорировать любые ошибки в неизвестных тегах. 0 - не игнорировать неизвестные теги (сообщать предупреждение) 1 - игнорировать неизвестные или ошибочно написанные теги Пример: ignore_tags 1 Параметр "www" - URL (ссылка) на ресурс в сети, где публикуется информация по контесту Пример: www "http://qrp.ru/contest" Другие параметры конфигурационного файла появятся по мере необходимости. Теперь, когда Вы знакомы с параметрами конфигурации программы contesta, создайте (или отредактируйте) файл конфигурации для своего соревнования. Обязательными параметрами являются: name, id, start, end, max_dt, band_list, mode_list. Разместите Ваш файл конфигурации в одной директории с программой contesta. (На самом деле этот файл может находиться где угодно, но, размещая его рядом с программой Вы упрощаете указание пути к нему). III. СУДЕЙСТВО СОРЕВНОВАНИЙ После того, как Вы познакомились с программой и ее конфигурацией, можно приступать к главной цели - выполнению автоматического судейства. Естественно, что для судейства требуются отчеты участников. На данный момент поддерживаются отчеты в формате Cabrillo (v2, v3, Ermak). Желательно (но необязательно) чтобы отчеты располагались в одной директории. Имена отчетов и их расширения могут быть любыми. Перечень отчетов указывается программе contesta в командной строке. В качестве примера создайте директорию logs и скопируйте туда отчеты участников (например, за Wake-Up). Теперь снова вернитесь к командной строке и вызовите программу contesta с такими параметрами: contesta -c conf/wakeup.conf -d logs/ -o results.txt Как видно, Вы передаете программе файл конфигурации wakeup.conf с помощью опции '-c', указываете на директорию с отчетами с помощью опции '-d' и указываете файл для записи результатов с помощью опции '-o'. Если разные отчеты хранятся в разных местах, их нужно перечислять в командной строке через пробел. После нажатия на [Enter] Вы запускаете судейство программы. Все результаты анализа отчетов, а также итоговый рейтинг записываются в файл указанный в опции '-o' (results.txt в этом примере). О критических ошибках и предупреждениях программа contesta сообщает в командную строку. Остальные сообщения направляются в файл с результатами. Откройте файл результатов в текстовом редакторе и ВНИМАТЕЛЬНО просмотрите все результаты. Возможно, какие-то отчеты содержат ошибки и нуждаются в ручной правке. По окончании исправления ошибок в отчетах, снова запускайте программу contesta как указано выше. Имеет смысл держать оригинальные и правленые отчеты раздельно. В зависимости от конфигурации того или иного контеста, программа судейства может создавать файлы с результатами анализа каждого отчета в отдельности. По-умолчанию результаты предварительного анализа размещаются в директории ./reports, а UBN-файлы - в директории ./ubn. Эти файлы могут рассылаться участникам при необходимости. В самом конце файла результатов располагается итоговая таблица соревнований. Каждый раз, когда программа судейства запускается с новым набором отчетов, эти результаты динамически обновляются. Имейте ввиду, что если для каких-то QSO невозможно рассчитать кол-во очков, то они не входят в итоговую таблицу. По этой же причине, когда получены не все отчеты, для некоторых участников в таблице количество очков может быть равным нулю. Итоговая таблица результатов соревнований после ее проверки главным судьей подлежит публикации в официальных источниках. IV. РЕШЕНИЕ ПРОБЛЕМ Работа над программой Contest Arbitrator продолжается. Ваша помощь в тестировании и улучшении программы обязательно будет полезна разработчику. Каждая новая версия проходит тестирование в разных условиях, однако без всестороннего испытания разными людьми с разными входными данными нельзя гарантировать полное отсутствие ошибок и правильность результатов соревнований. Если Вы обнаружили ошибку, то повторите и опишите все действия с программой. Также не забудьте указать какую версию программы contesta Вы используете, какая у Вас установлена операционная система, какой тип процессора и количество оперативной памяти. Обязательно распишите по шагам, какие действия приводят к возникновению ошибки и как, по Вашему мнению, должна вести себя программа. Любая подробная информация может оказаться полезной в деле скорейшего устранения ошибок! V. ОБРАТНАЯ СВЯЗЬ По любым вопросам относительно программы Contest Arbitrator Вы можете связаться с автором по адресу: ur4mck@gmail.com Приветствуются сообщения об ошибках и предложения по улучшению программы. Программа Contest Arbitrator выпускается под свободной лицензией GNU GPL v3. Если Вы собираетесь использовать исходный код программы Contest Arbitrator в своем продукте, то ссылка на проект Contest Arbitrator обязательна. Также обязательно условие чтобы Ваш новый продукт предоставлялся с исходными кодами по лицензии GNU GPL. Программа Contest Arbiitrator является свободной (freeware) и Вы можете свободно копировать и изменять ее в соответствии с лицензией GNU GPL. Подробная информация о GNU GPL на сайте: http://www.gnu.org/licenses/gpl.html ----- Written by UR4MCK 06.09.2009 Revision: 11.03.2015