функция обратного вызова узла ffi для событий - PullRequest
0 голосов
/ 20 октября 2018

У меня есть dll, которая имеет функцию CIDR_RegisterEvent, которая получает указатель на функцию и маску int, dll является мостом для устройства и вызывает функцию, когда новое устройство отправляется с устройства.
Iиспользуйте следующий код для подключения к функции.

var ffi = require('ffi')
var ref = require('ref')
var stringPtr = ref.refType(ref.types.CString);
var int = ref.types.int;
var libprime = ffi.Library('POS_CIDR.dll', {
  'CIDR_Info': [stringPtr, []],
  'CIDR_RegisterEvent': ['int', ['void *', ref.types.int32]],
});
c = ffi.Callback('void', ['int', 'string'],
  function(id, str) {
    console.log("id: ", id);
    console.log("name: ", str);
  });
libprime.CIDR_RegisterEvent(c, 5);
setInterval(function() {
  console.log("*");
}, 1000);
process.on('exit', function() {
  c;
});

Когда я запускаю код, светодиод моего устройства включается, поэтому я знаю, что он подключается, но функция обратного вызова y никогда не запускается.
Может ли кто-нибудь обнаружить проблему в моемкод?
Я использую функцию setInterval, чтобы приложение работало вечно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...