Support for Toshiba bluetooth stack #2419

Closed
nvaccessAuto opened this Issue Jun 8, 2012 · 18 comments

2 participants

@nvaccessAuto

Reported by jteh on 2012-06-08 08:02
When enumerating com ports (e.g. in braille display drivers), our hwPortUtils module can retrieve the names of any bluetooth devices it encounters if the system is using the Microsoft bluetooth stack. This needs to be supported for the Toshiba bluetooth stack as well.

Unfortunately, I have no idea how to do this at present.

@nvaccessAuto

Comment 1 by Ulf on 2012-06-15 15:01
I have fond a free Sourcecode (C++) at http://www.naughter.com/enumser.html that enums the coms. In the setupapi1-section all available C>OMs are listed (on my PCs) I have an Avantalk bluetooth stick, but don't know what stack.

@nvaccessAuto

Comment 2 by jteh on 2012-06-17 06:29
hwPortUtils uses setupapi itself. I'm not sure why hwPortUtils is missing your bluetooth ports.

The second problem is that even if we do find the port, we need a way to get the name of the associated bluetooth device. That is specific to the bluetooth stack.

@nvaccessAuto

Comment 3 by jteh on 2012-12-07 06:09
I was able to install the Toshiba bluetooth stack on my system. For reference, I downloaded it from here; I'm not sure where to download it from Toshiba for non-Toshiba systems if that's even possible.

I've implemented support for it in e4fc30c. Note that what I'm doing is undocumented. I figured it out by manually inspecting the registry. I'd appreciate it if others who use this stack could test with displays and report.

If it doesn't work, please do the following:
1. Open the NVDA Python console with NVDA+control+z.
2. Copy and paste the following line:

 import hwPortUtils as hu, api; api.copyToClip(unicode(list(hu.listComPorts())))
  1. Press enter.
  2. Paste your clipboard into your reply. Changes: Milestone changed from None to 2013.1
@nvaccessAuto

Comment 4 by jteh on 2012-12-07 06:19
Leaving open until at least one other user confirms that this works.

@nvaccessAuto

Comment 5 by nvdakor on 2012-12-07 06:24
Hi,
Can you merge the new feature into braillePorts branch so I can confirm that it works while connecting my Apex via Toshiba stack? Thanks.

@nvaccessAuto

Comment 6 by jteh on 2012-12-07 06:36
braillePorts,5625

@nvaccessAuto

Comment 7 by nvdakor on 2012-12-07 07:01
Hi,
Here's the output I get:
[u'BT Port (COM1)', 'hardwareID': u'Bluetooth\\0004&0002', 'port': u'COM1'}, {'friendlyName': u'BT Port (COM11)', 'hardwareID': u'Bluetooth\\0004&0002', 'port': u'COM11'}, {'friendlyName': u'BT Port (COM22)', 'hardwareID': u'Bluetooth\\0004&0002', 'port': u'COM22'}, {'friendlyName': u'BT Port (COM6)', 'hardwareID': u'Bluetooth\\0004&0002', 'port': u'COM6'}, {'friendlyName': u'BT Port (COM13)', 'hardwareID': u'Bluetooth\\0004&0002', 'port': u'COM13'}, {'friendlyName': u'BT Port (COM10)', 'hardwareID': u'Bluetooth\\0004&0002', 'port': u'COM10'}, {'friendlyName': u'BT Port (COM21)', 'hardwareID': u'Bluetooth\\0004&0002', 'port': u'COM21'}, {'friendlyName': u'BT Port (COM12)', 'hardwareID': u'Bluetooth\\0004&0002', 'port': u'COM12'}, {'friendlyName': u'BT Port (COM7)', 'hardwareID': u'Bluetooth\\0004&0002', 'port': u'COM7'}, {'friendlyName': u'BT Port (COM20)', 'hardwareID': u'Bluetooth\\0004&0002', 'port': u'COM20'}, {'friendlyName': u'BT Port (COM14)', 'hardwareID': u'Bluetooth\\0004&0002', 'port': u'COM14'}]({'friendlyName':)
This is with Toshiba Bluetooth Stack under Windows 8.

@nvaccessAuto

Comment 8 by nvdakor on 2012-12-07 07:04
Hi,
Don't worry about comment 7 (unless if it would be useful) - the correct output of the console command line was "true".

@nvaccessAuto

Comment 9 by jteh on 2012-12-07 07:33
comment:7 was the output I wanted. Unfortunately, it seems my code doesn't work on your system, so I guess this only works for some versions of the stack or something. Damn!

Did you do anything special when you added the device? For example, did you use the express mode or did you customise the COM port for the device? Did you check the option for it to be available to all users or did you leave that unchecked?

What version of the Toshiba stack are you using?

Finally, how comfortable are you with poking around the registry using regedit?

@nvaccessAuto

Comment 10 by nvdakor on 2012-12-07 07:48
HI,
I'm using Bluetooth Stack for Windows by Toshiba version 7.00 (which I downloaded from Toshiba Support site for my laptop (Satellite U400). I'm using the stack version designed for Windows 7, which works well under Windows 8.
When I added Apex, I used custom mode and did tell the stack to use a custom com port (com1). Under services list, there were two services which Apex exposed: PAN and serial port. Using the instructions posted on Humanware's website, I chose serial port service and told the stack to share the pairing info with all users.
And yes, I'm comfortable with probing the registry using regedit.
Thanks.

@nvaccessAuto

Comment 11 by jteh on 2012-12-07 08:04
Okay. The simplest way is probably to export everything from these registry keys to a file so I can see how it looks on your system:

  • HKEY_CURRENT_USER\Software\Toshiba\BluetoothStack
  • HKEY_LOCAL_MACHINE\Software\Toshiba\BluetoothStack
  • HKEY_LOCAL_MACHINE\Software\Wow6432Node\Toshiba\BluetoothStack You may wish to email these to me privately if you're concerned about security, as I'm not sure whether they contain any sensitive data.
@nvaccessAuto

Attachment HKCU_toshiba_bluetooth_stack_keys.txt added by nvdakor on 2012-12-07 08:13
Description:
Registry export of HKCU\Software\Toshiba\Bluetooth_stack.

@nvaccessAuto

Attachment HKLM_toshiba_bluetooth_stack_keys.txt added by nvdakor on 2012-12-07 08:14
Description:
Registry export of HKLM\Software\Toshiba\Bluetooth_stack.

@nvaccessAuto

Comment 12 by nvdakor on 2012-12-07 08:15
Hi,
Attached the exports of the first two values, as I'm running 32-bit version of Win8.

@nvaccessAuto

Comment 13 by jteh on 2012-12-07 08:24
The data is exactly as i expected, so I don't understand why this doesn't work.

Can you please paste the output of the following Python console command:

import hwPortUtils as hu; hu.getToshibaBluetoothPortInfo(u"COM1")

Thanks for your help.

@nvaccessAuto

Comment 14 by jteh on 2012-12-07 08:43
Ah! I think I found the bug. Merged in braillePorts,5626.

@nvaccessAuto

Comment 15 by nvdakor on 2012-12-07 09:04
Hi,
Success - when I pasted the command line text in Python console, it did report my Apex's name (APEX000723), and under braille settings, Bluetooth and automatic finally shows up. Thanks.

@nvaccessAuto

Comment 16 by jteh on 2012-12-07 10:45
Changes:
State: closed

@jcsteh jcsteh was assigned by nvaccessAuto Nov 10, 2015
@nvaccessAuto nvaccessAuto added this to the 2013.1 milestone Nov 10, 2015
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment