Запросите ограничение
Constraint
класс является базовым классом для всех ограничений запроса System Composer™.
AnyComponent | Создайте запрос, чтобы выбрать все компоненты в модели |
IsStereotypeDerivedFrom | Создайте запрос, чтобы выбрать стереотип, выведенный из полностью определенного имени |
HasStereotype | Создайте запрос, чтобы выбрать элементы архитектуры со стереотипом на основе заданного подограничения |
HasPort | Создайте запрос, чтобы выбрать элементы архитектуры с портом на компонентно-ориентированном на заданном подограничении |
HasInterface | Создайте запрос, чтобы выбрать элементы архитектуры с интерфейсом на порте на основе заданного подограничения |
HasInterfaceElement | Создайте запрос, чтобы выбрать элементы архитектуры с интерфейсным элементом в интерфейсе на основе заданного подограничения |
IsInRange | Создайте запрос, чтобы выбрать область значений значений свойств |
Property | Создайте запрос, чтобы выбрать неоцененные значения для свойств объектов или стереотипные свойства для элементов |
PropertyValue | Создайте запрос, чтобы выбрать свойство из объекта или стереотипное свойство и затем оценить значение свойства |
Найдите компоненты в модели System Composer с помощью запросов.
Откройте модель.
import systemcomposer.query.* scKeylessEntrySystem model = systemcomposer.loadModel('KeylessEntryArchitecture');
Найдите все компоненты программного обеспечения в системе.
con1 = HasStereotype(Property("Name") == "SoftwareComponent"); [compPaths, compObjs] = model.find(con1)
compPaths = 5x1 cell
{'KeylessEntryArchitecture/Sound System/Sound Controller' }
{'KeylessEntryArchitecture/Lighting System/Lighting Controller' }
{'KeylessEntryArchitecture/Engine Control System/Keyless Start Controller'}
{'KeylessEntryArchitecture/FOB Locator System/FOB Locator Module' }
{'KeylessEntryArchitecture/Door Lock//Unlock System/Door Lock Controller' }
compObjs=1×5 object
1x5 Component array with properties:
IsAdapterComponent
Architecture
ReferenceName
Name
Parent
Ports
OwnedPorts
OwnedArchitecture
Position
Model
SimulinkHandle
SimulinkModelHandle
UUID
ExternalUID
% Include reference models in the search softwareComps = model.find(con1, 'IncludeReferenceModels', true)
softwareComps = 9x1 cell
{'KeylessEntryArchitecture/Sound System/Sound Controller' }
{'KeylessEntryArchitecture/Lighting System/Lighting Controller' }
{'KeylessEntryArchitecture/Engine Control System/Keyless Start Controller' }
{'KeylessEntryArchitecture/FOB Locator System/FOB Locator Module' }
{'KeylessEntryArchitecture/Door Lock//Unlock System/Door Lock Controller' }
{'KeylessEntryArchitecture/Door Lock//Unlock System/Rear Pass Door Lock Sensor/Detect Door Lock Status' }
{'KeylessEntryArchitecture/Door Lock//Unlock System/Rear Driver Door Lock Sensor/Detect Door Lock Status' }
{'KeylessEntryArchitecture/Door Lock//Unlock System/Front Pass Door Lock Sensor/Detect Door Lock Status' }
{'KeylessEntryArchitecture/Door Lock//Unlock System/Front Driver Door Lock Sensor/Detect Door Lock Status'}
Найдите все основные компоненты в системе.
con2 = HasStereotype(IsStereotypeDerivedFrom("AutoProfile.BaseComponent"));
baseComps = model.find(con2)
baseComps = 18x1 cell
{'KeylessEntryArchitecture/Sound System/Sound Controller' }
{'KeylessEntryArchitecture/Lighting System/Lighting Controller' }
{'KeylessEntryArchitecture/Engine Control System/Keyless Start Controller' }
{'KeylessEntryArchitecture/FOB Locator System/FOB Locator Module' }
{'KeylessEntryArchitecture/Door Lock//Unlock System/Door Lock Controller' }
{'KeylessEntryArchitecture/Sound System/Dashboard Speaker' }
{'KeylessEntryArchitecture/Engine Control System/Start//Stop Button' }
{'KeylessEntryArchitecture/FOB Locator System/Center Receiver' }
{'KeylessEntryArchitecture/FOB Locator System/Front Receiver' }
{'KeylessEntryArchitecture/FOB Locator System/Rear Receiver' }
{'KeylessEntryArchitecture/Door Lock//Unlock System/Front Driver Door Lock Sensor' }
{'KeylessEntryArchitecture/Door Lock//Unlock System/Front Pass Door Lock Sensor' }
{'KeylessEntryArchitecture/Door Lock//Unlock System/Rear Driver Door Lock Sensor' }
{'KeylessEntryArchitecture/Door Lock//Unlock System/Rear Pass Door Lock Sensor' }
{'KeylessEntryArchitecture/Door Lock//Unlock System/Front Driver Door Lock Actuator'}
{'KeylessEntryArchitecture/Door Lock//Unlock System/Front Pass Door Lock Actuator' }
{'KeylessEntryArchitecture/Door Lock//Unlock System/Rear Driver Door Lock Actuator' }
{'KeylessEntryArchitecture/Door Lock//Unlock System/Rear Pass Door Lock Actuator' }
Найдите все компоненты с помощью интерфейса KeyFOBPosition
.
con3 = HasPort(HasInterface(Property("Name") == "KeyFOBPosition")); con3_a = HasPort(Property("InterfaceName") == "KeyFOBPosition"); keyFOBPosComps = model.find(con3)
keyFOBPosComps = 10x1 cell
{'KeylessEntryArchitecture/Door Lock//Unlock System' }
{'KeylessEntryArchitecture/Door Lock//Unlock System/Door Lock Controller' }
{'KeylessEntryArchitecture/Engine Control System' }
{'KeylessEntryArchitecture/Engine Control System/Keyless Start Controller'}
{'KeylessEntryArchitecture/FOB Locator System' }
{'KeylessEntryArchitecture/FOB Locator System/FOB Locator Module' }
{'KeylessEntryArchitecture/Lighting System' }
{'KeylessEntryArchitecture/Lighting System/Lighting Controller' }
{'KeylessEntryArchitecture/Sound System' }
{'KeylessEntryArchitecture/Sound System/Sound Controller' }
Найдите все компоненты, WCET которых меньше чем или равен 5 мс.
con4 = PropertyValue("AutoProfile.SoftwareComponent.WCET") <= 5;
model.find(con4)
ans = 1x1 cell array
{'KeylessEntryArchitecture/Sound System/Sound Controller'}
% You can specify units for automatic unit conversion con5 = PropertyValue("AutoProfile.SoftwareComponent.WCET") <= Value(5,'ms'); query1Comps = model.find(con5)
query1Comps = 3x1 cell
{'KeylessEntryArchitecture/Sound System/Sound Controller' }
{'KeylessEntryArchitecture/Lighting System/Lighting Controller' }
{'KeylessEntryArchitecture/FOB Locator System/FOB Locator Module'}
Найдите все компоненты, WCET которых больше 1 мс или которые имеют стоимость, больше, чем 10 долларов США.
con6 = PropertyValue("AutoProfile.SoftwareComponent.WCET") > Value(1,'ms') | PropertyValue("AutoProfile.Base.Cost") > Value(10,'USD'); query2Comps = model.find(con6)
query2Comps = 2x1 cell
{'KeylessEntryArchitecture/Door Lock//Unlock System/Door Lock Controller' }
{'KeylessEntryArchitecture/Engine Control System/Keyless Start Controller'}
Закройте модель.
model.close
Термин | Определение | Приложение | Больше информации |
---|---|---|---|
представление | Представление показывает настраиваемое подмножество элементов в модели. Представления могут быть отфильтрованы на основе стереотипов или имен компонентов, портов, и интерфейсов, наряду с именем, ввести, или модули интерфейсного элемента. Создайте представления путем добавления элементов вручную. Представления создают упрощенный способ работать с комплексными архитектурами путем фокусировки на определенных частях проекта архитектуры. | Можно использовать различные типы представлений, чтобы представлять систему:
Точка зрения представляет перспективу заинтересованной стороны, которая задает содержимое представления. | Моделирование архитектуры системы системы записи без ключа |
группа элемента | Группа элемента является группировкой компонентов в представлении. | Используйте группы элемента, чтобы программно заполнить представление. | |
запрос | Запрос является спецификацией, которая описывает определенные ограничения или критерии, которым удовлетворят элементы модели. | Используйте запросы, чтобы искать элементы с ограничительными критериями и отфильтровать представления. | Найдите элементы в модели Используя запросы |
диаграмма компонентов | Диаграмма компонентов представляет представление компонентами, портами и коннекторами на основе того, как модель структурирована. | Диаграммы компонентов позволяют вам программно или вручную добавляют и удаляют компоненты из представления. | Смотрите компоненты в пользовательских представлениях архитектуры |
иерархическая схема | Можно визуализировать иерархическую схему как представление с компонентами, портами, ссылочными типами, стереотипами компонента, и стереотипировать свойства. | Существует два типа иерархических схем:
| Отобразите иерархию иерархии компонентов и архитектуры Используя представления |
find
| createView
| modifyQuery
| runQuery
| removeQuery
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.