主要内容

以编程方式配置AUTOSAR体系结构模型

AUTOSAR体系结构模型为开发AUTOSAR组合和组件模型提供了资源和画布。您可以通过使用图形用户界面、等效的体系结构建模功能或两者来开发软件体系结构。AUTOSAR Blockset为这些体系结构相关任务提供功能。

任务 功能
创建、加载、打开、保存或关闭AUTOSAR体系结构模型 autosar.arch.createModel
autosar.arch.loadModel
关闭
开放
保存
添加、连接或删除AUTOSAR组件、组合和端口 addComponent
addComposition
addPort
连接
摧毁
importFromARXML
布局
查找AUTOSAR元素并修改属性 找到
得到
通过创建或链接Simulink定义组件行为金宝app®模型 createModel
linkToModel
添加BSW (Basic Software)业务组件块,用于模拟BSW业务调用 addBSWService
导出组合和组件ARXML描述并生成组件代码(需要Embedded Coder®) 出口
getXmlOptions
setXmlOptions

这个示例脚本:

  1. 创建并打开AUTOSAR体系结构模型。

  2. 添加组合和组件。

  3. 添加体系结构、组合和组件端口。

  4. 连接体系结构、组合和组件端口。

  5. 为组件创建和链接Simulink实现金宝app模型。

  6. 基于启发式安排架构模型布局。

  7. 设置组件和端口属性。

  8. 移除组件。

  9. 在体系结构模型层次结构的不同级别上搜索元素。

  10. 列出组合端口的属性值。

要运行脚本,请从MATLAB中复制命令®下面的脚本清单到MATLAB命令窗口。

您也可以复制脚本文件configAutosarArchModel.m到工作文件夹并运行该文件。要将脚本复制到您的工作文件夹,输入以下MATLAB命令:

拷贝文件(fullfile (matlabroot”,帮助/工具箱/ autosar /例子/ configAutosarArchModel.m”),“。”)
% configAutosarArchModel.m配置AUTOSAR架构模型。这个脚本创建模型Controller1。slx和Actuator.slx。要重新运行脚本,请从工作文件夹中删除模型。创建并打开AUTOSAR架构模型modelName =“myArchModel”;archModel = autosar.arch.createModel(modelName);%添加一个合成合成= addComposition(archModel,“传感器”);在传感器组合中添加2个组件名称= {“PedalSnsr”“ThrottleSnsr”};sensorSWCs = addComponent(组合,名称,“类型”“SensorActuator”);布局(成分);自动排列组合布局在体系结构模型顶层添加组件(调用layout来排列块)addComponent (archModel的管理员一);执行器= addComponent(archModel,“执行机构”);集(致动器,“类型”“SensorActuator”);添加体系结构端口addPort (archModel“接收方”, {“TPS_Hw”“APP_Hw”});addPort (archModel“发送”“ThrCmd_Hw”);%添加组合端口addPort(组成、“接收方”, {“TPS_Hw”“APP_Hw”});addPort(组成、“发送”, {“TPS_Perc”“APP_Perc”});%添加组件端口控制器= find(archModel,“组件”“名字”的管理员一);addPort(控制器,“接收方”, {“TPS_Perc”“APP_Perc”});addPort(控制器,“发送”“ThrCmd_Perc”);addPort(致动器,“接收方”“ThrCmd_Perc”);addPort(致动器,“发送”“ThrCmd_Hw”);在顶层,根据匹配的端口名称连接组合和组件连接(archModel、组合、控制器);连接(archModel、控制器、执行机构);将指定的拱根端口连接到指定的组合和组件端口连接(archModel archModel.Ports (1) composition.Ports (1));使用find构造端口规格连接(archModel...找到(archModel“端口”“名字”“APP_Hw”),...找到(组成、“端口”“名字”“APP_Hw”));连接(archModel actuator.Ports (2), archModel.Ports (3));或者,根据匹配的端口名称连接架构根端口%连接(archModel、[]、写作);%连接(archModel、传动装置、[]);为控制器和执行器组件创建实现模型。createModel(控制器);createModel(执行机构);将实现模型链接到Sensors内部的PedalSnsr组件pedalSnsr = find(合成,“组件”“名字”“PedalSnsr”);为实现模型添加路径目录(fullfile (matlabroot,' / / autosarblockset /主要的例子));linkToModel (pedalSnsr“autosar_tpc_pedal_sensor”);布局(archModel);%自动布局%设置属性集(composition.Ports (1),“名字”“NewPortName1”);传感器组合端口的名称集(composition.Ports (3),“名字”“NewPortName2”);集(find(控制器,“端口”“名字”“TPS_Perc”),...“名字”“NewPortName3”);Controller1组件和实现的端口名称集(控制器,“类型”“ServiceProxy”);Controller1组件的组件类型集(控制器,“名字”“Instance1”);Controller1组件的%名称%摧毁传感器内的组件throttlessensorthrottleSnsr = find(合成,“组件”“名字”“ThrottleSnsr”);破坏(throttleSnsr);仅在体系结构模型顶层查找组件components_in_arch_top_level = find(archModel,“组件”查找所有层次结构中的组件components_in_all_hierarchy = find(archModel,“组件”“AllLevels”,真正的)仅为组合块查找端口Composition_ports = find(composition,“端口”列出组合端口的Kind和Name属性值ii=1:长度(composition_ports)端口= composition_ports(ii);portName = get(端口,“名字”);portKind = get(端口,“类型”);流(%s端口%s\n、portKind portName);结束
components_in_arch_top_level = 2×1带有属性的组件数组:Name Kind Ports ReferenceName父类SimulinkHandle components_in_a金宝appll_hierarchy = 3×1带有属性的组件数组:Name Kind Ports ReferenceName父类SimulinkHandle composition_ports = 4×1带有属性的组件数组:Kind Connected Name父类SimulinkHandle接收端口NewPortName1接收端口APP_Hw发送端口NewPortName2发送端口APP_Perc

另请参阅

|||

相关的话题