| | |
| | | static FMSGCallBack_V31 fMSFCallBack_V31 = null; |
| | | |
| | | |
| | | /** |
| | | * @param args |
| | | */ |
| | | @SuppressWarnings("resource") |
| | | public static void main(String[] args) throws InterruptedException { |
| | | |
| | | 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"; |
| | | |
| | | String strPath1 = HKUtils.SDK_DIR_LINUX + "/libcrypto.so.1.1"; |
| | | String strPath2 = HKUtils.SDK_DIR_LINUX + "/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"; |
| | | String strPathCom = HKUtils.SDK_DIR_LINUX; |
| | | 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(); |
| | | /**加载日志*/ |
| | | hCNetSDK.NET_DVR_SetLogToFile(3, "../sdklog", false); |
| | | //设置报警回调函数 |
| | | if (fMSFCallBack_V31 == null) { |
| | | fMSFCallBack_V31 = new FMSGCallBack_V31(); |
| | | Pointer pUser = null; |
| | | if (!hCNetSDK.NET_DVR_SetDVRMessageCallBack_V31(fMSFCallBack_V31, pUser)) { |
| | | System.out.println("设置回调函数失败!"); |
| | | return; |
| | | } else { |
| | | System.out.println("设置回调函数成功!"); |
| | | } |
| | | } |
| | | |
| | | |
| | | /** 设备上传的报警信息是COMM_VCA_ALARM(0x4993)类型, |
| | | 在SDK初始化之后增加调用NET_DVR_SetSDKLocalCfg(enumType为NET_DVR_LOCAL_CFG_TYPE_GENERAL)设置通用参数NET_DVR_LOCAL_GENERAL_CFG的byAlarmJsonPictureSeparate为1, |
| | | 将Json数据和图片数据分离上传,这样设置之后,报警布防回调函数里面接收到的报警信息类型为COMM_ISAPI_ALARM(0x6009), |
| | | 报警信息结构体为NET_DVR_ALARM_ISAPI_INFO(与设备无关,SDK封装的数据结构),更便于解析。*/ |
| | | HCNetSDK.NET_DVR_LOCAL_GENERAL_CFG struNET_DVR_LOCAL_GENERAL_CFG = new HCNetSDK.NET_DVR_LOCAL_GENERAL_CFG(); |
| | | struNET_DVR_LOCAL_GENERAL_CFG.byAlarmJsonPictureSeparate = 1; //设置JSON透传报警数据和图片分离 |
| | | struNET_DVR_LOCAL_GENERAL_CFG.write(); |
| | | Pointer pStrNET_DVR_LOCAL_GENERAL_CFG = struNET_DVR_LOCAL_GENERAL_CFG.getPointer(); |
| | | hCNetSDK.NET_DVR_SetSDKLocalCfg(17, pStrNET_DVR_LOCAL_GENERAL_CFG); |
| | | |
| | | //Alarm.Login_V40(0, "218.21.29.30", (short) 8001, "admin", "km2039766"); |
| | | |
| | | Alarm.Login_V40(2, "218.21.29.30", (short) 8002, "admin", "km2039766"); |
| | | |
| | | Alarm.SetAlarm(0); |
| | | |
| | | while (true) { |
| | | //这里加入控制台输入控制,是为了保持连接状态,当输入Y表示布防结束 |
| | | System.out.print("请选择是否撤出布防(Y/N):"); |
| | | Scanner input = new Scanner(System.in); |
| | | String str = input.next(); |
| | | if (str.equals("Y")) { |
| | | break; |
| | | } |
| | | } |
| | | Alarm.Logout(0); |
| | | } |
| | | // @SuppressWarnings("resource") |
| | | // public static void main(String[] args) throws InterruptedException { |
| | | // |
| | | // 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"; |
| | | // |
| | | // String strPath1 = HKUtils.SDK_DIR_LINUX + "/libcrypto.so.1.1"; |
| | | // String strPath2 = HKUtils.SDK_DIR_LINUX + "/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"; |
| | | // String strPathCom = HKUtils.SDK_DIR_LINUX; |
| | | // 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(); |
| | | // /**加载日志*/ |
| | | // hCNetSDK.NET_DVR_SetLogToFile(3, "../sdklog", false); |
| | | // //设置报警回调函数 |
| | | // if (fMSFCallBack_V31 == null) { |
| | | // fMSFCallBack_V31 = new FMSGCallBack_V31(); |
| | | // Pointer pUser = null; |
| | | // if (!hCNetSDK.NET_DVR_SetDVRMessageCallBack_V31(fMSFCallBack_V31, pUser)) { |
| | | // System.out.println("设置回调函数失败!"); |
| | | // return; |
| | | // } else { |
| | | // System.out.println("设置回调函数成功!"); |
| | | // } |
| | | // } |
| | | // |
| | | // |
| | | // /** 设备上传的报警信息是COMM_VCA_ALARM(0x4993)类型, |
| | | // 在SDK初始化之后增加调用NET_DVR_SetSDKLocalCfg(enumType为NET_DVR_LOCAL_CFG_TYPE_GENERAL)设置通用参数NET_DVR_LOCAL_GENERAL_CFG的byAlarmJsonPictureSeparate为1, |
| | | // 将Json数据和图片数据分离上传,这样设置之后,报警布防回调函数里面接收到的报警信息类型为COMM_ISAPI_ALARM(0x6009), |
| | | // 报警信息结构体为NET_DVR_ALARM_ISAPI_INFO(与设备无关,SDK封装的数据结构),更便于解析。*/ |
| | | // HCNetSDK.NET_DVR_LOCAL_GENERAL_CFG struNET_DVR_LOCAL_GENERAL_CFG = new HCNetSDK.NET_DVR_LOCAL_GENERAL_CFG(); |
| | | // struNET_DVR_LOCAL_GENERAL_CFG.byAlarmJsonPictureSeparate = 1; //设置JSON透传报警数据和图片分离 |
| | | // struNET_DVR_LOCAL_GENERAL_CFG.write(); |
| | | // Pointer pStrNET_DVR_LOCAL_GENERAL_CFG = struNET_DVR_LOCAL_GENERAL_CFG.getPointer(); |
| | | // hCNetSDK.NET_DVR_SetSDKLocalCfg(17, pStrNET_DVR_LOCAL_GENERAL_CFG); |
| | | // |
| | | // //Alarm.Login_V40(0, "218.21.29.30", (short) 8001, "admin", "km2039766"); |
| | | // |
| | | // Alarm.Login_V40(2, "218.21.29.30", (short) 8002, "admin", "km2039766"); |
| | | // |
| | | // Alarm.SetAlarm(0); |
| | | // |
| | | // while (true) { |
| | | // //这里加入控制台输入控制,是为了保持连接状态,当输入Y表示布防结束 |
| | | // System.out.print("请选择是否撤出布防(Y/N):"); |
| | | // Scanner input = new Scanner(System.in); |
| | | // String str = input.next(); |
| | | // if (str.equals("Y")) { |
| | | // break; |
| | | // } |
| | | // } |
| | | // Alarm.Logout(0); |
| | | // } |
| | | |
| | | |
| | | /** |