调用ICC大华sdk接口用Java实现统计当日进出动态看一下
时间: 2023-05-30 13:07:36 浏览: 384
以下是一个简单的Java代码示例,用于调用ICC大华SDK接口并统计当日进出动态:
```java
import com.dahua.netsdk.*; // 导入大华SDK的Java库
public class DahuaStats {
public static void main(String[] args) {
// 初始化SDK
HCNetSDK.INSTANCE.NET_DVR_Init();
// 设置登录信息
HCNetSDK.NET_DVR_USER_LOGIN_INFO loginInfo = new HCNetSDK.NET_DVR_USER_LOGIN_INFO();
loginInfo.sDeviceAddress = "192.168.1.1"; // 设备IP地址
loginInfo.wPort = 8000; // 设备端口号
loginInfo.sUserName = "admin"; // 登录用户名
loginInfo.sPassword = "password"; // 登录密码
// 登录设备
HCNetSDK.NET_DVR_DEVICEINFO_V30 deviceInfo = new HCNetSDK.NET_DVR_DEVICEINFO_V30();
HCNetSDK.LONG userId = HCNetSDK.INSTANCE.NET_DVR_Login_V30(loginInfo, deviceInfo);
if (userId.longValue() < 0) {
System.out.println("登录失败,错误码:" + HCNetSDK.INSTANCE.NET_DVR_GetLastError());
return;
}
// 设置查询条件
HCNetSDK.NET_DVR_CARD_RECORD_V50 cardRecord = new HCNetSDK.NET_DVR_CARD_RECORD_V50();
cardRecord.dwSize = cardRecord.size();
cardRecord.dwSearchType = 0; // 查询类型:0-按时间查询
cardRecord.struStartTime.dwYear = 2021; // 查询开始时间:年
cardRecord.struStartTime.dwMonth = 9; // 查询开始时间:月
cardRecord.struStartTime.dwDay = 24; // 查询开始时间:日
cardRecord.struEndTime.dwYear = 2021; // 查询结束时间:年
cardRecord.struEndTime.dwMonth = 9; // 查询结束时间:月
cardRecord.struEndTime.dwDay = 24; // 查询结束时间:日
// 调用查询接口
HCNetSDK.NET_DVR_CARD_RECORD_V50[] cardRecords = new HCNetSDK.NET_DVR_CARD_RECORD_V50[100];
HCNetSDK.INT_PTR pInt = new HCNetSDK.INT_PTR();
pInt.setValue(cardRecords.length);
boolean success = HCNetSDK.INSTANCE.NET_DVR_GetCardRecord_V50(userId, 1, cardRecord, cardRecords, pInt);
if (!success) {
System.out.println("查询失败,错误码:" + HCNetSDK.INSTANCE.NET_DVR_GetLastError());
return;
}
// 统计进出动态
int inCount = 0;
int outCount = 0;
for (int i = 0; i < pInt.getValue(); i++) {
HCNetSDK.NET_DVR_CARD_RECORD_V50 record = cardRecords[i];
if (record.dwInOut == 0) { // 进门
inCount++;
} else if (record.dwInOut == 1) { // 出门
outCount++;
}
}
// 输出统计结果
System.out.println("进门次数:" + inCount);
System.out.println("出门次数:" + outCount);
// 释放资源
HCNetSDK.INSTANCE.NET_DVR_Logout(userId);
HCNetSDK.INSTANCE.NET_DVR_Cleanup();
}
}
```
请注意,以上示例仅供参考,实际使用中需要根据具体情况进行调整。同时,该示例仅统计了当日进出动态,如果需要统计更多信息,可以参考大华SDK的文档,并调用相应的接口。
阅读全文