Можно создать представление архитектуры программно. Этот раздел ограничивает два примера для создания представлений программно от createArchitectureViews.m
скрипта MATLAB.
Импортируйте пакет, где запросы так, вы не должны всегда использовать systemcomposer.query
.
import systemcomposer.query.*;
Откройте файл проекта Simulink.
scKeylessEntrySystem
Загрузите модель в качестве примера в Simulink.
zcModel = systemcomposer.loadModel('KeylessEntryArchitecture');
Создайте отфильтрованное представление, которое выбирает все аппаратные компоненты в модели архитектуры и группирует их использующий ReviewStatus
свойство.
Создайте запрос, чтобы выбрать все аппаратные компоненты.
hwCompQuery = HasStereotype(IsStereotypeDerivedFrom("AutoProfile.HardwareComponent")) hwCompQuery = HasStereotype with properties: AllowedParentConstraints: {[1×1 meta.class]} SubConstraint: [1×1 systemcomposer.query.IsStereotypeDerivedFrom] SkipValidation: 0
Используйте запрос, чтобы создать представление.
zcModel.createViewArchitecture("Hardware Component Review Status",... hwCompQuery,... % The query to use for the selection "AutoProfile.BaseComponent.ReviewStatus",... % The stereotype property to qualify by "IncludeReferenceModels",true,... % Include components in referenced models "Color","purple"); zcModel.openViews;
Этот пример показывает горячий, чтобы создать представление свободной формы, которое вручную вытягивает компоненты от системы Локатора FOB и затем группирует их использующий существующие и новые компоненты представления для поставщиков.
Создайте архитектуру представления.
fobSupplierView = zcModel.createViewArchitecture("FOB Locator System Supplier Breakdown",... "Color","lightblue");
Создайте новый компонент представления для поставщика Д и добавьте модуль Локатора FOB в него.
supplierD = fobSupplierView.createViewComponent("Supplier D"); supplierD.Architecture.addComponent("KeylessEntryArchitecture/FOB Locator System/FOB Locator Module");
Создайте новый компонент представления для поставщика А.
supplierA = fobSupplierView.createViewComponent("Supplier A");
Добавьте каждый из приемников FOB, чтобы просмотреть компонент.
FOBLocatorSystem = zcModel.lookup("Path", "KeylessEntryArchitecture/FOB Locator System"); receiverCompPaths = zcModel.find(... contains(systemcomposer.query.Property("Name"),"Receiver"),... % Find all the components which contain the name "Receiver" FOBLocatorSystem.Architecture); for i = 1:numel(receiverCompPaths) % Add each of the components to supplier A supplierA.Architecture.addComponent(receiverCompPaths{i}); end
Откройте редактор представлений.
zcModel.openViews;
Закройте модель.
zcModel.close('Force');
В этом примере показано, как найти компоненты в системной модели компоновщика использующими запросами.
Откройте скрипт MATLAB.
open('scExampleModelFind')
Рассмотрите 6 запросов в качестве примера.