Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КонспЛекций_ГСиИО_Козак.doc
Скачиваний:
96
Добавлен:
06.12.2018
Размер:
8.64 Mб
Скачать

Выявление открытых интерфейсов среды

На основе проведённого анализа единого исполняемого окружения CoDeSys, можно сделать вывод, что для реализуемых прикладных задач трёх мерного моделирования объекта управления и управления доступом пользователей необходима реализация компонентов в виде плагинов. Для этого следует выявить интерфейсы интеграции необходимые для реализации общих функций пользовательского интерфейса (окна инструментов, команды меню и панелей инструментов, строки состояния). Интерфейсы для использования функций системных компонентов и плагинов реализации прикладных задач были представлены ранее в анализе требований и программных интерфейсов разрабатываемых компонентов.

Ключевые интерфейсы интеграции, приведены в таблице (Таблица 1).

Таблица 1 Ключевые интерфейсы CoDeSys в реализации прикладных задач

Имя открытого типа

Область имён

Краткое описание

IView

_3S.CoDeSys. Core.Views

Интерфейс для реализации оконного элемента управления (tool window) предоставляющего некоторую информацию и набор инструментов для пользователя в немодальной форме.

дд

_3S.CoDeSys. Core.Views

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

ICommand, IStandard Command,

IToggle Command

_3S.CoDeSys. Core.Commands

Класс команды, которая отображаеется в интерфейсе пользователя (в меню, контекстном меню, на панели инструментов) должен реализовывать один из интерфейсов, унаследованных от ICommand.

IStandardCommand – для реализации простой команды кнопки, выполняемой нажатием.

IToggleCommand – для реализации команды переключателя, имеющего 2 состояния включен (элемент активен) и выключен (элемент не активен).

ICommand Category

_3S.CoDeSys. Core.Commands

Категория для объединения команд в логические группы, например по работе с объектами, редактирование текста, работа с файлами и т.п.

IEngine

_3S.CoDeSys. Core

Сервис главного ‘движка’ системы, организует доступ к системным сервисам и проектам системы.

IObjectManager

_3S.CoDeSys. Core.Objects

Сервис менеджера объектов системы. Предоставляет функции для работы с объектами системы: чтение, запрос на изменение, получение информации об объекте и т.п.

ICommand Manager

_3S.CoDeSys. Core.Commands

Сервис менеджера команд, предоставляет информацию об установленных командах в системе и их категориях.

IObjectFactory Manager

_3S.CoDeSys. Core.Objects

Сервис менеджера фабрик объектов. Предоставляет фабрики для создания объектов.

IProject

_3S.CoDeSys. Core

Интерфейс описывает проект системы. Ссылку на данный интерфейс получают c помощью интерфейса IEngine

IMetaObject

_3S.CoDeSys. Core.Objects

Интерфейс описывает общую для всех объектов информацию: например Guid, Name, родительски дочерние отношения. Также, этот описательный объект содержит в себе копию объекта базы данных (IObject). Описательный объект может обладать правами чтения и записи для размещённого в нём объекта базы данных.

Для реализации компонента системы CoDeSys в виде плагина необходимо выполнить ряд условий оформления сборки .NET:

  • Для проекта плагина установить следующие свойства:

  • Assembly Name = abcxyz.plugin – имя сборки плагина

  • Output Type = Class Library – тип сборки

  • Default Namespace = Company.Product.abcxyz – область имён по умолчанию

  • Post-build Event Command Line = install_dir\Common\IPMCLI.exe /i:"$(TargetPath)" – команда, выполняемая по завершению компиляции, для установки плагина в систему.

  • Установить ссылку на общую сборку каркаса (+Core);

  • Изменить файл информации о сборке (AssemblyInfo.cs) в соответствии со следующим содержанием:

using System.Reflection;

using System.Runtime.CompilerServices;

using _3S.CoDeSys.Core.Components;

[assembly: AssemblyTitle ("ваш заголовок")]

[assembly: AssemblyDescription("ваше описание")]

[assembly: AssemblyCompany("ваша компания")]

[assembly: AssemblyProduct("ваш продукт")]

[assembly: AssemblyCopyright("ваш право на собственность")]

[assembly: AssemblyVersion("a.b.c.d")]

[assembly: PlugInGuid("ваш_заново_созданный_guid)]

  • Далее реализуется необходимый код в проекте. Добавляются необходимые ссылки на интерфейсные и общие сборки системы.

  • Любой тип, который планируется для открытого использования, посредством его интерфейса, в едином исполняемом окружении системы CoDeSys, должен иметь атрибут TypeGuid, с наличием которого этот тип может быть однозначно определён. Исходный код для подобного типа выглядит следующим образом:

//Открытый класс или класс сериализуемый средствами CoDeSys

[TypeGuid("ваш_заново_созданный_guid")]

public class YourClass :ISomeInterface, ISomeOtherInterface

{......

}

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