该应用比较特殊:是用于微信小程序对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