CPAL脚本自动化测试 ———— IL 系列函数

 IL 是 Interaction Layer 的缩写,也就是主要针对于交互层。更多的是跟 dll 文件会使用的一些封装函数。在CAN网络中,交互层负责管理传输模型并执行以下任务:
  1. 提供基于信号的接口。
  2. 根据信号和消息的发送类型控制消息的传输。
  3. 提供根据请求发送消息的可能性(使用信号或消息作为触发对象)。
  4. 提供故障注入接口以影响消息的发送。
 由于交互层的函数较多,而且在当前阶段我并没有对该系列函数有多的涉及,所以这里主要是对各种函数进行一个汇总。具体的函数与功能,请查看下表:

Interaction Layer Functions
ModuleNameDescriptionComment
ControlILActivateClamp15
ILDeactivateClamp15
将夹具15的状态(有效/无效)转发给NM(如果存在)-
ILConfigureNMNotifications 允许交互层和NM模块耦合该函数可以随时调用
ILControlInit 交互层初始化只能在 on preStart 中使用,防止 IL 自动启动
ILControlResume周期性重启只能在函数 ILControlWait 之后使用
ILControlSimulationOff IL 模拟停止要重新启动 IL 的仿真,使用函数 ILControlSimulationOn
ILControlSimulationOnIL 模拟开始通过该函数恢复至函数 ILControlSimulationOff 停止之前的状态。
ILControlStart 周期性启动-
ILControlStop 发送完全停止这种状态下,交互层不起作用
ILControlWait 循环发送停止仅在ILControlResume之后才继续循环发送
ILSetAutoStartParam 测量开始时定义交互层的行为如果完全使用,则必须在 on preStart 事件中调用该函数
ILSetOperationMode 交互层中设置特定的操作模式不同函数结构的作用不尽相同
MaintenanceILErrno返回最后的错误代码-
ILSetResultString将传输的错误代码转换为文本-
Message Handling ILControlMsg 允许操纵 Message 的发送行为-
ILResetAllCANFDParam 将所有 Message 的 CAN FD 参数重置为数据库值-
ILSetCANFDParam 设定特定 Message 的 CAN FD 参数-
ILSetMsgEvent 将传送的消息直接发送到总线(网络激活)发送类型将被忽略
Fault Injection and Disturbance ILFaultInjectionDisableMsg 禁止发送消息函数 ILSetMsgEvent 例外
ILFaultInjectionEnableMsg 启用发送消息-
ILFaultInjectionResetAllFaultInjections 重置所有节点的 Message 的故障-
ILFaultInjectionResetMsgCycleTime 重置 Message 的循环时间在使用 ILFaultInjectionSetMsgCycleTime 设置循环时间之后
ILFaultInjectionResetMsgDlc 将 Message 的DLC重置在使用 ILFaultInjectionSetMsgDlc 设置 DLC 之后
ILFaultInjectionResetMsgLength 将 Message 的长度重置在使用 ILFaultInjectionSetMsgLength 设置 Message 长度之后
ILFaultInjectionSetMsgCycleTime重新设置 Message的循环时间-
ILFaultInjectionSetMsgDlc重新设置 Message 的 DLC-
ILFaultInjectionSetMsgLength 重新设置 Message 的 长度-
Signal HandlingILSetEvent 将传送的信号直接发送到总线(网络激活)发送类型将被忽略
ILSetResultString 将传输的错误代码转换为文本-
OEM Package based on Fault Injection Functions
(CAN/Flexy 特有)
ILCalculateChecksum 根据有效载荷计算相应的 CRC 校验和使用 PDU 名称从数据库中计算出正确的偏移量
ILDisableMsg 禁用 Message 发送调用函数 ILSetMsgEvent 可继续发送
ILEnableMsg启用 Message 发送-
ILEnableTimingCyclic 控制 PDU 的循环周期影响指定 CANoe 交互层的仿真节点
ILEnableTimingEvtTrg 控制 PDU 的事件触发时间影响指定 CANoe 交互层的仿真节点
ILEnableTimingImmed 控制 PDU 的即时时序影响指定 CANoe 交互层的仿真节点
Functions for Test Setup and Simulation Setup ILNodeControlMsg 影响特定 CANoe 交互层的模拟节点的特定消息的发送 param1 和 param2 参数的含义取决于参数控制
ILNodeControlResume 重新启动指定模拟节点的交互层并将启用消息的循环发送指定的节点必须在当前总线中,否则该函数无效并返回错误。
ILNodeControlSimulationOff 停止对指定模拟节点的交互层的模拟该状态下,交互层除了再次打开模拟之外不会对任何功能做出反应
指定的节点必须在当前总线中否则该函数无效并返回错误
ILNodeControlSimulationOn 启动指定仿真节点交互层的仿真IL 处于与停止前相同的状态
指定的节点必须在当前总线中,否则该函数无效并返回错误
ILNodeControlStart 消息的循环发送开始,可设置信号指定的节点必须在当前总线中,否则该函数无效并返回错误
ILNodeControlStop 消息的循环发送停止,且无法设置信号指定的节点必须在当前总线中,否则该函数无效并返回错误
ILNodeControlWait 停止指定模拟节点的交互层
消息的循环发送停止,但可以设置信号
指定的节点必须在当前总线中,否则该函数无效并返回错误
ILNodeDisturbAllNodesUpdateBits 修改当前总线中所有节点的信号/信号组的所有 ub 位可注入故障,且对指定 CANoe 交互层的仿真节点
ILNodeDisturbAllUpdateBits 修改节点的信号/信号组的所有 ub 位可注入故障,且对指定 CANoe 交互层的仿真节点
ILNodeDisturbChecksum 使用可配置的值对 Checksum 造错可注入故障,且对指定 CANoe 交互层的仿真节点
ILNodeDisturbCounter 使用可配置的值对 Counter 造错可注入故障,且对指定 CANoe 交互层的仿真节点
ILNodeDisturbPduUpdateBit 修改信号组的 ub 位可注入故障,且对指定 CANoe 交互层的仿真节点
ILNodeDisturbSignalGroupUpdateBit 使用可配置值对信号组的 ub 位进行配置可注入故障,且对指定 CANoe 交互层的仿真节点
ILNodeDisturbSignalUpdateBit 使用 0/1 的值对信号组进行 ub 位配置可注入故障,且对指定 CANoe 交互层的仿真节点
ILNodeSetAllNodesOperationMode 在当前总线中,对所有节点设置特定的操作模式-
ILNodeSetOperationMode 在交互层设置特定的操作模式函数的格式不同,会存在细微偏差
ILNodeSetSigGroupOperationMode 为指定的信号组设置交互层中的特定操作模式-
ILNodeSetPDUTimingCyclic 覆盖数据库中定义的循环周期并行存在两个周期(假和真),需根据 PDU 的当前传输模式进行选择
ILNodeResetPDUTimingCyclic 将循环周期重置为数据库中的值并行存在两个周期(假和真),需根据 PDU 的当前传输模式进行选择
ILNodeSetPDUTimingEvent 覆盖数据库中定义的事件时间并行存在两个周期(假和真),需根据 PDU 的当前传输模式进行选择
ILNodeResetPDUTimingEvent 重置数据库中定义的事件时间并行存在两个周期(假和真),需根据 PDU 的当前传输模式进行选择
ILNodeSetPDUAsrTxMode 覆盖 PDU 的当前有效传输模式传输模式可以是 False 或 True
当前传输模式由 PDU 所有信号值的当前数据过滤条件值定义
ILNodeResetPDUAsrTxMode 重置 PDU 的当前有效传输模式将当前有效传输模式重置为由或所有信号的所有数据过滤器定义的条件
Callback InterfaceapplILTxPending 在 IL 向总线发送消息之前,可以选择调用此回调可以阻止消息的发送或更改消息的数据
applILTxRequestConsumed 在 IL Clamp15 状态已被 ILActivateClamp15 启用或任何唤醒允许信号被发送后,然后可选地调用此函数总线 NM 睡眠定时器应该重新启动
applILTxRequestPending 如果 IL Clamp15 状态由 ILActivateClamp15 启用或任何唤醒允许信号发生更改,则可选地调用此函数总线应由网络管理 DLL 请求
  • 6
    点赞
  • 70
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
diagRequest是一个函数,用于发送诊断请求给目标ECU。它是在CAPL中使用的一个成熟的函数,可以帮助实现自动化测试。具体的格式如下: ``` diagRequest PAS3.* pasDiagReqst; dword diagLen; diagLen = stringToBytes(diagString, rawDiagReqst); diagResize(pasDiagReqst, diagLen); ``` 这个函数主要用于调整诊断对象的大小以匹配指定的参数迭代,或将总线消息的大小设置为给定的字节数。在上述示例中,首先将诊断请求字符串转换为字节数组,然后使用diagResize函数调整诊断对象的大小。 另外,还有其他与诊断相关的函数,如diagResponse用于处理诊断服务的响应,diagSetTarget用于设定诊断目标ECU,diagGenerateKeyFromSeed用于根据种子生成密钥等等。这些函数可以帮助我们完成日常的测试场景的覆盖。\[1\]\[2\] #### 引用[.reference_title] - *1* [CPAL脚本自动化测试 ———— Diag系列常用函数及使用](https://blog.csdn.net/qq_42957717/article/details/117077022)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [CAPL诊断函数解释](https://blog.csdn.net/seekshero/article/details/113863812)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小趴菜_自动驾驶搬砖人

谢谢大爷赏饭吃

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值