2016-06-28 6 views
0

LinuxではHIDからの情報を引き出す際に多くの答えが見つかりましたが、Windowsでは多くの情報が見つかりませんでした。Windowsの複数のHIDからの入力の並べ替え

私は、出席者をデータベースに記録するブリーフィングを入力するときにIDバッジをスキャンできるシステムを作成しました。 MongoDBデータベースを照会して更新するPython 3.4フロントエンドを利用しています。

現在のところ、スキャンするとキーボードとして機能し、バーコードの内容を「タイプ」してCRを表示するUSB​​バーコードスキャナがあります。私はまた、テキストを入力してウィンドウを閉じ、CRを受け取ったときにデータベースクエリと更新を実行するウィンドウを持っています。

現在の問題は速度です。 USBハブを搭載した1台のコンピュータが同時に4〜8台のバーコードスキャナを使用できるようにシステムを拡張するよう依頼されており、5分間ごとに1000人にスキャン速度を向上させようとしています。

2つのスキャンがほぼ同時に発生した場合、入力が重複し、無効なクエリが生成され、両方の個人がログに記録されなくなることが懸念されます。

私が理解できる限り、重複するデータを防ぐために各スキャナを独自のスレッドに配置する必要があります。このシステムとしてスキャンが開始されたことを検出すると、他のスキャナから入力を「ロック」したくありません。スピードがすべてです。しかし、どのようにデバイスを区別するのか、システムをどのように実装するのかはわかりません。

解決方法はありますか?この意味でのHIDの使い方はよくわからず、マルチスレッドの基本的な背景しか持っていないことに注意してください。

+0

どのような種類のスキャナーがありますか?スキャン後にOK/NOKのような応答が必要なシステムはありますか? – profesor79

+0

現在使用されているスキャナはAmazon:[link](https://www.amazon.com/Automatic-Barcode-Scanning-Bar-code-Adjustable/dp/B00406YZGK/ref=sr_1_3?ie=UTF8&qid=1467243673&sr=8 -3&keywords = barcode + scanner) システムにはレスポンスは必要なく、まもなくより優れたスキャナーにアップグレードする予定です。彼らはまだキーボードとして機能し、スキャンが完了したらCRを追加するさまざまな種類のものになります。 – garethsspace

答えて

0

このシナリオでは、シリアル(COM)ポートをエミュレートできるスキャナ/リーダーの使用を推奨します。 HIDデバイスが同じバスに書き込むとき、2つ以上のデバイスからの出力が混在する可能性が非常に高くなります。

続きを読むdev01のような接頭辞にデバイスID文字列を追加します。 comポートへのバインディングは、pySerialモジュールで使用できます。

すべての歓迎!

+0

非常に感謝しています!遅延返信での謝罪、政府のインターネットはそれのような気まぐれになることができます。私は、各デバイスを継続的に監視するためのスレッドを実行する必要があると仮定?また、自動的に(プラグアンドプレイスタイルの)ドライバをインストールするデバイスをCOMポートとして動作させることは可能でしょうか?手伝ってくれてどうもありがとう! – garethsspace

関連する問題