该功能需要到JNA的知识。
通过查阅海康设备网络SDK编程指南(DVR&NVR)可以知道海康SDK的调用方法都要同过如下过程:
虚线框的流程是可选部分,不会影响其他流程和模块的功能使用。具体的模块说明可以自行参考SDK开发文件。
主要功能代码:
测试例子,因此虚线部分功能不实现
1.初始化设备SDK:对整个网络SDK 系统的初始化,内存预分配等操作。
代码:HCNetSDK sdk = HCNetSDK.INSTANCE;
sdk.NET_DVR_Init();//返回booleaan值
2.注册设备:实现用户的注册功能,注册成功后,返回的用户ID 作为其他功能操作的唯一标识
代码: NativeLong uid=new NativeLong(-1);
NET_DVR_DEVICEINFO_V30 devinfo=new NET_DVR_DEVICEINFO_V30();//设备信息
uid=sdk.NET_DVR_Login_V30((string)IP,(short)PORT,(string)user,string()pwd,devinfo);//返回一个用户编号,同时将设备信息写入devinfo
3.设备工作状态获取(参数配置模块):
代码:NET_DVR_WORKSTATE_V30 devwork=new NET_DVR_WORKSTATE_V30();
sdk.NET_DVR_GetDVRWorkState_V30(uid, devwork);//返回Boolean值,判断是否获取设备能力
IntByReference ibrBytesReturned = new IntByReference(0);//获取IP接入配置参数
NET_DVR_IPPARACFG ipcfg=new NET_DVR_IPPARACFG();
ipcfg.write();
Pointer lpIpParaConfig =ipcfg.getPointer();
sdk.NET_DVR_GetDVRConfig(uid,sdk.NET_DVR_GET_IPPARACFG,new NativeLong(0),lpIpParaConfig,ipcfg.size(),ibrBytesReturned);
ipcfg.read();
4.注销设备:
代码:sdk.NET_DVR_Logout(uid);
5.释放SDK
代码:sdk.NET_DVR_Cleanup();
详细例子:
输出: