TRON-GUI仕様の概要
ITRONプロジェクトにおける標準化活動の最新状況

松為 彰パーソナルメディア株式会社
トロン協会 TRON-GUI仕様研究会 主査

PERSONAL MEDIA
CORP.
www .personal-media.co.jp

TRON-GUI仕様のコンセプト
TRON-GUIPERSONAL MEDIA
CORP.
www .personal-media.co.jp

TRON-GUIの背景TRON-GUIの背景■ 日本が最も競争力を持つ産業分野の1つ「家電」
家電やOA機器の情報化とネットワーク化、高機能化→ GUIの導入（液晶パネルをもったコピー機、VTRなど）機器の高機能化を受けて、今後も拡大傾向が続く■ 工場やプラント制御におけるGUIへの要求
ホコリなどの劣悪な環境のため、キーボードや普通の物理的なスイッチが使えない

PERSONAL MEDIA
CORP.
www .personal-media.co.jp

TRON-GUIの背景TRON-GUIの背景■ 家電制御用ソフトウエアの開発期間短縮のニーズ
制御機器のGUIを整備するプラットフォームが無い→ 仕様がバラバラで標準化されない→ 実装者の負担が大きい。GUIのプログラムをシステム毎に個別に作らなければならない
上記に応える組込み制御用の軽いGUIシステム

TRON-GUIGUI (Graphical User Interface)を持ったITRON
ネットワーク化された情報家電を構築する基盤技術

PERSONAL MEDIA
CORP.
www .personal-media.co.jp

TRON-GUIの対象システム
TRON-GUIの対象システム■ 小規模用途向け（高機能家電、携帯電話レベル）■ 大規模用途向け（PC、FAレベル）
BTRON仕様に近い機能まで提供
具体的には、以下のような機能まで想定
データボックス
オーバーラップマルチウィンドウ
かな漢字変換
手書き文字認識PERSONAL MEDIA
CORP.
www .personal-media.co.jp

TRON-GUIにおける標準化方針
TRON-GUIにおける標準化方針■ ターゲット側のプログラムのI/F(API)を標準化する
すなわち、まず実行環境を標準化■ 見た目のデザイン（ルック＆フィール）は標準化しない
スイッチ類の色づかいや形状については規定せず、メーカーの個性を出すべき余地を残す

PERSONAL MEDIA
CORP.
www .personal-media.co.jp

TRON-GUIの仕様設計方針
TRON-GUIの仕様設計方針■ TRON-GUIとして考えられる機能は幅広い用途による差異が大きい

画一的な標準化は無理
レベル分け（プロフィール分け）やサブセット化

例：スイッチ類は全てビッ：スイッチ類は全てビットマップでデザイン
ビットマップが書ければ直線描画機能さえ不要

例：かな漢字変換：かな漢字変換
辞書の読み出しまで含む高度な機能だが、TRONFAXの宛先設定等の用途で必要の宛先設定等の用途で必要
TRON-GUIでもGUIでもFAXPERSONAL MEDIA
CORP.
www .personal-media.co.jp

TRON-GUIとBTRONとの関係
TRON-GUIとBTRONとの関係■ 基本的にはBTRON仕様をベースに、不要な機能を除いたものがTRON-GUI
TRON-GUI仕様はBTRONのDPやパーツマネージャのサブセットをベースとした仕様■ TRON-GUIとBTRONとの相違点‐不特定のアプリケーションには対応しない‐高信頼性の要求 (例：メモリ不足は許されない)→できるだけ動的なリソース確保を避ける
オブジェクトの静的生成など

PERSONAL MEDIA
CORP.
www .personal-media.co.jp

TRON-GUIとBTRONとの関係
TRON-GUIとBTRONとの関係■ 組込みシステムとしての要求
システムコール実行時のメモリ不足など
不確定な挙動を避け、信頼性を上げる

オブジェクトの静的生成

必要なオブジェクト（描画パターン等）はできるだけ静的に生成し、その記述方法を標準化※μITRON 4.0 仕様の CRE̲TSK などと同じ考え方

PERSONAL MEDIA
CORP.
www .personal-media.co.jp

TRON-GUI仕様の実際

PERSONAL MEDIA
CORP.
www .personal-media.co.jp

API
設計の基本方針
API設計の基本方針
1. PD, KBの入力を「イベント」として統一的に管理
シーン／パネル管理機能がイベントをdispatch（＝対応するパーツ等に配分する）

2. パーツの動作やイベントに対するアプリ側の処理はコールバック関数で記述
例：スイッチが押された場合の処理
ボリュームの設定値が変わった場合の処理

パネル、パーツ等の生成時にコールバック関数を定義
コールバック関数自身はシリアルに動作するが、同期機能を利用すれば実処理を別タスクに分割可能

PERSONAL MEDIA
CORP.
www .personal-media.co.jp

主なデータ
主なデータタタイプ
イプ
INT 整数
COORD
PNT
RECT

CPUの基本ビット数（カーネルと同じ）
座標値 8または16ビット
点
COORD x, y の組み合わせ
長方形 COORD left, top, right, bottom

typedef struct point {COORD x;/* 水平座標値 */COORD y;/* 垂直座標値 */} PNT;
※ 座標値が8ビットかも決めかねる
座標値が8ビットか16か16ビッ

PERSONAL MEDIA
CORP.
www .personal-media.co.jp

TRON-GUIの機能PERSONAL MEDIA
CORP.
www .personal-media.co.jp

ディスプレイ(DP)
ディスプレイ・・プ
プリ
リミ
ミテティブ
ィブ(DP)■ グラフィック画面上に図形や文字を描画‐直線、点、長方形、多角形、だ円などの描画‐長方形、多角形、だ円などの塗りつぶし‐ビットマップの転送、変換‐ピッキング‐文字や文字列の描画‐ポインタ（マウスカーソル）の表示や操作

PERSONAL MEDIA
CORP.
www .personal-media.co.jp

ディスプレイ(DP)
ディスプレイ・・プ
プリ
リミ
ミテティブ
ィブ(DP)
以下、Ver
以下、Ver 0.9 の一部のサービスコールを紹介※ 最終公開時には変更される可能性がある■ 画面デバイス操作
画面デバイスの生成
gui̲cre̲scr
画面デバイスの静的生成
GUI̲CRE̲SCR
画面デバイスの生成（ID自動） gui̲acre̲scr
画面デバイスの削除
gui̲del̲scr
画面デバイスの情報参照
gui̲ref̲scr
画面デバイスのハードウェア制御
gui̲ctl̲scr

PERSONAL MEDIA
CORP.
www .personal-media.co.jp

ディスプレイ(DP)
ディスプレイ・・プ
プリ
リミ
ミテティブ
ィブ(DP)■ 描画環境操作
描画環境の生成
描画環境の静的生成
描画環境の生成（ID自動）描画環境のロック
クリッピング長方形配列の設定
クリッピング長方形配列の取得

gui̲cre̲gnv
GUI̲CRE̲GNV
gui̲acre̲gnv
gui̲loc̲gnv
gui̲set̲clp
gui̲get̲clp

PERSONAL MEDIA
CORP.
www .personal-media.co.jp

ディスプレイ(DP)
ディスプレイ・・プ
プリ
リミ
ミテティブ
ィブ(DP)■ 図形描画
直線の描画
長方形の枠の描画
長方形の内部の描画
円・楕円の枠の描画
円・楕円の内部の描画
直線列の描画
多角形の枠の描画
多角形の内部の描画

gui̲dra̲lin
gui̲fra̲recgui̲fil̲rec
gui̲fra̲ovl
gui̲fil̲ovl
gui̲dra̲plngui̲fra̲pol
gui̲fil̲pol

PERSONAL MEDIA
CORP.
www .personal-media.co.jp

ディスプレイ(DP)
ディスプレイ・・プ
プリ
リミ
ミテ
ティブ
ィブ(DP)■ ビットマップ描画
ビットマップの単純描画
ビットマップのペン描画
ビットマップの拡大縮小描画
ビットマップのコピー
描画イメージのコピー
描画イメージのペン描画
描画イメージの拡大縮小描画
描画イメージの取得

gui̲put̲bmp
gui̲dra̲bmp
gui̲rsz̲bmp
gui̲cpy̲bmp
gui̲cpy̲img
gui̲dra̲img
gui̲rsz̲img
gui̲get̲img

PERSONAL MEDIA
CORP.
www .personal-media.co.jp

ディスプレイ(DP)
ディスプレイ・・プ
プリ
リミ
ミテ
ティブ
ィブ(DP)■ フォント管理
フォントの生成gui̲cre̲fnt
フォント変更（選択情報の設定） gui̲set̲fsi
フォント選択情報の取得
gui̲get̲fsi
文字フォント情報の取得
gui̲get̲fni
フォントイメージ取得
gui̲fnt̲bmp

PERSONAL MEDIA
CORP.
www .personal-media.co.jp

ディスプレイ(DP)
ディスプレイ・・プ
プリ
リミ
ミテ
ティブ
ィブ(DP)■ 文字描画
文字描画情報の設定
文字描画情報の取得
文字の描画
文字の位置指定描画
文字列の描画
文字列の位置指定描画
文字列領域の取得

gui̲set̲chd
gui̲get̲chd
gui̲dra̲chr
gui̲dra̲chp
gui̲dra̲str
gui̲dra̲stp
gui̲are̲stp

PERSONAL MEDIA
CORP.
www .personal-media.co.jp

GUI
イベント管理GUIイベン
ト管理
GUIイベントの送信
PD状態の変更通知／ドライバ用
キー状態の変更通知／ドライバ用
物理パーツ状態の変更／ドライバ用
PD属性の設定
キー属性の設定
GUIイベントの受信
PD状態のポーリング
SUI移動状態のポーリング

gui̲put̲evt
gui̲put̲pds
gui̲put̲kys
gui̲put̲sis
gui̲set̲pda
gui̲set̲kyagui̲tget̲evt
gui̲pol̲pds
gui̲pol̲sui

PERSONAL MEDIA
CORP.
www .personal-media.co.jp

GUI
イベント管理GUIイベント管理■ イベントメッセージ管理
イベントメッセージの送信
イベントメッセージの受信

gui̲snd̲evm
gui̲twai̲evm

PERSONAL MEDIA
CORP.
www .personal-media.co.jp

パーツ管理
パーツ管理
各種のスイッチやボリュームの表示や操作パーツの生成
パーツの静的生成
パーツの生成（ID自動）パーツの属性設定
パーツの属性取得
パーツの値設定
パーツの値取得
パーツの表示環境変更と再表示
パーツのイベント処理

gui̲cre̲parGUI̲CRE̲PAR
gui̲acre̲pargui̲set̲pab
gui̲get̲pab
gui̲set̲pvl
gui̲get̲pvl
gui̲chg̲pargui̲act̲parPERSONAL MEDIA
CORP.
www .personal-media.co.jp

シーン／パネル管理
シーン／パネル管理
画面への表示単位となるパーツ等の集合体
画面全体を使うのがシーン
画面の一部にオーバーラップするのがパネルシーンの生成
シーンの静的生成
シーンの生成（ID自動）パネルの生成シーンのオープン
パネルのオープン
パネルのクローズ

gui̲cre̲scn
GUI̲CRE̲SCN
gui̲acre̲scn
gui̲cre̲pnl
gui̲opn̲scn
gui̲opn̲pnl
gui̲cls̲pnl

PERSONAL MEDIA
CORP.
www .personal-media.co.jp

その他
その他
デバイスのハードウェア制御

gui̲ctl̲dev

PERSONAL MEDIA
CORP.
www .personal-media.co.jp

まとめと今後のスケジュール
まとめと今後のスケジュール
まず、混沌とした組込み向けGUIの世界に枠組みを作る＝ITRONカーネルの10年前の状況と類似●1999年 4月「TRON-GUI仕様研究会」発足●

1999年 8月

研究会内部での暫定ドラフト1版●

1999年12月

暫定ドラフト改訂版(Ver 0.9)

●

2000年

プロトタイプ実装とフィードバック
公開レビュー（予定）