|
|
@ -41,11 +41,25 @@ public class HikLibConfig { |
|
|
|
|
|
|
|
|
//linux系统建议调用以下接口加载组件库 |
|
|
//linux系统建议调用以下接口加载组件库 |
|
|
if (osSelect.isLinux()) { |
|
|
if (osSelect.isLinux()) { |
|
|
|
|
|
//Linux系统加载库路径 |
|
|
|
|
|
String arch = System.getProperty("os.arch").toLowerCase(); |
|
|
|
|
|
System.out.println("OS:" + arch); |
|
|
|
|
|
String strPath1, strPath2, strPathCom; |
|
|
|
|
|
if (arch.contains("amd64") || arch.contains("x86_64") || arch.equals("x86") || arch.startsWith("i386") || arch.startsWith("i686")) { |
|
|
|
|
|
strPath1 = System.getProperty("user.dir") + "/lib/hik-linux64/libcrypto.so.3"; |
|
|
|
|
|
strPath2 = System.getProperty("user.dir") + "/lib/hik-linux64/libssl.so.3"; |
|
|
|
|
|
strPathCom = System.getProperty("user.dir") + "/lib/hik-linux64/"; |
|
|
|
|
|
System.out.println("x86 / x86_64 架构"); |
|
|
|
|
|
// } else if (arch.contains("aarch64") || arch.contains("arm64") || arch.startsWith("arm")) { |
|
|
|
|
|
} else { |
|
|
|
|
|
strPath1 = System.getProperty("user.dir") + "/lib/libcrypto.so.1.1"; |
|
|
|
|
|
strPath2 = System.getProperty("user.dir") + "/lib/libssl.so.1.1"; |
|
|
|
|
|
strPathCom = System.getProperty("user.dir") + "/lib/"; |
|
|
|
|
|
System.out.println("ARM / AArch64 架构"); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
HCNetSDK.BYTE_ARRAY ptrByteArray1 = new HCNetSDK.BYTE_ARRAY(256); |
|
|
HCNetSDK.BYTE_ARRAY ptrByteArray1 = new HCNetSDK.BYTE_ARRAY(256); |
|
|
HCNetSDK.BYTE_ARRAY ptrByteArray2 = 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()); |
|
|
System.arraycopy(strPath1.getBytes(), 0, ptrByteArray1.byValue, 0, strPath1.length()); |
|
|
ptrByteArray1.write(); |
|
|
ptrByteArray1.write(); |
|
|
@ -55,7 +69,6 @@ public class HikLibConfig { |
|
|
ptrByteArray2.write(); |
|
|
ptrByteArray2.write(); |
|
|
hcNetSDK.NET_DVR_SetSDKInitCfg(4, ptrByteArray2.getPointer()); |
|
|
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(); |
|
|
HCNetSDK.NET_DVR_LOCAL_SDK_PATH struComPath = new HCNetSDK.NET_DVR_LOCAL_SDK_PATH(); |
|
|
System.arraycopy(strPathCom.getBytes(), 0, struComPath.sPath, 0, strPathCom.length()); |
|
|
System.arraycopy(strPathCom.getBytes(), 0, struComPath.sPath, 0, strPathCom.length()); |
|
|
struComPath.write(); |
|
|
struComPath.write(); |
|
|
@ -66,8 +79,7 @@ public class HikLibConfig { |
|
|
boolean initSuc = hcNetSDK.NET_DVR_Init(); |
|
|
boolean initSuc = hcNetSDK.NET_DVR_Init(); |
|
|
|
|
|
|
|
|
//异常消息回调 |
|
|
//异常消息回调 |
|
|
if(fExceptionCallBack == null) |
|
|
|
|
|
{ |
|
|
|
|
|
|
|
|
if (fExceptionCallBack == null) { |
|
|
fExceptionCallBack = new HikFExceptionCallBack_Imp(); |
|
|
fExceptionCallBack = new HikFExceptionCallBack_Imp(); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@ -80,8 +92,8 @@ public class HikLibConfig { |
|
|
//启动SDK写日志 |
|
|
//启动SDK写日志 |
|
|
hcNetSDK.NET_DVR_SetLogToFile(3, "./sdkLog", false); |
|
|
hcNetSDK.NET_DVR_SetLogToFile(3, "./sdkLog", false); |
|
|
//设置连接时间与重连时间 |
|
|
//设置连接时间与重连时间 |
|
|
hcNetSDK.NET_DVR_SetConnectTime(200000,1); |
|
|
|
|
|
hcNetSDK.NET_DVR_SetReconnect(100000,true); |
|
|
|
|
|
|
|
|
hcNetSDK.NET_DVR_SetConnectTime(200000, 1); |
|
|
|
|
|
hcNetSDK.NET_DVR_SetReconnect(100000, true); |
|
|
|
|
|
|
|
|
//连接所有nvr |
|
|
//连接所有nvr |
|
|
|
|
|
|
|
|
@ -97,16 +109,25 @@ public class HikLibConfig { |
|
|
*/ |
|
|
*/ |
|
|
private boolean createSDKInstance() { |
|
|
private boolean createSDKInstance() { |
|
|
if (hcNetSDK == null) { |
|
|
if (hcNetSDK == null) { |
|
|
|
|
|
String arch = System.getProperty("os.arch").toLowerCase(); |
|
|
|
|
|
System.out.println("OS:" + arch); |
|
|
|
|
|
|
|
|
synchronized (HCNetSDK.class) { |
|
|
synchronized (HCNetSDK.class) { |
|
|
String strDllPath = ""; |
|
|
String strDllPath = ""; |
|
|
try { |
|
|
try { |
|
|
if (osSelect.isWindows()) |
|
|
if (osSelect.isWindows()) |
|
|
//win系统加载库路径 |
|
|
//win系统加载库路径 |
|
|
strDllPath = System.getProperty("user.dir") + "\\lib\\HCNetSDK.dll"; |
|
|
strDllPath = System.getProperty("user.dir") + "\\lib\\HCNetSDK.dll"; |
|
|
|
|
|
|
|
|
else if (osSelect.isLinux()) |
|
|
|
|
|
|
|
|
else if (osSelect.isLinux()) { |
|
|
//Linux系统加载库路径 |
|
|
//Linux系统加载库路径 |
|
|
strDllPath = System.getProperty("user.dir") + "/lib/libhcnetsdk.so"; |
|
|
|
|
|
|
|
|
if (arch.contains("amd64") || arch.contains("x86_64") || arch.equals("x86") || arch.startsWith("i386") || arch.startsWith("i686")) { |
|
|
|
|
|
strDllPath = System.getProperty("user.dir") + "/lib/hik-linux64/libhcnetsdk.so"; |
|
|
|
|
|
System.out.println("x86 / x86_64 架构"); |
|
|
|
|
|
} else if (arch.contains("aarch64") || arch.contains("arm64") || arch.startsWith("arm")) { |
|
|
|
|
|
strDllPath = System.getProperty("user.dir") + "/lib/libhcnetsdk.so"; |
|
|
|
|
|
System.out.println("ARM / AArch64 架构"); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
hcNetSDK = (HCNetSDK) Native.loadLibrary(strDllPath, HCNetSDK.class); |
|
|
hcNetSDK = (HCNetSDK) Native.loadLibrary(strDllPath, HCNetSDK.class); |
|
|
// HCNetSDK INSTANCE = (HCNetSDK) Native.load(LibraryLoad.getLoadLibrary("libhcnetsdk"), HCNetSDK.class); |
|
|
// HCNetSDK INSTANCE = (HCNetSDK) Native.load(LibraryLoad.getLoadLibrary("libhcnetsdk"), HCNetSDK.class); |
|
|
} catch (Exception ex) { |
|
|
} catch (Exception ex) { |
|
|
|