You're Invited:Meet the Socket Team at BlackHat and DEF CON in Las Vegas, Aug 4-6.RSVP
Socket
Book a DemoInstallSign in
Socket

mbed-js-st-ble

Package Overview
Dependencies
Maintainers
1
Versions
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

mbed-js-st-ble

JavaScript library for BLE on Mbed OS

1.0.0
latest
Source
npm
Version published
Weekly downloads
2
100%
Maintainers
1
Weekly downloads
 
Created
Source

mbed BLE API for JerryScript

This library exposes the mbed BLE API to JerryScript targets forked from mbed-js-ble

The following objects are exposed:

  • BLEDevice - holds reference to the Bluetooth stack.
  • BLEService - references a GATT service.
  • BLECharacteristic - references a GATT characteristic.

Usage

// instantiate BLEDevice, only do this once
var ble = BLEDevice();

// takes in: characteristic UUID (16 bit only), array of properties (r/w/n), data size
var characteristic = BLECharacteristic('9101', ['read', 'write', 'notify'], 1);
// takes in: service UUID (16 bit only), array of BLECharacteristic objects
var service = BLEService('9100', [ characteristic ]);

// ready callback, wait before interacting with the API
ble.ready(function() {
    print("ble is ready");

    // takes in an array of BLEService objects
    ble.addServices([
        service
    ]);
    // takes: name to advertise, array of UUIDs (strings), advertisement interval (default: 1000)
    ble.startAdvertising("YOUR_NAME", [
        service.getUUID()
    ], 1000);
});

// connection callback
ble.onConnection(function() {
    print("GATT connection established");
});

// disconnection callback
ble.onDisconnection(function() {
    print("GATT disconnected, restarting advertisements");

    // call without parameters to use the last used set
    ble.startAdvertising();
});

// is connected? returns Boolean
print("BLE is connected? " + ble.isConnected());

Interacting with characteristics

// write to a characteristic
characteristic.write([ 0x98, 0x37 ]);

// reading a characteristic (returns an array)
var arr = characteristic.read();
print("Length is " + arr.length + ", first element is " + arr[0]);

// receiving updates when written over GATT
characteristic.onUpdate(function (newValue) {
    // newValue is an array (same value as read() returns)
    print("Updated! New value is " + newValue.length + ", first element is " + newValue[0]);
});

Fork Details

Implememted support for 128-bit UUIDs

Examples:


// BLECharacteristic
// takes in: characteristic UUID (16 bit or 128 bit), array of properties (r/w/n), data size
characteristic = BLECharacteristic('XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX', ['read', 'write', 'notify'], 1);
characteristic = BLECharacteristic('9100', ['read', 'write', 'notify'], 1);

// BLEService
// takes in: characteristic UUID (16 bit or 128 bit), array of characteristics
service = BLEService('9100', [ characteristic ]);
service = BLEService('XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX', [ characteristic ]);

Implemented Long UUID support in BLEService.GetUUID()

    uuid = service.GetUUID()

Added Manufacturer info in the startAdveritising method:

// Valid methods
// takes: name to advertise, array of UUIDs (strings)
BLE ble = BLEDevice();
ble.startAdvertising('advertisingName', [ service.getUUID() ]);

// takes: name to advertise, array of UUIDs (strings), advertisement interval (default: 1000),
ble.startAdvertising('advertisingName', [ service.getUUID() ], 100);

// takes: name to advertise, array of UUIDs (strings), advertisement interval (default: 1000), Manufacturer's info
ble.startAdvertising('advertisingName', [ service.getUUID() ], 100, '018000E00000');

// takes: name to advertise, array of UUIDs (strings), Manufacturer's info
ble.startAdvertising('advertisingName', [ service.getUUID() ], '018000E00000');

Keywords

mbed

FAQs

Package last updated on 24 Apr 2018

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts