CoreBluetooth With BLE stopping read after a while

I'm using


func peripheral(_ peripheral: CBPeripheral, didUpdateValueFor characteristic: CBCharacteristic, error: Error?) {


}


to read values from a Bluetooth temperature monitor.


After a while reading just stops.


I can't work out why?

Replies

Could you show more code, notably how and where you call readValue ?


From doc

This method is invoked when your app calls the

readValue(for:)
method, or when the peripheral notifies your app that the value of the characteristic for which notifications and indications are enabled (via a successful call to
setNotifyValue(_:for:)
) has changed. If successful, the
error
parameter is
nil
. If unsuccessful, the
error
parameter returns the cause of the failure.

Thanks for the help.


This is where I'm reading from


func peripheral(_ peripheral: CBPeripheral, didUpdateValueFor characteristic: CBCharacteristic, error: Error?) {

if ((error) != nil) {

print("Error didUpdateValueFor: \(error!.localizedDescription)")

return

}

if peripheral.identifier != bleperipheral?.identifier { print("GOT DATA BUT NOT FOR ME"); return }

switch characteristic.uuid {

case SMASHTAG_DATA_UUID:

if let data = characteristic.value {

Data += data

Etc etc.



Its reading fine, but then just stops.