# ibm2-dahua **Repository Path**: 75270093/ibm2-dahua ## Basic Information - **Project Name**: ibm2-dahua - **Description**: 大华门禁SDK集成开门,用户工具类,升级JDK17 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-08-23 - **Last Updated**: 2025-08-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 大华人脸门禁设备对接SDK## 本地库文件部署 由于本SDK依赖本地库文件(.dll/.so),在使用时需要将对应平台的库文件部署到目标系统: ### Windows平台 将`libs/win64`目录下的所有文件复制到系统可识别的路径中,如: - 应用程序运行目录 - 系统PATH环境变量包含的目录 ### Linux平台 将`libs/linux64`目录下的所有文件复制到`/lib64`目录: ```bash sudo cp libs/linux64/* /lib64/ ``` 或者在启动应用时通过`-Djava.library.path`参数指定库文件路径: ```bash java -Djava.library.path=./libs/linux64 -jar your-application.jar ``` 该项目主要用于对接大华人脸门禁(闸机)设备,提供门禁卡管理、人脸管理、出入记录查询等功能。 ## 功能列表 - 门禁控制(开关门) - 门禁状态查询 - 人员信息管理 - 出入记录查询 - 卡片管理 - 人脸照片管理 ## Maven依赖配置 在您的项目中添加以下依赖: ```xml com.netsdk netsdk 1.0-base ## 部署和使用说明 ### 打包和安装到本地Maven仓库 要将项目打包并安装到本地Maven仓库,请执行以下命令: ```bash mvn clean install ``` ### 部署到远程Maven私库 mvn deploy:deploy-file -DgroupId=com.netsdk -DartifactId=netsdk -Dversion=1.0-base -Dpackaging=jar -Dfile=target/netsdk-1.0-base.jar -Durl=http://192.168.0.241:8081/repository/maven-snapshots/ -DrepositoryId=nexus 如果您已经配置了Maven私库,可以直接部署JAR包而无需重新编译打包。首先确保在您的`settings.xml`中配置了私库的认证信息: ```xml your-repo-id your-username your-password ``` 然后在项目中配置`distributionManagement`: ```xml your-repo-id Your Release Repository http://your-nexus-address/repository/maven-releases/ your-repo-id Your Snapshot Repository http://your-nexus-address/repository/maven-snapshots/ ``` 执行以下命令部署到私库: ```bash # 部署Release版本 mvn deploy # 或者部署Snapshot版本 mvn deploy:deploy-file -DgroupId=com.netsdk -DartifactId=netsdk -Dversion=1.0-SNAPSHOT -Dpackaging=jar -Dfile=target/netsdk-1.0-base.jar -Durl=http://192.168.0.241:8081/repository/maven-snapshots/ -DrepositoryId=nexus-snapshots ``` ### 直接上传已存在的JAR文件到私库 如果您已经有了编译好的JAR文件并希望直接上传到私库,可以使用Maven的deploy插件: ```bash mvn deploy:deploy-file -DgroupId=com.netsdk -DartifactId=netsdk -Dversion=1.0-SNAPSHOT -Dpackaging=jar -Dfile=target/netsdk-1.0-base.jar -Durl=http://192.168.0.241:8081/repository/maven-snapshots/ -DrepositoryId=nexus ``` ## 使用示例 ```java import com.netsdk.utils.AccessControlUtil; public class Demo { public static void main(String[] args) { // 初始化并连接设备 boolean connected = AccessControlUtil.initAndConnect("192.168.1.128", 37777, "admin", "sl123456"); if (connected) { // 远程开门 AccessControlUtil.openDoor(); // 查询门禁状态 int status = AccessControlUtil.getDoorStatus(0); System.out.println("门禁状态: " + status); // 远程关门 AccessControlUtil.closeDoor(); // 断开连接 AccessControlUtil.disconnectAndCleanup(); } } } ``` ## API说明 ### AccessControlUtil类 #### initAndConnect(String ip, int port, String username, String password) 初始化SDK并连接设备 参数: - ip: 设备IP地址 - port: 设备端口 - username: 用户名 - password: 密码 返回值: boolean - 连接是否成功 #### disconnectAndCleanup() 断开设备连接并释放资源 #### openDoor() 远程开门 #### closeDoor() 远程关门 #### getDoorStatus(int channel) 查询门禁状态 参数: - channel: 门禁通道号 返回值: - 0: 未知状态 - 1: 门打开 - 2: 门关闭 - 3: 门异常打开 - -1: 查询失败 ## 注意事项 1. 在使用本SDK前,请确保已正确配置设备信息 2. SDK回调为子线程,避免在回调中执行耗时操作 3. Linux环境下不支持图形化界面,仅支持控制台输出 4. 人脸查询仅支持MD5,不支持图片地址查询 5. 使用时需要将对应平台的本地库文件部署到目标系统(详见下方说明) ```