WideStudio Logo
WideStudio Online Documents
WideStudio Index
Table of contents

WideStudio for BTRON


WideStudio for BTRON は、 T-Engine または BTRON におけるデスクトップアプリケーションを 製作するための WideStudio です。
WideStudio for BTRON を使うと次のような特徴がある T-Engine/BTRON アプリケーションを 製作することができます。

WideStudio for BTRON の環境の構築

WideStudio for BTRON では、Linux を開発環境とし、 BTRON アプリケーションを Linux 上で構築します。 出来たアプリケーションを BTRON に転送し、 実行しデバッグする開発形態をとります。
WideStudio for BTRON で BTRON アプリケーションを製作するために 必須なソフトウェアを、 下記に示します。
コンパイラは、Linux に付いて来る Linux 用の gcc/g++ コンパイラと、 bright-v 開発環境に添付されている gcc386 コンパイラが必要です。 bright-v 開発環境が /usr/local/brightv に インストールされているものとして、WideStudio for BTRON の 環境構築を進めたいと思います。

WideStudio for BTRON のビルド

WideStudio のソースコードは、 WideStudio のバージョン番号を X.XX-X とすると 含んだ ws-vX.XX.X-src.tar.gz というファイル名で公開されています。
そのファイルを入手したら、T-Engine 開発環境がインストールされている Linux 機で次のように展開します。
 cd /usr/local/brightv
 gzip -cd ws-vX.XX.X-src.tar.gz | tar -xvf -
WideStudio for BTRON のビルドは2つのフェーズからなります。 1つは WideStudio 本体のビルドと、 1つは BTRON 用のライブラリのビルドです。 WideStudio 本体のビルドは、 gcc/g++ を Linux のものを用いて、 次の手順でおこないます。
cd /usr/local/brightv/ws
./configure
make
本体のビルドが終ったら次は、 WideStudio for BTRON のビルドです。 WideStudio for BTRON のビルドは、 BTRON バイナリを生成するために、 BTRON 用のコンパイラを使用するため、 次の樣に設定します。
csh の場合の場合の設定を示します。
setenv BD /usr/local/brightv
setenv PATH $BD/tool/gnu/i386-unknown-gnu/bin:/usr/local/brightv/ws/bin:$PATH
setenv GNUs /usr
setenv GNU_BD $BD/tool/gnu
setenv GNUi386 $GNU_BD/i386-unknown-gnu
setenv WSDIR /usr/local/brightv/ws
setenv LD_LIBRARY_PATH /usr/local/brightv/ws/lib:$LD_LIBRARY_PATH



環境変数の設定が終ったら次の手順でおこないます。
SH7751Rの場合
cd /usr/local/brightv/ws/src-btron
./configure
make
エラーが出ずにビルドできれば、環境のビルドはこれで完了です。 環境変数の設定は、wsbuilder による BTRON アプリケーションの作成時にも 必要ですので、ファイルに保存しておいて、 いつでも実行して設定できるようにしておくと良いでしょう。 常に、BTRON アプリケーションをビルドする環境に設定しておく場合は、 .cshrc などに設定しておくのも良いでしょう。

WideStudio for BTRON による Hello アプリケーションの作成

簡単なアプリケーション hello を例に、 WideStudio for BTRON で実際の BTRONアプリケーション構築手順を みていきましょう。

まず、wsbuilder を起動し、 アプリケーションビルダーの[プロジェクト]メニュー の新規プロジェクトを選択し、 新規にプロジェクトを作成します。 プロジェクト名に hello を指定して、 「通常のアプリケーション」を選択してします。 作成されるプロジェクトファイル名は、hello.prj です。

ウィンドウの作成

プロジェクトを作成したら、次は、 hello のベースとなるウィンドウを一つ作成しましょう。 ビルダーの[ファイル]メニューの新規ウィンドウ を選択します。タイプは、「通常のウィンドウ」を選択し、 newwin000 の名称で作成し、プロパティを次のように設定します。
オブジェクト名称: newwin000
X座標: 0
Y座標: 0
横幅: 240
縦幅: 300
タイトル属性: タイトルなし
次に、作成されたばかりのウィンドウ上に、 ボタンオブジェクトを配置し、次のように設定します。
オブジェクト名称: newvbtn_000
X座標: 10
Y座標: 10
横幅: 100
縦幅: 30
表示文字列: TEST



▲ hello のウィンドウの様子

イベントプロシージャの作成

次はいよいよイベントプロシージャの作成です。 ボタンを押したら、「Hello!」と表示されるようにしてみましょう。 イベントプロシージャは、C++言語で記述し、 オブジェクトのアクセスや任意のデータ処理等を行います。 そして、作成したプロシージャを配置した部品に対して、 起動されるイベントを指定します。
例えば、イベントプロシージャを、ボタンに対し、 マウスが押される等のイベントで設定しておくと、 マウスでボタンが押した時に実行されます。
作成したプッシュボタン newvbtn_000 に対し hello! と表示するような イベントプロシージャを作成します。 アプリケーションビルダーで、newvbtn_000 を選択して、 [編集]メニューの[プロシージャ編集]の[プロシージャ新規作成]を 選択し、次のように設定します。

#include 
#include 
#include 
//-----------------------------------------------
//Function for the event procedure
//-----------------------------------------------
void btnop1(WSCbase* object){
static long cnt = 0;
  if (cnt != 0){
    exit(0);
  }
  object->setProperty(WSNlabelString,"Hello!");
  cnt++;
}
static WSCfunctionRegister op("btnop1",(void*)btnop1);

Hello プロジェクトのビルド

作成した hello プロジェクトを アプリケーションビルダーの[プロジェクト]メニューの[プロジェクト保存] を選択して保存したら、 アプリケーションビルダーの[ビルド]メニューのビルドオールで ビルドを行います。 これでエラーが出なければ、hello は完成です。


▲ビルドのようす

ビルドが成功すると、プロジェクトのディレクトリに hello.bz が生成されます。 この hello.bz を BTRON 開発環境に標準で添付される gterm を用いて次のようにシリアル転送し、設定します。
また、ファイルの転送に関しては fget コマンドによるイーサネット転送も可能です。 詳しくは パーソナルメディア社から公開されている BTRON 開発環境の取扱説明書を 御覧ください。
[/SYS] recv -d /.../hello/hello.bz  ← hello.bz のファイルをフルパスで指定します。
[/SYS] expf -v hello.bz             ← hello.bz を展開します。
[/SYS] vup -t hello /SYS            ← hello を小物に登録します。
[/SYS] rm hello hello.bz            ← 不要になった hello を削除します。
これで、「サンプルプログラム」という題目で 小物に hello が登録されます。 小物からダブルクリックしてアプリケーションを起動することができます。 プロジェクトのディレクトリに生成される hello.f を編集することで、 登録される「サンプルプログラム」という題目を変更することができます。

Document Release 3.20 for WideStudio ver 3.20, Oct 2002


WideStudio documents index | Table of contents

Copyright(C) T. Hirabayashi, 2000-2002 Last modified: Dec 6, 2002