RSSI Value occasionally gets stuck at 0 or 127.

We're running an app where the iPhone is Peripheral and Mac is Central. The big problem we run into is that the RSSI value sometimes becomes invalid. When this happens the application is still communicating and everything else seems to work, and the devices have not moved out of range. We're using the RSSI to approximate range, so we need the value, even though the communication between Central and Peripheral continues.


The value can go bad while the Peripheral app is in background or foreground and the phone is locked or not. This happens about once a day on one particular computer. Once the value goes bad, it stays bad until we restart the application on the computer. Calling cancelPeripheralConnection and reconnecting seems to allow us to reestablish the connection/RSSI value, but if we try to do that when the phone is locked or the app is in background on the phone, we're stuck and have no way to get back in touch with the Peripheral until the app is brought to the foreground. This isn't acceptable.


So far this only seems to happen with an older Mac, a 2012 MacBook Air, which has Bluetooth 4.0. All our other test machines are slightly more recent vintage so far, and they don't seem to get stuck in this mode.


We're sampling RSSI every 0.25 second.


Anyone have any thoughts?