Node.js函数不适用于isr galileo board

时间:2014-11-03 15:36:23

标签: node.js gpio interrupt-handling intel-galileo

我想为Galileo使用node.js mraa库。 我需要设置一个中断。 我通过以下方式实现这一目标:

 var param=1;

 var myLed = new mraa.Gpio(2); 

 myLed.dir(mraa.DIR_IN); //set the gpio direction to input

 myLed.isr(mraa.EDGE_BOTH,function f(x){},param );

我收到此错误

 in method 'Gpio_isr', argument 3 of type 'void (*)(void *)'

此功能的文档说明

 mraa_result_t isr  (   Edge    mode,
  void(*)(void *)   fptr,
  void *    args 
   )        

 Sets a callback to be called when pin value changes

Parameters
mode    The edge mode to set
fptr    Function pointer to function to be called when interupt is triggered
args    Arguments passed to the interrupt handler (fptr)
Returns
Result of operation

我不知道如何设置功能的参数......

2 个答案:

答案 0 :(得分:0)

有一个未解决的问题。目前的反应是isr方法目前无法正常工作。

链接: https://github.com/intel-iot-devkit/mraa/issues/110

答案 1 :(得分:0)

正如问题所指出的那样,你现在可以做到:

var m = require('mraa')
function h() {
  console.log("HELLO!!!!")
}
x = new m.Gpio(14)
x.isr(m.EDGE_BOTH, h)

您需要在主分支机构的v0.5.4-134-gd6891e8或更高版本上。你可以使用npm来获得你板上安装的正确版本,或者只是编译表单源(你需要SWIG 3.x)

  

npm install mraa