状態が変化したときのみ結果を出力するには?

解決


あつし  2008-02-24 02:04:30  No: 67665

はじめまして。

VC++2003.netを使用しています。
よければ教えてください。

スイッチをONにすると「1」
スイッチをOFFにすると「0」
を出力するボードがあります。

1秒ごとにこのボードの状態を監視し、
「ONになったときの時間」
「OFFになったときの時間」
を出力するプログラムを作りたいのです。

ボードの状態を取得する関数をJoutai()としました。
Timerを使って、1秒ごとにJoutai()を実行するところ
までいって、行き詰っています。

「状態が変化したときのみ」結果を出力するには
どのような構文を使えばよいのでしょうか。

ひたすら1秒ごとに接点の状態を出力することは
できるのですが、ON、OFFのタイミングだけ
出力したいのです。

非常に分かりづらい文章で申し訳ありませんが、
よろしくお願いします。


あらー  2008-02-24 02:46:00  No: 67666

ポポポポポ(  ゜д゜)゜д゜)゜д゜)゜д゜)゜д゜)ポカーン…

BOOL bBeforestate=Joutai();
while (true)
{
 BOOL bNowState=Joutai();
 if (bNowState!=bBeforestate)
 {
  //出力
 }
 bBeforestate=bNowState;
 sleep(1000);
}

OnTimerならwhileとsleepのところを消して、bBeforestateをメンバ変数に。

って、質問の趣旨はこういうこと?
1秒毎の検出でいいの?
あとOnTimerって、メッセージ処理の関係で正確じゃなくなる可能性があるんじゃなかったっけ?

質問にちょっと唖然としてしまった。


あつし  2008-02-24 04:52:10  No: 67667

あらーさま

超初心者の至らない質問に
答えていただき、ありがとうございます。

「1秒」にあまり正確さを必要としない
ため、OnTimerで問題なさそうです。

おかげさまで解決しました!


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加