CAPL Canoe 等待特定的 can 消息
CAPL Canoe wait for a specific can message
我目前正在尝试测试控制器的自动生成代码。
测试将在带有 Capl 的 CANoe 中完成。
我已经尝试了很多东西而且效果很好,但现在我想
测试 "message lost".
我需要这样的东西。
CAN 1 正在发送测试消息 10 次。 3次就会有一条消息丢失。
正在接收信号的 CAN 2 必须以特定值对此做出反应。
我需要 WaitForMessage(int aTimeOut, Message yourMessage) 之类的东西,例如 0 表示成功访问消息,-1 表示超时。
on timer sendMessage
{
if(anzahlAnBotschaften > 0) // amount of sent Messages
{
if(anzahlAnBotschaften % 3 == 0) // 3 times message lost
{
botschaftWirdGesendet = 0;
lRet = ???? here is the part where i want to wait for a an answer from CAN2
if(lRet != 0)
{
TestStepPass("010.1", "SNA was triggered");
}
else
{
TestStepFail("010.1", "Timeout was triggered, but no SNA was found");
}
}
else
{
botschaftWirdGesendet = 1;
output(sendingCan_BrkSys);
lRet = TestGetWaitEventMsgData(receivingCan_aMessage);
if(lRet == 0)
{
// same for the positive case
}
}
anzahlAnBotschaften -- ;
setTimer(botschaftsAusfall,20);
}
}
有什么问题?只需按照帮助中的说明使用 CAPL 函数 testWaitForMessage。
您正在使用测试节点,因为您的代码中有 TestStepFail/Pass 调用,因此您在控制测试序列方面所需的一切都以 测试...
p.s。别的,我怀疑使用这段代码你能检测到评论
中描述的内容
if(anzahlAnBotschaften % 3 == 0) // 3 times message lost
anzahlAnBotschaften = 在 german 中这表示收到消息的计数。因此,如上所述,当您从 10 条消息中收到 7 条消息时(anzahlAnBotschaften == 7),则此条件为 false.
我目前正在尝试测试控制器的自动生成代码。
测试将在带有 Capl 的 CANoe 中完成。
我已经尝试了很多东西而且效果很好,但现在我想 测试 "message lost".
我需要这样的东西。
CAN 1 正在发送测试消息 10 次。 3次就会有一条消息丢失。
正在接收信号的 CAN 2 必须以特定值对此做出反应。
我需要 WaitForMessage(int aTimeOut, Message yourMessage) 之类的东西,例如 0 表示成功访问消息,-1 表示超时。
on timer sendMessage
{
if(anzahlAnBotschaften > 0) // amount of sent Messages
{
if(anzahlAnBotschaften % 3 == 0) // 3 times message lost
{
botschaftWirdGesendet = 0;
lRet = ???? here is the part where i want to wait for a an answer from CAN2
if(lRet != 0)
{
TestStepPass("010.1", "SNA was triggered");
}
else
{
TestStepFail("010.1", "Timeout was triggered, but no SNA was found");
}
}
else
{
botschaftWirdGesendet = 1;
output(sendingCan_BrkSys);
lRet = TestGetWaitEventMsgData(receivingCan_aMessage);
if(lRet == 0)
{
// same for the positive case
}
}
anzahlAnBotschaften -- ;
setTimer(botschaftsAusfall,20);
}
}
有什么问题?只需按照帮助中的说明使用 CAPL 函数 testWaitForMessage。
您正在使用测试节点,因为您的代码中有 TestStepFail/Pass 调用,因此您在控制测试序列方面所需的一切都以 测试...
p.s。别的,我怀疑使用这段代码你能检测到评论
中描述的内容if(anzahlAnBotschaften % 3 == 0) // 3 times message lost
anzahlAnBotschaften = 在 german 中这表示收到消息的计数。因此,如上所述,当您从 10 条消息中收到 7 条消息时(anzahlAnBotschaften == 7),则此条件为 false.