nvaccess / nvda

NVDA, the free and open source Screen Reader for Microsoft Windows
https://www.nvaccess.org/
Other
2.12k stars 637 forks source link

Native driver for Freedom Scientific braille displays #7727

Closed bramd closed 5 years ago

bramd commented 7 years ago

The current driver for Freedom Scientific braille displays uses a DLL from FS to communicate with the displays. To benefit from upcoming improvements to NVDA's braille support such as autodetection (see #1271), a native implementation of this driver is prefered.

I started work on such a driver in the branch at https://github.com/bramd/nvda/tree/freedomscientific-native.

bramd commented 7 years ago

An early try build is here: https://ci.appveyor.com/project/NVAccess/nvda/build/try-freedomscientific-native-14592%2c331e13db/artifacts

This has had some testing with a Focus 40 blue. If you have a FS display, please test this build. I'm especially interested in

  1. Larger displays such as the Focus 80, I expect some issues there
  2. The first generation Focus displays (Focus 44/70/84), these displays have a non-standard coding for cells sent to the display
LeonarddeR commented 7 years ago

CC @xtstoll, @DGartmann: You both are users who either reported issues related to the Focus displays in the past, or have an open issue. Would you be able to test this try build and provide your feedback?

DGartmann commented 7 years ago

@leonardder: How are we supposed to test this build? Is it an installable version that should replace the current "Next" build?

LeonarddeR commented 7 years ago

@DGartmann: You can install this build, but I'd advise to run this build either as a portable copy, or just run the build from the executable file without installing. There shouldn't be incompatibilities with configuration in case of the native driver.

lukaszgo1 commented 7 years ago

Hi, i’ve tried this try build with Focus 40 Blue New connected via USB to machine running Windows 10 build 14393 unfortunately it gives an error. I’m attaching the log. focus-try-build-NVDA.log.txt

bramd commented 7 years ago

@lukaszgo1 Could you try this build? https://ci.appveyor.com/api/buildjobs/78sb6qru7he2t6bs/artifacts/output%2Fnvda_snapshot_try-freedomscientific-native-14603%2C22490378.exe

lukaszgo1 commented 7 years ago

@bramd This build is working correctly. Thanks for fixing.

derekriemer commented 7 years ago

I need to test this

bramd commented 7 years ago

@derekriemer Which model do you have?

xtstoll commented 7 years ago

@bramd I tested with a Focus 40 Blue using this build (nvda_snapshot_try-freedomscientific-native-14603,22490378.exe) on a pen drive, and the modifier keys still didn't work for me.

I did my repro from bug ticket here: https://github.com/nvaccess/nvda/issues/7706

Do I need to install anything else before trying again?

LeonarddeR commented 7 years ago

@xtstoll: This behaviour is not covered by this new driver. The intended behaviour should be implemented in NVDA core itself in order for other displays to benefit from it as well/

derekriemer commented 6 years ago

I'm on a focus 40. typing anything at all renders only one dot, but only if I release all the keys at the same time.

  1. Press ⠇ but keep the keys held down.
  2. release them all at the same time. ⠁ or ⠄ or ⠆ or ⠃ or ⠂ or ⠇ may be entered.
  3. now, type ⠇ and hold them down. release ⠁ while holding down ⠆ still. ⠇ is entered now.

Here's a log. Typing ⠇⠇⠇⠇⠇⠇⠇⠇⠇ result: ⠆⠆⠆⠄⠄⠄⠆⠅⠄ Log: DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (11:58:57.760): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (11:58:58.259): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (11:58:58.760): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (11:58:59.267): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (11:58:59.762): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (11:59:00.273): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (11:59:00.770): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (11:59:01.266): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (11:59:01.763): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (11:59:02.259): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (11:59:02.765): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (11:59:03.266): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (11:59:03.683): Got packet of type '\x03' with args: '\x07' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (11:59:03.765): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (11:59:03.782): Got packet of type '\x03' with args: '\x04' '\x00' '\x00' IO - inputCore.InputManager.executeGesture (11:59:03.782): Input: br(freedomScientific):dot2+dot3 DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (11:59:03.796): Got packet of type '\x03' with args: '\x00' '\x00' '\x00' DEBUGWARNING - NVDAObjects.IAccessible.IAccessible._get_IAccessibleRole (11:59:03.846): accRole failed: (-2147024809, 'The parameter is incorrect.', (None, None, None, 0, None)) IO - braille.BrailleBuffer.update (11:59:03.910): Braille regions text: [u'\u2806 '] IO - braille.BrailleHandler.update (11:59:03.910): Braille window dots: 23 - IO - braille.BrailleHandler.update (11:59:03.911): Braille window dots: 23 - DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (11:59:03.911): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (11:59:03.913): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' IO - braille.BrailleBuffer.update (11:59:03.977): Braille regions text: [u'\u2806 '] IO - braille.BrailleHandler.update (11:59:03.977): Braille window dots: 23 - IO - braille.BrailleHandler.update (11:59:03.977): Braille window dots: 23 - DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (11:59:03.979): Got packet of type '\x03' with args: '\x07' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (11:59:03.979): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (11:59:03.980): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' IO - braille.BrailleBuffer.update (11:59:03.990): Braille regions text: [u'\u2806 '] IO - braille.BrailleHandler.update (11:59:03.990): Braille window dots: 23 - IO - braille.BrailleHandler.update (11:59:03.990): Braille window dots: 23 - DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (11:59:03.992): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (11:59:03.993): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (11:59:04.098): Got packet of type '\x03' with args: '\x04' '\x00' '\x00' IO - inputCore.InputManager.executeGesture (11:59:04.098): Input: br(freedomScientific):dot2+dot3 DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (11:59:04.108): Got packet of type '\x03' with args: '\x00' '\x00' '\x00' DEBUGWARNING - NVDAObjects.IAccessible.IAccessible._get_IAccessibleRole (11:59:04.154): accRole failed: (-2147024809, 'The parameter is incorrect.', (None, None, None, 0, None)) IO - braille.BrailleBuffer.update (11:59:04.230): Braille regions text: [u'\u2806\u2806 '] IO - braille.BrailleHandler.update (11:59:04.230): Braille window dots: 23 23 - IO - braille.BrailleHandler.update (11:59:04.230): Braille window dots: 23 23 - DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (11:59:04.230): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (11:59:04.233): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (11:59:04.275): Got packet of type '\x03' with args: '\x07' '\x00' '\x00' IO - braille.BrailleBuffer.update (11:59:04.288): Braille regions text: [u'\u2806\u2806 '] IO - braille.BrailleHandler.update (11:59:04.288): Braille window dots: 23 23 - IO - braille.BrailleHandler.update (11:59:04.288): Braille window dots: 23 23 - DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (11:59:04.289): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (11:59:04.289): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' IO - braille.BrailleBuffer.update (11:59:04.299): Braille regions text: [u'\u2806\u2806 '] IO - braille.BrailleHandler.update (11:59:04.299): Braille window dots: 23 23 - IO - braille.BrailleHandler.update (11:59:04.299): Braille window dots: 23 23 - DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (11:59:04.301): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (11:59:04.302): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (11:59:04.378): Got packet of type '\x03' with args: '\x04' '\x00' '\x00' IO - inputCore.InputManager.executeGesture (11:59:04.378): Input: br(freedomScientific):dot2+dot3 DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (11:59:04.390): Got packet of type '\x03' with args: '\x00' '\x00' '\x00' DEBUGWARNING - NVDAObjects.IAccessible.IAccessible._get_IAccessibleRole (11:59:04.436): accRole failed: (-2147024809, 'The parameter is incorrect.', (None, None, None, 0, None)) IO - braille.BrailleBuffer.update (11:59:04.555): Braille regions text: [u'\u2806\u2806\u2806 '] IO - braille.BrailleHandler.update (11:59:04.555): Braille window dots: 23 23 23 - IO - braille.BrailleHandler.update (11:59:04.556): Braille window dots: 23 23 23 - DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (11:59:04.558): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (11:59:04.559): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' IO - braille.BrailleBuffer.update (11:59:04.568): Braille regions text: [u'\u2806\u2806\u2806 '] IO - braille.BrailleHandler.update (11:59:04.568): Braille window dots: 23 23 23 - IO - braille.BrailleHandler.update (11:59:04.569): Braille window dots: 23 23 23 - DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (11:59:04.569): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (11:59:04.571): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' IO - braille.BrailleBuffer.update (11:59:04.579): Braille regions text: [u'\u2806\u2806\u2806 '] IO - braille.BrailleHandler.update (11:59:04.579): Braille window dots: 23 23 23 - IO - braille.BrailleHandler.update (11:59:04.581): Braille window dots: 23 23 23 - DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (11:59:04.582): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (11:59:04.582): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (11:59:04.956): Got packet of type '\x03' with args: '\x07' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (11:59:05.082): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (11:59:05.095): Got packet of type '\x03' with args: '\x00' '\x00' '\x00' IO - inputCore.InputManager.executeGesture (11:59:05.095): Input: br(freedomScientific):dot3 DEBUGWARNING - NVDAObjects.IAccessible.IAccessible._get_IAccessibleRole (11:59:05.155): accRole failed: (-2147024809, 'The parameter is incorrect.', (None, None, None, 0, None)) IO - braille.BrailleBuffer.update (11:59:05.230): Braille regions text: [u'\u2806\u2806\u2806\u2804 '] IO - braille.BrailleHandler.update (11:59:05.230): Braille window dots: 23 23 23 3 - IO - braille.BrailleHandler.update (11:59:05.230): Braille window dots: 23 23 23 3 - DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (11:59:05.232): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (11:59:05.233): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' IO - braille.BrailleBuffer.update (11:59:05.289): Braille regions text: [u'\u2806\u2806\u2806\u2804 '] IO - braille.BrailleHandler.update (11:59:05.289): Braille window dots: 23 23 23 3 - IO - braille.BrailleHandler.update (11:59:05.290): Braille window dots: 23 23 23 3 - DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (11:59:05.292): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (11:59:05.292): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' IO - braille.BrailleBuffer.update (11:59:05.302): Braille regions text: [u'\u2806\u2806\u2806\u2804 '] IO - braille.BrailleHandler.update (11:59:05.302): Braille window dots: 23 23 23 3 - IO - braille.BrailleHandler.update (11:59:05.302): Braille window dots: 23 23 23 3 - DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (11:59:05.303): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (11:59:05.305): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (11:59:05.568): Got packet of type '\x03' with args: '\x07' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (11:59:05.700): Got packet of type '\x03' with args: '\x00' '\x00' '\x00' IO - inputCore.InputManager.executeGesture (11:59:05.701): Input: br(freedomScientific):dot3 DEBUGWARNING - NVDAObjects.IAccessible.IAccessible._get_IAccessibleRole (11:59:05.785): accRole failed: (-2147024809, 'The parameter is incorrect.', (None, None, None, 0, None)) IO - braille.BrailleBuffer.update (11:59:05.836): Braille regions text: [u'\u2806\u2806\u2806\u2804\u2804 '] IO - braille.BrailleHandler.update (11:59:05.836): Braille window dots: 23 23 23 3 3 - IO - braille.BrailleHandler.update (11:59:05.836): Braille window dots: 23 23 23 3 3 - DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (11:59:05.838): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (11:59:05.838): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' IO - braille.BrailleBuffer.update (11:59:05.898): Braille regions text: [u'\u2806\u2806\u2806\u2804\u2804 '] IO - braille.BrailleHandler.update (11:59:05.898): Braille window dots: 23 23 23 3 3 - IO - braille.BrailleHandler.update (11:59:05.898): Braille window dots: 23 23 23 3 3 - DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (11:59:05.898): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (11:59:05.900): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' IO - braille.BrailleBuffer.update (11:59:05.907): Braille regions text: [u'\u2806\u2806\u2806\u2804\u2804 '] IO - braille.BrailleHandler.update (11:59:05.908): Braille window dots: 23 23 23 3 3 - IO - braille.BrailleHandler.update (11:59:05.908): Braille window dots: 23 23 23 3 3 - DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (11:59:05.910): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (11:59:05.911): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (11:59:06.121): Got packet of type '\x03' with args: '\x07' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (11:59:06.249): Got packet of type '\x03' with args: '\x00' '\x00' '\x00' IO - inputCore.InputManager.executeGesture (11:59:06.249): Input: br(freedomScientific):dot3 DEBUGWARNING - NVDAObjects.IAccessible.IAccessible._get_IAccessibleRole (11:59:06.335): accRole failed: (-2147024809, 'The parameter is incorrect.', (None, None, None, 0, None)) IO - braille.BrailleBuffer.update (11:59:06.403): Braille regions text: [u'\u2806\u2806\u2806\u2804\u2804\u2804 '] IO - braille.BrailleHandler.update (11:59:06.404): Braille window dots: 23 23 23 3 3 3 - IO - braille.BrailleHandler.update (11:59:06.404): Braille window dots: 23 23 23 3 3 3 - DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (11:59:06.404): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (11:59:06.407): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' IO - braille.BrailleBuffer.update (11:59:06.482): Braille regions text: [u'\u2806\u2806\u2806\u2804\u2804\u2804 '] IO - braille.BrailleHandler.update (11:59:06.482): Braille window dots: 23 23 23 3 3 3 - IO - braille.BrailleHandler.update (11:59:06.482): Braille window dots: 23 23 23 3 3 3 - DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (11:59:06.483): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (11:59:06.483): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' IO - braille.BrailleBuffer.update (11:59:06.494): Braille regions text: [u'\u2806\u2806\u2806\u2804\u2804\u2804 '] IO - braille.BrailleHandler.update (11:59:06.494): Braille window dots: 23 23 23 3 3 3 - IO - braille.BrailleHandler.update (11:59:06.496): Braille window dots: 23 23 23 3 3 3 - DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (11:59:06.496): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (11:59:06.497): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (11:59:06.700): Got packet of type '\x03' with args: '\x05' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (11:59:06.710): Got packet of type '\x03' with args: '\x07' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (11:59:06.848): Got packet of type '\x03' with args: '\x04' '\x00' '\x00' IO - inputCore.InputManager.executeGesture (11:59:06.848): Input: br(freedomScientific):dot2+dot3 DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (11:59:06.868): Got packet of type '\x03' with args: '\x00' '\x00' '\x00' DEBUGWARNING - NVDAObjects.IAccessible.IAccessible._get_IAccessibleRole (11:59:06.907): accRole failed: (-2147024809, 'The parameter is incorrect.', (None, None, None, 0, None)) IO - braille.BrailleBuffer.update (11:59:06.970): Braille regions text: [u'\u2806\u2806\u2806\u2804\u2804\u2804\u2806 '] IO - braille.BrailleHandler.update (11:59:06.971): Braille window dots: 23 23 23 3 3 3 23 - IO - braille.BrailleHandler.update (11:59:06.971): Braille window dots: 23 23 23 3 3 3 23 - DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (11:59:06.973): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (11:59:06.973): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' IO - braille.BrailleBuffer.update (11:59:07.030): Braille regions text: [u'\u2806\u2806\u2806\u2804\u2804\u2804\u2806 '] IO - braille.BrailleHandler.update (11:59:07.032): Braille window dots: 23 23 23 3 3 3 23 - IO - braille.BrailleHandler.update (11:59:07.032): Braille window dots: 23 23 23 3 3 3 23 - DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (11:59:07.032): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (11:59:07.033): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' IO - braille.BrailleBuffer.update (11:59:07.042): Braille regions text: [u'\u2806\u2806\u2806\u2804\u2804\u2804\u2806 '] IO - braille.BrailleHandler.update (11:59:07.042): Braille window dots: 23 23 23 3 3 3 23 - IO - braille.BrailleHandler.update (11:59:07.042): Braille window dots: 23 23 23 3 3 3 23 - DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (11:59:07.043): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (11:59:07.045): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (11:59:07.362): Got packet of type '\x03' with args: '\x07' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (11:59:07.503): Got packet of type '\x03' with args: '\x01' '\x00' '\x00' IO - inputCore.InputManager.executeGesture (11:59:07.503): Input: br(freedomScientific):dot1+dot3 DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (11:59:07.513): Got packet of type '\x03' with args: '\x00' '\x00' '\x00' DEBUGWARNING - NVDAObjects.IAccessible.IAccessible._get_IAccessibleRole (11:59:07.563): accRole failed: (-2147024809, 'The parameter is incorrect.', (None, None, None, 0, None)) IO - braille.BrailleBuffer.update (11:59:07.700): Braille regions text: [u'\u2806\u2806\u2806\u2804\u2804\u2804\u2806\u2805 '] IO - braille.BrailleHandler.update (11:59:07.700): Braille window dots: 23 23 23 3 3 3 23 13 - IO - braille.BrailleHandler.update (11:59:07.701): Braille window dots: 23 23 23 3 3 3 23 13 - DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (11:59:07.701): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (11:59:07.703): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' IO - braille.BrailleBuffer.update (11:59:07.717): Braille regions text: [u'\u2806\u2806\u2806\u2804\u2804\u2804\u2806\u2805 '] IO - braille.BrailleHandler.update (11:59:07.717): Braille window dots: 23 23 23 3 3 3 23 13 - IO - braille.BrailleHandler.update (11:59:07.717): Braille window dots: 23 23 23 3 3 3 23 13 - DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (11:59:07.719): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (11:59:07.720): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' IO - braille.BrailleBuffer.update (11:59:07.733): Braille regions text: [u'\u2806\u2806\u2806\u2804\u2804\u2804\u2806\u2805 '] IO - braille.BrailleHandler.update (11:59:07.733): Braille window dots: 23 23 23 3 3 3 23 13 - IO - braille.BrailleHandler.update (11:59:07.733): Braille window dots: 23 23 23 3 3 3 23 13 - DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (11:59:07.734): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (11:59:07.736): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (11:59:08.085): Got packet of type '\x03' with args: '\x06' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (11:59:08.096): Got packet of type '\x03' with args: '\x07' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (11:59:08.240): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (11:59:08.243): Got packet of type '\x03' with args: '\x00' '\x00' '\x00' IO - inputCore.InputManager.executeGesture (11:59:08.243): Input: br(freedomScientific):dot3 DEBUGWARNING - NVDAObjects.IAccessible.IAccessible._get_IAccessibleRole (11:59:08.338): accRole failed: (-2147024809, 'The parameter is incorrect.', (None, None, None, 0, None)) IO - braille.BrailleBuffer.update (11:59:08.394): Braille regions text: [u'\u2806\u2806\u2806\u2804\u2804\u2804\u2806\u2805\u2804 '] IO - braille.BrailleHandler.update (11:59:08.394): Braille window dots: 23 23 23 3 3 3 23 13 3 - IO - braille.BrailleHandler.update (11:59:08.395): Braille window dots: 23 23 23 3 3 3 23 13 3 - DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (11:59:08.397): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (11:59:08.398): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' IO - braille.BrailleBuffer.update (11:59:08.454): Braille regions text: [u'\u2806\u2806\u2806\u2804\u2804\u2804\u2806\u2805\u2804 '] IO - braille.BrailleHandler.update (11:59:08.454): Braille window dots: 23 23 23 3 3 3 23 13 3 - IO - braille.BrailleHandler.update (11:59:08.456): Braille window dots: 23 23 23 3 3 3 23 13 3 - DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (11:59:08.457): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (11:59:08.457): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' IO - braille.BrailleBuffer.update (11:59:08.466): Braille regions text: [u'\u2806\u2806\u2806\u2804\u2804\u2804\u2806\u2805\u2804 '] IO - braille.BrailleHandler.update (11:59:08.467): Braille window dots: 23 23 23 3 3 3 23 13 3 - IO - braille.BrailleHandler.update (11:59:08.467): Braille window dots: 23 23 23 3 3 3 23 13 3 - DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (11:59:08.467): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (11:59:08.469): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (11:59:08.986): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (11:59:09.480): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (11:59:09.976): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (11:59:10.490): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (11:59:10.984): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (11:59:11.482): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (11:59:11.989): Got packet of type '\x01' with args: '\x00' '\x00' '\x00'

Now typing ⠇⠇⠇⠇⠇⠇⠇⠇⠇ but releasing a key first. ⠇⠇⠇⠇⠇⠇⠇⠇⠇ Log: DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:29.151): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:29.650): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:30.150): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:30.661): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:31.158): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:31.655): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:31.858): Got packet of type '\x03' with args: '\x01' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:32.151): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:32.371): Got packet of type '\x03' with args: '\x07' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:32.651): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:33.163): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:33.269): Got packet of type '\x03' with args: '\x05' '\x00' '\x00' IO - inputCore.InputManager.executeGesture (12:00:33.270): Input: br(freedomScientific):dot1+dot2+dot3 DEBUGWARNING - NVDAObjects.IAccessible.IAccessible._get_IAccessibleRole (12:00:33.358): accRole failed: (-2147024809, 'The parameter is incorrect.', (None, None, None, 0, None)) IO - braille.BrailleBuffer.update (12:00:33.374): Braille regions text: [u'\u2807 '] IO - braille.BrailleHandler.update (12:00:33.375): Braille window dots: 123 - IO - braille.BrailleHandler.update (12:00:33.375): Braille window dots: 123 - DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:33.375): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:33.378): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' IO - braille.BrailleBuffer.update (12:00:33.390): Braille regions text: [u'\u2807 '] IO - braille.BrailleHandler.update (12:00:33.390): Braille window dots: 123 - IO - braille.BrailleHandler.update (12:00:33.391): Braille window dots: 123 - DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:33.391): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:33.392): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' IO - braille.BrailleBuffer.update (12:00:33.448): Braille regions text: [u'\u2807 '] IO - braille.BrailleHandler.update (12:00:33.448): Braille window dots: 123 - IO - braille.BrailleHandler.update (12:00:33.448): Braille window dots: 123 - DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:33.450): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:33.451): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:33.849): Got packet of type '\x03' with args: '\x01' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:33.858): Got packet of type '\x03' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:33.944): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:34.263): Got packet of type '\x03' with args: '\x07' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:34.457): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:34.954): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:35.036): Got packet of type '\x03' with args: '\x06' '\x00' '\x00' IO - inputCore.InputManager.executeGesture (12:00:35.036): Input: br(freedomScientific):dot1+dot2+dot3 DEBUGWARNING - NVDAObjects.IAccessible.IAccessible._get_IAccessibleRole (12:00:35.115): accRole failed: (-2147024809, 'The parameter is incorrect.', (None, None, None, 0, None)) IO - braille.BrailleBuffer.update (12:00:35.171): Braille regions text: [u'\u2807\u2807 '] IO - braille.BrailleHandler.update (12:00:35.171): Braille window dots: 123 123 - IO - braille.BrailleHandler.update (12:00:35.173): Braille window dots: 123 123 - DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:35.174): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:35.174): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' IO - braille.BrailleBuffer.update (12:00:35.232): Braille regions text: [u'\u2807\u2807 '] IO - braille.BrailleHandler.update (12:00:35.232): Braille window dots: 123 123 - IO - braille.BrailleHandler.update (12:00:35.232): Braille window dots: 123 123 - DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:35.233): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:35.233): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' IO - braille.BrailleBuffer.update (12:00:35.243): Braille regions text: [u'\u2807\u2807 '] IO - braille.BrailleHandler.update (12:00:35.243): Braille window dots: 123 123 - IO - braille.BrailleHandler.update (12:00:35.243): Braille window dots: 123 123 - DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:35.246): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:35.246): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:35.497): Got packet of type '\x03' with args: '\x04' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:35.516): Got packet of type '\x03' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:35.749): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:35.872): Got packet of type '\x03' with args: '\x06' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:35.884): Got packet of type '\x03' with args: '\x07' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:36.252): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:36.650): Got packet of type '\x03' with args: '\x03' '\x00' '\x00' IO - inputCore.InputManager.executeGesture (12:00:36.651): Input: br(freedomScientific):dot1+dot2+dot3 DEBUGWARNING - NVDAObjects.IAccessible.IAccessible._get_IAccessibleRole (12:00:36.717): accRole failed: (-2147024809, 'The parameter is incorrect.', (None, None, None, 0, None)) IO - braille.BrailleBuffer.update (12:00:36.789): Braille regions text: [u'\u2807\u2807\u2807 '] IO - braille.BrailleHandler.update (12:00:36.789): Braille window dots: 123 123 123 - IO - braille.BrailleHandler.update (12:00:36.790): Braille window dots: 123 123 123 - DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:36.790): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:36.792): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' IO - braille.BrailleBuffer.update (12:00:36.851): Braille regions text: [u'\u2807\u2807\u2807 '] IO - braille.BrailleHandler.update (12:00:36.851): Braille window dots: 123 123 123 - IO - braille.BrailleHandler.update (12:00:36.851): Braille window dots: 123 123 123 - DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:36.852): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:36.854): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' IO - braille.BrailleBuffer.update (12:00:36.864): Braille regions text: [u'\u2807\u2807\u2807 '] IO - braille.BrailleHandler.update (12:00:36.864): Braille window dots: 123 123 123 - IO - braille.BrailleHandler.update (12:00:36.865): Braille window dots: 123 123 123 - DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:36.865): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:36.865): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:37.101): Got packet of type '\x03' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:37.351): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:37.556): Got packet of type '\x03' with args: '\x07' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:37.854): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:38.349): Got packet of type '\x03' with args: '\x05' '\x00' '\x00' IO - inputCore.InputManager.executeGesture (12:00:38.351): Input: br(freedomScientific):dot1+dot2+dot3 DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:38.352): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUGWARNING - NVDAObjects.IAccessible.IAccessible._get_IAccessibleRole (12:00:38.421): accRole failed: (-2147024809, 'The parameter is incorrect.', (None, None, None, 0, None)) IO - braille.BrailleBuffer.update (12:00:38.496): Braille regions text: [u'\u2807\u2807\u2807\u2807 '] IO - braille.BrailleHandler.update (12:00:38.496): Braille window dots: 123 123 123 123 - IO - braille.BrailleHandler.update (12:00:38.497): Braille window dots: 123 123 123 123 - DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:38.499): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:38.500): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' IO - braille.BrailleBuffer.update (12:00:38.562): Braille regions text: [u'\u2807\u2807\u2807\u2807 '] IO - braille.BrailleHandler.update (12:00:38.562): Braille window dots: 123 123 123 123 - IO - braille.BrailleHandler.update (12:00:38.562): Braille window dots: 123 123 123 123 - DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:38.562): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:38.565): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' IO - braille.BrailleBuffer.update (12:00:38.575): Braille regions text: [u'\u2807\u2807\u2807\u2807 '] IO - braille.BrailleHandler.update (12:00:38.575): Braille window dots: 123 123 123 123 - IO - braille.BrailleHandler.update (12:00:38.575): Braille window dots: 123 123 123 123 - DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:38.575): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:38.576): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:38.760): Got packet of type '\x03' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:39.084): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:39.160): Got packet of type '\x03' with args: '\x04' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:39.171): Got packet of type '\x03' with args: '\x07' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:39.595): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:39.927): Got packet of type '\x03' with args: '\x06' '\x00' '\x00' IO - inputCore.InputManager.executeGesture (12:00:39.928): Input: br(freedomScientific):dot1+dot2+dot3 DEBUGWARNING - NVDAObjects.IAccessible.IAccessible._get_IAccessibleRole (12:00:40.003): accRole failed: (-2147024809, 'The parameter is incorrect.', (None, None, None, 0, None)) IO - braille.BrailleBuffer.update (12:00:40.075): Braille regions text: [u'\u2807\u2807\u2807\u2807\u2807 '] IO - braille.BrailleHandler.update (12:00:40.075): Braille window dots: 123 123 123 123 123 - IO - braille.BrailleHandler.update (12:00:40.076): Braille window dots: 123 123 123 123 123 - DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:40.076): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:40.078): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' IO - braille.BrailleBuffer.update (12:00:40.137): Braille regions text: [u'\u2807\u2807\u2807\u2807\u2807 '] IO - braille.BrailleHandler.update (12:00:40.137): Braille window dots: 123 123 123 123 123 - IO - braille.BrailleHandler.update (12:00:40.138): Braille window dots: 123 123 123 123 123 - DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:40.138): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:40.138): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' IO - braille.BrailleBuffer.update (12:00:40.148): Braille regions text: [u'\u2807\u2807\u2807\u2807\u2807 '] IO - braille.BrailleHandler.update (12:00:40.148): Braille window dots: 123 123 123 123 123 - IO - braille.BrailleHandler.update (12:00:40.148): Braille window dots: 123 123 123 123 123 - DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:40.150): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:40.151): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:40.394): Got packet of type '\x03' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:40.654): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:40.819): Got packet of type '\x03' with args: '\x06' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:40.831): Got packet of type '\x03' with args: '\x07' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:41.157): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:41.654): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:41.658): Got packet of type '\x03' with args: '\x03' '\x00' '\x00' IO - inputCore.InputManager.executeGesture (12:00:41.660): Input: br(freedomScientific):dot1+dot2+dot3 DEBUGWARNING - NVDAObjects.IAccessible.IAccessible._get_IAccessibleRole (12:00:41.716): accRole failed: (-2147024809, 'The parameter is incorrect.', (None, None, None, 0, None)) IO - braille.BrailleBuffer.update (12:00:41.845): Braille regions text: [u'\u2807\u2807\u2807\u2807\u2807\u2807 '] IO - braille.BrailleHandler.update (12:00:41.845): Braille window dots: 123 123 123 123 123 123 - IO - braille.BrailleHandler.update (12:00:41.846): Braille window dots: 123 123 123 123 123 123 - DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:41.848): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:41.848): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' IO - braille.BrailleBuffer.update (12:00:41.858): Braille regions text: [u'\u2807\u2807\u2807\u2807\u2807\u2807 '] IO - braille.BrailleHandler.update (12:00:41.858): Braille window dots: 123 123 123 123 123 123 - IO - braille.BrailleHandler.update (12:00:41.859): Braille window dots: 123 123 123 123 123 123 - DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:41.861): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:41.861): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' IO - braille.BrailleBuffer.update (12:00:41.869): Braille regions text: [u'\u2807\u2807\u2807\u2807\u2807\u2807 '] IO - braille.BrailleHandler.update (12:00:41.871): Braille window dots: 123 123 123 123 123 123 - IO - braille.BrailleHandler.update (12:00:41.871): Braille window dots: 123 123 123 123 123 123 - DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:41.871): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:41.872): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:42.111): Got packet of type '\x03' with args: '\x01' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:42.134): Got packet of type '\x03' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:42.388): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:42.516): Got packet of type '\x03' with args: '\x07' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:42.884): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:43.270): Got packet of type '\x03' with args: '\x06' '\x00' '\x00' IO - inputCore.InputManager.executeGesture (12:00:43.272): Input: br(freedomScientific):dot1+dot2+dot3 DEBUGWARNING - NVDAObjects.IAccessible.IAccessible._get_IAccessibleRole (12:00:43.341): accRole failed: (-2147024809, 'The parameter is incorrect.', (None, None, None, 0, None)) IO - braille.BrailleBuffer.update (12:00:43.407): Braille regions text: [u'\u2807\u2807\u2807\u2807\u2807\u2807\u2807 '] IO - braille.BrailleHandler.update (12:00:43.407): Braille window dots: 123 123 123 123 123 123 123 - IO - braille.BrailleHandler.update (12:00:43.408): Braille window dots: 123 123 123 123 123 123 123 - DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:43.410): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:43.411): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' IO - braille.BrailleBuffer.update (12:00:43.474): Braille regions text: [u'\u2807\u2807\u2807\u2807\u2807\u2807\u2807 '] IO - braille.BrailleHandler.update (12:00:43.474): Braille window dots: 123 123 123 123 123 123 123 - IO - braille.BrailleHandler.update (12:00:43.476): Braille window dots: 123 123 123 123 123 123 123 - DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:43.476): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:43.477): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' IO - braille.BrailleBuffer.update (12:00:43.486): Braille regions text: [u'\u2807\u2807\u2807\u2807\u2807\u2807\u2807 '] IO - braille.BrailleHandler.update (12:00:43.486): Braille window dots: 123 123 123 123 123 123 123 - IO - braille.BrailleHandler.update (12:00:43.486): Braille window dots: 123 123 123 123 123 123 123 - DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:43.487): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:43.489): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:43.700): Got packet of type '\x03' with args: '\x04' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:43.726): Got packet of type '\x03' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:43.980): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:44.108): Got packet of type '\x03' with args: '\x07' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:44.489): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:44.904): Got packet of type '\x03' with args: '\x03' '\x00' '\x00' IO - inputCore.InputManager.executeGesture (12:00:44.904): Input: br(freedomScientific):dot1+dot2+dot3 DEBUGWARNING - NVDAObjects.IAccessible.IAccessible._get_IAccessibleRole (12:00:44.990): accRole failed: (-2147024809, 'The parameter is incorrect.', (None, None, None, 0, None)) IO - braille.BrailleBuffer.update (12:00:45.101): Braille regions text: [u'\u2807\u2807\u2807\u2807\u2807\u2807\u2807\u2807 '] IO - braille.BrailleHandler.update (12:00:45.101): Braille window dots: 123 123 123 123 123 123 123 123 - IO - braille.BrailleHandler.update (12:00:45.102): Braille window dots: 123 123 123 123 123 123 123 123 - DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:45.104): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:45.105): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' IO - braille.BrailleBuffer.update (12:00:45.114): Braille regions text: [u'\u2807\u2807\u2807\u2807\u2807\u2807\u2807\u2807 '] IO - braille.BrailleHandler.update (12:00:45.115): Braille window dots: 123 123 123 123 123 123 123 123 - IO - braille.BrailleHandler.update (12:00:45.115): Braille window dots: 123 123 123 123 123 123 123 123 - DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:45.115): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:45.117): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' IO - braille.BrailleBuffer.update (12:00:45.125): Braille regions text: [u'\u2807\u2807\u2807\u2807\u2807\u2807\u2807\u2807 '] IO - braille.BrailleHandler.update (12:00:45.127): Braille window dots: 123 123 123 123 123 123 123 123 - IO - braille.BrailleHandler.update (12:00:45.127): Braille window dots: 123 123 123 123 123 123 123 123 - DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:45.128): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:45.128): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:45.312): Got packet of type '\x03' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:45.625): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:45.706): Got packet of type '\x03' with args: '\x07' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:46.141): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:46.446): Got packet of type '\x03' with args: '\x05' '\x00' '\x00' IO - inputCore.InputManager.executeGesture (12:00:46.447): Input: br(freedomScientific):dot1+dot2+dot3 DEBUGWARNING - NVDAObjects.IAccessible.IAccessible._get_IAccessibleRole (12:00:46.533): accRole failed: (-2147024809, 'The parameter is incorrect.', (None, None, None, 0, None)) IO - braille.BrailleBuffer.update (12:00:46.638): Braille regions text: [u'\u2807\u2807\u2807\u2807\u2807\u2807\u2807\u2807\u2807 '] IO - braille.BrailleHandler.update (12:00:46.638): Braille window dots: 123 123 123 123 123 123 123 123 123 - IO - braille.BrailleHandler.update (12:00:46.640): Braille window dots: 123 123 123 123 123 123 123 123 123 - DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:46.641): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:46.641): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' IO - braille.BrailleBuffer.update (12:00:46.653): Braille regions text: [u'\u2807\u2807\u2807\u2807\u2807\u2807\u2807\u2807\u2807 '] IO - braille.BrailleHandler.update (12:00:46.653): Braille window dots: 123 123 123 123 123 123 123 123 123 - IO - braille.BrailleHandler.update (12:00:46.653): Braille window dots: 123 123 123 123 123 123 123 123 123 - DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:46.654): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:46.654): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' IO - braille.BrailleBuffer.update (12:00:46.664): Braille regions text: [u'\u2807\u2807\u2807\u2807\u2807\u2807\u2807\u2807\u2807 '] IO - braille.BrailleHandler.update (12:00:46.664): Braille window dots: 123 123 123 123 123 123 123 123 123 - IO - braille.BrailleHandler.update (12:00:46.664): Braille window dots: 123 123 123 123 123 123 123 123 123 - DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:46.665): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:46.667): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:46.907): Got packet of type '\x03' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:47.180): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:47.690): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:48.180): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:48.691): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:49.190): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:49.687): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:50.197): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:50.694): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:51.197): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:51.703): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:52.209): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:52.701): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:53.006): Got packet of type '\x03' with args: '\x00' '\x00' '\x02' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:53.056): Got packet of type '\x03' with args: '\x00' '\x00' '\x03' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:53.157): Got packet of type '\x03' with args: '\x00' '\x00' '\x00' IO - inputCore.InputManager.executeGesture (12:00:53.157): Input: br(freedomScientific):rightGDFButton DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:53.194): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:53.707): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:54.201): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:54.645): Got packet of type '\x03' with args: '\x00' '\x00' '\x02' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:54.697): Got packet of type '\x03' with args: '\x00' '\x00' '\x03' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:54.697): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:54.846): Got packet of type '\x03' with args: '\x00' '\x00' '\x00' IO - inputCore.InputManager.executeGesture (12:00:54.848): Input: br(freedomScientific):rightGDFButton DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:55.197): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:55.706): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:56.194): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:56.329): Got packet of type '\x03' with args: '\x00' '\x00' '\x02' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:56.381): Got packet of type '\x03' with args: '\x00' '\x00' '\x03' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:56.681): Got packet of type '\x03' with args: '\x00' '\x00' '\x02' IO - inputCore.InputManager.executeGesture (12:00:56.681): Input: br(freedomScientific):leftGDFButton+rightGDFButton IO - braille.BrailleBuffer.update (12:00:56.753): Braille regions text: [u'\u2807\u2807\u2807\u2807\u2807\u2807\u2807\u2807\u2807 '] IO - braille.BrailleHandler.update (12:00:56.753): Braille window dots: 123 123 123 123 123 123 123 123 123 - IO - braille.BrailleHandler.update (12:00:56.753): Braille window dots: 123 123 123 123 123 123 123 123 123 - IO - speech.speak (12:00:56.753): Speaking [u'Braille tethered to focus'] DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:56.753): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' IO - braille.BrailleBuffer.update (12:00:56.756): Braille regions text: [u'Braille tethered to focus'] DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:56.756): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' IO - braille.BrailleHandler.update (12:00:56.756): Braille window dots: 6 12 1235 123 - 2345 15 2346 1235 1246 - 2345 135 - 124 135 14 136 234 DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:56.759): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUGWARNING - NVDAObjects.IAccessible.IAccessible._get_IAccessibleRole (12:00:56.881): accRole failed: (-2147024809, 'The parameter is incorrect.', (None, None, None, 0, None)) DEBUGWARNING - NVDAObjects.IAccessible.IAccessible._get_IAccessibleRole (12:00:56.890): accRole failed: (-2147024809, 'The parameter is incorrect.', (None, None, None, 0, None)) DEBUGWARNING - NVDAObjects.IAccessible.IAccessible._get_IAccessibleRole (12:00:56.898): accRole failed: (-2147024809, 'The parameter is incorrect.', (None, None, None, 0, None)) DEBUGWARNING - NVDAObjects.IAccessible.IAccessible._get_IAccessibleRole (12:00:56.904): accRole failed: (-2147024809, 'The parameter is incorrect.', (None, None, None, 0, None)) DEBUGWARNING - NVDAObjects.IAccessible.IAccessible._get_IAccessibleRole (12:00:56.917): accRole failed: (-2147024809, 'The parameter is incorrect.', (None, None, None, 0, None)) DEBUGWARNING - NVDAObjects.IAccessible.IAccessible._get_IAccessibleRole (12:00:56.928): accRole failed: (-2147024809, 'The parameter is incorrect.', (None, None, None, 0, None)) DEBUGWARNING - NVDAObjects.IAccessible.IAccessible._get_IAccessibleRole (12:00:56.941): accRole failed: (-2147024809, 'The parameter is incorrect.', (None, None, None, 0, None)) DEBUGWARNING - NVDAObjects.IAccessible.IAccessible._get_IAccessibleRole (12:00:56.951): accRole failed: (-2147024809, 'The parameter is incorrect.', (None, None, None, 0, None)) DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:00:57.132): Got packet of type '\x03' with args: '\x00' '\x00' '\x00' IO - braille.BrailleHandler.update (12:01:00.769): Braille window dots: 123 123 123 123 123 123 123 123 123 - DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:01:00.770): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:01:01.266): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:01:01.779): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:01:02.283): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:01:02.779): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:01:03.273): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:01:03.785): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:01:04.275): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:01:04.779): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:01:05.279): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:01:05.457): Got packet of type '\x04' with args: '\x08' '\x01' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:01:05.607): Got packet of type '\x04' with args: '\x08' '\x00' '\x00' IO - inputCore.InputManager.executeGesture (12:01:05.608): Input: br(freedomScientific):routing IO - braille.BrailleBuffer.update (12:01:05.700): Braille regions text: [u'\u2807\u2807\u2807\u2807\u2807\u2807\u2807\u2807\u2807 '] IO - braille.BrailleHandler.update (12:01:05.701): Braille window dots: 123 123 123 123 123 123 123 123 123 - IO - braille.BrailleHandler.update (12:01:05.703): Braille window dots: 123 123 123 123 123 123 123 123 123 - DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:01:05.703): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:01:05.704): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:01:06.206): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:01:06.700): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:01:07.197): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:01:07.709): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:01:08.200): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:01:08.709): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:01:09.098): Got packet of type '\x04' with args: '\n' '\x01' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:01:09.206): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:01:09.299): Got packet of type '\x04' with args: '\n' '\x00' '\x00' IO - inputCore.InputManager.executeGesture (12:01:09.301): Input: br(freedomScientific):routing DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:01:09.703): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:01:10.012): Got packet of type '\x04' with args: '\t' '\x01' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:01:10.207): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:01:10.213): Got packet of type '\x04' with args: '\t' '\x00' '\x00' IO - inputCore.InputManager.executeGesture (12:01:10.213): Input: br(freedomScientific):routing IO - braille.BrailleBuffer.update (12:01:10.292): Braille regions text: [u'\u2807\u2807\u2807\u2807\u2807\u2807\u2807\u2807\u2807 '] IO - braille.BrailleHandler.update (12:01:10.292): Braille window dots: 123 123 123 123 123 123 123 123 123 - IO - braille.BrailleHandler.update (12:01:10.292): Braille window dots: 123 123 123 123 123 123 123 123 123 -

derekriemer commented 6 years ago

Also, I can do this. LeftGDF+Right GDF: DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:06:35.831): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:06:36.338): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:06:36.836): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:06:37.349): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:06:37.364): Got packet of type '\x03' with args: '\x00' '\x00' '\x01' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:06:37.414): Got packet of type '\x03' with args: '\x00' '\x00' '\x03' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:06:37.852): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:06:38.364): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:06:38.617): Got packet of type '\x03' with args: '\x00' '\x00' '\x02' IO - inputCore.InputManager.executeGesture (12:06:38.617): Input: br(freedomScientific):leftGDFButton+rightGDFButton IO - braille.BrailleBuffer.update (12:06:38.651): Braille regions text: [' '] IO - braille.BrailleHandler.update (12:06:38.651): Braille window dots: - IO - braille.BrailleHandler.update (12:06:38.651): Braille window dots: - IO - speech.speak (12:06:38.653): Speaking [u'Braille tethered to review'] DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:06:38.653): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' IO - braille.BrailleBuffer.update (12:06:38.654): Braille regions text: [u'Braille tethered to review'] DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:06:38.654): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' IO - braille.BrailleHandler.update (12:06:38.654): Braille window dots: 6 12 1235 123 - 2345 15 2346 1235 1246 - 2345 135 - 1235 15 1236 24 15 2456 DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:06:38.657): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:06:38.667): Got packet of type '\x03' with args: '\x00' '\x00' '\x00' DEBUGWARNING - NVDAObjects.IAccessible.IAccessible._get_IAccessibleRole (12:06:39.115): accRole failed: (-2147024809, 'The parameter is incorrect.', (None, None, None, 0, None)) DEBUGWARNING - NVDAObjects.IAccessible.IAccessible._get_IAccessibleRole (12:06:39.122): accRole failed: (-2147024809, 'The parameter is incorrect.', (None, None, None, 0, None)) DEBUGWARNING - NVDAObjects.IAccessible.IAccessible._get_IAccessibleRole (12:06:39.131): accRole failed: (-2147024809, 'The parameter is incorrect.', (None, None, None, 0, None)) DEBUGWARNING - NVDAObjects.IAccessible.IAccessible._get_IAccessibleRole (12:06:39.142): accRole failed: (-2147024809, 'The parameter is incorrect.', (None, None, None, 0, None)) DEBUGWARNING - NVDAObjects.IAccessible.IAccessible._get_IAccessibleRole (12:06:39.151): accRole failed: (-2147024809, 'The parameter is incorrect.', (None, None, None, 0, None)) DEBUGWARNING - NVDAObjects.IAccessible.IAccessible._get_IAccessibleRole (12:06:39.161): accRole failed: (-2147024809, 'The parameter is incorrect.', (None, None, None, 0, None)) DEBUGWARNING - NVDAObjects.IAccessible.IAccessible._get_IAccessibleRole (12:06:39.173): accRole failed: (-2147024809, 'The parameter is incorrect.', (None, None, None, 0, None)) DEBUGWARNING - NVDAObjects.IAccessible.IAccessible._get_IAccessibleRole (12:06:39.181): accRole failed: (-2147024809, 'The parameter is incorrect.', (None, None, None, 0, None)) DEBUGWARNING - NVDAObjects.IAccessible.IAccessible._get_IAccessibleRole (12:06:39.194): accRole failed: (-2147024809, 'The parameter is incorrect.', (None, None, None, 0, None)) DEBUGWARNING - NVDAObjects.IAccessible.IAccessible._get_IAccessibleRole (12:06:39.203): accRole failed: (-2147024809, 'The parameter is incorrect.', (None, None, None, 0, None)) DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:06:41.002): Got packet of type '\x03' with args: '\x00' '\x00' '\x02' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:06:41.052): Got packet of type '\x03' with args: '\x00' '\x00' '\x03' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:06:41.552): Got packet of type '\x03' with args: '\x00' '\x00' '\x02' IO - inputCore.InputManager.executeGesture (12:06:41.553): Input: br(freedomScientific):leftGDFButton+rightGDFButton IO - braille.BrailleBuffer.update (12:06:41.618): Braille regions text: [' '] IO - speech.speak (12:06:41.619): Speaking [u'Braille tethered to focus'] IO - braille.BrailleBuffer.update (12:06:41.621): Braille regions text: [u'Braille tethered to focus'] IO - braille.BrailleHandler.update (12:06:41.621): Braille window dots: 6 12 1235 123 - 2345 15 2346 1235 1246 - 2345 135 - 124 135 14 136 234 DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:06:41.621): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:06:42.255): Got packet of type '\x03' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:06:43.038): Got packet of type '\x03' with args: '\x00' '\x00' '\x01' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:06:43.088): Got packet of type '\x03' with args: '\x00' '\x00' '\x03' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:06:43.187): Got packet of type '\x03' with args: '\x00' '\x00' '\x01' IO - inputCore.InputManager.executeGesture (12:06:43.188): Input: br(freedomScientific):leftGDFButton+rightGDFButton IO - braille.BrailleBuffer.update (12:06:43.210): Braille regions text: [' '] IO - speech.speak (12:06:43.210): Speaking [u'Braille tethered to review'] IO - braille.BrailleBuffer.update (12:06:43.211): Braille regions text: [u'Braille tethered to review'] IO - braille.BrailleHandler.update (12:06:43.211): Braille window dots: 6 12 1235 123 - 2345 15 2346 1235 1246 - 2345 135 - 1235 15 1236 24 15 2456 DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:06:43.213): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:06:43.237): Got packet of type '\x03' with args: '\x00' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:06:43.987): Got packet of type '\x03' with args: '\x00' '\x00' '\x01' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:06:44.039): Got packet of type '\x03' with args: '\x00' '\x00' '\x03' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (12:06:44.188): Got packet of type '\x03' with args: '\x00' '\x00' '\x00' IO - inputCore.InputManager.executeGesture (12:06:44.188): Input: br(freedomScientific):rightGDFButton IO - inputCore.InputManager.executeGesture (12:06:45.983): Input: kb(desktop):NVDA+f1

valiant8086 commented 6 years ago

Does it look like this won't be available for 2018.2? Interestingly, I just tried it in the next build that I just downloaded a few minutes ago, and there's no VFO or Freedom Scientific mentioned when I hit change in the new Settings under the braille category. It's got a lot of options but no VFO.

But, my existing installed ordinary copy of NVDA release, currently on 2018.1, doesn't list it either. How did I have it working before? I tested this try build at one point. I don't know how I selected it just with existing copies of NVDA let alone the try build.

When I tested this before with this try build however, it was working with my Focus 14 blue.

derekriemer commented 6 years ago

It's not in next.

bramd commented 6 years ago

@derekriemer It has been a while, but I've a Focus again for testing so I can finish this driver. Could you retest my branch? I think I've solved the handling of keys when multiple keys are released at the same time.

lukaszgo1 commented 6 years ago

@bramd I've tried your branch from source and the driver is working beautifully. Only thing which is missing are new assignments for alt+shift+tab and for windows+tab added in 2018.3. Is there anything which needs particular testing?

MarcoZehe commented 6 years ago

Whoohoo this is exciting! I have a 5th generation Focus 40 Blue now. Please let me know if you need any testing with it, and which build I should grab for it. @bramd

bramd commented 6 years ago

@MarcoZehe commented on Sep 19, 2018, 7:59 AM GMT+2:

Whoohoo this is exciting! I have a 5th generation Focus 40 Blue now. Please let me know if you need any testing with it, and which build I should grab for it. @bramd

Yes please! This has not been tested with the fifth generation displays and that is a must for including it in NVDA, not supporting these displays would be a regression. I would like to clean up/refactor the code before doing a new build. I hope to finish this in the upcoming weeks.

Can you give me the vendor ID (VID) end product ID (PID) as displayed in Device manager for the display? Strangely, older Focus models show up in their own category in device manager and not in USB devices as you might expect. You can find the IDs on the details tab in the device properties. Select "Hardware IDs" from the list and you should see an ID in the form "USB\VID_xxx&PID_xxx". Without the correct IDs, the NVDA driver will not be able to detect the device at all.

MarcoZehe commented 6 years ago

Got them for you! This display still shows up in that extra section. The value I got is:

USB\VID_0F4E&PID_0114

bramd commented 6 years ago

@MarcoZehe Thanks, that's the same ID as older generations, so it should work just fine. Please try this build: https://ci.appveyor.com/api/buildjobs/laf2w8qm7phbn64q/artifacts/output%2Fnvda_snapshot_pr1234-5%2Ca3fb2291.exe

Please note that this build is not digitally signed and you will likely get a warning while running it.

Things you can test:

Thanks!

MarcoZehe commented 6 years ago

@bramd commented:

Things you can test:

  • Is automatic detection of the braille display working?

Yes, except when initially pairing the display via Bluetooth. Here's what I did:

  1. First tested the display over USB. Everything was working. Keys, input, autodetection, also the connection via selecting the driver directly.
  2. Unplugged the display and turned it back on to get Bluetooth.
  3. This computer had never connected to it via Bluetooth before. I established a connection.
  4. After the drivers had been installed and the wizard gave me the Finish button, the display was not automatically detected. I was on the Auto setting at the moment.
  5. Switched to the Freedom driver directly, and Connection to Auto. The display was then found.
  6. Switched the braille driver to AutoDetect, and the display remained working.
  • Does it work over USB and Bluetooth?

See above, apart from the initial connection where it is not detected unless I switch to the driver once explicitly, yes.

  • Does it work when it's selected manually and if so, does the port selection work as expected?

The port is auto, and the display is found in all cases.

  • Do all keys work and generate the expected key name (test using input help (nvda+1))?

Yes. The one peculiarity, which I've also seen on other display, with input help is, though, that the pan next and pan previous keys as well as the wiz wheel up and down produce the actual function, are not trapped and don't speak the function they perform. But they do perform the actions as expected, so they work, too.

  • Is braille input working as expected?

Yes.

  • Do you notice an other differences/regressions compared to the old driver?

No. It appears to be slightly more responsive. But that's a good thing. ;)

MarcoZehe commented 6 years ago

OK, just oticed when plugging the display back in, that the driver sees the disconnection, but not the reconnection. So the transition from USB to Bluetooth and back does not work, I have to reselect the driver for the new connection to be used. So all you need to do to reproduce this is to connect and disconnect (and then turn on) the display to alter between USB and Bluetooth. The driver doesn't auto-detect the new connection, neither when on Auto nor when the Freedom driver is selected directly.

LeonarddeR commented 6 years ago

Could you please do the following:

  1. IN a python console: do: import config; config.conf["debugLog"]["hwIo"] = True
  2. Enable debug logging
  3. Enable auto detection and make sure that the device is connnected
  4. Disconnect and reconnect the device.
  5. CHeck the log whether there are any debug warnings like: Couldn't initialize display driver for kwargs xxx

A possible cause could be that bdDetect simply acts to quickly. This also happens with Hims devices when they are in the boot process, i.e. they enable the USB interface while the display is not yet ready to handle connections. For Hims, this has been solved by increasing the amount of connection attempts or the per connection timeout.

Also, some ports bring themselves in a broken state while disconnected too quickly. See this snippet from the handy tech driver:

    def terminate(self):
        try:
            super(BrailleDisplayDriver, self).terminate()
        finally:
            # We must sleep before closing the  connection as not doing this can leave the display in a bad state where it can not be re-initialized.
            # This has been observed for Easy Braille displays.
            time.sleep(self.timeout)
            # Make sure the device gets closed.
            self._dev.close()
            # We also must sleep after closing, as it sometimes takes some time for the device to disconnect.
            # This has been observed for Active Braille displays.
            time.sleep(self.timeout)

A nice test case could be manually selecting the display driver, and, after the display is properly connected, just open the display selection again and select the same driver.

MarcoZehe commented 6 years ago

All right, here we go, be aware, this is a long comment with lots of log entry.

After step 2, I got:

DEBUG - braille.BrailleHandler.setDisplayByName (07:49:41.658): Switching braille display from freedomScientific to noBraille DEBUG - hwIo.IoBase.write (07:49:41.658): Write: '\x81(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00W' DEBUG - hwIo.IoBase.close (07:49:41.658): Closing DEBUG - hwIo.IoBase._notifyReceive (07:49:41.658): Read: '\x01\x00\x00\x00' INFO - braille.BrailleHandler.setDisplayByName (07:49:41.658): Loaded braille display driver noBraille, current display has 0 cells. ERROR - hwIo.IoBase._notifyReceive (07:49:41.658): Traceback (most recent call last): File "hwIo.pyc", line 147, in _notifyReceive TypeError: 'NoneType' object is not callable DEBUG - hwPortUtils.listUsbDevices (07:49:41.687): u'VID_0F4E&PID_0114' DEBUG - hwPortUtils.listUsbDevices (07:49:41.687): u'VID_0CF3&PID_E300' DEBUG - hwPortUtils.listUsbDevices (07:49:41.687): u'VID_0C45&PID_6713' DEBUG - hwPortUtils.listUsbDevices (07:49:41.687): u'VID_04F3&PID_24A1' DEBUG - hwPortUtils.listUsbDevices (07:49:41.687): Finished listing USB devices DEBUG - hwPortUtils.listHidDevices (07:49:41.687): {'devicePath': u'\\?\hid#intc816&col0f#3&36a7043c&0&000e#{4d1e55b2-f16f-11cf-88cb-001111000030}', 'hardwareID': u'HID\INTC816&Col0F', 'provider': None} DEBUG - hwPortUtils.listHidDevices (07:49:41.687): {'usbID': u'VID_04F3&PID_24A1', 'devicePath': u'\\?\hid#vid_04f3&pid_24a1&col04#6&cbf17ba&0&0003#{4d1e55b2-f16f-11cf-88cb-001111000030}', 'hardwareID': u'HID\VID_04F3&PID_24A1&REV_1111&Col04', 'provider': 'usb'} DEBUG - hwPortUtils.listHidDevices (07:49:41.697): {'devicePath': u'\\?\hid#dll07be&col01#5&388ea735&5&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}', 'hardwareID': u'HID\VEN_DLL&DEV_07BE&Col01', 'provider': None} DEBUG - hwPortUtils.listHidDevices (07:49:41.697): {'devicePath': u'\\?\hid#intc816&col02#3&36a7043c&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030}', 'hardwareID': u'HID\INTC816&Col02', 'provider': None} DEBUG - hwPortUtils.listHidDevices (07:49:41.697): {'devicePath': u'\\?\hid#dll07be&col02#5&388ea735&5&0001#{4d1e55b2-f16f-11cf-88cb-001111000030}', 'hardwareID': u'HID\VEN_DLL&DEV_07BE&Col02', 'provider': None} DEBUG - hwPortUtils.listHidDevices (07:49:41.697): {'devicePath': u'\\?\hid#intc816&col03#3&36a7043c&0&0002#{4d1e55b2-f16f-11cf-88cb-001111000030}', 'hardwareID': u'HID\INTC816&Col03', 'provider': None} DEBUG - hwPortUtils.listHidDevices (07:49:41.697): {'devicePath': u'\\?\hid#dll07be&col03#5&388ea735&5&0002#{4d1e55b2-f16f-11cf-88cb-001111000030}', 'hardwareID': u'HID\VEN_DLL&DEV_07BE&Col03', 'provider': None} DEBUG - hwPortUtils.listHidDevices (07:49:41.697): {'devicePath': u'\\?\hid#intc816&col04#3&36a7043c&0&0003#{4d1e55b2-f16f-11cf-88cb-001111000030}', 'hardwareID': u'HID\INTC816&Col04', 'provider': None} DEBUG - hwPortUtils.listHidDevices (07:49:41.697): {'devicePath': u'\\?\hid#dll07be&col04#5&388ea735&5&0003#{4d1e55b2-f16f-11cf-88cb-001111000030}', 'hardwareID': u'HID\VEN_DLL&DEV_07BE&Col04', 'provider': None} DEBUG - hwPortUtils.listHidDevices (07:49:41.697): {'devicePath': u'\\?\hid#intc816&col05#3&36a7043c&0&0004#{4d1e55b2-f16f-11cf-88cb-001111000030}', 'hardwareID': u'HID\INTC816&Col05', 'provider': None} DEBUG - hwPortUtils.listHidDevices (07:49:41.697): {'devicePath': u'\\?\hid#intc816&col06#3&36a7043c&0&0005#{4d1e55b2-f16f-11cf-88cb-001111000030}', 'hardwareID': u'HID\INTC816&Col06', 'provider': None} DEBUG - hwPortUtils.listHidDevices (07:49:41.697): {'devicePath': u'\\?\hid#intc816&col0a#3&36a7043c&0&0009#{4d1e55b2-f16f-11cf-88cb-001111000030}', 'hardwareID': u'HID\INTC816&Col0A', 'provider': None} DEBUG - hwPortUtils.listHidDevices (07:49:41.697): {'devicePath': u'\\?\hid#intc816&col07#3&36a7043c&0&0006#{4d1e55b2-f16f-11cf-88cb-001111000030}', 'hardwareID': u'HID\INTC816&Col07', 'provider': None} DEBUG - hwPortUtils.listHidDevices (07:49:41.697): {'devicePath': u'\\?\hid#intc816&col08#3&36a7043c&0&0007#{4d1e55b2-f16f-11cf-88cb-001111000030}', 'hardwareID': u'HID\INTC816&Col08', 'provider': None} DEBUG - hwPortUtils.listHidDevices (07:49:41.697): {'devicePath': u'\\?\hid#intc816&col09#3&36a7043c&0&0008#{4d1e55b2-f16f-11cf-88cb-001111000030}', 'hardwareID': u'HID\INTC816&Col09', 'provider': None} DEBUG - hwPortUtils.listHidDevices (07:49:41.697): {'usbID': u'VID_04F3&PID_24A1', 'devicePath': u'\\?\hid#vid_04f3&pid_24a1&col01#6&cbf17ba&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}', 'hardwareID': u'HID\VID_04F3&PID_24A1&REV_1111&Col01', 'provider': 'usb'} DEBUG - hwPortUtils.listHidDevices (07:49:41.703): {'devicePath': u'\\?\hid#intc816&col01#3&36a7043c&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}\kbd', 'hardwareID': u'HID\INTC816&Col01', 'provider': None} DEBUG - hwPortUtils.listHidDevices (07:49:41.703): {'devicePath': u'\\?\hid#intc816&col11#3&36a7043c&0&0010#{4d1e55b2-f16f-11cf-88cb-001111000030}', 'hardwareID': u'HID\INTC816&Col11', 'provider': None} DEBUG - hwPortUtils.listHidDevices (07:49:41.703): {'usbID': u'VID_04F3&PID_24A1', 'devicePath': u'\\?\hid#vid_04f3&pid_24a1&col02#6&cbf17ba&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030}', 'hardwareID': u'HID\VID_04F3&PID_24A1&REV_1111&Col02', 'provider': 'usb'} DEBUG - hwPortUtils.listHidDevices (07:49:41.703): {'devicePath': u'\\?\hid#intc816&col10#3&36a7043c&0&000f#{4d1e55b2-f16f-11cf-88cb-001111000030}', 'hardwareID': u'HID\INTC816&Col10', 'provider': None} DEBUG - hwPortUtils.listHidDevices (07:49:41.703): {'devicePath': u'\\?\hid#intc816&col12#3&36a7043c&0&0011#{4d1e55b2-f16f-11cf-88cb-001111000030}', 'hardwareID': u'HID\INTC816&Col12', 'provider': None} DEBUG - hwPortUtils.listHidDevices (07:49:41.703): {'devicePath': u'\\?\hid#converteddevice&col02#5&7674e02&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030}', 'hardwareID': u'HID\ConvertedDevice&Col02', 'provider': None} DEBUG - hwPortUtils.listHidDevices (07:49:41.703): {'devicePath': u'\\?\hid#converteddevice&col01#5&7674e02&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}\kbd', 'hardwareID': u'HID\ConvertedDevice&Col01', 'provider': None} DEBUG - hwPortUtils.listHidDevices (07:49:41.703): {'devicePath': u'\\?\hid#intc816&col0b#3&36a7043c&0&000a#{4d1e55b2-f16f-11cf-88cb-001111000030}', 'hardwareID': u'HID\INTC816&Col0B', 'provider': None} DEBUG - hwPortUtils.listHidDevices (07:49:41.703): {'devicePath': u'\\?\hid#intc816&col0c#3&36a7043c&0&000b#{4d1e55b2-f16f-11cf-88cb-001111000030}', 'hardwareID': u'HID\INTC816&Col0C', 'provider': None} DEBUG - hwPortUtils.listHidDevices (07:49:41.703): {'usbID': u'VID_04F3&PID_24A1', 'devicePath': u'\\?\hid#vid_04f3&pid_24a1&col03#6&cbf17ba&0&0002#{4d1e55b2-f16f-11cf-88cb-001111000030}', 'hardwareID': u'HID\VID_04F3&PID_24A1&REV_1111&Col03', 'provider': 'usb'} DEBUG - hwPortUtils.listHidDevices (07:49:41.703): {'devicePath': u'\\?\hid#intc816&col0d#3&36a7043c&0&000c#{4d1e55b2-f16f-11cf-88cb-001111000030}', 'hardwareID': u'HID\INTC816&Col0D', 'provider': None} DEBUG - hwPortUtils.listHidDevices (07:49:41.703): {'devicePath': u'\\?\hid#converteddevice&col03#5&7674e02&0&0002#{4d1e55b2-f16f-11cf-88cb-001111000030}', 'hardwareID': u'HID\ConvertedDevice&Col03', 'provider': None} DEBUG - hwPortUtils.listHidDevices (07:49:41.703): {'devicePath': u'\\?\hid#intc816&col0e#3&36a7043c&0&000d#{4d1e55b2-f16f-11cf-88cb-001111000030}', 'hardwareID': u'HID\INTC816&Col0E', 'provider': None} DEBUG - hwPortUtils.listHidDevices (07:49:41.703): Finished listing HID devices DEBUG - hwPortUtils.listComPorts (07:49:41.703): {'friendlyName': u'Standardm\xe4\xdfgige Seriell-\xfcber-Bluetooth-Verbindung (COM3)', 'bluetoothName': u'Focus 40 BT 22E86182', 'hardwareID': u'BTHENUM\{00001101-0000-1000-8000-00805f9b34fb}_LOCALMFG&001d', 'bluetoothAddress': 194137402401154L, 'port': u'COM3'} DEBUG - hwPortUtils.listComPorts (07:49:41.710): {'friendlyName': u'Standardm\xe4\xdfgige Seriell-\xfcber-Bluetooth-Verbindung (COM4)', 'hardwareID': u'BTHENUM\{00001101-0000-1000-8000-00805f9b34fb}_LOCALMFG&0000', 'bluetoothAddress': 0, 'port': u'COM4'} DEBUG - hwPortUtils.listComPorts (07:49:41.710): Finished listing com ports DEBUG - braille.BrailleHandler.setDisplayByName (07:49:41.710): Possibly detected display 'Freedom Scientific Focus- / PAC-Mate-Serien' DEBUG - hwIo.Bulk.init (07:49:41.710): Opening device \?\usb#vid_0f4e&pid_0114#1234567#{a5dcbf10-6530-11d2-901f-00c04fb951ed} DEBUG - hwIo.IoBase.write (07:49:41.710): Write: '\x00\x00\x00\x00' DEBUG - hwIo.IoBase.waitForRead (07:49:41.710): Waiting interrupted by completed i/o DEBUG - hwIo.IoBase._notifyReceive (07:49:41.710): Read: '\x01\x00\x00\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (07:49:41.710): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - hwIo.IoBase.waitForRead (07:49:41.710): Waiting interrupted by completed i/o DEBUG - hwIo.IoBase._notifyReceive (07:49:41.710): Read: '\x800\x00\x00FREEDOM SCIENTIFIC\x00\x00\x00\x00\x00\x00Focus 40\x00\x00\x00\x00\x00\x00\x00\x005.81-34\x00i' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (07:49:41.710): Got packet of type '\x80' with args: '0' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._handlePacket (07:49:41.710): Device info: manufacturer: FREEDOM SCIENTIFIC model: Focus 40, version: 5.81-34 DEBUG - hwIo.IoBase.waitForRead (07:49:41.710): Waiting interrupted by completed i/o INFO - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver.init (07:49:41.710): Found Focus 40 connected via custom (\?\usb#vid_0f4e&pid_0114#1234567#{a5dcbf10-6530-11d2-901f-00c04fb951ed}) DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._configureDisplay (07:49:41.710): Activating extended keys on freedom Scientific display. Display name: Focus 40, firmware version: 5.81-34. DEBUG - hwIo.IoBase.write (07:49:41.710): Write: '\x0f\x02\x00\x00' DEBUG - braille.BrailleHandler.setDisplayByName (07:49:41.716): Switching braille display from noBraille to freedomScientific INFO - braille.BrailleHandler.setDisplayByName (07:49:41.716): Loaded braille display driver freedomScientific, current display has 40 cells.

After disconnecting the display from USB, I got:

ERROR - unhandled exception (07:49:57.563): Traceback (most recent call last): File "_ctypes/callbacks.c", line 315, in 'calling callback function' File "hwIo.pyc", line 134, in _ioDone WindowsError: [Error 31] Ein an das System angeschlossenes Gerät funktioniert nicht.

(this means that a device connected to the computer is not working properly.)

I then reconnected the display, but NVDA didn't react at all. I waited about 30 seconds, then pressed NVDA+N to open the menu to switch the diplay.

The log continues straight from where I left off above, notice the time stamp changing, there was no activity in-between, so there was no notice of the display reconnecting.

IO - inputCore.InputManager.executeGesture (07:50:38.730): Input: kb(laptop):NVDA+n DEBUG - gui.MainFrame.evaluateUpdatePendingUpdateMenuItemCommand (07:50:38.746): Error while removing pending update menu item Traceback (most recent call last): File "gui__init.pyc", line 220, in evaluateUpdatePendingUpdateMenuItemCommand wxAssertionError: C++ assertion "node" failed at ....\src\msw\menu.cpp(890) in wxMenu::DoRemove(): bug in wxMenu::Remove logic IO - speech.speak (07:50:38.799): Speaking [u'NVDA Men\xfc'] DEBUG - NVDAObjects.NVDAObject._get_placeholder (07:50:38.799): Potential unimplemented child class: <NVDAObjects.IAccessible.IAccessible object at 0x0ACC5030> IO - braille.BrailleBuffer.update (07:50:38.799): Braille regions text: [u'NVDA mn'] IO - braille.BrailleHandler.update (07:50:38.799): Braille window dots: 13457 12367 1457 17 - 134 1345 DEBUG - hwIo.IoBase.write (07:50:38.799): Write: '\x81(\x00\x00]gYA\x00\r\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcf' DEBUG - hwIo.IoBase.write (07:50:38.799): Write failed: [Error 22] Das Gerät erkennt den Befehl nicht. ERROR - braille.executor (07:50:38.799): Error displaying cells. Disabling display Traceback (most recent call last): File "braille.pyc", line 2079, in executor File "brailleDisplayDrivers\freedomScientific.pyc", line 343, in display File "brailleDisplayDrivers\freedomScientific.pyc", line 190, in _sendPacket File "hwIo.pyc", line 101, in write WindowsError: [Error 22] Das Gerät erkennt den Befehl nicht. ERROR - braille.BrailleHandler.handleDisplayUnavailable (07:50:39.765): Braille display unavailable. Disabling Traceback (most recent call last): File "braille.pyc", line 2079, in executor File "brailleDisplayDrivers\freedomScientific.pyc", line 343, in display File "brailleDisplayDrivers\freedomScientific.pyc", line 190, in _sendPacket File "hwIo.pyc", line 101, in write WindowsError: [Error 22] Das Gerät erkennt den Befehl nicht. DEBUG - braille.BrailleHandler.setDisplayByName (07:50:39.801): Switching braille display from freedomScientific to noBraille DEBUG - hwIo.IoBase.write (07:50:39.801): Write: '\x81(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00W' DEBUG - hwIo.IoBase.write (07:50:39.801): Write failed: [Error 22] Das Gerät erkennt den Befehl nicht. DEBUG - hwIo.IoBase.close (07:50:39.801): Closing INFO - braille.BrailleHandler.setDisplayByName (07:50:39.801): Loaded braille display driver noBraille, current display has 0 cells. DEBUG - hwPortUtils.listUsbDevices (07:50:39.801): u'VID_0F4E&PID_0114' DEBUG - hwPortUtils.listUsbDevices (07:50:39.801): u'VID_0CF3&PID_E300' DEBUG - hwPortUtils.listUsbDevices (07:50:39.801): u'VID_0C45&PID_6713' DEBUG - hwPortUtils.listUsbDevices (07:50:39.801): u'VID_04F3&PID_24A1' DEBUG - hwPortUtils.listUsbDevices (07:50:39.801): Finished listing USB devices DEBUG - hwPortUtils.listHidDevices (07:50:39.801): {'devicePath': u'\\?\hid#intc816&col0f#3&36a7043c&0&000e#{4d1e55b2-f16f-11cf-88cb-001111000030}', 'hardwareID': u'HID\INTC816&Col0F', 'provider': None} DEBUG - hwPortUtils.listHidDevices (07:50:39.801): {'usbID': u'VID_04F3&PID_24A1', 'devicePath': u'\\?\hid#vid_04f3&pid_24a1&col04#6&cbf17ba&0&0003#{4d1e55b2-f16f-11cf-88cb-001111000030}', 'hardwareID': u'HID\VID_04F3&PID_24A1&REV_1111&Col04', 'provider': 'usb'} DEBUG - hwPortUtils.listHidDevices (07:50:39.801): {'devicePath': u'\\?\hid#dll07be&col01#5&388ea735&5&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}', 'hardwareID': u'HID\VEN_DLL&DEV_07BE&Col01', 'provider': None} DEBUG - hwPortUtils.listHidDevices (07:50:39.801): {'devicePath': u'\\?\hid#intc816&col02#3&36a7043c&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030}', 'hardwareID': u'HID\INTC816&Col02', 'provider': None} DEBUG - hwPortUtils.listHidDevices (07:50:39.801): {'devicePath': u'\\?\hid#dll07be&col02#5&388ea735&5&0001#{4d1e55b2-f16f-11cf-88cb-001111000030}', 'hardwareID': u'HID\VEN_DLL&DEV_07BE&Col02', 'provider': None} DEBUG - hwPortUtils.listHidDevices (07:50:39.801): {'devicePath': u'\\?\hid#intc816&col03#3&36a7043c&0&0002#{4d1e55b2-f16f-11cf-88cb-001111000030}', 'hardwareID': u'HID\INTC816&Col03', 'provider': None} DEBUG - hwPortUtils.listHidDevices (07:50:39.801): {'devicePath': u'\\?\hid#dll07be&col03#5&388ea735&5&0002#{4d1e55b2-f16f-11cf-88cb-001111000030}', 'hardwareID': u'HID\VEN_DLL&DEV_07BE&Col03', 'provider': None} DEBUG - hwPortUtils.listHidDevices (07:50:39.801): {'devicePath': u'\\?\hid#intc816&col04#3&36a7043c&0&0003#{4d1e55b2-f16f-11cf-88cb-001111000030}', 'hardwareID': u'HID\INTC816&Col04', 'provider': None} DEBUG - hwPortUtils.listHidDevices (07:50:39.801): {'devicePath': u'\\?\hid#dll07be&col04#5&388ea735&5&0003#{4d1e55b2-f16f-11cf-88cb-001111000030}', 'hardwareID': u'HID\VEN_DLL&DEV_07BE&Col04', 'provider': None} DEBUG - hwPortUtils.listHidDevices (07:50:39.801): {'devicePath': u'\\?\hid#intc816&col05#3&36a7043c&0&0004#{4d1e55b2-f16f-11cf-88cb-001111000030}', 'hardwareID': u'HID\INTC816&Col05', 'provider': None} DEBUG - hwPortUtils.listHidDevices (07:50:39.801): {'devicePath': u'\\?\hid#intc816&col06#3&36a7043c&0&0005#{4d1e55b2-f16f-11cf-88cb-001111000030}', 'hardwareID': u'HID\INTC816&Col06', 'provider': None} DEBUG - hwPortUtils.listHidDevices (07:50:39.801): {'devicePath': u'\\?\hid#intc816&col0a#3&36a7043c&0&0009#{4d1e55b2-f16f-11cf-88cb-001111000030}', 'hardwareID': u'HID\INTC816&Col0A', 'provider': None} DEBUG - hwPortUtils.listHidDevices (07:50:39.801): {'devicePath': u'\\?\hid#intc816&col07#3&36a7043c&0&0006#{4d1e55b2-f16f-11cf-88cb-001111000030}', 'hardwareID': u'HID\INTC816&Col07', 'provider': None} DEBUG - hwPortUtils.listHidDevices (07:50:39.801): {'devicePath': u'\\?\hid#intc816&col08#3&36a7043c&0&0007#{4d1e55b2-f16f-11cf-88cb-001111000030}', 'hardwareID': u'HID\INTC816&Col08', 'provider': None} DEBUG - hwPortUtils.listHidDevices (07:50:39.801): {'devicePath': u'\\?\hid#intc816&col09#3&36a7043c&0&0008#{4d1e55b2-f16f-11cf-88cb-001111000030}', 'hardwareID': u'HID\INTC816&Col09', 'provider': None} DEBUG - hwPortUtils.listHidDevices (07:50:39.801): {'usbID': u'VID_04F3&PID_24A1', 'devicePath': u'\\?\hid#vid_04f3&pid_24a1&col01#6&cbf17ba&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}', 'hardwareID': u'HID\VID_04F3&PID_24A1&REV_1111&Col01', 'provider': 'usb'} DEBUG - hwPortUtils.listHidDevices (07:50:39.801): {'devicePath': u'\\?\hid#intc816&col01#3&36a7043c&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}\kbd', 'hardwareID': u'HID\INTC816&Col01', 'provider': None} DEBUG - hwPortUtils.listHidDevices (07:50:39.801): {'devicePath': u'\\?\hid#intc816&col11#3&36a7043c&0&0010#{4d1e55b2-f16f-11cf-88cb-001111000030}', 'hardwareID': u'HID\INTC816&Col11', 'provider': None} DEBUG - hwPortUtils.listHidDevices (07:50:39.801): {'usbID': u'VID_04F3&PID_24A1', 'devicePath': u'\\?\hid#vid_04f3&pid_24a1&col02#6&cbf17ba&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030}', 'hardwareID': u'HID\VID_04F3&PID_24A1&REV_1111&Col02', 'provider': 'usb'} DEBUG - hwPortUtils.listHidDevices (07:50:39.801): {'devicePath': u'\\?\hid#intc816&col10#3&36a7043c&0&000f#{4d1e55b2-f16f-11cf-88cb-001111000030}', 'hardwareID': u'HID\INTC816&Col10', 'provider': None} DEBUG - hwPortUtils.listHidDevices (07:50:39.801): {'devicePath': u'\\?\hid#intc816&col12#3&36a7043c&0&0011#{4d1e55b2-f16f-11cf-88cb-001111000030}', 'hardwareID': u'HID\INTC816&Col12', 'provider': None} DEBUG - hwPortUtils.listHidDevices (07:50:39.801): {'devicePath': u'\\?\hid#converteddevice&col02#5&7674e02&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030}', 'hardwareID': u'HID\ConvertedDevice&Col02', 'provider': None} DEBUG - hwPortUtils.listHidDevices (07:50:39.801): {'devicePath': u'\\?\hid#converteddevice&col01#5&7674e02&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}\kbd', 'hardwareID': u'HID\ConvertedDevice&Col01', 'provider': None} DEBUG - hwPortUtils.listHidDevices (07:50:39.801): {'devicePath': u'\\?\hid#intc816&col0b#3&36a7043c&0&000a#{4d1e55b2-f16f-11cf-88cb-001111000030}', 'hardwareID': u'HID\INTC816&Col0B', 'provider': None} DEBUG - hwPortUtils.listHidDevices (07:50:39.801): {'devicePath': u'\\?\hid#intc816&col0c#3&36a7043c&0&000b#{4d1e55b2-f16f-11cf-88cb-001111000030}', 'hardwareID': u'HID\INTC816&Col0C', 'provider': None} DEBUG - hwPortUtils.listHidDevices (07:50:39.801): {'usbID': u'VID_04F3&PID_24A1', 'devicePath': u'\\?\hid#vid_04f3&pid_24a1&col03#6&cbf17ba&0&0002#{4d1e55b2-f16f-11cf-88cb-001111000030}', 'hardwareID': u'HID\VID_04F3&PID_24A1&REV_1111&Col03', 'provider': 'usb'} DEBUG - hwPortUtils.listHidDevices (07:50:39.801): {'devicePath': u'\\?\hid#intc816&col0d#3&36a7043c&0&000c#{4d1e55b2-f16f-11cf-88cb-001111000030}', 'hardwareID': u'HID\INTC816&Col0D', 'provider': None} DEBUG - hwPortUtils.listHidDevices (07:50:39.801): {'devicePath': u'\\?\hid#converteddevice&col03#5&7674e02&0&0002#{4d1e55b2-f16f-11cf-88cb-001111000030}', 'hardwareID': u'HID\ConvertedDevice&Col03', 'provider': None} DEBUG - hwPortUtils.listHidDevices (07:50:39.801): {'devicePath': u'\\?\hid#intc816&col0e#3&36a7043c&0&000d#{4d1e55b2-f16f-11cf-88cb-001111000030}', 'hardwareID': u'HID\INTC816&Col0E', 'provider': None} DEBUG - hwPortUtils.listHidDevices (07:50:39.801): Finished listing HID devices DEBUG - hwPortUtils.listComPorts (07:50:39.809): {'friendlyName': u'Standardm\xe4\xdfgige Seriell-\xfcber-Bluetooth-Verbindung (COM3)', 'bluetoothName': u'Focus 40 BT 22E86182', 'hardwareID': u'BTHENUM\{00001101-0000-1000-8000-00805f9b34fb}_LOCALMFG&001d', 'bluetoothAddress': 194137402401154L, 'port': u'COM3'} DEBUG - hwPortUtils.listComPorts (07:50:39.809): {'friendlyName': u'Standardm\xe4\xdfgige Seriell-\xfcber-Bluetooth-Verbindung (COM4)', 'hardwareID': u'BTHENUM\{00001101-0000-1000-8000-00805f9b34fb}_LOCALMFG&0000', 'bluetoothAddress': 0, 'port': u'COM4'} DEBUG - hwPortUtils.listComPorts (07:50:39.809): Finished listing com ports DEBUG - braille.BrailleHandler.setDisplayByName (07:50:39.809): Possibly detected display 'Freedom Scientific Focus- / PAC-Mate-Serien' DEBUG - hwIo.Bulk.init__ (07:50:39.809): Opening device \?\usb#vid_0f4e&pid_0114#1234567#{a5dcbf10-6530-11d2-901f-00c04fb951ed} DEBUG - hwIo.IoBase.write (07:50:39.809): Write: '\x00\x00\x00\x00' DEBUG - hwIo.IoBase.waitForRead (07:50:39.809): Waiting interrupted by completed i/o DEBUG - hwIo.IoBase._notifyReceive (07:50:39.809): Read: '\x01\x00\x00\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (07:50:39.809): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - hwIo.IoBase.waitForRead (07:50:39.809): Waiting interrupted by completed i/o DEBUG - hwIo.IoBase._notifyReceive (07:50:39.809): Read: '\x800\x00\x00FREEDOM SCIENTIFIC\x00\x00\x00\x00\x00\x00Focus 40\x00\x00\x00\x00\x00\x00\x00\x005.81-34\x00i' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (07:50:39.809): Got packet of type '\x80' with args: '0' '\x00' '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._handlePacket (07:50:39.809): Device info: manufacturer: FREEDOM SCIENTIFIC model: Focus 40, version: 5.81-34 DEBUG - hwIo.IoBase.waitForRead (07:50:39.809): Waiting interrupted by completed i/o INFO - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver.init (07:50:39.809): Found Focus 40 connected via custom (\?\usb#vid_0f4e&pid_0114#1234567#{a5dcbf10-6530-11d2-901f-00c04fb951ed}) DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._configureDisplay (07:50:39.809): Activating extended keys on freedom Scientific display. Display name: Focus 40, firmware version: 5.81-34. DEBUG - hwIo.IoBase.write (07:50:39.809): Write: '\x0f\x02\x00\x00' DEBUG - braille.BrailleHandler.setDisplayByName (07:50:39.809): Switching braille display from noBraille to freedomScientific INFO - braille.BrailleHandler.setDisplayByName (07:50:39.809): Loaded braille display driver freedomScientific, current display has 40 cells.

It then displayed the NVDA menu. So it did detect the display again, but only after I pressed an NVDA command.

LeonarddeR commented 6 years ago

I think the reason why it only picked up the device after opening the NVDA menu, was that there were no attempts to write to the braille display in the period of 30 second that you waited. It looks like the display driver did terminate after the 30 seconds of inactivity, why you would expect it to terminate as soon as there is connection loss.

MarcoZehe commented 6 years ago

I was under the impression that it would work similarly to the Handy Tech auto detect, where after you reconnect the display, it just starts working, even without executing an NVDA command first.

Leonard de Ruijter notifications@github.com hat am 4. Oktober 2018 um 08:16 geschrieben:

I think the reason why it only picked up the device after opening the NVDA menu, was that there were no attempts to write to the braille display in the period of 30 second that you waited. It looks like the display driver did terminate after the 30 seconds of inactivity, why you would expect it to terminate as soon as there is connection loss.

-- You are receiving this because you were mentioned. Reply to this email directly or view it on GitHub: https://github.com/nvaccess/nvda/issues/7727#issuecomment-426897937

LeonarddeR commented 6 years ago

It should work this way, yes. The reason why it doesn't, is that auto detection isn't enabled as soon as you disconnect the display. It re-enables as soon as the previous display driver terminates, and that seems to happen only after you explicitly change focus or trigger something else that writes braille.

Could you try disconnecting and reconnecting the device when in an editor with blinking cursor?

MarcoZehe commented 6 years ago

Hm, the results are inconclusive. Often, when I disconnect and reconnect the display via USB, the connection is then established via Bluetooth instead. A typical log entry looks like this:

ERROR - unhandled exception (11:58:52.460): Traceback (most recent call last): File "_ctypes/callbacks.c", line 315, in 'calling callback function' File "hwIo.pyc", line 134, in _ioDone WindowsError: [Error 31] Ein an das System angeschlossenes Gerät funktioniert nicht. DEBUG - hwIo.IoBase.write (11:58:53.474): Write: '\x81(\x00\x00\r5\x00\x11\x0b\x00\xc0\x00\x11\x0b\x00\x11\x1d\x19\x11\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc5' DEBUG - hwIo.IoBase.write (11:58:53.474): Write failed: [Error 22] Das Gerät erkennt den Befehl nicht. ERROR - braille.executor (11:58:53.474): Error displaying cells. Disabling display Traceback (most recent call last): File "braille.pyc", line 2079, in executor File "brailleDisplayDrivers\freedomScientific.pyc", line 343, in display File "brailleDisplayDrivers\freedomScientific.pyc", line 190, in _sendPacket File "hwIo.pyc", line 101, in write WindowsError: [Error 22] Das Gerät erkennt den Befehl nicht. ERROR - braille.BrailleHandler.handleDisplayUnavailable (11:58:53.507): Braille display unavailable. Disabling Traceback (most recent call last): File "braille.pyc", line 2079, in executor File "brailleDisplayDrivers\freedomScientific.pyc", line 343, in display File "brailleDisplayDrivers\freedomScientific.pyc", line 190, in _sendPacket File "hwIo.pyc", line 101, in write WindowsError: [Error 22] Das Gerät erkennt den Befehl nicht. DEBUG - braille.BrailleHandler.setDisplayByName (11:58:53.538): Switching braille display from freedomScientific to noBraille DEBUG - hwIo.IoBase.write (11:58:53.538): Write: '\x81(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00W' DEBUG - hwIo.IoBase.write (11:58:53.538): Write failed: [Error 22] Das Gerät erkennt den Befehl nicht. DEBUG - hwIo.IoBase.close (11:58:53.538): Closing INFO - braille.BrailleHandler.setDisplayByName (11:58:53.538): Loaded braille display driver noBraille, current display has 0 cells. DEBUG - hwPortUtils.listUsbDevices (11:58:53.543): u'VID_0CF3&PID_E300' DEBUG - hwPortUtils.listUsbDevices (11:58:53.543): u'VID_0C45&PID_6713' DEBUG - hwPortUtils.listUsbDevices (11:58:53.543): u'VID_04F3&PID_24A1' DEBUG - hwPortUtils.listUsbDevices (11:58:53.543): Finished listing USB devices DEBUG - hwPortUtils.listHidDevices (11:58:53.543): {'devicePath': u'\\?\hid#intc816&col0f#3&36a7043c&0&000e#{4d1e55b2-f16f-11cf-88cb-001111000030}', 'hardwareID': u'HID\INTC816&Col0F', 'provider': None} DEBUG - hwPortUtils.listHidDevices (11:58:53.543): {'usbID': u'VID_04F3&PID_24A1', 'devicePath': u'\\?\hid#vid_04f3&pid_24a1&col04#6&cbf17ba&0&0003#{4d1e55b2-f16f-11cf-88cb-001111000030}', 'hardwareID': u'HID\VID_04F3&PID_24A1&REV_1111&Col04', 'provider': 'usb'} DEBUG - hwPortUtils.listHidDevices (11:58:53.543): {'devicePath': u'\\?\hid#dll07be&col01#5&388ea735&5&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}', 'hardwareID': u'HID\VEN_DLL&DEV_07BE&Col01', 'provider': None} DEBUG - hwPortUtils.listHidDevices (11:58:53.543): {'devicePath': u'\\?\hid#intc816&col02#3&36a7043c&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030}', 'hardwareID': u'HID\INTC816&Col02', 'provider': None} DEBUG - hwPortUtils.listHidDevices (11:58:53.543): {'devicePath': u'\\?\hid#dll07be&col02#5&388ea735&5&0001#{4d1e55b2-f16f-11cf-88cb-001111000030}', 'hardwareID': u'HID\VEN_DLL&DEV_07BE&Col02', 'provider': None} DEBUG - hwPortUtils.listHidDevices (11:58:53.543): {'devicePath': u'\\?\hid#intc816&col03#3&36a7043c&0&0002#{4d1e55b2-f16f-11cf-88cb-001111000030}', 'hardwareID': u'HID\INTC816&Col03', 'provider': None} DEBUG - hwPortUtils.listHidDevices (11:58:53.543): {'devicePath': u'\\?\hid#dll07be&col03#5&388ea735&5&0002#{4d1e55b2-f16f-11cf-88cb-001111000030}', 'hardwareID': u'HID\VEN_DLL&DEV_07BE&Col03', 'provider': None} DEBUG - hwPortUtils.listHidDevices (11:58:53.543): {'devicePath': u'\\?\hid#intc816&col04#3&36a7043c&0&0003#{4d1e55b2-f16f-11cf-88cb-001111000030}', 'hardwareID': u'HID\INTC816&Col04', 'provider': None} DEBUG - hwPortUtils.listHidDevices (11:58:53.543): {'devicePath': u'\\?\hid#dll07be&col04#5&388ea735&5&0003#{4d1e55b2-f16f-11cf-88cb-001111000030}', 'hardwareID': u'HID\VEN_DLL&DEV_07BE&Col04', 'provider': None} DEBUG - hwPortUtils.listHidDevices (11:58:53.543): {'devicePath': u'\\?\hid#intc816&col05#3&36a7043c&0&0004#{4d1e55b2-f16f-11cf-88cb-001111000030}', 'hardwareID': u'HID\INTC816&Col05', 'provider': None} DEBUG - hwPortUtils.listHidDevices (11:58:53.549): {'devicePath': u'\\?\hid#intc816&col06#3&36a7043c&0&0005#{4d1e55b2-f16f-11cf-88cb-001111000030}', 'hardwareID': u'HID\INTC816&Col06', 'provider': None} DEBUG - hwPortUtils.listHidDevices (11:58:53.549): {'devicePath': u'\\?\hid#intc816&col0a#3&36a7043c&0&0009#{4d1e55b2-f16f-11cf-88cb-001111000030}', 'hardwareID': u'HID\INTC816&Col0A', 'provider': None} DEBUG - hwPortUtils.listHidDevices (11:58:53.549): {'devicePath': u'\\?\hid#intc816&col07#3&36a7043c&0&0006#{4d1e55b2-f16f-11cf-88cb-001111000030}', 'hardwareID': u'HID\INTC816&Col07', 'provider': None} DEBUG - hwPortUtils.listHidDevices (11:58:53.549): {'devicePath': u'\\?\hid#intc816&col08#3&36a7043c&0&0007#{4d1e55b2-f16f-11cf-88cb-001111000030}', 'hardwareID': u'HID\INTC816&Col08', 'provider': None} DEBUG - hwPortUtils.listHidDevices (11:58:53.549): {'devicePath': u'\\?\hid#intc816&col09#3&36a7043c&0&0008#{4d1e55b2-f16f-11cf-88cb-001111000030}', 'hardwareID': u'HID\INTC816&Col09', 'provider': None} DEBUG - hwPortUtils.listHidDevices (11:58:53.549): {'usbID': u'VID_04F3&PID_24A1', 'devicePath': u'\\?\hid#vid_04f3&pid_24a1&col01#6&cbf17ba&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}', 'hardwareID': u'HID\VID_04F3&PID_24A1&REV_1111&Col01', 'provider': 'usb'} DEBUG - hwPortUtils.listHidDevices (11:58:53.549): {'devicePath': u'\\?\hid#intc816&col01#3&36a7043c&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}\kbd', 'hardwareID': u'HID\INTC816&Col01', 'provider': None} DEBUG - hwPortUtils.listHidDevices (11:58:53.549): {'devicePath': u'\\?\hid#intc816&col11#3&36a7043c&0&0010#{4d1e55b2-f16f-11cf-88cb-001111000030}', 'hardwareID': u'HID\INTC816&Col11', 'provider': None} DEBUG - hwPortUtils.listHidDevices (11:58:53.549): {'usbID': u'VID_04F3&PID_24A1', 'devicePath': u'\\?\hid#vid_04f3&pid_24a1&col02#6&cbf17ba&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030}', 'hardwareID': u'HID\VID_04F3&PID_24A1&REV_1111&Col02', 'provider': 'usb'} DEBUG - hwPortUtils.listHidDevices (11:58:53.549): {'devicePath': u'\\?\hid#intc816&col10#3&36a7043c&0&000f#{4d1e55b2-f16f-11cf-88cb-001111000030}', 'hardwareID': u'HID\INTC816&Col10', 'provider': None} DEBUG - hwPortUtils.listHidDevices (11:58:53.549): {'devicePath': u'\\?\hid#intc816&col12#3&36a7043c&0&0011#{4d1e55b2-f16f-11cf-88cb-001111000030}', 'hardwareID': u'HID\INTC816&Col12', 'provider': None} DEBUG - hwPortUtils.listHidDevices (11:58:53.549): {'devicePath': u'\\?\hid#converteddevice&col02#5&7674e02&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030}', 'hardwareID': u'HID\ConvertedDevice&Col02', 'provider': None} DEBUG - hwPortUtils.listHidDevices (11:58:53.549): {'devicePath': u'\\?\hid#converteddevice&col01#5&7674e02&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}\kbd', 'hardwareID': u'HID\ConvertedDevice&Col01', 'provider': None} DEBUG - hwPortUtils.listHidDevices (11:58:53.549): {'devicePath': u'\\?\hid#intc816&col0b#3&36a7043c&0&000a#{4d1e55b2-f16f-11cf-88cb-001111000030}', 'hardwareID': u'HID\INTC816&Col0B', 'provider': None} DEBUG - hwPortUtils.listHidDevices (11:58:53.549): {'devicePath': u'\\?\hid#intc816&col0c#3&36a7043c&0&000b#{4d1e55b2-f16f-11cf-88cb-001111000030}', 'hardwareID': u'HID\INTC816&Col0C', 'provider': None} DEBUG - hwPortUtils.listHidDevices (11:58:53.549): {'usbID': u'VID_04F3&PID_24A1', 'devicePath': u'\\?\hid#vid_04f3&pid_24a1&col03#6&cbf17ba&0&0002#{4d1e55b2-f16f-11cf-88cb-001111000030}', 'hardwareID': u'HID\VID_04F3&PID_24A1&REV_1111&Col03', 'provider': 'usb'} DEBUG - hwPortUtils.listHidDevices (11:58:53.549): {'devicePath': u'\\?\hid#intc816&col0d#3&36a7043c&0&000c#{4d1e55b2-f16f-11cf-88cb-001111000030}', 'hardwareID': u'HID\INTC816&Col0D', 'provider': None} DEBUG - hwPortUtils.listHidDevices (11:58:53.549): {'devicePath': u'\\?\hid#converteddevice&col03#5&7674e02&0&0002#{4d1e55b2-f16f-11cf-88cb-001111000030}', 'hardwareID': u'HID\ConvertedDevice&Col03', 'provider': None} DEBUG - hwPortUtils.listHidDevices (11:58:53.549): {'devicePath': u'\\?\hid#intc816&col0e#3&36a7043c&0&000d#{4d1e55b2-f16f-11cf-88cb-001111000030}', 'hardwareID': u'HID\INTC816&Col0E', 'provider': None} DEBUG - hwPortUtils.listHidDevices (11:58:53.553): Finished listing HID devices DEBUG - hwPortUtils.listComPorts (11:58:53.553): {'friendlyName': u'Standardm\xe4\xdfgige Seriell-\xfcber-Bluetooth-Verbindung (COM3)', 'bluetoothName': u'Focus 40 BT 22E86182', 'hardwareID': u'BTHENUM\{00001101-0000-1000-8000-00805f9b34fb}_LOCALMFG&001d', 'bluetoothAddress': 194137402401154L, 'port': u'COM3'} DEBUG - hwPortUtils.listComPorts (11:58:53.553): {'friendlyName': u'Standardm\xe4\xdfgige Seriell-\xfcber-Bluetooth-Verbindung (COM4)', 'hardwareID': u'BTHENUM\{00001101-0000-1000-8000-00805f9b34fb}_LOCALMFG&0000', 'bluetoothAddress': 0, 'port': u'COM4'} DEBUG - hwPortUtils.listComPorts (11:58:53.553): Finished listing com ports DEBUG - braille.BrailleHandler.setDisplayByName (11:58:53.553): Possibly detected display 'Freedom Scientific Focus- / PAC-Mate-Serien' DEBUG - hwIo.Serial.init (11:58:53.553): Opening port COM3 DEBUG - hwIo.Serial.init (11:58:58.743): Open failed: could not open port u'COM3': WindowsError(121, 'Das Zeitlimit f\xfcr die Semaphore wurde erreicht.') DEBUGWARNING - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver.init (11:58:58.743): Traceback (most recent call last): File "brailleDisplayDrivers\freedomScientific.pyc", line 132, in init File "hwIo.pyc", line 170, in init File "serial\serialwin32.pyc", line 38, in init File "serial\serialutil.pyc", line 282, in init File "serial\serialwin32.pyc", line 66, in open SerialException: could not open port u'COM3': WindowsError(121, 'Das Zeitlimit f\xfcr die Semaphore wurde erreicht.') DEBUGWARNING - braille.BrailleHandler.setDisplayByName (11:58:58.743): Couldn't initialize display driver for kwargs {'port': DeviceMatch(type='serial', id=u'Focus 40 BT 22E86182', port=u'COM3', deviceInfo={'friendlyName': u'Standardm\xe4\xdfgige Seriell-\xfcber-Bluetooth-Verbindung (COM3)', 'bluetoothName': u'Focus 40 BT 22E86182', 'hardwareID': u'BTHENUM\{00001101-0000-1000-8000-00805f9b34fb}_LOCALMFG&001d', 'bluetoothAddress': 194137402401154L, 'port': u'COM3'})} Traceback (most recent call last): File "braille.pyc", line 1661, in setDisplayByName File "brailleDisplayDrivers\freedomScientific.pyc", line 152, in init RuntimeError: No Freedom Scientific display found DEBUG - braille.BrailleHandler.setDisplayByName (11:58:58.743): Reinitializing noBraille braille display INFO - braille.BrailleHandler.setDisplayByName (11:58:58.743): Loaded braille display driver noBraille, current display has 0 cells. DEBUG - braille.BrailleHandler.setDisplayByName (11:59:00.517): Possibly detected display 'Freedom Scientific Focus- / PAC-Mate-Serien' DEBUG - hwIo.Serial.init (11:59:00.517): Opening port COM3 DEBUG - hwIo.Serial.write (11:59:04.813): Write: '\x00\x00\x00\x00' DEBUG - hwIo.IoBase.waitForRead (11:59:04.829): Waiting interrupted by completed i/o DEBUG - hwIo.IoBase._notifyReceive (11:59:04.829): Read: '\x01' DEBUG - hwIo.Serial.read (11:59:04.829): Read: '\x00' DEBUG - hwIo.Serial.read (11:59:04.829): Read: '\x00' DEBUG - hwIo.Serial.read (11:59:04.829): Read: '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (11:59:04.829): Got packet of type '\x01' with args: '\x00' '\x00' '\x00' DEBUG - hwIo.IoBase._notifyReceive (11:59:04.829): Read: '\x80' DEBUG - hwIo.Serial.read (11:59:04.829): Read: '0' DEBUG - hwIo.Serial.read (11:59:04.845): Read: '\x00' DEBUG - hwIo.Serial.read (11:59:04.845): Read: '\x00' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (11:59:04.845): Got packet of type '\x80' with args: '0' '\x00' '\x00' DEBUG - hwIo.Serial.read (11:59:04.845): Read: 'FREEDOM SCIENTIFIC\x00\x00\x00\x00\x00\x00Focus 40\x00\x00\x00\x00\x00\x00\x00\x005.81-34\x00' DEBUG - hwIo.Serial.read (11:59:04.845): Read: 'i' DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._handlePacket (11:59:04.845): Device info: manufacturer: FREEDOM SCIENTIFIC model: Focus 40, version: 5.81-34 DEBUG - hwIo.IoBase.waitForRead (11:59:04.845): Waiting interrupted by completed i/o INFO - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver.init (11:59:04.845): Found Focus 40 connected via serial (COM3) DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._configureDisplay (11:59:04.845): Activating extended keys on freedom Scientific display. Display name: Focus 40, firmware version: 5.81-34. DEBUG - hwIo.Serial.write (11:59:04.845): Write: '\x0f\x02\x00\x00' DEBUG - braille.BrailleHandler.setDisplayByName (11:59:04.845): Switching braille display from noBraille to freedomScientific INFO - braille.BrailleHandler.setDisplayByName (11:59:04.845): Loaded braille display driver freedomScientific, current display has 40 cells.

One thing that then doesn't work without me reloading the Auto driver from the Braille Settings dialog is to switch the display connection to USB. The connection is lost, but not reestablished via USB, even though the display is already available. ERROR - unhandled exception (12:01:01.328): Traceback (most recent call last): File "_ctypes/callbacks.c", line 315, in 'calling callback function' File "hwIo.pyc", line 134, in _ioDone WindowsError: [Error 31] Ein an das System angeschlossenes Gerät funktioniert nicht. DEBUG - hwIo.IoBase.write (12:01:01.480): Write: '\x81(\x00\x00\r5\x00\x11\x0b\x00\x00\x00\x11\x0b\x00\x11\x1d\x19\x11\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x85' DEBUG - hwIo.IoBase.write (12:01:01.480): Write failed: [Error 22] Das Gerät erkennt den Befehl nicht. ERROR - braille.executor (12:01:01.480): Error displaying cells. Disabling display Traceback (most recent call last): File "braille.pyc", line 2079, in executor File "brailleDisplayDrivers\freedomScientific.pyc", line 343, in display File "brailleDisplayDrivers\freedomScientific.pyc", line 190, in _sendPacket File "hwIo.pyc", line 101, in write WindowsError: [Error 22] Das Gerät erkennt den Befehl nicht. ERROR - braille.BrailleHandler.handleDisplayUnavailable (12:01:01.526): Braille display unavailable. Disabling Traceback (most recent call last): File "braille.pyc", line 2079, in executor File "brailleDisplayDrivers\freedomScientific.pyc", line 343, in display File "brailleDisplayDrivers\freedomScientific.pyc", line 190, in _sendPacket File "hwIo.pyc", line 101, in write WindowsError: [Error 22] Das Gerät erkennt den Befehl nicht. DEBUG - braille.BrailleHandler.setDisplayByName (12:01:01.566): Switching braille display from freedomScientific to noBraille DEBUG - hwIo.IoBase.write (12:01:01.566): Write: '\x81(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00W' DEBUG - hwIo.IoBase.write (12:01:01.566): Write failed: [Error 22] Das Gerät erkennt den Befehl nicht. DEBUG - hwIo.IoBase.close (12:01:01.566): Closing INFO - braille.BrailleHandler.setDisplayByName (12:01:01.566): Loaded braille display driver noBraille, current display has 0 cells. DEBUG - hwPortUtils.listUsbDevices (12:01:01.566): u'VID_0CF3&PID_E300' DEBUG - hwPortUtils.listUsbDevices (12:01:01.566): u'VID_0C45&PID_6713' DEBUG - hwPortUtils.listUsbDevices (12:01:01.566): u'VID_04F3&PID_24A1' DEBUG - hwPortUtils.listUsbDevices (12:01:01.566): Finished listing USB devices DEBUG - hwPortUtils.listHidDevices (12:01:01.566): {'devicePath': u'\\?\hid#intc816&col0f#3&36a7043c&0&000e#{4d1e55b2-f16f-11cf-88cb-001111000030}', 'hardwareID': u'HID\INTC816&Col0F', 'provider': None} DEBUG - hwPortUtils.listHidDevices (12:01:01.566): {'usbID': u'VID_04F3&PID_24A1', 'devicePath': u'\\?\hid#vid_04f3&pid_24a1&col04#6&cbf17ba&0&0003#{4d1e55b2-f16f-11cf-88cb-001111000030}', 'hardwareID': u'HID\VID_04F3&PID_24A1&REV_1111&Col04', 'provider': 'usb'} DEBUG - hwPortUtils.listHidDevices (12:01:01.566): {'devicePath': u'\\?\hid#dll07be&col01#5&388ea735&5&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}', 'hardwareID': u'HID\VEN_DLL&DEV_07BE&Col01', 'provider': None} DEBUG - hwPortUtils.listHidDevices (12:01:01.566): {'devicePath': u'\\?\hid#intc816&col02#3&36a7043c&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030}', 'hardwareID': u'HID\INTC816&Col02', 'provider': None} DEBUG - hwPortUtils.listHidDevices (12:01:01.566): {'devicePath': u'\\?\hid#dll07be&col02#5&388ea735&5&0001#{4d1e55b2-f16f-11cf-88cb-001111000030}', 'hardwareID': u'HID\VEN_DLL&DEV_07BE&Col02', 'provider': None} DEBUG - hwPortUtils.listHidDevices (12:01:01.566): {'devicePath': u'\\?\hid#intc816&col03#3&36a7043c&0&0002#{4d1e55b2-f16f-11cf-88cb-001111000030}', 'hardwareID': u'HID\INTC816&Col03', 'provider': None} DEBUG - hwPortUtils.listHidDevices (12:01:01.566): {'devicePath': u'\\?\hid#dll07be&col03#5&388ea735&5&0002#{4d1e55b2-f16f-11cf-88cb-001111000030}', 'hardwareID': u'HID\VEN_DLL&DEV_07BE&Col03', 'provider': None} DEBUG - hwPortUtils.listHidDevices (12:01:01.566): {'devicePath': u'\\?\hid#intc816&col04#3&36a7043c&0&0003#{4d1e55b2-f16f-11cf-88cb-001111000030}', 'hardwareID': u'HID\INTC816&Col04', 'provider': None} DEBUG - hwPortUtils.listHidDevices (12:01:01.566): {'devicePath': u'\\?\hid#dll07be&col04#5&388ea735&5&0003#{4d1e55b2-f16f-11cf-88cb-001111000030}', 'hardwareID': u'HID\VEN_DLL&DEV_07BE&Col04', 'provider': None} DEBUG - hwPortUtils.listHidDevices (12:01:01.566): {'devicePath': u'\\?\hid#intc816&col05#3&36a7043c&0&0004#{4d1e55b2-f16f-11cf-88cb-001111000030}', 'hardwareID': u'HID\INTC816&Col05', 'provider': None} DEBUG - hwPortUtils.listHidDevices (12:01:01.566): {'devicePath': u'\\?\hid#intc816&col06#3&36a7043c&0&0005#{4d1e55b2-f16f-11cf-88cb-001111000030}', 'hardwareID': u'HID\INTC816&Col06', 'provider': None} DEBUG - hwPortUtils.listHidDevices (12:01:01.566): {'devicePath': u'\\?\hid#intc816&col0a#3&36a7043c&0&0009#{4d1e55b2-f16f-11cf-88cb-001111000030}', 'hardwareID': u'HID\INTC816&Col0A', 'provider': None} DEBUG - hwPortUtils.listHidDevices (12:01:01.566): {'devicePath': u'\\?\hid#intc816&col07#3&36a7043c&0&0006#{4d1e55b2-f16f-11cf-88cb-001111000030}', 'hardwareID': u'HID\INTC816&Col07', 'provider': None} DEBUG - hwPortUtils.listHidDevices (12:01:01.566): {'devicePath': u'\\?\hid#intc816&col08#3&36a7043c&0&0007#{4d1e55b2-f16f-11cf-88cb-001111000030}', 'hardwareID': u'HID\INTC816&Col08', 'provider': None} DEBUG - hwPortUtils.listHidDevices (12:01:01.576): {'devicePath': u'\\?\hid#intc816&col09#3&36a7043c&0&0008#{4d1e55b2-f16f-11cf-88cb-001111000030}', 'hardwareID': u'HID\INTC816&Col09', 'provider': None} DEBUG - hwPortUtils.listHidDevices (12:01:01.576): {'usbID': u'VID_04F3&PID_24A1', 'devicePath': u'\\?\hid#vid_04f3&pid_24a1&col01#6&cbf17ba&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}', 'hardwareID': u'HID\VID_04F3&PID_24A1&REV_1111&Col01', 'provider': 'usb'} DEBUG - hwPortUtils.listHidDevices (12:01:01.576): {'devicePath': u'\\?\hid#intc816&col01#3&36a7043c&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}\kbd', 'hardwareID': u'HID\INTC816&Col01', 'provider': None} DEBUG - hwPortUtils.listHidDevices (12:01:01.576): {'devicePath': u'\\?\hid#intc816&col11#3&36a7043c&0&0010#{4d1e55b2-f16f-11cf-88cb-001111000030}', 'hardwareID': u'HID\INTC816&Col11', 'provider': None} DEBUG - hwPortUtils.listHidDevices (12:01:01.576): {'usbID': u'VID_04F3&PID_24A1', 'devicePath': u'\\?\hid#vid_04f3&pid_24a1&col02#6&cbf17ba&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030}', 'hardwareID': u'HID\VID_04F3&PID_24A1&REV_1111&Col02', 'provider': 'usb'} DEBUG - hwPortUtils.listHidDevices (12:01:01.576): {'devicePath': u'\\?\hid#intc816&col10#3&36a7043c&0&000f#{4d1e55b2-f16f-11cf-88cb-001111000030}', 'hardwareID': u'HID\INTC816&Col10', 'provider': None} DEBUG - hwPortUtils.listHidDevices (12:01:01.576): {'devicePath': u'\\?\hid#intc816&col12#3&36a7043c&0&0011#{4d1e55b2-f16f-11cf-88cb-001111000030}', 'hardwareID': u'HID\INTC816&Col12', 'provider': None} DEBUG - hwPortUtils.listHidDevices (12:01:01.576): {'devicePath': u'\\?\hid#converteddevice&col02#5&7674e02&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030}', 'hardwareID': u'HID\ConvertedDevice&Col02', 'provider': None} DEBUG - hwPortUtils.listHidDevices (12:01:01.576): {'devicePath': u'\\?\hid#converteddevice&col01#5&7674e02&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}\kbd', 'hardwareID': u'HID\ConvertedDevice&Col01', 'provider': None} DEBUG - hwPortUtils.listHidDevices (12:01:01.576): {'devicePath': u'\\?\hid#intc816&col0b#3&36a7043c&0&000a#{4d1e55b2-f16f-11cf-88cb-001111000030}', 'hardwareID': u'HID\INTC816&Col0B', 'provider': None} DEBUG - hwPortUtils.listHidDevices (12:01:01.576): {'devicePath': u'\\?\hid#intc816&col0c#3&36a7043c&0&000b#{4d1e55b2-f16f-11cf-88cb-001111000030}', 'hardwareID': u'HID\INTC816&Col0C', 'provider': None} DEBUG - hwPortUtils.listHidDevices (12:01:01.576): {'usbID': u'VID_04F3&PID_24A1', 'devicePath': u'\\?\hid#vid_04f3&pid_24a1&col03#6&cbf17ba&0&0002#{4d1e55b2-f16f-11cf-88cb-001111000030}', 'hardwareID': u'HID\VID_04F3&PID_24A1&REV_1111&Col03', 'provider': 'usb'} DEBUG - hwPortUtils.listHidDevices (12:01:01.576): {'devicePath': u'\\?\hid#intc816&col0d#3&36a7043c&0&000c#{4d1e55b2-f16f-11cf-88cb-001111000030}', 'hardwareID': u'HID\INTC816&Col0D', 'provider': None} DEBUG - hwPortUtils.listHidDevices (12:01:01.576): {'devicePath': u'\\?\hid#converteddevice&col03#5&7674e02&0&0002#{4d1e55b2-f16f-11cf-88cb-001111000030}', 'hardwareID': u'HID\ConvertedDevice&Col03', 'provider': None} DEBUG - hwPortUtils.listHidDevices (12:01:01.576): {'devicePath': u'\\?\hid#intc816&col0e#3&36a7043c&0&000d#{4d1e55b2-f16f-11cf-88cb-001111000030}', 'hardwareID': u'HID\INTC816&Col0E', 'provider': None} DEBUG - hwPortUtils.listHidDevices (12:01:01.576): Finished listing HID devices DEBUG - hwPortUtils.listComPorts (12:01:01.582): {'friendlyName': u'Standardm\xe4\xdfgige Seriell-\xfcber-Bluetooth-Verbindung (COM3)', 'bluetoothName': u'Focus 40 BT 22E86182', 'hardwareID': u'BTHENUM\{00001101-0000-1000-8000-00805f9b34fb}_LOCALMFG&001d', 'bluetoothAddress': 194137402401154L, 'port': u'COM3'} DEBUG - hwPortUtils.listComPorts (12:01:01.582): {'friendlyName': u'Standardm\xe4\xdfgige Seriell-\xfcber-Bluetooth-Verbindung (COM4)', 'hardwareID': u'BTHENUM\{00001101-0000-1000-8000-00805f9b34fb}_LOCALMFG&0000', 'bluetoothAddress': 0, 'port': u'COM4'} DEBUG - hwPortUtils.listComPorts (12:01:01.582): Finished listing com ports DEBUG - braille.BrailleHandler.setDisplayByName (12:01:01.582): Possibly detected display 'Freedom Scientific Focus- / PAC-Mate-Serien' DEBUG - hwIo.Serial.init (12:01:01.582): Opening port COM3 IO - inputCore.InputManager.executeGesture (12:01:06.015): Input: kb(laptop):upArrow IO - speech.speak (12:01:06.153): Speaking [u'Eingabefeld-Ende', u'Navigation-Sprungmarke ', u'Tab Ausgew\xe4hlt', u'Write', u' ', u'Tab', u'Preview'] DEBUG - hwIo.Serial.init (12:01:06.763): Open failed: could not open port u'COM3': WindowsError(121, 'Das Zeitlimit f\xfcr die Semaphore wurde erreicht.') DEBUGWARNING - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver.init (12:01:06.763): Traceback (most recent call last): File "brailleDisplayDrivers\freedomScientific.pyc", line 132, in init File "hwIo.pyc", line 170, in init File "serial\serialwin32.pyc", line 38, in init File "serial\serialutil.pyc", line 282, in init File "serial\serialwin32.pyc", line 66, in open SerialException: could not open port u'COM3': WindowsError(121, 'Das Zeitlimit f\xfcr die Semaphore wurde erreicht.') DEBUGWARNING - braille.BrailleHandler.setDisplayByName (12:01:06.773): Couldn't initialize display driver for kwargs {'port': DeviceMatch(type='serial', id=u'Focus 40 BT 22E86182', port=u'COM3', deviceInfo={'friendlyName': u'Standardm\xe4\xdfgige Seriell-\xfcber-Bluetooth-Verbindung (COM3)', 'bluetoothName': u'Focus 40 BT 22E86182', 'hardwareID': u'BTHENUM\{00001101-0000-1000-8000-00805f9b34fb}_LOCALMFG&001d', 'bluetoothAddress': 194137402401154L, 'port': u'COM3'})} Traceback (most recent call last): File "braille.pyc", line 1661, in setDisplayByName File "brailleDisplayDrivers\freedomScientific.pyc", line 152, in init RuntimeError: No Freedom Scientific display found DEBUG - braille.BrailleHandler.setDisplayByName (12:01:06.773): Reinitializing noBraille braille display INFO - braille.BrailleHandler.setDisplayByName (12:01:06.773): Loaded braille display driver noBraille, current display has 0 cells.

From the whole log, which is about 1 MB from just 3 minutes of testing, it looks like 2 out of 3 times, the connection is made via Bluetooth if the PC is paired, and only once per USB, and that only if I initialize the driver from the Braille Settings, choosing Auto. All other times it seems to prefer Bluetooth.

Let me know if you want the whole log, I'll send it to you via e-mail, then, don't want to put that whole thing up here on Github.

bramd commented 6 years ago

@MarcoZehe I was doing some tests with an older Focus Blue display today.

When I disconnect the USB cable from this display, it turns off, when I reconnect the cable it turns on and immediately establishes a USB connection. Is this not the case for your newer display?

Another interesting observation with this display is that it switches to a USB connection as soon as the cable is plugged in, even if you're having an active Bluetooth connection. It seems the Freedom Scientific driver detects this and switches to USB as well. I improved braille auto detection to keep scanning for compatible USB devices for the current driver, even if there is a Bluetooth connection. So with the following build you can connect a Focus on Bluetooth, plug in USB and it will switch immediately and automatically to USB: https://ci.appveyor.com/api/buildjobs/qqr2tq2m3ncljmfy/artifacts/output%2Fnvda_snapshot_pr1234-6%2C2194af16.exe

I opened a new issue for faster detection of USB device disconnects. I don't want to hold the driver until that's implemented and tested with all kinds of displays, so I think it is best handled in a separate issue/patch.

MarcoZehe commented 6 years ago

When I disconnect the USB cable from this display, it turns off, when I reconnect the cable it turns on and immediately establishes a USB connection. Is this not the case for your newer display?

It is now with the new try build you just sent. It definitely wasn't the case with the older build from end of September. The newer display takes slightly longer to boot, that is, the time display (new to the newer displays) and the battery status appear a bit later after connecting the cable than with the older displays. We're talking about half to 1 second more.

Another interesting observation with this display is that it switches to a USB connection as soon as the cable is plugged in, even if you're having an active Bluetooth connection. It seems the Freedom Scientific driver detects this and switches to USB as well. I improved braille auto detection to keep scanning for compatible USB devices for the current driver, even if there is a Bluetooth connection. So with the following build you can connect a Focus on Bluetooth, plug in USB and it will switch immediately and automatically to USB: https://ci.appveyor.com/api/buildjobs/qqr2tq2m3ncljmfy/artifacts/output%2Fnvda_snapshot_pr1234-6%2C2194af16.exe

Yes, this works fine with my display as well.

I opened a new issue for faster detection of USB device disconnects. I don't want to hold the driver until that's implemented and tested with all kinds of displays, so I think it is best handled in a separate issue/patch.

Sounds good.

bramd commented 6 years ago

@MarcoZehe Thanks for the feedback. Do you feel this driver still has any regressions from the old one that should be solved before including it in NVDA?

I also read in the documentation that the new generation has a menu button between the braille keys. Is this button only for internal functions, or can it be used in screen readers? If so, can you send me a debug log of a key press/release of this button?

MarcoZehe commented 6 years ago

I think this driver is good for a pull request.

The menu button is for internal functions. It is never sent to the screen reader, nothing is added to the log when I press it.

Go for it!

lukaszgo1 commented 6 years ago

@bramd One thing missing from the old driver are the new assignments for the Windows+tab and Alt+Shift+tab added in 2018.3. Adding them should be trivial, so maybe worth doing it before opening a pr.

bramd commented 6 years ago

@lukaszgo1 Sure, I'll add those.

valiant8086 commented 6 years ago

Hi.

It seems to be working ok with bluetooth with my focus 14 5.71. Did not try USB yet.

  1. paired a new computer (litterally) with it. No driver downloaded or anything, just paired it from pc settings.

  2. NVDA didn't just magicly detect it. I turned the display off and back on and NVDA still didn't grab it. Turned NVDA off and back on and it worked. I don't know the keybindings for NVDA at this point but have the feeling it's still impossible to use a computer from a braille display exclusively, but what I did know seemed to be working. I can try specific things if you want.

Cheers: Aaron Spears, A.K.A. valiant8086. General Partner - Valiant Galaxy Associates "We make Very Good Audiogames for the blind community - http://valiantGalaxy.com"

<Sent with Thunderbird 52.1.0 portable>

On 10/15/2018 3:49 AM, Marco Zehe wrote:

When I disconnect the USB cable from this display, it turns off,
when I reconnect the cable it turns on and immediately establishes
a USB connection. Is this not the case for your newer display?

It is now with the new try build you just sent. It definitely wasn't the case with the older build from end of September. The newer display takes slightly longer to boot, that is, the time display (new to the newer displays) and the battery status appear a bit later after connecting the cable than with the older displays. We're talking about half to 1 second more.

Another interesting observation with this display is that it
switches to a USB connection as soon as the cable is plugged in,
even if you're having an active Bluetooth connection. It seems the
Freedom Scientific driver detects this and switches to USB as
well. I improved braille auto detection to keep scanning for
compatible USB devices for the current driver, even if there is a
Bluetooth connection. So with the following build you can connect
a Focus on Bluetooth, plug in USB and it will switch immediately
and automatically to USB:
https://ci.appveyor.com/api/buildjobs/qqr2tq2m3ncljmfy/artifacts/output%2Fnvda_snapshot_pr1234-6%2C2194af16.exe

Yes, this works fine with my display as well.

I opened a new issue for faster detection of USB device
disconnects. I don't want to hold the driver until that's
implemented and tested with all kinds of displays, so I think it
is best handled in a separate issue/patch.

Sounds good.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/nvaccess/nvda/issues/7727#issuecomment-429742420, or mute the thread https://github.com/notifications/unsubscribe-auth/APLbQYfjLl4X_2szov6DmrZGNLjABwrgks5ulD4UgaJpZM4QSB5z.