对于buffer的一些应用

之前写代码没有对buffer进行处理,但这次需要对蓝牙返回的buffer进行一些简单及拼接、组合、排序,所以对buffer了解了一下 整理一下 ,以下只是我应用的一些方法:

一种是转换16进制的方法:

	对buffer的解析一般直接转成16进制数据:
function buf2hex(buffer) { // buffer is an ArrayBuffer
      return Array.prototype.map.call(new Uint8Array(buffer), x => ('00' + x.toString(16)).slice(-2)).join('');
    }
返回的是一个16进制的字符串。一般蓝牙命令会用16进制表示;

另一种是JavaScript中的 DataView 对象进行处理

const buffer = new ArrayBuffer(16);

// Create a couple of views
const view1 = new DataView(buffer);
const view2 = new DataView(buffer, 12, 4); //from byte 12 for the next 4 bytes
view1.setInt8(12, 42); // put 42 in slot 12

console.log(view2.getInt8(0));

DataView 取值可以使用 DataView 的原生方法 mdn地址

常用的是getInt8 getInt16 等方法,及与buffer 的转换 直接 .buffer 即可 ;

拼接buffer 首先创建一个向压迫长度的 DataView ,然后调用setInt8(或其他)方法即可;

setInt16 占用两个位置 (应该是 ,自测无误)等等。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

I_joker_T

你的鼓励是我前进的动力

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

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

打赏作者

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

抵扣说明:

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

余额充值