Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js raspberry节点hid流:使用多个hid设备降低应用程序的执行速度_Node.js_Express_Raspberry Pi_Hid - Fatal编程技术网

Node.js raspberry节点hid流:使用多个hid设备降低应用程序的执行速度

Node.js raspberry节点hid流:使用多个hid设备降低应用程序的执行速度,node.js,express,raspberry-pi,hid,Node.js,Express,Raspberry Pi,Hid,我正在基于Web服务器在Raspberry PI 4 1GB RAM上构建一个应用程序,使用express、节点hid流和serialport库从hid设备和serialport读取数据。使用3个hid设备时一切正常,但在添加第四个设备应用程序后,速度非常慢(在5-10分钟内启动web服务器,串行端口甚至没有打开)。在使用3和4个hid设备运行应用程序期间,Raspberry RAM消耗约为700MB,只有应用程序滞后,所有hid设备的数据都可用。 根据节点hid文档: 这不是对节点hid的限制

我正在基于Web服务器在Raspberry PI 4 1GB RAM上构建一个应用程序,使用express、节点hid流和serialport库从hid设备和serialport读取数据。使用3个hid设备时一切正常,但在添加第四个设备应用程序后,速度非常慢(在5-10分钟内启动web服务器,串行端口甚至没有打开)。在使用3和4个hid设备运行应用程序期间,Raspberry RAM消耗约为700MB,只有应用程序滞后,所有hid设备的数据都可用。
根据节点hid文档:

这不是对节点hid的限制,而是对所有用户空间库的限制。这是操作系统的一项安全功能,用于防止输入设备窥探

也许这是个问题

一些代码示例:

var express = require('express');
var socket = require('socket.io');
var app = express();
var server = app.listen(8080, function(){
    console.log('listening on port 8080');
    });
app.use(express.static('public'));

//Socket setup
var io = socket(server);

io.on('connection', function(socket){
    console.log('made socket connection')
    });

(...)

var serialport = require ("serialport");
var port = new serialport('/dev/ttyACM0', {
  baudRate: 9600,
   dataBits: 8,
   parity: 'none',
   stopBits: 1,
   flowControl: false,

});

port.on("open", function () {
  //console.log('port otwarty'); 
 port.on('data', function(data) {
    //console.log('data received: ' + data);
    f_CReaderCard(data.toString());
  });
});

(...)

var KeyboardCharacters = require('node-hid-stream').KeyboardCharacters;
var CReaderD1 = new KeyboardCharacters({path: '/dev/hidraw0'}); 
var CReaderD2 = new KeyboardCharacters({path: '/dev/hidraw1'}); 
var CReaderU1 = new KeyboardCharacters({path: '/dev/hidraw2'}); 
var CReaderU2 = new KeyboardCharacters({path: '/dev/hidraw3'}); 

(...)


通过在顶部添加这一行来增加螺纹号

process.env.UV\u THREADPOOL\u SIZE=10

这将环境变量UV_THREADPOOL_SIZE设置为10

默认值为“4”,最大值为1024