チケット #35951

KGS ドライバーのスレッドセーフ化

登録: 2016-01-20 20:37 最終更新: 2017-05-22 09:15

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

詳細

2016.1 の changes に書かれている下記を利用することで KGS 点字ディスプレイのドライバーを改善できるかどうか検討。

https://github.com/nvaccess/nvda/blob/master/user_docs/en/changes.t2t

- Enhanced I/O for braille displays: (#5609)

- Thread-safe braille display drivers can declare themselves as such using the BrailleDisplayDriver.isThreadSafe attribute. A driver must be thread-safe to benefit from the following features.
- Data is written to thread-safe braille display drivers in the background, thus improving performance.
- hwIo.Serial extends pyserial to call a callable when data is received instead of drivers having to poll.
- hwIo.Hid provides support for braille displays communicating via USB HID.
- hwPortUtils and hwIo can optionally provide detailed debug logging, including devices found and all data sent and received.

参照されている本家 issue 5609

Support for Baum displays using USB HID

https://github.com/nvaccess/nvda/issues/5609

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

2016-01-20 20:37 更新者: nishimoto
  • 新しいチケット "KGS ドライバーの再検討" が作成されました
2016-02-13 12:31 更新者: nishimoto
2016-05-22 10:57 更新者: nishimoto
2017-04-03 13:11 更新者: nishimoto
コメント

いちおう調査してみる。

https://github.com/nvdajp/nvdajp/issues/19

2017-04-03 14:52 更新者: nishimoto
コメント

単純に 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.
2017-04-03 19:00 更新者: nishimoto
コメント

いろいろ確認していたらいつのまにか、動かなかったビルドで動くようになりました。 自分の環境の問題もあるようです。

公開での調査をお願いしてみることにします。

http://s.nvda.jp/nvda_2017.2jp-beta-170403-b236.exe

このバージョンはバージョン番号としては 170403 ですが、 ファイルのプロパティで 2017.1.0.236 となっています。 (あれ、なぜ 2017.2.0.236 にならないんだろう。。)

170330 からの重要な変更点として、点字ディスプレイの KGS ドライバを スレッドセーフ化しています。その他の変更点はありません。 (ブレイルノートのドライバーは変更していません)

このバージョンで、ブレイルメモの応答が改善した、接続が不安定になった、 などの影響があるかどうか、調査を呼びかけようと思います。

2017-04-05 10:01 更新者: nishimoto
  • 概要が更新されました
2017-05-22 09:15 更新者: nishimoto
  • チケット完了時刻2017-05-22 09:15 に更新されました
  • 状況オープン から 完了 に更新されました

添付ファイルリスト

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

編集

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