SimpleBLE
brainflow
Our great sponsors
SimpleBLE | brainflow | |
---|---|---|
12 | 13 | |
560 | 1,197 | |
10.7% | 2.3% | |
6.5 | 8.2 | |
3 days ago | 3 days ago | |
C++ | C++ | |
GNU General Public License v3.0 or later | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
SimpleBLE
-
bleak VS SimpleBLE - a user suggested alternative
2 projects | 3 Jul 2023
BLE library for python without asyncio
- Any way to force which bluetooth adapter to use for an connection?
-
Guidance Required: Kotlin bindings for a C++ library
I'm the creator of SimpleBLE, a cross-platform library to use Bluetooth on desktop environments (and hopefully mobile soon), and I'm currently looking into adding Kotlin bindings. I how how to write JNI wrappers as I've done so in the past, but I'm having trouble understanding what's the best way to set up a Gradle project for it to be consumed by 3rd party users, considering that the C++ backend can be compiled with multiple "flavors" based on the target OS.
-
SimpleBLE v0.5.0 - Cross-platform Bluetooth library for Windows, Linux and MacOS/iOS
I do have a request to enable cross-compiling support, so I think I might go for it relatively soon. For reference, this is the issue to track on this topic: https://github.com/OpenBluetoothToolbox/SimpleBLE/issues/98
I've received this request multiple times, so I think it's important enough to make sure it's part of the v0.6 release. I've made an issue to track this, feel free to follow: https://github.com/OpenBluetoothToolbox/SimpleBLE
-
SimpleBLE - Cross-platform BLE library for Windows, Linux and MacOS/iOS
Fixed the incorrect URLs. My bad on the usage docs, when I wrote this I was referring to the examples folder in the repo. I made it slightly better with some more specific guidance: https://github.com/OpenBluetoothToolbox/SimpleBLE/blob/main/docs/usage.rst
For over a year I've been working on a cross-platform Bluetooth library called SimpleBLE, specifically designed for use in desktop environments with a very simple API, allowing developers to easily integrate it into their projects without much effort.
I do have a few examples showing how to enable notifications and writing to a characteristic. If you have any questions please reach out, I'll gladly help!
brainflow
- Code recommendations for the MUSE 2 using Python
-
SimpleBLE - Cross-platform BLE library for Windows, Linux and MacOS/iOS
About my current user base, I'd like to highlight we use SimpleBLE at my job, it has been integrated into BrainFlow, it is part of some new tools made by a large industrial automation company (whose name I cannot mention but rhymes with "Good product made by bees") and by a robot researcher in Germany.
-
Develop apps with biosensors and neurointerfaces
BrainFlow provides a uniform SDK to work with biosensors with a primary focus on neurointerfaces. It provides SDK for Python, Java, C#, C++, Matlab, R, Julia and Rust. Core part of BrainFlow is written in C\C++ and all bindings call methods from dynamic library. User API is uniform for all supported devices and allows you to develop device agnostic applications.
Website
-
BrainFlow
https://github.com/brainflow-dev/brainflow/blob/4.3.2/java-p... fails to close that InputStream, which leaks file handles every time that method is invoked. Even the javadoc shows the correct usage of wrapping the InputStream in a try-with-resources block https://docs.oracle.com/javase/8/docs/api/java/nio/file/File...
The line right above that one fails to check the return type for file.delete() as that is a _request_ to delete the file and may not succeed for any number of reasons that might interest the code. If the file fails to delete, it can be retried, or one can use file.renameTo to try and move the _name_ out of the way, even if the on-disk allocation still remains. Of course, one should similarly check the result of file.renameTo as it is also a request
Swallowing exceptions is a pet peeve of mine https://github.com/brainflow-dev/brainflow/blob/4.3.2/java-p... because (a) it doesn't even acknowledge that an exception occurred in the error message right below it, meaning if one wished to debug _why_ that error occurred, now one must either use a debugger or recompile to include that information. The method similarly does not disclose that the result may be null, and NullPointerExceptions are my other pet peeve since unless running on a bleeding edge JVM, the error message is always "NullPointerException: null" meaning it says absolutely nothing about what it was trying to do when it fell over
Kind of related to that, the javadoc for some of the further down methods say "throws WhateverError" but not _why_ or what influence the caller has over that outcome
That's as far as I looked before closing the tab and wondering if I should mention the file handle leak, since if you only found the repo, then telling you wouldn't accomplish anything. But if it was your repo, then raising your awareness might be helpful
Then, yes, of course I agree with the sibling comments that the code style is very, very distracting, but there's no way I would have bothered to comment in HN about code style since to each his/her own so long as I don't have to work in it :-)
What are some alternatives?
BioAmp-EXG-Pill - BioAmp EXG Pill is a small and elegant Analog Front End (AFE) board for BioPotential signal acquisition.
NeuroGloves - Using the Myo to play VR games using SteamVR
cmake-init-fetchcontent - Example for optionally vendoring using FetchContent
audiowmark - Audio Watermarking
SimpleBluez - A simple C++ wrapper around Bluez with a commercially-friendly licence.
ironbci - Open-Source Brain-Computer Interface, ADS1299 and STM32
gnss-sdr - GNSS-SDR, an open-source software-defined GNSS receiver
Kilosort - Fast spike sorting with drift correction for up to a thousand channels
bleak - A cross platform Bluetooth Low Energy Client for Python using asyncio
SimpleDBus - A simple C++ wrapper around DBus with a commercial-friendly licence.
3.eeg_recognation - Machine learning for Anonymous detection of an alcoholic by EEG signals
dcm2niix - dcm2nii DICOM to NIfTI converter: compiled versions available from NITRC