[BRLTTY] focus display hangs with brltty 5.0

Dave Mielke dave at mielke.cc
Mon Mar 10 12:30:46 EDT 2014


[quoted lines by Sebastian Humenda on 2014/03/10 at 16:00 +0100]

>I have tried my very best, but unfortunately the error _seems_ not to occurre
>that frequently when typing. It happens faster when slowly scrolling, e.g.
>through a file.

Do you mean when using the up/down arrow keys on the keyboard?

The FS protocol allows updating only the part of the braille display that 
actually needs to be changed. When typing, this typically means that only two 
braille characters are updated each time you type a key. When scrolling, the 
likeli-hood is that much greater chunks of the braille display are changed on 
each update. This may be significant.

>The output is attached, the text which I typed also. I have marked the error
>places with a HTML comment. I was only able to reproduce the error twice; the
>display never comes back on its own, I always used a key on the display. 

That fits with what I see in the log.

>Should I try again and see if the display ever wakes up again without a key 
>press?

No, there's no need to do that.

The FS protocol expects the device to send an acknowledgement after each update 
is written to it. The FS driver holds onto new updates until it receives the 
acknowledgement from the previous one. What's happening, in your case, is that, 
once in a while, the expected acknowledgement isn't being received. That's why 
your display stops updating. The driver is holding onto new updates until it 
receives the acknowledgement it's expecting but not receiving.

When you press a key on your braille device, that causes the code to assess the 
current situation. If it hasn't seen an expected acknowledgement for a certain 
amount of time (currently, half a second) then it logs a warning and clears the 
condtiion. That's why your display resumes updating after you press a key on 
it.

>>Could you also please send me yet one more log. The log I'd like to see is from 
>>brltty-4.5 with -ldebug,inpkts,outpkts.
>
>I have done so.

What I was looking for is if 4.5 was also logging missing acknowledgements. It 
turns out that it is, which means that this could be a problem within your 
braille device itself. So now, of course, you have a question. Why, if 4.5 is 
also logging missing acknowledgements, is it working when 5.0 isn't.

4.5 polls the device every 40 milliseconds for pending input (key presses, 
acknowledgements, etc), whereas 5.0 is interrupt-based and waits for the kernel 
to tell it that input is available. On 4.5, therefore, the missing 
acknowledgement is detected and corrected for almost right away. There'd be, on 
average, a quarter second delay between the onset of and the correction for the 
problem - you'd hardly notice this. With 5.0, however, since a missing 
acknowledgement doesn't create any new input from the device, the condition 
goes undetected until you cause some new input by pressing a key.

Now that the problem is understood, we'll be able to deal with it even if the 
problem is within your device. All we need to do is schedule a timer event to 
handle the missing acknowledgement condition. I'll let you know when this has 
been done.

-- 
Dave Mielke           | 2213 Fox Crescent | The Bible is the very Word of God.
Phone: 1-613-726-0014 | Ottawa, Ontario   | http://Mielke.cc/bible/
EMail: dave at mielke.cc | Canada  K2A 1H7   | http://FamilyRadio.com/


More information about the BRLTTY mailing list