Skip to content

Error in braille display driver when changing timeout of a serial connection #6035

@dkager

Description

@dkager

This error usually occurs when using the HumanWare Brailliant BI, firmware v2.0.15 on USB (Serial), while the computer is under some load. Reproduced on Windows 7 and 10, and first reported in #5195.

ERROR - unhandled exception (16:00:36):
Traceback (most recent call last):
  File "_ctypes/callbacks.c", line 314, in 'calling callback function'
  File "hwIo.pyc", line 116, in _ioDone
  File "hwIo.pyc", line 183, in _notifyReceive
  File "serial\serialutil.pyc", line 377, in setTimeout
  File "serial\serialwin32.pyc", line 177, in _reconfigurePort
ValueError: Cannot configure port, some setting was wrong. Original message: [Error 31] A device attached to the system is not functioning.

It happens either when setting or clearing the timeout in hwIo.Serial._notifyReceive:

        # Set the timeout for onReceive in case it does a sync read.
        self._ser.timeout = self._origTimeout
        super(Serial, self)._notifyReceive(data)
        self._ser.timeout = None

So either on the second or the forth line of that code fragment. My initial guess is that either the display has more to send and doesn't like the reconfiguration, or the communication timeout is too short. I haven't investigated further. This may also apply to Bluetooth and/or to other displays.

Metadata

Metadata

Assignees

Labels

bug/regressionp2https://github.com/nvaccess/nvda/blob/master/projectDocs/issues/triage.md#priority

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions