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.

example

Examples

collapse all

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

collapse all

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

Topics