| | |
| | | * @Date: 2023年02月15日 12:16 |
| | | * @Version: 1.0 |
| | | **/ |
| | | @Slf4j(topic = "hiksdk") |
| | | @Slf4j(topic = "hikSdk") |
| | | public class FMSGCallBack implements HCNetSDK.FMSGCallBack_V31 { |
| | | |
| | | /** |
| | |
| | | CameraEventInfo info; |
| | | String sTime;//事件时间 |
| | | String url = "";//事件图片 |
| | | Boolean isSnapPic=true; |
| | | //lCommand是传的报警类型 |
| | | // log.debug("报警事件类型:lCommand:" + Integer.toHexString(lCommand)); |
| | | switch (lCommand) { |
| | | case HCNetSDK.COMM_ALARM_V30: |
| | | //log.debug("移动侦测、视频丢失、遮挡、IO信号量等报警信息(暂不解析)"+Integer.toHexString(lCommand)); |
| | | case HCNetSDK.COMM_ALARM_RULE: |
| | | log.debug("行为分析信息报警信息"+Integer.toHexString(lCommand)); |
| | | //region 行为分析信息 |
| | | ArdCameras ardCameras = new ArdCameras(); |
| | | ardCameras.setIp(sDeviceIP); |
| | | ardCameras.setPort(wLinkPort); |
| | | IArdCamerasService ardCamerasService = SpringTool.getApplicationContext().getBean(IArdCamerasService.class); |
| | | ArdCameras ardcamere = ardCamerasService.selectArdCamerasList(ardCameras).get(0); |
| | | log.debug("报警事件类型:lCommand:" + Integer.toHexString(lCommand)); |
| | | |
| | | HCNetSDK.NET_VCA_RULE_ALARM strVcaAlarm = new HCNetSDK.NET_VCA_RULE_ALARM(); |
| | | strVcaAlarm.write(); |
| | | Pointer pVCAInfo = strVcaAlarm.getPointer(); |
| | |
| | | //endregion |
| | | break; |
| | | default: |
| | | log.debug("未知行为事件类型:" + strVcaAlarm.struRuleInfo.wEventTypeEx); |
| | | printLog(info); |
| | | // log.debug("未知行为事件类型:" + strVcaAlarm.struRuleInfo.wEventTypeEx); |
| | | isSnapPic=false; |
| | | break; |
| | | } |
| | | //endregion |
| | | //图片存入minio |
| | | url = savePicture(info); |
| | | info.setPicUrl(url); |
| | | if(isSnapPic) { |
| | | url = savePicture(info); |
| | | info.setPicUrl(url); |
| | | } |
| | | publishMqtt(info); |
| | | break; |
| | | case HCNetSDK.COMM_UPLOAD_FACESNAP_RESULT: |
| | | log.debug("人脸检测事件上报"); |
| | | log.debug("人脸检测事件上报(暂不解析)"+Integer.toHexString(lCommand)); |
| | | break; |
| | | case HCNetSDK.COMM_GISINFO_UPLOAD: |
| | | log.debug("GPS报警信息上报"); |
| | | log.debug("GPS报警信息上报(暂不解析)"+Integer.toHexString(lCommand)); |
| | | break; |
| | | case HCNetSDK.COMM_ALARMHOST_CID_ALARM: |
| | | log.debug("报警主机 CID 报告报警上传"); |
| | | log.debug("报警主机 CID 报告报警上传"+Integer.toHexString(lCommand)); |
| | | //region 报警主机报警处理 |
| | | ArdEquipExternal ardEquipExternal = new ArdEquipExternal(); |
| | | ardEquipExternal.setIp(sDeviceIP); |
| | |
| | | private String savePicture(CameraEventInfo info) { |
| | | CameraCmd cmd = new CameraCmd(); |
| | | ArdCameras Cameras = GlobalVariable.cameraMap.get(info.getCameraIp()); |
| | | if(Cameras==null) |
| | | { |
| | | return ""; |
| | | } |
| | | cmd.setCameraId(Cameras.getId()); |
| | | cmd.setChannelNum(info.getCameraChannel()); |
| | | cmd.setBucketName("pic"); |
| | |
| | | * 打印通用光电日志 |
| | | */ |
| | | private void printLog(CameraEventInfo info) { |
| | | log.info("【规则】" + info.getAlarmName() + "【规则id】" + info.getRuleId() + "【类型】" + info.getAlarmType() + |
| | | log.debug("【规则】" + info.getAlarmName() + "【规则id】" + info.getRuleId() + "【类型】" + info.getAlarmType() + |
| | | "【时间】" + info.getAlarmTime() + "【相机id】" + info.getCameraId() + "【相机】" + info.getCameraName() + |
| | | "【IP】" + info.getCameraIp() + "【通道】" + info.getCameraChannel() + "【型号】" + info.getCameraType() + |
| | | "【图片】" + info.getPicUrl() + "【坐标】" + info.getLongitude() + "," + info.getLatitude()); |