3.2. measurementプロジェクト

measurementプロジェクトによる計測について説明します。

measurementプロジェクトとは

measurementプロジェクトは、計測での使用に特化したDocker Composeプロジェクトです。

計測では、外部デバイスとデータを送受信するアプリケーション(デバイスコネクター)を利用します。 アプリケーションは用途ごとに開発し、設定値(デバイスパスなど)を与えて使用することが一般的です。 このような利用方法をDocker Composeで実現するためには、用途ごとに使用するDockerイメージを選択する仕組みや、設定値をコンテナ内のアプリケーションに伝達する仕組みが必要です。

Terminal System 2のmeasurementプロジェクトは、以下の要素で上記の仕組みを実現します。

デバイスコネクターサービス

特定の用途に合わせたデバイスコネクターの定義で、使用するコンテナイメージや、環境変数、設定項目としての置換変数( substitution_variables )などを含みます。 実体は、Composeファイルのサービス定義( services )に相当する部分を切り出したyamlファイルです。

プリインストールされるデバイスコネクタービスファイルは /etc/core/docker-compose/measurement/services に、 カスタム開発により追加されるデバイスコネクターサービスファイルは /var/lib/core/docker-compose/measurement/services にインストールされます。

デバイスコネクター設定

Core APIで作成する設定で、使用するデバイスコネクターサービスや、置換変数( service_substitutions ) を設定します。 複数のデバイスコネクター設定を作成することができます。

Core APIによるオーバーライドファイルの生成

Core APIでのコミット操作 により、デバイスコネクター設定およびデバイスコネクターサービスの内容から、measurementプロジェクトのオーバーライドファイル(docker-compose.override.yml)を生成します。

作成したオーバーライドファイルを使用して計測を行うことで、用途ごとのDockerイメージの選択や、コンテナ内のアプリケーションへの設定値の伝達を実現します。

計測の仕組み

measurementプロジェクトにより計測を行う仕組みを説明します。 例として、GPSとCAN-USB Interfaceを利用して計測する場合の手順を説明します。

  1. デバイスコネクターサービスを準備します。GPSやCAN-USB Interfaceなど、プリインストールのデバイスコネクターサービスを利用する場合は、本手順はスキップ可能です。

    設定項目は置換変数 substitution_variables として定義します。デバイスコネクターサービスファイル内で ${KEY} のフォーマットで記載した部分が、対応する置換変数の設定値で置換されます。

  2. Core APIで デバイスコネクター設定を追加 します。 利用するデバイスコネクターサービス( service_id で指定)や、置換変数の設定値(service_substitutions で指定)を入力します。

  3. Core APIで デバイスコネクター設定をコミット します。 コミット操作により、デバイスコネクター設定およびデバイスコネクターサービスの内容から、measurementプロジェクトのオーバーライドファイルを生成します。

  4. Core APIでmeasurement プロジェクトを起動 することで計測を開始し、生成されたオーバーライドファイルを利用して計測を行います。

../../_images/feature_measurement_project.png

図 12 measurementプロジェクトを使った計測開始までの流れ

Terminal System 2のmeasurementプロジェクトは、上記の仕組みで、用途ごとのDockerイメージの選択や、コンテナ内のアプリケーションへの設定値の伝達を実現します。