From ad89fdba09b8f0596ed41c5b31de6f34fe1ce620 Mon Sep 17 00:00:00 2001
From: ‘liusuyi’ <1951119284@qq.com>
Date: 星期四, 10 八月 2023 17:20:41 +0800
Subject: [PATCH] 优化行为分析信息报警

---
 src/main/java/com/ard/utils/hiksdk/service/impl/FMSGCallBack.java |   42 ++++++++++++++++++++++++++++--------------
 1 files changed, 28 insertions(+), 14 deletions(-)

diff --git a/src/main/java/com/ard/utils/hiksdk/service/impl/FMSGCallBack.java b/src/main/java/com/ard/utils/hiksdk/service/impl/FMSGCallBack.java
index b041298..898dc85 100644
--- a/src/main/java/com/ard/utils/hiksdk/service/impl/FMSGCallBack.java
+++ b/src/main/java/com/ard/utils/hiksdk/service/impl/FMSGCallBack.java
@@ -32,7 +32,7 @@
  * @Date: 2023骞�02鏈�15鏃� 12:16
  * @Version: 1.0
  **/
-@Slf4j(topic = "hiksdk")
+@Slf4j(topic = "hikSdk")
 public class FMSGCallBack implements HCNetSDK.FMSGCallBack_V31 {
 
     /**
@@ -49,19 +49,24 @@
 
         String sDeviceIP = ByteUtils.bytesToStringZh(pAlarmer.sDeviceIP);
         Integer wLinkPort = Integer.valueOf(pAlarmer.wLinkPort);
-
+        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("绉诲姩渚︽祴銆佽棰戜涪澶便�侀伄鎸°�両O淇″彿閲忕瓑鎶ヨ淇℃伅(鏆備笉瑙f瀽)");
             case HCNetSDK.COMM_ALARM_RULE:
+                log.debug("琛屼负鍒嗘瀽淇℃伅鎶ヨ淇℃伅涓婃姤");
                 //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.info("鎶ヨ浜嬩欢绫诲瀷:lCommand:" + Integer.toHexString(lCommand));
+
                 HCNetSDK.NET_VCA_RULE_ALARM strVcaAlarm = new HCNetSDK.NET_VCA_RULE_ALARM();
                 strVcaAlarm.write();
                 Pointer pVCAInfo = strVcaAlarm.getPointer();
@@ -71,7 +76,7 @@
                 sTime = DateUtils.parseTime(strVcaAlarm.dwAbsTime);//浜嬩欢鏃堕棿
                 String ipaddr = new String(strVcaAlarm.struDevInfo.struDevIP.sIpV4).trim();//璁惧ip
                 Integer channel = Integer.valueOf(strVcaAlarm.struDevInfo.byChannel);//閫氶亾
-                CameraEventInfo info = new CameraEventInfo();
+                info = new CameraEventInfo();
                 info.setAlarmName("浜哄憳琛屼负鍒嗘瀽");
                 info.setAlarmTime(sTime);
                 info.setCameraName(ardcamere.getName());
@@ -129,24 +134,27 @@
                         //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);
-                publishMqtt(info);
+                if(isSnapPic) {
+                    url = savePicture(info);
+                    info.setPicUrl(url);
+                    publishMqtt(info);
+                }
+
                 break;
             case HCNetSDK.COMM_UPLOAD_FACESNAP_RESULT:
-                log.debug("浜鸿劯妫�娴嬩簨浠朵笂鎶�");
+                log.debug("浜鸿劯妫�娴嬩簨浠朵笂鎶�(鏆備笉瑙f瀽)");
                 break;
             case HCNetSDK.COMM_GISINFO_UPLOAD:
-                log.debug("GPS鎶ヨ淇℃伅涓婃姤");
+                log.debug("GPS鎶ヨ淇℃伅涓婃姤(鏆備笉瑙f瀽)");
                 break;
             case HCNetSDK.COMM_ALARMHOST_CID_ALARM:
-                log.debug("鎶ヨ涓绘満 CID 鎶ュ憡鎶ヨ涓婁紶");
+                log.debug("鎶ヨ涓绘満CID鎶ュ憡鎶ヨ涓婃姤");
                 //region 鎶ヨ涓绘満鎶ヨ澶勭悊
                 ArdEquipExternal ardEquipExternal = new ArdEquipExternal();
                 ardEquipExternal.setIp(sDeviceIP);
@@ -245,8 +253,10 @@
                 acsInfo.write(0, pAlarmInfo.getByteArray(0, strACSInfo.size()), 0, strACSInfo.size());
                 strACSInfo.read();
                 int dwMajor = strACSInfo.dwMajor;
+
                 if (dwMajor != 5) {
                     //鍙幏鍙栦簨浠�
+                    log.debug("闈炰簨浠舵姤璀︽暟鎹笂鎶�(鏆備笉瑙f瀽)");
                     break;
                 }
                 int dwMinor = strACSInfo.dwMinor;
@@ -347,7 +357,7 @@
                 //endregion
                 break;
             default:
-                log.info("鏈煡鎶ヨ浜嬩欢绫诲瀷:lCommand:" + Integer.toHexString(lCommand));
+                log.debug("鏈煡鎶ヨ浜嬩欢绫诲瀷:lCommand:" + Integer.toHexString(lCommand));
                 break;
 
         }
@@ -395,6 +405,10 @@
     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");
@@ -409,7 +423,7 @@
      * 鎵撳嵃閫氱敤鍏夌數鏃ュ織
      */
     private void printLog(CameraEventInfo info) {
-        log.info("銆愯鍒欍��" + info.getAlarmName() + "銆愯鍒檌d銆�" + info.getRuleId() + "銆愮被鍨嬨��" + info.getAlarmType() +
+        log.debug("銆愯鍒欍��" + info.getAlarmName() + "銆愯鍒檌d銆�" + info.getRuleId() + "銆愮被鍨嬨��" + info.getAlarmType() +
                 "銆愭椂闂淬��" + info.getAlarmTime() + "銆愮浉鏈篿d銆�" + info.getCameraId() + "銆愮浉鏈恒��" + info.getCameraName() +
                 "銆怚P銆�" + info.getCameraIp() + "銆愰�氶亾銆�" + info.getCameraChannel() + "銆愬瀷鍙枫��" + info.getCameraType() +
                 "銆愬浘鐗囥��" + info.getPicUrl() + "銆愬潗鏍囥��" + info.getLongitude() + "," + info.getLatitude());

--
Gitblit v1.9.3