Я пытаюсь обернуть код c, используя node-ffi.Но одна функция c вызывает функцию в параметре, я искал в Интернете, но у меня не было надлежащего способа обернуть эту функцию с помощью node-ffi.
Вот то, что я пробовал раньше (фрагмент),
example.js
var intPin = 40;
var state = 0;
var lib = require('./c_functions');
lib.c_functions.attachInterrupt(intPin,abc); //attachInterrupt is a c function and **Problem 1**
function abc(){
console.log("state: ",state);
state++;
}
c_functions.js // библиотека доступа к файлам и функции экспорта
var ffi = require('ffi'); //requires to use node-ffi functionalities
var ref = require('ref'); //reference to integer type
var int = ref.types.int;
var voidtype = ref.types.void;
var objPtr = ref.refType(voidType); //void pointer
var c_functions = ffi.Library('/usr/local/lib/lib.so.0.5.0', { //accessing so file
"attachInterrupt":[voidtype, [int,objPtr]] // **Problem 2**
});
/**
* @breif Definitions for Pin modes
*/
var INPUT = 0;
var OUTPUT = 1;
/**
* @breif Definitions for pin values
*/
var LOW = 0;
var HIGH = 1;
module.exports = {c_functions , HIGH, LOW, INPUT, OUTPUT}; //exporting functions
Итак, у меня 2 проблемы,
1.Задача 2 (в коде) - Каким должен быть тип 2-го аргумента функции attachInterrupt?
2.Задача 1 (в коде) - Как вызвать функцию, переданную в качестве параметра?
Пожалуйста, помогите!Спасибо.