→ RAP Standard User Guide
→ RAP Lite User Guide
RAP サーバは、並列プログラムの実行に加え、並列コンパイラ、プログラムソース管理、
GUI やデバッグのためのデータサーバとしても機能します。
RAPサーバ
RAPクライアント
- コントロールパネル (ブラウザ)
- GUI (ブラウザ)
- デバッガ (ブラウザ)
- プログラムエディタ (Samba 経由)
外部機器 (オプション)
- I/O 通信 (任意プロトコル)
並列実行の単位をセルと呼び、それぞれのセルはc言語のプログラムを個別に実行します。
セル同士や外部との通信は無く、セルから見た入出力は共有メモリしかありません。
セル
(cプログラム)
セル
(cプログラム)
セル
(cプログラム)
セル
(cプログラム)
・ ・ ・ ↓↑ ↓↑ ↓↑ ↓↑
共有メモリ
(c構造体)
GUI やデバッガはセルとは関係なく、直接共有メモリにアクセスします。
GUI は自由に定義できる HTML、デバッガは定型の HTML と、若干の違いはありますが、
いずれも共有メモリのデータをリアルタイムで表示し、値を設定することもできます。
GUI
- HTML による自由な変数値表示
- POST による変数値設定
(ブラウザ)
デバッガ
- 定型 HTML による変数値表示
- c言語書式での変数値設定
(ブラウザ)↓↑ ↓↑
GUI サーバ
デバッグサーバ ↓↑ ↓↑
共有メモリ
(c構造体)
標準の GUI には、クライアント PC のブラウザを使用します。
プログラミングとしては、ページの HTML を出力するcプログラムを書くだけで、
GUI サーバが並列実行コアのデータと連携し、HTTP リクエストも処理します。
Ajax によるスムーズな更新や、 POST による変数値の設定も可能です。
![]()
GUI プログラム例 (一部抜粋) /mon/paint/demo.c
printf ("speed = %d, start = %d, control= %d", gm.speed, gm.start, gm.control); printf ("<table>"); for (y=1; y<=19; ++y) { printf ("<tr>"); for (x=1; x<=21; ++x) { printf ("<td><img src='img/%d.png'></td>", gm.grid[x][y]); } printf ("</tr>"); } printf ("</table>");
デバッガは、拡張子 .d の 設定ファイルに共有メモリの変数名を列挙するだけで使えます。
設定ファイルを変更した時は、いつでも「up」ボタンをクリックして、 一覧を更新できます。
変数値の設定は、「変数名=値」の形式で入力し「send」ボタンをクリックすると実行できます。
![]()
speed start control frame second
RAP プログラムは、RAP サーバ上に複数のテキストファイルとして作成します。
エディタは任意のものをお使いいただけますが、日本語は EUC としてください。
これらのソースファイルにアクセスする方法は、いくつかあります。
- Windows PC から Samba 経由でアクセスする
- Linux PC からリモートでアクセスする
- RAP サーバ上で直接作業する
プログラム作成のはじめに、共有メモリの内容を定義します。
共有メモリを定義するには、作業フォルダトップに /gm.h というファイルを作成します。
c言語の書式で変数宣言を列挙すると、各セルでは gm.変数名としてアクセスできます。共有メモリ定義例 /gm.h
int speed; int start; int control; int frame; int second;セルのプログラムは、作業フォルダ以下の任意のフォルダに自由に作成できます。
ここで定義した変数は、セル内のローカル変数になります。
関数定義等は不要ですので、実行文をそのまま記述してください。セルプログラム例 /src/sample.c
int my_local_count = 0; if (gm.speed) gm.display = "運転中"; else gm.display = "停止中"; if (gm.start == 0) gm.control = 0; else if (gm.control == 0) gm.control = 1; ++gm.frame; ++my_local_count;