bleat

Abstraction library following Web Bluetooth specification for hiding differences in JavaScript BLE APIs

Usage no npm install needed!

<script type="module">
  import bleat from 'https://cdn.skypack.dev/bleat';
</script>

README

bleat


Circle CI Bower npm Licence MIT

This library has been deprecated in favour of webbluetooth.

Please upgrade your Node.js applications accordingly. Evothings users should continue to use bleat as a legacy library.

Bleat (Bluetooth Low Energy Abstraction Tool) provides a simplified BLE layer which uses adapters to abstract the usage of BLE in JavaScript on different platforms.

APIs

Bleat has 2 APIs:

Installation

To install the library, either clone or copy the files to your project or use a package manager:

$ npm install bleat

-or-

$ bower install bleat

Usage

The bluetooth.helpers.js file contains general helper objects and functions.

The api.<api>.js files each offer a BLE API.

The adapter.<platform>.js files each represent an adapter targetting a specific BLE engine, the adapter-template.js file is an empty template to ease creation of a new adapter.

The <api>.<adapter>.min.js files are minified versions of the BLE APIs including the helpers and a single adapter.

Files follow the UMDJS specification, so should work with CommonJS (such as node.js), AMD (such as RequireJS) and plain JavaScript projects.

Refer to the example_<adapter>_<api> files and folders for simple examples of how to use each combination.

CommonJS (node.js)

Simply require it up, specifying the api you wish to use:

var bleat = require('bleat').classic;

-or-

var bleat = require('bleat').webbluetooth;

AMD (RequireJS)

To use bleat with RequireJS, set the requirejs.config to load your API of choice as bleat and add a dependency on your adapter of choice:

requirejs.config({
    baseUrl: 'path/to/bleat',
    paths: {
        bleat: 'api.classic',
        adapter: 'adapter.evothings'
    },
    shim: {
        bleat: {
            deps: ['adapter']
        }
    }
});

You can then use bleat as follows:

require(['bleat'], function(bleat) {
    // Use bleat here
});

Plain JavaScript (globals)

Include the bluetooth.helpers.js file, then the bleat api file you wish to use and finally the adapter file you wish to use:

<script src="path/to/bluetooth.helpers.js"></script>
<script src="path/to/api.classic.js"></script>
<script src="path/to/adapter.evothings.js"></script>

Alternatively, you can just include the minified file which contains the API and adapter you wish to use:

<script src="path/to/web-bluetooth.evothings.min.js"></script>

A global object root.bleat will then be available to use.