私たちが最終的に何をしたかを正確に説明する時が来ました...
2 ドングル なぜ?
- ドングルがスキャンを実行している場合、転送速度が大幅に低下します
- ドングルは 7 つの同時転送しかサポートできません。スキャンを実行している場合、これは 6 に減少します。すべてを同時に送信、受信、およびスキャンする場合、すべてがひどく遅くなり、チャネルが非常に制限されます。
したがって、1 つのドングルを継続的にスキャンして (デバイスができるだけ早く表示されるように) 実行し、もう 1 つのドングルを転送用に予約するというアイデアがあります。
使用したライブラリ
多くのテストと検討の結果、BT フレームワークの WirelessCommunicationLibrary を選択することになりました。
Widcomm、Windows、BlueSoleil、Toshiba スタックをサポートしています。私たちが必要とするすべてのサーバー側のものをサポートし、十分にサポートされている商用製品であり、エラーなしで完全に動作します.
どのスタック?
うーん、これは複雑な問題です。同時に 2 つのドングルをサポートするスタックはありません。したがって、唯一のオプションは、1 つのドングルを 1 つのスタックで実行し、別のドングルを別のスタックで実行することです。ここで、WCL ライブラリが役に立ちます。
Microsoft - スキャン中にエラーが発生した場合、スタック全体がクラッシュするのが一般的です。これは理想的ではありません。無線デバイスを閉じて再起動する必要があります。時間がかかり、障害が発生しやすくなります。しかし... Microsoft スタックはファイル転送を非常にうまく処理します。
Widcomm - Widcomm スタックは、ファイル転送には向いていません。Widcomm と一緒にインストールされ、アプリから制御を奪おうとするやっかいな小さなアプリがあります。bttray.exe を強制終了することができますが、これは役に立ちますが、転送中にスタックから奇妙な動作が発生します。これは解決できると確信していますが、Windows はスキャンに適していないため、スキャンに Widcomm を使用するのが理にかなっています。
そのため... Widcomm に設定された 1 つのドングルを何度もスキャンし、もう 1 つのドングルを Microsoft に設定して、ファイル転送 (インとアウト) のみを処理するように設定しました。
2 つのドングルを動作させる
同じドングルを 2 つ使用することにしました。それらをまとめて注文し、すべて同じようにストックすることができるので、混乱を減らすことができます。出荷された各デバイスには 2 つの Bluetooth ドングルが必要で、シンプルです。
唯一の問題は、これらが widcomm ドングルであり、Windows スタックに 1 つのドングルが必要なことです。Windows はこれらを Windows ドングルとして認識しないため、Windows スタックに登録しません。つまり... これは、bt.inf ファイルをハックして、Windows 用のドングルを認識させることができます。次に、ドングルの 1 つを Windows ドライバーで実行するようにドライバーを切り替える必要があります。これで完了です。
概要
つまり... 1 つのドングルが常にスキャンし、1 つのドングルが転送を処理し、それぞれが別々のスタックにあり、すべてうまく機能します。これは、Windows で 2 つのドングルをスムーズに動作させる唯一の方法です。より良い提案があれば、投稿してください。