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