3

CANoe で CAPL を使用して、CAN 上の ISO-TP 経由で大量のデータを送信します。CAPL に埋め込まれたデータ セグメンテーションの処理を提供するルーチンはありますか、それとも独自の解釈を記述する必要がありますか?

4

1 に答える 1

5

OSEK_TP CANoe デモをご覧ください。ISO-TP (トランスポート プロトコル、ISO 15765-2 )を介してデータを送受信する方法を示します。実装の詳細については、nodeA.canファイルと OSEL_TP API リファレンスを参照してください。

最小限の例を次に示します。

接続を作成して構成します。

long handle;
handle = CanTpCreateConnection(0);    // 0 = Normal mode
CanTpSetTxIdentifier(handle, 0x700);  // Tx CAN-ID
CanTpSetRxIdentifier(handle, 0x708);  // Rx CAN-ID

データを送る:

BYTE data[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
CanTpSendData(handle, data, elcount(data));

データを受信するには、次のコールバック関数を実装する必要があります。

void CanTp_ReceptionInd(long connHandle, byte data[])
{
    write("Received %d byte on connection %d: [%02x] ...",
            elcount(data), connHandle, data[0]);
}
于 2016-02-26T13:33:12.743 に答える