-
-
Notifications
You must be signed in to change notification settings - Fork 632
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
Papenmeier Braille driver support #1265
Comments
Attachment BraillexNvdaDriver_v0.5.zip added by Casalino on 2010-12-08 13:26 |
Comment 1 by winman3000 on 2011-06-17 20:48 |
Comment 2 by jteh on 2011-06-19 23:51 Unfortunately, this driver needs to be updated for the new braille input gesture code before it can be added. I can't do this because i don't have a display to work with, so someone with a display and the required expertise will need to update it. |
Comment 3 by drein on 2011-06-23 10:45 |
Comment 4 by schulle4u (in reply to comment 3) on 2011-08-01 08:41 |
Comment 5 by Bernd on 2011-11-11 15:48 There are some german persons who want to test this driver. Could you say on which nvda version this driver worked? Could you modify so the driver will work with version 2011.3? In this case I'm sure that German users will benefit from your and Gianlucas work and test it. In this case we'd have to know wheather drivers have to be installed and so on. |
Comment 6 by jteh (in reply to comment 4) on 2012-06-15 11:42
Did you copy both .py files (braillex.py and ftdi.py) into brailleDisplayDrivers? |
Comment 7 by schulle4u (in reply to comment 6) on 2012-06-15 11:56
Yes, and both files result in an appropriate .pyo file after starting NVDA. |
Comment 8 by aliminator on 2012-06-19 07:51 a re-deveopment of the driver is not necessary since a new one has already been developed and currently tested. It even works with the new el40c displays. |
Comment 9 by Casalino on 2012-06-19 08:05 |
Comment 10 by aliminator (in reply to comment 9) on 2012-06-19 09:30 the driver developed is based on your development code. The reason it was done this way due to the protocols of the displays we got from the company. |
Comment 11 by aliminator on 2012-06-26 09:15 |
Comment 12 by MHameed on 2012-06-27 16:04 If the driver will be packaged as an add-on, then an independant t2t is probably best. In any case, can we please have both English and German, to save our German translators some work. |
Attachment papenmeier-driver.zip added by aliminator on 2012-08-24 12:55 |
Comment 13 by aliminator on 2012-08-24 12:57 first of all sorry for the delay and thanks to Gianluca Casalino who Papenmeier did support its development by providing both technical The archive contains the following:
Please integrate the braille driver and its user guide in the upcoming |
Comment 14 by aliminator on 2012-08-24 13:02 |
Comment 15 by jteh on 2012-08-26 22:36 Note that we will not accept the serial driver at present, as we've chosen not to support serial displays for now due to configuration difficulty and the dangers of probing arbitrary serial ports. |
Comment 16 by aliminator on 2012-08-27 10:53 The serial driver supplied does not go through all ports on a system; it merely uses the one The very positive responses from the German mailing lists confirm that those serial braille devices which are usually older than the USB ones are still in use. Therefore they should be supported. Do you have other suggestions regarding this topic? Normally, one would implement a list box showing connection types (such as com1, USB ...) and saving those values to the main configuration file. The braille display ddriver is queried with the interface selected and acts accordingly. |
Comment 17 by jteh (in reply to comment 16) on 2012-08-27 23:21
This requires manual configuration by the user and will result in a lot of confusion.
For now, you're still welcome to submit an add-on containing this driver. This way, it is still available to those who want it.
The problem with this is that it requires the user to know what port the device is connected to. Determining this can be a fairly involved process which isn't realistic for new users. (This in turn results in a higher support load.) There are also implementation details which are difficult to resolve; e.g. where to store the port setting in the config, how to handle it in the Braille Settings dialog when the display is changed, etc. This part should be discussed in #426. |
Comment 18 by jteh on 2012-08-28 23:29 |
Comment 19 by aliminator on 2012-08-29 07:43 |
Comment 20 by aliminator on 2012-09-07 07:41 |
Comment 21 by jteh on 2012-09-11 05:40 I've briefly reviewed the non-serial driver. I can provide detailed code review, but there are a few larger issues that need to be discussed.
Btw, a minor point: there's no reason for us to include ftdi.py in NVDA's repository, as you can download it from its original source which we will list as a dependency. It's actually called ftdi2.py, but this is easily changed in the driver. Thanks again. |
Comment 22 by halim on 2012-09-11 07:02
You minor issue is a big one in my opinion. I.ll check if we can remove the braille input code but this needs some work. |
Comment 23 by aliminator (in reply to comment 21) on 2012-09-11 07:36
I understand you want to have drivers consistently but how long do users have to wait till the braille input is implemented into core? The actual driver would at least be an interim solution till the core gets braille input support.
As Halim has mentioned the dll file does not need to be included (and was not planned to include it) in NVDA. It will be shipped with the BRXCOM server and is a second approach to talk to Papenmeier displays. Both approaches definitely should be supported. |
Comment 24 by jteh on 2012-09-11 08:23 Regarding BRXCOM, I still don't understand why this should be supported. If I understand correctly, the user can choose to install BRXCOM on their system. What is the advantage of doing this as opposed to using the direct support? If there's a good reason/advantage, I'm not opposed to it, but I'm not understanding this. Regarding ftdi2.py, I mean that there's no reason to include it in NVDA's source repository. It'll just be an additional source dependency that users running from source have to download, just like they do for configobj, etc. Users running from binary builds will not have to do anything extra. This is why I said it was a minor point. |
Attachment papenmeier.py added by halim on 2012-09-11 09:00 |
Comment 25 by halim on 2012-09-11 09:04 |
Attachment userguide.diff added by halim on 2012-09-11 10:26 |
Comment 26 by halim on 2012-09-11 10:31 |
Comment 27 by jteh on 2012-09-12 04:59 The copyright doesn't mention Gianluca Casalino. Was any of his code used in the creation of this new driver? If so, he needs to be recognised as well. xrange() should generally be used instead of range(), as range() creates a list, which is wasteful.
There is some inefficiency here with no gain in readability. This is probably better written as:
Also, using += on a string is inefficient when done a lot, as strings in Python are immutable. You may wish to consider appending strings to a list and then using "".join to improve performance, though it's a relatively short string, so it probably won't be that noticeable.
Spinning like this is really expensive and will cause unnecessarily high CPU load. It's better to do a blocking read (even if only 1 byte), as the OS will then resume the process only when data is available. In the brl_decode_key_names* functions, there are a lot of if/elif blocks for specific values. It is more efficient to use a constant dict here which maps one value to another. Also, code like this:
newcells = "".join([chr(cell) for cell in newcells]('dn']
Regarding the Here are some minor nits that I'm not too concerned about, but should be noted nevertheless:
Thanks again for your work! |
Comment 28 by aliminator (in reply to comment 27) on 2012-09-14 13:17
The driver has been completely newly created.
The upper routing keys do have actually two actions associated with. |
Comment 29 by jteh (in reply to comment 28) on 2012-09-17 01:14
So when you press the key, both of these things occur. Is that correct? If that is the case, I would do two things:
__gestures would be something like this:
|
Comment 30 by aliminator (in reply to comment 29) on 2012-09-17 15:46 It would be great if the driver is now ready to be included in the upcoming release. |
Attachment papenmeier.2.py added by aliminator on 2012-09-17 15:47 |
Comment 31 by jteh on 2012-09-18 06:27 |
Comment 32 by jteh on 2012-09-19 01:11 |
Comment 33 by aliminator on 2012-09-19 07:44 |
Comment 35 by ragb on 2012-11-28 17:17 I think with the changes in #426 (see the !braillePorts branch), the serial version of the driver may be included, if the authors modifies it to reflect possible ports and such. The braillenote driver on that branch may serve as an example. |
Comment 36 by jteh on 2012-11-28 21:21 |
Reported by Casalino on 2010-12-08 13:25
Here my solution to support braillex II series braille devices. They are divided in revision A and revision B models. This driver should support completely all revision A devices as braillex II 40El as I had at disposal one model of them. Revision B should work except keys handling that requires a different protocol that at this time I can not test. I hope to have soon at my disposal a revision B model to complete this work. The native usb drivers have to be already installed.
Blocking #2679
The text was updated successfully, but these errors were encountered: