В этом примере показано, как создавать и управлять распределениями 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);
allocate
| editor
| getScenario
| systemcomposer.allocation.AllocationScenario
| systemcomposer.allocation.AllocationSet