ジェンウェア エア スマートデバイス : Smart Phone, Tablet, PC GUI : Graphical User Interface 移植開発不要! 組込機器GUIのスマートデバイス連動パッケージ スマートデバイス連動GUI開発環境

移植開発不要! 組込機器GUIのスマートデバイス連動パッケージ · 2019. 8. 22. · 3 genware airの動作原理 他のスマートデバイス対応GUIとの比較

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

  • ジェンウェア エア

    スマートデバイス : Smart Phone, Tablet, PC

    GUI : Graphical User Interface

    移植開発不要!

    組込機器GUIのスマートデバイス連動パッケージ

    スマートデバイス連動GUI開発環境

  • 2

    スマートデバイス連動GUI開発環境 スマートデバイスと連動した組込機器のGUI開発を強力に支援

    ソフトウェア構成

    導入メリット

    ① スマートデバイス用ソフト開発が不要 スマートデバイスはH/WやOSの変更期間が短く、各社の製品に対応するためには多大な開発工数やメンテナンス工数が必要

    となりますが、GENWARE AIRを導入することによりスマートデバイス側のソフト開発は不要。組込機器側のソフ ト開発だけとな

    り、開発工数、メンテナンス工数を大幅に削減することができます。

    ② お客様のGUIソフト資産の活用が簡単 GUI開発環境「GENWARE(ジェンウェア)」で開発されたソフト資産はそのまま流用できます。

    (お客様のGUIソフト資産を活用してスマートデバイスと連動させるための作業項目)

    ・GENWARE AIR をターゲット機対応に移植開発

    ・お客様が購入済みのGENWAREに含まれるGUIライブラリ(GENIFA)をGENWARE AIR付属のUpdate KitにてAIR対応に修正

    ・作成済みのGUIソースプログラムにGENWARE AIR用のプログラムを追記

    ・GUIアプリを再生成 (リビルド)し、ターゲット機に組み込む

    ・専用ソフト(GENWARE AIR Client)をスマートデバイスにインストール(ILCのWebサイトからダウンロード)

    ・ターゲット機とスマートデバイスをつなぐ(Wi-Fi/Ethernet等)

    ・ターゲット機で動作していたGUIがスマートデバイス上で表示され、スマートデバイスを操作(タッチ)することでターゲット機

    上での操作と同じ処理が実行できます。

    ③ 組込機器のコスト削減 LCDやタッチパネル等をスマートデバイスで置き換えることができます。

    GENWARE AIRは、別売の組込GUI開発環境 GENWARE3 もしくは GENWARE4 と組み合わせて使用します。

    既に GENWARE3 もしくは 4で開発済みのGUIに GENWARE AIRの機能を追加するためには、GENWARE AIR Coreに含まれる

    GENIFA Update Kitを用いてGENIFAのソースをUpdateする必要があります。

    お客様が安心して採用できる「GENWARE AIR」5つの特長 ①スマートデバイスを組込機器のGUI端末として使用可能

    ・組込機器とスマートデバイスをWi-Fi、Bluetoothなどでつなぎ、組込機器のGUIをスマートデバイス上で実現

    ②スマートデバイスのソフト開発は不要 ・ILCが提供する専用ソフト(GENWARE AIR Client)をスマートデバイスにダウンロードするだけ

    ・専用ソフトは最新のWindows/Android/iOSに対応(継続的にアップデートされます)

    ③軽量かつセキュアな通信を実現 ・CPU能力の低い組込機器や通信速度の遅いシステムでも導入可能

    ・変化したGUI情報 (表示データ、プロパティ情報)のみをスマートデバイスに転送

    ・組込機器とスマートデバイス間は暗号化通信をサポートし、セキュアな通信を実現

    ・組込機器とスマートデバイス間をインターネット経由でつなぎ、遠隔地からGUI画面の表示および操作が可能

    ④純国産の製品ならではのきめ細やかな技術サポートやカスタム開発支援サービスを提供 ・スマートデバイス活用アプリの受託開発サービス

    ・テクニカルセンターやお客様対応SEによる迅速かつ親切な技術サポート

    ⑤組込機器のGUI開発工数を従来の1/10以下に削減 ・GENWARE AIRは25年以上の販売実績を誇る組込GUI開発環境「GENWARE」シリーズの特長を継承

  • 3

    GENWARE AIRの動作原理

    他のスマートデバイス対応GUIとの比較

    組込機器のGUIとしてスマートデバイスを活用する場合の実現方式、開発方式は通常では下記3方式があります。

    GENWARE AIRの実現方式、開発方式は下記のとおりです。

    項目 リモートデスクトップ方式 Webサーバ搭載方式 組込機器、スマートデバイスアプリ開発方式 ④GENWARE AIR開発方式

    組込機器に必要な性能(CPU性能やメモリサイズ等)

    ×: Windows/Linux搭載の高性能機が必要

    △: 要求性能的には ① > ② >③・④

    〇: 特に制約なし 〇: 特に制約なし

    組込機器とスマートデバイス間の通信容量 ×:大 △: 通信容量的には

    ① > ② >③・④ 〇: ①②と比べると通信容量は小さい

    〇: ①②と比べると通信容量は小さい

    スマートデバイス側のユーザアプリ開発 〇: 開発不要 ×: HTML5対応ユーザア

    プリの開発が必要 ×: ユーザアプリの開発が必要

    〇: 開発不要

    スマートデバイスのメーカ毎の差異,H/WやOSのアップデートに対応したユーザアプリの検証や修正作業

    〇: 不要 ×: 継続的なユーザアプリ

    対応が必要 ×: 継続的なユーザアプリ対応が必要

    〇: 不要 (GENWARE AIR Client最新版のダウンロードのみ)

    スマートデバイスでの表示更新速度や操作応答性 △: 性能的には問題ない

    が、高性能な機器が必要となる

    △: ユーザアプリの最適化開発が必要

    △: ユーザアプリの最適化開発が必要

    〇: GENWARE AIRにてが最適化された速度や応答性を実現

    (①-④の方式に対する比較表)

    組込機器上のGUIアプリ

    GUI Library(GENIFA)

    GENWARE AIR CoreLibrary

    アプリ毎のGUI Resource(画面データ、

    文字列、画像等)

    リモートGUI実行モジュール

    (GENWARE AIR Client)

    SEP通信

    GUI Resourceの転送

    スマートデバイスからのイベント受信(タッチ入力等)

    GUIエディタ「GENSKETCH」でGUIアプリを開発

    ① 一台のスマートデバイスで複数機器のGUI同時表示可能② 複数台のスマートデバイスで同一機器のGUIが可能

    (操作の排他処理にも対応)

    組込機器側(サーバ) スマートデバイス側(クライアント)

    組込機器からの画面表示更新イベント受信

    (Resourceデータ転送タイミング)・スマートデバイス装置接続時に

    全画面データを一括転送・画面切り替え時に必要なデータを

    部分転送・データキャッシュにも対応

    (転送データの保持と更新)

    ・SEP通信はWi-Fi/Ethernet/Bluetooth/USB経由通信をサポート・SEP通信はセキュアな通信(暗号化通信)に対応

    LCD

    GENWARE AIR

    GENWARE3/4

    ILC商品

  • 4

    (導入手順)

    GENWARE AIRの導入手順

    (導入準備) GENWARE AIR購入後からGUIアプリ開発開始までの準備

    (プログラム開発) 導入準備完了後、GUIアプリの開発、デバッグまでの手順

    (プログラム運用) GUIアプリ開発後の運用手順

  • 5

    クライアント実行モジュール(GENWARE AIR Client)

    スマートデバイス上でGUIを動作させるための実行モジュール(GENWARE AIR Client)は、Windows PC/Android端末/iOS端末用に移

    植済みです(ユーザの環境に合わせて移植も可能です)。

    別売の組込GUI開発環境 GENWARE3/4のGUI開発ツール(GENSKETCH)で開発したGUIアプリが組み込まれた装置/機器とスマート

    デバイスをつなげば、すぐに開発したGUIを動作させることができます。

    ①画面連携機能

    GENWARE AIRが搭載された組込機器側には、スマートデバイス上で動作するGENWARE AIR Clientに対してGUI画面の情報を転送

    するための機能があります。GENWARE AIR Clientは情報を取得すると、表示を更新します。

    ②クライアント操作機能

    GENWARE AIR Clientでの操作内容を基に、組込機器側のGUIアプリケーションの状態を更新する機能です。GUIアプリケーション側

    は、取得した情報に従い、動作します。

    GENWARE AIRには、GENWARE AIR Clientと組込機器のGUIアプリケーションを連携させるための以下の機能があります。

    (ジェンウェア エア クライアント)

    (機能概要)

    GUIアプリケーション

    送信

    GENWARE AIR Client

    組込機器 スマートデバイス

    ・画面構成情報

    ・リソースデータ

    ・画面更新通知

    ・色環境情報

    受信

    ・クライアント操作情報

    ・イベント変換・送信

    タッチパネル操作・キー操作を受信。

    GENWAREイベント情報に変換し、

    GUIアプリケーションに送信

  • 6

    ⑤操作ログ機能

    複数の機器(組込機器およびスマートデバイス)からGUIアプリケーションの操作を行っている際に、操作ミスなどが発生した場合、原

    因の解析が困難になる可能性があるため、GENWARE AIRには全ユーザの操作ログを保存することができます。

    (機能概要)

    ④多重操作排他機能

    複数のGENWARE AIR Clientから、1台の組込機器のGUIアプリケーションに対して同時に操作を行うといった誤動作を防ぐために、同

    時操作の排他制御を行います。

    GUIアプリケーションのデータ更新が行われる場合、表示データ更新完了までの期間を操作禁止にします。

    また、画面切換直後は、一定時間(ユーザが指定)、操作を禁止します。

    ③操作管理機能

    組込機器側のGUIアプリケーションに複数のGENWARE AIR Clientが接続し、同時に操作が行われることにより発生する操作ミス・事

    故を防ぐために、ユーザ操作を許可/禁止する機能があります。

    (組込機器側)

    ・操作権取得/解放機能 ・操作権タイムアウト機能 ・操作権管理機能(操作権を持つ機器を管理)

    (GENWARE AIR Client側)

    ・操作権取得/解放機能 ・操作権設定機能 ・操作権有無選択機能

    ボタンをタッチ ボタンの表示更新 GENWARE AIR Client上

    の表示に反映

    表示完了

    通知

    この期間、操作禁止

    この期間、操作禁止

    画面切換ボタンを

    タッチ 画面切換 GENWARE AIR Client上

    の表示に反映

    表示完了

    通知

    画面A 画面B

    画面B

    画面B

    操作ログ

  • 7

    ⑥接続先管理機能

    1台のスマートデバイスから複数の組込機器に接続する場合のため、GENWARE AIR Clientには接続先を管理/選択する機能があり

    ます。

    ・通信先登録 ・通信先選択 ・通信先削除 ・通信先データ管理 ・画面プロパティ取得 ・リソース取得

    ⑦リモート操作機能

    組込機器のGUIアプリケーションに対して、GENWARE AIR Clientから操作を行うための機能です。

    ・リモート操作を行うためには、「操作権取得」を行い、接続先に対して操作権の取得要求を行います。

    ・操作権の取得に成功した場合は、GENWARE AIR Clientに表示された画面の操作が可能になります。

    ・リモート操作を終了する場合は、「操作権解放」を行い、接続先に対して操作権の解放要求を行います。

    ・操作権の解放を行と、GENWARE AIR Clientに表示された画面の操作ができなくなります。

    ⑨代替フォント表示機能

    組込機器に搭載されたフォントをスマートデバイスが持たない場合、GENWARE AIR Clientは代替フォントで表示します。

    ・代替フォントおよびサイズを指定できます。

    ⑩画面拡大・縮小機能

    スマートデバイスは機器ごとに解像度が異なるため、機器の解像度に合わせて画面を拡大・縮小表示することができます。

    ⑪カスタムコントロールへの対応

    GENWARE AIRが標準で対応していないコントロール(GUI部品)を、ユーザが作成する「カスタムコントロール」という機能があります。

    GENWARE AIR Clientのソースコードにカスタムコントロールのソースコードを組み込むことで、GENWARE AIR Client上でもカスタムコ

    ントロールを動作させることができます。(カスタムコントロールを組み込むには、ポーティングサポートパッケージが必要です。)

    (機能概要)

    スマートデバイス側の

    解像度に合わせ

    画面を拡大・縮小

    ⑧VRAM送信・取得機能

    組込機器側のVRAMデータをGENWARE AIR Clientに送信する機能です。組込機器側の画面表示(GUI)にスマートデバイス側で対

    応していない描画機能が使われていた場合でも、スマートデバイス上に組込機器側と同じ表示が可能になります。

  • 8

    (仕様一覧/機能一覧)

    項目 仕様

    動作環境 OS:Windows 7 Professional/8.1 Pro /10 Pro、Android 5.1, 6.0, 7.0, 7.1

    開発言語 C言語

    通信規格 Wi-Fi、Ethernet(TCP,UDP)

    セキュリティプロトコル 独自セキュリティプロトコル

    暗号化方式 AES-128、AES-192、AES-256、Blowfish、独自暗号

    最大接続可能数 GENWARE AIR Clientと同時に最大4台接続可能

    <GENWARE AIR Core仕様一覧>

    <GENWARE AIR Client仕様一覧>

    項目 仕様

    動作環境 OS:Windows 7 Professional/8.1 Pro /10 Pro、Android 5.1, 6.0, 7.0, 7.1

    開発言語 C言語

    通信規格 Wi-Fi、Ethernet(TCP,UDP)

    セキュリティプロトコル 独自セキュリティプロトコル

    暗号化方式 AES-128、AES-192、AES-256、Blowfish、独自暗号

    GENWARE AIR Client最大接続可能数 最大4台

    GENWARE3の対応バージョン 組込みGUI IoTソリューション トライアルキットに付属のGENWARE3に対応

    GENWARE3 対応機能 ・コントロール:ボタン/ピクチャなどの基本部品18部品、図形7部品

    ・リソース:イメージ、文字列、ロケール、塗りつぶしパターン、立体枠、パレット

    ・色空間:RGB、YUVフルカラー、インデックスカラー

    ・フォント:Notoフォント

    ・解像度:4K

    最大接続可能数 GENWARE AIR Coreと同時に最大4台接続可能

    項目 仕様

    画面連携機能 GENWARE AIRが搭載された組込機器のGUI画面情報をGENWARE AIR Clientに転送し、表示を行います。

    クライアント操作機能 GENWARE AIR Clientでの操作内容を基に、組込機器側のGUIアプリケーションの状態を更新する機能です。GUIアプリケーション側は、取得した情報に従い、動作します。

    操作管理機能 組込機器側のGUIアプリケーションに対して接続したGENWARE AIR Clientの操作権限を管理します。 操作許可モードと、参照モードを持ちます。

    多重操作排他機能 複数のGENWARE AIR Clientから、1台の組込機器のGUIアプリケーションに対して同時に操作を行うといった誤動作を防ぐために、同時操作の排他制御を行います。

    通信接続/切断機能 GENWARE AIR Clientにてネットワーク上の接続可能なGENWARE AIRが搭載された組込機器を一覧表示し、接続先を選択できます。

    組込機器とGENWARE AIR Client間の通信切断は、GENWARE AIR Clientからの他、組込機器側からも任意のタイミングで実行できます。

    エラー通知機能 GENWARE AIRが搭載された組込機器と、GENWARE AIR Clientの間の通信に異常が発生した場合にエラー通知を行います。

    フォント表示機能 組込機器のGUIアプリケーションに組み込まれたフォントに対してGENWARE AIR Clientで代替フォントを使用してフォント表示を行います。GENWARE AIR Clientをカスタムし、任意のフォントを組み込むことも可能です。

    カスタムコントロール対応 GENWARE3/GENWARE4には、標準で対応していないコントロール(GUI部品)を、ユーザが作成する「カスタムコントロール」という機能があります。GENWARE AIR Clientのソースコードにカスタムコントロールのソースコードを組み込むことで、GENWARE AIR Client上でもカスタムコントロールを動作させることができます。

    ゲートウェイ機能 GENWARE AIR Clientで同一ネットワーク上に存在するゲートウェイの一覧を取得します。

    セキュリティ機能 機器間の通信において暗号鍵や暗号化方式を動的に変えてセキュリティを高めます。

    <GENWARE AIR Core機能一覧>

  • 9

    (1:リモートアクセス機能)

    1-1:概要 リモートアクセス機能とは、組込機器上で動作するGUIアプリケーションが持つGUIデータを、同一ネットワーク上に存在するリモートのスマート

    デバイスに転送して、スマートデバイス上の画面に装置のGUIを表示する機能及びスマートデバイスに表示されたGUIに対する操作イベントを組

    込機器に転送する機能です。以降の説明では、組込機器側をサーバと呼び、スマートデバイス側をクライアントと呼びます。

    スマートデバイス(クライアント)

    GENWARE AIR Client

    GUIデータを転送

    スマートデバイスの

    操作イベント

    組込機器(サーバ)

    GENWARE3で作成した

    GUIアプリケーション

    1-1-1:複数クライアントからのリモートアクセス 1台のサーバに、4台のクライアントを上限としてリモートアクセスを

    実行できます。リモートアクセスを実行しているクライアント上の

    GENWARE AIR Clientに、サーバのGUIアプリケーションと同一の画

    面が表示されます。

    クライアントに表示されたGUIへの操作イベントは、サーバ経由でリ

    モートアクセスを実行しているすべてのクライアントのGUIに反映さ

    れます。

    ①操作イベントを

    転送

    ②操作イベントを受け

    GUIアプリケーションが処理実行

    ③動作結果の反映

    1-1-2:同一ネットワーク上のサーバとクライアントの起動数上限 同一ネットワーク上で同時に起動できるサーバ(GUIアプリケーション)

    およびクライアント(GENWARE AIR Client)は右表のとおりです。 アプリケーション 上限数

    サーバ(GUIアプリケーション) 4つ

    クライアント(GENWARE AIR Client) 4つ

    1-1-3:クライアントの操作権 クライアント(GENWARE AIR Client)は、接続したサーバ(GUIアプリケーション)

    をリモートで操作する事ができ、サーバ側では各クライアントの操作権を右記の

    2つのモードで管理します。

    操作権 説明

    操作モード GUIアプリケーションに対する操作が

    サーバ側に反映されます。

    参照モード GUIアプリケーションに対する操作は

    サーバ側に反映されません。

    1-2:サーバ機能仕様 1-2-1: クライアント情報取得 サーバでは自身にリモートアクセスしているクライアント情報を取得します。

    右表に、取得するクライアント情報の一覧を記載します。

    1-2-2:指定クライアントとのリモートアクセス切断 サーバはクライアントを指定してリモートアクセスを終了することができます。本操作によってクライアントへリモートアクセスが終了したこ

    とを通知します。

    1-2-3:操作権状態の設定 操作権状態の設定はサーバからクライアントに対して行います。本操作によってクライアントへ操作権状態が変更されたことを通知します。

    No クライアント情報

    1 クライアントを識別する固有のオブジェクト名

    2 クライアントのIPアドレス

    (ゲートウェイに隠蔽されていない固有値)

    3 クライアントの操作権状態

  • 10

    (1:リモートアクセス機能)

    1-3:クライアント機能仕様 1-3-1: サーバ情報取得 クライアントでは、同一ネットワーク上に存在しリモートアクセスを実行できる

    サーバ情報を取得します。右表に、取得するサーバ情報の一覧を記載します。

    1-3-2:操作権状態の変更要求 クライアントはサーバへ操作権状態の変更を要求することができます。

    1-3-3:指定サーバとのリモートアクセス開始 クライアントは指定したサーバにリモートアクセスの開始を要求することができます。サーバはリモートアクセスの要求を受信したら、要求元の

    クライアントへGUIデータを送信します。

    1-3-4:指定サーバとのリモートアクセス終了 クライアントはリモートアクセスを実行しているサーバへのアクセスを終了することができます。本操作を行うと、クライアントは同一もしくは別

    のサーバにリモートアクセスを開始することができます。

    1-3-5:リモートアクセスの接続確認 サーバとのリモートアクセス開始後、サーバから一定時間GUIデータが送信されないと、サーバへリモートアクセスの接続確認を行います。

    通信に異常がなければリモートアクセスを継続します。接続確認で通信の異常を検知すると、リモートアクセスを終了します。

    1-4:GENWARE対応機能 リモートアクセス機能が対応するGENWAREの機能について記載します。 1-4-1: GUIライブラリ(GENIFA)関数 GENIFA3の関数のうち、リモートアクセス機能が対応する関数群を下表に示します。サーバ側のGUIアプリケーションで非対応の関数を使用し ていた場合、クライアント側のGENWARE AIR Clientの表示には反映されませんので、非対応の関数は使用しないでください。

    1-4-2: 操作 リモートアクセス機能におけるクライアントからサーバに通知する操作(メッセージID)は下表のとおりです。

    No サーバ情報

    1 サーバを識別する固有のオブジェクト名

    関数群 対応 備考

    GDraw × -

    GResource × -

    GTask × -

    GMemory × -

    GEvent × -

    GWin ○ SetPictureDataは非対応

    RD-LIB × -

    メッセージID 対応

    WM_ACTIVATEAPP ×

    WM_PALETTECHANGED ×

    WM_CREATE ×

    WM_GETMINMAXINFO ×

    WM_DESTROY ×

    WM_CLOSE ×

    WM_KEYDOWN(ESCAPE,F12を除く) ○

    WM_KEYUP(ESCAPE,F12を除く) ○

    WM_CHAR(システムキーを除く) ○

    WM_LBUTTONDOWN ○

    WM_LBUTTONUP ○

    WM_MOUSEMOVE ○

    WM_TOUCH ○

    WM_TIMER ×

    WM_SIZE ×

    WM_HSCROLL ×

    WM_VSCROLL ×

  • 11

    (1:リモートアクセス機能)

    1-4-3: GUIリソース (リモートアクセス機能が対応するGENWAREのGUIリソース) (クライアントのGUI上に描画できるイメージリソース形式)

    (クライアントのGUI上に描画できるコントロール )

    1-4-4: GENWAREからの制約事項 GENWARE3を使用して組込機器上のGUIアプリケーションを作成する場合と比べ、GENWARE AIRでは下記の制約があります。

    ・GENWARE AIRでは、GENWARE3のアニメーション機能には対応していません。

    種別 リソース 対応

    共通リソース ロケール ○

    イメージ ○

    塗りつぶしパターン ○

    線パターン ○

    パレット ○

    ブレンドマスク ×(※1)

    ビットマップテキスト ○

    GUIデータベース ○

    タイマ ○

    SCR ロケール ○

    イメージ ○

    立体枠 ○

    GUIシナリオ ○

    画面遷移表 ○

    レイヤ △(※2) (1レイヤのみ使用可)

    イメージリソースの形式 設定

    パレットの指定 あり/なし

    形式(圧縮) 圧縮あり/なし

    透過 あり/なし

    α 値付き画像 使用する/使用しない

    種別 スクリーン/パネル 対応

    スクリーン スクリーン ○ (マルチスクリーンは

    非対応)

    パネル パネル ○

    サブパネル ○

    ウィンドウ ○

    種別 コントロール 対応

    標準コントロール 基本コントロール ○

    サブパネル表示コントロール ○

    スタティックテキスト ○

    テキストボックス ○

    拡張テキストボックス ○

    キャッシュテキスト ○

    ビットマップテキスト ○

    ピクチャ ○

    ビューフレーム ○

    プログレスバー ○

    ボタン ○

    ラベル ○

    リスト ○

    チェックボックス ○

    ラジオボタン ○

    垂直スクロールバー ○

    水平スクロールバー ○

    グリッド ○

    種別 コントロール 対応

    図形コントロール 矩形 ○

    円 ○

    直線 ○

    連続直線 ○

    多角形 ○

    扇形 ○

    円弧 ○

    カスタムコントロール - ×

    (クライアントのGUI上に描画できるスクリーン/パネル)

    (※1) アニメーション機能は非対応のため、ブレンドマスクは非対応

    (※2) 複数レイヤは非対応

  • 12

    (2:GENWARE AIR Core)

    2-1:概要 GENWARE AIR Coreとは、「1:リモートアクセス機能」で示したリモートアクセス機能をアプリケーションで実行する際に必要なモ

    ジュール群です。本章では、アプリケーションにGENWARE AIR Coreが提供するライブラリ、ヘッダファイル、ソースファイルおよび

    GENWARE AIR Coreのライブラリが提供する関数の説明を記載します。

    2-1-1: ライブラリ一覧 (GENWARE AIR Coreに含まれるWindows用のライブラリ一覧)

    ① gcomm.lib

    <フォルダ構成>

    <ヘッダファイル> <ソースファイル>

    以下に、「gcommフォルダ構成」で示したincludeフォルダ 以下に、「gcommフォルダ構成」で示したsourceフォルダ

    に含まれるヘッダファイルを示します。なお、リモートアク に含まれるソースファイルを示します。

    セス機能を利用したアプリケーションを作成する場合、

    太字箇所の「interface.h」をアプリケーションにインクル

    ードする必要があります。

    ライブラリ名 対象 説明

    gcomm.lib サーバ リモートアクセス機能を提供するライブラリ

    gcwrap.lib サーバ gcomm.libとGENIFA3を仲介するライブラリ

    gcommcustomctrl_porting.lib 共通 リモートアクセス機能でカスタムコントロールを利用するためのポーティングライブラリ

    GCommModule

    gcomm

    lib gcomm.libのライブラリ一式

    project gcomm.libのプロジェクトファイル一式

    source gcomm.libのソースファイル一式

    include gcomm.libのヘッダファイル一式

    include

    gcomm

    gcommunicator

    GCommClient.h

    GCommServer.h

    analysis.h

    callback.h

    client.h

    clientmgr.h

    defs.h

    endian.h

    error.h

    features.h

    gcomm.h

    gstring.h

    interface.h

    marshal.h

    memory.h

    recvthread.

    sendthread.h

    server.h

    servermgr.h

    types.h

    version.h

    ※本ヘッダファイルをアプリケーションにインクルード

    source

    gcommunicator

    client

    GCommClient.h

    GCommServer.h

    gcomminterface

    gstring.h

    marshal.h

    memory.h

    recvthread.

    sendthread.h

    server.h

    servermgr.h

    types.h

    version.h

    server

    client.c

    server

    client

    recvthread.c

    servermgr.c

    server.c

    sendthread.c

    clientmgr.c

  • 13

    (2:GENWARE AIR Core)

    ② gcwrap <フォルダ構成>

    <ヘッダファイル> <ソースファイル>

    以下に、「gcwrap フォルダ構成」で示したincludeフォルダ 以下に、「gcwrap フォルダ構成」で示したsourceフォルダ

    に含まれるヘッダファイルを示します。 に含まれるソースファイルを示します。

    2-1-2: 関数一覧 (GENWARE AIR Core サーバ用関数一覧)

    関数名 概要 NO. 参照ページ

    GCommInitServer サーバのGENWARE AIR Coreに関する初期化処理を実施します。 ① 14

    GCommFinalizeServer サーバのGENWARE AIR Coreに関する終了処理を実施します。 ② 14

    GCommGetConnectedClientList 接続しているクライアントの一覧を取得します。 ③ 14

    GCommDisconnectClient 指定したクライアントとのリモートアクセスを終了します。 ④ 14

    GCommSendUpdateDrawInfo 描画更新データ(画面、コントロール)をクライアントに送信します。 ⑤ 15

    GCommSetOperationStatus 指定したクライアントに操作権状態を設定します。 ⑥ 15

    GCommGetOperationStatus 指定したクライアントの操作権の状態を取得します。 ⑦ 15

    GCommGuiResourceMutexLock GUIリソースへ排他処理を掛けます。 ⑧ 15

    GCommGuiResourceMutexUnlock GUIリソースへの排他処理を解除します。 ⑨ 16

    GCommClientAddRefreshRect クライアント画面を再描画します。 ⑩ 16

    GCommFreeGCommObjectInfoListT GCommObjectInfoListT構造体メンバの動的メモリ確保領域の解放を行います。 ⑪ 16

    GCommSetCallbackTable ユーザ通知用コールバック関数テーブルを設定します。 ⑫ 16

    include

    gwrap

    gcwinsizewrap.hpp

    gcwinwrap.hpp

    genifawrap.h

    gwinwrap.h

    gwarp.h

    interface.h

    version.h

    source

    gcwinwrap

    genifawrap

    server.h

    interface.c

    version.c

    gcwinsizewrap.cxx

    gcwinwrap.cxx

    genifawrap.c

    gwinwrap.c

    GCommModule

    gwrap

    lib gcwrapのライブラリ一式

    project gcwrapのプロジェクトファイル一式

    source gcwrapのソースファイル一式

    include gcwrapのヘッダファイル一式

  • 14

    (2:GENWARE AIR Core)

    2-1-3: 関数仕様 ①

    関数名 GCommInitServer

    説明 サーバのGENWARE AIR Coreに関する初期化を行います。本関数を実行していない場合は、サーバ・クライア

    ント間のデータ送受信は行われません。

    書式 GCommErrorT GCommInitServer(const GScreenProperty *pProperty)

    引数名 I/O 説明 入力値

    pProperty IN スクリーンのプロパティ情報 -

    戻り値 説明

    GCOMM_SUCCESS 成功

    GCOMM_ERROR_ILLEGAL_ARGUMENT 引数不正

    GCOMM_ERROR_ALLOCATION メモリ確保失敗

    GCOMM_ERROR_CONFIG_SETTING 設定ファイルの設定が不正です

    GCOMM_ERROR_ALREADY_INITIALIZED すでに初期化されています

    GCOMM_ERROR_ALREADY_FINALIZED すでにサーバが終了しています

    GCOMM_FAILURE その他失敗

    関数名 GCommFinalizeServer

    説明 サーバのGENWARE AIR Coreに関する終了処理を行います。本関数を実行すると、GUIクライアントアプリケー

    ションからの接続を受け付けなくなります。

    GCommFinalizeServerを実行した状態で、GCommInitServerを実行してもデータ送受信は行いません。アプリ

    ケーションを再起動する必要があります。

    書式 GCommErrorT GCommFinalizeServer (void)

    引数名 I/O 説明 入力値

    - - - -

    戻り値 説明

    GCOMM_SUCCESS 成功

    GCOMM_FAILURE その他失敗

    GCOMM_ERROR_NOT_INITIALIZED サーバの初期化未実施

    GCOMM_ERROR_ALREADY_FINALIZED すでにサーバが終了しています

    関数名 GCommGetConnectedClientList

    説明 リモートアクセスを実施しているクライアント情報の一覧を取得します。取得できるクライアント情報は以下のと

    おりです。

    ・クライアントを識別する固有のオブジェクト名

    ・クライアントのIPアドレス (ゲートウェイに隠蔽されていないクライアントの固有値)

    ・操作権状態(参照モード/操作モード)

    本関数実行後に、引数で指定したpClientListのメンバ変数に動的に確保されたメモリ領域が割り当てられま

    す。取得したpClientListの情報が不要になった場合、GCommGetConnectedClientList関数を使用し、動的に確保されたメモリ領域を解放する必要があります。

    リモートアクセスを実施しているクライアントが存在しない場合は、out引数のpClientListのメンバのcountに0、

    pListにNULLを代入して返します。このとき、戻り値はGCOMM_SUCCESSとなります。

    書式 GCommErrorT GCommGetConnectedClientList(GCommObjectInfoListT *pClientList)

    引数名 I/O 説明 入力値

    pClientList OUT サーバに接続されているクライアント情報の一覧 -

    戻り値 説明

    GCOMM_SUCCESS 成功

    GCOMM_ERROR_ILLEGAL_ARGUMENT 引数不正

    GCOMM_ERROR_ALLOCATION メモリ確保失敗

    GCOMM_ERROR_NOT_INITIALIZED サーバの初期化未実施

    GCOMM_ERROR_ALREADY_FINALIZED すでにサーバが終了しています

    関数名 GCommDisconnectClient

    説明 指定したクライアントとのリモートアクセスを終了します。

    書式 GCommErrorT GCommDisconnectClient(GCommConstStringT clientName)

    引数名 I/O 説明 入力値

    clientName IN クライアント名 -

    戻り値 説明

    GCOMM_SUCCESS 成功

    GCOMM_ERROR_ILLEGAL_ARGUMENT 引数不正

    GCOMM_ERROR_ALLOCATION メモリ確保失敗

    GCOMM_ERROR_NOT_INITIALIZED サーバの初期化未実施

    GCOMM_ERROR_ALREADY_FINALIZED すでにサーバが終了しています

    GCOMM_ERROR_NOT_FOUND_SELECTED_CLIENT 指定したクライアントが存在しません

  • 15

    (2:GENWARE AIR Core)

    関数名 GCommSendUpdateDrawInfo

    説明 リモートアクセスを実施しているクライアントに描画更新データ(画面・コントロール)を送信します。本関数はサー

    バ側のGPIのGPIBeginDraw関数内で呼び出す必要があります。

    書式 GCommErrorT GCommSendUpdateDrawInfo(void)

    引数名 I/O 説明 入力値

    - - - -

    戻り値 説明

    GCOMM_SUCCESS 成功

    GCOMM_ERROR_ALLOCATION メモリ確保失敗

    GCOMM_FAILURE その他失敗

    関数名 GCommSetOperationStatus

    説明 リモートアクセスを実施しているクライアントを指定して操作権状態を設定します。

    すでに設定されているモードが設定された場合もGCOMM_SUCCESSを返します。

    書式 GCommErrorT GCommSetOperationStatus

    (GCommConstStringT clientName, GCommOperationStatusT operationStatus)

    引数名 I/O 説明 入力値

    clientName IN クライアントのオブジェクト名 1~255文字

    operationStatus IN 操作権状態 GCOMM_MODE_REFERENCE(0):参照モード

    GCOMM_MODE_OPERATION(1):操作モード

    戻り値 説明

    GCOMM_SUCCESS 成功

    GCOMM_ERROR_ILLEGAL_ARGUMENT 引数不正

    GCOMM_ERROR_NOT_FOUND_SELECTED_CLIENT 指定されたクライアントが存在しません

    GCOMM_ERROR_NOT_INITIALIZED 初期化されていません

    GCOMM_ERROR_ALREADY_FINALIZED すでにサーバが終了しています

    GCOMM_FAILURE その他失敗

    関数名 GCommGetOperationStatus

    説明 リモートアクセスを実施しているクライアントを指定して操作権状態を取得します。

    書式 GCommErrorT GCommGetOperationStatus

    (GCommConstStringT clientName, GCommOperationStatusT *pOperationStatus)

    引数名 I/O 説明 入力値

    clientName IN クライアントのオブジェクト名 1~255文字

    pOperationStatus OUT 操作権状態 GCOMM_MODE_REFERENCE(0):参照モード

    GCOMM_MODE_OPERATION(1):操作モード

    戻り値 説明

    GCOMM_SUCCESS 成功

    GCOMM_ERROR_ILLEGAL_ARGUMENT 引数不正

    GCOMM_ERROR_NOT_INITIALIZED 初期化されていません

    GCOMM_ERROR_ALREADY_FINALIZED すでにサーバが終了しています

    GCOMM_ERROR_NOT_FOUND_SELECTED_CLIENT 指定されたクライアントが存在しません

    GCOMM_FAILURE その他失敗

    関数名 GCommGuiResourceMutexLock

    説明 GENIFA3が参照するリソースに対して別スレッドから操作・参照を行う仕組みがあるため、GUIスレッドと

    GENWARE AIR Coreのスレッドが競合する場合があります。本関数はミューテックスをロックして競合を回避します。なお、ミューテックスは再帰的であってはいけません。同一スレッドへの複数回のロック呼び出しはスレッドがロックするので注意してください。

    書式 GCommErrorT GCommGuiResourceMutexLock (void)

    引数名 I/O 説明 入力値

    - - - -

    戻り値 説明

    GCOMM_SUCCESS 成功

    GCOMM_FAILURE 失敗

  • 16

    (2:GENWARE AIR Core)

    関数名 GCommGuiResourceMutexUnlock

    説明 GCommGuiResourceMutexLockでロックしたミューテックスを解放すします。GUIスレッドとGENWARE AIR Core側

    のスレッドで共有するリソースの排他制御用のミューテックスがロックされていない場合に本関数を実行した場合、処理は失敗として扱います。

    書式 GCommErrorT GCommGuiResourceMutexUnlock(void)

    引数名 I/O 説明 入力値

    - - - -

    戻り値 説明

    GCOMM_SUCCESS 成功

    GCOMM_FAILURE 失敗

    関数名 GCommClientAddRefreshRect

    説明 リモートアクセスを実施しているクライアントのGUIを再描画します。

    書式 GCommErrorT GCommClientAddRefreshRect( void )

    引数名 I/O 説明 入力値

    - - - -

    戻り値 説明

    GCOMM_SUCCESS 成功

    GCOMM_ERROR_NOT_INITIALIZED サーバが初期化されていません

    GCOMM_ERROR_ALREADY_FINALIZED すでにサーバが終了しています

    GCOMM_ERROR_ALLOCATION メモリ確保失敗

    GCOMM_FAILURE その他失敗

    関数名 GCommFreeGCommObjectInfoListT

    説明 GCommObjectInfoListT構造体メンバの動的メモリ確保領域の解放を行います。

    書式 GCommVoidT GCommFreeGCommObjectInfoListT(GCommObjectInfoListT*pStruct)

    引数名 I/O 説明 入力値

    pStruct IN/OUT GCommObjectInfoListT構造体 GCommObjectInfoListT構造体へのポインタ

    戻り値 説明

    なし -

    関数名 GCommSetCallbackTable

    説明 サーバ・クライアント間の接続状態の変化(接続・切断)、通信エラー、操作権状態の変化、操作権設定の判定

    などを行うときに、専用のコールバック関数テーブルGCommCallbackTableT構造体を使用してユーザが任意に呼び出すコールバック関数を設定することができます。再度本関数を使用しコールバック関数を設定したときは、設定内容を上書きします。なお、コールバック関数テーブル内の各関数のポインタをNULLに指定したとき、

    当該関数の設定を解除します。このとき、コールバック関数テーブルを再度設定しなければコールバック関数は呼び出されません。コールバック関数が呼び出されている間は関数の設定を行うことができません。

    書式 GCommErrorTGCommSetCallbackTable(GCommCallbackTableT*pCallbackTable)

    引数名 I/O 説明 入力値

    pCallbackTable IN 登録するコールバック関数テーブル -

    戻り値 説明

    GCOMM_SUCCESS 成功

    GCOMM_ERROR_ILLEGAL_ARGUMENT 引数不正

    GCOMM_ERROR_NOT_INITIALIZED サーバ/クライアントの初期化未実施

    GCOMM_ERROR_ALREADY_FINALIZED すでにサーバ/クライアントが終了しています

    GCOMM_FAILURE その他失敗

  • 17

    (GENWARE AIR Core)

    2-1-4:データ仕様

    ① クラス仕様 GENWARE AIR Core内で利用するクラスを定義します。

    ② プリプロセッサ GENWARE AIR Coreのソースコードは、サーバ、クライアントで

    共有していますが、サーバ/クライアント夫々に専用処理が存在

    するため、下記のプリプロセッサを定義します。

    ③ 入力規則 GENWARE AIR Coreで使用する各オブジェクト(サーバ/ クライアント)の入力規則および文字数上限を下記に示します。

    なお、先頭文字は数字以外とします。

    ④ データ型 GENWARE AIR Coreで使用する データ型は右表の通りです。

    ⑤ 定数 GENWARE AIR Coreで使用する定数は下表の通りです。

    種別 クラス名

    サーバ GCommServer

    クライアント GCommClient

    対象 プリプロセッサ定義

    サーバ __GCOMM_SERVER__

    クライアント __GCOMM_CLIENT__

    入力規則 文字数

    半角英数、アンダースコア(_)、ハイフン(-) 1~255

    型名 データ型

    GCommVoidT なし

    GCommCharT 文字型

    GCommUCharT 符号なし文字型

    GCommUCharT バイト型

    GCommShortT 符号付き短長整数型

    GCommUShortT 符号なし短長整数型

    GCommIntT 符号付き(倍長)整数型

    GCommUIntT 符号なし(倍長)整数型

    GCommLongT 符号付き倍長整数型

    GCommULongT 符号なし倍長整数型

    GCommBoolT GCommTrueまたはGCommFalseを値としてとる論理型

    GCommInt8T 符号付き8ビット整数型

    GCommUInt8T 符号なし8ビット整数型

    GCommInt16T 符号付き16ビット整数型

    GCommUInt16T 符号なし16ビット整数型

    GCommInt32T 符号付き32ビット整数型

    GCommUInt32T 符号なし32ビット整数型

    GCommErrorT リモートアクセス機能のエラーを表すデータ型

    GCommSizeT サイズを表す型

    GCommStringT 文字列型

    GCommConstStringT const修飾子付き文字列型

    GCommNameT 名前を表す型

    GCommConstNameT const修飾子付きの名前を表す型

    GCommBinaryT バイナリデータ型

    GCommConstBinaryT const修飾子付きバイナリデータ型

    GCommListT リスト型

    定数名 値 説明

    GCOMM_MAX_NAME_LENGTH 255 オブジェクト名の最大文字数です ※オブジェクト:サーバ、クライアント、ゲートウェイ

    GCOMM_INET_ADDR_MAX_LEN 30 IPv4アドレスの最大文字数です

    GCOMM_POLLING_INTERVAL_TIME 10000 切断監視スレッドのポーリング間隔[ms] ※値が小さすぎると、高周期で接続確認をサーバに対して実施するため、GUIタスクに影響が生じて正常に動作しません。

    GCOMM_SEND_HEAP 50000 サーバがクライアントに1回で送信するヒープ領域サイズ[byte]

    MY_AIRCORE_CONF_SERVER ./aircore.conf 実行モジュールからaircore.confファイルへの相対パス(サーバ) または、絶対パス(サーバ)

    MY_AIRCORE_CONF_CLIENT ./aircore.conf 実行モジュールからaircore.confファイルへの相対パス(クライアント) または、絶対パス(サーバ)

  • 18

    (2:GENWARE AIR Core)

    ⑥ 列挙型 GENWARE AIR Coreで使用する列挙型は下表の通りです。 ・GCOMM_OBJECT_TYPE列挙型 (オブジェクト種別列挙型 )

    ・GCOMM_DISCCONECT_TYPE列挙型 (オブジェクト種別列挙型 )

    ・GCommOperationStatusT列挙体 (操作権状態列挙体 )

    ⑦ 構造体 GENWARE AIR Coreで使用する構造体は下表の通りです。 ・GCommObjectInfoT構造体 (オブジェクト情報構造体 )

    サーバ、クライアント、ゲートウェイ情報を管理する各構造体の共通情報を扱います。

    ・GCommClientInfoT構造体 (クライアント情報構造体 )

    ・GCommServerInfoT構造体 (サーバ情報構造体 )

    ・GcommGatewayInfoT構造体 (ゲートウェイ情報構造体 )

    ・GCommObjectInfoListT構造体 (オブジェクト情報リスト構造体 )

    メンバ変数 pListに対して動的に確保したメモリ領域の解放には、関数「GCommFreeGCommObjectInfoListT」を使用します。

    列挙値 値 説明

    GCOMM_OBJECT_TYPE_SERVER 0 サーバ

    GCOMM_OBJECT_TYPE_CLIENT 1 クライアント

    列挙値 値 説明

    GCOMM_DISCCONECT_TYPE_REMOTE_ ACCESS_END 0 サーバ/クライアントがリモートアクセスを終了しました

    GCOMM_DISCCONECT_TYPE_LIMMIT_ OVER_CLIENT 1 リモートアクセスできるクライアント数が上限を超えました

    GCOMM_DISCCONECT_TYPE_UNILATERAL_DISCONNECT 2 サーバが自身(クライアント)とのリモートアクセスを一方的に終了しました

    メンバ 値 説明

    GCOMM_MODE_REFERENCE 0 参照モード

    GCOMM_MODE_OPERATION 1 操作モード

    構造体のメンバ 型 サイズ(byte) 説明

    name[GCOMM_MAX_NAME_LENGTH + 1] GCommCharT 256 オブジェクト固有の名前

    addr[GCOMM_INET_ADDR_MAX_LEN + 1] GCommCharT 31 オブジェクトのIPv4アドレス

    構造体のメンバ 型 サイズ(byte) 説明

    base GCommObjectInfoT 272 オブジェクト情報

    operation GCommOperationStatusT 4 クライアントの操作権状態 ・参照モード:GCOMM_MODE_REFERENCE(0) ・操作モード:GCOMM_MODE_OPERATION(1)

    構造体のメンバ 型 サイズ(byte) 説明

    base GCommObjectInfoT 272 オブジェクト情報

    構造体のメンバ 型 サイズ(byte) 説明

    base GCommObjectInfoT 272 オブジェクト情報

    構造体のメンバ 型 サイズ(byte) 説明

    type GCommUInt16T 2 オブジェクト種別 ・サーバ: GCOMM_OBJECT_TYPE_SERVER(0) ・クライアント: GCOMM_OBJECT_TYPE_CLIENT(1)

    count GCommUInt16T 2 オブジェクト情報リストの数

    pList GCommObjectInfoT** 4

    オブジェクト情報リスト ※「GCommClientInfoT構造体」、「GCommServerInfoT構造体」、「GcommGatewayInfoT構造体」いずれかのポインタの配列です。どの構造体のデータが格納されているかは、メンバ変数「type」で判断します。

  • 19

    (2:GENWARE AIR Core)

    ⑧ コールバック関数テーブル仕様 GENWARE AIR Coreに登録できる各種コールバック関数は下表の通りです。

    関数名 fpOnConnectedCallback

    説明 サーバにクライアントからリモートアクセス開始の要求が通知され、要求承認後、クライアントと接続が確立され

    たときに呼び出されるコールバック関数です。GENWARE AIR Coreから同期処理で呼び出されます。

    書式 GCommVoidT (*fpOnConnectedCallback)(GCommConstStringT name)

    引数名 I/O 説明 入力値

    name IN 接続されたオブジェクトの名称 -

    戻り値 説明

    なし -

    関数名 fpOnDisconnectedCallback

    説明 サーバとクライアントが接続された(リモートアクセス機能が有効)状態でリモートアクセス終了の処理を行ったと

    きに呼び出されるコールバック関数です。

    本コールバック関数は、サーバへリモートアクセスできるクライアント数が上限に達している状態で新たにリモー

    トアクセスが実行されたときに、アクセス履歴が最も古いクライアントに対しリモートアクセスを強制終了するときや、指定したクライアントとのリモートアクセスを一方的に終了するときに呼び出します。

    GENWARE AIR Coreから非同期処理で呼び出されます。

    書式 GCommVoidT (*fpOnDisconnectedCallback)

    (GCommConstStringT name, GCommInt8T disconnectType)

    引数名 I/O 説明 入力値

    name IN 切断されたオブジェクトの名称 -

    disconnectType IN サーバでは常に

    GCOMM_DISCCONECT_TYPE_REMOT

    E_ACCESS_ENDが渡されてきます。

    GCOMM_DISCCONECT_TYPE_REMOTE_ACCESS_END:

    サーバ/クライアントがリモートアクセスを終了しました

    GCOMM_DISCCONECT_TYPE_LIMMIT_OVER_CLIENT:

    リモートアクセスできるクライアント数が上限を超えました

    GCOMM_DISCCONECT_TYPE_UNILATERAL_DISCONNECT:サーバが自身(クライアント)とのリモートアクセスを一方的に

    終了させました

    戻り値 説明

    なし -

    関数名 fpOnCommunicationErrorCallback

    説明 接続中のクライアント・サーバ間で通信エラーが発生したときに呼び出すコールバック関数を設定する関数です。

    通信エラーの検知は、監視スレッドを立てダミー通信を行って実現します。

    引数のpParamは、エラーコード以外の付加情報を表します。現状はイメージリソースの外部ファイル化に関するエ

    ラーが起こったときに、他のエラーと区別するために使用します。

    GENWARE AIR Coreの機能拡張でユーザに付加情報を通知するときはpParamを使用します。

    引数のtypeは、pParam情報を区別するために使用します。

    GENWARE AIR Coreから非同期処理で呼び出されます。

    書式 GCommVoidT (*fpOnCommunicationErrorCallback)

    (GCommConstStringT name, GCommErrorT error ,GCommUInt32 type, GCommVoidT* pParam)

    引数名 I/O 説明 入力値

    name IN 通信相手のオブジェクト名称 -

    error IN エラーコード -

    type IN タイプ(pParam情報を区別するために使

    用します)

    ※クライアントの場合、「0x00000001:イ

    メージリソースの外部ファイル化」は、返却されません。

    ・0x00000000: 付加情報なし

    ・0x00000001: イメージリソースの外部ファイル化

    pParam IN 付加情報 -

    戻り値 説明

    なし -

    関数名 fpOnOperationStatusChangedCallBack

    説明 自身(クライアント)の操作権状態が変更されたときに呼び出すコールバック関数です。

    GENWARE AIR Coreから非同期処理で呼び出されます。

    書式 GCommVoidT (*fpOnOperationStatusChangedCallBack)(GCommOperationStatusT status)

    引数名 I/O 説明 入力値

    status IN 変更後の操作権状態 GCOMM_MODE_REFERENCE(0): 参照モード

    GCOMM_MODE_OPERATION(1): 操作モード

    戻り値 説明

    なし -

  • 20

    (2:GENWARE AIR Core)

    ⑧ コールバック関数テーブル仕様 (続き)

    関数名 fpOnOperationRequestedCallback

    説明 サーバに操作権状態の設定が要求されたときに呼び出すコールバック関数です。本コールバック関数内では、

    ユーザが第一引数で指定したクライアントに対して第二引数で指定した操作権状態へ設定するかの判定処理を実装し、その結果を戻り値として返します。戻り値でGCommTrueを返したときは、設定要求が承認されたとしてGENWARE AIR Core内で管理している操作権情報を更新し、GCommFalseが返された場合は設定要求が否認さ

    れたとして無処理で終了します。

    なお、要求された操作権状態とGENWARE AIR Core内で管理している操作権情報の一致・不一致に関わらず、

    本関数は呼び出されます。

    GENWARE AIR Coreから非同期処理で呼び出されます。

    ※本関数はクライアントからの要求関数(GCommRequestOperation)に対して同期的に実行されます。そのため、本関数内で時間が掛かる処理を実装してしまうと、クライアントに待ちが発生してしまいます。

    書式 GCommBoolT (*fpOnOperationRequestedCallback)

    (GCommConstStringT name, GCommOperationStatusT status)

    引数名 I/O 説明 入力値

    name IN 操作権状態の設定を要求されたクラ

    イアントのオブジェクト名称

    -

    status IN 設定要求された操作権状態 GCOMM_MODE_REFERENCE(0): 参照モード

    GCOMM_MODE_OPERATION(1): 操作モード

    戻り値 説明

    GCommTrue 操作権状態設定要求の承認

    GCommFalse 操作権状態設定要求の否認

  • 21

    (3:GENWARE AIR Client)

    3-1:概要 サーバ(組込機器)上のアプリケーションのGUIをスマートデバイス(クライアント)で実行するためには、スマートデバイス上にインス

    トールするGUIクライアントアプリケーション(GENWARE AIR Client)を使用します。

    GENWARE AIR ClientにはWindows版およびAndroid版があります。スマートデバイスのOSに合わせて、使用してください。

    (iOS版もサポート予定)

    3-3:ユーザインターフェイス

    3-3-1:Windows版

    サーバ上のアプリケー

    ションのGUIを表示

    接続

    GENWARE AIR Client

    GUIアプリケーション

    組込機器(サーバ)

    スマートデバイス(クライアント)

    NO. 用語 定義

    1 タイトルバー ①メニュー名 「GENWARE 3」と表示します。

    ②Server名 接続していない場合:「connected:[]」と表示します。

    接続している場合:「connected:[xxxx]」と表示します。(xxxxには、接続するServer名を表示)

    ③操作権 「status:[xxxx]」と表示します。

    操作権の有無により下記のとおり表示します。

    ・操作権がある場合: xxxxに「Operation」と表示します

    ・操作権がない場合: xxxxに「Reference」と表示します。

    2 「ファイル(F)」メニュー アプリケーションを終了するメニューです。メニュー上に「ファイル(F)」と表示します。

    クリック時の動作:クリックすると「アプリケーションの終了(X)」をプルダウンメニュー形式で表示します。

    3 「接続(C)」メニュー GENWARE AIR ServerのServer名を指定して接続するメニューです。メニュー上に「接続(C)」と表示する。

    クリックするとプルダウンリストですべての接続可能なGENWARE AIR ServerのServer名を表示します。

    4 「切断(O)」メニュー 接続を終了するメニューです。メニュー上に「切断(O)」と表示します。クリックすると、接続を切断します。

    5 「操作権要求(M)」メニュー 組込機器の操作権の有無を切り換えるメニューです。メニュー上に「操作権取得」と表示します。

    クリックするとプルダウンリストで「操作モード(O)」および「参照モード(R)」を表示します。

    ①「操作モード(O)」メニューをクリックした場合 「1.タイトルバー③操作権」に「Operation」と表示します。

    ②「参照モード(R)」メニューをクリックした場合 「1.タイトルバー③操作権」に「Reference」と表示します。

    6 「更新(U)」メニュー 組込機器の情報を更新するメニューです。メニュー上に「更新(U)」と表示します。

    クリックすると、「3. 接続(C)メニュー」に表示されるGENWARE AIR ServerのServer名Server名を更新します。

    7 バージョン GENWARE AIR Clientのソフトウェアバージョンを表示します。

    8 GUI表示フィールド 接続したGENWARE AIR ServerのGUIを表示します。未接続時は黒い画面を表示します。

    9 スクロールバー 「8.GUI表示フィールド」に表示できない部分がある場合、スクロールバーをクリックしたまま上下左右に動か

    すと隠れている部分が表示できます。

  • 22

    (3:GENWARE AIR Client)

    3-3-2:Android版

    3-4:データ仕様

    ① 最大接続数

    一つのGENWARE AIR Serverに接続可能なGENWARE AIR Clientの最大数は4台です。

    最大接続数がつながれている状態で、新たにGENWARE AIR Clientを接続しようとすると、下記の動作となります。

    1)GENWARE AIR Clientの画面上に“最大接続台数を越えたため、接続できません。”とエラーメッセージを表示します。

    2)サーバ側が画面表示可能な場合、接続中のクライアント一覧を表示したポップアップウィンドウを表示します。

    ユーザ操作にて、切断するクライアント名を選択します。

    その後で、クライアント側で再接続操作を行います。

    ② 同一ネットワーク上の起動上限数

    ③ 同一機器上の起動上限数

    NO. 用語 定義

    1 メニュー一覧 画面上の左端を右にフリックすると①を表示します。画面上の左端を左にフリックすると①を非表示にします。

    非表示後に再度、画面上の左端を右にフリックすると①を表示します。

    2 「接続」メニュー 接続可能なGENWARE AIR ServerのServer名を表示するメニューです。メニュー上に「接続」と表示します。

    タッチすると、別画面で接続可能なGENWARE AIR ServerのServer名の一覧を別画面で表示します。

    3 「切断」メニュー 接続を終了するメニューです。メニュー上に「接続終了」と表示します。タッチすると、接続を切断します。

    4 「操作権取得」メニュー GENWARE AIR Serverの操作権を取得するメニューです。メニュー上に「操作権取得」と表示します。

    クリックすると、GENWARE AIR Serverの操作権を取得します。

    5 「操作権解放」メニュー GENWARE AIR Serverの操作権を解放するメニューです。メニュー上に「操作権解放」と表示します。

    タッチすると、GENWARE AIR Serverの操作権を解放します。

    6 バージョン GENWARE AIR Clientのバージョン情報を表示するモードレスウィンドウを開きます。なお、バージョン情報表示

    中も画面連動は継続します。メニュー上に「バージョン」と表示します。

    7 GUI表示フィールド 接続したGENWARE AIR Serverに連動して画面を表示します。未接続時は黒い画面を表示します。

    項目 最大接続数

    同一ネットワーク上で起動できるGENWARE AIR Server数 4

    同一ネットワーク上で起動できるGENWARE AIR Client数 4

    項目 OS 最大起動数

    同一機器上で起動できるGENWARE AIR Server数 Windows 4台

    Android 4台

    同一機器上で起動できるGENWARE AIR Client数 Windows 4台

    Linux(Raspberry Pi) 4台

  • 23

    (関連用語集)

    NO. 用語 定義

    1 GENWARE AIR Client

    スマートデバイス上で動作するGENWARE AIRアプリケーションです。

    GUI描画に必要なリソースデータを持たず、組込機器上のGUIアプリケーション(GENWARE AIR Server)からリー

    ソースデータを読み出して動作します。また、スマートデバイス上の入力イベント(タッチ操作など)はGENWARE

    AIR ClientからGENWARE AIR Serverに送信され、GENWARE AIR Server側で当該イベントに対応した処理

    (OnClick動作など)を実行します。

    2 GENWARE AIR Server

    組込機器上で動作するGENWARE AIRアプリケーション。

    ユーザは別売のGUI開発環境“GENWARE3/4”を用いて当該アプリケーションを開発します。

    GUI描画に必要なリソースデータならびに各種イベント(タッチ操作など)に対応した処理機能を持ち、GENWARE

    AIR Clientとの間でリースデータならびにイベントの送受信を行うことで、スマートデバイス上で組込機器側と連動

    したGUI動作を実現します。

    3 GUI連動 (画面連動) GENWARE AIR ServerとClientの間でリースデータならびにイベントの送受信を行うことで、スマートデバイス上で

    組込機器側と連動したGUI動作を実現することです。

    4 GUI連動状態

    (画面連動状態)

    GENWARE AIR ServerとClient間で画面連動が開始されている状態です。

    5 リソースデータ

    GUI描画に必要となる各種データです。別売のGUI開発環境“GENWARE3/4”に付属のGUIエディタ

    “GENSKETCH3/4”を用いて作成します。リソースデータには文字列やビットマップデータなどのデータや画面上

    にレイアウトされる各種コントロールデータなどが含まれます。詳細はP11の“GUIリソース”の項を参照してくだ

    さい。

    6 イベント(メッセージID) スマートデバイス上で動作するGENWARE AIR ClientがからServerに送信される各種メッセージIDです。

    イベントにはタッチON/OFF、キー入力などがあります。詳細はP10の“操作”の項を参照してください。

    7 GUIデータ 組込機器上で動作するGUIアプリケーション(GENWARE AIR Server)に接続したGENWARE AIR Clientへ送信さ

    れるGUI動作に必要となるデータです。GUIデータには、初期GUIデータ、更新GUIデータの2種類があります。

    8 初期GUIデータ GUI連動開始時にGENWARE AIR Server側からGENWARE AIR Client側へ送信されるGUIデータです。

    該当するデータは、画面構成情報、コントロールのプロパティ情報であります。

    9 更新GUIデータ GENWARE AIR Server側で画面更新が行われた際に、GENWARE AIR Server側からGENWARE AIR Client側へ

    送信されるGUIデータです。該当するデータは、画面更新されたコントロールのオブジェクト情報です。

    10 操作権状態 スマートデバイス上で連動しているGENWARE AIR ClientのGUI対して、ユーザ操作がServer側で処理される

    かされないか(有効/無効)を示す状態です。操作モード、参照モードの2種類があります。

    11 操作モード 操作権がある状態です。

    12 参照モード 操作権がない状態です。

    13 Client名 同一ネットワーク上で複数起動するGENWARE AIR Clientを識別するために設定するシステム固有な名前です。

    14 Server名 同一ネットワーク上で複数起動するGENWARE AIR Serverを識別するために設定するシステム固有な名前です。

    15 GENWARE

    (ジェンウェア)

    ILCが開発販売する組込GUI開発環境です。

    GUI開発ツール”GENSKETCH(ジェンスケッチ)”とGUIライブラリ”GENIFA(ジェニファ)”にて構成されます。

    16 SEP (Smart Embedded

    Platform)

    ILCが開発販売するm2m/IoT向け組込ソフトウェアプラットフォームです。

    組込ライブラリ”SEPcore(セップコア)”とプラットフォーム構築ツール“SEP Platform Builder”にて構成されます。

    17 SEP通信

    SEPが組み込まれた機器間の通信です。GENWARE AIR ServerのGUIアプリならびにGENWARE AIR Client間も

    当該通信にてGUI連動のための送受信を行います。SEP通信では、暗号キーに基づく暗号化通信やインターネッ

    ト経由の通信(*)を行うことができます。 (*) : 別売のSEP Network Serverが必要

    18 リモートデスクトップ方式

    遠隔操作対象のコンピュータの画面データ(VRAM情報)を繰り返し遠隔操作端末側に送信して同じ画面を表示

    し、遠隔操作端末側での操作情報(マウスやキー等)を相手側に送信して遠隔操作を行う方式です。

    WindowsやLinuxなどの高機能OSを搭載したPC向けの方式です。

    19 Webサーバ搭載方式

    組込機器側にWebサーバを搭載し、Webブラウザを搭載したスマートデバイスに対してHTML5フォーマットデータ

    を送信することで組込機器のGUIを実現する方式です。

    組込機器側のWebサーバアプリとブラウザ上で動作するHTML5アプリを開発することで実現する方式です。

    20 組込機器、スマートデバ

    イスアプリ開発方式

    組込機器側とスマートデバイス側のアプリをそれぞれ開発し、組込機器側に実装された通信プロトコルに基づき

    スマートデバイス側のアプリが通信を行い、組込機器の情報を表示、操作する方式です。

    スマートデバイス側のアプリは、スマートデバイスのメーカ、機種、OSのバージョンなどが変更されるたびに

    動作検証、問題が発見されればソフトの修正作業を継続して行う必要があります。

    21 シームレス アプリケーションソフトの中で、一貫して操作(例えばデータ取得)することができる状態です。

    22 プラットフォーム コンピュータやシステムの基礎部分となるものです。通常、ハードウェアおよびOSを指します。

    23 マルチプラットフォーム 複数のOSやハードウェアに対応していることです。

    24 セキュアな通信 通信プロトコルを暗号化してセキュリティを高め、秘匿性を保証した通信のことです。SEP通信では、装置どうしが

    一対一で、チャレンジ・レスポンスやAESなどセキュアな通信を提供しています。

    25 組込OS 省メモリ、リアルタイム性などを特長とする組込機器向けOSのことです。

    組込OSとしては、μ ITRON、T-Kernel、QNXなど があります。

    26 Porting Layer

    プラットフォーム(ハードウェアやOS等)に依存するプログラム階層です。移植するソフトウェアのインターフェー

    ス仕様に基づき、プラットフォームに合わせてプログラムを実装することで、アプリケーションソフトはプラット

    フォームの変更に対して影響を受けません(アプリケーションプログラムの変更不要です)。

    27 色環境情報 コンピュータ上で色情報を管理する方法としてRGBやYUVといったデータ形式があり、GENWARE AIRでは

    管理する色情報一式のことを色環境情報といいます。

  • 24

    商 品 ホ ー ム ペ ー ジ http://www.ilc.co.jp/commodity/genwareair

    関連商品(別売)

    品 名 構 成

    GENWARE AIR (※1) インストールCD (GENWARE AIR機能一式(ソースコード、ライブラリ、ビルド環境、ツール)、マニュアル(PDF))

    ソフトウェア使用許諾書

    GENWARE AIR Client ILCのクラウドサービス ILC STATIONにて購入いただいた後、お客様のスマートデバイスにダウンロードして使

    用することができます。

    年間保守契約 (別途契約要) ① QAサポートのみ、② QAサポート+マイナーバージョンアップ付 の2種類

    組込ライセンス (別途契約要) お客様組込み製品1台あたりのロイヤリティ

    (※1) GENWARE AIRの一部はバイナリ提供となり、移植の際にはお客様の組込プラットフォームに合わせたバイナリ提供サービス(有償)が別途必要となります。

    〒732-0824 広島市南区的場町1丁目3番6号 広島的場ビル9F

    TEL:082-262-7700 FAX:082-263-4411

    本社

    デザインセンター ( H D C : H i r o sh im a D e s i g n C e n t e r )

    〒100-0005 東京都千代田区丸の内2丁目3番2号 郵船ビルディング7F

    TEL:03-3287-7700 FAX:03-3287-3999

    ★ このカタログの記載内容は、予告なく変更することがあります。 ★ 商品は説明書をよくお読みの上、正しくご使用ください。 ★ このカタログに記載されている商品は日本国内仕様です。海外でご使用になりたい場合には、別途お問い合わせください。 ★ FACTICS、GENWARE、GENIFA、GENSKETCH、Smart Embedded Platform は株式会社アイ・エル・シーの登録商標です。 ★ このカタログに記載されている他社製品名(ソフトウェア・ハードウェア)は、各社の商標または登録商標です。

    安全に関するご注意 GENWARE AIR のご使用に際しては、製品に付属しているマニュアルおよび関連マニュアルを良くお読みいただくとともに、安全に対して十分

    に注意を払って、正しい取り扱いをしていただくようお願いいたします。

    Copyright© 2018-2019 INTERNATIONAL LABORATORY CORPORATION, All Rights Reserved.

    技術的なお問い合わせ TEL : 082-262-7799 / FAX : 082-263-4411 ファクティクス テクニカルセンター Eメール : [email protected]

    電話受付時間 : 月曜日~金曜日(祝日を除く) 9:00~17:00 ホームページ : http://www.ilc.co.jp/

    BF932-048J-* 201908

    株式会社 アイ・エル・シー

    適用システム

    GENWARE AIRは、様々な分野でスマート

    デバイスを活用したGUIの開発に活用する

    ことができます。

    品 名 構 成

    GUI開発環境

    (GENWARE3 /4)

    (ポーティングサポートパッケージ)

    GENWARE3 もしくは GENWARE4を購入済みのお客様は新たに購入する必要はありません。

    未購入のお客様は、GENWARE3 、 GENWARE4いずれかのパッケージを購入いただく必要があります。

    SEP Network Server インターネット経由でのリモートアクセス用のサーバソフト(Linux版のみ提供)

    (スマートデバイスから装置/機器にインターネット経由アクセスを可能とする別売のソフトウェアパッケージ)

    商品構成

    OS μ ITRON®3、μ ITRON®4、Linux®、VxWorks®、Windows® CE 、Windows® 7、Windows® 8.1、Windows® 10など各種

    Windows® 、Android、iOS、OS無し

    CPU RZ/T1、RX63、ARMコア、x86系、i.MX、TLCS-900、VR5500、TMS320、PowerPC、各種SOC

    グラフィックチップ AX51901、MB86290、SEDB86、YGV628、B69000、SM501、各種SOC

    コンパイラ

    GCC、SHC、NC308、CC32R、Visual C++ 6.0、Visual C++ 2005、Visual C++ 2005 Express Edition、Embedded

    C++、Visual C++ 2008、Visual C++ 2008 Express Edition、Visual C++ 2010、Visual C++ 2010 Express Edition、

    Visual C++ 2013

    GUIライブラリ GENIFAの移植実績