Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

cherepanov / Тихонов_Лаб.раб.№1

.docx
Скачиваний:
16
Добавлен:
25.03.2015
Размер:
1.4 Mб
Скачать

РОССИЙСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ

НЕФТИ И ГАЗА ИМЕНИ И.М. ГУБКИНА

Кафедра «Автоматизированные системы управления»

Курс «Компьютерное моделирование нефтегазодобычи»

Отчёт по лабораторной работе №1:

«Создание простейшего плагина»

Выполнил:Черепанов К.Н.

Группа: АС-09-4

Проверил: Изюмов Б. Д.

г. Москва, 2013г.

Цель лабораторной работы: освоить методику создания простейшего плагина с помощью инструментальных средств MS Visual Studio и Petrel 2012.

Этапы выполнения работы.

Шаг 1. Создание проекта.

Создаём новый плагин, входящий в него модуль и рабочий шаг. Для этого в типе проекта выбираем «Ocean Plugin». Далее создаём и именуем наш проект (в данном случае «cherepanov_lab1»).

Плагин называется так же, как и лабораторная работа. Здесь же вводим имя автора, электронную почту и ставим галочку для создания нового модуля.

В графе «Location of Petrel application» прописан путь к Petrel.exe. Создаем новый модуль и указываем галочку напротив «Register modules in this solution».

C помощью нажатия на иконку создания нового пункта меню (с зеленым крестиком) добавляем новый пункт меню «Hello World» и подпункт «Show Hello World».

На этом процедура создания проекта завершена.

Шаг 2. Прописывание логики программы.

Для того чтобы наш плагин выводил «Hello World», нужно заменить строку кода в MessageBox.Show на «Hello World».

Чтобы отследить весь жизненный цикл модуля, открываем «Module.cs» и добавляем в методы жизненного цикла модуля следующий код: PetrelLogger.Info0utputWindow(“Tihonov_Lab1 Initialize”);

Так заменяем в каждой строке кода «Initialize» на соответствующий метод.

Результат выполнения программы

Ответы на вопросы:

Для того чтобы посмотреть, где регистрируется плагин, нажимаем правой кнопкой на проект и выбираем пункт «Properties». Нажав на заголовок «Build Events», мы увидим, где регистрируется наш плагин («Post-build event command line»).

Активировать/деактивировать или удалить плагин можно, зайдя в пункт меню «Help» → «Ocean Plug-in Manager», далее откроется окно плагинов, где можно выполнять действия над ними.

5 этапов жизненного цикла модуля:

  1. Initialize (внутренняя инициализация, регистрация сервисов)

  2. Integrate (интеграция с другими модулями)

  3. IntegratePresentation (добавление элементов в пользовательский интерфейс)

  4. Disintegrate (удаление связей с другими модулями, отписка от событий и пр.)

  5. Dispose (закрытие файлов, подключений).

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

  1. Загружается ядро Ocean, сервисы и приложение Petrel

  2. Ядро считывает из конфигурационного файла список сборок, которые необходимо загрузить

  3. Для каждой сборки осуществляется создание объекта класса-потомка Plugin

  4. Для каждого модуля, возвращаемого свойством Plugin.Modules, создается объект класса модуля

  5. Все загруженные модули последовательно проходят стадии Initialize, Integrate и IntegratePresentation

  6. Переход всех моделей между стадиями происходит синхронно под управлением ядра, такой подход позволяет модулям использовать методы других модулей и интегрироваться с ними, без риска вызвать исключительную ситуацию

  7. Интерфейс показывается пользователю, и пользователь приступает к работе

  8. При закрытии Petrel последовательно вызывается стадия Disintegrate, затем Dispose

Методы Imodule находятся в классе Module.cs

Выводы:

  1. Освоена методика создания простейшего плагина;

  2. Получены навыки настройки взаимодействия MS Visual Studio и Petrel 2012;

  3. Изучен порядок запуска Petrel, жизненные циклы модуля и много другой полезной и необходимой для учебного процесса информации.