微信小程序JavaScript蓝牙BLE16进制数组CRC32校验源代码

本文讲述了在微信小程序中如何使用wx.downloadFile下载NRF的BLE设备的固件,包括处理.js中自动转为字符串的问题,以及如何将字符串转换为二进制数组,并使用CRC32校验进行数据完整性验证的过程。
摘要由CSDN通过智能技术生成

该应用比较特殊:是用于微信小程序对NRF的BLE设备进行DFU(OTA)升级固件

小程序从服务器(wx.downloadFile)下载.dat和.bin的二进制文件,但JS(wx.getFileSystemManager().readFile)读出来的会自动转化成String

思路:

1.先把String转化为 二进制或10进制或十六进制 然后分别存放进数组Array

2.用读表法做CRC32校验,那就先创建要读的那个《表(table[])》

3.遍历数组进行CRC校验

1实际是0xAA,0xBB,0xCC,0xDD,0xEE的内容被JS转化成字符串‘aabbccddee’

  hex_str2arr_int: function(hex_str) {
    let array = hex_str.match(/[\da-f]{2}/gi).map(
      function (h) {
        return parseInt(h, 16)
      }
    )
    return array;
  },

通过上面代码,我们得到[0xAA,0xBB,0xCC,0xDD,0xEE]的数组,即我们已经把.dat和.bin二进制文件转化为二进制的数组

2.用读表法做CRC32校验,那就先创建要读的那个《表(table[])》,网上有很多教程是直接给出整个表的数据,但我更喜欢简洁,费点算力

var table = [
    	0x00000000, 0x77073096, 0xEE0E612C, 0x99
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值