2015-12-28 2 views
0

У меня две печатные платы BLE (изготовленные на заказ моей компанией), которые рекламируются. При сканировании они идентифицируются как одни и те же CBPeripheral, несмотря на разные имена и идентификаторы. Вот мой пульт индикации вызова делегата:CoreBluetooth идентифицирует два периферийных устройства как то же самое

centralManager didDiscoverPeripheral <CBPeripheral: 0x144d26c70, identifier = E0FE60A5-FC4A-A6C5-3868-7D0EEAA580CD, name = Board A3D43, state = disconnected> 
centralManager didDiscoverPeripheral <CBPeripheral: 0x144d26c70, identifier = 2209CC24-05E8-8455-3A40-3F27AE9078DB, name = Board 51EB5E, state = disconnected> 

Мой вопрос заключается в том, как будут CBPeripherals дифференцированы, если не по имени или идентификатору? Наша прошивка использует Bluetopia под капотом, возможно, там есть некоторая сериализация?

+1

Два идентификатора и имена совершенно разные. Адрес памяти переменной является одинаковым, но в любом случае это бессмысленно. – Paulw11

+0

Вы правы. Я получаю больше информации о решении, но он оказался связан с IRK. iOS рассматривала периферийные устройства как то же самое в приложении «Настройки» и во время процедур подключения, что вызывало у нас много проблем, и я думал, что адрес памяти может быть ключом. Поставит решение, когда у меня будет больше деталей. –

ответ

1

Как упоминал Павел в своем комментарии, адреса памяти не оказались в связи с этой проблемой. Основная проблема заключалась в том, что периферийные устройства генерировали идентичные IRK, что заставляло iOS ошибочно полагать, что они все одинаковые периферийные. Ошибка возникла из ложного предположения о том, что функция диверсификации ключа (d1 в базовой спецификации BT spec, vol 3 часть H 5.2.2.1) имела компонент случайности, когда на самом деле это всего лишь функция хэширования.

Мы смогли убедиться в этом, посмотрев приложение «Настройки» - до изменения, когда мы подключили новое периферийное устройство, оно перезаписало предыдущее соединение в настройках Bluetooth. Как только мы сделали уникальные IRK, мы увидели несколько устройств, перечисленных в приложении «Настройки».

Смежные вопросы