Vector - CAPL - 等待并获取LIN数据(续)

时间:2021-04-18 01:16:06

继续上篇!!!

 ***摸鱼聊天、答疑解惑首选之地 --- 车载网络哪些事儿***

Vector - CAPL - 等待并获取LIN数据(续)

目录

TestWaitForLinReceiveError

TestGetWaitLinReceiveErrData

代码示例

TestWaitForLinWakeupFrame

TestGetWaitLinWakeupData

代码示例

TestWaitForLinTransmError

TestGetWaitLinTransmErrData

代码示例

TestWaitForLinHeader

TestGetWaitLinHdrData

代码示例


TestWaitForLinReceiveError

Vector - CAPL - 等待并获取LIN数据(续)

功能:等待LIN接收错误事件的发生。

说明:

如果事件没有在aTimeout时间到期之前发生,返回值为0。

在调用函数之前,请考虑始终在多总线环境中设置适当的总线上下文。

aFrameId:应等待其接收错误的帧的数字ID;默认值:等待任何ID

aTimeout:最长等待时间

返回值:

-2:由于违反约束而恢复

-1:一般错误,例如,功能不可用

0:超时未接收到LIN报文

1:预期等待的LIN报文出现

TestGetWaitLinReceiveErrData

Vector - CAPL - 等待并获取LIN数据(续)

功能:返回接收到的错误LIN数据

说明:

如果LIN接收错误事件是触发等待指令的最后一个事件,则可以使用第一个函数调用错误内容。

第二个函数只能用于“已加入的事件”。“joind event”的编号(返回值为“testJoin…”)在这里被用作索引。

apEvent:带有校验和错误数据的数据结构;获取到的LIN报文数据

index:“joind event”的编号对应于“testJoin…”的返回值。

返回值:

0:数据访问成功

-1:无法执行数据访问,最后一个事件不是等待的事件

代码示例

testcase tcTFS_linReceiveErrorEvent ()
{
   linReceiveError linReceiveErrorData;
   if (testWaitForLinReceiveError(5000) == 1)
   {
      if (TestGetWaitLinReceiveErrData(linReceiveErrorData) == 0)
      {
         testStep("Evaluation", "LIN Receive Error event occurred for FrameId=0x%X", linReceiveErrorData.ID);
      }
   }
}

TestWaitForLinWakeupFrame

Vector - CAPL - 等待并获取LIN数据(续)

功能:等待LIN唤醒帧的出现。

说明:

如果帧没有出现在aTimeout时间到期之前,返回值为0。

在调用函数之前,请考虑始终在多总线环境中设置适当的总线上下文。

aTimeout:最长等待时间

返回值:

-2:由于违反约束而恢复

-1:一般错误,例如,功能不可用

0:超时事件未发生

1:在aTimeout时间内事件发生

TestGetWaitLinWakeupData

Vector - CAPL - 等待并获取LIN数据(续)

功能:调用唤醒帧数据

说明:

如果LIN唤醒帧是触发等待指令的最后一个事件,则可以使用第一个函数调用帧内容。

第二个函数只能用于“已加入的事件”。“joind event”的编号(返回值为“testJoin…”)在这里被用作索引。

apEvent:带有校验和错误数据的数据结构;获取到的LIN报文数据

index:“joind event”的编号对应于“testJoin…”的返回值。

返回值:

0:数据访问成功

-1:无法执行数据访问,最后一个事件不是等待的事件

代码示例

testcase tcTFS_linWakeupEvent ()
{
   linWakeupFrame linWakeupData;
   if (testWaitForLinWakeupFrame(5000) == 1)
   {
      if (testGetWaitLinWakeupData(linWakeupData) == 0)
      {
         testStep("Evaluation", "LIN Wakeup event occurred. Signal length is %d ns", linWakeupData.length_ns);
      }
   }
}

TestWaitForLinTransmError

Vector - CAPL - 等待并获取LIN数据(续)

功能:等待LIN传输错误事件的发生。

说明:

如果事件没有在aTimeout时间到期之前发生,返回值为0。

在调用函数之前,请考虑始终在多总线环境中设置适当的总线上下文。

aFrameId:应等待其接收错误的帧的数字ID;默认值:等待任何ID

aTimeout:最长等待时间

返回值:

-2:由于违反约束而恢复

-1:一般错误,例如,功能不可用

0:超时事件未发生

1:在aTimeout时间内事件发生

TestGetWaitLinTransmErrData

Vector - CAPL - 等待并获取LIN数据(续)

功能:调用传输错误帧数据

说明:

如果LIN传输错误事件是触发等待指令的最后一个事件,则可以使用第一个功能调用错误内容。

第二个函数只能用于“已加入的事件”。“joind event”的编号(返回值为“testJoin…”)在这里被用作索引。

apEvent:带有校验和错误数据的数据结构;获取到的LIN报文数据

index:“joind event”的编号对应于“testJoin…”的返回值。

返回值:

0:数据访问成功

-1:无法执行数据访问,最后一个事件不是等待的事件

代码示例

testcase tcTFS_linNoResponseEvent ()
{
   linTransmError linTransmErrorData;
   if (testWaitForLinTransmError(5000) == 1)
   {
      if (testGetWaitLinTransmErrData(linTransmErrorData) == 0)
      {
         testStep("Evaluation", "LIN No-Response event occurred for FrameId=0x%X", linTransmErrorData.ID);
      }
   }
}

TestWaitForLinHeader

Vector - CAPL - 等待并获取LIN数据(续)

功能:等待指定LIN帧的Header出现

说明:

如果标头没有在aTimeout时间到期之前出现,那么等待条件仍然会得到解决。

当未指定帧时,任何LIN标头上的等待条件都会得到解决。

根据所使用的参数类型,如果相应的数据库对象不明确,则只需在调用函数之前设置多总线环境中的适当总线上下文。

aFrame:定义LIN报文

aFrameId:LIN报文ID

aTimeout:最大等到LIN报文超时时间

返回值:

-2:由于违反约束而恢复

-1:一般错误,例如,功能不可用

0:超时未接收到LIN报文

1:预期等待的LIN报文出现

TestGetWaitLinHdrData

Vector - CAPL - 等待并获取LIN数据(续)

功能:返回LIN头部数据内容。

说明:

如果LIN Header事件是触发等待指令的最后一个事件,则可以使用第一个函数调用标头内容。

第二个函数只能用于“已加入的事件”。“joind event”的编号(返回值为“testJoin…”)在这里被用作索引。

aHeader:应使用此函数填充的标题变量;linheader定义的变量

index:“joind event”的编号对应于“testJoin…”的返回值。

返回值:

0:数据访问成功

-1:无法执行数据访问,最后一个事件不是LIN标头事件

代码示例

testcase tcTFS_linHdrEvent ()
{
   linheader linHeaderData;
   if (testWaitForLinHeader(5000) == 1)
   {
      if (TestGetWaitLinHdrData(linHeaderData) == 0)
      {
         testStep("Evaluation", "LIN Header event occurred for FrameId=0x%X", linHeaderData.ID);
      }
   }
}