diff --git a/src/main/java/com/hkversion/AlarmDataParse.java b/src/main/java/com/hkversion/AlarmDataParse.java index e51b63a..e23b701 100644 --- a/src/main/java/com/hkversion/AlarmDataParse.java +++ b/src/main/java/com/hkversion/AlarmDataParse.java @@ -1,7 +1,9 @@ package com.hkversion; +import com.alibaba.fastjson.JSONObject; import com.common.CommonUtil; import com.sun.jna.Pointer; +import com.yzx.callback.AlarmCallback; import java.io.*; import java.nio.ByteBuffer; @@ -14,7 +16,7 @@ import java.util.Date; */ public class AlarmDataParse { - public static void alarmDataHandle(int lCommand, HCNetSDK.NET_DVR_ALARMER pAlarmer, Pointer pAlarmInfo, int dwBufLen, Pointer pUser) { + public static void alarmDataHandle(int lCommand, HCNetSDK.NET_DVR_ALARMER pAlarmer, Pointer pAlarmInfo, int dwBufLen, Pointer pUser, AlarmCallback callback) { System.out.println("报警事件类型: lCommand:" + Integer.toHexString(lCommand)); String sTime; String MonitoringSiteID; @@ -568,7 +570,8 @@ public class AlarmDataParse { } break; case HCNetSDK.COMM_ALARM_ACS: //门禁主机报警信息 - + //组装数据 + JSONObject json = new JSONObject(); HCNetSDK.NET_DVR_ACS_ALARM_INFO strACSInfo = new HCNetSDK.NET_DVR_ACS_ALARM_INFO(); strACSInfo.write(); Pointer pACSInfo = strACSInfo.getPointer(); diff --git a/src/main/java/com/hkversion/FMSGCallBack_V31.java b/src/main/java/com/hkversion/FMSGCallBack_V31.java index d5fdcba..3a2a72f 100644 --- a/src/main/java/com/hkversion/FMSGCallBack_V31.java +++ b/src/main/java/com/hkversion/FMSGCallBack_V31.java @@ -2,12 +2,18 @@ package com.hkversion; import com.sun.jna.Pointer; +import com.yzx.callback.AlarmCallback; public class FMSGCallBack_V31 implements HCNetSDK.FMSGCallBack_V31 { + private AlarmCallback callback; + public FMSGCallBack_V31(AlarmCallback callback){ + this.callback = callback; + } + //报警信息回调函数 public boolean invoke(int lCommand, HCNetSDK.NET_DVR_ALARMER pAlarmer, Pointer pAlarmInfo, int dwBufLen, Pointer pUser) { - AlarmDataParse.alarmDataHandle(lCommand, pAlarmer, pAlarmInfo, dwBufLen, pUser); + AlarmDataParse.alarmDataHandle(lCommand, pAlarmer, pAlarmInfo, dwBufLen, pUser,callback); return true; } } diff --git a/src/main/java/com/yzx/impl/HKVersion.java b/src/main/java/com/yzx/impl/HKVersion.java index 0b18c09..f5639a7 100644 --- a/src/main/java/com/yzx/impl/HKVersion.java +++ b/src/main/java/com/yzx/impl/HKVersion.java @@ -7,6 +7,7 @@ import com.hkversion.HCNetSDK; import com.sun.jna.Native; import com.sun.jna.Pointer; import com.yzx.IHardwareEquipment; +import com.yzx.callback.AlarmCallback; public class HKVersion implements IHardwareEquipment { @@ -33,14 +34,14 @@ public class HKVersion implements IHardwareEquipment { private HardwareEquipmentInfo info; public HKVersion(HardwareEquipmentInfo info){ this.info = info; - this.alarm(); + this.alarm(info.getAlarmCallback()); } - private void alarm(){ + private void alarm(AlarmCallback callback){ //设置报警回调函数 if (fMSFCallBack_V31 == null) { - fMSFCallBack_V31 = new FMSGCallBack_V31(); + fMSFCallBack_V31 = new FMSGCallBack_V31(callback); Pointer pUser = null; if (!hCNetSDK.NET_DVR_SetDVRMessageCallBack_V31(fMSFCallBack_V31, pUser)) { System.out.println("设置回调函数失败!");