通过CAPL发送以太网/ udp数据包

时间:2018-03-30 15:18:21

标签: can-bus capl

如何通过CAPL发送以太网数据包或UDP数据包?我知道有一个以太网IG块,但我想知道我们是否可以通过capl脚本发送它,就像通过CaPL发送CAN消息一样

2 个答案:

答案 0 :(得分:0)

您确实可以通过CAPL发送以太网数据包。

  

使用选项。以太网提供了几个API来接收和传输以太网帧。

CAPL功能指南。

例如,函数ethernetPacket用于创建以太网发送对象。不幸的是,我自己从未这样做过,所以我没有一个片段来说明这一点,但我建议你参考CAPL Functions>部分下的CANoe / CANalyzer指南。 Ethernet CAPL Functions。还提供了用于以太网通信的类似中断的过程,例如, on ethernetPacket。另外,您可能希望下次在研究中付出更多努力......

我对UDP一无所知,但为了完整起见,CAPL提供了TCP / IP,FlexRay,RS232(串行)以及J1939,K-Line等标准的API。

答案 1 :(得分:0)

函数ethernetPacket <packet var>;可用于创建以太网发送对象。可以通过与此对象关联的选择器来操作对象数据。有关这些选择器的更多信息,可以在以下路径的“帮助”中找到: CAPL功能»以太网»ethernetPacket

这里有一个有关如何通过CAPL发送以太网数据包的示例

ethernetPacket txPacket;
int i;

txPacket.msgChannel = 1;
txPacket.hwChannel = 2;
txPacket.source = EthGetMacAddressAsNumber( "20:00:00:00:00:01" );
txPacket.destination = EthGetMacAddressAsNumber( "FF:FF:FF:FF:FF:FF" );
txPacket.Length = 100;
txPacket.type = 0xF123;

for( i = 0; i < txPacket.Length; i++ )
{
  txPacket.Byte(i) = i & 0xFF;
}
output( txPacket );