systemcomposer.interface.DataInterface
数据接口
描述
一个DataInterface
对象表示数据接口的结构。
创建
创建数据接口。
interface = addInterface(字典,“newInterface”)
属性
老板
- - - - - -数据接口的父接口
字典对象|数据元素对象|架构端口对象
模型
- - - - - -父母模型
模型对象
数据接口的父系统编写器模型,指定为systemcomposer.arch.Model
对象。
的名字
- - - - - -数据接口名称
特征向量|字符串
数据接口名称,指定为字符向量或字符串。此属性必须是有效的MATLAB®标识符。
例子:“newInterface”
数据类型:字符
|字符串
元素
- - - - - -界面元素
数据元素对象数组
的数组指定的接口中的元素systemcomposer.interface.DataElement
对象。
UUID
- - - - - -通用唯一标识符
特征向量
数据接口的通用唯一标识符,指定为字符向量。
例子:91 d5de2c-b14c-4c76-a5d6-5dd0037c52df
数据类型:字符
ExternalUID
- - - - - -唯一外部标识符
特征向量
唯一的外部标识符,指定为字符向量。外部ID在数据接口的整个生命周期内以及通过保存UUID
.
数据类型:字符
对象的功能
addElement |
添加数据元素 |
getElement |
获取数据元素的对象 |
removeElement |
删除数据元素 |
setName |
设置值类型、接口或元素的名称 |
applyStereotype |
将原型应用到架构模型元素 |
getStereotypes |
将原型应用于建筑模型的元素 |
getStereotypeProperties |
获取元素上的原型属性名 |
removeStereotype |
从模型元素中移除原型 |
getProperty |
获取应用于元素的原型对应的属性值 |
getPropertyValue |
获取建筑属性值 |
getEvaluatedPropertyValue |
从组件获取属性的评估值 |
setProperty |
设置属性值对应于应用到元素的原型 |
hasStereotype |
查找元素是否应用了原型 |
hasProperty |
查找元素是否具有属性 |
摧毁 |
移除模型元素 |
例子
以编程方式构建体系结构模型
使用System Composer™以编程方式构建架构模型。
构建模型
要构建模型,需要添加包含数据接口、数据元素和值类型的数据字典,然后添加组件、端口和连接。为端口分配所属接口。在构建模型之后,您可以创建自定义视图来关注特定的考虑事项。您还可以根据指定的条件查询模型以收集不同的模型元素。
添加组件、端口、连接和接口
创建一个模型并提取它的架构。
模型= systemcomposer.createModel(“mobileRobotAPI”);arch = model.Architecture;
创建接口数据字典并添加数据接口。向数据接口添加数据元素。向接口数据字典中添加一个值类型。将数据元素的类型指定为值类型。将数据字典链接到模型。
字典= systemcomposer.createDictionary(“SensorInterfaces.sldd”);interface = dictionary.addInterface(“GPSInterface”);element = interface.addElement(“SignalStrength”);valueType = dictionary.addValueType“SignalStrengthType”,“单位”,“数据库”,“描述”,“GPS信号强度”);element.setType (valueType);linkDictionary(模型,“SensorInterfaces.sldd”);
将修改保存到接口数据字典中。
dictionary.save
在“接口编辑器”中查看接口。
添加组件、端口和连接。将数据接口设置为端口,稍后将连接这些端口。
componentSensor = addComponent(arch,“传感器”);sensorPorts = addPort(组件传感器。架构,{“MotionData”,“SensorData”}, {“在”,“出”});sensorPorts(2).setInterface(interface) componentPlanning = addComponent(arch)“规划”);planningPorts = addPort(componentPlanning. port)架构,{“命令”,“SensorData1”,“MotionCommand”}, {“在”,“在”,“出”});planningPorts(2).setInterface(interface) componentMotion = addComponent(arch)“运动”);motionPorts = addPort(组件运动。架构,{“MotionCommand”,“MotionData”}, {“在”,“出”});
对象上创建拥有的接口“MotionData”
端口。在所属数据接口下添加所属数据元素。赋值数据元素"旋转”
到单位设置为的值类型度
.
ownedInterface = motionPorts(2).createInterface(“DataInterface”);ownedElement = ownedInterface.addElement(“旋转”);subInterface = ownedElement.createOwnedType(“单位”,“度”);
在“接口编辑器”中查看接口。选择“MotionData”
端口运动
组件。在“接口编辑器”中,从字典视图来端口接口视图.
使用接口规则和默认名称规则连接组件。接口规则用于连接使用同一个接口的组件上的端口。缺省情况下,name规则连接名称相同的组件上的端口。
c_sensorData = connect(arch,componentSensor,componentPlanning,“规则”,“接口”);c_motionData = connect(arch,componentMotion,componentSensor);c_motionCommand = connect(arch,componentPlanning,componentMotion);
添加和连接架构端口
在体系结构上添加体系结构端口。
archPort = addPort(arch,“命令”,“在”);
的连接
命令需要一个组件端口作为参数。获取组件端口,然后进行连接。
compPort = getPort(componentPlanning,“命令”);c_Command = connect(archPort,compPort);
保存模型。
model.save
打开模型。
systemcomposer.openModel (“mobileRobotAPI”);
按排版面Ctrl + Shift +一个或者使用这个命令。
金宝appSimulink.BlockDiagram.arrangeSystem (“mobileRobotAPI”);
创建并应用原型配置文件
概要文件是可以应用于任何模型的XML文件。您可以将带有属性的原型添加到概要文件中,然后用特定的值填充属性。与System Composer的内置分析功能一起,原型可以帮助您优化系统的性能、成本和可靠性。
创建概要文件并添加原型
创建配置文件。
systemcomposer.createProfile(“GeneralProfile”);
创建一个适用于所有元素类型的原型。
elemSType = addStereotype(配置文件,“projectElement”);
为不同类型的组件创建原型。您可以根据您的设计需求选择这些类型。
pCompSType = addStereotype(配置文件,“physicalComponent”,“AppliesTo”,“组件”);sCompSType = addStereotype(配置文件,“softwareComponent”,“AppliesTo”,“组件”);
为连接创建一个原型。
sConnSType = addStereotype(配置文件,“standardConn”,“AppliesTo”,“连接器”);
添加属性
向原型添加属性。您可以使用属性来捕获模型元素的元数据,并分析非功能性需求。在任何导入概要文件的模型中,这些属性被添加到应用原型的所有元素中。
addProperty (elemSType“ID”,“类型”,“uint8”);addProperty (elemSType“描述”,“类型”,“字符串”);addProperty (pCompSType“成本”,“类型”,“双”,“单位”,“美元”);addProperty (pCompSType“重量”,“类型”,“双”,“单位”,‘g’);addProperty (sCompSType“develCost”,“类型”,“双”,“单位”,“美元”);addProperty (sCompSType“develTime”,“类型”,“双”,“单位”,“小时”);addProperty (sConnSType“unitCost”,“类型”,“双”,“单位”,“美元”);addProperty (sConnSType“unitWeight”,“类型”,“双”,“单位”,‘g’);addProperty (sConnSType“长度”,“类型”,“双”,“单位”,“米”);
保存配置文件
profile.save;
将概要文件应用于模型
将概要文件应用到模型。
applyProfile(模型,“GeneralProfile”);
将构造型应用于组件。一些组件是物理组件,而另一些是软件组件。
applyStereotype (componentPlanning“GeneralProfile.softwareComponent”) applyStereotype (componentSensor“GeneralProfile.physicalComponent”) applyStereotype (componentMotion“GeneralProfile.physicalComponent”)
将连接器原型应用于所有连接。
batchApplyStereotype(拱,“连接器”,“GeneralProfile.standardConn”);
将通用元素原型应用于所有连接器和端口。
batchApplyStereotype(拱,“组件”,“GeneralProfile.projectElement”);batchApplyStereotype(拱,“连接器”,“GeneralProfile.projectElement”);
为每个组件设置属性。
setProperty (componentSensor“GeneralProfile.projectElement.ID”,“001”);setProperty (componentSensor“GeneralProfile.projectElement.Description”,“所有传感器的中央单元”);setProperty (componentSensor“GeneralProfile.physicalComponent.Cost”,“200”);setProperty (componentSensor“GeneralProfile.physicalComponent.Weight”,“450”);setProperty (componentPlanning“GeneralProfile.projectElement.ID”,“002”);setProperty (componentPlanning“GeneralProfile.projectElement.Description”,“电脑”计划);setProperty (componentPlanning“GeneralProfile.softwareComponent.develCost”,“20000”);setProperty (componentPlanning“GeneralProfile.softwareComponent.develTime”,“300”);setProperty (componentMotion“GeneralProfile.projectElement.ID”,“003”);setProperty (componentMotion“GeneralProfile.projectElement.Description”,“电机和电机控制器”);setProperty (componentMotion“GeneralProfile.physicalComponent.Cost”,“4500”);setProperty (componentMotion“GeneralProfile.physicalComponent.Weight”,“2500”);
将连接的属性设置为相同。
connections = [c_sensorData c_motionData c_motionCommand c_Command];为k = 1:长度(连接)setProperty(连接(k)“GeneralProfile.standardConn.unitCost”,“0.2”);setProperty(连接(k),“GeneralProfile.standardConn.unitWeight”,“100”);setProperty(连接(k),“GeneralProfile.standardConn.length”,“0.3”);结束
添加层次结构
添加两个名为控制器
而且范围
在运动
组件。定义端口。应用连接器原型,将组件连接到体系结构和彼此之间。体系结构图中的层次结构创建了额外的详细级别,指定组件在内部如何行为。
motionArch = componentMotion.Architecture;motionController = motionArch.addComponent(“控制器”);controllerPorts = addPort(动议控制器。架构,{“controlIn”,“controlOut”}, {“在”,“出”});controllerCompPortIn = motionController.getPort(“controlIn”);controllerCompPortOut = motionController.getPort(“controlOut”);motionScope = motionArch.addComponent(“范围”);scopePorts = addPort(motionScope。架构,{“scopeIn”,“scopeOut”}, {“在”,“出”});scopeCompPortIn = motionScope.getPort(“scopeIn”);scopeCompPortOut = motionScope.getPort(“scopeOut”);c_planningController = connect(motionPorts(1),controllerCompPortIn);对于输出端口连接,必须指定接口元素c_planningScope = connect(scopeCompPortOut,motionPorts(2),“DestinationElement”,“旋转”);c_planningConnect = connect(controllerCompPortOut,scopeCompPortIn,“GeneralProfile.standardConn”);
保存模型。
model.save
按排版面Ctrl + Shift +一个或者使用这个命令。
金宝appSimulink.BlockDiagram.arrangeSystem (“mobileRobotAPI /运动”);
创建模型参考
模型引用可以帮助您按层次结构组织大型模型,并一次性定义架构或行为,然后您就可以重用它们了。当一个组件引用另一个模型时,该组件上的任何现有端口都将被移除,而存在于被引用模型上的端口将出现在该组件上。
创建一个新的System Composer模型。转换传感器
组件转换为引用组件以引用新模型。上添加其他端口传感器
组件时,您必须更新引用的模型“mobileSensor”
.
referenceModel = systemcomposer.createModel“mobileSensor”);referenceArch = referencmodel . architecture;newComponents = addComponent(引用搜索)“ElectricSensor”);linkDictionary (referenceModel“SensorInterfaces.sldd”);referenceModel。保存linkToModel (componentSensor,“mobileSensor”);
将原型应用到链接引用模型的体系结构和组件。
referenceModel.applyProfile (“GeneralProfile”);referenceArch.applyStereotype (“GeneralProfile.softwareComponent”);batchApplyStereotype (referenceArch“组件”,“GeneralProfile.projectElement”)
向引用组件添加端口和连接。
sensorPorts = addPort(组件传感器。架构,{“MotionData”,“SensorData”}, {“在”,“出”});sensorPorts (2) .setInterface(接口)连接(拱、componentSensor componentPlanning,“规则”,“接口”);连接(拱门,componentMotion componentSensor);
保存模型。
referenceModel。保存model.save
制作变型组件
您可以将规划
组件转换为变体组件makeVariant
函数。原始组件被嵌入到变体组件中,作为可用的变体选择之一。您可以在变体组件中设计其他变体选择,并切换活动选择。可变组件允许您在架构模型中以编程方式选择行为设计,以执行贸易研究和分析。
[variantComp,choice1] = makeVariant(componentPlanning);
添加一个名为PlanningAlt
.第二个参数定义名称,第三个参数定义标签。标签表明了选择。主动选择由标签控制。
choice2 = addChoice(variantComp,{“PlanningAlt”}, {“PlanningAlt”});
创建必要的端口PlanningAlt
.
setActiveChoice(variantComp,choice2) planningAltPorts = addPort(choice2.)架构,{“命令”,“SensorData1”,“MotionCommand”}, {“在”,“在”,“出”});planningAltPorts (2) .setInterface(接口)
使PlanningAlt
主动变体。
setActiveChoice (variantComp“PlanningAlt”)
按排版面Ctrl + Shift +一个或者使用这个命令。
金宝appSimulink.BlockDiagram.arrangeSystem (“mobileRobotAPI /规划”);
保存模型。
model.save
清理
取消此代码的注释,并运行它来清理此示例创建的工件。
% bdclose(“mobileRobotAPI”)% bdclose(“mobileSensor”)% 金宝appSimulink.data.dictionary.closeAll% systemcomposer.profile.Profile.closeAll%删除(“Profile.xml”)%删除(“SensorInterfaces.sldd”)
更多关于
定义
术语 | 定义 | 应用程序 | 更多的信息 |
---|---|---|---|
接口数据字典 | 接口数据字典是体系结构中所有接口和值类型及其使用位置的统一列表。 | 可以使用接口编辑器将System Composer模型上的本地接口保存在接口数据字典中。 接口字典可以在需要使用一组给定接口、元素和值类型的模型之间重用。数据字典存储在单独的SLDD文件中。 |
|
数据接口 | 数据接口定义了流经端口的信息类型。同一个接口可以分配给多个端口。数据接口可以是复合的,这意味着它可以包括描述接口信号属性的数据元素。 | 数据接口表示通过连接器共享的信息,并通过端口进入或退出组件。使用接口编辑器创建和管理数据接口和数据元素,并将它们存储在接口数据字典中,以便在模型之间重用。 | 创建带有接口和需求链接的架构模型 |
数据元素 | 数据元素描述接口的一部分,例如通信消息、计算或测量参数,或该接口的其他分解。 | 数据接口被分解为数据元素:
|
|
值类型 | 值类型可以用作端口接口,定义流经该端口的原子数据块,并具有顶级类型、维度、单位、复杂性、最小值、最大值和描述。 | 还可以将数据接口中的数据元素类型指定为值类型。使用“接口编辑器”将值类型添加到数据字典中,以便可以重用值类型作为接口或数据元素。 | 创建值类型作为接口 |
所有接口 | 拥有的接口是本地定义的接口,它是特定端口的本地接口,在数据字典或模型字典中不共享。 | 创建一个自有接口来表示端口本地的值类型或数据接口。 | 定义属于端口的本地接口 |
适配器 | 适配器通过两个接口之间的映射来帮助连接两个端口接口不兼容的组件。适配器还可以充当单位延迟或速率转换。使用适配器块来实现适配器。 | 使用适配器,你可以在接口适配器对话框中执行功能:
|
另请参阅
createInterface
|setInterface
|addInterface
|getInterface
|getInterfaceNames
|removeInterface
|systemcomposer。ValueType
|systemcomposer.interface.Dictionary
|systemcomposer.interface.DataElement
主题
MATLAB命令
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入该命令来运行该命令。Web浏览器不支持MATLAB命令。金宝app
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。