[Subject Prev][Subject Next][Thread Prev][Thread Next][Subject Index][Thread Index]
[OSASK 2708] from OSASK BOARD
このメールは、OSASK伝言板に書き込まれた内容です。
この書き込みに返事を書く場合は、下のURLから書き込みを行なって下さい。
http://www.imasy.or.jp/~mone/osask/index.cgi?REFER=3c171e93_92fb
From: 川合秀実
Message-ID: 3c171e93_92fb
Date: 2001/12/12 18:08
Subject: Re: ちょっとだけ。
[OSASK 2691]へのレスです。
>ただ、やはり簡単な流れというか
>シグナルとデータの流れは
>解説していただきたいです。
>いろいろ参考になると思うので。
かしこまりました。・・・さて、どの辺りから説明すればいいでしょうか?
たとえばキー入力した場合、そのシグナルはどうやってアプリに伝わるのかを
簡単に説明しましょうか。もちろんこの説明は現在の実装をベースにしているの
で、将来は変わるかもしれません。それはご了承ください。
アプリがlib_definesignal1p0()を呼び出すと、すぐにpioneer0に制御が移り
、pioneer0はinit内のGUIGUI_shellcall()を呼び出します。shellcallではパラ
メーターを適当に並べ替えたり変換したりしてふさわしい形式を整え、tapi0を
通じてwinman0のタスクへパラメーター付きシグナルを送ります。lib_definesi
gnal1p0()を実行したタスクの方での出来事はこれでおしまいです。引き続き、
次の処理を進めていくだけです。
一方、winman0タスクの方は、キーシグナル定義シグナルを受け取って、それ
を記憶します。そして対応づけを要求されたウィンドウが入力アクティブになっ
た時にsgg_execcmd0()を使って、キーコード(これはハードウェア依存のローレ
ベルなコードで、このコードへの変換はwinman0内で行っている)と、送信先の
タスクとキー入力の際に送るべきシグナルの値を登録します。この登録コマンド
はinit内のGUIGUI_shellcall2()を通じて、decode0に送られ、decode0内のワー
クエリアに記録されます。
キーが入力されると、キーボード割り込みをkeymos0が受け、キーボードイン
ターフェースからキーコードを受け取り、makeかremakeかbreakなのかの情報を
付加して、これらを引数としてdecode0を呼び出します。decode0はこのキーコー
ドに対するシグナルが定義されているかどうかを自身のワークエリアから判定し
、定義されていなければ何もしません。定義されていれば、tapi0のコマンドを
使って目的のタスクに対応するシグナルを送ります。
これでおしまいです。
一度に多くを説明することは出来ません。どの分野のどの部分を中心に説明し
てほしいのかをリクエストして頂けないでしょうか。シグナルはそれこそたくさ
んの種類がありますし(OSASK全体はシグナルによって運営されていると言って
も過言ではないくらいです)、もちろんデーターもいろいろやり取りされていま
す。・・・そして一つ説明が済むたびに、また次のリクエストをしてください。