|
[1268]18日、行きたいなぁ・・・ - 投稿者:わさびぃ
案内がきました。オービットさん、会場の衆目を浴びるんですね。・・それに、H.P.リニューアルされて、・・・。
******************** おめでとうございます。 ********************
ところで、DIOが気になりましたので、お考えをお聞かせください。
最近InterfaceさんのDIOや、ADCを使います。 実は、非常に低レベルな質問です・・、申し訳ありません。
I/O待ちに使う、次の処理、 WaitForSingleObject(Overlapped.hEvent, INFINITE); は、I/Oが入らないと終了しません。
私は、GUIをユーザーに開放するために、別スレッドを用意し、 スレッド内部に無限ループを 起動しています。
上記関数は、I/Oを絶対落としたくないので、無限待ちにしています。一度発生すると、かならず、一定時間がたってから、次の発生になりますので、必要な処理を 一定時間以内に収まるようにすれば、イベントを逃しません。
ユーザーが、処理を停止するときには、終了フラグをセットしてもらいます。
スレッド内部の無限ループ脱出には、この終了フラグを利用します。
問題は、WaitForSingleObjectが、無限待ち中は、この脱出フラグを見に来てくれない点です。
仕方なく、I/Oをたたいて終了した経験もあります。 (I/Oへのインプットを別に用意してキーボードの近くにスイッチを置きます)
でも、なんという間抜けなプログラマでしょう・・・。
ちなみに、uITRONの仕様ならば、 infinite待ちに入った処理を wai_rel関数で処理が終了できます。
おやねこさんの場合、どうされておいででしょう・・・。
企業秘密・・? なんて、言わずに・・。
よろしく、お願いします。
(
2004年11月12日 (金) 09時33分 )
|
|
- RES -
[1269] - 投稿者:あやねこ
わさびぃさん。お久しぶりです。 #リニューアルから、相当経ちますが・・・
DIOの件ですが、DIO専用のスレッドを一本立て、グルグル回しています。トリガを認識したら、検査用のスレッドを立てています。
遅れが気になるなら、ボードに外部トリガを入れれば済むことですし・・・。
#DIOボードは、どのボードにも存在するin/outしか使わないようにしています。そうすることで、DIOボードのメーカーに依存しないようにしています。
(
URL
2004年11月12日 (金) 10時30分 )
|