# 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. 使用时需要将对应平台的本地库文件部署到目标系统(详见下方说明)
```