0

我正在读取传感器数据,我需要通过蓝牙发送这些数据,所以每次值变化时我都使用 noble/bleno 库订阅数据。在这里,我很困惑如何将数据作为缓冲区发送。

我有类似 value = 24.3756 的数据

所以我需要把它写在缓冲区中:

let buf = new Buffer(2);
buf.writeIntLE(buf);

但是当我转换为 ArrayBuffer 值时只显示 24 (小数点后没有)

如何发送完整的浮点值并读取为数组缓冲区?

4

1 回答 1

0

首先,请在此处阅读 Buffer 文档。

那么请不要使用已弃用的功能。如果您需要创建新的缓冲区,请使用Buffer.allocBuffer.allocUnsafe. 当您创建缓冲区时,请确保它可以保存您要写入的数据。接下来请使用合适的方法写入数据。您正在编写浮点数,那么您必须使用Buffer.writeFloatBE/Buffer.writeFloatLE. 如果你做了我提到的所有事情,你最终会得到一个正确的解决方案:

const buffer = Buffer.allocUnsafe(4);
buffer.writeFloatLE(24.3756);
于 2018-06-11T18:27:30.950 回答