我想为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
我不知道如何设置函数的参数。。。
这是一个悬而未决的问题。当前的响应是isr方法当前不工作。
链接:https://github.com/intel-iot-devkit/mraa/issues/110
正如问题中所指出的,您现在可以执行:
var m = require('mraa')
function h() {
console.log("HELLO!!!!")
}
x = new m.Gpio(14)
x.isr(m.EDGE_BOTH, h)
您需要使用master分支的v0.5.4-134-gd6891e8或更高版本。你可以使用npm在你的板上安装正确的版本,或者只编译表单源(你需要SWIG3.x)
npm安装mraa