【发布时间】:2013-03-12 16:51:06
【问题描述】:
我已经实现了一个 Linux 驱动程序 (beaglebone),它通过 SPI 查询一些硬件并将接收到的数据复制到一个 kfifo 中(如果它没有清空,它可能会变满)。 - 通过对 char 设备文件(我们称之为 /dev/foo)执行读取来清空此 kfifo。 - 用户态程序负责读取正确的 fifo 条目大小(或它的倍数)。 - 通过 sysfs 条目启动和停止驱动程序。
示例 C 用户态程序以阻塞模式读取此文件(即,当数据可用时读取返回)。
现在这是我的问题: 我在 beaglebone 上有一个运行在 node.js 中的服务器,用于管理目的,并且还想让它“收集”数据(在 /dev/foo 上)并通过 websockets 发送。
我真的不知道该怎么做,因为 /dev/foo 不是一个常规文件(所以 fs.watch 不起作用),并且数据一直随机可用。
问题: - 我可以用节点的标准库解决这个问题吗(比如流等?) - 是否有可以解决我的问题的节点模块? - 还是我必须自己编写一个节点模块(使用 libuv?)
感谢您对这些方面的任何提示。
【问题讨论】:
-
既然标准输入也是一个字符设备,也许this 可能是一个很好的起点?
-
谢谢。这给了我将 /dev/foo 作为流打开的(好)想法(使用
createReadStream)
标签: node.js nonblocking