CPAL脚本自动化测试 ———— Diagnostic 系列函数
该系列文章之前有写过一篇文章: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 系列函数相关推荐
- CPAL脚本自动化测试 ———— Flexray系列函数及使用
现在,CANoe能支持的协议已经越来越多了,Flexray也逐步被使用到了整车网络中.既然可以使用以太网进行通信,那也需要对Flexray进行一定的操作.CANoe 内部存在着Flexray系列函数, ...
- CPAL脚本自动化测试 ———— RC232 系列函数及使用
在测试过程中,我们可能还涉及到电压的变化.在这边,我们可以采用使用程控电源并通过RC232来控制程控电源的输出与变化.我一般是用较多的是TOE8592,在CAPL的函数库中,同时也支持RC232这系列 ...
- CPAL脚本自动化测试 ———— FDX系列函数及使用
在构建HIL测试环境过程中,FDX协议是一个常用的协议来传输数据.在调试的过程中,CAPL的函数库里面也存在一些已有的FDX系列相关的函数,我们可以直接使用来实现一些操作. FDXClientHand ...
- CPAL脚本自动化测试 ———— Signal Wait系列函数及使用
等待指示类(Wait Instruction Functions)主要运用于为用户提供动作设置.等待测试等功能. TestValidateForTesterConfirmation 函数 使用格式如下 ...
- CPAL脚本自动化测试 ———— Write函数的使用与输出格式
在运行工程的过程中,我们不一定每一次都可以完美的契合我们所需要的目标.这里可能会存在着问题或者偏差,这个时候就需要我们去调试脚本.关于调试脚本,CANoe支持两种不同的方式,一种是进入debug模式进 ...
- Linux Shell脚本入门教程系列之(十五) Shell函数简介
本文是Linux Shell脚本系列教程的第(十五)篇,更多Linux Shell教程请看:Linux Shell脚本系列教程 上一篇之后,函数可以将一个复杂功能划分成若干模块,从而使程序结构更加清晰 ...
- Linux Shell脚本入门教程系列之(十六) Shell输入输出重定向
本文是Linux Shell系列教程的第(十六)篇,更多Linux Shell教程请看:Linux Shell系列教程 Shell中的输出和输入的重定向是在使用中经常用到的一个功能,非常实用,今天就为 ...
- Linux Shell脚本入门教程系列之(十四) Shell Select教程
本文是Linux Shell脚本系列教程的第(十四)篇,更多Linux Shell教程请看:Linux Shell脚本系列教程 在上一篇文章:Linux Shell系列教程之(十三)Shell分支语句 ...
- Linux Shell脚本入门教程系列之(三)Shell变量
本文是Linux Shell脚本系列教程的第(三)篇,更多shell教程请看:Linux Shell脚本系列教程 Shell作为一种高级的脚本类语言,也是支持自定义变量的.继上一篇之后,今天就为大家介 ...
- php output详解,PHP输出缓冲控制Output Control系列函数详解,output函数详解
PHP输出缓冲控制Output Control系列函数详解,output函数详解 概述 以前研究过PHP的输入输出缓冲,不过博客搬家以后,原来文章找不到了,今天看到一篇好文,顺便转载过来. 简介 说到 ...
最新文章
- GridView复合多层表头(不限级)!!! (转)
- TfidfVectorizer(stop_words='english',ngram_range=(1,1))中ngram_range的意义
- Scenario 7 – HP C7000 VC FlexFabric Tunneled VLANs and SUS A/A vSphere
- IC inbox toolbar button的determine逻辑
- C# 中的char 和 byte
- “”和“” java
- Flink 1.11 与 Hive 批流一体数仓实践
- Hibernate Log4j日志记录
- Swift 面向协议编程 基础篇 (一) 介绍
- Linux mint 14下的powerDNS+mysql+powerAdmin搭建个性DNS域名解析服务器
- 每天进步一点点——mysql——Percona XtraBackup(innobackupex)
- 鼠标自动移动 防止锁屏睡眠
- lvm扩容lv扩容操作记录
- 等额本金和等额本息的区别
- leetcode背包问题416、494、474、879、1049、279、322、377、518
- 西门子200SMART(七)交叉引用
- SpringMVC、SpringMVC XML配置(纯XML方式)
- earlier的意思_earlier和before都有之前的意思?有什么区别吗
- 并发编程----接口聚合 (实现方法)
- 群晖文件服务器ds918,群晖ds918+评测 安全而又强大
热门文章
- java 8 stream 对集合的简单操作
- Fullpage.js version 3 has changed its license to GPLv3 and it requires a `licenseKey` option ...
- 算法设计与分析第五章习题解答与学习指导(第2版)屈婉婷 刘田 张立昂 王捍贫编著 清华大学出版社
- 快手科技音视频技术亮相ChinaMM 首次公开多媒体传输协议KTP
- 阿里钉钉、蚂蚁、饿了么,淘宝真实面试分享
- 额滴亲娘嘞!偶终于考完试了!”
- jqwidgets使用方法
- 2017-11-20 白银解说
- 高中数学知识点归纳总结三角函数与解三角形
- import torch -- AttributeError: module ‘typing‘ has no attribute ‘_SpecialForm‘