В этом примере показано, как создать и справиться с выделениями System Composer™. Используйте выделения, чтобы установить направленное отношение от элементов архитектуры (компоненты, порты и коннекторы) в одной модели к элементам архитектуры в другой модели. Один случай общего использования для выделений должен установить отношения от компонентов программного обеспечения до аппаратных компонентов, чтобы указать на стратегию развертывания.
Этот пример использует проект Системы мониторинга давления воздуха в шине (TPMS). Чтобы открыть проект, используйте эту команду:
scExampleTirePressureMonitorSystem
Можно создать набор выделения с помощью Редактора Выделения. Набор выделения является набором отношений выделения между двумя моделями: исходная модель и целевая модель. Набор выделения хранится как .mldatx
файл.
В этом примере, TPMS_FunctionalArchitecture.slx
исходная модель и TPMS_LogicalArchitecture.slx
целевая модель.
Чтобы создать набор выделения для этих моделей, используйте эту команду.
allocSet = systemcomposer.allocation.createAllocationSet(... 'Functional2Logical', ...% Name of the allocation set 'TPMS_FunctionalArchitecture', ... % Source model 'TPMS_LogicalArchitecture' ... % Target model );
Чтобы видеть набор выделения, откройте Редактор Выделения при помощи следующей команды.
systemcomposer.allocation.editor;
Редактор Выделения имеет три части: панель инструментов, панель браузера и матрица выделения.
Используйте панель инструментов, чтобы создать и управлять наборами выделения. Например, можно использовать кнопку New Allocation Set, чтобы создать новый набор выделения между двумя моделями.
Используйте панель Браузера Набора Выделения, чтобы просмотреть и открыть существующие наборы выделения.
Используйте матрицу выделения, чтобы задать выделения между элементами исходной модели в первом столбце и предназначаться для элементов модели в первой строке. Можно создать выделения программно или путем двойного клика по ячейке в матрице.
В этом примере показано, как программно создать выделения между двумя моделями в проекте TPMS.
Получите указатели на функции создания отчетов в модели функциональной архитектуры.
functionalArch = systemcomposer.loadModel('TPMS_FunctionalArchitecture'); reportLevels = functionalArch.lookup('Path', 'TPMS_FunctionalArchitecture/Report Tire Pressure Levels'); reportLow = functionalArch.lookup('Path', 'TPMS_FunctionalArchitecture/Report Low Tire Pressure');
Получите указатель на компонент системы отчетности TPMS в модели логической архитектуры.
logicalArch = systemcomposer.loadModel('TPMS_LogicalArchitecture'); reportingSystem = logicalArch.lookup('Path', 'TPMS_LogicalArchitecture/TPMS Reporting System');
Создайте выделения в сценарии по умолчанию, который создается.
defaultScenario = allocSet.getScenario('Scenario 1');
defaultScenario.allocate(reportLevels, reportingSystem);
defaultScenario.allocate(reportLow, reportingSystem);
Сохраните набор выделения.
allocSet.save;
Опционально, можно удалить выделение между созданием отчетов о низком давлении воздуха в шине и системой отчетности.
% defaultScenario.deallocate(reportLow,reportingSystem);
systemcomposer.allocation.AllocationScenario
| systemcomposer.allocation.AllocationSet
| editor
| getScenario
| allocate
| synchronizeChanges