nvaccess / nvda

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

Alva BC680 doesn't initialize or initializes with wrong number of cells #8106

Closed DrSooom closed 6 years ago

DrSooom commented 6 years ago

On Sunday, 18th March 2018, I sent an e-mail to info@optelec.de and as CC to 'info@nvaccess.org' From Optelec GmbH I got the info that the latest Firmware for the Optelec ALVA BC680 is 3.0.2 and that the main developer in the Netherlands has nothing to do with the new ALVA-driver in NVDA 2018.1.

As I have a few other time-consuming task to do in the upcoming days and weeks I just use google Translate for translating my German e-mail into English. If something makes no sense, just let me know and I will translate it manually. You will find the German original below the English translation.

The "nvda.ini" in the user-config-folder has the same checksum (SHA-256) as the one in the systemconfig-folder in (C:\Programme (x86)\NVDA). And in addition to #8 the ALVA BC680 also hangs immediately after connecting and disconnecting a Bluetooth connection to a iPhone (iOS 10.3.3)or tablet (Fire OS 5.6.0.1 with BrailleBack). This issue exists since NVDA 2018.1 while the braille display is connected via USB2.

===== Translation of the German e-mail into English by Google Translate ===== [...] Firmware version of my Optelec ALVA BC680: 3.0.2 (Bluetooth version: 1.20.0) There is no network and no keyboard (USB-A socket on the Braille display) connected to the ALVA BC680. The USB1 port (left) is connected to my stand PC with my NUC and the USB2 interface (right). In NVDA 2017.4, the Braille display driver via USB1 also worked perfectly smoothly via USB2. In NVDA 2018.1, the driver was rewritten from scratch, and I also had to reiterate the importance of the functions of the Braille display. But I would not write an e-mail now, if that had already become everything. There are a lot of new bugs in NVDA 2018.1. I would like to ask you to e-mail the firmware version for the Optelec ALVA BC680. Maybe you can fix a bug here - maybe. My main system (stand-pc): Windows 7 64-bit SP1, NVDA 2018.1 is installed, update of the current version of the BC680 via USB2 with the PC (USB 2.0 port directly on the mainboard) Note: The ALVA BC680 is installed via USB1 with the NUC (Intel NUC5i3RYH, Win7x64Sp1, NVDA 2015.3, here no NVDA update planned for 2018.1 in the near future), connected to USB2 to the USB 3.0 port does not work properly because the Intel USB drivers under Windows 7 do not work properly. However, the connection via USB1 (possibly in the Braille itself) also works perfectly.

Here is the new list of bugs that do not yet apply with NVDA 2017.4:

  1. After the boot process on the logon screen, only the first characters on the Braille display are displayed via USB2. NVDA does not recognize that the Braille display has 80 modules. In the system menu of the Braille display, the braille display division is disabled, especially since the default value of "5 characters" has been changed to "30" characters "for testing purposes." What this value of "5 characters" comes from at once is beyond me Braille output can be problematic to move these five characters forward and backward, and if the braille display is connected via USB1, this will not cause these errors.
  2. Immediately after logging in, here too NVDA outputs only the five characters on the Braille display when connected via USB2. With USB1, this error does not occur.
  3. If NVDA is restarted via the desktop connection, the Braille display via USB2 will not be known. The "Braille Settings" dialog box says "No braille display". If NVDA is started again via this connection, this will be announced again. Also this problem occurs only on USB2, but not on USB1.
  4. If you open the dialog window "Braille Settings", "Braille display: Optelec ALVA 6-Series / Protocol converter" is selected, and closes with "OK", the following error message appears: "Error while driving the Braille display! ALVA "could not be changed." If you close the window again with "OK" (or the Enter key), the ALVA BC680 will be correctly recognized again via USB2. But it can also be that here too more than ever 80 characters are displayed. follow together: "double" is poached, it goes again.
  5. In the "protected desktop" (CTRL + ALT + Del) there will be no more output on the Braille display, even if it has been knocked down at the user level. That was not the case with NVDA 2017.4. Here, the Braille content was automatically switched in both environments. In NVDA 2018.1, "Protected Desktop" was on the Braille display, so CTRL + ALT + Del was pressed and the braille display was paired at the user level.
  6. Under NVDA 2017.4, when the PC was put into standby mode, a blinking cursor (points 7 and 8) was briefly shown on the ALVA BC680 due to the password input text box. This is no longer the case with NVDA 2018.1. (Is related to point 5)
  7. If you switch on the Braille display first and wake up the PC from the standby mode only after that, the cursor blinked under NVDA 2017.4 after a few seconds in the password input text field again. This is no longer the case with NVDA 2018.1. (Is related to point 5)
  8. If you switch the connection types between USB (which means USB1), USB2 and BT (that means Bluetooth) with the right smartpad buttons SP2 + SP3 + SPUp or SP2 + SP3 + SPDown, the braille display responds after the switch back to USB2 under NVDA 2018.1 no longer. No new text is output on the Braille display, nor do the buttons on the Braille display work. The braille display has to be "double" reconnected so that it becomes usable again. It also does not matter whether a connection via USB1 or via Bluetooth to another device has actually been made before switching back to "USB2". Via USB1 this error does not occur under NVDA 2018.1. Under NVDA 2017.4, this error does not occur on either USB1 or USB2.
  9. By simultaneously pressing SP1 + SP2 + SP3, SP2 + SP3 + Sp4 and SP1 + SP2 + SP3 + SP4, at least one of these four smartpad buttons will "hang" under both NVDA 2018.1 via USB1 and via USB2. If you then immediately press, for example "Etouch1", NVDA recognizes "SP1 + Sp2 + Sp3 + etouch1". By repeatedly pressing each of the four aforementioned smartpad buttons, this "snagging" can sometimes be released. Alternatively, the braille display needs to be "double" reconnected so that all control buttons on the ALVA BC680 are working properly again. Under NVDA 2017.4 this problem did not occur either.
  10. [Describes another bug that already exists in NVDA 2015.3. That's why he does not stand here.]

===== Original e-mail in German ===== […] Firmware-Version meiner Optelec ALVA BC680: 3.0.2 (Bluetooth-Version: 1.20.0) Es ist kein Netzteil und auch keine Tastatur (USB-A-Buchse links an der Braillezeile) an der ALVA BC680 angeschlossen. Der USB1-Port (links) ist mit meinem NUC und der USB2-Port (rechts) mit meinem Stand-PC verbunden.

In NVDA 2017.4 funktionierte der Braillezeilen-Treiber via USB1 sowie via USB2 absolut problemlos. In NVDA 2018.1 wurde jener Treiber von Grund auf neu geschrieben, weshalb ich auch sämtliche Bedientasten der Braillezeile wieder den von mir gewünschten Funktionen zuweisen musste. Ich würde Ihnen jetzt aber keine E-Mail extra schreiben, wenn das schon alles gewesen wäre. Es kamen nämlich einige zahlreiche neue Bugs in NVDA 2018.1 dazu.

Zuvor darf ich Sie allerdings darum bitten mir so rasch wie nur möglich die aktuellste Firmware-Version für die Optelec ALVA BC680 via E-Mail zukommen zu lassen. Vielleicht können hierdurch ein paar der neuen Bugs gleich behoben werden – vielleicht.

Mein Haupt-System (Stand-PC): Windows 7 64-Bit SP1, NVDA 2018.1 ist installiert (keine portable Kopie, Update erfolgte heute Morgen von 2017.4 auf 2018.1), Anschluss der ALVA BC680 via USB2 mit dem PC (USB-2.0-Port direkt am Motherboard) Anmerkung am Rande: Die ALVA BC680 ist via USB1 mit dem NUC (Intel NUC5i3RYH, Win7x64Sp1, NVDA 2015.3 installiert, hier kein NVDA-Update auf 2018.1 in der nahen Zukunft geplant) angeschlossen, da dort der Anschluss via USB2 an den USB-3.0-Port nicht korrekt funktioniert, weil die Intel-USB-Treiber unter Windows 7 nicht vollumfänglich ordentlich arbeiten. Der Anschluss via USB1 (möglicherweise dank dem USB-Hub in der Braillezeile selber) funktioniert aber tadellos.

Hier nun die Auflistung der neuen Bugs, die mit NVDA 2017.4 noch nicht auftragen:

  1. Nach dem Boot-Vorgang auf dem Logon-Screen werden via USB2 nur die ersten fünf Zeichen ganz links auf der Braillezeile angezeigt. NVDA erkennt hier nicht, dass die Braillezeile über 80 Module verfügt. Im System-Menü der Braillezeile ist die Braillezeilen-Splittung deaktiviert, zumal ich dort sowieso den Standardwert von „5 Zeichen“ auf „30“ Zeichen“ zu Testzwecken geändert gehabt hatte. Woher folglich dieser Wert von „5 Zeichen“ auf einmal herkommen soll, ist mir schleierhaft. Die Braillezeilen-ausgabe kann allerdings problemlos um diese fünf Zeichen nach vor und zurück gescrollt werden. Ist die Braillezeile via USB1 verbunden, so tritt dieser Fehler nicht auf.
  2. Unmittelbar nach der Anmeldung gibt auch hier NVDA nur die fünf Zeichen auf der Braillezeile aus, wenn jene via USB2 angeschlossen ist. Bei USB1 tritt dieser Fehler nicht auf.
  3. Wird NVDA über die Desktop-Verknüpfung neu gestartet, so wird die Braillezeile via USB2 nicht erkannt. Im Dialogfenster „Braille-Einstellungen“ steht „Keine Braillezeile“. Wird NVDA ein weiteres Mal über dieselbe Verknüpfung neu gestartet, so wird jene wieder korrekt erkannt. Auch dieses Problem tritt nur via USB2, nicht aber via USB1 auf.
  4. Öffnet man das Dialogfenster „Braille-Einstellungen“, wobei „Braillezeile: Optelec ALVA 6-Serien/Protokoll-Konverter“ bereits ausgewählt ist, und schließt jenes mit „OK“, so erscheint folgende Fehlermeldung: „Fehler beim Ansteuern der Braillezeile! Die Braillezeile "ALVA" konnte nicht angesteuert werden.“ Schließt man dieses Dialogfenster nun gleich wieder mit „OK“ (oder die Enter-Taste), so wird die ALVA BC680 via USB2 meistens wieder korrekt erkannt. Es kann aber auch sein, dass auch hier plötzlich dann mur mehr fünf statt 80 Zeichen angezeigt werden. folglich muss wieder „doppelt“ gekoppelt werden, damit es wieder geht.
  5. Im „geschützten Desktop“ (STRG+ALT+Entf) erfolgt keine Ausgabe mehr auf der Braillezeile, weil jene auf Benutzer-Ebene ja gekoppelt ist. Bei NVDA 2017.4 war dem nicht so. Hier wurde der Braillezeilen-Inhalt in beiden Umgebungen automatisch umgeschaltet. bei NVDA 2018.1 bleibt stattdessen „Geschützter Desktop“ auf der Braillezeile stehen, sobald STRG+ALT+Entf gedrückt wurde und die Braillezeile zuvor auf Benutzer-Ebene gekoppelt war.
  6. Unter NVDA 2017.4 war beim Versetzen des PCs in den Standby-Modus kurz noch ein blinkender Cursor (Punkte 7 und 8) wegen dem Kennwort-Eingabe-Textfeld auf der ALVA BC680 zu sehen. Bei NVDA 2018.1 ist dem nicht mehr so. (Hängt mit Punkt 5 zusammen.)
  7. Schaltet man die Braillezeile zuerst ein und weckt erst danach den PC aus dem Standby-Modus wieder auf, so blinkte der Cursor unter NVDA 2017.4 nach wenigen Sekunden im Kennwort-Eingabe-textfeld wieder weiter. Bei NVDA 2018.1 ist dem nicht mehr so. (Hängt mit Punkt 5 zusammen.)
  8. Schaltet man die Verbindungsarten zwischen USB (damit ist USB1 gemeint), USB2 und BT (damit ist Bluetooth gemeint) mit den rechten Smartpad-Tasten SP2+SP3+SPUp bzw. SP2+SP3+SPDown um, so reagiert die Braillezeile nach dem zurückschalten auf USB2 unter NVDA 2018.1 gar nicht mehr. Es wird weder neuer Text auf der Braillezeile ausgegeben, noch funktionieren die Tasten auf der Braillezeile. Die Braillezeile muss „doppelt“ neu gekoppelt werden, damit jene wieder benutzbar wird. Es spielt hierbei auch keine Rolle, ob via USB1 oder via Bluetooth zu einem anderen Gerät tatsächlich auch eine Verbindung hergestellt worden ist, bevor wieder auf „USB2“ zurückgeschalten wird. Via USB1 tritt dieser Fehler unter NVDA 2018.1 nicht auf. Unter NVDA 2017.4 tritt dieser Fehler weder bei USB1 noch bei USB2 auf.
  9. Durch das gleichzeitige Betätigen von SP1+SP2+SP3, SP2+SP3+Sp4 und SP1+SP2+SP3+SP4 bleibt unter NVDA 2018.1 sowohl via USB1 als auch via USB2 jeweils mindestens einer dieser vier Smartpad-Tasten „hängen“. Betätigt man gleich daraufhin z.B. „etouch1“, so wird von NVDA „SP1+Sp2+Sp3+etouch1“ erkannt. Durch mehrfaches, einzelne Drücken der vier zuvor genannten Smartpad-Tasten kann dieses „Hängenbleiben“ manchmal wieder gelöst werden. Alternativ muss halt die Braillezeile „doppelt“ neu gekoppelt werden, damit wieder alle Bedientasten auf der ALVA BC680 ordnungsgemäß funktionieren. Unter NVDA 2017.4 trat dieses Problem ebenfalls noch nicht auf.
  10. [Beschreibt einen anderen Bug, der bereits in NVDA 2015.3 existiert. Deshalb steht er hier nicht.]
LeonarddeR commented 6 years ago

Thanks for your eport!

@DrSooom commented on 21 mrt. 2018 12:45 CET:

  1. After the boot process on the logon screen, only the first characters on the Braille display are displayed via USB2. NVDA does not recognize that the Braille display has 80 modules. In the system menu of the Braille display, the braille display division is disabled, especially since the default value of "5 characters" has been changed to "30" characters "for testing purposes." What this value of "5 characters" comes from at once is beyond me Braille output can be problematic to move these five characters forward and backward, and if the braille display is connected via USB1, this will not cause these errors.

The ALVA protocol doesn't tell anything about different behavior for the USB sockets on the ALVA BC680.

  1. Immediately after logging in, here too NVDA outputs only the five characters on the Braille display when connected via USB2. With USB1, this error does not occur.

So you're saying the device is connected both with USB 1.1 and USB 2.0 at the same time to different pc's. Does this issue also occur when you only connect the device using USB 2.0, leaving the USB 1.1 port disconnected?

  1. If NVDA is restarted via the desktop connection, the Braille display via USB2 will not be known. The "Braille Settings" dialog box says "No braille display". If NVDA is started again via this connection, this will be announced again. Also this problem occurs only on USB2, but not on USB1.

This issue is not clear to me. Could you provide exact steps to reproduce this issue?

  1. If you open the dialog window "Braille Settings", "Braille display: Optelec ALVA 6-Series / Protocol converter" is selected, and closes with "OK", the following error message appears: "Error while driving the Braille display! ALVA "could not be changed." If you close the window again with "OK" (or the Enter key), the ALVA BC680 will be correctly recognized again via USB2.

Is this problem also not present when using USB 1.1?

But it can also be that here too more than ever 80 characters are displayed. follow together: "double" is poached, it goes again.

I'm afraid I can't make anything sensible out of what Google translate made out of this.

  1. In the "protected desktop" (CTRL + ALT + Del) there will be no more output on the Braille display, even if it has been knocked down at the user level. That was not the case with NVDA 2017.4. Here, the Braille content was automatically switched in both environments. In NVDA 2018.1, "Protected Desktop" was on the Braille display, so CTRL + ALT + Del was pressed and the braille display was paired at the user level.

This is a known bug, see #2315. We could probably avoid this by initializing the HID connection in non exclusive mode, though that's not the cleanest solution.

  1. If you switch the connection types between USB (which means USB1), USB2 and BT (that means Bluetooth) with the right smartpad buttons SP2 + SP3 + SPUp or SP2 + SP3 + SPDown, the braille display responds after the switch back to USB2 under NVDA 2018.1 no longer. No new text is output on the Braille display, nor do the buttons on the Braille display work. The braille display has to be "double" reconnected so that it becomes usable again. It also does not matter whether a connection via USB1 or via Bluetooth to another device has actually been made before switching back to "USB2". Via USB1 this error does not occur under NVDA 2018.1. Under NVDA 2017.4, this error does not occur on either USB1 or USB2.

This should be covered by braille display auto detection (#1271)

  1. By simultaneously pressing SP1 + SP2 + SP3, SP2 + SP3 + Sp4 and SP1 + SP2 + SP3 + SP4, at least one of these four smartpad buttons will "hang" under both NVDA 2018.1 via USB1 and via USB2. If you then immediately press, for example "Etouch1", NVDA recognizes "SP1 + Sp2 + Sp3 + etouch1". By repeatedly pressing each of the four aforementioned smartpad buttons, this "snagging" can sometimes be released. Alternatively, the braille display needs to be "double" reconnected so that all control buttons on the ALVA BC680 are working properly again. Under NVDA 2017.4 this problem did not occur either.

Are you using both smartpads simultaneously to cause this, or only one smart pad? If the latter, i'm pretty sure this should be reproducible

LeonarddeR commented 6 years ago

Could you also tell me on what firmware you are now? I hope some of the issues you're experiencing are just issues in firmware that have been resolved since than.

DrSooom commented 6 years ago

1: There is an build-in USB hub on the USB1 connection, but not on USB2. The 4 GB USB Disk is connected via USB-A to this hub in the braille display itself. That also means that the USB Disk doesn't appear via USB2 on a PC. 2: Yes, the ALVA BC680 is connected to two different PCs via USB at the same time. I will test this tomorrow. 3: Connect ALVA BC680 via USB2. Press CTRL+ALT+N for restarting NVDA. The ALVA BC680 doesn't show any text after NVDA was restarted. Press CTRL+ALT+N again. And after the second restart of NVDA text appears on the braille display. this only happens on USB 2 - not on USB1. 4: If you mean the USB1 connection: yes. But Windows 7 tells me via USB2 that the braille display is using a USB 1.1 connection - but it is connected to a USB 2.0 port directly on the motherboard. btw: HWINFO also showed me that my BAUM SuperVario2 64 was using USB 1.1 to the NUC (on an USB 3.0 port). Yes, this Google translation. ;) Okay, after you set the braille display in this window again, it could be that only 5 instead of 80 characters are displaying on it. Reconnecting via this window (not in disconnecting the USB cable to the PC) solve this issue mostly. 5 to 7 and 8: Both worked with the old driver in NVDA 2017.4 as expected. Was the behaviour change because of security reasons (regarding 5 to 7)? 9: I only test this with the left Smartpad. Firmware: The latest version 3.0.2 is installed on my ALVA BC680.

Here the plain text of the SETTINGS.A6 (config file of the ALVA BC680): SPLITPOINT=30 REPEAT=OFF CR2NDROW=OFF SYSTEMLANGUAGE=1 YEAR=2018 PREFERREDINTERFACE=0 BTPIN=.... [deleted for security reasons] BTNAME=ALVA BC680 SOOOM SLEEP=5 DATESEPARATOR=. COMPUTER_TABLE=2 BRAILLE_CELL_TYPE=2 DFON=1

Edit: The "#" before the digits was deleted.

LeonarddeR commented 6 years ago

I'm pretty sure these ports are just called USB1 and USB2 because of that they are the first and second USB port, not because one port is USB1.1 and the other port is USB2.0. That's something a manual should tell me, though. I"m going to investigate this later this week.b

DrSooom commented 6 years ago

NVDA protocol according to double set up the ALVA BC680:

ERROR - braille.BrailleHandler.setDisplayByName (09:08:41.032): Error initializing display driver Traceback (most recent call last): File "braille.pyo", line 1564, in setDisplayByName File "brailleDisplayDrivers\alva.pyo", line 207, in init RuntimeError: No display found INFO - braille.BrailleHandler.setDisplayByName (09:08:41.033): Loaded braille display driver noBraille, current display has 0 cells. INFO - brailleDisplayDrivers.alva.BrailleDisplayDriver.init (09:08:42.089): Found display with 80 cells connected via USB HID (\?\hid#vid_0798&pid_0680&col02#6&38174385&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030}) INFO - braille.BrailleHandler.setDisplayByName (09:08:42.089): Loaded braille display driver alva, current display has 80 cells.

DrSooom commented 6 years ago

NVDA Bug #8106_20180322.zip

2: Yep, this issues also exists when only USB2 is connected to the braille display. The five characters was shown on the logon screen as well as directly after the login. The NVDA protocols also shows that the braille display only have 5 cells - which of course is wrong. See the zip archive for details (ignore the warnings regarding to the Audio-Themes-Add-on). "p1.txt" is the protocol directly after the login, "p2.txt" after restarting NVDA and "p3.txt" after restarting NVDA again with CTRL+ALT+N.

Settings from the system menu of the ALVA BC680 (because this is easier to read instead of the A6-file): Split point configuration >>

Here the list of all braille hotkeys regarding to the firmware 3.0.2 that I know: Right Smartpad - SP2+SP3+SPLeft: Keys to: left Right Smartpad - SP2+SP3+SPRight: Keys to: right Right Smartpad - SP2+SP3+SPUp or +SPDown: Changing the preferred interface Left Smartpad - SP2+SP3+SPLeft: Show bluetooth and keyboard status menu Left Smartpad - SP2+SP3+SPDown: open (ALVA BC680) system menu T1+T5 During turning on: formatting the system volume (~4 MB) Hint: There is no direct connection between the braille display itself and the 4 GB USB Disk inside the braille display. The USB disk is only connected via the USB hub over USB1 to a PC - not via USB2 too.

LeonarddeR commented 6 years ago

Thanks for your logs. Could you please produce another log for the 5 cells situation as follows?

  1. Start NVDA
  2. Open a python console with nvda+control+z
  3. Copy the following in and press enter: import config; config.conf['debugLog']['hwIo']=True
  4. In NVDA's general options, enable debug logging
  5. Initialize the Display.

It would also help to have a log of the display failing to initialize even though it is connected.

DrSooom commented 6 years ago

NVDA Bug #8106_20180322_p4.zip The situation with the 5 cells is hard to reproduce. It only appears at the following situations:

  1. First start of NVDA on logon screen.
  2. First start of NVDA after login.
  3. And sometimes after unlocking the PC after waking up from the sleep mode (Standby).

The new logfile "p4.txt" shows the reconnecting phases via the braille setting window and the hanging situations after the iPhone has connected to the ALVA BC680. During all this the ALVA BC680 was connected to the NUC via USB1 and it was set up in NVDA 2015.3 - but I didn't make anything on the NUC during this time. The logfile was produce on my PC via USB2 and NVDA 2018.1.

Edit: Start with the line 297 in the logfile.

Edit 2: On line 1.382 the iPhone BT connection begins. Edit 3: On line 1.476 the iPhone BT connection ends. As far as I see NVDA doesn't send any new braille dots to the braille display after the iPhone was connected to the ALVA BC680 and the left arrow key was pressed (see line 1.449).

dkager commented 6 years ago

I should note that I had trouble going from the DLL-based driver to the native driver without disconnecting and rebooting my BC640. So if you have both drivers installed and go from the old to the new in the braille settings dialog, this may fail. That could also explain why NVDA 2015.3 (DLL-based) and NVDA 2018.1 (native) aren't cooperating.

DrSooom commented 6 years ago

As the issues also exists on USB2 while the braille display isn't connected to the NUC via USB1 (NVDA 2015.3), the different driver can't be the problem here. btw: I updated NVDA on my PC (USB2) from 2017.4 to 2018.1 last Sunday and had absolutely no problems with NVDA 2017.4 on USB2 and NVDA 2015.3 on USB1 at the same time until after the update. Braille display splitting was disabled all the time. And the manual says that the ALVA BC640 only have one USB port - not two. And the ability to insert a PC keyboard on the left USBA-A port on the ALVA BC680 is also available here. But as I wrote before there are no power supply and no USB-A cable (keyboard) plugged in on the left side of my ALVA BC680.

LeonarddeR commented 6 years ago

This line really bothers me:

Get feature: '\x05((\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'

This display is sending a malformed display settings feature report, and because of this, NVDA assumes that the displays advertise 0 cells. That's why the connection fails here.

Could you please place the alva.py file from this alva.zip into C:\Users\Daniel Mayr\AppData\Roaming\nvda\brailleDisplayDrivers and provide information about how that driver functions? If the behaviour is still broken, please provide another debug log.

DrSooom commented 6 years ago

NVDA Bug #8106_20180323_p5 and p6.zip Your file solve most the issues. shall I copy this file into the systemConfig-folder regarding to the 5 cell issue? btw: There is a new file called "alva.pyo" in the userconfig-folder. Could you please explain why?

The log "p5.txt" shows the same procedure as "p4.txt but with your "alva.py". "p6.txt" shows that NVDA still recognize the above mentions braille specific hotkeys (e.g. open braille system menu, changing the interface and so on). Maybe you could lock this few braille key combos permanently in NVDA (NVDA should ignore dhem). Switching between USB1, SB2 and BT works now correctly - but I didn't test BT with BrailleBack at the moment. And I also have to test the whole thing with USB1 too.

LeonarddeR commented 6 years ago

@DrSooom commented on 23 mrt. 2018 13:12 CET:

btw: There is a new file called "alva.pyo" in the userconfig-folder. Could you please explain why?

This is the byte compiled version of the ALVA.py file. When removing the modified driver, you have to remove both alva.py and alva.pyo

"p6.txt" shows that NVDA still recognize the above mentions braille specific hotkeys (e.g. open braille system menu, changing the interface and so on).

Were these key combinations ignored by the old driver?

DrSooom commented 6 years ago

USB1 works fully correctly (excluding the braille specific hotkeys) and BrailleBack connects also correctly with the ALVA BC680 on USB1 and USB2 (including changing the interface).

But one thing I don't understand: I disabled the default value fo SP2+Sp3 (emulating the Windows key), but when I press SP2+Sp3+SpUp (or SPDown or SpLeft or SPRight) NVDA says that I press the emulated key-combo WIN+ArrowKey. Why? You will find my "gestures.ini" in the first zip archive I posted. See also: #7783 The old driver in NVDA 2017.4 ignored them. Edit: No, sorry, I was wrong. NVDA 2015.3 also doesn't ignore those hotkeys. I tested this now on my NUC. But since NVDA 2018.1 braille keys can be pressed in an additional way. So in NVDA 2015.3 (maybe to 2017.4) SP2+SP3+SPUp (and the three others) was not set to an command (in this case to emulated keys). That's why I thought NVDA would ignore it. Edit 2: Maybe we should open a new issue regarding this because it seems that it has nothing to do with the driver itself. Conclusion: No. 2 to 4 and 8 was fixed. No. 1, 5 to 7 and 9 has still to be tested.

LeonarddeR commented 6 years ago

I guess we can forcefully override the modifiers behavior for the keys that activate internal functionality. Is there a list of those, or can we safely assume that the only keys that trigger internal functionality are sp2+sp3+spUp/spDown/spLeft/spRight/spCenter?

@DrSooom commented on 23 mrt. 2018 13:43 CET:

Conclusion: No. 2 to 4 and 8 was fixed. No. 1, 5 to 7 and 9 has still to be tested.

If no.2 is fixed, no.1 is fixed as well. 5 to 7 are beyond the scope of this issue as noted in https://github.com/nvaccess/nvda/issues/8106#issuecomment-374997050. Regarding the 9th point (keys not being released by the driver), I'd like an attempt from @dkager to reproduce.

DrSooom commented 6 years ago

So, No. 1 was now successfully tested. Well done. Thanks a lot. No. 5 to 7 can now also be checked in this issue - I wanted to wait for this until I successfully tested your modified ALVA driver on the logon screen.

And as far as I know there are only those five braille specific hotkeys on each side. I didn't figure more out (I took a look on my notes from January 3, 2018). Sadly not all the mentioned hotkeys above and as follow are written down in the manual.

To complete the list from above:

As long as NVDA doesn't make any differences between the left and the right Smartpad (VoiceOver on iOS 10.3.3 does via BT) it should be enough just to block this five hotkeys. Sadly I couldn't figure out if BrailleBack also make this difference in detecting the braille keys. It didn't work as I want - I just moved the cursor in the learning-mode from VoiceView (build-in Screenreader on Fire OS) around ... and around ... and around and the Fire-Tablet only gave me the sound feedback that the cursor can't be moved in this direction. But what braille key was pressed wasn't spoken by VoiceView. Hmm... I can't remember if this ever worked. Well, doesn't matter.

dkager commented 6 years ago

Some more points:

DrSooom commented 6 years ago

@dkager: I fully agree with your first two points.

line 33 from my gestures.ini: "review_currentWord = br(baum):d2+d5+routing, br(alva.bc680):sp2+sp3, br(alvabc6):sp2+sp3, kb:downarrow+nvda+shift"

Routing and SecondRouting works fully correctly from cell 1 to 80.

dkager commented 6 years ago

Regarding the smartpad, I cannot reproduce the issue where keys get stuck using a BC640. This could also be a hardware issue.

DrSooom commented 6 years ago

And here is the logfile: NVDA Bug #8106_20180324_p7.zip

This issue doesn't exist on my NUC (USB1) with NVDA 2015.3 (tested now) and it didn't exist in December 2017 with NVDA 2017.1 (or 2017.4 - can't remember anymore) on my PC (USB2).

Edit: Both smartpads were tested on the NUC and only the left one on the PC. The logfile shows an error in the new driver (go to the lines 247, 703 and 1.387).

LeonarddeR commented 6 years ago

I guess we can forcefully override the modifiers behavior for the keys that activate internal functionality. Is there a list of those, or can we safely assume that the only keys that trigger internal functionality are sp2+sp3+spUp/spDown/spLeft/spRight/spCenter?

@DrSooom commented on 23 mrt. 2018 13:43 CET:

Conclusion: No. 2 to 4 and 8 was fixed. No. 1, 5 to 7 and 9 has still to be tested.

If no.2 is fixed, no.1 is fixed as well. 5 to 7 are beyond the scope of this issue as noted in https://github.com/nvaccess/nvda/issues/8106#issuecomment-374997050. Regarding the 9th point (keys not being released by the driver), I'd like an attempt from @dkager to reproduce. @DrSooom commented on 24 mrt. 2018 17:21 CET:

And here is the logfile: NVDA Bug #8106_20180324_p7.zip

This issue doesn't exist on my NUC (USB1) with NVDA 2015.3 (tested now) and it didn't exist in December 2017 with NVDA 2017.1 (or 2017.4 - can't remember anymore) on my PC (USB2).

Edit: Both smartpads were tested on the NUC and only the left one on the PC. The logfile shows an error in the new driver (go to the lines 247, 703 and 1.387).

Could you please disable the broken audiothemes add-on as well as try to reproduce the bug while you aren't focussing an object with a blinking cursor in it? That makes reading the log quite a lot easier.

Also: please describe exactly the steps you're taking to make the keys become in a disrupted state (i.e. which keys are you pressing in what sequence, when do the keys start hanging?)

DrSooom commented 6 years ago

NVDA Bug #8106_20180326_p8.zip

I did the following after changing the protocol/log-level:

  1. NVDA+1 (Input Help Mode on)
  2. SP1+Sp2+Sp3 on the left smartpad section simultaneously
  3. etouch1 alone (but NVDA says that SP1+SP2+SP3+etouch1 were pressed simultaneously)
  4. NVDA+1 (Input Help Mode off)
  5. NVDA+n » E » R » Enter (initialling the braille display again to solve this issue)
  6. NVDA+1 (Input Help Mode on)
  7. SP2+Sp3+Sp4 on the left smartpad section simultaneously
  8. etouch1 alone (but NVDA says that SP2+SP3+SP4+etouch1 were pressed simultaneously)
  9. NVDA+1 (Input Help Mode off)
  10. NVDA+n » E » R » Enter (initialling the braille display again to solve this issue)
  11. NVDA+1 (Input Help Mode on)
  12. SP1+Sp2+Sp3+SP4 on the left smartpad section simultaneously
  13. etouch1 alone (but NVDA says that SP1+SP2+SP3+SP4+etouch1 were pressed simultaneously)
  14. NVDA+1 (Input Help Mode off)
  15. NVDA+n » DownArrow twice » RightArrow » Enter (open the protocol window)
LeonarddeR commented 6 years ago

Hmm, I think I found the issue, there's an error regarding using the startswith method on a None. Could you please try this try build? Please make sure that you remove the alva.py and alva.ppyo files, or run this as a portable copy.

DrSooom commented 6 years ago

I created a portable version of NVDA as I thought that you changed more than the ALVA driver. That also means that I didn't use my own config - the default one was used.

I now tested SP1+SP2+SP3, SP2+SP3+SP4 and SP1+SP2+SP3+SP4 on the left and on the right smartpad section via USB2 on my PC. Both now works correctly. In other words: The keys are recognized correctly by NVDA. Other keys on the ALVA BC680 can be pressed normally after pressing one of this three combos.

What I mean exactly is the new combo feature in NVDA 2018.1 I mentioned before.

But this isn't now a new bug - it is just the result of #7783.

LeonarddeR commented 6 years ago

@DrSooom: Could you also try pressing the smartpad buttons with the portable copy, but with your own gesture file?

DrSooom commented 6 years ago

Okay, following happens:

  1. SP2+SP3 + SPLeft/SPRight/SPUp/SPDown/SPEnter = still Win + these four arrow keys/Enter. I just tested the keys on the left smartpad section.
  2. Strange sounds directly from my center speaker after pressing SP1+SP2+SP3, SP2+SP3+SP4 and SP1+SP2+SP3+SP4 on the left smartpad section (the right one wasn't tested) during the input help mode is enabled. NVDA didn't speak anything. Only the sound feedback appeared. Here the logfile: NVDA Bug #8106_20180328_p9.zip Edit: The (piano) sound also appears even if the input help mode is disabled. And this time the split-mode of the ALVA BC680 was disabled. You can see in the logfile that it was "accidently" enabled after pressing SP2+SP3+SPCenter on the left smartpad section. I just recognized this later after closing the portable version of NVDA snapshot_try-i8106-14962,ba576e91 and starting my installed version.
LeonarddeR commented 6 years ago

Here is another try build. Could you please test this one as well with your gestures file? Also, just to make sure, could you share your gestures file again so I can check its validity manually?

DrSooom commented 6 years ago

NVDA Bug #8106_20180329_p10, p11 and gestures.zip

Well, with the NVDA snapshot_try-i8106-14989,3bb476b3.exe the second mentioned bug with the strange sound doesn't occur anymore. "p10.txt" is the logfile without my "gestures.ini" and "p11.txt" with it. In the input help mode I didn't recognized any differences.

When now pressing SP1+SP2+SP3 simultaneously NVDA still interprets this as Shift+Win+Tab and so on with my "gestures.ini". Maybe a new "none" line in the "gestures.ini" could be a workaround for this - but this is not a suitable solution.

btw: SP2 alone isn't regarding to the ALT key anymore by default in your new snapshot.

LeonarddeR commented 6 years ago

@DrSooom commented on 29 mrt. 2018 14:41 CEST:

btw: SP2 alone isn't regarding to the ALT key anymore by default in your new snapshot.

To make sure, is this also the case when using this snapshot without your gestures.ini?

It looks like your gestures.ini has many outdated entries, referring to the old alva driver. May be it is better to start from scratch.

DrSooom commented 6 years ago

This was tested without my "gestures.ini".

My "gestures.ini" says: "review_previousCharacter = br(alvabc6):sp2, br(baum):d3+routing, kb:leftarrow+nvda+shift, br(alva.bc680):sp2"

And the old "br(alvabc6):*" entries shouldn't care NVDA anymore at all.

LeonarddeR commented 6 years ago

What happens if you press sp2 with keyboard help on? I can't find anything regarding that key press in the log.

DrSooom commented 6 years ago

This is correct. You couldn't find this in the log because I only pressed these three SP-combos. Here is the logfile without my "gestures.ini" where I'm pressing SP1 alone followed by SP2, SP3 and SP4. NVDA Bug #8106_20180329_p12.zip

In the Input Gesture windows SP2 isn't listed at the emulated ALT key entry too. And sorry, it seems that this time I forgot to close the python console during pressing those four SP-keys (= blinking cursor on the braille display). If you want I can test the whole thing via USB1 too - without a blinking braille cursor of course. ;)

LeonarddeR commented 6 years ago

Ah, now I know what this was all about. There was a duplicate assignment for kb:alt in the gesture map. That has now been fixed in this try build.

DrSooom commented 6 years ago

The following hotkeys regard now to no command - maybe because SP2 is now matched with the ALT key again:

But: SP2+SP3+SP4 = emulates now Alt+Win+B (combo of SP2 and SP3+SP4).

All this was tested with and without my "gestures.ini". The Result is now exactly the same. NVDA snapshot_try-i8106-14994,fcd1ac68 was used as a portable version - as the other snapshots before.

LeonarddeR commented 6 years ago

The following hotkeys regard now to no command - maybe because SP2 is now matched with the ALT key again:

That looks like an unintentional, but nice fix for one problem you reported.

But: SP2+SP3+SP4 = emulates now Alt+Win+B (combo of SP2 and SP3+SP4).

Is that a problem somehow?

DrSooom commented 6 years ago

No, because this is exactly the behaviour regarding to #7783.

Edit: I totally forgot that the above mentioned result also exists WITH my "gestures.ini". In that case the answer is "Yes", not "No". I will open a new bug report regarding this later because I think that this issue isn't ALVA-specific. -- Edit-End

But it would be more useful that the five SP2+SP3+SP*-combos are mapped by default firm to nothing (= no reactions by NVDA when pressing these combos) or to the CTRL key. Emulating the CTRL key alone make less "damages" than any other keys. I think that this have to be defined in the ALVA driver itself. The Goal here should also be that the end user can't allocate any commands to those combos via the input gestures window because NVDA fully ignore them.

DrSooom commented 6 years ago

Regarding to my last comment I opened now bug #8149.

And regarding to this issue here I now successfully tested all 15 combos of etouch1 to etouch4, all 15 combos of SP1 to SP4 and all (hopefully) 31 combos of T1 to T5 via USB2 with nvda_snapshot_try-i8106-14994,fcd1ac68 (portable version). As there are thousands of combinations which can be pressed on an ALVA BC680 I'm not going to test this all. ;) But if you wish I can test those 61 combos via USB1 as well.

DrSooom commented 6 years ago

@leonardder: Could you please do the following:

  1. Open "brailleDisplayDrivers/alva.py".
  2. Search for: "kb:control" (with the quotes).
  3. Insert the following below (into a new line): "None": ("br(alva.bc640):sp2+sp3+spUp","br(alva.bc640):sp2+sp3+spDown","br(alva.bc640):sp2+sp3+spLeft","br(alva.bc640):sp2+sp3+spRight","br(alva.bc640):sp2+sp3+spEnter","br(alva.bc680):sp2+sp3+spUp","br(alva.bc680):sp2+sp3+spDown","br(alva.bc680):sp2+sp3+spLeft","br(alva.bc680):sp2+sp3+spRight","br(alva.bc680):sp2+sp3+spEnter",),
  4. Create a new snapshot.

As the device specific allocations overwrite the general divice allocations this new line should disable the five SP2+SP3-combos on the ALVA BC680 as well as on the ALVA BC640, even if one or all keys are allocated with an emulated key via "br(alva):". but those five combos are still not ignored by NVDA - the end user can still allocated them with any command via the input gestures dialog. Perhaps this solution is better than fully ignoring them at all.

DrSooom commented 6 years ago

At the SightCity 2018 I could take a look on the ALVA 640 Comfort and the ALVA USB 640 Comfort. Both braille display have no SmartPad-keys anymore and the ALVA USB 640 Comfort has no braille keyboard, no Bluetooth, no build-in battery and no internal braille system menu. Optelec Germany also told me that the ALVA BC640 is no longer manufactured. btw: The headquarters of Optelec is located in The Netherlands. (I was wrong according this in my very first post. Sorry for the confusions and the inconveniences.)

Regarding to the ALVA 640 Comfort there are two additional hotkeys which should be allocated by default to no command ("None"-line, see my previous post) or totally ignored by NVDA:

  1. B1+B3+B4+Space = open internal braille system menu
  2. B1+B3+B4+B5+Space = open internal build-in notes application