Skip to content

Braille display auto-detection feature causes errors on loading braille tables on NVDA startup after including the HUC8 Braille Tables (2019-03-01) #9973

@DrSooom

Description

@DrSooom

Steps to reproduce:

  1. Install a portable copy of NVDA 2019.2 Beta-18133 on a USB flash drive as well as on a SSD.
  2. Download and include the HUC8 Braille Tables (2019-03-01) into "de-de-comp8.ctb" by following these instructions.
  3. Now start NVDA and change the braille output table to German Computer-Braille (8-dot) and disable the checkbox "Expand to computer braille for the word at the cursor".
  4. Restart NVDA with debug logging level via NVDA+Q.

Actual behavior:

Sometimes the braille table couldn't be completely loaded if NVDA is running from a USB flash drive. Some ranges of code points couldn't be loaded e.g. U+2800 to U+2855 as well as some definitions from the Latin-1 Supplement Unicode block (U+0080 to U+00FF). This issue is new in NVDA 2019.2 Beta-18133 and it only occurs sometimes, but not always. Maybe you have to restart NVDA multiple times to get that unwanted behavior. If "NVDA ist bereit" (⡝⡧⡙⡁⠀⠊⠎⠞⠀⠃⠑⠗⠑⠊⠞) isn't displayed on the braille display (nothing is displayed), than the braille table couldn't be completely loaded. After pressing any key, which updates the braille output, the braille output seems to work again, but not fully correct due to the partly loaded braille table.

After I have installed a fresh portable version of NVDA to the SSD, the braille table seems now to work as expected, but I still get the following error in the logfile:

SSD logfile:

Touch only supported on installed copies

DEBUG - core.main (15:43:21.563):

Initializing global plugin handler

DEBUGWARNING - braille.BrailleHandler.setDisplayByName (15:43:21.565):

Error in initial display after display load

Traceback (most recent call last):

File "braille.pyc", line 1686, in setDisplayByName

File "braille.pyc", line 1976, in initialDisplay

File "braille.pyc", line 1840, in handleGainFocus

File "braille.pyc", line 1845, in _doNewObject

File "braille.pyc", line 1516, in getFocusRegions

File "braille.pyc", line 615, in update

File "braille.pyc", line 428, in update

File "louisHelper.pyc", line 65, in translate

File "louis_init_.pyc", line 183, in translate

WindowsError: exception: access violation reading 0x2A8A97D0

IO - braille.BrailleBuffer.update (15:43:21.859):

Braille regions text: [u'NVDA ist bereit']

IO - braille.BrailleHandler.update (15:43:21.861):

Braille window dots: 13457 12367 1457 17 - 24 234 2345 - 12 15 1235 15 24 2345

DEBUG - core.main (15:43:21.862):

Initializing core pump

Update – USB flash drive logfile (18:45 CEST):

I was now able to reproduce the error on the USB flash drive. Here is the complete logfile (see line 133 to 188). This error is different to the above mentioned. The "Ä" (U+00C4, ⡰) isn't displayed correctly. It is displayed as ⠠⡌⠭⠬⠬⠉⠙⠠. In other words: This time this Unicode code point and many others aren't defined by the loaded braille table.

Line 154: WindowsError: exception: access violation writing 0x00000000

Additional information regarding the Optelec ALVA BC680:

Regarding the Optelec ALVA BC680 I also get those error entries:

initializing Java Access Bridge support

DEBUGWARNING - brailleDisplayDrivers.alva.BrailleDisplayDriver.init (15:43:21.252):

Traceback (most recent call last):

File "brailleDisplayDrivers\alva.pyc", line 167, in init

File "hwIo.pyc", line 272, in init

WindowsError: [Error 5] Zugriff verweigert

DEBUG - braille.BrailleHandler.setDisplayByName (15:43:21.252):

Reinitializing noBraille braille display

INFO - braille.BrailleHandler.setDisplayByName (15:43:21.259):

Loaded braille display driver noBraille, current display has 0 cells.

DEBUG - brailleDisplayDrivers.alva.BrailleDisplayDriver._handleTime (15:43:21.295):

Time not synchronized. Display time 2019-07-25T15:43:26

INFO - brailleDisplayDrivers.alva.BrailleDisplayDriver.init (15:43:21.302):

Found display with 80 cells connected via hid (\?\hid#vid_0798&pid_0680&col02#6&38174385&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030})

DEBUG - braille.BrailleHandler.setDisplayByName (15:43:21.303):

Switching braille display from noBraille to alva

DEBUG - driverHandler.Driver.saveSettings (15:43:21.311):

Saved settings for BrailleDisplayDriver alva

INFO - braille.BrailleHandler.setDisplayByName (15:43:21.312):

Loaded braille display driver alva, current display has 80 cells.

DEBUG - NVDAObjects.NVDAObject._get_placeholder (15:43:21.312):

Potential unimplemented child class: <NVDAObjects.window.Desktop object at 0x05443490>

DEBUG - core.main (15:43:21.331):

Initializing legacy winConsole support

This issue could be caused by that prototype ALVA driver written by @LeonarddeR here, which is still used with NVDA 2018.1 (installed version). Maybe it influences the portable versions of NVDA in a negative way. But as this issue also occurred with NVDA 2019.1 (Portable), it isn't really relevant here.

Expected behavior:

No errors as in NVDA 2019.1.1 (Portable). The braille table can be loaded completely again on a USB flash drive, which is mostly much slower than a SSD.

System configuration

NVDA installed/portable/running from source:

Portable

NVDA version:

2019.2 Beta-18133

Windows version:

Win7x64

Other information about your system:

Optelec ALVA BC680 is connected via USB2. But it's the same result if the USB1 port is used.

Other questions

Does the issue still occur after restarting your PC?

Not tested.

Have you tried any other versions of NVDA? If so, please report their behaviors.

Already works as expected with 2019.1.1 (Portable).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions