该系列文章之前有写过一篇文章:CPAL脚本自动化测试 ———— Diag系列常用函数及使用。上面这篇文章主要是针对于在实现诊断模块的自动化测试过程中经常使用到的函数。这篇文章主要是想对 CANoe 工具里面支持的诊断函数做一个汇总和整理。

Diagnostic CAPL Functions
Module Name Description Comment
Event Procedures on diagRequest 在 ECU 模拟中收到诊断请求时调用 为 ECU 配置了附加诊断描述,则在解释顺序中搜索具有匹配 PDU 定义的第一个描述。 否则,将立即使用分配给模拟的诊断描述。 然后调用第一个匹配事件过程(自顶向下)
on diagRequestSent 当测试仪发送诊断请求时调用 调用第一个匹配的事件过程(自顶向下)
on diagResponse 在测试仪中收到诊断响应时调用 调用第一个匹配的事件过程(自顶向下)
Further Functions diagGetErrorString 检索描述错误代码的文本 -
CallbackTPDataIndication 表示在 CAN 通道上传输 ISO TP 数据包,其中配置了 ISO TP Observer 来监督通信 1:将事件进一步向下转发到测量分支
0:不沿测量分支向下转发事件
其他:保留
diagGetDescriptionInformation 返回有关诊断说明的信息,如存储在数据库文件本身中的信息 写入数组的字符数或错误代码。 如果数据库中未定义值,则返回 0 和空字符串
diagGetDescriptionVersion 返回有关诊断说明的信息,如存储在数据库文件本身中的信息 写入数组的字符数或错误代码。 如果数据库中未定义值,则返回 0 和空字符串
Security Access diagGenerateKeyFromSeed 生成密钥以在设备内执行安全诊断功能 密钥将使用设备的种子定义
成功返回0,否则返回错误代码
diagSetCurrentSession 设置当前在 ECU 中处于活动状态的诊断会话 如果已配置,此值可用作从种子计算键值的可选参数
diagStartGenerateKeyFromSeed 使用 Seed & Key DLL 从种子开始生成安全密钥 此计算是在后台完成的,即结果不是立即可用的
_Diag_GenerateKeyResult 指示使用 DiagStartGenerateKeyFromSeed 启动的安全密钥计算的结果 -
diagStartAuth 启动诊断身份验证过程 -
diagStartAuthGeneric 启动诊断身份验证过程 -
_Diag_AuthResult 指示以 diagStartAuth/diagStartAuthGeneric 启动的诊断身份验证过程的结果 -
Functions for Access to the Whole Object diagGetAssignedTargetGroups 返回一个位掩码,其中每一位代表一个目标组 诊断描述定义了对象可以发送到哪个目标组,并且该组的位在返回的掩码中设置为 1
该位在掩码中的位置(0 表示最低有效位)可用于使用 DiagGetTargetGroupQualifier 和 DiagGetTargetGroupName 查询目标组的限定符和名称
diagGetLastResponse 将收到的最后一个响应(针对指定请求)保存在输出对象中 必须首先使用任何所需的限定符路径声明输出对象,但是在此函数中使用后,它可能对应于任何所需的诊断服务
diagGetLastResponseCode 返回最后收到的响应的代码 -
diagGetObjectName 将诊断对象的名称写入缓冲区 写入缓冲区的服务名称的长度,可能会被截断
diagGetObjectPath 传递对象的限定符路径 写入缓冲区的服务名称的长度,可能会被截断
diagGetPrimitiveData 读取完整服务原语的原始数据 返回值为复制到缓冲区或错误代码中的字节数
diagGetPrimitiveByte 读取诊断对象的一个字节 -
diagGetPrimitiveSize 返回诊断对象的字节长度 -
diagGetResponseCode 返回指定诊断响应的 code -
diagGetRespPrimitiveByte 读取对指定请求的诊断响应的一个字节 -
diagGetRespPrimitiveSize 读取对指定请求的诊断响应的字节数 -
diagGetSuppressResp 获取“suppressPosRspMsgIndicationBit”状态 -
diagGetTargetGroupQualifier 返回诊断目标组的限定符 如果未明确指定目标 ECU,则使用通过 diagSetTarget 选择的目标
diagGetTargetGroupName 返回诊断目标组的名称 如果未明确指定目标 ECU,则使用通过 diagSetTarget 选择的目标
diagInitialize 重新初始化给定服务或原语的对象 诊断请求将使用服务的默认请求参数初始化,而诊断响应将使用服务的第一个或指定原语的默认参数初始化
如果未定义服务,或者未在给定服务中定义原语,则不会发生任何事情并返回错误代码
diagInterpretAs 将响应对象的数据视为指定的原语 必须为响应当前引用的服务定义指定的原语
diagInterpretRespAs 将请求响应的数据视为指定的原语 必须为响应当前引用的服务定义指定的原语
diagIsNegativeResponse 如果对象是对请求的否定响应,则返回值 0 -
diagIsPositiveResponse 如果对象是对请求的正响应,则返回值 0 -
diagIsRaw 返回对象是否为存储的原始数据或可解析的 -
diagIsRawResp 返回请求的响应是否为原始数据或可解析的 -
diagResize 调整诊断对象的大小以匹配指定的参数迭代
或将总线消息的大小设置为给定的字节数
-
diagSetPrimitiveByte 写入诊断对象的某一字节 返回值大于 0 表示成功
diagSetPrimitiveData 设置完整服务原语的原始数据 -
diagSetRespPrimitiveByte 写入为请求的响应的某一字节 返回值大于 0 表示成功
diagSetSuppressResp 设置 "suppressPosRspMsgIndicationBit" 的值 返回值情况:
1: 设置成功
0: 未设置或请求中无此 bit 位
Functions for Access to One Parameter diagGetAbsolutePosition 检索参数在其原语中的位置 主要针对于请求
diagGetAbsolutePositionResp 检索参数在其原语中的位置 主要针对于响应
diagGetComplexParameter 从参数迭代中检索数字子参数
返回复杂参数的符号值
-
diagGetComplexParameterRaw 将复杂参数读取/设置为指定的原始值 -
diagGetComplexRespParameter 返回数字复数参数的值
返回复杂参数的符号值
直接从参数迭代中检索数字子参数
-
diagGetComplexRespParameterRaw 读取复杂参数到指定的原始值 该函数提供对包含在接收到的响应对象中的参数的访问
diagGetIterationCount 返回复杂参数保持的子参数迭代次数 迭代次数不小于 0
diagGetParameter 返回数值参数的值
返回参数的符号值
直接检索数字参数
-
diagGetParameterCoded 通过编码数据字节直接指定参数的值 返回值为 0 表示字节已经复制
diagGetParameterLongName 将诊断参数的长名称复制到缓冲区中并遵守诊断描述中配置的字符编码 -
diagGetParameterName 将诊断参数的限定符写入给定字段 -
diagGetParameterPath 返回原语中给定位置参数的完整限定符路径 只计算具有简单值的叶参数,即不返回容器列表等结构参数
针对于请求
diagGetRespParameterPath 返回原语中给定位置参数的限定符路径 只计算具有简单值的叶参数,即不返回容器列表等结构参数
针对于响应
diagGetParameterRaw 通过未编码的数据字节直接指定(复杂)参数的值 返回值为 0 表示字节已经复制
diagGetParameterSizeCoded 返回编码参数的长度 -
diagGetParameterSizeRaw 返回原始参数的长度 -
diagGetParameterType 检索参数类型的限定符 针对于请求
diagGetRespParameterType 检索参数类型的限定符 针对于响应
diagGetParameterUnit 在传输字段中写入参数的单位 -
diagGetRespIterationCount 返回复参数保持的子参数迭代次数 -
diagGetRespParameter 返回数值参数的值
返回参数的符号值
直接检索数字参数
-
diagGetRespParameterRaw 提供对包含在接收到的响应对象中的参数的访问 如果该请求尚无可用响应,则会报告错误。
diagIsParameterConstant 如果参数在诊断描述中被声明为常量,则返回 1 -
diagIsParameterDefault 如果参数在诊断描述中被声明为初始值,则返回 1 -
diagIsRespParameterConstant 如果参数在诊断描述中被声明为常量,则返回 1 -
diagIsRespParameterDefault 访问/检查给定请求的响应参数 如果响应中的参数具有其默认值,则返回 1
diagIsValidValue 如果响应对象中的参数有效则返回 1 -
diagResetParameter 将参数设置为其默认值 -
diagSetComplexParameter 将复杂参数中的子参数之一设置为指定的(数字或符号)值 首先,必须指定复杂参数,即迭代的名称
然后是作为目标的子参数列表的重复次数
然后是迭代本身中的子参数
diagSetComplexParameterRaw 将复杂参数读取/设置为指定的原始值 -
diagSetParameter 将数字参数设置为指定值
将参数设置为符号指定的值
-
diagSetParameterCoded 通过编码数据字节直接设置或指定参数的值 -
diagSetParameterRaw 通过未编码的数据字节直接设置(复杂)参数的值 -
Functions for Communication and Setup diagGetCommParameter 查找为配置对话框中的描述选择的接口的数字通信参数的值 仅适用于 option .FlexRay
diagGetCommunicationErrorString 返回给定通信错误的描述 -
diagGetCurrentEcu 获取当前 ECU 的名称 可用于确定响应功能请求的 ECU
diagGetLastCommunicationError 返回上次诊断请求的错误代码 -
diagGetP2Extended 返回 P2ex 超时 只能与 CAPL 回调接口结合使用
可以使用 diagSetTimeout 来指定请求超时
使用内置诊断通道时,必须使用函数diagSetP2Timeouts将P2和P2-extended一起设置
diagGetP6Extended 返回 P6ex 超时 当 IP 诊断目标处于活动状态时,无法使用 P2 超时,因为 TCP/IP 连接不提供传输结束和接收事件的开始
diagGetP2Timeout 返回由CDD或配置设置的时间参数 P2 时间参数 P2:发送请求到第一个响应开始到达之间的时间
diagGetP6Timeout 返回给定源的时间参数 P6 当 IP 诊断目标处于活动状态时,无法使用 P2 超时,因为 TCP/IP 连接不提供传输结束和接收事件的开始
diagGetSendingMode 提供有关应答发送模式的信息 -
diagGetTargetCount 返回配置的可能诊断目标的数量 -
diagGetTargetQualifier 写入诊断目标的目标限定符 如果成功,可以在 DiagSetTarget 中使用限定符
diagGetTesterPresentState 将 Tester Present 请求的状态返回到指定的或当前的 ECU -
DiagInitEcuSimulation 初始化 CAPL 节点以开始诊断 ECU 模拟 ECU 可以解释和使用该节点的 CAPL 代码中的所有诊断对象,这些对象由相应的诊断描述定义
CANoe 会在调用过程中初始化 CAPL 回调接口以进行诊断
diagSendFunctional 向为当前目标定义的功能组发送请求 在网络上定义了一个或多个功能组请求描述,则此功能不起作用
diagSendPositiveResponse 将响应对象发送回测试人员 只能在ECU仿真中调用
diagSendNegativeResponse 向测试仪发送否定响应,从而将指定值作为错误代码传输 -
diagSendNetwork 向该总线上的所有 ECU 发送请求 -
diagSendRequest 将请求对象发送到 ECU -
diagSendResponse 将响应对象发送回测试人员 只能在ECU仿真中调用
diagSetP2Extended 将 P2ex 超时设置为指定值 该函数只能与CAPL回调接口结合使用
diagSetP2Timeouts 更改内置诊断通道的 P2 和 P2ex 超时值 此功能仅用于内置诊断通道
diagSetP6Timeouts 设置来自给定源的时间 P6 和 P6ex -
diagSetTarget 设置从现在开始测试仪应该与之通信的 ECU 不能在 ECU 仿真节点中调用
diagSetTimeout 指定请求超时 该函数只能与CAPL回调接口结合使用
diagSetTimeoutHandler 设置请求的超时回调,或默认超时回调函数 如果在 diagSetTimeout 指定的超时时间内没有响应到达测试仪,则将调用此函数
diagStartTesterPresent 开始向指定或当前 ECU 发送自主/循环 Tester Present 请求 如果未提供参数,则针对当前诊断目标(由 diagSetTarget(char ecuQualifier[]) 设置)开始发送 Tester Present 请求
diagStopTesterPresent 停止向指定或当前 ECU 发送自主/循环 Tester Present 请求 如果未提供参数,则针对当前诊断目标(由 diagSetTarget(char ecuQualifier[]) 设置)开始发送 Tester Present 请求
Functions to Support Tests diagCheckObjectMatch 检查响应是否是请求的有效(正面或负面)响应 -
diagCheckValidNegResCode 检查是否为对象定义了给定的否定响应代码 函数返回值:1: CDD 文件中定义
0: CDD 文件中未定义
diagCheckValidPrimitive 检查给定对象是否与 CDD 中的规范匹配 如果指定了原语,则必须为响应当前引用的服务定义它
diagCheckValidRespPrimitive 检查收到的请求响应是否与其在 CDD 中的规范相匹配 如果指定了原语,则必须为响应当前引用的服务定义它
testJoinDiagResponseFromEcu 将事件添加到已加入的事件集中 Event:来自特定或任何 ECU 的诊断响应的到达
testCollectDiagEcuInformation 将诊断请求发送到当前选定的诊断目标并将响应写入报告文件 它考虑只有常量参数的诊断类下的所有请求
testReportWriteDiagObject 将带有指定请求或响应对象的文本解释的测试步骤写入测试报告 这些测试步骤受“测试模块配置”对话框中配置的通用测试步骤报告过滤的约束
testWaitForDiagAuthCompleted 启动诊断身份验证过程并等待此过程完成 -
testWaitForDiagRequestSent 等待直到先前发送的请求已发送到 ECU 此函数只能在测试模块内调用
TestReportWriteDiagResponse 将测试步骤与对指定请求对象的接收响应的文本解释写入测试报告 这些测试步骤受“测试模块配置”对话框中配置的通用测试步骤报告过滤的约束
TestWaitForDiagResponse 等待对给定请求的响应到达 -
testWaitForDiagResponseStart 等待对已发送请求的响应到达 触发此函数的一种方式是通过 CAPL 回调接口中的 Diag_FirstFrameInd(),但前提是此功能已适当实施
testWaitForUnlockEcu 尝试解锁 ECU 它请求种子,使用种子和密钥 DLL 计算密钥并将其发送到 ECU
必须在诊断配置对话框中配置种子和密钥 DLL
Functions for Variant Identification diagGetIdentifiedVariant 检索由给定目标的自动变体识别算法的最后一次成功运行识别的变体的限定符 如果没有给出目标,则检索当前目标
diagGetConfiguredVariant 检索在诊断配置对话框中为当前或给定目标配置的变体的限定符 可以将此限定符提供给自动变体识别算法
diagStartVariantIdentification 启动给定目标的自动变体识别算法 如果没有给出,则启动当前选择的算法
diagGetActiveVariant 返回当前激活的变体 -
testWaitForDiagChangedActiveVariant 更改当前目标的激活变体 -
testWaitForDiagSetIdentifiedVariant 执行变体识别并激活找到的变体 -
testWaitForDiagVariantIdentificationCompleted 等待自动变体识别算法完成 当给出了预期变体的限定符,如果识别出不同的变体,则会返回错误
APIs for Controlling a Diagnostic Channel diagCloseChannel 关闭某一通道 -
diagConnectChannel 连接某一通道 -
diagDisconnectChannel 与某一通道断开连接 -
diagIsChannelConnected 检查通道是否已经处于连接状态 -
_diag_ChannelStateChanged 指示诊断通道的状态 -
Functions for Generic Diagnostic TP Interface _diag_ConfigureChannel 将诊断请求发送到新目标时将被调用 CAPL 节点可以配置传输协议
例如 设置用于发送和接收的 CAN ID
_diag_DataRequest 触发CAPL接口传输数据 -
_diag_DisconnectReq
diag_DisconnectRequest
关闭到具有给定限定符的目标的诊断通信通道 对于无连接传输协议,可以立即调用 diag_ClosedChannelInd。 否则必须在TP层指示时指示通道关闭的完成
对于面向连接的协议,CAPL 程序可以调用 TP 层的关闭连接例程
_diag_FunctionalRequest 给定的字节应作为功能寻址诊断请求发送给具有给定限定符的 ECU 或功能组 -
_diag_PhysicalRequest 给定的字节应作为物理寻址诊断请求发送给具有给定限定符的 ECU 或功能组 -
_diag_SendFunctional 触发 CANoe 以通过 CAPL 接口发送功能请求 -
_diag_SetChannelParameters 在测量开始后或在 DiagSetTarget() 之后调用,并启用 CAPL 程序来配置传输协议 -
_diag_SetupChannelReq 请求测试仪实现的 CAPL 程序打开通往 ECU 的通道 -
_diag_SetupChannelRequest 请求测试仪实现的 CAPL 程序打开通往 ECU 的通道 -
diag_ClosedChannelInd 通知 CANoe 通信通道不再可用 CAPL 程序必须首先调用 diag_SetupChannelCon,然后才能发送更多数据
diag_DataCon 通过count参数告诉诊断层成功传输了多少字节的数据 此函数通常在传输层回调中调用
一旦诊断层通过 _diag_DataRequest 启动消息传输,并且传输层已完整发送此消息,诊断层传输层使用此函数来指示消息已成功发送
diag_DataInd 将发送器地址发送器的 count 个字节从 rxBuffer 缓冲区传递到诊断层。 使用其 ECU 限定符目标来识别发射器
通常在一个可以被分段的消息被完整接收后在传输层回调中调用
传输层移除所有协议信息,仅将有效载荷数据转发到诊断层
diag_ErrorInd 向诊断层报告错误 此函数通常在传输层回调中调用
diag_FirstFrameInd 开始向诊断层接收诊断数据 此函数通常从传输层回调中调用
调用此函数将停止发送请求后启动的计时器,即即使很长的数据接收也不会超时
diag_RequestDone 诊断通信层检测到超时时调用 调用此函数允许 CAPL 程序中止等待对请求的响应
diag_SetDataSegmentation 配置传输时诊断数据的分段 -
diag_SetupChannelCon 与 CANoe 通信,通信伙伴可以使用通信通道并且可以发送数据 对于无连接传输协议,可以从回调 _diag_SetupChannelReq 中调用此函数
diagGetFunctionalGroupExt 返回“地址扩展”字节的值 如果未指定功能组,则使用带有 diagSetTarget 的目标集
diagGetFunctionalGroupId 确定诊断测试仪发送功能请求的 CAN ID 如果未指定功能组,则使用带有 diagSetTarget 的目标集
diagGetFunctionalGroupIdMask 确定 CAN ID 掩码 过滤出诊断测试仪作为功能请求发送的 CAN 消息
Functions for Diagnostics over IP — DoIP DoIP_SetNextDiagnosticMessageNACKCode 将收到的诊断消息设置在确认中发送的下一个返回码 0 以外的值表示传输失败
DoIP_SelectVehicle 通过设置 MAC/VIN 选择特定车辆 仅在测试程序使用内置 DoIP 通道时才起作用,即如果测试程序使用 CAPL 回调接口 (CCI),则它们不起作用
TestWaitForDoIPActivationLineStartup 等待 DoIP 激活线启动时间 -
_DoIP_VehicleAnnouncementInd 测试仪已收到来自 ECU 的带有给定值的车辆通知响应 如果响应车辆的 VIN 或 EID 已被选为 VIR 参数,则将选择该车辆进行通信
_DoIP_VehicleIdentificationCompleteInd 车辆识别阶段已完成,即预计不会有进一步的车辆识别响应消息 在发送车辆识别请求 (VIR) 消息后超时 A_DoIP_Ctrl(标准:2 秒)到期时调用此方法
当车辆响应 VIR 消息的目标时,即在启动与该车辆的通信之前,也会调用它
_DoIP_VehicleConnectedInd 与车辆的 TCP 通信通道已成功建立,即可以毫无延迟地交换诊断消息 -
_DoIP_ConnectionClosedInd 与对等方的 TCP 连接已关闭,即另一次诊断消息交换将需要建立连接 在车辆模拟中也调用此回调函数
DoIP_GetAliveCheckTimeout 返回 DoIP 的活动检查超时参数 必须在 on preStart 上调用此函数
DoIP_GetAnnounceInterval 获取发送车辆公告消息之间的时间 -
DoIP_GetAnnounceMessageCount 获取要发送的配置车辆公告消息的数量 -
DoIP_GetAnnounceWaitTime 获取车辆通知消息发送开始前的延迟时间 -
DoIP_GetControlTimeout 返回车辆识别请求、连接和路由激活的超时时间 -
DoIP_GetDiagnosticMessageTimeout 返回等待诊断消息肯定或否定确认的超时时间 -
DoIP_GetGenericTimeout 返回通用超时 通用超时指定在连接自动关闭之前 TCP 连接不活动的最长时间
DoIP_GetInitialTimeout 返回初始超时 在此时间间隔内必须接收到路由激活请求,否则 TCP 连接关闭
如果通过 DisableRouteActivation 在 DoIP.INI 中关闭路由激活请求,则不会检查此超时
DoIP_GetReconnectDelay 获取重新连接延迟 在配置的时间之后,测试仪首先尝试重新打开 TCP 连接,然后重新建立路由激活
DoIP_GetVehicleDiscoveryTimeout 返回等待车辆识别响应消息的超时时间 -
DoIP_SetAliveCheckTimeout 设置DoIP层的alive check timeout参数 必须在 on preStart 上调用此函数
DoIP_SetControlTimeout 设置车辆识别请求、连接和路由激活的超时时间 -
DoIP_SetDiagnosticMessageTimeout 设置等待诊断消息肯定或否定确认的超时时间 -
DoIP_SetGenericTimeout 设置通用超时 通用超时指定在连接自动关闭之前 TCP 连接不活动的最长时间
DoIP_SetInitialTimeout 设置初始超时 在此时间间隔内必须接收到路由激活请求,否则 TCP 连接关闭
如果通过 DisableRouteActivation 在 DoIP.INI 中关闭路由激活请求,则不会检查此超时
DoIP_SetReconnectDelay 测试仪将在此延迟后尝试重新连接 在配置的时间之后,测试仪首先尝试重新打开 TCP 连接,然后重新建立路由激活
DoIP_SetVehicleDiscoveryTimeout 设置等待车辆识别响应消息的超时时间 -
DoIP_ConfigureRoutingActivationRequest 配置测试仪发送的路由激活请求消息 -
DoIP_ConfigureRoutingActivationRetries 允许激活或停用 DoIP 路由激活重试 仅针对可以在代码列表中给出的特定否定 ACK 代码尝试重试
当 nackCodesCount 为 0 时,会使用一个默认列表
DoIP_ConnectToVehicle 尝试连接到配置的车辆 车辆识别阶段以检索车辆 IP 地址开始
DoIP_GetReconnectInterval 获取重新连接间隔 当车辆关闭连接时,测试仪将等待配置了 DoIP_SetReconnectDelay 的时间,然后再次尝试连接到车辆
然后它会向 ECU 发送最多 maxAttempts TCP 连接请求,在尝试之间等待 reconnectInterval_ms
DoIP_InitAsTester 激活测试仪 为了使用这个 DLL 作为测试器,例如 在测试模块中,必须通过在 preStart 中调用此函数来更改操作模式
当使用内置诊断通道时,即没有在测试仪中配置 DoIP.DLL 时,不需要调用此函数
DoIP_SendEntityStatusRequest 向配置的对等方或给定地址发送实体状态请求 -
DoIP_SendPowerModeInformationRequest 请求/发送电源模式信息 -
DoIP_SendRoutingActivationRequest 向联网车辆发送路由激活请求 在建立连接时自动完成
DoIP_SetIdentificationRequestEID 通过测试仪发送配置车辆识别请求消息 -
DoIP_SetIdentificationRequestVIN 通过测试仪发送配置车辆识别请求消息 -
DoIP_SetVIN 通过测试仪发送配置车辆识别请求消息 如果这些函数与 DiagInitEcuSimulation 结合使用,则必须在预启动时调用这些函数
原因:DoIP.DLL 在预启动之后但在启动之前在 ECU 模拟中被初始化
DoIP_SetMulticastScopeId 测试仪发送的组播请求设置 IPv6 地址范围 ID 范围 ID 等于测试者节点的适配器索引
该功能允许为 IPv6 多播地址选择合适的适配器
DoIP_SetReconnectInterval 测试设备将在此时间间隔内重试重新连接 当车辆关闭连接时,测试仪将等待配置了 DoIP_SetReconnectDelay 的时间,然后再次尝试连接到车辆
然后它将最多向 ECU 发送 maxAttempts TCP 连接请求,在尝试之间等待 reconnectInterval_ms
DoIP_SetRoutingActivationOEMSpecific 在路由激活请求消息中设置 OEM 特定的参数 -
DoIP_AddLocalIPaddress 添加另一个 IP 地址,该车辆模拟可以在下面访问 给定的 IP 地址必须在节点的 IP 上下文中可用,即它必须在 CANoe 以太网网络中为模拟节点配置
如果操作系统堆栈处于活动状态,则必须将地址分配给 Windows 适配器
DoIP_RemoveLocalIPaddress 删除车辆将不再侦听的 IP 地址 给定的 IP 地址必须在节点的 IP 上下文中可用,即它必须在 CANoe 以太网网络中为模拟节点配置
如果操作系统堆栈处于活动状态,则必须将地址分配给 Windows 适配器
DoIP_AnnounceVehicle 开始广播车辆公告信息 DoIP.INI文件中的定时参数A_DoIP_Announce_Wait以及DoIP_ConfigureVehicleAnnouncement函数配置的toInitial_ms参数在使用该函数时被忽略,即立即开始发送车辆通知消息
DoIP_ConfigureVehicleAnnouncement 配置何时发送车辆通知消息 -
DoIP_SetEID 模拟配置车辆发送的车辆公告消息 与 DiagInitEcuSimulation 结合使用,则必须在预启动时调用这些函数
DoIP_SetGroupIdentification 模拟配置车辆发送的车辆公告消息 与 DiagInitEcuSimulation 结合使用,则必须在预启动时调用这些函数
DoIP_SetVIN 模拟配置车辆发送的车辆公告消息 与 DiagInitEcuSimulation 结合使用,则必须在预启动时调用这些函数
DoIP_SetEntityStatusInformation 设置为实体状态请求返回的值 -
DoIP_SetPowerModeInformation 设置为电源模式信息请求返回的值 -
DoIP_AddCombinedPDU 将另一个 PDU 附加到组合 当前配置的协议版本字节将用于 PDU
DoIP_AddECU 将有效的 DoIP ECU 地址添加到 DoIP 层 可能会导致接收方拒绝具有未知逻辑地址的 DoIP 消息
DoIP_AddTester 将有效的 DoIP 测试器地址添加到 DoIP 层 可能会导致接收方拒绝具有未知逻辑地址的 DoIP 消息
DoIP_CloseConnection 关闭与对等方的 TCP 连接 -
DoIP_DataReq 请求将给定数据传输到 DoIP 对等方 -
DoIP_ForceLocalTCPSendPort 将本地 TCP 发送端口强制为特定值 根据 ISO13400,应动态选择用于传出 TCP 连接的本地发送端口。 此函数允许将本地 TCP 发送端口强制为特定值,通常为 13400 以指示 DoIP。 请注意,指定众所周知的或系统端口 (1..1023) 可能不适用于大多数系统
DoIP_ForceLocalUDPSendPort 强制本地 UDP 发送端口为特定值 根据 ISO 13400,UDP 消息的本地发送端口应动态选择。 请注意,指定“众所周知”或系统端口 (1..1023) 可能不适用于大多数系统
DoIP_GetLastResponseCode 返回从对等方收到的最后一个否定响应代码 -
DoIP_SendPDUCombination 在打开的 TCP 连接上发送 PDU 组合 PDU 将在一个 IP 数据包中发送,具体取决于传输介质的 PDU 大小
DoIP_SetBroadcastIPaddress 设置广播消息的目标 IP 地址 -
DoIP_SetGatewayLogicalAddress 设置网关逻辑地址 -
DoIP_SetLocalIPaddress 设置要绑定到的本地 IP 地址 可以设置本地 IP 地址以将发送和接收限制为特定适配器,即不会在所有可用适配器上发送广播。 如果测试人员应与位于已知 IP 地址的车辆通信,则使用 DoIP_SetVehicleAddress 并让 IP 堆栈找到合适的适配器
DoIP_SetLocalIPaddressVersion 如果未提供地址,则选择本地地址的 IP 版本 -
DoIP_SetProtocol 设置 DoIP PDU 中使用的协议版本 -
DoIP_SetTesterAdapter 设置 DoIP 层使用的网络接口 必须在 on preStart 上调用此函数
DoIP_SetTesterLogicalAddress 设置用于发送的测试仪的逻辑 DoIP 地址 发送时使用的逻辑地址
DoIP_SetTesterUdpPort 设置 DoIP 层使用的 UDP 端口 必须在 on preStart 上调用此函数
DoIP_SetVehicleAddress 设置 DoIP 层使用的地址 如果给定,则该地址用于从测试设备访问 DoIP 实体,即,如果使用 IP 地址,则忽略车辆识别请求。 在车辆模拟中,它将确定用于通信的适配器; 在这种情况下,必须在 preStart 上调用此函数
DoIP_SetVehicleAdapter 设置 DoIP 层使用的网络接口 必须在 on preStart 上调用此函数
DoIP_SetVehicleLogicalAddress 设置在 DoIP PDU 中发送的车辆逻辑 DoIP 地址 发送时使用的逻辑地址
DoIP_SetVehicleTcpPort 设置 DoIP 层使用的 TCP 端口 必须在 on preStart 上调用此函数
DoIP_SetVehicleUdpPort 设置 DoIP 层要使用的 UDP 端口 必须在 on preStart 上调用此函数
DoIP_SetWriteLevel 设置由 DoIP 实现写入的消息量 -
DoIP_TCPSend 在打开的 TCP 连接上发送具有有效布局的 DoIP PDU -
DoIP_UDPSend 将给定的原始数据作为 UDP 帧发送给对等方
将具有有效布局的 DoIP PDU 作为 UDP 帧发送到对等方
-
DoIP_UDPSendPort (raw):将给定的原始数据作为 UDP 帧发送给对等方
(PDU):将给定的 DoIP PDU 作为 UDP 帧发送给对等方
-
DoIP_DataInd 当接收到新数据时从 DoIP 层调用 -
DoIP_DataCon 在发送数据时从 DoIP 层调用 -
DoIP_ErrorInd 发生错误时从 DoIP 层调用 -
_DoIP_MessageAcknowledgeInd 测试仪收到肯定或否定的确认 提供有关否定确认原因的附加信息
_DoIP_EntityStatusResponse 测试仪收到实体状态请求的响应 -
_DoIP_IdentificationRequest 在车辆模拟已收到车辆识别请求消息时调用 返回的值将决定 DoIP.DLL 的反应
不针对 ECU 的请求将被忽略
_DoIP_PowerModeInformationResponse 在测试仪收到对超级模式信息请求的响应时调用 车辆的 IP 地址作为第一个参数以文本形式给出
_DoIP_TCPDataInd 接收到此实现无法解释的 DoIP PDU 则调用 -
_DoIP_TCPPreSend DoIP 实现即将发送具有给定内容的 TCP DoIP PDU 可以更改报头和数据中的值、丢弃 PDU 并减少有效载荷的长度
仅发送具有有效布局的 DoIP PDU
_DoIP_UDPDataInd 在收到此 DoIP 实现无法解释的 UDP 数据包时调用 发件人 IP 地址以文本形式作为第一个参数给出
_DoIP_UDPInd 收到 UDP 数据包 每个 DoIP UDP 数据包都转发到此功能,返回值决定数据包是被处理还是被忽略
_DoIP_UDPPreSend DoIP 实现即将发送一个包含给定内容的 UDP DoIP 数据包 可以改变头部和数据中的值,并改变UDP数据包的总长度
Functions for Controling vFlash vFlashActivateNetwork 如果需要,激活 FlexRay 网络管理 只有在调用了 CAPL 回调 vFlashActivateNetworkCompleted 之后才允许下一个 API 调用
这个事件驱动的 API 只需要在测试模块或测试单元之外使用
vFlashDeinitialize
vFlashInitialize
初始化(取消初始化)vFlash 只有在调用了 CAPL 回调 vFlashInitializeCompleted(或 vFlashDeinitializeCompleted)之后,才允许进一步调用 API
这个事件驱动的 API 只需要在测试模块或测试单元之外使用
vFlashGetLastErrorMessage 请求调用 CAPL 回调 vFlashErrorMessage,其中包含有关发生的错误的信息 -
vFlashLoadProject 加载存储在给定路径下的提供的 vFlash 项目 调用 CAPL 回调函数 vFlashLoadProjectCompleted 将指示项目已加载。 只有在调用回调后才允许进一步的 API 调用
这个事件驱动的 API 只需要在测试模块或测试单元之外使用
vFlashReprogram 开始刷机程序 进度将通过调用可选回调 vFlashProgramProgressCallback 来指示。 调用 CAPL 回调 vFlashReprogramCompleted 时,该过程已完成
这个事件驱动的 API 只需要在测试模块或测试单元之外
vFlashStop 终止刷机程序 停止的完成通过调用 CAPL 函数 vFlashStopCompleted 来指示
这个事件驱动的 API 只需要在测试模块或测试单元之外使用
vFlashUnloadProject 卸载当前的 vFlash 项目 CAPL 回调 vFlashUnloadProjectCompleted 将在卸载完成并且可以进行进一步的 API 调用时被调用
这个事件驱动的 API 只需要在测试模块或测试单元之外
TestWaitForvFlashInitialized
TestWaitForvFlashDeinitialized
等待 vFlash 库初始化/取消初始化 如果对 vFlash API 的函数进行任何其他调用,则必须调用 TestWaitForvFlashDeinitialized
TestWaitForvFlashLastErrorMessage 等待直到从 vFlash 中检索到最后一条详细的错误消息 如果收到消息,则将其复制到给定的缓冲区中
TestWaitForvFlashNetworkActivated 等待 FlexRay 网络管理在配置的网络上激活 -
TestWaitForvFlashProjectLoaded
TestWaitForvFlashProjectUnloaded
等待给定打包的 vFlash 项目(包括 flashware)加载或卸载 -
TestWaitForvFlashReprogrammed 开始刷写过程并等待它完成 -
TestWaitForvFlashStopped 中止运行的刷写过程并等待直到它停止 -

CPAL脚本自动化测试 ———— Diagnostic 系列函数相关推荐

  1. CPAL脚本自动化测试 ———— Flexray系列函数及使用

    现在,CANoe能支持的协议已经越来越多了,Flexray也逐步被使用到了整车网络中.既然可以使用以太网进行通信,那也需要对Flexray进行一定的操作.CANoe 内部存在着Flexray系列函数, ...

  2. CPAL脚本自动化测试 ———— RC232 系列函数及使用

    在测试过程中,我们可能还涉及到电压的变化.在这边,我们可以采用使用程控电源并通过RC232来控制程控电源的输出与变化.我一般是用较多的是TOE8592,在CAPL的函数库中,同时也支持RC232这系列 ...

  3. CPAL脚本自动化测试 ———— FDX系列函数及使用

    在构建HIL测试环境过程中,FDX协议是一个常用的协议来传输数据.在调试的过程中,CAPL的函数库里面也存在一些已有的FDX系列相关的函数,我们可以直接使用来实现一些操作. FDXClientHand ...

  4. CPAL脚本自动化测试 ———— Signal Wait系列函数及使用

    等待指示类(Wait Instruction Functions)主要运用于为用户提供动作设置.等待测试等功能. TestValidateForTesterConfirmation 函数 使用格式如下 ...

  5. CPAL脚本自动化测试 ———— Write函数的使用与输出格式

    在运行工程的过程中,我们不一定每一次都可以完美的契合我们所需要的目标.这里可能会存在着问题或者偏差,这个时候就需要我们去调试脚本.关于调试脚本,CANoe支持两种不同的方式,一种是进入debug模式进 ...

  6. Linux Shell脚本入门教程系列之(十五) Shell函数简介

    本文是Linux Shell脚本系列教程的第(十五)篇,更多Linux Shell教程请看:Linux Shell脚本系列教程 上一篇之后,函数可以将一个复杂功能划分成若干模块,从而使程序结构更加清晰 ...

  7. Linux Shell脚本入门教程系列之(十六) Shell输入输出重定向

    本文是Linux Shell系列教程的第(十六)篇,更多Linux Shell教程请看:Linux Shell系列教程 Shell中的输出和输入的重定向是在使用中经常用到的一个功能,非常实用,今天就为 ...

  8. Linux Shell脚本入门教程系列之(十四) Shell Select教程

    本文是Linux Shell脚本系列教程的第(十四)篇,更多Linux Shell教程请看:Linux Shell脚本系列教程 在上一篇文章:Linux Shell系列教程之(十三)Shell分支语句 ...

  9. Linux Shell脚本入门教程系列之(三)Shell变量

    本文是Linux Shell脚本系列教程的第(三)篇,更多shell教程请看:Linux Shell脚本系列教程 Shell作为一种高级的脚本类语言,也是支持自定义变量的.继上一篇之后,今天就为大家介 ...

  10. php output详解,PHP输出缓冲控制Output Control系列函数详解,output函数详解

    PHP输出缓冲控制Output Control系列函数详解,output函数详解 概述 以前研究过PHP的输入输出缓冲,不过博客搬家以后,原来文章找不到了,今天看到一篇好文,顺便转载过来. 简介 说到 ...

最新文章

  1. GridView复合多层表头(不限级)!!! (转)
  2. TfidfVectorizer(stop_words='english',ngram_range=(1,1))中ngram_range的意义
  3. Scenario 7 – HP C7000 VC FlexFabric Tunneled VLANs and SUS A/A vSphere
  4. IC inbox toolbar button的determine逻辑
  5. C# 中的char 和 byte
  6. “”和“” java
  7. Flink 1.11 与 Hive 批流一体数仓实践
  8. Hibernate Log4j日志记录
  9. Swift 面向协议编程 基础篇 (一) 介绍
  10. Linux mint 14下的powerDNS+mysql+powerAdmin搭建个性DNS域名解析服务器
  11. 每天进步一点点——mysql——Percona XtraBackup(innobackupex)
  12. 鼠标自动移动 防止锁屏睡眠
  13. lvm扩容lv扩容操作记录
  14. 等额本金和等额本息的区别
  15. leetcode背包问题416、494、474、879、1049、279、322、377、518
  16. 西门子200SMART(七)交叉引用
  17. SpringMVC、SpringMVC XML配置(纯XML方式)
  18. earlier的意思_earlier和before都有之前的意思?有什么区别吗
  19. 并发编程----接口聚合 (实现方法)
  20. 群晖文件服务器ds918,群晖ds918+评测 安全而又强大

热门文章

  1. java 8 stream 对集合的简单操作
  2. Fullpage.js version 3 has changed its license to GPLv3 and it requires a `licenseKey` option ...
  3. 算法设计与分析第五章习题解答与学习指导(第2版)屈婉婷 刘田 张立昂 王捍贫编著 清华大学出版社
  4. 快手科技音视频技术亮相ChinaMM 首次公开多媒体传输协议KTP
  5. 阿里钉钉、蚂蚁、饿了么,淘宝真实面试分享
  6. 额滴亲娘嘞!偶终于考完试了!”
  7. jqwidgets使用方法
  8. 2017-11-20 白银解说
  9. 高中数学知识点归纳总结三角函数与解三角形
  10. import torch -- AttributeError: module ‘typing‘ has no attribute ‘_SpecialForm‘