在节点缓冲区中写入浮点值
Write float value in Node buffer
我正在读取传感器数据,我需要通过蓝牙发送这些数据,所以我使用 noble/bleno 库在每次值更改时订阅数据。在这里我很困惑如何将数据作为缓冲区发送。
我的数据类似于 value = 24.3756
所以我需要在缓冲区中写入:
let buf = new Buffer(2);
buf.writeIntLE(buf);
但是当我转换为 ArrayBuffer 值时只显示 24(不在小数点后)
如何发送完整的浮点值并读取为数组缓冲区?
首先请阅读 Buffer 文档 here。
那么请不要使用已弃用的函数。如果您需要创建新缓冲区,请使用 Buffer.alloc
或 Buffer.allocUnsafe
。当您创建缓冲区时,请确保它可以保存您要写入的数据。接下来请使用合适的方法写入数据。你写的是浮点数,那你就得用Buffer.writeFloatBE/Buffer.writeFloatLE
。如果你做了我提到的所有事情,你最终会得到一个正确的解决方案:
const buffer = Buffer.allocUnsafe(4);
buffer.writeFloatLE(24.3756);
我正在读取传感器数据,我需要通过蓝牙发送这些数据,所以我使用 noble/bleno 库在每次值更改时订阅数据。在这里我很困惑如何将数据作为缓冲区发送。
我的数据类似于 value = 24.3756
所以我需要在缓冲区中写入:
let buf = new Buffer(2);
buf.writeIntLE(buf);
但是当我转换为 ArrayBuffer 值时只显示 24(不在小数点后)
如何发送完整的浮点值并读取为数组缓冲区?
首先请阅读 Buffer 文档 here。
那么请不要使用已弃用的函数。如果您需要创建新缓冲区,请使用 Buffer.alloc
或 Buffer.allocUnsafe
。当您创建缓冲区时,请确保它可以保存您要写入的数据。接下来请使用合适的方法写入数据。你写的是浮点数,那你就得用Buffer.writeFloatBE/Buffer.writeFloatLE
。如果你做了我提到的所有事情,你最终会得到一个正确的解决方案:
const buffer = Buffer.allocUnsafe(4);
buffer.writeFloatLE(24.3756);