Javascript / 节点功能节点:比特流操作
Javascript / Nodered function node: bitstream operations
完成以下任务:
有一个协议定义了极简数据,例如:
binary 0 1 0 0 0 1 1 1 0 0 1 1 1 0
variable [-] [-----] [---] [-------]
name a b c d
其中参数“a”由 2 位组成,参数“b”由 5 位组成,依此类推。我必须将它们设置为
a=1
b=1
c=6
d=...
所以上面的位缓冲区会自动产生。
这个比特流应该像这样存储在缓冲区中:
let buf = Buffer.alloc(64, 0);
有没有可能实现这个?
有很多方法可以解决这个问题。
使用像 node-red-contrib-buffer-parser 这样的节点,这将允许您将此作为流程的一部分进行
在功能节点中做基本的bit shifting。例如
var a = 1
var b = 16
var c = 2
var d = 10
var answer = a << 14 | b << 12 | c << 10 | d << 6
然后可以写入 buffer.writeUint16()
完成以下任务:
有一个协议定义了极简数据,例如:
binary 0 1 0 0 0 1 1 1 0 0 1 1 1 0
variable [-] [-----] [---] [-------]
name a b c d
其中参数“a”由 2 位组成,参数“b”由 5 位组成,依此类推。我必须将它们设置为
a=1
b=1
c=6
d=...
所以上面的位缓冲区会自动产生。
这个比特流应该像这样存储在缓冲区中:
let buf = Buffer.alloc(64, 0);
有没有可能实现这个?
有很多方法可以解决这个问题。
使用像 node-red-contrib-buffer-parser 这样的节点,这将允许您将此作为流程的一部分进行
在功能节点中做基本的bit shifting。例如
var a = 1 var b = 16 var c = 2 var d = 10 var answer = a << 14 | b << 12 | c << 10 | d << 6
然后可以写入 buffer.writeUint16()