jiazx0107@163.com
2023-11-10 04a01be7461dc8ba86f4295599e13c74827cff6b
src/main/java/com/fzzy/protocol/sdkhk/common/Alarm.java
@@ -18,89 +18,86 @@
    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);
//    }
    /**