CAPL入门问题:按键触发移除报文时编译报错1159
CAPL编译错误1159解决方法
错误原因
TestEnableMsg()属于CAPL的Test模块专属函数,仅能在CANalyzer/CANoe的Test环境(如Test节点的CAPL脚本)中调用。你当前的脚本是在Analyze环境(普通测量节点的CAPL)下编写的,不符合函数的使用上下文,因此触发1159错误。
解决方案
根据你的需求(按下按键移除指定报文),分两种场景处理:
场景1:停止发送自己CAPL脚本中定义的报文
使用Analyze环境支持的OutputControlMsg()函数,控制报文的发送状态:
on key 'a' { // 参数2设为0停止发送,设为1恢复发送 OutputControlMsg(DM01_ECM, 0); }
场景2:过滤总线上的指定报文(阻止接收)
使用SetFilter()函数过滤目标报文,让当前节点不再接收该报文:
on key 'a' { // 参数2设为0禁用该报文的接收,设为1恢复 SetFilter(DM01_ECM, 0); }
若坚持使用Test模块函数
将你的CAPL脚本移到Test Node中,运行时切换到Test模式而非Analyze模式,即可正常调用TestEnableMsg()。
内容的提问来源于stack exchange,提问作者hugo da silva gomes
相关产品推荐
相关产品推荐

