New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix Hims usb detection issues and scroll keys input for Polaris displays #7865

Merged
merged 5 commits into from Feb 9, 2018

Conversation

Projects
None yet
3 participants
@leonardder
Collaborator

leonardder commented Dec 18, 2017

Link to issue number:

None, however reported in this NVDA-devel post.

Summary of the issue:

As described by Alberto Buffolino

I tried latest NVDA masters, 14715 and 14729, and I think to have a problem with autodetection of my Braille EDGE. The display is recognized exactly one of two times. For example:

  • I start my PC, display is recognized, I digit password to login, and ok;
  • Windows starts, NVDA starts... and display is not recognized;
  • I restart NVDA and display works;
  • I restart again NVDA and display does not work;
  • and so on...
    I did a clean installation, cleaned nvda.ini from previous display settings, but nothing changed.

Description of how this pull request fixes the issue:

  1. Introduced a timeout when terminating the display, similar to the superBrl driver, just to make sure that the device closes properly. This seemed to improve things, but didn't fix it entirely.

  2. Sending the cell count request is now part of the for i in xrange(3) loop, thereby increasing the likelyhood that the cell request is received and acted upon by a display.

  3. This also contains a workaround which was initially part of my work for this driver in #1271. It seems that Hims devices, particularly the Braille Edge, advertise themselves to the system while not yet operable. In that case, NVDA will try to connect but the display will not respond. For this case, I increased the maximum connection timeout for these displays in USB bulk mode to 2*3 = 6 seconds. This seems quite drastic, but:

    A. It seems to make sure that auto detection in USB mode always succeeds, even in the case where a device is not operable for a long time
    B. Note that in case of Bluetooth devices that are not in range, the minimal timeout is 5 seconds, and that timeout increases with 5 seconds for every other paired but not in range display that a driver supports.
    C. The chance that one selects this display in the braille settings while the display is in connected but yet inoperable seems quite low.
    D. This amount of 6 seconds is the absolute maximum, i.e. in most cases, a display will respond far earlier than that.

    Nevertheless, alternative ideas are welcome of course.

Fix for Polaris input

Hims also reported an issue regarding the scroll keys of their Braille Sense Polaris, which did not work correctly. This has also been fixed as part of this pr.

Testing performed:

From Alberto again:

ok, I installed it ... and yeah, this fixed the issue! Restarted NVDA various times, launched ctrl+alt+canc to try the switch from normal to secure mode and vice versa, and all works.

I've also done some tests as part of #1271 myself, and I wasn't able to trigger the behavior that Alberto reported initially.

Regarding the Polaris input, this has been tested by Hims and works as expected.

Known issues with pull request:

None I'm aware of, but as we are well in time before 2018.1, let's not merge this straight into master.

Change log entry:

  • Bug fixes
    • All keys on the Hims Braille Sense Polaris displays are now working as expected. (#7865)

leonardder added some commits Dec 18, 2017

@leonardder leonardder added the Braille label Dec 18, 2017

@leonardder leonardder requested a review from michaelDCurran Dec 18, 2017

michaelDCurran added a commit that referenced this pull request Jan 12, 2018

@leonardder leonardder changed the title from Fix cases where a Hims display is not detected over USB even though properly connected to Fix Hims usb detection issues and scroll keys input for Polaris displays Jan 20, 2018

@leonardder

This comment has been minimized.

Collaborator

leonardder commented Jan 25, 2018

@michaelDCurran: Could you please review the most recent changes regarding the Polaris display? May be it's good to do another 14 days window of incubation?

michaelDCurran added a commit that referenced this pull request Jan 26, 2018

@michaelDCurran michaelDCurran merged commit 4645942 into nvaccess:master Feb 9, 2018

1 check passed

continuous-integration/appveyor/branch AppVeyor build succeeded
Details

@nvaccessAuto nvaccessAuto removed the incubating label Feb 9, 2018

@nvaccessAuto nvaccessAuto added this to the 2018.1 milestone Feb 9, 2018

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment