|
マウスチャタリングキャンセラが、ベクターに登録されたようです。 以後は、ベクターに登録されたものが正式版ということになりもす。 ChaterringCanceler 1.0正式版 これでやっと、うpろだの仮住まいから卒業(*´Д`) ということで、1.0 のバグ報告はこの記事へのコメントで投稿してください。 お願いします。 でまあ、1.0 が公開されたばかりのこのタイミングで 1.1β1が出来ました。ハイ。 2008.06.20追加 1.1正式版を公開しました β版は相変わらずうpろだ公開です。 どこが変わったのかと言うと・・・ ・ドラッグ失敗対策用に新しいキャンセル処理方式を追加 ・処理方式を選択可能にした ・処理方式追加に伴い設定項目を追加 ・ログ出力機能追加 こんな感じです。 1.0 での実績ある処理はまるごと残し、新ロジックを追加しました。 ログ取得は、実は以前からデバッグ用に入っていたものにファイル出力を追加しただけです。 メニューから「ログ出力」を選ぶか、終了するとファイルに書くので、実行中は負担になりません。 チャタリングが取り切れない、クリックやドラッグがいまいちおかしいなどの現象が起こるようでしたら、ログをコメントにでも貼り付けていただければ対策検討の材料にします。 以下は新ロジックの概要 (わかんなくても使えますのでヌルーしても問題なし) 「イベントディレイ方式」と名付けられていますが、要するにやってることは通常ファームウェアなどでチャタリングを除去する際には普通に利用されている処理方式と変わりません。 つまり 1. ボタンの状態変化を検知 2. 一定時間 Wait してスイッチの安定を待つ 3. Wait 後のスイッチ状態を見て、スイッチ状態を判定する という感じになります。 ただし、この処理をマウスのグローバルフックで行う以上は、単にフックプロシジャ内で Sleep してしまうと他のマウスメッセージに影響が出てしまいます。 これを防ぐため、マルチスレッド動作が必須になります。 つまり 1. ボタンの状態変化を検知(メインスレッド) 2. 発生したイベントを保存して監視スレッドをキック後終了(メインスレッド)←これで次のメッセージを受付可となる 3. 一定時間 Wait してスイッチの安定を待つ(モニタスレッド) 4. Wait 後のスイッチ状態を見て、スイッチ状態を判定する(モニタスレッド) 5. マウスイベントをエミュレートする(モニタスレッド) 大雑把に言って、こんな感じです。 もちろんモニタスレッドが待機中にもマウスメッセージは来ますので、メインスレッドとモニタスレッドの同期を取るようメインスレッドでは処理を行っています。 当然クリティカルセクションで保護を行わないと、イベント二重発行なども起きてしまいます。 そのあたりの話も含め、いずれソースも交えてネタにしようと思っています。 |
| << 前記事(2008/06/02) | トップへ | 後記事(2008/06/14)>> |
| タイトル (本文) | ブログ名/日時 |
|---|---|
ChatteringCanceler 1.0 リリース
ようやくマウスチャタリング対策ツール「ChatteringCanceler」が正式版になりますた。 相変わらずうpろだでの公開ですがそれがなにか。 ...続きを見る |
ヨン様と呼ばないで! 2008/06/05 01:00 |
ChatteringCanceler RC1
マウスボタンのチャタリング対策ツール「ChatteringCanceler」を更新しました。 正式リリース直前版になります。 ...続きを見る |
ヨン様と呼ばないで! 2008/06/05 01:02 |
続々ChatteringCanceler
マウスボタンのチャタリング対策ツール「ChatteringCanceler」を更新しました。 ...続きを見る |
ヨン様と呼ばないで! 2008/06/05 01:02 |
続 ChatteringCanceler
チャタリングキャンセラ、更新しますた。 ...続きを見る |
ヨン様と呼ばないで! 2008/06/05 01:03 |
マウスボタンチャタリング対策(Windows限定)
俺は前からマウスにLogicool G7を使っている。 反応・手への馴染み具合・重量などで大変気に入っているマウスなんだが、ひとつだけ重大な問題がある。 ...続きを見る |
ヨン様と呼ばないで! 2008/06/05 01:04 |
| 内 容 | ニックネーム/日時 |
|---|
| << 前記事(2008/06/02) | トップへ | 後記事(2008/06/14)>> |