RxBluetoothKit | iOS & OSX Bluetooth library for RxSwift
kandi X-RAY | RxBluetoothKit Summary
kandi X-RAY | RxBluetoothKit Summary
RxBluetoothKit is a Bluetooth library that makes interaction with BLE devices much more pleasant. It's backed by RxSwift and CoreBluetooth and it provides nice API, for both Central and Peripheral modes. All to work with and make your code more readable, reliable and easier to maintain.
Support
Quality
Security
License
Reuse
Top functions reviewed by kandi - BETA
Currently covering the most popular Java, JavaScript and Python libraries. See a Sample of RxBluetoothKit
RxBluetoothKit Key Features
RxBluetoothKit Examples and Code Snippets
Community Discussions
Trending Discussions on RxBluetoothKit
QUESTION
Trying to scan for Bluetooth
peripherals
using RxBluetoothKit
I get an error
called
..."Ambiguous reference to member '==' using this code:
ANSWER
Answered 2020-Apr-03 at 13:22The problem is a type mismatch. The return type of function is Observable<[BluetoothState]>, but inside flatMap return type is Observable<BlePeripheral>
QUESTION
I am currently developing a xplattform Android/iOS App and evaluating, if iOS devices using RxBluetoothKit can communicate with Android devices running RxAndroidBle from Polidea GitHub?
I already looked through the FAQ, Stackoverflow and Gitter questions, but could not find a precise answer.
I am quite sure, that a communication should be possible, but I'd love to have a confirmation from someone who is not a total noob in BLE like me.
...ANSWER
Answered 2019-Jan-26 at 00:50BLE(Bluetooth Low Energy)
is a network technology designed by Bluetooth SIG
and adopted by many platforms (iOS
, Android
, Windows
, etc). The technology is independent of the Reactive Extensions(Rx)
frameworks you mentioned. The Rx
frameworks just supply a FRP(Functional Reactive Programming)
interface to the technology. So RxBluetoothKit
is basically a wrapper around Apple
's Core BlueTooth
framework, providing the Rx
features. According to Wikipedia
, BLE
is supported by iOS 5
and later as well as Android 4.3
and later. You can find the specification here Bluetooth Core Specification V4.0
QUESTION
Background:
I am using the RxAndroidBle library and have a requirement to quickly (as possible) connect to multiple devices at a time and start communicating. I used the RxBluetoothKit for iOS, and have started to use RxAndroidBle on my Pixel 2. This had worked as expected and I could establish connections to 6-8 devices, as required, in a few hundred milliseconds. However, broadening my testing to phones such as the Samsung S8 and Nexus 6P, it seems that establishing a single connection can now take upwards of 5-6 seconds instead of 50-60 millis. I will assume for the moment that that disparity is within the vendor-specific BT implementations. Ultimately, this means that connecting to, e.g., 5 devices now takes 30 seconds instead of < 1 second.
Question:
What I understand from the documentation and other questions asked, RxAndroidBle queues all scanning, connecting, and communication requests and executes them serially to be safe and maintain stability based on the variety of Bluetooth implementations in the Android ecosystem. However, is there currently a way to execute the requests (namely, connecting) in parallel to accept this risk and potentially cut my total time to establish multiple connections down to whichever device takes the longest to connect?
And side question: are there any ideas to diagnose what could possibly be taking 5 seconds to establish a connection with a device? Or do we simply need to accept that some phones will take that long in some instances?
...ANSWER
Answered 2018-Oct-11 at 15:59However, is there currently a way to execute the requests (namely, connecting) in parallel to accept this risk and potentially cut my total time to establish multiple connections down to whichever device takes the longest to connect?
Yes. You may try to establish connections using autoConnect=true
which would prevent locking the queue for longer than few milliseconds. The last connection should be started with autoConnect=false
to kick off a scan. Some stack implementations are handling this quite OK but your mileage may vary.
And side question: are there any ideas to diagnose what could possibly be taking 5 seconds to establish a connection with a device?
You can check the Bluetooth HCI snoop log. Also you may try using a BLE sniffer to check what is actually happening "on-air" (e.g. an nRF51 Development Kit).
Or do we simply need to accept that some phones will take that long in some instances?
This is also an option since usually there is little one can do about connecting time. From my experience BLE stack/firmware implementations are wildly different from each other.
QUESTION
I'm trying out RxBluetoothKit and one of the bullet point features is "Documentation", but the link for that leads to a page which is just a copy of the README with a sidebar saying "Error Parsing Pod Could not find Objective-C Classes."
The README is quite detailed, and the sample code is useful, but an API reference would be nice for the more tricky details. For example, the README has an example with this code:
...ANSWER
Answered 2017-Jan-11 at 09:27All of the documentation is written above the methods so while typing discoverServices in Xcode you should be able to click on method with options key and little popup will come up with formatted documentation. Our doc is formatted by the CocoaDocs - it appears that it has some problems. I'm working on fixing it - here you can find the issue Github issue
Community Discussions, Code Snippets contain sources that include Stack Exchange Network
Vulnerabilities
No vulnerabilities reported
Install RxBluetoothKit
Support
Reuse Trending Solutions
Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items
Find more librariesStay Updated
Subscribe to our newsletter for trending solutions and developer bootcamps
Share this Page