首页 > 其他分享 >蓝牙BLE开发——如何将二进制数据进行分包发送?

蓝牙BLE开发——如何将二进制数据进行分包发送?

时间:2024-09-16 15:53:11浏览次数:8  
标签:chunkSize 二进制 蓝牙 chunks let 分包 offset BLE array

如何将二进制数据进行分包发送

最近忙的比较少更新,中秋佳节即将来临,祝大家 中秋节快乐

  • 前段时间有个需求,读取.bin文件,完成设备升级功能…,记得当时读取文件大小约9万多个字节,必然少不了对传输数据进行分包的操作。
  • 今天分享如何对数据分割为所需的大小,如果没有别的需求的,就可以直接用于向设备写入数据即可;调用 writeBLECharacteristicValue 方法,具体蓝牙BLE交互流程等 可以查看我之前分享的文章,感谢大家,仅供参考;

/**
 * 分割二进制数组
 * array: 数组源
 * chunkSize: 分割大小
 */
function splitBinaryArray(array, chunkSize) {
  let offset = 0;
  let chunks = [];
  
  while (offset < array.length) {
    chunks.push(array.subarray(offset, Math.min(offset + chunkSize, array.length)));
    offset += chunkSize;
  }
  
  return chunks;
}

使用

// 假设二进制数组
let binaryArray = new Uint8Array([48, 96, 0, 32, 81, 107, 0, 8, 47, 124, 0, 8, 1, 107, 0, 8]);
// 假设每个分割后的数组大小为5
let chunks = splitBinaryArray(binaryArray, 5);

效果图

在这里插入图片描述

标签:chunkSize,二进制,蓝牙,chunks,let,分包,offset,BLE,array
From: https://blog.csdn.net/Smile_ping/article/details/142303007

相关文章

  • 【油猴脚本】00008 案例 Tampermonkey油猴脚本,动态渲染表格-实现页面动态-添加表格列,
    前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏+关注哦......
  • Cortex-A7:__disable_irq和GIC_DisableIRQ、__enable_irq和GIC_EnableIRQ的区别(2)——AP
    0相关资料ARM®GenericInterruptControllerArchitectureversion2.0.pdf1API测试对比1.1__disable_irq同时GIC_DisableIRQ验证程序如下:voidgic_test(void){__disable_irq();GIC_DisableIRQ(UART4_IRQn);}测试结果:所有中断都无法响应。1.2_......
  • FVFL: A Flexible and Verifiable Privacy-Preserving Federated Learning Scheme--FV
    FVFL:AFlexibleandVerifiablePrivacy-PreservingFederatedLearningScheme--FVFL:一种灵活且可验证的隐私保护联邦学习方案来源导读AbstractIntroductionProblemStatementA.ProblemDefinitionB.ThreatModelandGoalsPreliminariesA.FederatedLearning(......
  • 一款类excel可进行显示、在线编辑的纯js表格TableShow控件
        在进行前端显示设计时,传统的方法是以分页显示,逐条提取后修改及保存,非常不利于用户连贯阅读及在线修改。因此,本人将类似excel的一些table表格在线卷动显示、修改及集中保存功能进行了尝试,封装成了一个纯js控件,只通过一句代码进行调用,将数据库查询结果集进行显示和添......
  • 使用micropython设计STM32蓝牙智能小车
    1、前言    最近在使用micropython来使用STM32F411CEU6TR,给我的感觉是:没有像使用c语言那样的自由,有一些引脚不能够自主设计,不触及底层代码,但是对于初学者来说非常友好,可操作性大大提高,各种代码的使用接近口语,方便使用。2、软件的使用    一个是MU,这个对于有......
  • [BJDCTF2020]Cookie is so stable
    首先这题flag模块有个登录页面抓包可以看到user=123,最后会返回hello123,这里就很像ssti注入,输入user={{2*3}}最后也是返回成功了,而且处理器是php,常见模块有:twig,smarty,blade输入user={{_self.env.registerUndefinedFilterCallback("exec")}}{{_self.env.getFilter("id")}}......
  • JAVA进阶-set,Comparable排序,数据结构-树
    day07-set,Comparable排序,数据结构-树泛型Set概述和特点TreeSet集合概述和特点Comparable排序自然排序Comparable的使用使用空参构造创建TreeSet集合自定义Student类实现Comparable接口重写里面的comparaTo方法自然排序简单原理图比较器排序Compara......
  • linux base epel extras docker-ce-stable
    ‌base、epel、extras、updates和docker-ce-stable是Linux软件仓库的名称,用于管理软件包。‌‌base‌:这是CentOS或RHEL系统自带的软件仓库,包含了系统自带的软件包。‌epel‌:EPEL(ExtraPackagesforEnterpriseLinux)是一个为EnterpriseLinux(包括CentOS和RHEL)提供的免费、高......
  • bfs与dfs ,全球变暖——蓝桥problems178
    问题描述:........##.....##........##...####....###........有一张还以N*N的像素照片,“.”表示海洋,“#”表示陆地,其中上下左右能连在一起的陆地称作岛屿,例如上图有两座岛屿,由于全球气候变暖,靠经海洋的陆地会被淹没,问图中有多少座岛屿会被完全淹没..........................
  • Mysql用optimize table 优化
    一、optimizetable会重组表和索引数据,磁盘空间被回收:1、创建临时表:与原表结构相同;2、复制数据:将原表数据复制到临时表中;3、优化数表:复制时,MySQL会重新整理和重组数据,去除碎片,提高数据连续性;4、重命名表:将临时表重命名为原表。optimizetableyour_table;二、查看表占用情况:......