1

SPI によって一部のハードウェアにクエリを実行し、受信したデータを kfifo にコピーする Linux ドライバー (ビーグルボーン) を実装しました (空にしないといっぱいになる可能性があります)。- この kfifo は、char デバイス ファイル (/dev/foo と呼びましょう) で読み取りを実行することによって空にされます。- ユーザーランド プログラムは、正しい fifo エントリ サイズ (またはその倍数) を読み取る責任があります。- ドライバーは、sysfs エントリーを介して開始および停止されます。

サンプルの C ユーザーランド プログラムは、このファイルをブロッキング モードで読み取ります (つまり、データが利用可能になると読み取りが返されます)。

ここに私の問題があります: 管理目的でビーグルボーン上で実行されている 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 に答える