Меню


Site Logo

Состав пакета для загрузки (платформа Windows)

В состав загружаемого пакета входят:

  • Заготовка рабочей папки для выполнения задания (папка workspace);
  • Бинарные компоненты микроядра для запуска и тестирования, а также утилиты разработки (папка release);
  • Среда, упрощающая выполнение задания (папка ide);
  • Краткая памятка, содержащая пример выполнения задания (файл с таким именем в формате pdf);
  • Папка example, содержащая пример реализованного модуля.

Помимо состава загружаемого пакета для выполнения задания требуется следующее программное обеспечение (не распространяется в пакете для загрузки):

  • Microsoft Visual Studio 2013 (или старше);
  • Microsoft Office Visio 2013;
  • Microsoft .NET Framework 4.5.

Предполагается, что это ПО кандидат установит и настроит самостоятельно.

Внимание! В случае отсутствия должных знаний и понимания, что такое MSVC runtime, использование более свежей редакции Visual Studio чем Visual Studio 2013 может привести к проблемам с выполнением этапа физического запуска модуля.

После скачивания пакет следует распаковать и настроить для работы. После распаковки следует зайти в папку ide и запустить программу TesterIDE.exe.

Должно открыться следующее окно:

ide

Необходимо открыть настройки и поправить путь к папке release:

ide

Внимание! Следует указать абсолютный путь в настройке «Путь к установке микро-ядра». Если вы укажете относительный путь — возможны проблемы в работе утилит. Остальные пути можно не трогать.


Через среду есть доступ к следующим материалам:

  • Протоколам, которые даны в готовом виде:
    • Uniteller.InterchangeFormats.Kernel — системный протокол,
    • Uniteller.InterchangeFormats.DeviceController — модуль-исполнитель,
    • Uniteller.InterchangeFormats.MainLogic — контролирующая логика.
  • Заготовке протокола
    • Uniteller.InterchangeFormats.CrossroadController — для хранения сценария, чек-листа и протокола.
  • Заготовке модуля
    • Uniteller.CrossroadController — для размещения машины состояний, кода и тестов.
ide

Начинать выполнение задания следует с проектирования, поэтому первым делом надо изучить протоколы имеющиеся в готовом виде. Для этого откройте файлы protocol.utx (двойным кликом в дереве).

Должно получиться так:

ide

Их следует скомпилировать. Для этого надо в каждой папке открыть module.utx. И нажать кнопку запустить.

ide

Убедитесь, что протокол нормально собрался.

ide

Внимание! Если этап настройки к папке Release не выполнен, то вы увидите такое окошко:

ide

В этом случае нужно проверить настройки путей.


Собранный протокол находится в папке Debug. С помощью контекстного меню и Проводника перейдите в эту папку и заберите из нее файл с расширением utc. Его надо разместить в папке release.

ide

Если на этом этапе все получилось, то загружаемый комплект развернут корректно и можно переходить к решению тестовой задачки.

Сценарии и чек-лист лучше разместить в файле scenarios.utx в папке протокола Uniteller.InterchangeFormats.CrossroadController.

Разрабатывая их желательно придерживаться формата - т.е. описать главные цели, раскрыть их подцели и снабдить все это проверками.

Рядом находится заготовка protocol.utx для вашего модуля, ее можно модифицировать.

Когда проектирование выполнено следует с помощью Visio отредактировать заготовку машины состояний для вашего модуля. Заготовка располагается в папке Uniteller.CrossroadController (откройте папку с помощью Browse..) и называется statemachine.vsd.

Описание машины состояний на языке M генерируется специальной утилитой. Для конверсии следует использовать среду:

ide

Если ошибок нет, то перейдите в Uniteller.CrossroadController.utx и нажмите кнопку «Импортировать». Должен получиться файл ресурса Uniteller.CrossroadController.utc. Он войдет в состав динамической бибилиотеки с вашим модулем.

Следующий шаг — получение заголовочных файлов протоколов. Описанные в протоколе сообщения специальным конвертером преобразуются в заголовочный файл C++. В этом файле в соответствующем пространстве имен хранится описание перечислимых типов (в виде enum class), флагов и сообщений (в виде множества классов с соответствующими протоколу именами). Для каждого аргумента сообщения предусмотрены функции-Get/Set для получения значения аргумента из экземпляра сообщения и записи туда значений. Т.е. создание экземпляра сообщения по сути есть создание экземпляра класса и запись нужных значений черезе функции Get/Set. Работа по формированию сообщений является типовой, поэтому заготовка также содержит оберточный класс Protocol, который содержит функции множество Send<Имя сообщения> и Raise<Имя сообщения> по числу сообщений. Эти функции принимают аргументы сообщений в качестве параметров и позволяют быстро сформировать и отправить сообщения кому-то или самому-себе.

ide

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

Если вы добрались до этого места, то вы уже можете прислать тестовое задание нам на проверку. Но для того, чтобы быть уверенным в результате на 100%, нужно сделать автоматические тесты.