1

我已经实现了一个 Linux 驱动程序(beaglebone),它通过 SPI 查询一些硬件并将接收到的数据复制到 kfifo 中(如果没有清空,它可能会变满)。- 通过对 char 设备文件(我们称之为 /dev/foo)执行读取来清空此 kfifo。- 用户态程序负责读取正确的 fifo 条目大小(或它的倍数)。- 通过 sysfs 条目启动和停止驱动程序。

示例 C 用户态程序以阻塞模式读取此文件(即,当数据可用时读取返回)。

现在这是我的问题:我在 beaglebone 上有一个运行在 node.js 中的服务器,用于管理目的,并且还想让它“收集”数据(在 /dev/foo 上)并通过 websockets 发送它。

我真的不知道该怎么做,因为 /dev/foo 不是常规文件(因此 fs.watch 不起作用),并且数据继续随机可用。

问题: - 我可以用节点的标准库解决这个问题吗(比如流等?) - 有没有一个节点模块可以解决我的问题?- 或者我必须自己编写一个节点模块(使用 libuv?)

感谢您对这些要点的任何提示。

4

1 回答 1

0

我知道这有点老了,但是 mamahuhu 给了我正确的想法!

这是我所做的:

var fs = require('fs');

var readStream = fs.createReadStream("/dev/foo");

readStream.on('data', function (data) {
    console.log(data);
});
于 2016-04-06T13:17:55.490 回答