-
Notifications
You must be signed in to change notification settings - Fork 85
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Timeout exception and disconnect during BLE write for iOS #661
Comments
The workaround for now, is to make the connection stateless, i.e. connect before each read and disconnect right after, same for write. That way read and write works without timeouts almost all the time, and since we do not keep the connection open, we also do not get disconnected when timeout occurs. This works okay for us, since we don't use BLE notifications, but there must be some bug in the framework related to iOS and timeouts. |
Do you know if this behavior is specifically happening when connecting to a device with BlueZ version 5.55 or any BlueZ version? |
It looks like this issue didn't get the information it needed, so I'll close it for now. If I made a mistake, sorry! I am just a bot. Have a great day! |
@pwespi It for sure happens often with 5.55 but I guess it happens for any version below 5.60, but the problem is that these newer versions of BlueZ are only available for Debian 12 and above. It works perfectly fine on Android with any version however. I think this issue should be reponed again, since not solved. |
Describe the bug
Depending on version of BLE server (different versions of BlueZ), BLE write on same iOS device behaves different. The problem is that against some BLE servers the behavior is incorrect, where we always gets a timeout exception, even though the data is actually written successfully. Increasing the timeout for iOS does not make any difference, except that it takes longer for the timeout to occur, i.e. exception to get caught.
Reading always seems to work immediately after connecting, but waiting a few seconds and reading again just causes timeout exception to occur and a device disconnect as result. Does not make a difference increasing the timeout option.
Connecting is never a problem.
It works as expected using Android against the same BLE server and BlueZ version.
Seems a bit related to #659, regarding timeout and device disconnect.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
A successful BLE write without timeout exception.
Plugin version:
Smartphone (please complete the following information):
The text was updated successfully, but these errors were encountered: