cordova-plugin-ble-nano-ota-updater

1.0.0 • Public • Published

cordova-plugin-ble-nano-ota-updater

A Cordova plugin that implements RedBear BLE Nano OTA update logic. Update algorithm is based on Android-nRF-Toolbox.

Dependencies

Usage

For more examples check example application.

Cordova Bluetooth LE Plugin must be initialized before calling the uploadFirmware method.

var BLENanoOTAUpdater = window.BLENanoOTAUpdater;

var device = {
    address: 'EC:E7:5E:FD:A9:66'
};

var firmwareFileBuf = [ /* .. */ ];

var updater = new BLENanoOTAUpdater( device, { logLevel: BLENanoOTAUpdater.LOG_LEVEL_DEBUG } );

updater
    .on( BLENanoOTAUpdater.EVENT_UPLOAD_PROGRESS, function( payload ) {
        console.log( 'Uploading image: ' + payload.progress + '%' );
    } )
    .on( BLENanoOTAUpdater.EVENT_UPDATE_STATE_CHANGE, function( payload ) {

        switch ( payload.state ) {
            case BLENanoOTAUpdater.STATE_CHECKING_PRECONDITIONS:
                console.log( 'Checking preconditions' );
                break;

            case BLENanoOTAUpdater.STATE_CONNECTING_TO_DEVICE:
                console.log( 'Connecting to device' );
                break;

            case BLENanoOTAUpdater.STATE_DISCOVERING_SERVICES:
                console.log( 'Discovering services' );
                break;

            case BLENanoOTAUpdater.STATE_SUBSCRIBING_FOR_NOTIFICATIONS:
                console.log( 'Subscribing for notifications' );
                break;

            case BLENanoOTAUpdater.STATE_STARTING_DFU:
                console.log( 'Starting DFU' );
                break;

            case BLENanoOTAUpdater.STATE_INITIALIZING_IMAGE_UPLOAD:
                console.log( 'Initializing image upload' );
                break;

            case BLENanoOTAUpdater.STATE_UPLOADING_IMAGE:
                console.log( 'Uploading image: 0%' );
                break;

            case BLENanoOTAUpdater.STATE_VALIDATING_UPLOADED_IMAGE:
                console.log( 'Validating uploaded image' );
                break;

            case BLENanoOTAUpdater.STATE_RESTARTING_DEVICE:
                console.log( 'Restarting device' );
                break;

            case BLENanoOTAUpdater.STATE_UNSUBSCRIBING_FOR_NOTIFICATIONS:
                console.log( 'Canceling subscription for notifications' );
                break;

            case BLENanoOTAUpdater.STATE_CLOSING_DEVICE_CONNECTION:
                console.log( 'Done!' );
                break;
        }
    } )
    .on( BLENanoOTAUpdater.EVENT_ERROR, function( err ) {
        console.log( 'Failed to upload firmware: ' + err );
    } );

updater.uploadFirmware( firmwareFileBuf );

License

This plugin is licensed under The MIT License. Some parts are licensed under different licenses. Please, check LICENSE-3RD-PARTY.md for details.

Package Sidebar

Install

npm i cordova-plugin-ble-nano-ota-updater

Weekly Downloads

3

Version

1.0.0

License

MIT

Last publish

Collaborators

  • cantireinnovations