0

Мы тестируем Bluetooth в WEC2013 с помощью USB-ключа от универсального поставщика на платформе iMx6. Мы используем стандартный транспортный уровень HCI, снабженный WEC2013 BSP.Проблема в соединении Bluetooth

BT включен и способен сканировать все соседние устройства.

Мы включили следующие переменные sysgen и запись в реестре.

Sysgen Переменные: въездные

SYSGEN_BTH (Bluetooth stack with universal loadable driver) 
SYSGEN_BTH_BTHUTIL (Bluetooth Profile Management APIs) 
SYSGEN_BTH_HID_KEYBOARD (Bluetooth HID - Keyboard) 
SYSGEN_BTH_HID_MOUSE (Bluetooth HID - Mouse) 
SYSGEN_BTH_AG (Bluetooth HS/HF and Audio gateway service) 
SYSGEN_BTH_SETTINGS (Bluetooth settings UI) 
SYSGEN_OBEX_CLIENT (Obex client) 
SYSGEN_OBEX_SERVER (Obex server) 
SYSGEN_OBEX_FILEBROWSER (OBEX file browser) 
SYSGEN_OBEX_INBOX (OBEX Inbox) 
SYSGEN_FTPD (FTP server) 
SYSGEN_BTH_BTHSSVC(Support Secure Simple Pairing) 

реестра:

[HKEY_LOCAL_MACHINE\Drivers\USB\LoadClients\Default\224_1_1\Default\Bluetooth_USB_Driver] 
    "DLL"="bthusb.dll" 

[HKEY_LOCAL_MACHINE\Drivers\USB\LoadClients\Default\Default\224_1_1\Bluetooth_USB_Driver] 
    "DLL"="bthusb.dll" 

[HKEY_LOCAL_MACHINE\Software\Microsoft\Bluetooth\Transports\PnP\{B3DD867A-1E6E-4215-8AA7-EAC1DFC46548}] 
"flags"=dword:80000000 
"driver"="bthusb.dll" 
"resetdelay"=dword:0 
"PacketSize"=dword:200 
"BlockSize"=dword:5 

[HKEY_LOCAL_MACHINE\ControlPanel\Bluetooth] 
"PinAttemptInterval"=dword:200000 
"PinEntries"=multi_sz:"0000","8888" 

Мы наблюдали различные сценарии в паре с устройством.

  1. Подключение мобильного телефона от платы (imx6 + USB Dongle работает с WEC2013) Здесь спаривание успех, когда пара инициируется через bthsettings UI. Он будет запускать 6-значный автоматический ключ доступа с обеих сторон.

  2. Подключение с мобильного устройства к плате без открытия интерфейса пользователя bthsettings. Здесь соединение происходит успешно. Когда пользовательский интерфейс не открыт (BT включен в фоновом режиме), соединение инициируется с мобильного устройства, оба будут спарены с использованием автоматизированного метода доступа к ключам . Но это будет внутренне вызывать пользовательский интерфейс bthsettings, поэтому в следующий раз, когда мы дадим спаривание с мобильного, мобильная сторона попросит ввести ключ . Как только ключ вводится на мобильном телефоне, а пара нажата, на мобильном терминале будет наблюдаться спаренное уведомление. В этом случае спаривание не удалось.

  3. Подключение с мобильного устройства к плате при открытии bthsettings. Здесь спаривание не удалось. Когда пара инициируется с мобильного устройства, будет активирован пользовательский интерфейс ввода ключа вручную, и когда ключ вставлен и пара будет нажата, на мобильном терминале будет отображаться , связанное с отклоненным уведомлением, а спаривание не удалось.

В этой неудачной senarios, верхний слой реагирует с «запросом Pin-кода командой отрицательного ответа» для «запроса пин-кода события» от чипа.

Нам нужен ввод данных для этого процесса сопряжения. Почему эти автоматические ключевые и ручные методы генерации ключей вызывается на основе открытого или открытого интерфейса пользователя? И почему ручной случай ключа не работает?

Не хватает ли каких-либо элементов реестра или стека?

ответ

1

Все это связано с SSP (Secured Simple Pairing), которое решает модель аутентификации сопряжения. Это затронуто в WEC8 (2013) через изменения в bthsettings.

В случае WEC8 они отключают SSP (через функцию EnbaleSSP()) всякий раз, когда соединение инициируется с внешнего устройства и включает обратно SSP, когда инициирование инициируется внутренне. Хотя это и есть логика, я не знаю, почему это было введено (и это ошибка, которая будет исправлена ​​в предстоящих обновлениях, как они первоначально делали для подключения беспроводного драйвера NDIS 5).

И как обходной путь к этому, отключите EnableSSP().

Также SYSGEN_BTH_BTHSSVC неявно необходим компоненту SYSGEN_BTH_SETTINGS, а ссылка нарушена под WEC8.

Корпорация Майкрософт предоставила исправление в апреле 2015 года. Доступные детали here.

+0

Спасибо за ответ @Braghadees! – GNKeshava

+1

Теперь MS говорит о своей ошибке, которую они сделали, также они предоставили вышеописанное как исправление через обновление Apr-2015 «FIX: соединение Bluetooth не удается с мобильного устройства на устройство Windows Embedded Compact 2013» [https://support.microsoft. com/en-us/kb/3061987] – Braghadees

+0

Да. Мы сообщали об этой проблеме в Microsoft параллельно. – GNKeshava