仕様

アンドロイド側アプリケーション(PGSMonitor)の概要

概要

PGSMonitorは Android 端末(スマートフォンやタブレット)で動作するアプリケーションです。
SMART Solution ステーション(サーバ)の専用クライアントソフトです。
組込み機器の画面表示やインプットバイスの役割を果たすことが主目的です。
ステーションに接続し、表示に必要なデータを受信してダイアログを表示します。(表示でバイスの役割)
ダイアログはいろいろな種類のオブジェクトが配置されたもので、その中で入力が可能なオブジェクトの 入力情報をステーションに通知します。(入力でバイスの役割)
また、ダイアログ表示後も、専用コマンドにより、内容・状態の変更、オブジェクトの追加や削除などを行うことが可能です。

通信プロトコルと接続タイプ

通信プロトコルは SMART Solution 独自プロトコルです。
JSONフォーマットを使用したテキスト電文です。

エリア説明
LAN内TCP/IP接続(独自プロトコル)
遠距離インターネット(アクセス制限されているネットワーク)経由での遠隔操作用に独自プロトコルをHTTPでラップする機能あり
近距離BlueTooth接続(独自プロトコル)

機能

機能説明
表示 オブジェクトのフェース(色や形)、文字、グラフィック(Draw系ベクトル描画)、イメージデータなど
入力 タッチパネルの操作(タッチ、スライド、フリック、タップなど)、GPS、傾きセンサなど
音声、音楽、効果音などの音データの再生
ファイルアクセス専用フォルダ領域、外部ストレージ領域へのアクセス
データベース 端末内部に用意された専用データベースファイルへの読み書きアクセス

オブジェクト

オブジェクトは必要に応じて(ライブラリ購入ユーザからの要望に応じて)順次追加致します、現在19個のオブジェクトが存在します。
タイプは入力を行うもの、出力(表示)を行うもの、配置を行うものなどがあり、配置を行うものを「グループオブジェクト」と呼び、 それ以外のものを「機能オブジェクト」と呼びます。

機能オブジェクト
ボタン、ラジオボタン、トグルボタン、チェックボックス、エディットボックス、テキスト、ピクチャー プログレスバー、スライドバー、メーター、グリッド、プルダウン


グループオブジェクト
リニア、フレーム、ページ、スクロール、テーブル(行/列)、ラジオボタン専用

コマンド

コマンド応答説明
KEEPALIVE KEEPALIVE 生存確認コマンド
DIALOG CHANGE or HELLO画面表示(ダイアログ)を行います。
OPEN ※GETFILE コマンドファイル(JSON)を読み込みます
TIMER なし 設定時間経過後、予め登録されたコマンドを端末宛(自分宛)に発行します
UPDATE なし 指定されたオブジェクトの状態を更新します。
NOTIFY-CONDITION なし 予め登録されたコマンド CONDIION を端末宛(自分宛)に発行します
NOTIFY-UPDATE なし 予め登録されたコマンド UPDATE を端末宛(自分宛)に発行します
CHANGE CHANGE or HELLO状態遷移によろ表示ダイアログが変わった際の通知コマンドです
HELLO なし 起動通知コマンド。アプリケーション起動後、最初の接続時に発行されます
SOUND なし 音源ファイルを読み込み再生します
CLOSE CHANGE 現在表示中のダイアログを閉じます
ERROR なし エラーが発生した最に発行されます
DELETE なし 指定されたオブジェクトを削除します
SENDCOMMAND-GETFILEなし 予め登録されたコマンド ※GETFILE を端末宛(自分宛)に発行します
SENDCOMMAND-HELLO なし 予め登録されたコマンド HELLO を端末宛(自分宛)に発行します
PUTFILE なし ステーションが端末側にファイルを送信するコマンドです

※GETFILEは応答としてではなく、指定されたファイルが無い場合に自動で発行されるコマンドです。
※GETFILEは端末側には無いコマンドです。端末が発行し、ステーションで処理されるコマンドです。

仕様

通信方式

TCP/IP接続です。
ポートはデフォルトでは 5000 となっていますが、任意に変更可能です。
アンドロイド端末をクライアント、リソースエディタが自動生成したアプリケーションをサーバとし動作します。

ソケットとセッション

ネットワークの接続が完了すると ソケット が生成されます。
ソケット生成後指定時間内に認証を行います。(デフォルトでは10秒以内)
認証がない状態で指定時間を過ぎると、ソケットはクローズされます。
認証が行われるまでは、認証コマンド以外のコマンドは無視されます。
認証が成立すると、セッションが生成されます。
セッションは1度生成されると、ソケットがクローズしても残ります。
セッションの有効期限は最後の通信からの指定時間経過後です。デフォルトでは1時間です。
端末は、ダイアログのデータ(リソース)にアクセスする時、セッションを必要とし、セッションが残っている間は、 ダイアログのリソース情報も確保されていますので、ダイアログへのアクセスを再開することが出来ます。

ダイアログとリソース

画面はオブジェクトを配置するデザイン情報と、それぞれのオブジェクトの状態やテキスト、数値などのデータ情報とに 分かれます。
本システムでは、デザイン情報を「ダイアログ」、データ情報を「リソース」と呼びます。
ダイアログとリソースは対で使用しますが、ダイアログ1つに対して、リソース1つ、という使い方と ダイアログ1つに対して、リソース複数という使い方があります。

共有型 (ダイアログ1つに対してリソース1つ)

このダイアログに接続している(このダイアログを見ている)ユーザは全員同じ状態を見たい場合。 つまり、誰か一人がパラメータを変更した場合、他のユーザの画面も一斉に変わって欲しい場合。 個の様なダイアログを共有型と呼び、 TemplateType で Shared を設定します。

個別型 (ダイアログ1つに対してリソース複数)

このダイアログに接続している(このダイアログを見ている)ユーザは全員違う状態(個別の状態)にしたい場合。 つまり、誰か一人がパラメータを変更しても他のユーザの画面は変化してほしくない場合。 個の様なダイアログを個別型と呼び、 TemplateType で Unique を設定します。

オブジェクト

グループオブジェクト と 機能オブジェクト

オブジェクトは大きく分けて、「グループオブジェクト」と「機能オブジェクト」の2つのタイプがあります。
「機能オブジェクト」は外観があり、画像ファイルを指定することで自由にデザインをカスタムできます。
「グループオブジェクト」は外観がなく、複数のオブジェクトをまとめ、配置する役割があります。
グループオブジェクトの中には別のグループオブジェクトを含めることができ、いくつものグループを使い分けることで ダイアログのデザイン(配置)が構成されます。

機能オブジェクトのデザイン

機能オブジェクトに使用する画像ファイルには「NinePatch」というフォーマットの画像が使用可能です。
このフォーマットは画像を井の字のように9つのパーツに分解し、パーツごとに拡大方法を変化させるもので、 ボタンやフレーム画像を拡大表示する際にデザインが崩れないようにする事ができます。
オブジェクトの外観イメージファイルに「NinePatch」を使用することで、表示される時のサイズが複数存在する場合も (アンドロイド端末の機種がバラバラの場合も)、1つのファイルで対応することが可能になります。

デザイン(配置)

ダイアログのデザインは1つのグループオブジェクトから始まります。
いくつものグループを組み合わせ、機能オブジェクトを配置していきます。
グループオブジェクトの機能を理解し、どう組み合わせるかが鍵となります。

FRAME フレームグループ

複数のオブジェクトを重ねて表示する場合に使用します。
例えば、ダイアログの背景に画像を使用する。という場合に使用できます。

LINEAR リニアグループ

最も使用頻度の高いオブジェクトです。水平方向、または、垂直方向に、一列にオブジェクトを配置します。

RADIO ラジオグループ

基本的な配置方法はリニアグループと同じですが、ラジオボタンのレイアウト専用のオブジェクトです。
このグループに配置されたラジオ オブジェクトは属性がONのものが1つだけになるようにコントロールされます。
リニアグループ同様に、ラジオ オブジェクト以外のオブジェクトも含めることができます。

SCROLL スクロールグループ

配置した情報が画面の範囲を超えてしまう場合に使用します。
画面に収まらない部分をスクロールして表示します。

PAGE ページグループ

フリックやスライド ジェスチャを使用して、ページを切り替えることができます。

TABLE テーブルグループ と TROW テーブル行グループ

テーブルグループは複数の テーブル行グループ を保持し管理します。 テーブル行グループは基本的な配置方法はリニアグループと同じでが、テーブルグループに管理された行内の各オブジェクトの 幅が列毎で同じになるようにコントロールされます。

RELATIVE 相対グループ

任意に指定した、グループ内に含まれる他のオブジェクトのポジションを利用して配置することができます。


PlusG SMART Solution リファレンスマニュアル Ver 1.0.0