PLUS G

PlusGTitle.png

組込み向けGUIツールキット

PlusGは組込みLinux上で動作するグラフィカルなアプリケーションを作成するライブラリとツールのキットです。

ライブラリはコアエンジンに「DirectFB」を使用しています。
「DirectFB」はCPUパワーを必要とするX-Windowシステムなどを使わずに直接フレームバッファに描画するライブラリで、CPUパワーの低い組込み機器でもストレスなく動作させることができます。

ウィンドウシステムやボタン、画像、タイマー機能などを備えたイベントドリブン型GUIプログラムを簡単に作成することが可能です。
また、ボタンやエディットボックスなどのオブジェクトはユーザオリジナル画像(png) から生成しますのでデザインも思いのままです。

ライブラリの他、開発ツールとして、プロジェクト管理機能付き高機能エディタ(統合開発環境SWEET)、ダイアログエディタ、カラーパレットエディタ(減色、共通パレット)が付いています。

PlusGとPlusGが必要とするライブラリは全てソースコードが付いていますのでLinuxが動く環境であればアーキテクチャに依存することなくいろいろな環境で使用可能です。

機能・特徴

Windows上での開発・実行が可能

コンパイルや動作確認など開発は全てWindows上で行うことが出来ます。

LinuxOSやビルド環境をWindowsの仮想PCソフトウェア上で行うことにより、全ての開発をWindowsパソコン1台で行うことができます。ですから、ターゲット機(試作機)の完成を待つことなく、アプリケーションの先行開発も可能です。また、ターゲット機が1台でも複数のメンバで開発できます。

ダイアログなどのデザイン、プログラミング作業、その他、付属のツールは全てWindowsアプリケーションです。

※「仮想PCソフトウェア」はVirtualBoxを採用しています。

※VirtualBoxとはIntel x86の仮想化ソフトウェアで、サンマイクロシステムズ社が提供するソフトウェアです。

※開発環境をインストールしたVirtualBox用の仮想ハードディスクファイルを提供しますのでWindowsPCがあればすぐに開発が開始できます。

自由なデザイン

ウィンドウフレーム、ボタン、エディットボックスなどのオブジェクトはユーザが作成したオリジナル画像から生成されますので、アプリケーションの全てのデザインが自由に設計できます。作成したオブジェクトは付属のダイアログエディタでデザインできますのでマウス操作で簡単にダイアログが作成できます。
また、オブジェクト画像は実行時にロードするので、アプリケーションのスキンをいくつか用意し動的に切り替えることも簡単に行えます。

C++ソースコード自動生成

付属のダイアログエディタは、作成したオブジェクトを配置しダイアログをデザインするツールです。
このソフトウェアはオブジェクトのレイアウト情報を元にC++のソースコードを生成します。生成されたソースコードには、ボタンのクリック、タイマーの発生などイベント処理用の空関数が多数自動作成されますので、このイベント関数に、アクション、ページ遷移などを書き加えコンパイルすればGUIアプリケーションの完成です。

DialogEditer50.png

オブジェクトの種類

次の9種類のオブジェクトが存在します。

  • ボタン
    プッシュボタン、ラジオボタン、チェックボックス、タブページなどの動作を行います。
  • エディットボックス
    文字列の編集(挿入、削除、キャレット移動など)、管理を行います。
  • フレーム
    ウィンドウやダイアログの枠、タブページの枠、リストやメニュー表示の枠などの表示を行います。
  • テキスト
    文字列を表示します。書体、サイズ、色、寄せ、マージンなどの属性を持っています。
  • アイコン・ピクチャー
    アイコンとピクチャーは非常によく似たオブジェクトです。
    イラスト画像や写真画像の表示を行います。
    ピクチャーはパレットの管理が可能です。
  • キャンバス
    直線、曲線、文字、塗りつぶしなどDraw系のデータを処理します。
    ベクトルデータを表示することが可能です。
  • キーボード
    キーボードや外部スイッチなどが押されたことを通知するオブジェクトです。
  • グループ
    複数のオブジェクトをグループ管理するオブジェクトです。
    グループ管理することで、一括に移動や消去などの属性変更などができます。
    ラジオボタンのような、トグル選択機能も提供します。

マルチアーキテクチャ

PlusGはソースコード提供ですので、Linuxが動作する環境とフレームバッファがあれば動作します。パソコン版(x86) , SuperH, ARM 等アーキテクチャを選びません。

256色サポート(減色、共通パレット作成ツールが付属)

PaletteEditer.PNG

CPUパワーの低い組込み機器で動作することを前提に開発されていますので、256色のインデックスカラー表示しかサポートしていない機器にも対応しています。

付属のカラーパレット作成ツールでフルカラーリソースの高品質な減色、共通パレットの作成など、市販のグラフィックエディタでは難しいパレット作成が簡単にできます。

このエディタは、減色による画像の劣化を最小限に抑える為の「ディザ」や「誤差拡散」などの機能も備えています。

※256色(8ビット/ピクセル)環境で1画面に表示する画像(ボタンやフレーム、写真など)は全て同一のパレットを使用する必要があります。したがって全ての画像を高品質に表示するには、256のパレットの一部を共通領域、一部を独立領域とするなどの工夫が必要です。

詳しい機能説明

メッセージ(イベント通知)

PlusGを使って作成するアプリケーションはメッセージドリブン型です。 PlusGのダイアログクラスにはいくつかのメッセージ処理用のコールバック関数(Virtual)が用意されています。 オブジェクトやデバイス、タイマーなどからイベントを受け取ると、それらの関数をコールバックします。 例えば、代表的なイベント通知関数に次のものがあります。

  • オープン時に一度だけ呼ばれる(初期化用)関数
    virtual void PostInitial(SGHandle handledlg,int id);
  • 表示の更新が必要な時に呼ばれる関数
    virtual void Draw(SGRect region);
  • ボタンオブジェクトがクリックされ時に呼ばれる関数
    virtual void ClickButton(SGHandle handleobj,int act);
  • 設定したインターバルタイマー イベントが発生した時呼ばれる関数
    virtual void Timer(TimeVal time);
  • ダイアログが閉じた時に呼ばれる関数
    virtual void Closed(SGHandle handledlg,int id,int param);

※本解説では「メッセージドリブン」という表現を採用していますが、一般的には「イベントドリブン」「イベント駆動」という呼び方の方が多く使われているようです。

2次元ベクトルデータの描画(直線、ベジェ曲線、線種、太さ、色)

CANVAS.png

キャンバスオブジェクトは2次元ベクトルデータの描画機能を備えています。
2次元ベクトルデータを基本とした有名なファイルフォーマットにPostScriptやPDFがありますが、キャンバスオブジェクトの描画機能はこのPostScriptやPDFと同じような機能をサポートしています。線は直線、ベジェ曲線、円弧、属性は実線、破線、太さ、色、演算は縮小、拡大、回転、移動と豊富な機能を備えています。

※描画エンジンとしてCairoを使用しています。

パレット管理方法

dog01min.png

パレット管理.png

8Bit/Pixelのフレームバッファを使用する際は256色パレットを使用します。
1つのデバイスには1つのパレットしか使用することができませんので、画面上に表示される全てのオブジェクトは同一のパレットを使用する必要があります。
PlusGでは256あるパレットを特色、共通色(抽出)、固有色と3つに分け、使用するリソース画像から使用される全ての色を抽出し、使用頻度の高い重要な色を抽出し、自動的にパレットを作成する機能があります。
この機能により256色のフレームバッファで高品質に画像(写真)を表示することが可能になっています。

ディザリング(ディザ法・誤差拡散法など)

Dither.png

少ない色数で多くの色を表現する手法としてディザリングという方法があります。
写真画像には少なくとも数千、場合によっては数百万の色が使われています。減色したパレットで写真画像を表示する場合そのまま表示すると著しく劣化する場合があります。
この様な場合にディザリングを行うと擬似的に表現色数が増え品質が向上します。
PlusGに付属のパレットエディタは高品質な減色機能に加え、ディザリング機能も備えています。

フォントについて

PlusGライブラリはTrueTypeやType1などのアウトラインフォントをサポートしています。
※FreeType2フォントライブラリを使用しています。

文字コードについて

PlusGライブラリ内部で使用する文字コードはUFT8です。
コーディングファイルはUTF8を使用して下さい。

構成

構成図.png

開発は仮想PCの中で行います。
プログラミングやデザインなどの各エディタはWindowsアプリケーションですが、編集するファイルは仮想PCの内部にあります。

仮想PCは生成・編集されたソースコードのビルドを行い、仮想PC上で実行、動作検証を行います。
また、(同一ソースを)クロスビルドすることでターゲット機で動作するバイナリの生成も行います。

SWEETエディタには、仮想PCでのビルド・実行とターゲット機でのビルド・実行の切り替えをボタンひとつで切り替える機能がついています。

Windows開発機、Linux仮想PC、Linuxターゲット機はそれぞれLANでつながっています。
※Telnet、NFS、Sambaなどを使用します。

開発手順

?リソースイメージの作成

PS-Design30.png

Photoshopなど画像編集ソフトを使ってボタンなどの部品のデザインを行います。
各部品は、状態の違いにより数パターンの画像が必要です。例えば、ボタンの場合は、通常、押下、選択、押下+選択、無効、フォーカスと6種類登録可能で必要に応じて作成します。また、ボタンとエディットボックスは、高さの伸長ができませんので、高さの変化に応じた画像を用意します。

?リソースイメージの登録と配置(デザイン)

DialogEditer30.png

PlusG付属のダイアログエディタを使い、作成した画像をオブジェクトとして登録します。
登録したオブジェクトを使用しダイアログを作成します。位置、サイズはマウス操作で簡単に編集できます。設計は必要な全てのダイアログの数だけ行います。

?スケルトン ソースコードの出力

ダイアログエディタを使い、登録オブジェクトや、作成したダイアログのレイアウト情報を元にC++のソースコードを生成します。
生成されたソースコードには、ボタンのクリック、タイマーの発生などイベント処理用の空関数が多数自動作成されます。

?プログラミング

SWEETmini.png

PlusG付属のソースコードエディタを使いコーディングを行います。SWEETは当社が販売するプロジェクト管理機能付きテキスト エディタです。SWEETは複数ソースファイルのプロジェクトとしての管理機能や、Makefileの自動作成、Telnet、ソフトウェアデバッガなど、組み込みプリケーション作成に必要な機能が全て揃っています。
自動生成されたソースコードのイベント処理用空関数に必要なコードを記述します。

?セルフビルド

通常のアプリケーション開発同様、ビルド、テスト、デバッグを行います。
SWEETはMakefileの作成、GCCコンパイラの実行、GDBを使ったステップ実行などが出来ます。?、?を繰り返し行いダイアログなどのユーザインターフェース部分を完成させます。

?クロスビルド(ターゲット機による実行)

外部からの信号の取込や、速度など実機でしか行えない部分のコーディングと検証を行います。

ソースコード開示について

PlusGが必要とする全てのライブラリは非GPLライセンスですので、出荷の際にお客様の作成したアプリケーションのソースコードを開示する必要はありません。

ソフトウェア名ライセンス
cairo 1.6.4LGPL 1.2 or MPL 1.1
directfb 1.2.0LGPL
expat 1.95.8フリー
freetype 2.3.7フリー
fontconfig 2.3.1フリー
libstdc++6例外付GPL
glibcLGPL
libpngフリー
zlibフリー

ライセンス

PlusGのライセンスは、開発プロジェクト単位になっており、開発者の人数、使用するマシン数に制限はありません。もちろんランタイムライセンスも不要ですので出荷台数にも影響しません。

リファレンスマニュアル

安心サポート

初期導入サポートとして導入時にオンサイトで開発環境の構築、アプリケーション開発手順、ライブラリについての解説などを行います。
導入後、開発期間サポートとして、関数の使い方はもちろん、お客様のアプリケーション機能に応じたサンプルプロクラムの作成や、お客様のターゲットボード用の開発環境の構築に関するサポートやLinuxに関する一般的な質問などにも対応致します。

導入キット

SH4搭載Linuxボード、TFT液晶、タッチパネル、ハーネス、電源、を専用ケースに収めた「PlusG評価用 液晶キット」が用意されています。
キットにはソースコード付きサンプルプログラムがインストール済みです。サンプルを参考に導入からすぐに開発が始められます。

受託開発

アプリケーションの開発、外部H/Wとの連携、通信などの開発、Linuxデバイスドライバの作成、Linuxの移植など、一部または全部をお手伝いさせて頂くことも可能です。

パンフレット

体験版ダウンロード

ダウンロード

お問い合わせください

PlusG の導入のご検討、詳しい内容のお問い合わせは

電話 052−219−4277
シリコンリナックス株式会社 プラスG 担当者まで
(email:  sales@si-linux.co.jp  プラスG担当者宛て)

お気軽にお問い合わせください。

関連ページ