首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何初始化结构节点-ffi结构

如何初始化结构节点-ffi结构
EN

Stack Overflow用户
提问于 2017-10-22 13:10:52
回答 1查看 1.1K关注 0票数 0

我在linux上有库。那个图书馆有结构。此库的手册规定必须初始化结构,如下所示:

代码语言:javascript
复制
LONG lUserID;
NET_DVR_DEVICEINFO_V30 struDeviceInfo;
lUserID = NET_DVR_Login_V30("192.168.1.64", 8000, "admin", "12", &struDeviceInfo);

struDeviceInfo -从设备输出数据,我必须读取和使用.

如何在Nodejs中对此进行编码。PS:我使用节点-ffi模块,库初始化和连接设备完成ok.

代码语言:javascript
复制
    var net = require('net');
    var events = require('events');
    var util = require('util');
    var request = require('request');
    var xml2js = require('xml2js');

    var ffi = require("ffi");
    var ref = require("ref");
    var ref_struct = require("ref-struct");    

var libHikSDK = ffi.Library('./libhcnetsdk.so', {
    'NET_DVR_Init': ['bool', []],
    'NET_DVR_SetConnectTime': ['bool', ['char', 'char']],
    'NET_DVR_SetReconnect': ['bool', ['char', 'bool']],
    'NET_DVR_Login_V30': ['char', ['string', 'int', 'string', 'string']],
    'NET_DVR_Cleanup': ['void', []],
    'NET_DVR_GetLastError': ['char', []],
    'NET_DVR_GetSDKVersion': ['char',[]],
    'NET_DVR_SetLogToFile': ['bool',['int', 'string']]
    });

libHikSDK.NET_DVR_Cleanup();
var init = libHikSDK.NET_DVR_Init();
var v = libHikSDK.NET_DVR_GetSDKVersion();
var s = libHikSDK.NET_DVR_SetConnectTime('200000', '1');
libHikSDK.NET_DVR_SetLogToFile(3, "/home/user");
var i = libHikSDK.NET_DVR_Login_V30("192.168.0.10", 8000, "admin", "12345");
var g = libHikSDK.NET_DVR_GetLastError();
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-31 12:50:14

您可以使用ref-struct定义NET_DVR_DEVICEINFO_V30结构,然后调整函数定义如下:

代码语言:javascript
复制
const NetDvrDeviceInfoV30 = StructType({...});

const libHikSDK = ffi.Library('./libhcnetsdk.so', {
  ...
  'NET_DVR_Login_V30': ['char', ['string', 'int', 'string', 'string', NetDvrDeviceInfoV30]],
  ...
});

const netDvrDeviceInfoV30 = new NetDvrDeviceInfoV30();
const i = libHikSDK.NET_DVR_Login_V30("192.168.0.10", 8000, "admin", "12345", netDvrDeviceInfoV30);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46874467

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档