HasConnector - Create query to select architectural elements with connector based on specified
subconstraint - MATLAB ([original](https://www.mathworks.com/help/systemcomposer/ref/systemcomposer.query.hasconnector.hasconnector.html)) ([raw](?raw))
Create query to select architectural elements with connector based on specified subconstraint
Syntax
Description
[query](#mw%5F392f95fe-93ef-49c0-898c-bb39b55da339%5Fsep%5Fmw%5F565a4cf6-f69a-4ec7-822c-cd8586062aff) = HasConnector([subconstraint](#mw%5F392f95fe-93ef-49c0-898c-bb39b55da339%5Fsep%5Fmw%5F205795e9-0562-4378-96c1-932cb911a6e3))
creates a query query
that the find and createView functions use to select architectural elements with a connector that satisfies the given subconstraint subconstraint
.
Examples
Import the namespace that contains all of the System Composer™ queries.
import systemcomposer.query.*
Create a profile for latency characteristics and save it.
profile = systemcomposer.profile.Profile.createProfile("LatencyProfile");
latencybase = profile.addStereotype("LatencyBase"); latencybase.addProperty("latency",Type="double"); latencybase.addProperty("dataRate",Type="double",DefaultValue="10");
connLatency = profile.addStereotype("ConnectorLatency",... Parent="LatencyProfile.LatencyBase"); connLatency.addProperty("secure",Type="boolean"); connLatency.addProperty("linkDistance",Type="double");
nodeLatency = profile.addStereotype("NodeLatency",... Parent="LatencyProfile.LatencyBase"); nodeLatency.addProperty("resources",Type="double",DefaultValue="1");
portLatency = profile.addStereotype("PortLatency",... Parent="LatencyProfile.LatencyBase"); portLatency.addProperty("queueDepth",Type="double"); portLatency.addProperty("dummy",Type="int32");
profile.save
Specify the LatencyProfile.NodeLatency
stereotype as a component stereotype. Set the default connector stereotype.
nodeLatency.AppliesTo = "Component"; nodeLatency.setDefaultElementStereotype("Connector","LatencyProfile.ConnectorLatency");
Create a model, apply the profile to the model, and add a component. Apply the stereotype on the component. Then, open the Profile Editor.
modelName = "archModel"; arch = systemcomposer.createModel(modelName); systemcomposer.openModel(modelName); arch.applyProfile("LatencyProfile"); newComponent = addComponent(arch.Architecture,"Component"); newComponent.applyStereotype("LatencyProfile.NodeLatency"); systemcomposer.profile.editor(profile)
Create two child components. Add ports. Then, create a connection between the ports and get stereotypes on the connector.
childComponent1 = addComponent(newComponent.Architecture,"Child1"); childComponent2 = addComponent(newComponent.Architecture,"Child2");
outPort1 = addPort(childComponent1.Architecture,"testSig","out"); inPort1 = addPort(childComponent2.Architecture,"testSig","in"); srcPort = getPort(childComponent1,"testSig"); destPort = getPort(childComponent2,"testSig");
connector = connect(srcPort,destPort); stereotypes = getStereotypes(connector)
stereotypes =
1×1 cell array
{'LatencyProfile.ConnectorLatency'}
Create a query for all the elements with connectors with theConnectorLatency
stereotype and run the query.
constraint = HasConnector(HasStereotype(Property("Name") == "ConnectorLatency")); baseComp = find(arch,constraint,Recurse=true,IncludeReferenceModels=true)
baseComp =
1×1 cell array
{'archModel/Component'}
Input Arguments
Output Arguments
More About
Term | Definition | Application | More Information |
---|---|---|---|
View | A view shows a customizable subset of elements in a model. Views can be filtered based on stereotypes or names of components, ports, and interfaces, along with the name, type, or units of an interface element. Create views by adding elements manually. Views create a simplified way to work with complex architectures by focusing on certain parts of the architectural design. | You can use different types of views to represent the system. Switch between a component diagram, component hierarchy, or architecture hierarchy. For software architectures, you can switch to a class diagram view. A viewpoint represents a stakeholder perspective that specifies the contents of the view. | Create Custom Views Using Architecture Views GalleryModeling System Architecture of Keyless Entry System |
Element group | An element group is a grouping of components in a view. | Use element groups to programmatically populate a view. | Create Architecture Views InteractivelyCreate Architecture Views Programmatically |
Query | A query is a specification that describes certain constraints or criteria to be satisfied by model elements. | Use queries to search elements with constraint criteria and to filter views. | Find Elements in Model Using Queries |
Component diagram | A component diagram represents a view with components, ports, and connectors based on how the model is structured. | Component diagrams allow you to programmatically or manually add and remove components from the view. | Inspect Components in Custom Architecture Views |
Hierarchy diagram | You can visualize a hierarchy diagram as a view with components, ports, reference types, component stereotypes, and stereotype properties. | Component hierarchy diagrams display components in tree form with parents above children. In a component hierarchy view, each referenced model is represented as many times as it is used. Architecture hierarchy diagrams display unique component architecture types and their relationships using composition connections. In an architecture hierarchy view, each referenced model is represented only once. | Display Component Hierarchy and Architecture Hierarchy Using Views |
Version History
Introduced in R2020a
See Also
Tools
Objects
Functions
- find | findElementsOfType | findElementsWithStereotype | findElementsWithProperty | findElementsWithInterface | AnyComponent | Property | PropertyValue | HasStereotype | IsStereotypeDerivedFrom | HasPort | HasInterface | HasInterfaceElement | IsInRange | createView | getQualifiedName | lookup