メインコンテンツ

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

canMessageImport

サードパーティのログファイルからCANメッセージをインポートする

説明

message = canMessageImport(file,vendor) は、サードパーティ ベンダーの vendor のログ ファイル file から CAN メッセージをインポートします。ログ ファイル内のすべてのメッセージは、CAN メッセージ オブジェクトの配列、または要素ごとに 1 つのチャネルを持つ cell 配列としてインポートされます。

インポート後、これらのメッセージを解析、送信、または再生できます。

canMessageImport は、インポートされたログ ファイル内の情報が 16 進形式であり、インポートされたログ ファイル内のタイムスタンプが絶対値であると想定します。

message = canMessageImport(file,vendor,candb) は、指定されたデータベース内の情報を、インポートされた CAN ログ メッセージに適用します。

シンボリック メッセージ名を持つ Vector ログ ファイルをインポートするには、適切なデータベース ファイルを指定します。

message = canMessageImport(___,'OutputFormat','timetable') はメッセージの timetable を返します。これは、MATLAB® 内で CAN メッセージを最適に表現するために推奨される出力形式です。デフォルトでは、CAN メッセージの配列が返されます。

message = canMessageImport(___,'ChannelID',chanID) は指定されたチャネル chanID のデータのみを返します。デフォルトでは、すべてのチャネルが返されます。

すべて折りたたむ

ログ ファイルから生のメッセージをインポートします。

message = canMessageImport('MsgLog.asc','Vector','OutputFormat','timetable');

物理メッセージのデータベース情報を使用して、ログ ファイルからメッセージをインポートします。

candb = canDatabase('myDatabase.dbc');
message = canMessageImport('MsgLog.txt','Kvaser',candb,'OutputFormat','timetable');

3 つのチャネルのデータを含むログ ファイルから、チャネル 2 のデータを表示します。

すべてのチャネルを timetable の cell 配列に読み取ります。

d = canMessageImport("ASC_3CH.asc", "Vector", OutputFormat="timetable")
d =

  3×1 cell array

    {2×12 timetable}
    {3×8  timetable}
    {1×8  timetable}

特定のチャネルの cell 配列のインデックス

channel2Data = d{2};

または、インポート時にチャネルを指定します。

channel2Data = canMessageImport("ASC_3CH.asc", "Vector", OutputFormat="timetable", ChannelID=2);

入力引数

すべて折りたたむ

文字ベクトルまたは文字列として指定された CAN メッセージ ログ ファイルの名前。

例: 'MsgLog.asc'

データ型: char | string

CAN メッセージ ログ ファイルのインポート元となるベンダーの名前 (文字ベクトルまたは文字列として指定)。

メッセージ ログは特定のファイル形式でのみインポートできます。Vector からの ASCII ファイルと Kvaser からのテキスト ファイル。

例: 'Vector'

データ型: char | string

データベース オブジェクトとして指定された CAN データベース。これは、インポートされたログ ファイル メッセージに情報が適用されるデータベースです。

例: candb = canDatabase('CANdb.dbc')

ログ ファイルからインポートするチャネル データを示す数値スカラー値として指定されるチャネル ID。指定しない場合は、すべてのチャネルが読み取られます。1 つのチャネルのみをインポートする場合、関数は OutputFormat 引数に応じて CAN メッセージの配列または timetable を返します。複数のチャネルをインポートする場合、この関数はチャネルごとに 1 つの要素を持つメッセージまたは timetable の cell 配列を返します。

例: 2

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

出力引数

すべて折りたたむ

インポートされたメッセージは、CAN メッセージ オブジェクトの配列として、または ChannelID 引数で指定された個々のチャネルのメッセージの timetable として返されます。複数のチャネルをインポートする場合、この関数はチャネルごとに 1 つの要素を持つメッセージまたは timetable の cell 配列を返します。

バージョン履歴

R2010b で導入

すべて展開する

参考

関数