CoreBluetooth Reagiert nicht

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • CoreBluetooth Reagiert nicht

    Hallo zusammen,

    ich bin mit CoreBluetooth am verzweifeln und ich hoffe jemand von euch hat irgendeine Idee. Folgendes Problem:
    Ich habe eine App, welches sich mit einem BLE Gerät verbindet und da werden Daten ausgetauscht. Das Schreiben wird mit Write without Response durchgeführt und das Lesen anhand einer Indication realisiert. Ob das nächste Paket gesendet werden kann wird durch peripheralIsReadyToSendWriteWithoutResponse erkannt. Dies funktioniert auch an sich sehr gut und ohne Probleme.

    Bis auf einen einzigen Fall: Es kommt vor das nach dem ersten Schreiben und Empfangen eine User-Interaktion notwendig ist. Dauert diese zu lange (mehr als 8 Sekunden), so reagiert CoreBluetooth nicht mehr auf eine Indication sowie auf peripheralIsReadyToSendWriteWithoutResponse. Also ich kann zwar dem Periphal was senden und es kommt auch an. Aber die Methode wird nicht aufgerufen. Core Bluetooth reagiert auch nicht mehr auf die Indication. Im Bluetooth Sniffer sehe ich jedoch, dass die Indication ankommt und sogar vom Handy bestätigt wird. Das Write Paket kommt auch an. Es ist so wie als wäre CoreBluetooth eingeschlafen. Warum wird der Callback dann nicht aufgerufen? ?( ?( Einen Timeout kann ich auch nicht setzen

    Der Code an sich funktioniert auch, wenn man halt schneller als ca. 8 Sekunden ist. Es hat auch nichts mit der User-Interaktion an sich zu tun. Ich habe testweise einfach ein Sleep von 8s eingebaut. Das komische ist auch, dass bei 8s jeder 10. Versuch ca. klappt. Bei 10s klappt gar nichts mehr.

    Am Peripheral kann es eigentlich auch nicht liegen, denn wir haben eine Android App mit identischer Logik. Da klappt alles. Hat jemand eine Idee? Ich google bereits seit Tagen aber das erklärt sich mir nicht. Unser Firmware Entwickler hat auch langsam keine Idee mehr. Zwischen Android und iOS erkennt man auch keine wesentlichen Unterschiede im Sniffer.

    Viele Grüße und DANKE
    Nils