当前位置:网站首页>Simulink脚本自动创建Autosar Parameter Port及Mapping
Simulink脚本自动创建Autosar Parameter Port及Mapping
2022-08-02 17:16:00 【赞哥哥s】
文章目录
前言
在之前一篇文章中,介绍了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公众号,《汽车电子学习笔记》感兴趣可以关注一下~~~文章都会同步更新~
边栏推荐
猜你喜欢
DeepMind 首席科学家 Oriol Vinyals 最新访谈:通用 AI 的未来是强交互式元学习
打补丁的日子,比写代码的日子难熬多了
Kubernetes:(六)Pod重启策略和状态解释
「全球数字经济大会」登陆 N 世界,融云提供通信云服务支持
脉脉上的相亲生意
How Tencent architects explained: The principle of Redis high-performance communication (essential version)
navicat creates a connection 2002-can't connect to server on localhost (10061) and the mysql service has started the problem
NAACL 2022 | 具有元重加权的鲁棒自增强命名实体识别技术
动力电池扩产潮,宁德时代遭围剿
再获权威认证!马上消费安逸花APP通过中国信通院“金融APP人脸识别安全能力评测”
随机推荐
What is an APS system?What should I pay attention to when importing APS?Worth watching again and again
ffmpeg cannot find libx264 after compilation
ECCV 2022 | 清华&腾讯AI Lab提出REALY:重新思考3D人脸重建的评估方法
golang源码分析(8):m、p、g、shedt、sudog
【genius_platform软件平台开发】第七十五讲:YUY2转RGB24实现源码
启航
0725-面试记录
golang学习之七:并发编程基础(goroutine、channel、select)
MySQL常用的日期时间函数
executeScript异步执行的时候没有返回值的原因
erp系统和wms系统有什么区别
智能合约安全——delegatecall (1)
golang源码分析(9)调度
默认参数的代码实现及日期的注入与显示
Mysql——分组统计
MySQL索引
MYSQL下载及安装完整教程
Redis的介绍和使用
Google Earth Engine APP—— 一个不用写代码可以直接下载相应区域的1984-2021年的GIF遥感影像动态图
npm install 时,卡住不动,五种解决方法