ページへ戻る

− Links

 印刷 

gg00man​/signal のバックアップ差分(No.2) :: OSASK計画

osaskwiki:gg00man編集/signal のバックアップ差分(No.2)

« Prev[4]  Next »[5]
1: 2003-10-24 (金) 07:33:00 ソース[6] 2: 2004-02-13 (金) 18:50:59 ソース[7]
Line 28: Line 28:
 参考になるサンプル:movec2(introa)  参考になるサンプル:movec2(introa)
 +-p0crefリンク:http://user.ecc.u-tokyo.ac.jp/~g240845/osask/p0cref.html#0060
***lib_waitsignal ***lib_waitsignal
Line 48: Line 49:
 参考になるサンプル:movec2(introa)  参考になるサンプル:movec2(introa)
 +-p0crefリンク:http://user.ecc.u-tokyo.ac.jp/~g240845/osask/p0cref.html#0018_f
**シグナル定義 **シグナル定義
Line 87: Line 89:
 (オープン済みであること)を指定する。  (オープン済みであること)を指定する。
- 参考になるサンプル:movec2(introa),dblcntc0(introb)+ 参考になるサンプル: 
 +   キーシグナル:movec2(introa), keytstc0(introc)[拡張キーシグナル] 
 +   タイマーシグナル:dblcntc0(introb) 
 +-p0crefリンク: 
 +--キーシグナル:http://user.ecc.u-tokyo.ac.jp/~g240845/osask/p0cref.html#0068_100 
 +--タイマーシグナル:http://user.ecc.u-tokyo.ac.jp/~g240845/osask/p0cref.html#0068_10 
 +--低レベルマウスシグナル:http://user.ecc.u-tokyo.ac.jp/~g240845/osask/p0cref.html#0068_200
***void lib_definesignal0p0 ***void lib_definesignal0p0
Line 97: Line 105:
 参考になるサンプル:movec2(introa)  参考になるサンプル:movec2(introa)
 +-p0crefリンク:http://user.ecc.u-tokyo.ac.jp/~g240845/osask/p0cref.html#0068_0
**タイマー制御 **タイマー制御
Line 138: Line 147:
 参考になるサンプル:cntdwnc1(introa)  参考になるサンプル:cntdwnc1(introa)
 +-p0crefリンク:http://user.ecc.u-tokyo.ac.jp/~g240845/osask/p0cref.html#0018_f
***lib_opentimer ***lib_opentimer
Line 151: Line 161:
 参考になるサンプル:dblcntc0(introb)  参考になるサンプル:dblcntc0(introb)
 +-p0crefリンク:http://user.ecc.u-tokyo.ac.jp/~g240845/osask/p0cref.html#0070
***lib_closetimer ***lib_closetimer
Line 161: Line 172:
 slotはタイマーとして使っていたスロット番号を指定する。使用している3つのうち、  slotはタイマーとして使っていたスロット番号を指定する。使用している3つのうち、
 最初の1つを指定する。  最初の1つを指定する。
 +-p0crefリンク:http://user.ecc.u-tokyo.ac.jp/~g240845/osask/p0cref.html#0074
***lib_settimertime ***lib_settimertime
Line 180: Line 192:
 シグナルを発するか、もしくはキャンセルすることによって休止状態に戻るまで  シグナルを発するか、もしくはキャンセルすることによって休止状態に戻るまで
 次の設定はできない。  次の設定はできない。
 +
 + タイマーシグナルの発生頻度も、lib_waitsignaltime()と同様に、間隔が少なくとも
 + 10ミリ秒以上はあってほしい。これももちろん10ミリ秒単位であることを要請している
 + わけではない。また頻繁に繰り替えすことがないのなら、10ミリ秒を
 + 下回ることがあってもかまわない。将来のOSASKでは、連続して何度も10ミリ秒以下の
 + 指定をした場合、OS側で強制的に10ミリ秒間間隔に補正される可能性がある。
 + 現在のOSASKでは、OSの動作が不安定になるので、やってはいけない。
 参考になるサンプル:dblcntc0(introb)  参考になるサンプル:dblcntc0(introb)
 +-p0crefリンク:http://user.ecc.u-tokyo.ac.jp/~g240845/osask/p0cref.html#0078_32
***lib_settimer ***lib_settimer
Line 193: Line 213:
 もともと休止状態にあるタイマーに対し、キャンセルしてもよいが、何も起きない。  もともと休止状態にあるタイマーに対し、キャンセルしてもよいが、何も起きない。
- タイマーシグナルの発生頻度も、lib_waitsignaltime()と同様に、間隔が少なくとも + 参考になるサンプル:dblcntc0(introb) 
- 10ミリ秒以上はあってほしい。これももちろん10ミリ秒単位であることを要請している +-p0crefリンク:http://user.ecc.u-tokyo.ac.jp/~g240845/osask/p0cref.html#0078_1 
- わけではない。また頻繁に繰り替えすことがないのなら、10ミリ秒を + 
- 下回ることがあってもかまわない。将来のOSASKでは、連続して何度も10ミリ秒以下の +***lib_settimertime2 
- 指定をした場合、OS側で強制的に10ミリ秒間間隔に補正される可能性がある。 + void lib_settimertime2(int opt, int slot0, int slot1, unsigned int *time) : 
- 現在のOSASKでは、OSの動作が不安定になるので、やってはいけない。+ 
 + 2つのタイマーの間の時間差を算出します。timeはunsigned intの配列(もしくはポイ 
 + ンタ)で、最低でも3つの要素が必要です。計算された値が、timeに格納されます。 
 + 
 +    time = slot1 - slot0 
 + 
 + time[0]が下位で、time[2]が上位です。time[1]がちょうど秒の位になります。つまり、 
 + タイマー設定の際のいつもの単位です。なおこの時に返される値の精度については保証 
 + しません。おそらくOSASKのバージョンによってまちまちでしょう。 
 + 
 + 参考になるサンプル:starsc0(introd) 
 +-p0crefリンク:http://user.ecc.u-tokyo.ac.jp/~g240845/osask/p0cref.html#0078_82
**タイマーの3つの状態 **タイマーの3つの状態
« Prev[4]  Next »[5]