Vectorにて公開

マウスチャタリングキャンセラが、ベクターに登録されたようです。
以後は、ベクターに登録されたものが正式版ということになりもす。

ChaterringCanceler 1.0正式版

これでやっと、うpろだの仮住まいから卒業(*´Д`)
ということで、1.0 のバグ報告はこの記事へのコメントで投稿してください。
お願いします。


でまあ、1.0 が公開されたばかりのこのタイミングで 1.1β1が出来ました。ハイ。

ChatteringCanceler 1.1β1

2008.06.20追加
1.1正式版を公開しました


2009/01/29追記

1.2 正式版リリースしました

β版は相変わらずうpろだ公開です。
どこが変わったのかと言うと・・・

・ドラッグ失敗対策用に新しいキャンセル処理方式を追加
・処理方式を選択可能にした
・処理方式追加に伴い設定項目を追加
・ログ出力機能追加

こんな感じです。
1.0 での実績ある処理はまるごと残し、新ロジックを追加しました。
ログ取得は、実は以前からデバッグ用に入っていたものにファイル出力を追加しただけです。
メニューから「ログ出力」を選ぶか、終了するとファイルに書くので、実行中は負担になりません。
チャタリングが取り切れない、クリックやドラッグがいまいちおかしいなどの現象が起こるようでしたら、ログをコメントにでも貼り付けていただければ対策検討の材料にします。

以下は新ロジックの概要
(わかんなくても使えますのでヌルーしても問題なし)

「イベントディレイ方式」と名付けられていますが、要するにやってることは通常ファームウェアなどでチャタリングを除去する際には普通に利用されている処理方式と変わりません。
つまり

1. ボタンの状態変化を検知
2. 一定時間 Wait してスイッチの安定を待つ
3. Wait 後のスイッチ状態を見て、スイッチ状態を判定する

という感じになります。
ただし、この処理をマウスのグローバルフックで行う以上は、単にフックプロシジャ内で Sleep してしまうと他のマウスメッセージに影響が出てしまいます。
これを防ぐため、マルチスレッド動作が必須になります。
つまり

1. ボタンの状態変化を検知(メインスレッド)
2. 発生したイベントを保存して監視スレッドをキック後終了(メインスレッド)←これで次のメッセージを受付可となる
3. 一定時間 Wait してスイッチの安定を待つ(モニタスレッド)
4. Wait 後のスイッチ状態を見て、スイッチ状態を判定する(モニタスレッド)
5. マウスイベントをエミュレートする(モニタスレッド)

大雑把に言って、こんな感じです。
もちろんモニタスレッドが待機中にもマウスメッセージは来ますので、メインスレッドとモニタスレッドの同期を取るようメインスレッドでは処理を行っています。
当然クリティカルセクションで保護を行わないと、イベント二重発行なども起きてしまいます。
そのあたりの話も含め、いずれソースも交えてネタにしようと思っています。

ブログ気持玉

クリックして気持ちを伝えよう!

ログインしてクリックすれば、自分のブログへのリンクが付きます。

→ログインへ

なるほど(納得、参考になった、ヘー)
驚いた
面白い
ナイス
ガッツ(がんばれ!)
かわいい

気持玉数 : 1

ナイス

この記事へのコメント

この記事へのトラックバック

  • ChatteringCanceler 1.0 リリース

    Excerpt: ようやくマウスチャタリング対策ツール「ChatteringCanceler」が正式版になりますた。 相変わらずうpろだでの公開ですがそれがなにか。 Weblog: ヨン様と呼ばないで! racked: 2008-06-05 01:00
  • ChatteringCanceler RC1

    Excerpt: マウスボタンのチャタリング対策ツール「ChatteringCanceler」を更新しました。 正式リリース直前版になります。 Weblog: ヨン様と呼ばないで! racked: 2008-06-05 01:02
  • 続々ChatteringCanceler

    Excerpt: マウスボタンのチャタリング対策ツール「ChatteringCanceler」を更新しました。 Weblog: ヨン様と呼ばないで! racked: 2008-06-05 01:02
  • 続 ChatteringCanceler

    Excerpt: チャタリングキャンセラ、更新しますた。 Weblog: ヨン様と呼ばないで! racked: 2008-06-05 01:03
  • マウスボタンチャタリング対策(Windows限定)

    Excerpt: 俺は前からマウスにLogicool G7を使っている。 反応・手への馴染み具合・重量などで大変気に入っているマウスなんだが、ひとつだけ重大な問題がある。 Weblog: ヨン様と呼ばないで! racked: 2008-06-05 01:04
  • ChatteringCanceler と ZoneAlarm 相性問題解決

    Excerpt: あけましておめでとうございます。 既に年が明けてから1週間以上経過してんだろとかそういうのはナシの方向で。 Weblog: ヨン様と呼ばないで! racked: 2009-01-10 23:00
  • ChatteringCanceler 1.2 リリース

    Excerpt: 大変長らくお待たせしました。 延々βテスト(という名の放置プレイ)状態でしたが、ようやく ChatteringCanceler 1.2 の正式版が Vectorで公開されました。 Weblog: ヨン様と呼ばないで! racked: 2009-01-29 23:22