このページは機械翻訳を使用して翻訳されました。最新版の英語を参照するには、ここをクリックします。
ARXMLファイル入門
この例では、ARXML ファイル内の情報を解析して表示する方法を示します。
アクセスは ARXML ファイル オブジェクトを介して提供されます。ARXML ファイル オブジェクトは次の目的で使用できます。
生のメッセージのデコード方法の入力。
復号化失敗の原因となる可能性のある欠落要素を観察します。
関心のあるメッセージ、PDU、または信号に関する情報を検索します。
ARXML ファイルの構成を理解する。
この例では、CAN の状況について説明します。
ARXMLファイルを開く
arxmlDatabase
MATLAB 関数を使用してサンプル ファイル SampleFile.arxml
を開きます。ARXML ファイル オブジェクトには、Name
、Path
、CAN
の 3 つのプロパティが含まれています。
arxmlObj = arxmlDatabase("SampleFile.arxml")
arxmlObj = Database with properties: Name: "SampleFile.arxml" Path: "/tmp/Bdoc25a_2864802_1971459/tpcbc94420/vnt-ex86715502/SampleFile.arxml" CAN: [1×1 shared.vnt.arxml.protocol.CAN]
ARXML ファイルからエンティティ値を表示する
CAN
プロパティは、CAN プロトコル固有の ARXML 情報を含むオブジェクトです。現在、CAN プロトコルのみがサポートされており、オブジェクト内のすべての情報は読み取り専用です。
CAN
オブジェクトには、ARXML ファイルの基本構造を反映した 3 つのプロパティ (Frame
、PDU
、ISignal
) が含まれています。
arxmlObj.CAN
ans = CAN with properties: Frame: [2×9 table] PDU: [1×1 shared.vnt.arxml.shared.PDU] ISignal: [6×9 table]
フレーム情報を表示
フレーム テーブルを表示するには、Frame
プロパティを呼び出します。
arxmlObj.CAN.Frame
ans=2×9 table
Name Path ID Extended StartBit Length ByteOrder PDU FrameTriggering
____________ _____________________________ ____ ________ ________ ______ _______________________ ________________________________ ___________________
"ML_Frame_1" "/MathWorks/FRAME/ML_Frame_1" 1000 false 0 8 mostSignificantByteLast /MathWorks/PDUS/ML_ISignalIPDU_1 "FrameTriggering_1"
"ML_Frame_2" "/MathWorks/FRAME/ML_Frame_2" 1001 true 0 4 mostSignificantByteLast /MathWorks/PDUS/ML_ISignalIPDU_2 "FrameTriggering_2"
フレーム テーブルには、CAN の ARXML ファイルで定義された情報が含まれます。この表には、CAN フレームを ISignalIPDU に復号化するために必要なすべての情報が含まれています。
この表では、AUTOSAR 標準に従って用語を定義します。
Path
は上から下への階層構造を反映し、要素がどのように互いに含まれているかを示します。PDU
(プロトコル データ ユニット) は、ソフトウェア コンポーネントと ECU 間の通信に使用されるデータ パケットです。表内のPath
と同じ表現を使用します。FrameTriggering
は、ネットワーク上でFrame
が送信または受信されるタイミングと条件を定義します。ByteOrder
はエンディアンを反映します。mostSignificantByteLast
(リトルエンディアン) とmostSignificantByteFirst
(ビッグエンディアン) という用語が使用されます。
PDU情報を見る
CAN の PDU 情報を表示するには、PDU
プロパティを呼び出します。PDU
は、さまざまなタイプの PDU をプロパティとして持つオブジェクトです。現在、ISignalIPDU
のみがサポートされています。
arxmlObj.CAN.PDU
ans = PDU with properties: ISignalIPDU: [2×6 table]
ISignalIPDU テーブルを表示するには、ISignalIPDU
を呼び出します。
arxmlObj.CAN.PDU.ISignalIPDU
ans=2×6 table
Name Frame ISignal StartBit Length ByteOrder
__________________ ___________________________ ___________ ________ ______ _______________________
"ML_ISignalIPDU_1" /MathWorks/FRAME/ML_Frame_1 {4×5 table} 0 8 mostSignificantByteLast
"ML_ISignalIPDU_2" /MathWorks/FRAME/ML_Frame_2 {2×5 table} 0 4 mostSignificantByteLast
ISignalIPDU テーブルには、CAN の ARXML ファイルで定義された ISignalIPDU 情報が含まれています。ISignal
列には、特定の ISignalIPDU
内に含まれる ISignal がリストされます。
arxmlObj.CAN.PDU.ISignalIPDU.ISignal{1}
ans=4×5 table
Name StartBit Length ByteOrder BaseType
______________ ________ ______ ________________________ ____________
"ML_ISignal_1" 0 1 mostSignificantByteLast {1×1 struct}
"ML_ISignal_2" 1 2 mostSignificantByteFirst {1×1 struct}
"ML_ISignal_3" 3 2 opaque {1×1 struct}
"ML_ISignal_4" 5 1 mostSignificantByteLast {1×1 struct}
arxmlObj.CAN.PDU.ISignalIPDU.ISignal{2}
ans=2×5 table
Name StartBit Length ByteOrder BaseType
______________ ________ ______ _______________________ ____________
"ML_ISignal_5" 0 2 mostSignificantByteLast {1×1 struct}
"ML_ISignal_6" NaN NaN mostSignificantByteLast {1×1 struct}
この ISignal テーブルには、ISignalIPDU 内の ISignal のビット位置などの基本情報が含まれています。完全な ISignal 情報は ISignal テーブルで確認できます。
ISignal情報を見る
ISignal テーブルを表示するには、ISignal プロパティを呼び出します。
arxmlObj.CAN.ISignal
ans=6×9 table
Name CompuMethod StartBit Length ByteOrder BaseType Unit PDU SystemSignal
______________ ___________________________________________________ ________ ______ ________________________ ____________ ___________ ________________________________ _______________________________________________
"ML_ISignal_1" 1×1 shared.vnt.arxml.shared.compumethod.CompuMethod 0 1 mostSignificantByteLast {1×1 struct} F /MathWorks/PDUS/ML_ISignalIPDU_1 "/MathWorks/SYSTEM_SIGNALS/ML_ISignal_1_System"
"ML_ISignal_2" 1×1 shared.vnt.arxml.shared.compumethod.CompuMethod 1 2 mostSignificantByteFirst {1×1 struct} min /MathWorks/PDUS/ML_ISignalIPDU_1 "/MathWorks/SYSTEM_SIGNALS/ML_ISignal_2_System"
"ML_ISignal_3" 1×1 shared.vnt.arxml.shared.compumethod.CompuMethod 3 2 opaque {1×1 struct} rpm /MathWorks/PDUS/ML_ISignalIPDU_1 "/MathWorks/SYSTEM_SIGNALS/ML_ISignal_3_System"
"ML_ISignal_4" 1×1 shared.vnt.arxml.shared.compumethod.CompuMethod 5 1 mostSignificantByteLast {1×1 struct} F /MathWorks/PDUS/ML_ISignalIPDU_1 "/MathWorks/SYSTEM_SIGNALS/ML_ISignal_4_System"
"ML_ISignal_5" 1×1 shared.vnt.arxml.shared.compumethod.CompuMethod 0 2 mostSignificantByteLast {1×1 struct} F /MathWorks/PDUS/ML_ISignalIPDU_2 "/MathWorks/SYSTEM_SIGNALS/ML_ISignal_5_System"
"ML_ISignal_6" 1×1 shared.vnt.arxml.shared.compumethod.CompuMethod NaN NaN mostSignificantByteLast {1×1 struct} <undefined> /MathWorks/PDUS/ML_ISignalIPDU_2 ""
CompuMethod
列には CompuMethod
オブジェクトが表示され、サポートされている CompuMethods のプロパティを表示できます。表内の項目を呼び出すと、さらに詳しい情報が提供されます。
たとえば、ISignal "ML_ISignal_2
" は TextTable 型の CompuMethod を使用します。
arxmlObj.CAN.ISignal.CompuMethod(2)
ans = TextTable with properties: Name: "ML_ISignal_2_Encoding" Unit: "min" VT: ["Group1" "Group2" "Group3"] LowerLimit: [1 2 3] UpperLimit: [1 2 3] DefaultValue: "" InverseValue: [NaN NaN NaN]
BaseType 列には物理データ型の情報が表示されます。データのエンコード方法とサイズを指定します。
arxmlObj.CAN.ISignal.BaseType{1}
ans = struct with fields:
BaseTypeEncoding: 'NONE'
BaseTypeSize: 16
欠けている要素
ARXML では、特定の要素はオプションです。ファイルに定義されていない場合は、ARXML ファイル オブジェクト テーブルに存在しない可能性があります。
データ型によって、テーブル内の「欠落」の表現が異なります。
arxmlObj.CAN.ISignal(6,:)
ans=1×9 table
Name CompuMethod StartBit Length ByteOrder BaseType Unit PDU SystemSignal
______________ _____________________________________________ ________ ______ _______________________ ____________ ___________ ________________________________ ____________
"ML_ISignal_6" 1×1 shared.vnt.arxml.shared.compumethod.Empty NaN NaN mostSignificantByteLast {1×1 struct} <undefined> /MathWorks/PDUS/ML_ISignalIPDU_2 ""