интересно
Предыдущая | Содержание | Следующая

Состав проекта и применение оболочки developer studio

Обычно имитационная модель создается в среде Developer Studio с применением средств Visual C++. Проект относительно разработки программ - это приложение Windows. Предположим, что среда Developer Studio расположена на жестком диске С в папке Msdev, а файл с текстом модели в терминах Pilgrim находится в папке с именем ModelDir на жестком диске D. Текст модели - это файл, созданный текстовым редактором Developer Studio или Notepad, имеющий срр-окончание (суффикс), например ModelTextxpp. Для определенности назовем наш проект ModelPro.

Рассмотрим типовые технологические последовательности действий, необходимые при создании, модернизации и выполнении моделей. Во всех режимах используются три клавиши меню Developer Studio: File - файл, Insert - вставить и Build - построить.

Создание моделей. Создание новой модели обычно проходит с использованием следующего пути по меню и подменю: File- New -> Project Workspace -> режим Application -t выбор папки ModelDir (можно через режим Browse) -> указание имени проекта ModelPro. В результате будет создан файл управления проектом ModelPro.mdf.

Дальнейшие действия различаются в зависимости от типа проекта:

типовой проект модели;

проект модели с диалоговым окном для управления параметрами при ее запуске или во время выполнения;

проект модели с функциональным окном для конечного пользователя (вывод информации в понятном для потребителя виде).

Типовой проект модели. Создание типового проекта не требует от разработчика знаний языка C++. Проект состоит из четырех файлов:

текст модели ModelTextxpp. Находится в папке;

общая библиотека Comctl32.1ib, содержащая средства Windows и Pilgrim. Бе состав слабо изменяется при разработке новых версий моделирующей системы Pilgrim. Она находится в папке;

библиотека Pilgrim.lib. Существенно изменяется в процессе развития системы Pilgrim. Ее можно найти в папке;

файл ресурсов Pilgrim.res. Также изменяется в процессе развития системы Pilgrim. Его можно найти в папке.

Все вышеперечисленные файлы подключаются к проекту с использованием клавиши Insert общего меню Developer Studio. Обычно в меню и подменю выполняются действия: Insert -> Files into Project -> выбор суффикса (срр, lib, res) -> определение пути к файлу -> подключение.

Далее выполняются компиляция и сборка модели: выбирается клавиша Build общего меню Developer Studio и режим Rebuild All. В результате создается выполняемая модель: файл ModelPro.exe.

Запуск готовой модели из общего меню можно выполнить так: Build -> Execute ModelPro.exe.

Проект модели с диалоговым окном для управления параметрами. Создание такого проекта требует от разработчика некоторых знаний Visual C++.

Сначала необходимо скопировать из папки в папку следующие пять файлов: Parametr.cpp, Palette.bmp, Pilgrim.ico, UserHid.h, UserRes.rc. Проект имеет следующий состав:

текст модели ModelTextcpp. Находится в папке;

типовая программа Parametr.cpp. Программа написана на языке C++; в зависимости от количества регулируемых параметров ее необходимо настраивать на модель. Она также находится в папке;

общая библиотека Comctl32.1ib, содержащая средства Windows и Pilgrim. Находится в папке;

библиотека Pilgrim.lib. Она существенно изменяется в процессе развития системы Pilgrim. Находится в папке;

файл ресурсов. Находится в папке. Написан на языке создания Windows-ресурсов. В зависимости от количества регулируемых параметров этот файл необходимо настраивать на модель.

Прежде чем компилировать и собирать модель, рассмотрим отдельно файл ресурсов UserRes.rc и типовую программу Parametr.cpp.

Файл ресурсов имеет две части: неизменяемую (стандартную) и изменяемую. Макет файла - это UserRes.rc. Текст изменяемой части на языке описания ресурсов Vsual C++ приведен ниже.

Этот файл обеспечивает вывод диалогового окна для управления 20 параметрами модели (рис. 4.11). Если такое количество велико, то можно изменить (сократить) текст файла UserRes.rc для сокращения размеров этого окна и уменьшения количества наблюдаемых или управляемых параметров модели. Кроме того, можно задать совсем другое расположение внутренних окошек для наблюдения за параметрами.

В данном примере количество окошек избыточно, задействовано только 3 из 20 для отображения и управления тремя параметрами модели: 1) float winOl Время моделирования; 2) float win02 Прибытие пассажиров; 3) float winЈ>3 Интервал подхода такси. Зарезервировано одно окошко (с номером 11) для отображения параметра float winl l, который в модели не используется.

Далее рассмотрим текст программы, которая выводит численные значения параметров модели и позволяет их корректировать. Обращение к этой программе производится с помощью вызова Parametr из любого места (или любого узла) модели. Описание макета такой программы приведено ниже.

Начальные значения переменных winOl, win02, win03, winll, а также заголовки и надписи задаются в головной части текста модели:

После возможной корректировки файлов UserRes.rc и Parametr.cpp выполняется компиляция и сборка модели, для чего используется клавиша Build общего меню Developer Studio и режим Rebuild All. В результате создается выполняемая модель ModelPro.exe. Запуск модели: Build -> Execute ModelPro.exe.

Проект модели с функциональным окном для конечного пользователя. Часто бывает необходимо показать конечному пользователю информацию в понятном ему проблемно-ориентированном виде. Это могут быть изменяющиеся таблички, графики, перемещающиеся по экрану изображения (например, автомобили). Такой пользователь не будет изучать моделирующую систему. Поэтому для него средствами Visual C++ создается специальная функциональная программа

funcwindow, которая помещается в динамически вызываемую библиотеку Windows (dll-библиотеку). Обращение к такой библиотеке производится после каждого события в модели. После первого события она загружается в оперативную память. Типовые операторы Visual C++ , используемые при создании такого окна, приведены в приложении 2.

В качестве примера можно рассмотреть полезную программу -часы моделирования. Изображение, появляющееся в правом верхнем углу такого окна, показано на рис. 4.12. Как только очередной интервал моделирования превзойдет 1% модельного времени, эта программа переформировывает содержание функционального окна. В результате можно наблюдать эффект анимации.

Программа функционального окна получает в качестве параметра область памяти struct fwcb, в которой размещены все необходимые оперативные данные на момент последнего события, которое произошло в модели. Адрес этой области памяти содержится в параметре s, передаваемом в программу funcwindow. Ее структура показана ниже:

Рассмотренная область описана в системном h-файле Simulate.h. В соответствии с ее структурой ниже приведен текст программы, реализующей окно типа часы моделирования. Следует отметить, что в данной программе значительное место занимают операторы, необходимые для автоматизации размещения текстов и изображений на заданном прямоугольнике. Если это окно сделать без такого сервиса, то программа будет значительно короче (и понятнее):