仕組み
1つのステーションで複数のアプリケーションを同時に実行できます。
アプリは、1つ以上の構成要素( IOC : Input Output Component )を持ちます。IOC はそれぞれ、デバイスからセンサーの値を取得する機能であったり、SNS へメッセージを通知する機能であったり、ビデオ映像から顔を検出する機能であったりします。各 IOC は、最新値と履歴データを持ち、IOC 毎にデータベースに保存されます。
各 IOC は、Remotte プラットフォームが定義したカテゴリーによって1つの IOC タイプに分類されます。例えば、1つの数値センス、テキスト入出力、標準ビデオカメラなどがあります。IOC は Python 言語によって記述されたプログラム( Python で「パッケージ」と呼ばれる単位のプログラム)で、「 __init__.py 」という決められた名前のファイルと、その他1つ以上の任意のファイルから成ります。
Remotte プラットフォームの IOC 管理機能は、Python プログラム内のクラスを生成し、クラス内の関数を呼び出したり、また Python プログラムはプラットフォームの API を呼び出すことで、IOC の最新値を通知したりします。例えば、プラットフォーム側が IOC 側を呼び出す主な関数には、
sense() | センス処理の要求 |
control() | 制御値の通知 |
share_changed() | 共有変数の更新 |
などがあり、逆に IOC 側がプラットフォーム側を呼び出す関数には、
set_value() | センス処理の要求 |
start_recording_source() | 記録を開始 |
sound_on_station() | 音声の再生 |
などがあります。
IOC 間の情報のやり取りは、最新値を共有する方法で行います。例えばデバイスからセンサーデータを取得する IOC-1 が、統計処理を行う IOC-2 に最新のデータを渡す場合、管理ツール上で IOC-1 の共有設定を有効にすれば、IOC-1 で set_value() 関数を呼び出す度に、そのデータは IOC-2 に対して share_changed() 関数を呼び出すことによって伝えられます。
アプリは通常1つ以上の利用ページを持ちます(画面を必要としないアプリの場合は無くてもかまいません)。
例えば IOC-1 で set_value() された最新値は、履歴データとして保存され、また、利用画面に通知され、表示されます。同様に、履歴データも利用画面に表示されます。利用画面を操作することで発生したデータは、IOC-2 の control() 関数を呼び出して通知されます。
利用ページ上の最新値および履歴データは、表示部品( HMI : Human Machine Interface )を選択することで表現形式を定義します。HMI は大別すると3つに分類されます。
- 最新値の表示用
- 最新値の操作・設定用
- 履歴データの表示用
ビデオや音声といったメディアや履歴データを表示するための HMI などは、利用ページ上でダブルクリックすることで詳細画面に遷移し、過去のデータをより詳しく表示できます。
アプリを新規作成する際の基本的な流れは、以下の様になります。