1

Le système je travaille utilise le scénario suivant:CoreBluetooth APIMISUSE (envoyer la commande - périphérique non connecté)

  1. Connexion à périphérique Bluetooth LE
  2. Découvrez les services & Caractéristiques
  3. commande Write à TX caractéristique et recevoir une réponse

Ci-dessus fonctionne bien 90% du temps. De temps en temps, le système passe dans un état où la troisième étape échoue constamment (il n'y a pas de réponse de l'appareil même si les étapes 1 et 2. Le redémarrage de l'application/téléphone/périphérique BLE NE remédie pas. le problème est de désappliquer manuellement l'appareil des paramètres du système iOS.En regardant les journaux de diagnostic BLE, je reçois ceci:

"pon.mar 7 21:27:30 Préférences [380]: [CoreBluetooth] API MISUSE: ne peut accepter que des commandes tandis que dans l'état connecté »

Cependant avant d'envoyer les commandes que j'ai débogués l'application et je suis 100% la connexion est établie et services & caractéristiques ont été découverts. Une idée? Anybody face à des problèmes similiar

012?

Répondre

0

Avez-vous implémenté centralManager:didDisconnectPeripheral:error: dans votre délégué central?

Il vous avertira lorsqu'un périphérique se déconnecte. Pourrait être que le périphérique déconnecté ou il y avait une erreur de connexion. Vous devez toujours vous assurer de ne faire que des opérations de lecture/écriture dans l'état connecté.

Peut-être ont aussi un oeil à cette méthode: centralManager:didFailToConnectPeripheral:error:

+0

En fait, je faire les deux, je vérifie additionallly pour: CBPeripheralState state = self.dongleConnection.connectedDevice.peripheral.state; if (état == CBPeripheralStateConnected) avant d'effectuer toute lecture/écriture à partir de la caractéristique. –