继续上篇!!!
***摸鱼聊天、答疑解惑首选之地 --- 车载网络哪些事儿***
TestWaitForMessage
功能:等待指定报文出现
说明:
如果消息没有在aTimeout时间到期之前出现,返回值为0。
根据所使用的参数类型,如果相应的数据库对象不明确,则只需在调用函数之前设置多总线环境中的适当总线上下文。
aMessage:将要等待的报文消息
aMessageId:把我摁消息的ID
aTimeout:最长等待时间
返回值:
-2:由于违反约束而恢复
-1:一般错误,例如,功能不可用
0:超时事件未发生
1:在aTimeout时间内事件发生
代码示例
// waits for the occurrence of message ‚VehicleMotion’
long result;
result = TestWaitForMessage(VehicleMotion, 2000);
if(result == 1)
write("预期报文信息已经接收到");
else
write("预期报文信息没有接收到");
TestWaitForSignalAvailable
功能:等待特定可用信号出现
说明:
测试特定信号的可用性,并在必要时等待,直到其可用为止。
测量开始后至少从总线接收一次的信号被归类为“可用”。
aSignal:正在测试其可用性或等待其可用性的信号
aTimeout:最长等待时间
返回值:
-2:由于违反约束而恢复
-1:一般错误,例如,功能不可用
0:超时事件未发生
1:在aTimeout时间内事件发生
代码示例
//等待“‚EngineRunning”信号的出现
long result;
result = TestWaitForSignalAvailable(EngineRunning, 2000);
TestWaitForSignalsAvailable
功能:测试节点所有发送信号的可用性,并在必要时等待,直到该节点的所有发送信号可用。
说明:
测试节点所有发送信号的可用性,并在必要时等待,直到该节点的所有发送信号可用。测量开始后至少从总线接收一次的信号被归类为“可用”。
当您希望在开始面向信号的测试之前确保所有信号都可用时,即使测试仪与总线同步时,此功能非常有用。
aNode:
发送信号应全部可用的节点
对于CAN和FlexRay,将考虑所有信号!与相应的XML模式<awaitsignalsavailable>相反,此函数考虑来自所有帧和PDU的FlexRay信号;不仅仅是来自“应用”服务类型的帧和PDU的FlexRay信号。
对于LIN节点,仅考虑来自所有调度表的无条件帧和事件触发帧的信号。诊断帧的信号也被忽略。自CANoe 8.1 SP2起可用于LIN。在以前的版本中,该功能不适用于LIN,返回-1。
aTimeout:最长等待时间
返回值:
-2:由于违反约束而恢复
-1:一般错误,例如,功能不可用
0:超时事件未发生
1:在aTimeout时间内事件发生
代码示例
//等待节点“SUT”的所有tx信号的可用性
long result;
result = TestWaitForSignalsAvailable(SUT, 2000);
TestGetWaitLinSyncErrorData
功能:获取同步错误LN数据
说明:
检索触发上一条等待指令的同步错误的数据。
第二个函数只能用于“已加入的事件”。“joind event”的编号(返回值为“testJoin…”)在这里被用作索引。
apEvent:带有校验和错误数据的数据结构;获取到的LIN报文数据
index:“joind event”的编号对应于“testJoin…”的返回值。
返回值:
0:数据访问成功
-1:数据访问失败–上次等待功能不是由同步错误触发的
代码示例
testcase tcTFS_linSyncErrorEvent ()
{
linSyncError linSyncErrorData;
if (testWaitForLinSyncError(5000) == 1)
{
if (testGetWaitLinSyncErrorData(linSyncErrorData) == 0)
{
testStep("Evaluation", "LIN Sync Error event occurred. SyncBreak=%d ns; SyncDel=%d ns", linSyncErrorData.breaklen, linSyncErrorData.delimiterlen);
}
}
}