将C格式传递给nodejs缓冲区

时间:2016-02-10 09:18:38

标签: javascript c hardware-interface

我正在尝试使用节点i2c-bus包中的node.js引导的blinkm。

我遇到的问题是blinkm期望使用格式设置led的颜色 {'n',R,G,B},实际上是{'n',0xff,0xee,0x30}

使用i2c-bus,我将上述格式作为缓冲区传递,所以在节点中,我编写了这个函数来获取一个rgb对象,并以正确的格式将其作为缓冲区返回

function formatBuffer(val) {
   return new Buffer({'n', val.r , val.g, val.b});
}

然后用

调用它
formatBuffer({r:0xff, g:0xee, b:0x30});

不幸的是,这会返回一个错误unexpected token ,,我假设它是'n'之后的第一个逗号。

我已经尝试将值包装在字符串中,这不是通过错误,但似乎也不起作用。

有关如何解决此问题以及通过javascript将正确格式传递给blinkm的任何建议吗?

1 个答案:

答案 0 :(得分:1)

因为{ 'n', val.r , val.g, val.b }不是对象格式(缺少键)。更改为数组[0x6e, val.r , val.g, val.b]{ 'key1': 0x6e, 'key2': val.r , 'key3': val.g, 'key4': val.b }