
关注一下,更多精彩等着你!
在行驶过程中使用ADAS功能可能会遇到以下场景:当驾驶员按下多功能方向盘上的某个按钮切换自动驾驶和手动驾驶模式时,多媒体车机(MMC - Multi Media Controller)会语音提示驾驶员当前车辆状态 –“进入自动驾驶模式”或“请接管车辆”,那么在前期的ECU ADAS仿真中该如何模拟这种功能?这就涉及到对音频数据的处理。大家都习惯使用CANoe处理总线数据,那么音频数据可以处理吗?当然可以,这只是CANoe功能的冰山一角。先看看下面的这个CANoe仿真视频如何实现上述的ADAS仿真需求。
从视频中我们可以看到当在面板中点击相关控制按钮来切换自动驾驶和手动驾驶模式时,MMC发出的对应信号和音频数据也进行相应切换,这是怎么实现的,各位看官莫急,且听小编慢慢分解,怿星科技的技术贴只提供干货哦。
Step1:搭建CANoe工程框架,面板,CAPL脚本,DBC,音频数据(包含相关.mp3文件)等;

Step2:制作具有IL交互层属性的DBC(便于CANoe仿真),包含1个MMC节点,2条报文(包含相关驾驶模式信号),4个环境变量(关联面板控件,这里也可以使用系统变量,看个人使用习惯);

Step3:在CANoe中的Simulation Setup中进行节点同步Node Synchronization,实现IL仿真;

Step4:Panel面板设计,两个Button控件(关联SignalAuto_Change和SignalManual_Change这两个环境变量),用于模拟驾驶模式切换操作,两个MediaPlayer控件(加载对应音频文件,关联MediaControl_Auto和MediaControl_Manual这两个环境变量),用于控制音频输出;

在Media Player控件的Media属性中加载音频文件,可以看到Media Player这个控件支持加载各种格式的音视频文件,非常强大。

Step5:CAPL脚本编辑,都是基于事件的函数处理,在on envVar事件中,当相关控制按钮按下时(改变SignalAuto_Change和SignalManual_Change的值),对应信号取反(0-1或1-0),同时信号的变化触发音频数据的切换(改变MediaControl_Auto和MediaControl_Manual的值),这里在代码中进行了互锁的配置,保证两个音频播放时互不打扰,SetControlVisibility函数用于设置Media Player控件的可见性,大家注意观察面板,其实两个Media Player控件是重叠在一起的,需要哪个音频播放时,相应的MediaPlayer控件就会显示出来,另一个Media Player控件就会暂时不可见,互不干扰;

OK,今天关于CANoe处理音频数据的方法就介绍到这里,希望帮助大家开阔思路,授人以鱼不如授人以渔,感兴趣的朋友可以在留言区留言,把你想让CANoe实现的功能告诉小编,让我的脑洞也大开一下,也许下一篇帖子就有你想看到的内容。关注怿星科技公众号,这里绝对有你感兴趣的干货。

怿星科技重点关注和跟踪汽车电子行业的新兴技术和产品,商务合作请联系:
电话:+86-021-6495-5659
网址:http://www.e-planet.cn
邮箱:marketing@e-planet.cn
上海总部:上海市徐汇区钦州北路1199号智汇园87号楼5F室(200233)
北京分公司:北京市大兴区CDD创意港嘉悦广场8号楼802室(102600)
微信号:怿星科技
英文ID:e-planet

