チケット #33777

ブレイルメモBMスマート40がUSB接続で認識されない

登録: 2014-05-08 22:21 最終更新: 2014-05-15 22:22

報告者:
担当者:
チケットの種類:
状況:
完了
コンポーネント:
マイルストーン:
優先度:
5 - 中
重要度:
5 - 中
解決法:
修正済み
ファイル:
なし

詳細

NVDA 日本語版の KGS BM シリーズのドライバーで、ブレイルメモBMスマート40がUSB接続で認識されないという報告をいただいています。

KGS でも現象は把握されているそうです。

NVDA 日本語版のドライバーで COM ポートのスキャンの方法を変えないといけないのかも知れませんが、まずなにか情報収集のためのツールを作って、実機を持っている人に実行してもらう必要がありそうです。

チケットの履歴 (12 件中 3 件表示)

2014-05-08 22:21 更新者: nishimoto
  • 新しいチケット "ブレイルメモBMスマート40がUSB接続で認識されない" が作成されました
2014-05-10 22:55 更新者: nishimoto
コメント

COMポートのスキャンだけを行うダミー点字ディスプレイドライバーのアドオンを作りました。

https://dl.dropboxusercontent.com/u/62564469/dummyBraille-0.1.nvda-addon

このアドオンを組み込んで、点字設定で Dummy Braille を選ぶと、ログに(例えば)下記のように書き込まれます。

INFO - external:brailleDisplayDrivers.dummyBraille.BrailleDisplayDriver.__init__ (22:48:22):
port(COM9) hw(BTHENUM\{00001101-0000-1000-8000-00805f9b34fb}_LOCALMFG&0000) fr(Bluetooth リンク経由の標準シリアル (COM9)) bt(None)
INFO - external:brailleDisplayDrivers.dummyBraille.BrailleDisplayDriver.__init__ (22:48:22):
port(COM8) hw(BTHENUM\{00001101-0000-1000-8000-00805f9b34fb}_LOCALMFG&000f) fr(Bluetooth リンク経由の標準シリアル (COM8)) bt(bm series)

またスキャンされたポートが点字設定のポート選択に追加されます。

もし可能であれば、BMスマート40がUSB接続された状態で、このダミードライバーを選択していただき、USB接続したポートがどのように検出されるか、ログの内容をご報告いただけないでしょうか?

2014-05-11 10:01 更新者: nishimoto
コメント

ちなみに BM46 のUSBドライバーは下記のように認識されます:

INFO - external:brailleDisplayDrivers.dummyBraille.BrailleDisplayDriver.__init__ (09:59:24):
port(COM5) hw(USB\VID_1148&PID_0001&REV_0001) fr(KGS USB To Serial Com Port (COM5)) bt(None)
2014-05-12 11:02 更新者: nishimoto
コメント

関連チケット

#33795 ダミー点字ドライバの開発

ダミー点字ドライバ 0.2.1

https://dl.dropboxusercontent.com/u/62564469/dummyBraille-0.2.1.nvda-addon

シリアルポートのスキャン結果が分からないと、これ以上の作業はできない (情報が得られても問題解決につながるかどうかはわからない) のですが、本件を解決できなくても 2014.2jp をリリースしてよいでしょうか。 ご意見をお聞かせください。

2014-05-12 13:27 更新者: nishimoto
コメント

ダミー点字ドライバ 0.2.2

https://dl.dropboxusercontent.com/u/62564469/dummyBraille-0.2.2.nvda-addon

有効でないシリアルポートもスキャンするように修正しました。

2014-05-12 14:40 更新者: nishimoto
コメント

hwPortUtils.py の listComPorts(onlyAvailable=False) を使うと解決するかも知れないのですが、このオプションが何をやるかについての情報:

onlyAvailable=True の場合は DIGCF_PRESENT をつけて SetupDiGetClassDevs が実行される。

SetupDiGetClassDevs

http://msdn.microsoft.com/ja-jp/library/cc429195.aspx

日本マイクロソフト株式会社の DDK/WDK サポートチームの blog 記事:

http://blogs.msdn.com/b/jpwdkblog/archive/2009/07/15/setupdi-api-devcon-setupdi-api.aspx

2014-05-12 22:58 更新者: nishimoto
コメント

listComPorts(onlyAvailable=False) でポートスキャンを試していただいたのですが、接続されているはずの COM10 が検出されなかったようです。

可能性:

  • NVDAの実装:hwPortUtils モジュールにバグがあってスキャン(listComPorts)に失敗している?
  • Windows API:SetupDiGetClassDevs で GUID_CLASS_COMPORT をスキャンしても取得できないシリアルポートが存在する?
  • KGSのドライバー:BMスマート40 の USB ドライバが仮想シリアルポートではない、BMユーティリティはシリアルポートではないものをCOM10と表示している?

選択肢:

  • ポートをスキャンする別の方法をもっと模索する
  • ポートスキャンをやめて COM1 から COM64 くらいまでユーザーに選択させるようにする(ただし、そうすればつながるという保証はない)
  • KGS の技術情報をもっと集める(KGSのサイトに開発者登録してログインしてみたが、BMスマートの情報はなかった。具体的に問い合わせるべき?)
  • 実機でデバッグするべき?どこからどうやって実機を借りる?
2014-05-13 23:15 更新者: nishimoto
コメント

アドオン版 KGS 点字ディスプレイドライバー kgs-1.0.3

https://dl.dropboxusercontent.com/u/62564469/kgs-1.0.3.nvda-addon

このアドオンをインストールすると BM シリーズと BN46 のドライバーがアドオン版で置き換わります。

いまのところCOM ポートを1から64まですべて選択できるようにしたことだけが仕様の違いです。

内部処理としては2種類のドライバーの共通部分の実装をまとめていますが、 テストはブレイルメモ BM46 でしかやっていません。 なるべく kgsbn46 側の実装を残すようにリファクタリングしたので、 BN46 サポートは壊れてないと思いますが。。

このアドオン版ドライバーを使うと、スキャンに失敗していたポートも強制的に指定できるので、 これで BMスマートのUSBポートを指定して、 うまくつながるかどうか調べていただけるとありがたいです。

ソースコードのレポジトリ:

https://bitbucket.org/nishimotz/kgsbn46

2014-05-14 10:24 更新者: nishimoto
コメント

前述のアプローチで解決しそうなので「2014.2jp公開ベータ版」をマイルストーンにします。

2014-05-15 12:49 更新者: nishimoto
コメント

日本語テスト版 jpbeta140515

https://dl.dropboxusercontent.com/u/62564469/nvda_jpbeta140515.exe

点字デバイスコントローラ(KBDC)が複数起動してしまうという報告があったので (DirectBM DLL のインスタンスが複数になるためか?) 今回はアドオンではなく、NVDA 日本語版の KGS ドライバーのポート選択肢の表示だけを変更しました。 Windows が現在有効なポートと判断したものだけポートに名前を付けるようにしています。

アドオン版ドライバーだと BM46 で複数アプリケーションからの接続がうまく行かない という報告があります。

こちらでも NVDA から BM46 に接続した状態で、 BMPad を起動すると、点字出力の初期化に失敗するようです。

点字デバイスコントローラのオプション設定に依存するのか、 BM ユーティリティのバージョンに依存するのか、 もう少し調べてみたいと思います。

以下、開発に関する情報。

このテスト版は jp2014.2 ブランチから派生した ti33777 をビルドしています:

To ssh://git@bitbucket.org/nvdajp/nvdajp.git
 * [new branch]      ti33777 -> ti33777
2014-05-15 21:02 更新者: nishimoto
  • 解決法受領 から 修正済み に更新されました
コメント

ti33777 ブランチを jp2014.2 にマージしました。

この問題が起きる場合は自動設定ではなくCOMポートを手動で選んでもらうようにドキュメントに記載したいと思います。

ドキュメントを更新したらクローズします。

2014-05-15 22:22 更新者: nishimoto
  • 状況オープン から 完了 に更新されました
  • チケット完了時刻2014-05-15 22:22 に更新されました
コメント

「日本語版の説明」の KGS BrailleMemoシリーズ の説明に下記を追加しました。

このドライバーではポートの自動設定に加えて、COM1からCOM64までのポートが選択できます。
USB接続で自動設定に失敗する場合は、ポートを指定して接続してください。
To ssh://git@bitbucket.org/nvdajp/nvdajp.git
   43a9b26..2551961  jp2014.2 -> jp2014.2

添付ファイルリスト

添付ファイルはありません

編集

このチケットにコメントを追加するには、ログインが必要です » ログインする