我在 Raspberry PI 上使用 johnny-five Node 模块,通过以下脚本驱动机器人上的几个伺服系统
var five = require('johnny-five'), board, servo, led;
board = new five.Board();
board.on('ready', function(){
servo = new five.Servo({pin: 9, range:[0,180]});
// Allow direct commandline access
board.repl.inject({s: servo});
});
在 Node 为 0.10.29-1 的 Raspberry PI 上运行此代码时出现以下错误
1(node) warning: possible EventEmitter memory leak detected. 11 listeners added. Use emitter.setMaxListeners() to increase limit.
Trace
at process.EventEmitter.addListener (events.js:160:15)
at process.on.process.addListener (node.js:768:26)
at Board.broadcast (/home/pi/sonny/node_modules/johnny-five/lib/board.js:375:15)
at Board.<anonymous> (/home/pi/sonny/node_modules/johnny-five/lib/board.js:154:18)
at SerialPort.<anonymous> (/home/pi/sonny/node_modules/johnny-five/node_modules/firmata/lib/firmata.js:418:13)
at SerialPort.EventEmitter.emit (events.js:95:17)
at /home/pi/sonny/node_modules/johnny-five/node_modules/serialport/serialport.js:230:16
Need to setMaxListeners somewhere in the code.
但是,如果我在我的笔记本(Linux Mint 14 + Node 0.10.20)上运行这段代码,它工作正常。
有没有办法在 Raspberry PI(运行 raspbian)上全局设置 MaxListeners?
如果没有,我该如何将 setMaxListeners 添加到我的代码中?
最佳答案
这原来是树莓派的电源问题。一旦我将电机置于单独的电源上但具有公共(public)接地,一切就开始工作了。
关于linux - Raspberry PI Node EventEmitter 内存泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24980975/