https://github.com/fido-alliance/noble-winrt
https://github.com/Timeular/noble-winrt
- Doesn't crash like
noble-uwp
when running for days. - Fixed the service uuid filter used in scan start.
- Faster discovery when only requesting one service. Old versions of noble-winrt and noble-uwp would request all services over BLE and then cut down to one, instead of only requesting one in the first place.
- Fix the connectable flag to update on every advertisement. Old versions would use the value from the first advert, and never update.
- Eliminate the local cache in this binding as windows has its own? Timeular#24
- Be able to pass instant errors into noble. Currently this cant be done, and the user will just have to rely on timeouts. abandonware/noble#135
- Become an official binding that lives in abandonware repo?
- Run
npm run clean
to get node-gyp ready, and to generate an .sln that can be opened in VS2019. Sometimes builds double in file size, and restarting like this brings them back down to ~504kb. - VS debug config can be set to run a node project that requires the debug build of the binding, to debug it in real time.
- Removing the inclusion of Noble. This is simply meant to be a binding that you use with your own Noble (@abandonware/noble recommended).
- Fixed some of the use of Windows BT cache based on info from https://docs.microsoft.com/en-us/uwp/api/windows.devices.bluetooth.bluetoothcachemode?view=winrt-19041
- Retaining local cache on disconnect. This gives perf improvments for my use case. Next step is to remove localc cache entirely.
- Removing prebuild, as I dont have time to prebuild binaries on my changes.
This is a rewrite of noble-uwp using the C++/WinRT API.
- Node.js v6.14.2 or later.
- Windows 10 build 10.0.15063 or later
- Windows 10 SDK build 10.0.17134.0
Simply require noble-winrt
instead of noble
:
const noble = require('noble-winrt');
On non-Windows platforms or Windows versions lower than 10.0.15063 this will use the regular noble implementation and on Windows version 10.0.15063 or later it will use the native binding using the C++/WinRT API.
Everything should work that also works with the regular noble bindings except:
- Writing/Reading to descriptor handles is not supported
- Broadcast is not supported