KGS ドライバーのスレッドセーフ化
いちおう調査してみる。
単純に isThreadSafe = True だけを kgs.py に追加するとつながらなくなる
INFO - brailleDisplayDrivers.kgs.kgsListComPorts (14:48:06): [{'friendlyName': u'シリアルポート: USB Serial Port (COM3)', 'hardwareID': u'FTDIBUS\\COMPORT&VID_0403&PID_6001', 'port': u'COM3'}] INFO - brailleDisplayDrivers.kgs.BrailleDisplayDriver.getPossiblePorts (14:48:06): {'friendlyName': u'シリアルポート: USB Serial Port (COM3)', 'hardwareID': u'FTDIBUS\\COMPORT&VID_0403&PID_6001', 'port': u'COM3'} INFO - brailleDisplayDrivers.kgs.BrailleDisplayDriver.getPossiblePorts (14:48:06): {u'COM3': u'シリアルポート: USB Serial Port (COM3)'} INFO - brailleDisplayDrivers.kgs.BrailleDisplayDriver.__init__ (14:48:14): first connection auto WARNING - brailleDisplayDrivers.kgs.getKbdcName (14:48:14): active kbdc not found INFO - brailleDisplayDrivers.kgs.kgsListComPorts (14:48:14): [{'friendlyName': u'シリアルポート: USB Serial Port (COM3)', 'hardwareID': u'FTDIBUS\\COMPORT&VID_0403&PID_6001', 'port': u'COM3'}] INFO - brailleDisplayDrivers.kgs._autoConnection (14:48:14): set port:COM3 hw:FTDIBUS\COMPORT&VID_0403&PID_6001 fr:シリアルポート: USB Serial Port (COM3) bt:None INFO - brailleDisplayDrivers.kgs._fixConnection (14:48:14): scanning port COM3 INFO - brailleDisplayDrivers.kgs._fixConnection (14:48:14): bmStart(COM3) returns 1 INFO - brailleDisplayDrivers.kgs.bmDisConnect (14:48:22): BmEndDisplayMode 2 1 INFO - brailleDisplayDrivers.kgs.bmDisConnect (14:48:23): BmEnd 2 1 INFO - brailleDisplayDrivers.kgs._fixConnection (14:48:23): connection:0 port:2 INFO - brailleDisplayDrivers.kgs.BrailleDisplayDriver.__init__ (14:48:23): failed auto ERROR - braille.BrailleHandler.setDisplayByName (14:48:23): Error initializing display driver Traceback (most recent call last): File "braille.pyo", line 1607, in setDisplayByName File "brailleDisplayDrivers\kgs.pyo", line 373, in __init__ RuntimeError: No KGS display found INFO - braille.BrailleHandler.setDisplayByName (14:48:23): Loaded braille display driver noBraille, current display has 0 cells.
いろいろ確認していたらいつのまにか、動かなかったビルドで動くようになりました。 自分の環境の問題もあるようです。
公開での調査をお願いしてみることにします。
http://s.nvda.jp/nvda_2017.2jp-beta-170403-b236.exe
このバージョンはバージョン番号としては 170403 ですが、 ファイルのプロパティで 2017.1.0.236 となっています。 (あれ、なぜ 2017.2.0.236 にならないんだろう。。)
170330 からの重要な変更点として、点字ディスプレイの KGS ドライバを スレッドセーフ化しています。その他の変更点はありません。 (ブレイルノートのドライバーは変更していません)
このバージョンで、ブレイルメモの応答が改善した、接続が不安定になった、 などの影響があるかどうか、調査を呼びかけようと思います。
GitHub PR https://github.com/nvdajp/nvdajp/pull/21
2016.1 の changes に書かれている下記を利用することで KGS 点字ディスプレイのドライバーを改善できるかどうか検討。
https://github.com/nvaccess/nvda/blob/master/user_docs/en/changes.t2t
参照されている本家 issue 5609
Support for Baum displays using USB HID
https://github.com/nvaccess/nvda/issues/5609