Fandom

Scratchpad

Бельский

216,262pages on
this wiki
Add New Page
Discuss this page0 Share

Ad blocker interference detected!


Wikia is a free-to-use site that makes money from advertising. We have a modified experience for viewers using ad blockers

Wikia is not accessible if you’ve made further modifications. Remove the custom ad blocker rule(s) and the page will load as expected.

Задание

реализация алгоритмов и программного комплекса, позволяющих:

I) собирать истории матчей игр Robocup, используя встроенный logplayer;

II) извлекать параметры матчей из сохраненных игр;

III) выбрать удобный формат для хранения полученных параметров. Решение вопроса об использовании для этого прошлых наработок.

Ход выполнения

сентябрь 2007

Информация к размышлению: rcssserver имеет встроенный logplayer, который способен сохранять матчи в файл определенного формата rcg. данный файл содержит: полные конфигурации всех игроков за матч, положение мяча, переданные параметры и т.д. также в комплект rcssserver входит программа rcg2xml.exe, при помощи которой можно преобразовать файл внутреннего представления в xml файл. в 2006 году в среде M была написана программа, позволяющая считать этот файл с целью программной обработки данных. однако rcg2xml.exe переводила только первые 100 симуляционных циклов матча, что, по является недостаточным для полноценного разбора игры. поэтому было принято решение перекомпилировать rcssserver для получения "улучшенной" версии rcg2xml.exe


В связи с этим были проведны следующие работы:

1) Установка Cygwin на машину в ЛР классе(причину установки см. ниже).

Результат:успешно установлен эмулятор + все возможные на данный момент пакеты к нему(включая компиллятор gcc).

2) Изучение исходных кодов сервера Robocup rcssserver. Компилляция его на Сygwin.

Результат:Получен сервер rcssserver, однако полученная версия - не рабочая, валится при запуске. По всей видимости ошибка разработчиков ПО. В связи с большими размерами исходных кодов и трудностей компилляции, связанных с тем, что половина из них идет при помощи Unix-образных скриптов, длинна которых иногда порядка 2000 строк...

В связи с этим начался поиск других путей решения поставленной задачи сбора информации из матчей.

Информация к размышлению: в результате изучения manual.pdf, поставляемого с сервером, и исходников сервера, было выявлена структура rcg-файла. было принято решение создать свой аналог rcg2xml.exe, используя для этого среду разработки Microsoft Visual Studio C++.

14.10.2007

Разработана программа, позволяющая считать информацию из файла в заданных сервером структурах. Возникла проблема со способом хранения информации(числовая информация хранится в зашифрованном при помощи TCP/IP функций, таких как ntohs, ntols и т.д.).

31.10.2007

Проблема разрешена путем исследования исходников сервера. Программа переделана под интерфейс Windows(с использованием библиотеки MFC). Добавлена возможность сохранения в XML файл. Однако считывание файла производится неправильно, почему-то программа находит конец файла там, где точно должны быть данные. Вероятно, вопрос в правильном размере структур, но и тут вроде все нормально... Тогда, вполне вероятно, что вопрос в неправильной документации.

ноябрь 2007

1.11.2007

В исходниках логплеера обнаружен код программы rcg2xml.exe. С его помощью можно попробовать: 1)пересобрать полностью программу либо 2)выяснить до конца структуру RCG файла(причина - неправильная документация).

3.11.2007

Реализован первый пункт(см. запись от 1.11.2007). Результат - тот же, т.е. на одинаковые тесты моя программа и сервера ведет себя одинаково. В общем, ошибка скорее всего какая-то системная, поскольку сервер писался под *nix подобные платформы.

6.11.2007

Доработана своя программа rcg2xml.exe, найдена ошибка. Теперь логи сохраняются правильно и в полном объеме! Однако: 100 циклов игры занимают в файле 1МБ.

7.11.2007

При личном разговоре с Г была поставлена задача: сохранять не в один xml файл, а в несколько так, чтобы размер каждого был примерно 1МБ. После этого загружать по очереди в матлаб с последующей прорисовкой поля.

14.11.2007

Разбиение удачно получено. Программа просит ввести имя пакета, затем происходит сохранения в файлах с названием Packagename-№.xml, где № - номер текущего файла. Полувчено задание по правильной зарузке файлов в структуры M с последующим отображением ситуаций на поле.

23.11.2007

На данный момент получены следующие результаты:

разработан программный комплекс, позволяющий записывать конкретный матч(либо брать готовые записи, например с чемпионата по Robocup), переводить лог игры в удобный для нас(и M) формат XML, считывать последующие файлы с постепенным заполнением структур M, проигрывание матча с отрисовкой на графике M.

Задание

1) Используя полученные данные от конкретных матчей Robocup, находить моменты, в игре, когда происходила удачная распасовка.

2) Сохранять конфигурацию таких моментов. Разработать формат для сохранения полученной информации.

декабрь 2007

9.12.2007

Доработка М-ной части проекта. Устранение найденных ошибок в коде RCG2XML(неправильная обратная конвертация некоторых параметров).

5.12.2007

В ходе дополнительного тестирования разработанного комплекса выявлены следующие недостатки: получаемые XML файлы крайне медленно загружаются в M(будь он неладен!), что очень сильно влияет на производительность комплекса в целом. В связи с этим было принято(совместно с А.Г.) решение сделать из приложения RCG2XML клиентское приложение, используя технологию DDE. В качестве сервера должен выступать сервер M, которому будут напрямую посылаться данные о ходе игры.

28.12.2007

После долгого изучения статей MSDN и справочной информации M про DDE удалось установить связь моей программы с сервером M. Однако работают не все команды M. Но тех, которые работают, достаточно.

Also on Fandom

Random wikia