【问题标题】:Reading for char driver file in node.js?在 node.js 中读取 char 驱动程序文件?
【发布时间】: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


【解决方案1】:

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

这是我的工作:

var fs = require('fs');

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

readStream.on('data', function (data) {
    console.log(data);
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-06
    • 1970-01-01
    • 1970-01-01
    • 2013-08-25
    • 1970-01-01
    • 2020-05-21
    相关资源
    最近更新 更多