Вопрос

Я пытаюсь найти какие-либо обходные пути для PacketLogger из оборудования IO Инструменты для XCode .

Когда я использую Bluetooth Explorer для подключения к устройству Bluetooth LE, я ожидаю увидеть 3.4.4.9 Прочитать по запросу типов группы (uuid= 0x2800 "Первичная служба», начать Happy Happy= 0x0001, Endinghandle= 0xFFFF) Чтобы обнаружить первичные сервисы (или Найти по запросу типового значения (uuid= 0x2800, значение: uuid of service)), за которым следует 3.4.4.1 Прочитайте по типу запроса (UUID= 0x2803 «Характеристика») для обнаружения характеристик. Это то, что я вижу, когда я понюхиваю пакеты с iPhone (используя CC2540).

Но на OSX, единственным запросам L2CAP, которые я вижу в PacketLogger (и CC2540) после подключения:

  1. читать по типу запроса (attributetype= 0x2803, englishandle= 0x001a, endinghandle= 0x001a)
  2. читать по типу запроса (attributetype= 0x2802 "включает в себя, endinghandle= 0x0001, endinghandle= 0x0004)
  3. Читайте по типу запроса (attributetype= 0x2802, englishandle= 0x0005, endinghandle= 0x0009)
  4. читать по типу запроса (attributetype= 0x2802, entinghandle= 0x0010, endinghandle= 0x0019)
  5. читать по типу запроса (attributetype= 0x2802, englishandle= 0x001a, endinghandle= 0x001a)
  6. читать по типу запроса (attributetype= 0x2803, englishandle= 0x001a, endinghandle= 0x001a)
  7. читать по типу запроса (attributetype= 0x2802, endinghandle= 0x0021, endinghandle= 0x0027)
  8. читать по типу запроса (attributeType= 0x2802, endinghandle= 0x002b, endinghandle= 0x002e)
  9. Это недостаточно запросов, чтобы обнаружить услуги, но Bluetooth Explorer перечисляет все службы UUID в этой точке. Это указывает на то, что OSX уже знает, где службы находятся на этом устройстве Bluetooth LE. Служба устройства Sblued Cache и прочитает их при запуске? Если это так, как я могу очистить кеш?

    Я попробовал отключить Bluetooth, убившись и перезапускаю OSX, но каждый раз, когда OSX никогда не переназначивает службы.

Это было полезно?

Решение

Да, блинчик делает кэш Bluetooth Le Gatt Table.Если кэш плохой, сделайте следующее, чтобы удалить его, благодаря «Блюдушный процесс убивает мой CPU» :

  1. Удалить /library/preferences/com.apple.bluetooth.plist.Это удалит знания всех связанных устройств Bluetooth и Bluetooth LE.
  2. kill / usr / sbin / blued.Он будет перезапущен запуск.
  3. снова запустить программу Bluetooth le.PacketLogger теперь будет отображаться прочитанным групповым типом запросов на повторное открытие первичных служб.
  4. кэширование разрешено, когда центральная установила «связь» с периферией (не только просто в паре), согласно Bluetooth 4.0 TOME 3 Часть G Раздел 2.5.2 Кэширование атрибута.Я не уверен, как проверить, что центральное действительно связано с периферией, но я предполагаю, что это сделал.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top