KGSドライバが点字設定を変えたあとで止まる
下記のコミットについて説明します。
release-2013.1jp 7a0e9b4
KGS 点字ディスプレイを有効にしている状態で、点字設定ダイアログを開いて、「メッセージの表示終了待ち時間」の値を変更して、OK を押すと、点字ディスプレイの動作が止まるという現象を確認しました。
どうやら、設定ダイアログが閉じるときにドライバを terminate して init しなおしていますが、このときに terminate で bmEnd などが呼ばれていないため、クローズされていない COM ポートを再度オープンすることに失敗しているようです。
接続を切る処理と、disconnect が完了するまで待つ処理を追加してみました。
手元の BM46 ではうまく動くようになりましたが、Windows のバージョンの違いなど、引き続き調査します。
下記までの一連のコミットで、接続を切ったときではなく、接続を切ってすぐに再接続をしたときにだけウェイトを入れるようにしました。
release-2013.1jp b3f7f58
この修正で、例えば、NVDA を「点字なし」に切り替えれば NVDA を終了しなくても Altair for Windows 10 の点字出力が同じポートで使えることを確認しています。
下記のコミットについて説明します。
release-2013.1jp 7a0e9b4
KGS 点字ディスプレイを有効にしている状態で、点字設定ダイアログを開いて、「メッセージの表示終了待ち時間」の値を変更して、OK を押すと、点字ディスプレイの動作が止まるという現象を確認しました。
どうやら、設定ダイアログが閉じるときにドライバを terminate して init しなおしていますが、このときに terminate で bmEnd などが呼ばれていないため、クローズされていない COM ポートを再度オープンすることに失敗しているようです。
接続を切る処理と、disconnect が完了するまで待つ処理を追加してみました。
手元の BM46 ではうまく動くようになりましたが、Windows のバージョンの違いなど、引き続き調査します。