Simulink脚本自动创建Autosar Parameter Port及Mapping_simulink port mapping_赞哥哥s的博客-程序员宅基地

技术标签: Autosar  Autosar笔记  SWC Parameter  

前言

在之前一篇文章中,介绍了Autosar Parameter Port的使用方法,传送门:Autosar SWC在Simulink中Parameter的使用

但是这种方法手动创建的话,会浪费大量时间。本文通过Simulink提供的Autosar API函数,实现Paramter Port端口的自动创建,并与Model Workspace中的Paramter进行自动Mapping

通过M文件向Model Workspace添加Paramter

Model Workspace中Parameter的格式

在Model Workspace中新建一个parameter,导出m文件的格式如下:


Param = Simulink.Parameter;
Param.Value = 2;
Param.HasCoderInfo = false;
Param.Description = '';
Param.DataType = 'single';
Param.Min = [];
Param.Max = [];
Param.DocUnits = '';

相比于之前的sldd中的parameter,此处少了StorageClass,且不支持自定义的mypackage。

自动生成Model Workspace中Parameter

通过上一篇文章Excel自动生成Paramter的脚本,稍加修改(取消StorageClass的写入),就可以生成Model Workspace需要的Paramter的m文件。

通过m脚本生成的Paramter的m文件如下:

MyPortParam1 =Simulink.Parameter;
MyPortParam1.Value =[1800  1500  1200   900   600   300   100     0];
MyPortParam1.Description ='test parameter2';
MyPortParam1.DataType ='uint16';
MyPortParam1.Min =0;
MyPortParam1.Max =5000;
MyPortParam1.DocUnits ='mA';

MyPortParam3 =Simulink.Parameter;
MyPortParam3.Value =22;
MyPortParam3.Description ='test parameter3';
MyPortParam3.DataType ='uint8';
MyPortParam3.Min =0;
MyPortParam3.Max =255;
MyPortParam3.DocUnits ='

配置Model Workspace中的参数来自于对应的m文件

对应的脚本如下:

mdlWks = get_param(bdroot,'ModelWorkspace');%获取当前活动的模型
whos(mdlWks);%列出当前modelworkspace中的变量
mdlWks.DataSource = 'MATLAB File';%选择导入数据的文件类型
mdlWks.FileName = 'Model_parameter.m';%选择名称
reload(mdlWks)%重新加载工作区
whos(mdlWks);%列出当前modelworkspace中的变量

运行上述脚本后。就可以在Model Workspace中看到生成的Paramter参数


此处,对于Argument属性,没法用脚本进行勾选,找了很久都没有找到函数,目前只能手动全选后进行勾选,也不是很复杂。(或者有大佬知道如何自动勾选,欢迎评论区留言)

自动创建Autosar Parameter Port及Mapping到对应的Paramter

在设计Excel模板时,就考虑了Parameter Port,如下图


目前只关注上面几个属性,有了这些属性,就可以创建Paramter Port了。

M脚本创建Parameter Port及Mapping

在创建Port前,需要先删除之前模型中存在的Parameter Port,不然重名的会有冲突(也可以比较后再选择是否删除,本脚本没有这么操作)

hModel= bdroot;
arProps = autosar.api.getAUTOSARProperties(hModel)
slMap = autosar.api.getSimulinkMapping(hModel);

%删除port
arPortType = 'ParameterReceiverPort';
aswcPath = find(arProps,[],'AtomicComponent','PathType','FullyQualified');
pPorts=find(arProps,aswcPath{1},arPortType,'PathType','FullyQualified')
 for ii=1:length(pPorts)
     delete(arProps,pPorts{ii})
 end
%删除Interface
ifPaths = find(arProps,[],'ParameterInterface','PathType','FullyQualified')
for ii=1:length(ifPaths)
    delete(arProps,ifPaths{ii})
end

通过Excel读取对应的属性,并创建端口及Mapping

用到的主要函数如下:

addPackageableElement(arProps,'ParameterInterface','/Interface',ParameterPort,...
    'IsService',false);%创建Interface
    add(arProps,ParameterPort,'DataElements',DataElement);%创建dataElement
    add(arProps,aswcPath{1},'ParameterReceiverPorts',ParameterPort,'Interface',ParameterPort);%创建port
    %mapping parameter
    mapParameter(slMap,ParameterName,'PortParameter','Port',ParameterPort,'DataElement',DataElement,...
    'SwCalibrationAccess',SwCalibrationAccess)

实现的效果

自动创建的Port

自动Mapping端口:

总结

目前只针对于Parameter Port进行了自动化创建及配置,其实对应S/R接口,也是类似的操作,理清思路,找到对应的API函数即可。

若你觉得本文对你有帮助,欢迎点赞,关注,收藏,转发~~~

你的鼓励是对小弟的最大支持~~~

建了一个WX公众号,《汽车电子学习笔记》感兴趣可以关注一下~~~文章都会同步更新~

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_49000276/article/details/126085177

智能推荐

云计算--专业术语大全_云计算词汇库-程序员宅基地

云计算实用之路漫漫其修远兮,当今,各厂商对云计算的定义不一,云计算的标准更是各行其道。在这云计算的混战时代,产生的有关云计算的术语更是目不暇接,整个IT界似乎正在迎来一个云计算术语爆炸的时代,其中有关于云计算概念本身,也有关于厂商的云策略和云产品的。本文通过对现有的云计算资料进行梳理,列出了60多条云计算相关的术语及其解释,以供参考。  1. 云计算  关于云计算的定义,目前为止至少有不下_云计算词汇库

mybatis-generator和TKmybatis的结合使用-程序员宅基地

mybatis-generator可以自动生成mapper和entity文件,mybatis-generator有三种用法:命令行、eclipse插件、maven插件。这里使用的是maven插件方式,可以在eclipse/intellij idea等ide上可以通用。TKmybatis提供一种通用mapper,它不需要针对每个mapper写sql语句,只需继承通用mapper调用相应的接口来完成单...

这5种工作,非常对口人工智能专业,这些技能太硬核了_人工智能对口的工作-程序员宅基地

值得注意的是,所有这些领域需要用到大量数学知识,如果你数学功底弱,学习起来可能会比较辛苦。而数学好的同学,则在AI领域如鱼得水。_人工智能对口的工作

Email的发送-程序员宅基地

原程序部分代码如下 //设置邮件信息 发件人地址、收件人地址、标题、主题 MailMessage mail = new MailMessage("[email protected]", "[email protected]", "标题", "主题"); //设置邮件主题格式 mail.BodyEncoding = Encoding.UTF8; //设置邮件主体格式是否为 html 格式...

安装3dmax 2013 打开提示 FTL:Virtual device creation failed 解决办法_ftl: virtual device creation failed.-程序员宅基地

电脑安装3dmax 2013 打开会显示FTL:Virtual device creation failed 开始一直以为是新装的系统显卡驱动没装好,后来下载各种显卡驱动,都没解决问题,无奈再从网上找方法,终于能正常打开max 显示文件了,在这里和大家分享_ftl: virtual device creation failed.

Mellanox网卡不能分配VF解决方法_mellanox 网卡驱动代码分析-程序员宅基地

背景  VF全称为Virtual Function,是硬件的SR-IOV特性提供的功能,简单的说,就是把一个物理上的设备,虚拟出多个虚拟设备,这些虚拟设备可以再分给其他OS使用。   Mellanox网卡大多支持SR-IOV功能,我们通过加载Mellanox网卡的驱动来实现分配VF的功能。 如下,就是把每个Mellanox网卡分配出多8个虚拟功能VF。然而,这次我们驱动加载却失败了,dmesg报错_mellanox 网卡驱动代码分析

随便推点

HTML旅游景点网页作业制作——旅游中国11个页面(HTML+CSS+JavaScript)_html和css制作旅游网页_IT-司马青衫的博客-程序员宅基地

旅游景点介绍、旅游风景区、家乡介绍、等网站的设计与制作。旅游景点介绍、旅游风景区是一个介绍简介、行政区划、地理环境、自然环境、教育事业、体育事业、旅游景点、城市荣誉等等。网站集中主要展示了的地方风土人情,并通过访客留言,增加游客的互动体验。同时,地方旅游网站里的每一个网页都采用了统一的设计风格,以加强城市整体面貌统一的宣传效果。最重要的..._html和css制作旅游网页

院士:人一生有两个阶段最能逼出成果,一是拿博士学位,二是评正教授-程序员宅基地

点击上方,选择星标或置顶,不定期资源大放送!阅读大概需要15分钟Follow小博主,每天更新前沿干货来源:算法与数学之美虽然这是一位大学校长在全校研究生教育工作会上的“内部讲话”,但我们...

centos7.3 firewalld安全防火墙指定IP策略--------龙胆苏打_防火墙<source address为多个怎么办-程序员宅基地

centos7.3 firewalld防火墙指定IP策略centos7.3 firewalld防火墙指定IP策略新的改变我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:全新的界面设计 ,将会带来全新的写作体验;在创作中心设置你喜爱的代码高亮样式,Markdown 将代码片显示选择的高亮样式 进行..._防火墙

东方欲晓,莫道君行早。踏遍青山人未老,风景这边独好。_东方欲晓莫道君行早踏遍青山人未老的意思-程序员宅基地

东方欲晓,莫道君行早。踏遍青山人未老,风景这边独好。 今年早点开学 ——在2019级新生开学典礼上的讲话 省政协副主席、郑州大学校长 刘炯天院士亲爱的2019级新同学,各位来宾,同志们:大..._东方欲晓莫道君行早踏遍青山人未老的意思

Linux cp命令详解-程序员宅基地

Linux cp命令详解 2012年01月06日  源:http://zhuairlunjj.blog.163.com/blog/static/80050945201079112227872/  cp (复制档案或目录)  [root@linux ~]# cp [-adfilprsu] 来源档(source) 目的n(destination)  [root@linux ~]...