Newer
Older
casic-robot-inspection / casic-server / src / main / java / com / casic / missiles / config / HikLibConfig.java
liwenhao on 19 Oct 2023 1 KB 海康sdk调用
package com.casic.missiles.config;

import com.casic.missiles.ptz.service.HCNetSDK;
import com.sun.jna.Native;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import java.io.File;

/**
 * @创建人 qianchengcheng
 * @创建时间 2022/4/25
 * @描述
 */
//@Configuration
public class HikLibConfig {

    @Value("${casic.hiklib:-1}")
    private String hikLibPath;

    private static HCNetSDK hcNetSDK;

    @Bean
    public HCNetSDK initHkSDK() {
        System.out.println("initHkSDK.getHklibPath=========>" + hikLibPath);
        String os = System.getProperty("os.name");
        if (StringUtils.isNotEmpty(os) && os.toLowerCase().startsWith("windows")) {
            if ("-1".equals(hikLibPath)) {
                // 未配置海康库文件路径,且未打成jar包,读取工程中的库文件
                String path = (HikLibConfig.class.getResource("/").getPath()).replaceAll("%20", " ").substring(1).replace("/",
                        "\\");
                hikLibPath = path + "hiklib" + File.separator + "HCNetSDK.dll";
            }
        }
        hcNetSDK = (HCNetSDK) Native.loadLibrary(hikLibPath, HCNetSDK.class);
        return hcNetSDK;
    }
}