搜索插件、代码仓与 APP 分类

插件详情v3.0.0

flutter_nordic_dfu

此库允许您对 Nordic Semiconductor 的 nrf51 或 nrf52 芯片执行设备固件更新 (DFU)。目前仅支持 Android。

AndroidiOS
近 30 天下载
76
喜欢数
24
Pub 分数
135

安装插件

flutter pub add flutter_nordic_dfu

插件介绍

基于插件公开信息、社区数据与项目使用情况整理的选型参考。

flutter_nordic_dfu 是一个 Flutter 包,可为 Nordic Semiconductor 的 nRF51 和 nRF52 芯片启用设备固件更新(DFU)。它可在 Android 设备上实现通过空中方式的固件更新,利用 Nordic DFU 协议。该包与针对 Android 的 Flutter 应用无缝集成,提供简单易用的 API 来启动和管理固件升级。尽管目前仅限于 Android,但可通过蓝牙低功耗实现安全可靠的固件传输。该库非常适合需要远程设备维护的物联网应用。

适合场景

  • BLE设备的远程固件更新
  • 在野外更新基于nRF5x的硬件
  • Android环境中的物联网设备管理
  • 空中设备维护
  • 嵌入式系统固件升级

主要特点

  • 支持 nRF51 和 nRF52 芯片
  • 仅限 Android 的实现
  • 蓝牙低能耗集成
  • 安全固件传输
  • 简单的 Flutter API
  • 北欧DFU协议合规性

适合对象

  • 使用nRF芯片的物联网开发者
  • 面向Android的BLE应用
  • 固件更新自动化
  • 硬件产品维护人员
  • 嵌入式设备的移动应用开发者

使用建议

  • 仅限 Android 平台
  • 需要兼容的nRF硬件
  • 无 iOS 支持
  • 需要蓝牙权限
  • 固件文件格式必须适用于 Nordic DFU

原始 README

以下为关联源码仓库的 README 原文快照,最新内容请访问源码仓库。

flutter-nordic-dfu pub package

This library allows you to do a Device Firmware Update (DFU) of your nrf51 or nrf52 chip from Nordic Semiconductor. It works for Android and iOS fine.

This is the implementation of the reference "react-native-nordic-dfu"

For more info about the DFU process, see: Resources

Run Example-->Amazing

  1. Add your dfu zip file to example/assets/file.zip

  2. Run example project

  3. Scan device

  4. Start dfu

Usage

startDFU
Examples

You can pass an absolute file path or asset file to FlutterNordicDfu

Use absolute file path
/// You can define your ProgressListenerListener
await FlutterNordicDfu.startDfu(
            'EB:75:AD:E3:CA:CF', '/file/to/zip/path/file.zip',
            progressListener: ProgressListenerListener(),
         );


class ProgressListenerListener extends DfuProgressListenerAdapter {
  @override
  void onProgressChanged(String deviceAddress, int percent, double speed,
      double avgSpeed, int currentPart, int partsTotal) {
    super.onProgressChanged(
        deviceAddress, percent, speed, avgSpeed, currentPart, partsTotal);
    print('deviceAddress: $deviceAddress, percent: $percent');
  }
}

/// Or you can use DefaultDfuProgressListenerAdapter
await FlutterNordicDfu.startDfu(
      'EB:75:AD:E3:CA:CF',
      'assets/file.zip',
      fileInAsset: true,
      progressListener:
          DefaultDfuProgressListenerAdapter(onProgressChangedHandle: (
        deviceAddress,
        percent,
        speed,
        avgSpeed,
        currentPart,
        partsTotal,
      ) {
        print('deviceAddress: $deviceAddress, percent: $percent');
      }),
    );
Use asset file path
/// just set [fileInAsset] true
await FlutterNordicDfu.startDfu(
            'EB:75:AD:E3:CA:CF', 'assets/file.zip',
            progressListener: ProgressListenerListener(),
            fileInAsset: true,
         );

class ProgressListenerListener extends DfuProgressListenerAdapter {
  @override
  void onProgressChanged(String deviceAddress, int percent, double speed,
      double avgSpeed, int currentPart, int partsTotal) {
    super.onProgressChanged(
        deviceAddress, percent, speed, avgSpeed, currentPart, partsTotal);
    print('deviceAddress: $deviceAddress, percent: $percent');
  }
}

Resources

所属分类

源码仓库

使用此插件的项目

暂无相关数据。