【问题标题】:raspberry node-hid-stream: using multiple hid devices slowing down execution of application覆盆子节点隐藏流:使用多个隐藏设备减慢应用程序的执行速度
【发布时间】:2020-04-18 02:12:53
【问题描述】:

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

这不是 node-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'}); 

(...)

【问题讨论】:

    标签: node.js express raspberry-pi hid


    【解决方案1】:

    通过在顶部添加这一行来增加线程数

    process.env.UV_THREADPOOL_SIZE=10

    这会将环境变量 UV_THREADPOOL_SIZE 设置为 10

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-18
      • 1970-01-01
      相关资源
      最近更新 更多