So far, noble
has required an
alternate Bluetooth driver
on Windows, due to lack of good BLE support in the Windows Bluetooth stack. But the Windows 10
Creators Update has
finally improved the BLE support.
This project is an implementation of bindings for noble
using that newly available
functionality in Windows 10.
Simply require noble-uwp
instead of noble
:
const noble = require('noble-uwp');
Then use it in the same way as the regular noble
.
On non-Windows platforms, the benavior is unchanged from noble
, while on Windows the UWP bindings are used instead
of noble
's Bluetooth HCI bindings.
Currently using electron-rebuild does not work. In order to build this module for electron it has to be rebuilt using the following command:
npm rebuild --runtime=electron --target=1.7.1 --arch=x64 --rebuild --disturl=https://atom.io/download/electron --build_from_source=true
adjust the target version to the version of electron you are running (1.7.1 works for electron 1.7.0 and up)
So far, testing has been done with a TI SensorTag.
First, make sure you have the necessary prerequisites for building Node.js native modules. Then, make sure a SensorTag is powered on (light is blinking) and within range, and use the following commands to set up and run tests from Windows PowerShell:
git clone https://github.com/sandeepmistry/node-sensortag
cd node-sensortag
npm install
npm install noble-uwp
node -e "var fs = require('fs'), `
f = 'node_modules/noble-device/lib/util.js'; `
fs.writeFileSync(f, fs.readFileSync(f).toString().replace(`
'require(\'noble\')', 'require(\'noble-uwp\')'))"
$env:DEBUG="noble-uwp"
node test.js
Notes:
node-gyp
; please be patient.noble-device
source file is necessary to get it to use
the noble-uwp
package instead of regular noble
.DEBUG
environment variable setting is optional; set it if you want to see verbose console
output from noble-uwp
.The following functionality is working:
The following functionality is not yet implemented: