В состав загружаемого пакета входят:
Помимо состава загружаемого пакета для выполнения задания требуется следующее программное обеспечение (не распространяется в пакете для загрузки):
Предполагается, что это ПО кандидат установит и настроит самостоятельно.
После скачивания пакет следует распаковать и настроить для работы. После распаковки следует зайти в папку ide и запустить программу TesterIDE.exe.
Должно открыться следующее окно:
Необходимо открыть настройки и поправить путь к папке release:
Через среду есть доступ к следующим материалам:
Начинать выполнение задания следует с проектирования, поэтому первым делом надо изучить протоколы имеющиеся в готовом виде. Для этого откройте файлы protocol.utx (двойным кликом в дереве).
Должно получиться так:
Их следует скомпилировать. Для этого надо в каждой папке открыть module.utx. И нажать кнопку запустить.
Убедитесь, что протокол нормально собрался.
Собранный протокол находится в папке Debug. С помощью контекстного меню и Проводника перейдите в эту папку и заберите из нее файл с расширением utc. Его надо разместить в папке release.
Если на этом этапе все получилось, то загружаемый комплект развернут корректно и можно переходить к решению тестовой задачки.
Сценарии и чек-лист лучше разместить в файле scenarios.utx в папке протокола Uniteller.InterchangeFormats.CrossroadController.
Рядом находится заготовка protocol.utx для вашего модуля, ее можно модифицировать.
Когда проектирование выполнено следует с помощью Visio отредактировать заготовку машины состояний для вашего модуля. Заготовка располагается в папке Uniteller.CrossroadController (откройте папку с помощью Browse..) и называется statemachine.vsd.
Описание машины состояний на языке M генерируется специальной утилитой. Для конверсии следует использовать среду:
Если ошибок нет, то перейдите в Uniteller.CrossroadController.utx и нажмите кнопку «Импортировать». Должен получиться файл ресурса Uniteller.CrossroadController.utc. Он войдет в состав динамической бибилиотеки с вашим модулем.
Следующий шаг — получение заголовочных файлов протоколов. Описанные в протоколе сообщения специальным конвертером преобразуются в заголовочный файл C++. В этом файле в соответствующем пространстве имен хранится описание перечислимых типов (в виде enum class), флагов и сообщений (в виде множества классов с соответствующими протоколу именами). Для каждого аргумента сообщения предусмотрены функции-Get/Set для получения значения аргумента из экземпляра сообщения и записи туда значений. Т.е. создание экземпляра сообщения по сути есть создание экземпляра класса и запись нужных значений черезе функции Get/Set. Работа по формированию сообщений является типовой, поэтому заготовка также содержит оберточный класс Protocol, который содержит функции множество Send<Имя сообщения> и Raise<Имя сообщения> по числу сообщений. Эти функции принимают аргументы сообщений в качестве параметров и позволяют быстро сформировать и отправить сообщения кому-то или самому-себе.
Дальше работу следует выполнять в Visual Studio. Откройте с помощью Browse папку с модулем и найдите там решение Visual Studio. Необходимо закодировать обработчики и скомпилировать модуль. Должна получиться динамическая библиотека.
Если вы добрались до этого места, то вы уже можете прислать тестовое задание нам на проверку. Но для того, чтобы быть уверенным в результате на 100%, нужно сделать автоматические тесты.