linux - 拦截输入设备发送的数据

标签 linux node.js bash stream usb

我正在尝试记录来自通过 USB 连接到计算机的钢琴的所有输入数据。

$ lsusb
... 
Bus 003 Device 046: ID fc08:0101  
....

总线 003 设备 046:ID fc08:0101 是我的钢琴。

如果我执行 $ cat/dev/bus/usb/003/046 我会得到一些奇怪的东西:

�P   e�2   $   $A$$ $ $ �%   %

另外,我写了一个小的 NodeJS 脚本,它应该创建一个读取流和日志数据:

var Fs = require("fs");

var str = Fs.createReadStream("/dev/bus/usb/003/046");
str.on("data", function (chunk) {
    console.log("data: " + chunk.toString());
});

str.on("error", function (chunk) {
    console.log("error" + chunk.toString());
});

str.on("end", function (chunk) {
    console.log("ended");
});

输出:

$ node read.js 
data: �P e�2   $   $A$$ $ $ �%   %
ended

为什么直播结束了?如何捕获来自钢琴的数据?

是否可以解析数据并记录我按下的钢琴键?

我正在运行 Ubuntu 14.04。

最佳答案

试试 /dev/input/by-id/[你的钢琴]

比如我的鼠标在/dev/input/by-id/usb-Microsoft_Microsoft_5-Button_Mouse_with_IntelliEye_TM_-event-mouse

关于linux - 拦截输入设备发送的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24932387/

相关文章:

linux - 在输出文件中添加一列以跟踪来自原始输入文件的记录

linux - 403 forbidden 您无权访问/在此服务器上。部署 Laravel 项目后

javascript - 使用缓冲区解码 Base64 时出错。第一个参数必须是数字

c - 在C程序中使用cp命令获取要复制的文件列表

linux - Bash grep 输出文件名和没有匹配的行号

linux - awk 递增或更改文件中列的值

linux - ImageMagick - 带引号的数字作为转换标签参数会导致命令失败

javascript - app.use 在发送错误后出现 Can\t set headers 错误

node.js - 我可以将 JQuery mobile 与 Nodejs 一起使用吗

c - 从路径中删除字符 (cstring)