从缓冲区中检索 FLOAT、DOUBLE、INT 或 BOOL 值
Retrieving FLOAT, DOUBLE, INT or BOOL values from Buffer
亲爱的社区,下午好,
我正在从事一个网络项目,我通过 UDP 套接字从名为 VDMX 的软件接收数据,并尝试从缓冲区解析上述数据类型。
在我的 node.js 应用程序中,我使用以下套接字客户端接收值没有问题:
const dgram = require('dgram');
const server = dgram.createSocket('udp4');
server.on('error', (err) => {
console.log(`server error:\n${err.stack}`);
server.close();
});
server.on('message', (msg, rinfo) => {
console.log(msg.toString());
});
server.on('listening', () => {
const address = server.address();
console.log(`server listening ${address.address}:${address.port}`);
});
server.bind(1235);
但是从软件中检索到的数据,我不确定如何从作为 string/buffer 发送的数据中解析必要的部分。
在每次发送的数据中,默认发送的数据中都有一个OSC信息的前缀信息,如'/lux'。当我选择不同的数据类型时,这是我在 Node.js 控制台中收到的内容:
如果我选择浮动:
/lux,fB�F�
/lux,fB��
/lux,fB�ɘ
/lux,fB��
如果我选择双:
/lux,d@L ��ϑL
/lux,d@L��S�
�|�x,d@K�f
/lux,d@K�Y�)�
如果我选择 64 位整数:
/lux,h1
/lux,h0
/lux,h/
/lux,h.
如果您能指导我如何从这些缓冲区中获取值,我将不胜感激。非常感谢您!
使用msg.readDoubleLE(offset)
、msg.readFloat32LE(offset)
和类似的函数
https://nodejs.org/dist/latest-v10.x/docs/api/buffer.html#buffer_buf_readdoublele_offset
亲爱的社区,下午好,
我正在从事一个网络项目,我通过 UDP 套接字从名为 VDMX 的软件接收数据,并尝试从缓冲区解析上述数据类型。
在我的 node.js 应用程序中,我使用以下套接字客户端接收值没有问题:
const dgram = require('dgram');
const server = dgram.createSocket('udp4');
server.on('error', (err) => {
console.log(`server error:\n${err.stack}`);
server.close();
});
server.on('message', (msg, rinfo) => {
console.log(msg.toString());
});
server.on('listening', () => {
const address = server.address();
console.log(`server listening ${address.address}:${address.port}`);
});
server.bind(1235);
但是从软件中检索到的数据,我不确定如何从作为 string/buffer 发送的数据中解析必要的部分。
在每次发送的数据中,默认发送的数据中都有一个OSC信息的前缀信息,如'/lux'。当我选择不同的数据类型时,这是我在 Node.js 控制台中收到的内容:
如果我选择浮动:
/lux,fB�F�
/lux,fB��
/lux,fB�ɘ
/lux,fB��
如果我选择双:
/lux,d@L ��ϑL
/lux,d@L��S�
�|�x,d@K�f
/lux,d@K�Y�)�
如果我选择 64 位整数:
/lux,h1
/lux,h0
/lux,h/
/lux,h.
如果您能指导我如何从这些缓冲区中获取值,我将不胜感激。非常感谢您!
使用msg.readDoubleLE(offset)
、msg.readFloat32LE(offset)
和类似的函数
https://nodejs.org/dist/latest-v10.x/docs/api/buffer.html#buffer_buf_readdoublele_offset