find

Найдите элементы архитектуры с помощью запроса

Описание

пример

[p] = find(obj,constraint,Name,Value) находит все пути к элементу, начинающие с корневой архитектуры модели, которые удовлетворяют constraint запросите с дополнительными опциями, заданными одним или несколькими аргументами пары "имя-значение".

пример

[p, elem] = find(___) возвращает объекты элемента архитектуры и их пути, которые удовлетворяют constraint запрос. Если rootArch не обеспечивается, затем функция находит элементы модели в корневой архитектуре модели. Пути к выходному аргументу содержат полностью определенный именованный path к элементу e от данной корневой архитектуры.

пример

[p] = find(obj,constraint,rootArch,Name,Value) находит все пути к элементу, начинающие с заданной корневой архитектуры, которые удовлетворяют constraint запросите с дополнительными опциями, заданными одним или несколькими аргументами пары "имя-значение".

Примеры

свернуть все

find(modelObj, HasStereotype(IsStereotypeDerivedFrom('mProfile.BaseComp')),...
 'Recurse', true, 'IncludeReferenceModels', true, 'ElemType', 'Component')

В этом примере показано, как найти элементы в архитектуре основанными на модели на запросе.

Создайте модель

Создайте модель архитектуры с двумя компонентами.

m = systemcomposer.createModel('exModel');
comps = m.Architecture.addComponent({'c1','c2'});

Создайте профиль и стереотипы

Создайте профиль и стереотипы для вашей модели архитектуры.

pf = systemcomposer.profile.Profile.createProfile('mProfile');
b = pf.addStereotype('BaseComp', 'AppliesTo','Component','Abstract', true);
s = pf.addStereotype('sComp', 'Parent',b);

Примените профиль и стереотипы

Примените профиль и стереотипы к вашей модели архитектуры.

m.Architecture.applyProfile(pf.Name)
comps(1).applyStereotype(s.FullyQualifiedName)

Найдите элемент

Найдите элемент в своей архитектуре основанным на модели на запросе System Composer.

import systemcomposer.query.*;
[p, elem] = find(m, HasStereotype(IsStereotypeDerivedFrom('mProfile.BaseComp')),...
'Recurse', true, 'IncludeReferenceModels', true)
p = 1x1 cell array
    {'exModel/c1'}

elem = 
  Component with properties:

     IsAdapterComponent: 0
           Architecture: [1x1 systemcomposer.arch.Architecture]
                   Name: 'c1'
                 Parent: [1x1 systemcomposer.arch.Architecture]
                  Ports: [0x0 systemcomposer.arch.ComponentPort]
             OwnedPorts: [0x0 systemcomposer.arch.ComponentPort]
      OwnedArchitecture: [1x1 systemcomposer.arch.Architecture]
               Position: [15 15 65 65]
                  Model: [1x1 systemcomposer.arch.Model]
         SimulinkHandle: 2.0005
    SimulinkModelHandle: 4.8828e-04
                   UUID: '5207f6ee-37e2-4767-a515-d384f537cce4'
            ExternalUID: ''

Очистка

Не прокомментируйте, чтобы удалить модель и профиль.

% m.close('force');
% systemcomposer.profile.Profile.closeAll;
find(modelObj, HasStereotype(IsStereotypeDerivedFrom('mProfile.BaseComp')),... 
archToQuery, 'Recurse', true, 'IncludeReferenceModels', true)
      

Входные параметры

свернуть все

Объект модели, чтобы запросить использование constraint.

Ограничение, созданное с помощью systemcomposer.query* объекты, представляющие особые условия. Ограничение может содержать подограничение, которое может быть объединено с другим ограничением с помощью AND или OR. Ограничение может также отрицаться с помощью NOT.

Запросите объекты

Объект запросаУсловие
PropertyПолучите неоцененное значение или данное свойство.
PropertyValueПолучите свойство из объекта System Composer или стереотипное свойство и затем оцените значение свойства.
CompareСравните значение свойства с данным значением.
HasPortКомпонент имеет порт, который удовлетворяет данному подограничению.
HasInterfaceПорт имеет интерфейс, который удовлетворяет данному подограничению.
HasInterfaceElementИнтерфейс имеет интерфейсный элемент, который удовлетворяет данному подограничению.
HasStereotypeЭлемент архитектуры имеет стереотип, который удовлетворяет данному подограничению.
IsInRangeЗначение свойства в данной области значений.
AnyComponentsЭлементом является компонент.
IsStereotypeDerivedFrom Стереотип выведен из данного стереотипа.

Корневая архитектура модели, заданной как строка.

Аргументы в виде пар имя-значение

Задайте дополнительные разделенные запятой пары Name,Value аргументы. Name имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: 'Recurse', true, 'IncludeReferenceModels', true

Указывает, находят ли, рекурсивно перерывает модель или ищет только заданный слой. Значением по умолчанию является true.

Пример: 'Recurse', true

Указывает, находят ли, что поисковые запросы сослались на архитектуры или не включают архитектуры, на которые ссылаются. Значением по умолчанию является false.

Пример: 'IncludeReferenceModels', true

Выходные аргументы

свернуть все

Массив ячеек путей к элементам, которые удовлетворяют constraint.

Объекты элемента архитектуры, которые удовлетворяют constraint.

Введенный в R2019a

Для просмотра документации необходимо авторизоваться на сайте