メインコンテンツ

このページは機械翻訳を使用して翻訳されました。最新版の英語を参照するには、ここをクリックします。

receive

CAN バスからメッセージを受信する

説明

message = receive(canch,numMsgs,OutputFormat="timetable") は、CAN チャネル canch で受信した CAN メッセージの timetable を返します。返されるメッセージの数は numMsgs 以下です。numMsgs が指定した数よりも少ないメッセージがある場合、関数は現在利用可能なメッセージを返します。利用できるメッセージがない場合、関数は空の配列を返します。numMsgsInf の場合、関数は利用可能なすべてのメッセージを返します。着信した利用可能なメッセージは FIFO バッファに保持されるため、receive は最も古い利用可能なメッセージを最初に返します。

メッセージの要素を理解するには、canMessage を参照してください。

"timetable"OutputFormat オプション値は、結果がメッセージ オブジェクトとしてではなく、メッセージの timetable で返されることを指定します。この出力形式は、MATLAB® での CAN メッセージの最適なパフォーマンスと表現に推奨されます。

チャネル ProtocolMode'CAN' の場合、message = receive(canch,numMsgs) は timetable ではなく CAN メッセージ オブジェクトの配列を返します。チャネル ProtocolMode'CAN FD' の場合、receive 関数は常に timetable を返します。

すべて折りたたむ

CAN メッセージを timetable として、またはメッセージ オブジェクトの配列として受信できます。

利用可能なすべてのメッセージを timetable として受信します。

canch = canChannel("Vector", "CANCaseXL 1", 1);
start(canch)
message = receive(canch,Inf,OutputFormat="timetable");

最大 5 つのメッセージをメッセージ オブジェクトの配列として受信します。

message = receive(canch,5);

入力引数

すべて折りたたむ

CAN チャネル。CAN チャネル オブジェクトとして指定されます。これは、CAN バスにアクセスするためのチャネルです。

例: canChannel

受信するメッセージの最大数。正の数値または Inf として指定します。

例: Inf

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

出力引数

すべて折りたたむ

チャネルからの CAN メッセージは、次の表に示すタイプとして返されます。

プロトコルモード戻り値の型
ProtocolMode = 'CAN FD'
  • メッセージの timetable (常時)

ProtocolMode = 'CAN'
  • メッセージオブジェクト(デフォルト)

  • メッセージの timetable (OutputFormat="timetable"の場合)

返される timetable の変数は、プロトコル仕様に応じて、CAN または CAN FD メッセージごとに異なります。

バージョン履歴

R2009a で導入