Skip to content

Signal routing button presses for Freedom Scientific displays #20077

@DataTriny

Description

@DataTriny

Is your feature request related to a problem? Please describe.

Braille routing events for Freedom Scientific displays are currently emitted on button release, for each button.

Describe the solution you'd like

Displays send packets when these buttons are pressed, communicating that to NVDA would be desirable for upcoming improvements to text selection.

Here are debug traces showing that this works (on a Focus 5th generation with 40 cells):

DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (11:19:47.173) - hwIo.ioThread.IoThread (10232):
Got packet of type b'\x04' with args: b'\x01' b'\x01' b'\x00'
DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (11:19:48.128) - hwIo.ioThread.IoThread (10232):
Got packet of type b'\x04' with args: b'\x03' b'\x01' b'\x00'
DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (11:19:49.050) - hwIo.ioThread.IoThread (10232):
Got packet of type b'\x04' with args: b'\x01' b'\x00' b'\x00'
IO - inputCore.InputManager.executeGesture (11:19:49.050) - hwIo.ioThread.IoThread (10232):
Input: br(freedomScientific.Focus40):routing
DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._onReceive (11:19:49.899) - hwIo.ioThread.IoThread (10232):
Got packet of type b'\x04' with args: b'\x03' b'\x00' b'\x00'
IO - inputCore.InputManager.executeGesture (11:19:49.899) - hwIo.ioThread.IoThread (10232):
Input: br(freedomScientific.Focus40):routing

Packet type 0x4 is for routing button events, first argument is the 0-based cell index, second is the type of event (1 for press, 0 for release).

The driver could either emit new routing events on button presses or keep tracck of all currently pressed buttons and emit a single routing event with a list of all simultaneously pressed buttons when the last one is released.

Describe alternatives you've considered

Keep the driver as is.

Additional context

These events are currently explicitly ignored (

) but I couldn't find a technical reason behind that in #8853 or subsequent changes. Maybe @bramd has more context?

Metadata

Metadata

Assignees

No one assigned

    Labels

    component/braille-display-driversfeatureneeds-technical-investigationA technical investigation is required to progress the issue.p5https://github.com/nvaccess/nvda/blob/master/projectDocs/issues/triage.md#prioritytriagedHas been triaged, issue is waiting for implementation.
    No fields configured for Feature.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions