UNPKG

@nativescript-community/nordic-dfu

Version:

A NativeScript plugin for performing Nordic Bluetooth device firmware updates.

57 lines (41 loc) 1.77 kB
# @nativescript-community/nordic-dfu A NativeScript plugin that integrates Nordic Semiconductor’s DFU (Device Firmware Update) library, enabling seamless Bluetooth OTA firmware updates for compatible BLE devices. Built using Nordic’s official [android](https://github.com/NordicSemiconductor/Android-DFU-Library) and [iOS](https://github.com/NordicSemiconductor/IOS-DFU-Library) DFU libraries, this plugin provides a native bridge for initiating and monitoring firmware updates across iOS and Android — fully accessible from JavaScript/TypeScript. ## Installation ```javascript npm install @nativescript-community/nordic-dfu ``` ## Usage Note: Apart from the standard BLE permissions, make sure to add the following in android manifest file: ```xml <uses-permission android:name="android.permission.FOREGROUND_SERVICE"/> <uses-permission android:name="android.permission.FOREGROUND_SERVICE_CONNECTED_DEVICE"/> ``` Sample: ```ts import { DFUInitiator, DfuProgressEventData, DfuStateChangedEventData } from '@nativescript-community/nordic-dfu'; const myDeviceUUID = 'a string representation of UUID/address'; const filePath = '/test/file.zip'; const initiator = new DFUInitiator(myDeviceUUID); initiator.on("DFUStateChanged", (args: DfuStateChangedEventData) => { if (args.state === DfuState.DFU_COMPLETED) { console.log("DFU completed!"); } }); initiator.on("DFUProgress", (args: DfuProgressEventData) => { console.log(`Progress: ${args.percent}%`); }); const controller = initiator.start(filePath); // Use controller to manipulate the procedure setTimeout(() => { controller.pause(); }, 2000); setTimeout(() => { controller.resume(); }, 4000); setTimeout(() => { controller.abort(); }, 5000); ``` ## License Apache License Version 2.0