Tag: gatt

BLE GATT:为什么在整数types中存储小数?

我正在学习蓝牙技术,特别是如何实现GATT特性规格,以便我可以编写外设驱动程序。 在几乎所有的规格中,他们都希望使用整型数据types来保存十进制值(当数据是十进制值时)。 例如, 循环功率测量规格规格将Pedal Power Balance存储到uint8 。 正如您所见, Pedal Power Balance值的分辨率为1位小数(例如: 10.1 )。 GATT 格式types规范有很多types的小数点数字( float32等)。 为什么GATT不使用被devise为保存十进制数字的数据types? 我的猜测是限制通过BLE发送的数据的大小。 那是对的吗? 我正在编写NodeJs代码来快速certificate一些技术。 用我的假设,这里是我怎么猜测一个精确到一个有符号的8位整数一个十进制小数“打包”。 我在这里使用加速度(可以是+/-,所以使用signed int): 'use strict'; const oneG = -9.806649999788; let int8Buf = new Buffer.alloc(8); //to hold signed 8-bit integer int8Buf.writeInt8(oneG * 10, 0); console.log(int8Buf.readInt8(0) / 10); 按照我的预期运行这个输出-9.8 。 问题: GATT是否使用这种“包装”技术来节省空间? 我正确地做这个? NodeJS有一个库来处理这个数据打包和解包吗? 看起来像一个非常普遍的情况。 我搜查了NPM,但我不确定这个概念是什么。