Отправить пакет Ethernet / UDP через CAPL

Как отправлять пакеты Ethernet или UDP-пакеты через CAPL? Я знаю, что есть блок Ethernet IG, но я хотел знать, можем ли мы отправить его через сценарий capl, как сообщение CAN отправляется через CaPL.


person Nikhil    schedule 30.03.2018    source источник


Ответы (2)


Вы действительно можете отправлять пакеты Ethernet через CAPL.

С опцией .Ethernet предоставляется несколько API для приема и передачи кадров Ethernet.

Руководство по функциям CAPL.

Например, функция ethernetPacket используется для создания объекта отправки Ethernet. К сожалению, я никогда не делал этого сам, поэтому у меня нет фрагмента, чтобы продемонстрировать это, но я настоятельно рекомендую вам обратиться к руководству по CANoe / CANalyzer в разделе CAPL Functions> Ethernet CAPL Functions. Для связи Ethernet также предусмотрены процедуры, подобные прерыванию, например on ethernetPacket. Вдобавок, возможно, вы захотите приложить больше усилий для исследования в следующий раз ...


Я ничего не знаю об UDP, но для полноты картины CAPL предоставляет API для TCP / IP, FlexRay, RS232 (последовательный) и таких стандартов, как J1939, K-Line.

person Daemon Painter    schedule 04.04.2018

Функцию ethernetPacket <packet var>; можно использовать для создания объекта отправки Ethernet. Данными объекта можно управлять с помощью селекторов, связанных с этим объектом. Более подробную информацию об этих селекторах можно найти в справке по следующему пути: Функции CAPL »Ethernet» ethernetPacket Здесь пример того, как отправить пакет Ethernet через 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 );
person Om Choudhary    schedule 06.02.2019