我已经实现了一个Linux驱动程序(beaglebone),它通过SPI查询某些硬件,并将接收到的数据复制到kfifo中(如果没有清空则可以填满)。 - 通过对char设备文件执行读取来清空此kfifo(让我们称之为/ dev / foo)。 - 用户程序负责读取正确的fifo条目大小(或其倍数)。 - 通过sysfs条目启动和停止驱动程序。
示例C userland程序以阻塞模式读取此文件(即,当数据可用时读取返回)。
现在这是我的问题: 我有一个在beaglebone上运行的node.js中的服务器用于管理目的,并且还想让它“收集”数据(在/ dev / foo上)并通过websockets发送它。
我真的不知道该怎么做,因为/ dev / foo不是常规文件(因此fs.watch不起作用),并且数据随机可用。
问题: - 我可以用节点的标准库解决这个问题(比如使用流等吗?) - 是否有节点模块可以解决我的问题? - 或者我是否必须自己编写节点模块(使用libuv?)
感谢你对这些观点的暗示。
答案 0 :(得分:0)
我知道这有点老了,但是马马胡胡给了我正确的主意!
以下是我的工作:
var fs = require('fs');
var readStream = fs.createReadStream("/dev/foo");
readStream.on('data', function (data) {
console.log(data);
});