Offset is outside the bounds of the DataView

JavaScript与二进制数据的恩怨情仇 展开介绍关于 JavaScript 和二进制数据的千丝万缕... 阅读详情
AI摘要

本文介绍了在微信小程序开发中遇到的蓝牙通信错误:OffsetisoutsidetheboundsoftheDataView。问题源于协议指令长度不足导致的ArrayBuffer创建异常。解决方案是确保协议指令长度为整数,通过检查count是否有小数点并进行适当调整,如加1或四舍五入。修复后的代码示例展示了如何正确处理这种情况。

前言

在做微信小程序开发,向蓝牙发送信息时,遇到这样一个错误 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 
避坑指南:Houdini RBD约束那些‘反直觉’的设定与高效工作流 本文深入解析Houdini RBD约束系统中的常见陷阱与高效解决方案,涵盖Overwrite with SOP参数误区、Pack内存优化、约束类型选型及VEX预处理技巧。通过实战案例展示如何提升解算速度300%,并分享影视级约束应用如多段约束实现和动态强度控制,帮助用户避开反直觉设定,掌握专业工作流。 阅读详情

相关推荐

Rust+WebAssembly实战:5步优化前端3D粒子系统性能

WebAssembly(WASM)作为一种可在现代浏览器中运行的二进制指令格式,为Web应用带来了接近原生的执行性能。其核心原理在于将C/C++/Rust等系统级语言编译成紧凑的字节码,在浏览器沙箱中高效运行,从而突破JavaScript在密集计算场景的性能瓶颈。这项技术的核心价值在于能够将CPU密集型任务(如物理模拟、图像处理、3D数学运算)从JavaScript主线程卸载,实现显著的性能提升,尤其适用于在线游戏、科学可视化、音视频编辑等高性能Web应用。本文以3D粒子系统优化为具体场景,详细解析如何通过

weixin_34056162的博客 319

ubuntu22.04 安装部署 openclaw

ubuntu22.04 安装部署 openclaw

nalanxiaoxiao2011的博客 975

golang任意代码免杀绕过火绒+电脑管家

火绒和电脑管家主要以静态规则为主,但是有时候静态杀起来也挺让人奔溃的,这边分享一下如何拿捏火绒和电脑管家本文主要介绍如何通过garble进行混淆编译来绕过火绒,garble也可以绕过其他杀软,但是对火绒和电脑管家特别有效果,以火绒为例 下面来对比一下golang原生和garble混淆编译后得差距来一个很原始的的shellcode loader代码,将原始shellcode base64后就进行加载执行。

2301_79571829的博客 1533

手把手教你用海康威视相机+DLP4500搭建双目结构光系统(附避坑指南)

本文详细介绍了如何使用海康威视相机和DLP4500搭建双目结构光三维测量系统,涵盖硬件选型、系统搭建、双目标定及三维重建等关键步骤。特别针对预算有限的开发者和实验室团队,提供实用的避坑指南和优化技巧,帮助实现0.02mm的高精度测量。

weixin_42526087的博客 462

小白投资理财 - 解读威廉分形指标 Williams Fractals

威廉分形指标用于识别价格趋势中的关键点,帮助判断支撑位和阻力位。

wumingxiaoyao的博客 4336

别再只改config了!YOLO/RT-DETR多通道输入实战:数据集结构、多卡训练与参数优先级避坑指南

本文详细解析了YOLO/RT-DETR模型在多通道输入(如8通道多光谱图像)中的实战应用,涵盖数据集结构优化、数据加载器改造、模型参数调优及多卡训练配置。针对常见的多通道输入报错问题,提供了系统的解决方案和性能优化技巧,帮助开发者高效实现非标准数据格式的适配与训练。

weixin_30955617的博客 397

关于YOLOv8的面试题(持续更新中...)

本章将计划更新关于YOLOv8中可能会成为面试题的关键技术点,计划持续更新,可能想到合适的问题我就会整理下更新到本博客中。

ice 4165

YOLO项目部署:从Python脚本到Docker容器的企业级交付全流程

YOLO模型企业级Docker部署方案 核心挑战 环境一致性:解决"本地能跑,服务器崩掉"问题 可扩展性:支持单实例到多实例扩展 稳定性:确保99.9%可用性 部署流程 项目改造:模块化代码,分离配置 Docker镜像:支持CPU/GPU环境 API服务:封装推理逻辑 监控告警:实现自动化运维 技术方案 需求 解决方案 环境一致性 Docker镜像+依赖冻结 可扩展性 K8s+负载均衡 稳定性 健康检查+自动重启 项目结构 模块化代码组织 外部化配置管理 精确依赖版本控制 摘要重点:通过

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1230

基于BEV(鸟瞰图)的3D检测:PointPillars与CenterPoint

基于BEV(鸟瞰图)的3D检测:PointPillars与CenterPoint​ ,人工智能,计算机视觉,大模型,AI,本文围绕基于BEV的3D检测,解析了PointPillars与CenterPoint两种算法。PointPillars用点柱特征编码网络处理点云,通过2D卷积网络提取特征,检测头为解耦头;CenterPoint将三维物体表为点,分两阶段检测,先找中心点及属性,再细化预测。两者都可借特定骨干网生成BEV特征图且基于BEV检测,但检测头设计和物体表示方式不同。

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 27万+

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

上一篇: 从0开始使用微前端(qiankun)
下一篇: 计算机网络原理IP计算总结
An_s
博客等级 码龄10年 665粉丝 363原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

An_s

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值