(57)【要約】【課題】Ａ２Ｌファイルを容易に作成可能とすること。【解決手段】車載ＥＣＵの各種データを測定するための定義ファイルを作成する情報処理装置が、所定のプログラミング言語で記述された電子ファイルを入力として、前記電子ファイルの記述を解析して、構造体型のデータ型定義の宣言に関する情報を示す構造体定義情報を作成する構造体解析手段と、前記電子ファイルのビルドにより作成されたＭＡＰファイルと、前記構造体定義情報とを入力として、前記ＭＡＰファイルを解析して、該解析結果と前記構造体定義情報とから、測定対象のデータをそれぞれ表す構造体メンバの定義に関する情報を示す測定データ定義情報を作成するＭＡＰ解析手段と、前記測定データ定義情報と、前記定義ファイルの雛形とを入力として、前記測定データ定義情報を用いて前記雛形を更新することで、前記定義ファイルを作成するファイル作成手段と、を有する。【選択図】図１
2020134982.tif 000002
【特許請求の範囲】
【請求項１】
車載ＥＣＵの各種データを測定するための定義ファイルを作成する情報処理装置であって、
所定のプログラミング言語で記述された電子ファイルを入力として、前記電子ファイルの記述を解析して、構造体型のデータ型定義の宣言に関する情報を示す構造体定義情報を作成する構造体解析手段と、
前記電子ファイルのビルドにより作成されたＭＡＰファイルと、前記構造体定義情報とを入力として、前記ＭＡＰファイルを解析して、該解析結果と前記構造体定義情報とから、測定対象のデータをそれぞれ表す構造体メンバの定義に関する情報を示す測定データ定義情報を作成するＭＡＰ解析手段と、
前記測定データ定義情報と、前記定義ファイルの雛形とを入力として、前記測定データ定義情報を用いて前記雛形を更新することで、前記定義ファイルを作成するファイル作成手段と、
を有する情報処理装置。
【請求項２】
前記構造体型には、共用体型が含まれ、
前記構造体解析手段は、
前記構造体定義情報と、前記共用体型のデータ型定義の宣言に関する情報を示す共用体定義情報を作成し、
前記ＭＡＰ解析手段は、
前記解析結果と前記構造体定義情報と前記共用体定義情報とから、前記測定対象のデータをそれぞれ表す構造体メンバ又は／及び共用体メンバの定義に関する情報を示す測定データ定義情報を作成する、請求項１に記載の情報処理装置。
【請求項３】
前記電子ファイルを入力として、前記電子ファイルの記述を解析して、変数と該変数のデータ型の宣言に関する情報を示すデータ型定義情報を作成するデータ型解析手段を有し、
前記ＭＡＰ解析手段は、
更に前記データ型定義情報を入力として、前記ＭＡＰファイルを解析して、該解析結果と前記構造体定義情報と前記データ型定義情報とから、測定対象のデータをそれぞれ表す変数の定義と前記構造体メンバの定義とに関する情報を示す測定データ定義情報を作成する、請求項１又は２に記載の情報処理装置。
【請求項４】
前記ファイル作成手段は、
ユーザにより編集された測定データ定義情報と、前記定義ファイルの雛形とを入力として、前記編集された測定データ定義情報を用いて前記雛形を更新することで、前記定義ファイルを作成する、請求項１乃至３の何れか一項に記載の情報処理装置。
【請求項５】
前記電子ファイルは、Ｃ言語で記述されたソースコード及びヘッダファイルであり、
前記構造体解析手段は、前記電子ファイルとして前記ソースコードと前記ヘッダファイルとを入力する、請求項１乃至４の何れか一項に記載の情報処理装置。
【請求項６】
前記定義ファイルは、ＡＳＡＭによって規格化されたＡ２Ｌファイルである、請求項１乃至５の何れか一項に記載の情報処理装置。
【請求項７】
車載ＥＣＵの各種データを測定するための定義ファイルを作成するコンピュータが、
所定のプログラミング言語で記述された電子ファイルを入力として、前記電子ファイルの記述を解析して、構造体型のデータ型定義の宣言に関する情報を示す構造体定義情報を作成する構造体解析手順と、
前記電子ファイルのビルドにより作成されたＭＡＰファイルと、前記構造体定義情報とを入力として、前記ＭＡＰファイルを解析して、該解析結果と前記構造体定義情報とから、測定対象のデータをそれぞれ表す構造体メンバの定義に関する情報を示す測定データ定義情報を作成するＭＡＰ解析手順と、
前記測定データ定義情報と、前記定義ファイルの雛形とを入力として、前記測定データ定義情報を用いて前記雛形を更新することで、前記定義ファイルを作成するファイル作成手順と、
を実行する情報処理方法。
【請求項８】
車載ＥＣＵと、該車載ＥＣＵの各種データを測定するための定義ファイルを作成する情報処理装置とが含まれる情報処理システムであって、
所定のプログラミング言語で記述された電子ファイルを入力として、前記電子ファイルの記述を解析して、構造体型のデータ型定義の宣言に関する情報を示す構造体定義情報を作成する構造体解析手段と、
前記電子ファイルのビルドにより作成されたＭＡＰファイルと、前記構造体定義情報とを入力として、前記ＭＡＰファイルを解析して、該解析結果と前記構造体定義情報とから、測定対象のデータをそれぞれ表す構造体メンバの定義に関する情報を示す測定データ定義情報を作成するＭＡＰ解析手段と、
前記測定データ定義情報と、前記定義ファイルの雛形とを入力として、前記測定データ定義情報を用いて前記雛形を更新することで、前記定義ファイルを作成するファイル作成手段と、
前記定義ファイルを入力として、前記車載ＥＣＵの各種データを測定する測定手段と、
を有する情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法及び情報処理システムに関する。
【背景技術】
【０００２】
自動車開発では、車載ＥＣＵ（Electronic Control Unit）内のデータの測定し、この測定結果から各種パラメータをキャリブレーションする試験が行われている。このようなデータ測定及びキャリブレーションでは、測定やキャリブレーションに関する情報を定義するファイルであるＡ２Ｌファイルを入力とした測定／適合ツールが用いられる。Ａ２Ｌファイルの記述形式はＡＳＡＭ（Association for Standardisation of Automation and Measuring Systems）のＡＳＡＭ−ＭＣＤ−２ＭＣで規格化されており、自動車業界では事実上の標準として広く採用されている。なお、キャリブレーション又はキャリブレーションを行う試験工程は「適合」や「マッチング」とも称される。
【０００３】
Ａ２Ｌファイルの中には測定データの定義が含まれており、変数名、データ型（１〜４ｂｙｔｅ）、アドレス等が指定される。Ａ２Ｌファイルを作成するためのツール（以降、「Ａ２Ｌファイル作成ツール」とも表す。）は様々なソフトウェアベンダー等から販売又は配布されており、一般に、これらのツールを使用してＡ２Ｌファイルが作成される。
【０００４】
ここで、これらのＡ２Ｌファイル作成ツールでは、一般に、Ｃ言語で記述されたソースコード（以降、「Ｃソースコード」とも表す。）内のコメントに基づいてＡ２Ｌファイルを作成した後、ＭＡＰファイルに基づいてアドレスやデータ型等の情報を更新している。なお、ＭＡＰファイルとは、Ｃソースコードのビルド（つまり、コンパイル及びリンク）により作成され、プログラムや変数のメモリ配置の情報（例えば、配置セクション、アドレス、サイズ等）が出力されたファイルのことである。
【０００５】
しかしながら、変数のデータ型が構造体型や共用体型である場合、この変数の先頭アドレスと全体のサイズのみがＭＡＰファイルに出力され、構造体のメンバの情報や共用体のメンバの情報はＭＡＰファイルに出力されない。このため、Ａ２Ｌファイルの測定データ定義として構造体型や共用体型の変数を定義したい場合、ＭＡＰファイルの情報では情報不足であるため、Ａ２Ｌファイルを手動で編集する必要がある。
【０００６】
なお、構造体や共用体のメンバの情報を得る技術として、デバッグ情報を利用する技術（例えば特許文献１）やＭＡＰファイルを変換する技術（例えば特許文献２）が知られている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１６−１２８９６１号公報
【特許文献２】国際公開第２０１４／１７８２５５号
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、車載ＥＣＵの測定データ数は膨大であることが多いため、Ａ２Ｌファイルを手動で編集するには多大な手間と時間とを必要とすると共に、編集誤りも発生し易い。
【０００９】
他方で、例えば特許文献１に記載されている技術ではデバッグ情報を利用するため、デバッグ情報が出力されない場合には構造体や共用体のメンバの情報を得ることができない。また、例えば特許文献２に記載されている技術ではＭＡＰファイルを変換した後、Ａ２Ｌファイル作成ツールを用いてＡ２Ｌファイルを作成する必要がある。
【００１０】
本発明は、上記の点に鑑みてなされたもので、Ａ２Ｌファイルを容易に作成可能とすることを目的とする。
【課題を解決するための手段】
【００１１】
上記目的を達成するため、本発明の実施の形態における情報処理装置は、車載ＥＣＵの各種データを測定するための定義ファイルを作成する情報処理装置であって、所定のプログラミング言語で記述された電子ファイルを入力として、前記電子ファイルの記述を解析して、構造体型のデータ型定義の宣言に関する情報を示す構造体定義情報を作成する構造体解析手段と、前記電子ファイルのビルドにより作成されたＭＡＰファイルと、前記構造体定義情報とを入力として、前記ＭＡＰファイルを解析して、該解析結果と前記構造体定義情報とから、測定対象のデータをそれぞれ表す構造体メンバの定義に関する情報を示す測定データ定義情報を作成するＭＡＰ解析手段と、前記測定データ定義情報と、前記定義ファイルの雛形とを入力として、前記測定データ定義情報を用いて前記雛形を更新することで、前記定義ファイルを作成するファイル作成手段と、を有する。
【発明の効果】
【００１２】
Ａ２Ｌファイルを容易に作成可能となる。
【図面の簡単な説明】
【００１３】
【図１】本実施形態に係る試験システムの全体構成の一例を示す図である。
【図２】本実施形態に係る試験装置のハードウェア構成の一例を示す図である。
【図３】本実施形態に係る試験装置の機能構成の一例を示す図である。
【図４】測定データ定義の記述形式の一例を示す図である。
【図５】Ａ２Ｌファイルの作成処理の一例を示すフローチャートである。
【図６】構造体定義情報の一例を示す図である。
【図７】共用体定義情報の一例を示す図である。
【図８】データ型定義情報の一例を示す図である。
【図９】測定データ定義情報の作成処理の一例を示すフローチャートである。
【図１０】測定データ定義情報の一例を示す図である。
【図１１】構造体メンバ又は共用体メンバの測定データ定義情報の作成処理の一例を示すフローチャートである。
【図１２】測定データ定義の一例を示す図である。
【発明を実施するための形態】
【００１４】
以下、本発明の実施の形態（以降、「本実施形態」と表す。）について、図面を参照しながら詳細に説明する。本実施形態では、車載ＥＣＵ内のデータ測定及び車載ＥＣＵに搭載（インストール）されたプログラムの各種パラメータのキャリブレーションを行う試験に用いられる試験システム１について説明する。上述したように、この試験では、Ａ２Ｌファイルを入力とした測定／適合ツールが用いられる。
【００１５】
本実施形態に係る試験システム１では、測定対象データを表す変数のデータ型が構造体型や共用体型であっても、ＣソースコードとＣヘッダファイルとＭＡＰファイルとから、上記の試験を行うためのＡ２Ｌファイルを自動的に作成する。これにより、上記の試験を行うにあたり、Ａ２Ｌファイルを容易に、かつ、短時間に作成可能とする。なお、Ｃヘッダファイルとは、Ｃ言語で記述されたヘッダファイルのことである。ヘッダファイルには、例えば、構造体型や共用体型の宣言（定義）やサブルーチンの宣言等が記述される。
【００１６】
以降で説明する実施形態では、ソースコード及びヘッダファイルはＣ言語で記述されているものとするが、プログラミング言語はＣ言語に限られない。本実施形態は、Ｃ言語以外の任意の言語（例えば、Ｃ＋＋言語等）でソースコード及びヘッダファイルが記述されている場合にも適用可能である。
【００１７】
＜試験システム１の全体構成＞
まず、本実施形態に係る試験システム１の全体構成について、図１を参照しながら説明する。図１は、本実施形態に係る試験システム１の全体構成の一例を示す図である。
【００１８】
図１に示すように、本実施形態に係る試験システム１には、試験装置１０と、車載ＥＣＵ２０とが含まれる。また、試験装置１０と車載ＥＣＵ２０とは、例えばＬＡＮ（Local Area Network）等の通信ネットワークを介して通信可能に接続される。
【００１９】
試験装置１０は、車載ＥＣＵ２０のデータ測定及びキャリブレーション試験に用いられるＰＣ（パーソナルコンピュータ）等の情報処理装置である。試験装置１０には、ビルドツール１００と、ファイル作成プログラム２００と、測定／適合ツール３００とが搭載（インストール）されている。また、試験装置１０は、記憶部４００を有する。
【００２０】
ビルドツール１００は、記憶部４００に記憶されているＣソースコード及びＣヘッダファイルをビルド（つまり、コンパイル及びリンク）して、車載ＥＣＵ２０に搭載（インストール）される実行可能プログラム（後述する制御プログラム５００）を作成する。また、Ｃソースコード及びＣヘッダファイルをビルドすることで、ビルドツール１００は、ＭＡＰファイルも作成する。なお、試験装置１０には、ビルドツール１００の代わりに、コンパイラと、リンカとが搭載（インストール）されていてもよい。
【００２１】
ファイル作成プログラム２００は、Ｃソースコードと、Ｃヘッダファイルと、ＭＡＰファイルとを入力として、測定データ定義が含まれるＡ２Ｌファイルを作成する。このとき、ファイル作成プログラム２００は、測定対象データを表す変数のデータ型として構造体型や共用体型が定義されている場合には、構造体や共用体のメンバの測定データ定義も含むＡ２Ｌファイルを作成する。以降では、構造体のメンバ及び共用体のメンバをそれぞれ「構造体メンバ」及び「共用体メンバ」とも表す。
【００２２】
なお、共用体は全てのメンバのオフセットが０である構造体（つまり、全てのメンバの先頭アドレスが、共用体の先頭バイトから始まる構造体）と見做すこともできるため、構造体と共用体とを区別せずに、共用体も含めて「構造体」と表現することも可能である。
【００２３】
測定／適合ツール３００は、Ａ２Ｌファイルを入力として、車載ＥＣＵ２０内のデータ測定（より正確には、車載ＥＣＵ２０に搭載（インストール）された制御プログラム５００が制御しているデータの測定）と、この測定結果を用いた各種パラメータのキャリブレーションとを行う。
【００２４】
記憶部４００は、１以上のＣソースコードと、１以上のＣヘッダファイルとが記憶されている。記憶部４００には、これ以外にも、各種情報（例えば、ファイル作成プログラム２００により作成されたＡ２Ｌファイル、このＡ２Ｌファイルを作成するために必要な情報等）が記憶されてもよい。
【００２５】
なお、試験装置１０は、ＰＣに限られず、例えば、スマートフォンやタブレット端末等の情報処理装置であってもよい。また、試験装置１０も車両に搭載されていてもよい。
【００２６】
車載ＥＣＵ２０は、車両に搭載された制御装置である。車両ＥＣＵ２０にはビルドツール１００によって作成された制御プログラム５００が搭載（インストール）されており、制御プログラム５００によって車両を構成する各種機能又は装置（例えば、ヘッドライトやエアコン、エンジン、トランスミッション、エアバッグ、車線維持システム、車間距離制御システム等）が制御される。
【００２７】
なお、図１に示す試験システム１の構成は一例であって、他の構成であってもよい。例えば、試験システム１には、複数の試験装置１０が含まれていてもよいし、複数の車両にそれぞれ搭載された車載ＥＣＵ２０が含まれていてもよい。また、試験装置１０は複数の装置に分けられてもよい。例えば、試験装置１０は、ビルドツール１００とファイル作成プログラム２００と記憶部４００とを有する装置（例えばファイル作成装置）と、測定／適合ツール３００を有する装置（例えば試験実行装置）とに分けられてもよい。
【００２８】
＜試験装置１０のハードウェア構成＞
次に、本実施形態に係る試験装置１０のハードウェア構成について、図２を参照しながら説明する。図２は、本実施形態に係る試験装置１０のハードウェア構成の一例を示す図である。
【００２９】
図２に示すように、本実施形態に係る試験装置１０は、ハードウェアとして、入力装置１１と、表示装置１２と、外部Ｉ／Ｆ１３と、通信Ｉ／Ｆ１４と、ＲＯＭ（Read Only Memory）１５と、ＲＡＭ（Random Access Memory）１６と、ＣＰＵ（Central Processing Unit）１７と、補助記憶装置１８とを有する。これら各ハードウェアは、バス１９により相互に通信可能に接続されている。
【００３０】
入力装置１１は、例えば各種ボタンやタッチパネル、キーボード、マウス等であり、試験装置１０に各種操作を入力するのに用いられる。表示装置１２は、例えばディスプレイ等であり、試験装置１０による各種の処理結果を表示する。
【００３１】
外部Ｉ／Ｆ１３は、外部装置とのインタフェースである。外部装置には、記録媒体１３ａ等がある。試験装置１０は、外部Ｉ／Ｆ１３を介して、記録媒体１３ａの読み取りや書き込み等を行うことができる。記録媒体１３ａには、例えば、ＳＤメモリカード(SD memory card）やＵＳＢメモリ、ＣＤ（Compact Disk）、ＤＶＤ（Digital Versatile Disk）等がある。
【００３２】
通信Ｉ／Ｆ１４は、試験装置１０が他の装置（例えば、車載ＥＣＵ２０等）とデータ通信を行うためのインタフェースである。
【００３３】
ＲＯＭ１５は、電源を切ってもデータを保持することができる不揮発性の半導体メモリである。ＲＡＭ１６は、プログラムやデータを一時保持する揮発性の半導体メモリである。ＣＰＵ１７は、例えば補助記憶装置１８やＲＯＭ１５からプログラムやデータをＲＡＭ１６上に読み出して、各種処理を実行する演算装置である。
【００３４】
補助記憶装置１８は、例えばＨＤＤ（Hard Disk Drive）やＳＳＤ（Solid State Drive）等であり、プログラムやデータを格納している不揮発性のメモリである。補助記憶装置１８に格納されているプログラムやデータには、例えば、基本ソフトウェアであるＯＳ（Operating System）、ＯＳ上で動作する各種アプリケーションプログラム、ビルドツール１００、ファイル作成プログラム２００、及び測定／適合ツール３００等がある。なお、記憶部４００は、例えば補助記憶装置１８を用いて実現可能である。
【００３５】
本実施形態に係る試験装置１０は、図２に示すハードウェア構成を有することにより、後述する各種処理を実現することができる。なお、図２では、試験装置１０が１台のコンピュータ（情報処理装置）で実現される場合のハードウェア構成例を示したが、これに限られない。試験装置１０は、例えば、複数台のコンピュータ（情報処理装置）で実現されていてもよい。
【００３６】
＜試験装置１０の機能構成＞
次に、本実施形態に係る試験装置１０の機能構成について、図３を参照しながら説明する。図３は、本実施形態に係る試験装置１０の機能構成の一例を示す図である。
【００３７】
図３に示すように、本実施形態に係る試験装置１０は、機能部として、構造体解析部２０１と、データ型解析部２０２と、ＭＡＰ解析部２０３と、ファイル作成部２０４とを有する。これらの各機能部は、ファイル作成プログラム２００がＣＰＵ１７に実行させる処理により実現される。
【００３８】
構造体解析部２０１は、記憶部４００に記憶されているＣソースコード及びＣヘッダファイルを入力として、Ｃソースコード及びＣヘッダファイルを解析して、構造体定義情報及び共用体定義情報を作成する。ここで、構造体定義情報とは、構造体型の宣言として記述された情報（構造体のタグ名、メンバのデータ型、及びメンバ名）と、測定データ定義として記述される情報のうちの所定の情報（例えば、「説明」、「変換方法」、「分解能」、「精度」、「最小リミット値」、及び「最大リミット値」）とを対応付けた情報である。同様に、共用体定義情報とは、共用体型の宣言で記述された情報（共用体のタグ名、メンバのデータ型、メンバ名）と、測定データ定義として記述される情報のうちの所定の情報とを対応付けた情報である。構造体定義情報及び共用体定義情報の具体例については後述する。また、測定データ定義の記述形式については後述する。
【００３９】
ここで、構造体型は以下の形式で宣言される。
【００４０】
struct タグ名{
メンバ１のデータ型 メンバ１のメンバ名;
メンバ２のデータ型 メンバ３のメンバ名;
・・・
メンバｎのデータ型 メンバｎのメンバ名;
};
【００４１】
同様に、共用体は以下の形式で宣言される。
【００４２】
union タグ名{
メンバ１のデータ型 メンバ１のメンバ名;
メンバ２のデータ型 メンバ３のメンバ名;
・・・
メンバｎのデータ型 メンバｎのメンバ名;
};
【００４３】
データ型解析部２０２は、記憶部４００に記憶されているＣソースコードを入力として、Ｃソースコードを解析して、データ型定義情報を作成する。ここで、データ型定義情報とは、変数（構造体型又は共用体型の変数も含む）の宣言として記述された情報（変数のデータ型及び変数名）と、測定データ定義として記述される情報のうちの所定の情報とを対応付けた情報である。データ型定義情報の具体例については後述する。
【００４４】
ここで、構造体型及び共用体型でない変数は以下の形式で宣言される。
【００４５】
データ型 変数名;
【００４６】
一方で、構造体型の変数は以下の形式で宣言される。
【００４７】
struct タグ名 変数名;
【００４８】
同様に、共用体型の変数は以下の形式で宣言される。
【００４９】
union タグ名 変数名;
【００５０】
ＭＡＰ解析部２０３は、ＭＡＰファイルと、構造体定義情報と、共用体定義情報と、データ型定義情報とを入力として、ＭＡＰファイルを解析して、測定データ定義情報を作成する。ここで、測定データ定義情報とは、測定データ定義と同様のデータ項目（すなわち、「データ名」、「説明」、「データ型」、「変換方法」、「分解能」、「精度」、「最小リミット値」、「最大リミット値」、及び「アドレス」）が含まれる情報である。測定データ定義情報の具体例については後述する。なお、ＭＡＰファイルは、記憶部４００に記憶されているＣソースコード及びＣヘッダファイルをビルドツール１００がビルドすることで出力される。
【００５１】
ファイル作成部２０４は、測定データ定義情報と、Ａ２Ｌテンプレートとを入力として、Ａ２Ｌファイルを作成する。ここで、Ａ２Ｌテンプレートとは、Ａ２Ｌファイルに含まれる種々の定義のテンプレート（雛形）がＡＳＣＩＩ（American Standard Code for Information Interchange）テキストで記述された電子ファイルである。ファイル作成部２０４は、Ａ２Ｌテンプレートの測定データ定義部分の雛形を、測定データ定義情報から作成される測定データ定義で更新することで、Ａ２Ｌファイルを作成する。
【００５２】
＜測定データ定義の記述形式＞
ここで、測定データ定義の記述形式について、図４を参照しながら説明する。図４は、測定データ定義の記述形式の一例を示す図である。この記述形式は、ＡＳＡＭ−ＭＣＤ−２ＭＣで規格化されている。
【００５３】
図４に示すように、測定データ定義では、「/begin MEASUREMENT」と「/end MESUREMENT」との間に、「Name」と、「LongIdentifer」と、「Datatype」と、「Conversion」と、「Resolution」と、「Accuracy」と、「Lower limit」と、「Upper limit」と、「ECU_ADDRESS」とが定義される。
【００５４】
図４に示すように、「Name」は測定データの名前、「LongIdentifer」は説明、「Datatype」はデータ型、「Conversion」は変換方式、「Resolution」は分解能、「Accuracy」は精度、「Lower limit」は最小リミット値、「Upper limit」は最大リミット値、「ECU_ADDRESS」はアドレス（測定データのアドレス）をそれぞれ表す。
【００５５】
なお、Ａ２Ｌファイルでは、測定対象のデータを表す変数（構造体メンバ及び共用体メンバも含む。）毎に、測定データ定義が定義されている必要ある。
【００５６】
＜Ａ２Ｌファイルの作成処理＞
以降では、Ｃソースコード及びＣヘッダファイルの少なくとも一方に構造体型や共用体型が宣言されており、かつ、Ｃソースコード中に構造体型の変数や共用体型の変数が宣言されているものとして、Ａ２Ｌファイルを作成する処理について、図５を参照しながら説明する。図５は、Ａ２Ｌファイルの作成処理の一例を示すフローチャートである。図５のＡ２Ｌファイルの作成処理は、例えば、試験装置１０のユーザによってファイル作成プログラム２００が提供する所定のコマンド（例えば、Ａ２Ｌファイルの作成開始コマンド）が実行されることで開始される。
【００５７】
以降では、記憶部４００に記憶されているＣソースコード及びＣヘッダファイルがビルドツール１００によってビルドされ、ＭＡＰファイルと制御プログラム５００とが作成済であるものとする。なお、ＭＡＰファイルは、例えば、記憶部４００に記憶しておけばよい。また、制御プログラム５００は、例えば、記憶部４００に記憶しておいてもよいし、車載ＥＣＵ２０にインストールしておいてもよい。
【００５８】
まず、構造体解析部２０１は、記憶部４００に記憶されているＣソースコード及びＣヘッダファイルを入力として、Ｃソースコード及びＣヘッダファイルを解析して、構造体定義情報及び共用体定義情報を作成する（ステップＳ１０１）。構造体解析部２０１は、構造体のメンバ毎に、当該構造体のタグ名と、メンバのデータ型と、メンバ名と、当該メンバのコメントとして記述された所定の情報（説明、変換方法、分解能、精度、最小リミット値、及び最大リミット値）とを対応付けることで、構造体定義情報を作成する。同様に、構造体解析部２０１は、共用体のメンバ毎に、当該共用体のタグ名と、メンバのデータ型と、メンバ名と、当該メンバのコメントとして記述された所定の情報（説明、変換方法、分解能、精度、最小リミット値、及び最大リミット値）とを対応付けることで、共用体定義情報を作成する。
【００５９】
説明、変換方法、分解能、精度、最小リミット値、及び最大リミット値をコメントとして記述する方法は、任意の方法を用いることができるが、例えば、以下のようにコメント内で、カンマで区切って記述すればよい。
【００６０】
メンバのデータ型 メンバのメンバ名;  /*説明, 変換方法, 分解能, 精度, 最小リミット値, 最大リミット値, アドレス*/
【００６１】
具体的には、例えば、タグ名「T_DATE」、データ型UWORD、メンバ名yearに対して、説明「年」、変換方法「1」、分解能「1」、精度「0」、最小リミット値「1900」、最大リミット値「2200」をコメントとして記述する場合は、以下のように記述すればよい。
【００６２】
struct T_DATE{
UWORD year; /*年, 1, 1, 0, 1900, 2200*/
・・・
};
【００６３】
ここで、上記のステップＳ１０１で作成される構造体定義情報の一例を図６に示す。図６は、構造体定義情報の一例を示す図である。図６に示す例は、年、月、日、及び時刻のデータがそれぞれ格納される変数をメンバとする構造体（タグ名「T_DATE」）に対して、時、分、秒のデータがそれぞれ格納される変数をメンバとする構造体（タグ名「T_TIME」）が入れ子になっている例である。図６に示す各構造体定義情報は、例えば、以下の構造体型の宣言を解析した結果得られる。なお、UWORDは符号なし２バイトのデータ型を表す。
【００６４】
struct T_TIME{
UWORD hour; /*時, 1, 1, 0, 0, 23*/
UWORD min; /*分, 1, 1, 0, 0, 59*/
UWORD sec; /*秒, 1, 1, 0, 0, 59*/
};
struct T_DATE{
UWORD year; /*年, 1, 1, 0, 1900, 2200*/
UWORD month; /*月, 1, 1, 0, 1, 12*/
UWORD day; /*日, 1, 1, 0, 1, 31*/
T_TIME time; /*時刻*/
};
【００６５】
また、上記のステップＳ１０１で作成される共用体定義情報の一例を図７に示す。図７は、共用体定義情報の一例を示す図である。図７に示す例は、１バイトデータ、２バイトデータ、及び３バイトデータがそれぞれ格納される変数をメンバとする共用体（タグ名「T_CALC」）の例である。図７に示す各共用体定義情報は、例えば、以下の共用体型の宣言を解析した結果得られる。なお、UBYTEは符号なし１バイトのデータ型、ULONGは符号なし２バイトのデータ型を表す。
【００６６】
union T_CALC{
UBYTE ByteData; /*1バイトデータ, 1, 1, 0, 0, 0xFF*/
UWORD ShortData; /*2バイトデータ, 1, 1, 0, 0, 0xFFFF*/
ULONG LongData; /*3バイトデータ, 1, 1, 0, 0, 0xFFFFFFFF*/
};
【００６７】
なお、上記のステップＳ１０１では、構造体型及び共用体型でないメンバに対して、所定の情報（説明、変換方法、分解能、精度、最小リミット値、及び最大リミット値）がコメントとして付与されている場合について説明したが、例えば、構造体型及び共用体型でないメンバに対してコメントが付与されていない場合は、予めデフォルト値として設定されている値をそれぞれ説明、変換方法、分解能、精度、最小リミット値、及び最大リミット値とすればよい。又は、所定の情報のうちの一部の情報がコメントとして記述されていない場合についても同様に、この一部の情報のみをデフォルト値とすればよい。
【００６８】
次に、データ型解析部２０２は、記憶部４００に記憶されているＣソースコードを入力として、Ｃソースコードを解析して、データ型定義情報を作成する（ステップＳ１０２）。データ型解析部２０２は、構造体型及び共用体型でない変数毎に、当該変数のデータ型と、変数名と、当該変数のコメントとして記述された所定の情報（説明、変換方法、分解能、精度、最小リミット値、及び最大リミット値）とを対応付けることで、データ型定義情報を作成する。
【００６９】
ここで、上記のステップＳ１０２で作成されるデータ型定義情報の一例を図８に示す。図８は、データ型定義情報の一例を示す図である。図８に示す例は、４バイトデータが格納される変数と、構造体型であるT_DATE型の変数との例である。図８に示す各データ型定義情報は、例えば、以下の変数宣言を解析した結果得られる。
【００７０】
ULONG RunningTime; /*運転累積時間, 1, 1, 0, 0, 0xFFFFFFFF*/
struct T_DATE StartTime; /*運転開始時刻*/
【００７１】
なお、上記のステップＳ１０２では、構造体型及び共用体型でない変数に対して、所定の情報（説明、変換方法、分解能、精度、最小リミット値、及び最大リミット値）がコメントとして付与されている場合について説明したが、例えば、構造体型及び共用体型でない変数に対してコメントが付与されていない場合は、予めデフォルト値として設定されている値をそれぞれ説明、変換方法、分解能、精度、最小リミット値、及び最大リミット値とすればよい。又は、所定の情報のうちの一部の情報がコメントとして記述されていない場合についても同様に、この一部の情報のみをデフォルト値とすればよい。
【００７２】
また、Ｃヘッダファイル中に変数の宣言を記述することも可能であるため、上記のステップＳ１０２で、データ型解析部２０２は、Ｃソースコードに加えて、Ｃヘッダファイルも入力し、Ｃソースコード及びＣヘッダファイルを解析してもよい。
【００７３】
ここで、上記のステップＳ１０１とステップＳ１０２とは順不同である。すなわち、上記のステップＳ１０２が実行された後に、上記のステップＳ１０１が実行されてもよい。
【００７４】
次に、ＭＡＰ解析部２０３は、ＭＡＰファイルと、構造体定義情報と、共用体定義情報と、データ型定義情報とを入力として、ＭＡＰファイルを解析して、測定データ定義情報を作成する（ステップＳ１０３）。ここで、このステップＳ１０３の処理（測定データ定義情報の作成処理）の詳細について、図９を参照しながら説明する。図９は、測定データ定義情報の作成処理の一例を示すフローチャートである。
【００７５】
まず、ＭＡＰ解析部２０３は、ＭＡＰファイルを解析して、ＭＡＰファイルに出力された変数を１つ抽出する（ステップＳ２０１）。
【００７６】
次に、ＭＡＰ解析部２０３は、上記のステップＳ２０１で抽出した変数の配置セクションが指定セクションであるか否かを判定する（ステップＳ２０２）。ここで、指定セクションとは、測定対象のデータを表す変数が配置されるセクションとして予め指定されたセクションのことである。指定セクションは、ユーザにより指定されてもよいし、ファイル作成プログラム２００の設定値として指定されていてもよい。
【００７７】
ステップＳ２０２で当該変数の配置セクションが指定セクションであると判定された場合、ＭＡＰ解析部２０３は、データ型定義情報を解析して、当該変数のデータ型を特定する（ステップＳ２０３）。すなわち、ＭＡＰ解析部２０３は、当該変数の変数名に対応するデータ型をデータ型定義情報から特定する。
【００７８】
次に、ＭＡＰ解析部２０３は、上記のステップＳ２０３で特定したデータ型が構造体型又は共用体型であるか否かを判定する（ステップＳ２０４）。なお、ＭＡＰ解析部２０３は、例えば、上記のステップＳ２０３でデータ型がタグ名として構造体定義情報又は共用体定義情報に含まれているか否かを判定することで、当該データ型が構造体型又は共用体型であるか否かを判定すればよい。
【００７９】
ステップＳ２０４で当該変数のデータ型が構造体型及び共用体型のいずれでもないと判定された場合、ＭＡＰ解析部２０３は、当該変数の変数名に対応するデータ型をデータ型定義情報と、ＭＡＰファイルとを用いて、測定データ定義情報を作成する（ステップＳ２０５）。すなわち、ＭＡＰ解析部２０３は、当該データ型定義情報に含まれる変数名をデータ名として、このデータ名と、当該データ型定義情報に含まれる説明、データ型、変換方法、分解能、精度、最小リミット値及び最大リミット値と、ＭＡＰファイルに出力された当該変数のアドレスとを対応付けることで、測定データ定義情報を作成する。これにより、例えば、上記のステップＳ２０１で抽出された変数の変数名が「RunningTime」である場合、図１０に示す測定データ定義情報のうちの１行目の測定データ定義情報が作成される。
【００８０】
一方で、ステップＳ２０４で当該変数のデータ型が構造体型又は共用体型のいずれかであると判定された場合、ＭＡＰ解析部２０３は、構造体定義情報又は共用体定義情報を解析して、測定データ定義情報を作成する（ステップＳ２０６）。これにより、当該変数の各メンバ（つまり、各構造体メンバ又は各共用体メンバ）に対して、これら各メンバそれぞれの測定データ定義情報が作成される。このステップＳ２０６の処理の詳細については後述する。
【００８１】
ステップＳ２０２で当該変数の配置セクションが指定セクションでないと判定された場合、又はステップＳ２０５若しくはステップＳ２０６に続いて、ＭＡＰ解析部２０３は、ＭＡＰファイルから未抽出の変数があるか否かを判定する（ステップＳ２０７）。
【００８２】
そして、ステップＳ２０７で未抽出の変数があると判定された場合、ＭＡＰ解析部２０３は、上記のステップＳ２０１に戻る。これにより、ＭＡＰファイルに出力された全ての変数に対して、上記のステップＳ２０２〜ステップＳ２０６が繰り返し実行される。一方で、ステップＳ２０７で未抽出の変数がないと判定された場合、ＭＡＰ解析部２０３は、測定データ定義情報の作成処理を終了する。
【００８３】
ここで、上記のステップＳ２０６の処理（構造体メンバ又は共用体メンバの測定データ定義情報の作成処理）の詳細について、図１１を参照しながら説明する。図１１は、構造体メンバ又は共用体メンバの測定データ定義情報の作成処理の一例を示すフローチャートである。
【００８４】
まず、ＭＡＰ解析部２０３は、当該変数のデータ型に応じて、構造体定義情報又は共用体定義情報を解析して、メンバを１つ抽出する（ステップＳ３０１）。このとき、ＭＡＰ解析部２０３は、当該変数のデータ型が構造体型である場合は構造体定義情報を解析して、当該変数の構造体メンバを１つ抽出し、当該変数のデータ型が共用体型である場合は共用体定義情報を解析して、当該変数の共用体メンバを１つ抽出する。ここで、ＭＡＰ解析部２０３は、当該変数のデータ型がタグ名に設定されている構造体定義情報又は共用体定義情報を１つ特定することで、メンバを１つ抽出すればよい。
【００８５】
次に、ＭＡＰ解析部２０３は、上記のステップＳ３０２で抽出したメンバのデータ型が構造体型又は共用体型であるか否かを判定する（ステップＳ３０２）。
【００８６】
ステップＳ３０２で当該メンバのデータ型が構造体型及び共用体型のいずれでもないと判定された場合、ＭＡＰ解析部２０３は、当該メンバのタグ名が変数名に設定されているデータ型定義情報と、当該メンバの構造体定義情報又は共用体定義情報と、ＭＡＰファイルとを用いて、測定データ定義情報を作成する（ステップＳ３０３）。すなわち、ＭＡＰ解析部２０３は、当該データ型定義情報に含まれる変数名とメンバ名とを「.」（ピリオド）で連結した文字列をデータ名、当該データ型定義情報に含まれる説明と当該メンバの構造体定義情報又は共用体定義情報に含まれる説明とを「.」で連結した文字列を説明として、このデータ名及び説明と、当該メンバの構造体定義情報又は共用体定義情報に含まれるデータ型、変換方法、分解能、精度、最小リミット値及び最大リミット値と、ＭＡＰファイルに出力された当該変数のアドレス（つまり、構造体又は共用体の先頭アドレス）から計算されるアドレス（つまり、メンバの先頭アドレス）とを対応付けることで、測定データ定義情報を作成する。
【００８７】
このとき、メンバの先頭アドレスは、構造体又は共用体の先頭アドレスと、メンバのサイズ（構造体の場合は各メンバのサイズ（より正確には、当該メンバよりも前に定義されているメンバのサイズ）、共用体の場合は当該メンバのサイズ）とを用いて計算することができる。
【００８８】
これにより、例えば、図９のステップＳ２０１で抽出された変数の変数名が「StartTime」で、かつ、上記のステップＳ３０１で抽出されたメンバのメンバ名が「year」である場合、図１０に示す測定データ定義情報のうちの２行目の測定データ定義情報が作成される。この測定データ定義では、変数名「StartTime」とメンバ名「year」とを「.」で連結した文字列「StartTime.year」がデータ名となっており、当該変数の説明「運転開始時刻」と当該メンバの説明「年」とを「.」で連結した文字列「運転開始時刻.年」が説明となっている。
【００８９】
同様に、例えば、図９のステップＳ２０１で抽出された変数の変数名が「StartTime」で、かつ、上記のステップＳ３０１で抽出されたメンバのメンバ名が「month」である場合、図１０に示す測定データ定義情報のうちの３行目の測定データ定義情報が作成される。同様に、例えば、図９のステップＳ２０１で抽出された変数の変数名が「StartTime」で、かつ、上記のステップＳ３０１で抽出されたメンバのメンバ名が「day」である場合、図１０に示す測定データ定義情報のうちの４行目の測定データ定義情報が作成される。
【００９０】
一方で、ステップＳ３０２で当該メンバのデータ型が構造体型又は共用体型のいずれかであると判定された場合、ＭＡＰ解析部２０３は、再帰的に、図１１の処理（構造体メンバ又は共用体メンバの測定データ定義情報の作成処理）を実行して、測定データ定義情報を作成する（ステップＳ３０４）。例えば、図９のステップＳ２０１で抽出された変数の変数名が「StartTime」で、かつ、上記のステップＳ３０１で抽出されたメンバのメンバ名が「time」である場合、メンバ名「time」のデータ型「T_TIME」は構造体型である。したがって、この場合、再帰的に、構造体メンバ又は共用体メンバの測定データ定義情報の作成処理が実行される。
【００９１】
これにより、例えば、図９のステップＳ２０１で抽出された変数の変数名が「StartTime」で、かつ、上記のステップＳ３０１で抽出されたメンバのメンバ名が「time」である場合、図１０に示す測定データ定義情報のうちの５〜７行目の測定データ定義情報が作成される。
【００９２】
５行目の測定データ定義情報では、変数名「StartTime」とメンバ名「time」とメンバ名「hour」とを「.」で連結した文字列「StartTime.time.hour」がデータ名となっており、当該変数の説明「運転開始時刻」と１つ目のメンバの説明「時刻」と２つ目のメンバの説明「時」とを「.」で連結した文字列「運転開始時刻.時刻.時」が説明となっている。
【００９３】
同様に、６行目の測定データ定義情報では、変数名「StartTime」とメンバ名「time」とメンバ名「min」とを「.」で連結した文字列「StartTime.time.min」がデータ名となっており、当該変数の説明「運転開始時刻」と１つ目のメンバの説明「時刻」と２つ目のメンバの説明「分」とを「.」で連結した文字列「運転開始時刻.時刻.分」が説明となっている。また、同様に、７行目の測定データ定義情報では、変数名「StartTime」とメンバ名「time」とメンバ名「sec」とを「.」で連結した文字列「StartTime.time.sec」がデータ名となっており、当該変数の説明「運転開始時刻」と１つ目のメンバの説明「時刻」と２つ目のメンバの説明「秒」とを「.」で連結した文字列「運転開始時刻.時刻.秒」が説明となっている。
【００９４】
このように、構造体メンバ又は共用体メンバのデータ型が構造体型又は共用体型である場合（つまり、構造体や共用体が入れ子になっている場合）には、図１１の処理（構造体メンバ又は共用体メンバの測定データ定義情報の作成処理）が再帰的に実行される。これにより、データ型が構造体型及び共用体型でない全ての構造体メンバ及び共用体メンバに対して、これら各メンバの測定データ定義情報が作成される。
【００９５】
ステップＳ３０３又はステップＳ３０４に続いて、ＭＡＰ解析部２０３は、該当の構造体又は共用体から未抽出のメンバがあるか否かを判定する（ステップＳ３０５）。すなわち、ＭＡＰ解析部２０３は、上記のステップＳ３０１における構造体定義情報又は共用体定義情報の解析の結果、未抽出のメンバがあるか否かを判定する。
【００９６】
そして、ステップＳ３０５で未抽出のメンバがあると判定された場合、ＭＡＰ解析部２０３は、上記のステップＳ３０１に戻る。これにより、該当の構造体又は共用体の全てのメンバに対して、上記のステップＳ３０２〜ステップＳ３０４が繰り返し実行される。一方で、ステップＳ３０５で未抽出のメンバがないと判定された場合、ＭＡＰ解析部２０３は、構造体メンバ又は共用体メンバの測定データ定義情報の作成処理を終了する。なお、構造体メンバ又は共用体メンバの測定データ定義情報の作成処理を終了した場合は、この処理の呼び出し元（図５の測定データ定義情報の作成処理、又は上記のステップＳ３０４で再帰的に呼び出された場合は呼び出し元となる図１１の構造体メンバ又は共用体メンバの測定データ定義情報の作成処理）に処理が戻る。以降では、図５の測定データ定義情報の作成処理に処理が戻ったものとして説明を続ける。
【００９７】
図５のステップＳ１０３に続いて、ファイル作成部２０４は、測定データ定義情報と、Ａ２Ｌテンプレートとを入力として、Ａ２Ｌファイルを作成する（ステップＳ１０４）。すなわち、ファイル作成部２０４は、測定データ定義情報から測定データ定義を作成した上で、Ａ２Ｌテンプレートの測定データ定義部分の雛形を、当該測定データ定義で更新することで、Ａ２Ｌファイルを作成する。
【００９８】
ここで、一例として、図１０の測定データ定義情報のうちの１行目の測定データ定義情報と２行目の測定データ定義情報とから作成された測定データ定義を図１２に示す。図１２は、測定データ定義の一例を示す図である。
【００９９】
図１２に示すように、測定データ定義は、測定データ定義情報に含まれる各情報（データ名、説明、データ型、変換方式、分解能、精度、最小リミット値、最大リミット値、及びアドレス）を、図４に示す測定データ定義の記述形式に従って記述したものである。
【０１００】
＜まとめ＞
以上のように、本実施形態に係る試験システム１では、測定対象データを表す変数としてデータ型が構造体型や共用体型の変数が含まれる場合であっても、ＣソースコードとＣヘッダファイルとＭＡＰファイルとから、Ａ２Ｌファイルを容易かつ短時間に作成することができる。また、例えば、Ａ２Ｌファイルを手動で編集することがないため、誤った定義が行われてしまう事態も防止することができる。
【０１０１】
なお、上記のステップＳ１０４で作成されたＡ２Ｌファイルは測定／適合ツール３００に入力される。これにより、試験装置１０のユーザは、測定／適合ツール３００を用いて、車載ＥＣＵ２０のデータ測定及びキャリブレーション試験を行うことができる。
【０１０２】
なお、本実施形態では、上記のステップＳ１０３で作成された測定データ定義情報を用いてＡ２Ｌファイルを作成したが、これに限られず、例えば、上記のステップＳ１０３で作成された測定データ定義情報をユーザが編集したものを用いてＡ２Ｌファイルが作成されてもよい。例えば、上記のステップＳ１０３で作成された測定データ定義情報を編集可能なようにユーザに提示した上で、ユーザにより編集された測定データ定義情報を用いて、上記のステップＳ１０４でＡ２Ｌファイルが作成されてもよい。また、例えば、説明、変換方式、分解能、精度、最小リミット値、及び最大リミット値のうちの少なくとも１つの情報にデフォルト値が設定されている場合に、このデフォルト値が設定されている情報を編集可能なようにユーザに提示してもよい。これにより、例えば、個別的な用途に応じてＡ２Ｌファイルを作成する等、より柔軟にＡ２Ｌファイルを作成することができる。
【０１０３】
本発明は、具体的に開示された上記の実施形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
【符号の説明】
【０１０４】
１        試験システム
１０      試験装置
２０      車載ＥＣＵ
１００    ビルドツール
２００    ファイル作成プログラム
２０１    構造体解析部
２０２    データ型解析部
２０３    ＭＡＰ解析部
２０４    ファイル作成部
３００    測定／適合ツール
４００    記憶部
５００    制御プログラム
【図１】
2020134982.tif 000003
【図２】
2020134982.tif 000004
【図３】
2020134982.tif 000005
【図４】
2020134982.tif 000006
【図５】
2020134982.tif 000007
【図６】
2020134982.tif 000008
【図７】
2020134982.tif 000009
【図８】
2020134982.tif 000010
【図９】
2020134982.tif 000011
【図１０】
2020134982.tif 000012
【図１１】
2020134982.tif 000013
【図１２】
2020134982.tif 000014