Offset is outside the bounds of the DataView
前言
在做微信小程序开发,向蓝牙发送信息时,遇到这样一个错误 Offset is outside the bounds of the DataView
开始
hexStringToArrayBuffer(str) {console.log('开始咋转化' + str)var count = str.length / 2;console.log(count)let buffer = new ArrayBuffer(count);let dataView = new DataView(buffer);for (var i = 0; i < count; i++) {var curCharCode = parseInt(str.substr(i * 2, 2), 16);dataView.setUint8(i, curCharCode);}return buffer;}let data = "31940000000000000000119400041960000"
console.log(hexStringToArrayBuffer(data))
问题出现
注意!count长度为17.5,导致去创建ArrayBuffer数组的时候出现问题。也就是协议指令长度不够除2
解决方法
1.需要协议指令自行补充长度,count必须是整数
2.前端创建ArrayBuffer的时候四舍五入,如下
hexStringToArrayBuffer(str) {console.log('开始咋转化'+str)var count = str.length / 2;console.log(count)if (count.toString().indexOf('.') != -1) {count = parseInt(count) + 1 // 有.5就加 1count = parseInt(count) // 或者不加}console.log(count)let buffer = new ArrayBuffer(count);let dataView = new DataView(buffer);for (var i = 0; i < count; i++) {var curCharCode = parseInt(str.substr(i * 2, 2), 16);dataView.setUint8(i, curCharCode);}return buffer;}
let data = "31940000000000000000119400041960000"
console.log(hexStringToArrayBuffer(data))
Offset is outside the bounds of the DataView相关推荐
- Offset is outside the bounds of the DataView;at api notifyBLECharacteristicValueChanged success call
在做微信小程序开发,向蓝牙发送信息时,遇到这样一个错误 错误解释: 数组下标越界 报错原因: 我在设置ArrayBuffer时,直接设置过少,导致在循环通过蓝牙传递信息时,造成数组下标越界. 解决办法 ...
- untiy发布webgl开发记录
安装Unity3d并导入unitypackage 版本选择: untiy发布webgl经测试 2020版本系列的PC端网页打开都会报错,不能正常打开: 2019系列的发布后PC端可以正常打开并运行,一 ...
- Unity WebGL错误集锦
ips: 0 Unity的PlayerSettings的otherSettings或者Publish Settings里面的Enable Exceptions里面选择Full StackTrace , ...
- JavaScript与二进制数据的恩怨情仇
文章出自个人博客https://knightyun.github.io/2020/03/09/js-binary-data,转载请申明 编程江湖,终日血雨腥风,论及二进制数据,又有多少豪杰谈笑风生,风 ...
- 上传图片的时候,ios手机的图片会旋转90°
1.问题:在html5中利用canvas对上传图片压缩的时候,ios手机竖着拍照时,图片会旋转90°,其他情况正常. 2.解决方法:获取拍照角度,对Ios竖着拍的照片进行角度处理 3.利用exif.j ...
- golang实现给图片加水印
2019独角兽企业重金招聘Python工程师标准>>> 最近跟在写golang图片加水印的方法,这里用的是一些基本的功能. package mainimport ("fmt ...
- 掌握 Linux 调试技术【转】
转自:https://www.ibm.com/developerworks/cn/linux/sdk/l-debug/index.html 您可以用各种方法来监控运行着的用户空间程序:可以为其运行调试 ...
- 温故而知新,UI学习中的大部分控件及常用的基础都整理了一下,很长~~~~~~~~~很长!!!!!!!...
生命周期,生命周期,生命周期,重要的事要说三遍,战五渣的我最常用的好像只有Viewwillappear吧 - (BOOL)application:(UIApplication *)applicatio ...
- ios图片轮播 (基础篇——UIScrollView实现方式)
简述 : 人生不发返程的车票,一旦出发了,决不能返回. 人生只有一次,无悔的人生才是成功的人生,不要期待与奢望 "下一次" 如何. 过去的人生中,我们的路程中可能充满了欢笑与忧伤, ...
- Linux内核 eBPF:Hacking Linux USDT with Ftrace
Linux内核 eBPF Hacking Linux USDT with Ftrace Hacking Linux USDT with Ftrace usdt (ftrace) · GitHub lt ...
最新文章
- 安卓开发20:动画之Animation 详细使用-主要通过java代码实现动画效果
- JAVA关系表达式解析微引擎
- 全球大学生超级计算机竞赛排名,清华团队蝉联世界大学生超级计算机竞赛总冠军...
- SpringBoot 上传文件(单个、多个文件)
- 解决Homebrew报错Error: Failure while executing; git clone https://github.com/Homebrew/homebrew-core....
- B站发布2020年一季度财报:月活用户达1.72亿,日活用户突破5000万
- leetcode 刷题指南
- python微博接口_Python使用新浪微博API发送微博的例子
- VX线报机器人的使用
- Rainmeter监控GPU
- java IO流简述
- oracle RAC 集群无法启动
- 3D-CVF论文解读
- java多线程12:阻塞队列Queue
- 亲身体验 北京-环球嘉年华!
- 如何查看java对象所占内存大小
- Java EE结构理解 与Dao模式 no7.
- 用 Python 快速获取基金持仓增减情况 | 更新版
- 邵老师计算机,《计算机公课核心讲义》—邵老师主编.doc
- 依生生物拟赴港上市:旗下狂犬病疫苗生产中断5年,再度陷入亏损