Pregunta

Estoy tratando de encontrar cualquier solución para un Bluetooth Le Bug en OSX . En particular, quiero saber dónde OSX sale mal al leer la mesa Bluetooth Le GATT. Por lo tanto, estoy viendo los paquetes L2CAP en Packetlogger de Hardware IO Herramientas para Xcode .

Cuando uso Bluetooth Explorer para conectarse al dispositivo Bluetooth Le, estoy esperando ver 3.4.4.9 leído por Solicitud de tipo de grupo (uuid= 0x2800 «Servicio primario», StartingHandle= 0x0001, FiningHandle= 0xFFFFF) Para descubrir servicios primarios (o hallazgo por solicitud de valor tipo (uuid= 0x2800, valor: uuid of service)), seguido de 3.4.4.1 leído por Solicitud de tipo (uuid= 0x2803 «característica») para descubrir características. Esto es lo que veo cuando espejo los paquetes de un iPhone (usando un CC2540).

Pero en OSX, las únicas solicitudes de L2CAP que veo en Packetlogger (y el CC2540) después de la conexión son:

  1. leído por tipo de solicitud (AtributeType= 0x2803, StartingHandle= 0x001a, EndingHandle= 0x001a)
  2. Leer por solicitud de tipo (AtributeType= 0x2802 «Incluir», StartingHandle= 0x0001, EndingHandle= 0x0004)
  3. leído por tipo de solicitud (AtributeType= 0x2802, StartingHandle= 0x0005, EndingHandle= 0x0009)
  4. Leer por solicitud de tipo (AtributeType= 0x2802, StartingHandle= 0x0010, EndingHandle= 0x0019)
  5. Leer por solicitud de tipo (AttributeType= 0x2802, StartingHandle= 0x001a, EndingHandle= 0x001a)
  6. leído por tipo de solicitud (AtributeType= 0x2803, StartingHandle= 0x001a, EndingHandle= 0x001a)
  7. leído por solicitud de tipo (atributeType= 0x2802, StartingHandle= 0x0021, EndingHandle= 0x0027)
  8. leído por Solicitud de tipo (atributeType= 0x2802, StartHandle= 0x002b, EndingHandle= 0x002e)
  9. Estas no son suficientes solicitudes para descubrir los servicios, sin embargo, Bluetooth Explorer enumera todos los UUID de servicio en este punto. Esto indica que OSX ya sabe dónde están los servicios en este dispositivo Bluetooth Le. ¿Los servicios de dispositivos de caché bluados y leídos en el inicio? Si es así, ¿cómo puedo borrar el caché?

    He intentado apagar Bluetooth, matando a BlueTH, y reiniciando OSX, pero cada vez que OSX nunca redescubre los servicios.

¿Fue útil?

Solución

Sí, Blued hace caché la tabla Bluetooth le GATT.Si el caché es malo, haga lo siguiente para eliminarlo, gracias a "El proceso bluado está matando a mi CPU" :

  1. Eliminar /library/preferences/com.apple.bluetooth.plist.Esto eliminará el conocimiento de todos los dispositivos Bluetooth y Bluetooth Bluetooth.
  2. MILL / USR / SBIN / BLUE.Se reiniciará por launchd.
  3. ejecutar nuevamente el programa Bluetooth Le.Packetlogger ahora mostrará leído por tipo de grupo solicitudes para redescubrir los servicios primarios.
  4. El almacenamiento en caché se permite cuando la central ha establecido un "enlace" con el periférico (no solo emparejado), de acuerdo con el volumen Bluetooth 4.0 Volumen 3 Parte G Sección 2.5.2 Cachón de atributo.No estoy seguro de cómo verificar que el centro de hecho se unió con el periférico, pero asumo que lo hizo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top