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