在节点缓冲区中写入浮点值

Write float value in Node buffer

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

我的数据类似于 value = 24.3756

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

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

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

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

首先请阅读 Buffer 文档 here

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

const buffer = Buffer.allocUnsafe(4);
buffer.writeFloatLE(24.3756);