|
|
@@ -9,6 +9,7 @@ import com.usoftchina.smartschool.device.dahua.lib.DahuaLibrary.*;
|
|
|
import com.usoftchina.smartschool.device.dahua.lib.DahuaSdk;
|
|
|
import com.usoftchina.smartschool.device.dahua.lib.DahuaSdkException;
|
|
|
import com.usoftchina.smartschool.device.dto.AccessControlInfo;
|
|
|
+import com.usoftchina.smartschool.device.dto.DeviceInfo;
|
|
|
import com.usoftchina.smartschool.device.event.AccessControlEvent;
|
|
|
import org.slf4j.Logger;
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
@@ -39,14 +40,14 @@ public class DahuaDataAnalyzeService {
|
|
|
/**
|
|
|
* 启动智能数据监听
|
|
|
*
|
|
|
- * @param deviceId 门禁设备ID
|
|
|
+ * @param device 门禁设备
|
|
|
* @param loginHandle 登录句柄
|
|
|
*/
|
|
|
- public void startListen(String deviceId, NativeLong loginHandle) {
|
|
|
+ public void startListen(DeviceInfo device, NativeLong loginHandle) {
|
|
|
long key = loginHandle.longValue();
|
|
|
if (key != 0 && !analyzerHandles.containsKey(key)) {
|
|
|
NativeLong lAnalyzerHandle = sdk.getInstance().CLIENT_RealLoadPictureEx(loginHandle, 0,
|
|
|
- DahuaEvents.EVENT_IVS_ALL, true, new AnalyzerDataCallBack(deviceId),
|
|
|
+ DahuaEvents.EVENT_IVS_ALL, true, new AnalyzerDataCallBack(device),
|
|
|
new NativeLong(), null);
|
|
|
analyzerHandles.put(key, lAnalyzerHandle);
|
|
|
}
|
|
|
@@ -56,11 +57,11 @@ public class DahuaDataAnalyzeService {
|
|
|
* 智能分析数据回调
|
|
|
*/
|
|
|
class AnalyzerDataCallBack implements fAnalyzerDataCallBack {
|
|
|
- private final String deviceId;
|
|
|
+ private final DeviceInfo device;
|
|
|
|
|
|
- public AnalyzerDataCallBack(String deviceId) {
|
|
|
+ public AnalyzerDataCallBack(DeviceInfo device) {
|
|
|
super();
|
|
|
- this.deviceId = deviceId;
|
|
|
+ this.device = device;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
@@ -73,18 +74,17 @@ public class DahuaDataAnalyzeService {
|
|
|
case DahuaEvents.EVENT_IVS_ACCESS_CTL:
|
|
|
DEV_EVENT_ACCESS_CTL_INFO info = new DEV_EVENT_ACCESS_CTL_INFO(pAlarmInfo);
|
|
|
if (logger.isDebugEnabled()) {
|
|
|
- logger.debug(info.toString());
|
|
|
+ logger.debug("Device[{}] Port[{}] CallBack[{}]", device.getIp(), device.getPort(), info.toString());
|
|
|
}
|
|
|
AccessControlInfo accessControlInfo = new AccessControlInfo();
|
|
|
if (dwBufSize > 0) {
|
|
|
accessControlInfo.setImageData(pBuffer.getByteArray(0, dwBufSize));
|
|
|
}
|
|
|
- accessControlInfo.setCardNo(new String(info.szCardNo));
|
|
|
+ accessControlInfo.setCardNo(new String(info.szCardNo).trim());
|
|
|
accessControlInfo.setEventType(convertEventType(info.emEventType));
|
|
|
accessControlInfo.setOpenMethod(convertOpenMethod(info.emOpenMethod));
|
|
|
accessControlInfo.setEventTime(info.UTC.toDate());
|
|
|
- SpringContextHolder.getContext().publishEvent(new AccessControlEvent(this,
|
|
|
- deviceId, accessControlInfo));
|
|
|
+ SpringContextHolder.getContext().publishEvent(new AccessControlEvent(this, device, accessControlInfo));
|
|
|
// 其他地方可通过监听 AccessControlEvent 来扩展
|
|
|
break;
|
|
|
/**
|