Bladeren bron

升级jar包到3.0.0版本 支持海康AI摄像头

Signed-off-by: haidong <chenloveguitar@qq.com>
doorRight设置
haidong 1 jaar geleden
bovenliggende
commit
19f0ccab99
2 gewijzigde bestanden met toevoegingen van 181 en 1 verwijderingen
  1. +180
    -0
      src/main/java/com/hkversion/AI/AIMain.java
  2. +1
    -1
      src/main/java/com/hkversion/AlarmDataParse.java

+ 180
- 0
src/main/java/com/hkversion/AI/AIMain.java Bestand weergeven

@@ -0,0 +1,180 @@
package com.hkversion.AI;

import com.alibaba.fastjson.JSONException;
import com.common.osSelect;
import com.hkversion.FMSGCallBack_V31;
import com.hkversion.HCNetSDK;
import com.sun.jna.Native;
import com.sun.jna.Pointer;
import com.yzx.callback.AlarmCallback;
import com.yzx.pojo.AlarmDataInfo;

import java.io.UnsupportedEncodingException;

public class AIMain {
static HCNetSDK hCNetSDK = null;
static int lUserID = -1;//用户句柄
static int iCharEncodeType = 0;//设备字符集



/**
* 根据不同操作系统选择不同的库文件和库路径
* @return
*/
private static boolean createSDKInstance()
{
if(hCNetSDK == null)
{
synchronized (HCNetSDK.class)
{
String strDllPath = "";
try
{
//System.setProperty("jna.debug_load", "true");
if(osSelect.isWindows())
//win系统加载库路径
strDllPath = System.getProperty("user.dir") + "\\lib\\HCNetSDK.dll";
else if(osSelect.isLinux())
//Linux系统加载库路径
strDllPath = System.getProperty("user.dir") + "/lib/libhcnetsdk.so";
hCNetSDK = (HCNetSDK) Native.loadLibrary(strDllPath, HCNetSDK.class);
}catch (Exception ex) {
System.out.println("loadLibrary: " + strDllPath + " Error: " + ex.getMessage());
return false;
}
}
}
return true;
}

/**
* @param args
* @throws UnsupportedEncodingException
* @throws InterruptedException
*/
public static void main(String[] args) throws UnsupportedEncodingException, InterruptedException, JSONException {


if(hCNetSDK == null)
{
if(!createSDKInstance())
{
System.out.println("Load SDK fail");
return;
}
}
//linux系统建议调用以下接口加载组件库
if (osSelect.isLinux())
{
HCNetSDK.BYTE_ARRAY ptrByteArray1 = new HCNetSDK.BYTE_ARRAY(256);
HCNetSDK.BYTE_ARRAY ptrByteArray2 = new HCNetSDK.BYTE_ARRAY(256);
//这里是库的绝对路径,请根据实际情况修改,注意改路径必须有访问权限
String strPath1 = System.getProperty("user.dir") + "/lib/libcrypto.so.1.1";
String strPath2 = System.getProperty("user.dir") + "/lib/libssl.so.1.1";

System.arraycopy(strPath1.getBytes(), 0, ptrByteArray1.byValue, 0, strPath1.length());
ptrByteArray1.write();
hCNetSDK.NET_DVR_SetSDKInitCfg(3, ptrByteArray1.getPointer());

System.arraycopy(strPath2.getBytes(), 0, ptrByteArray2.byValue, 0, strPath2.length());
ptrByteArray2.write();
hCNetSDK.NET_DVR_SetSDKInitCfg(4, ptrByteArray2.getPointer());

String strPathCom = System.getProperty("user.dir") + "/lib/";
HCNetSDK.NET_DVR_LOCAL_SDK_PATH struComPath = new HCNetSDK.NET_DVR_LOCAL_SDK_PATH();
System.arraycopy(strPathCom.getBytes(), 0, struComPath.sPath, 0, strPathCom.length());
struComPath.write();
hCNetSDK.NET_DVR_SetSDKInitCfg(2, struComPath.getPointer());
}

hCNetSDK.NET_DVR_Init();
FMSGCallBack_V31 fMSFCallBack_V31 = new FMSGCallBack_V31(new AlarmCallback() {
@Override
public void process(AlarmDataInfo info) {
System.out.println("报警信息:" + info.toString());
}
});
Pointer pUser = null;
//设置报警回调函数
hCNetSDK.NET_DVR_SetDVRMessageCallBack_V31(fMSFCallBack_V31,pUser);

//开启SDK日志打印
boolean i= hCNetSDK.NET_DVR_SetLogToFile(3, "./sdklog", false);

//登录设备
login_V40("192.168.69.64","admin","yzx@753159",(short)8000);
//报警布防参数设置
HCNetSDK.NET_DVR_SETUPALARM_PARAM m_strAlarmInfo = new HCNetSDK.NET_DVR_SETUPALARM_PARAM();
m_strAlarmInfo.dwSize = m_strAlarmInfo.size();
m_strAlarmInfo.byLevel = 0; //布防等级
m_strAlarmInfo.byAlarmInfoType = 1; // 智能交通报警信息上传类型:0- 老报警信息(NET_DVR_PLATE_RESULT),1- 新报警信息(NET_ITS_PLATE_RESULT)
m_strAlarmInfo.byDeployType = 0; //布防类型:0-客户端布防,1-实时布防
m_strAlarmInfo.write();
//设备布防
hCNetSDK.NET_DVR_SetupAlarmChan_V41(lUserID, m_strAlarmInfo);
Thread.sleep(20000);
/**
* 撤防,端口监听,注销设备
*/
AIMain.logout();

//释放SDK,程序退出前调用
hCNetSDK.NET_DVR_Cleanup();

}


/**
* 设备登录
* @param ipadress IP地址
* @param user 用户名
* @param psw 密码
* @param port 端口,默认8000
*/
public static void login_V40(String ipadress, String user, String psw, short port) {
//注册
HCNetSDK.NET_DVR_USER_LOGIN_INFO m_strLoginInfo = new HCNetSDK.NET_DVR_USER_LOGIN_INFO();//设备登录信息
String m_sDeviceIP = ipadress;//设备ip地址
m_strLoginInfo.sDeviceAddress = new byte[HCNetSDK.NET_DVR_DEV_ADDRESS_MAX_LEN];
System.arraycopy(m_sDeviceIP.getBytes(), 0, m_strLoginInfo.sDeviceAddress, 0, m_sDeviceIP.length());
String m_sUsername = user;//设备用户名
m_strLoginInfo.sUserName = new byte[HCNetSDK.NET_DVR_LOGIN_USERNAME_MAX_LEN];
System.arraycopy(m_sUsername.getBytes(), 0, m_strLoginInfo.sUserName, 0, m_sUsername.length());
String m_sPassword = psw;//设备密码
m_strLoginInfo.sPassword = new byte[HCNetSDK.NET_DVR_LOGIN_PASSWD_MAX_LEN];
System.arraycopy(m_sPassword.getBytes(), 0, m_strLoginInfo.sPassword, 0, m_sPassword.length());
m_strLoginInfo.wPort = port; //sdk端口
m_strLoginInfo.bUseAsynLogin = false; //是否异步登录:0- 否,1- 是
m_strLoginInfo.write();
HCNetSDK.NET_DVR_DEVICEINFO_V40 m_strDeviceInfo = new HCNetSDK.NET_DVR_DEVICEINFO_V40();//设备信息
lUserID = hCNetSDK.NET_DVR_Login_V40(m_strLoginInfo, m_strDeviceInfo);
if (lUserID == -1) {
System.out.println("登录失败,错误码为" + hCNetSDK.NET_DVR_GetLastError());
return;
} else {
System.out.println("登录成功!");
m_strDeviceInfo.read();
iCharEncodeType = m_strDeviceInfo.byCharEncodeType;
return;

}
}

/**
* 登出操作
*
*/
public static void logout(){
/**登出和清理,释放SDK资源*/
if (lUserID>=0)
{
if (!hCNetSDK.NET_DVR_Logout(lUserID))
{
System.out.println("设备注销失败,错误码:" + hCNetSDK.NET_DVR_GetLastError());
return;
}
System.out.println("设备注销成功!!!");
}
}
}

+ 1
- 1
src/main/java/com/hkversion/AlarmDataParse.java Bestand weergeven

@@ -977,7 +977,7 @@ public class AlarmDataParse {
}
break;
default:
//System.out.println("报警类型" + Integer.toHexString(lCommand));
System.out.println("报警类型" + Integer.toHexString(lCommand));
break;
}
}


Laden…
Annuleren
Opslaan