This feature requires knowledge of the JNA.
By consulting the Marine Equipment Network SDK Programming Guide (DVR&NVR), you know that the Hoi Hong SDK call method has the following procedure:
The flow of the dashed box is an optional part that does not affect the use of other processes and functions of the module. The specific module description can be referenced in the SDK development files yourself.
Main function Code:
Test example, so the dashed part function is not implemented
1. Initialize the Device SDK: Initialize the entire Network SDK system, memory pre-allocation and other operations.
Code: HCNETSDK SDK = hcnetsdk.instance;
Sdk.net_dvr_init ();//return Booleaan value
2. Registering the device: Realize the user's registration function, after the registration is successful, the returned user ID is the unique identifier of the other function operation.
Code: Nativelong uid=new Nativelong (-1);
Net_dvr_deviceinfo_v30 devinfo=new net_dvr_deviceinfo_v30 ();//Device information
Uid=sdk.net_dvr_login_v30 (String) IP, (short) PORT, (String) user,string () pwd,devinfo);//Returns a user number while writing device information to DevInfo
3. Device Operation status Acquisition (parameter configuration module):
Code: NET_DVR_WORKSTATE_V30 devwork=new net_dvr_workstate_v30 ();
SDK.NET_DVR_GETDVRWORKSTATE_V30 (UID, devwork);//Returns a Boolean value to determine whether to acquire device capabilities
Intbyreference ibrbytesreturned = new Intbyreference (0);//Get IP access configuration parameters
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. Logout Device:
Code: Sdk.net_dvr_logout (UID);
5. Release the SDK
Code: Sdk.net_dvr_cleanup ();
Detailed Examples:
Package Clientdemo;import Com.sun.jna.nativelong;import Com.sun.jna.pointer;import com.sun.jna.ptr.IntByReference; Import Clientdemo.hcnetsdk.net_dvr_deviceinfo_v30;import Clientdemo.hcnetsdk.net_dvr_ipparacfg;import Clientdemo.hcnetsdk.net_dvr_workstate_v30;public class Device_demo {public static void main (string[] args) {//TODO auto-generated method Stubhcnetsdk SDK = Hcnetsdk.instance;if (!sdk.net_dvr_init ()) {System.out.println ("SDK initialization failed"); return;} Nativelong uid=new Nativelong ( -1); Net_dvr_deviceinfo_v30 devinfo=new net_dvr_deviceinfo_v30 ();//device information string ip= " 192.168.10.191 "; Short port=8000;uid=sdk.net_dvr_login_v30 (Ip,port," admin "," hk123456 ", DevInfo);//Returns a user number, The device information is also written to Devinfoint Iuid=uid.intvalue (); if (iuid<0) {System.out.println ("Device registration failed"); return;} Net_dvr_workstate_v30 devwork=new net_dvr_workstate_v30 (); if (!sdk.net_dvr_getdvrworkstate_v30 (UID, devwork)) {// Returns a Boolean value that determines whether to acquire device capability System.out.println ("Return device state Failed");} Intbyreference ibrbytesreturned = new Intbyreference (0);//Get IP access configuration parameters 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 (); System.out.print ("IP address:" +IP); System.out.println ("| Device status:" +devwork.dwdevicestatic);//0 Normal, 1CPU high occupancy, 2 hardware error, 3 unknown//display analog channel for (int i=0;i< devinfo.bychannum;i++) {System.out.print ("camera" +i+1);//analog channel number name System.out.print ("| Whether recording:" + devwork.struchanstatic[i].byrecordstatic);//0 does not record, does not record System.out.print ("| Signal status:" +devwork.struchanstatic[i]. bysignalstatic);//0 Normal, 1 signal loss System.out.println ("| Hardware status:" +devwork.struchanstatic[i].byhardwarestatic);//0 Normal, 1 exception} Sdk.net_dvr_logout (UID); Sdk.net_dvr_cleanup ();}}
Output:
Java implementation of NVR/DVR equipment working condition acquisition