src/main/java/com/ard/alarm/camera/domain/CameraCmd.java
@@ -37,4 +37,7 @@ String objectName; /*æ¯å¦ä¸ä¼ minio*/ boolean isUploadMinio; /*é²åºå· ä»0å¼å§*/ Integer wZoneIndex; } src/main/java/com/ard/alarm/tube/service/TubeAlarmService.java
@@ -50,7 +50,7 @@ String start = messages[0]; String host = messages[1]; String tubeId = messages[2]; String alarmTime = DateUtils.convertDate(messages[3]); String alarmTime = DateUtils.convertDate(messages[3],"yyyy/M/d H:m:s"); String position = messages[4]; String type = messages[5]; String watcher = messages[6]; src/main/java/com/ard/utils/ByteUtils.java
@@ -2,6 +2,7 @@ import javax.xml.bind.DatatypeConverter; import java.io.ByteArrayOutputStream; import java.io.UnsupportedEncodingException; import java.nio.ByteBuffer; import java.util.zip.CRC32; @@ -14,6 +15,26 @@ **/ public class ByteUtils { /** * byteæ°ç»è½¬ä¸æå符串 */ public static String bytesToStringZh(byte[] bytes) { String zhStr = ""; try { int position = ByteUtils.findIndexOfDoubleZero(bytes); if (position != -1) { byte[] result = new byte[position]; System.arraycopy(bytes, 0, result, 0, position); zhStr = new String(result, "GBK"); } else { zhStr = new String(bytes, "GBK"); } } catch (UnsupportedEncodingException e) { e.printStackTrace(); } return zhStr; } /** * Byteåè转Hex * * @param b åè src/main/java/com/ard/utils/DateUtils.java
@@ -199,10 +199,11 @@ /** * æ¥æåç¬¦ä¸²çææ¥æ¶åç§èªå¨è¡¥é¶,å¹¶å°/æ¿æ¢æ- * "yyyy/M/d H:m:s" to "yyyy-MM-dd HH:mm:ss" * */ public static String convertDate(String startDate) { DateTimeFormatter inputFormat = DateTimeFormatter.ofPattern("yyyy/M/d H:m:s"); DateTimeFormatter outputFormat = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); return LocalDateTime.parse(startDate, inputFormat).format(outputFormat); public static String convertDate(String startDate,String inputFormat) { DateTimeFormatter inputdtf = DateTimeFormatter.ofPattern(inputFormat); DateTimeFormatter outputdtf = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); return LocalDateTime.parse(startDate, inputdtf).format(outputdtf); } } src/main/java/com/ard/utils/hiksdk/domain/ExternalAlarmEventInfo.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,70 @@ package com.ard.utils.hiksdk.domain; import lombok.Data; /** * @Description: å¤èæ¥è¦äºä»¶ä¿¡æ¯ * @ClassName: ExternalAlarmEventInfo * @Author: åèä¹ * @Date: 2023å¹´07æ06æ¥16:19 * @Version: 1.0 **/ @Data public class ExternalAlarmEventInfo { /** * æ¥è¦ID */ String alarmId; /** * æ¥è¦åç§° */ String alarmName; /** * é²åºID */ Integer defenseId; /** * é²åºåç§° */ String defenseName; /** * æ¥è¦ç±»å« */ String alarmType; /** * æ¥è¦æ¶é´ */ String alarmTime; /** * åç³»ç»ID */ Integer subSysNo; /** * å ³èç¸æºid */ String cameraId; /** * å ³èç¸æºåç§° */ String cameraName; /** * å ³èç¸æºip */ String cameraIp; /** * å ³èç¸æºç»åº¦ */ Double longitude; /** * å ³èç¸æºçº¬åº¦ */ Double latitude; /** * å ³èç¸æºç±»å */ String cameraType; } src/main/java/com/ard/utils/hiksdk/domain/alarmEventInfo.java
@@ -11,12 +11,13 @@ */ @Data public class alarmEventInfo { /** * æ¥è¦åç§° */ String alarmName; /** * æ¥è¦ç±»å« * æ¥è¦ç±»å« */ String alarmType; /** src/main/java/com/ard/utils/hiksdk/service/impl/FMSGCallBack.java
@@ -5,7 +5,9 @@ import com.ard.alarm.camera.domain.CameraCmd; import com.ard.alarm.camera.service.impl.ArdCamerasServiceImpl; import com.ard.config.MinioClientSingleton; import com.ard.utils.ByteUtils; import com.ard.utils.hiksdk.common.GlobalVariable; import com.ard.utils.hiksdk.domain.ExternalAlarmEventInfo; import com.ard.utils.hiksdk.domain.alarmEventInfo; import com.ard.utils.hiksdk.util.hikSdkUtil.HCNetSDK; import com.ard.utils.hiksdk.util.minio.MinioUtils; @@ -15,6 +17,7 @@ import com.sun.jna.Pointer; import lombok.extern.slf4j.Slf4j; import javax.xml.bind.DatatypeConverter; import java.io.ByteArrayInputStream; import java.io.InputStream; import java.nio.ByteBuffer; @@ -43,10 +46,16 @@ @Override public boolean invoke(int lCommand, HCNetSDK.NET_DVR_ALARMER pAlarmer, Pointer pAlarmInfo, int dwBufLen, Pointer pUser) { ArdCamerasServiceImpl ardCamerasService = SpringTool.getApplicationContext().getBean(ArdCamerasServiceImpl.class); String sDeviceIP = ByteUtils.bytesToStringZh(pAlarmer.sDeviceIP); Integer wLinkPort = Integer.valueOf(pAlarmer.wLinkPort); ArdCameras ardCameras = new ArdCameras(); ardCameras.setIp(sDeviceIP); ardCameras.setPort(wLinkPort); ArdCameras ardcamere = ardCamerasService.selectArdCamerasList(ardCameras).get(0); String sTime;//äºä»¶æ¶é´ String url;//äºä»¶å¾ç alarmEventInfo info;//äºä»¶ä¿¡æ¯ //lCommandæ¯ä¼ çæ¥è¦ç±»å switch (lCommand) { case HCNetSDK.COMM_ALARM_RULE: @@ -57,13 +66,10 @@ Pointer pVCAInfo = strVcaAlarm.getPointer(); pVCAInfo.write(0, pAlarmInfo.getByteArray(0, strVcaAlarm.size()), 0, strVcaAlarm.size()); strVcaAlarm.read(); Integer ruleID = Integer.valueOf(strVcaAlarm.struRuleInfo.byRuleID); Integer ruleID = Integer.valueOf(strVcaAlarm.struRuleInfo.byRuleID); sTime = DateUtils.parseTime(strVcaAlarm.dwAbsTime);//äºä»¶æ¶é´ String ipaddr = new String(strVcaAlarm.struDevInfo.struDevIP.sIpV4).trim();//设å¤ip Integer channel = Integer.valueOf(strVcaAlarm.struDevInfo.byChannel);//éé ArdCameras ardCameras = new ArdCameras(); ardCameras.setIp(ipaddr); ArdCameras ardcamere = ardCamerasService.selectArdCamerasList(ardCameras).get(0); info = new alarmEventInfo(); info.setAlarmName("人åè¡ä¸ºåæ"); info.setAlarmTime(sTime); @@ -138,6 +144,85 @@ case HCNetSDK.COMM_GISINFO_UPLOAD: log.info("GPSæ¥è¦ä¿¡æ¯ä¸æ¥"); break; case HCNetSDK.COMM_ALARMHOST_CID_ALARM: log.info("æ¥è¦ä¸»æº CID æ¥åæ¥è¦ä¸ä¼ "); HCNetSDK.NET_DVR_CID_ALARM netDvrCidAlarm = new HCNetSDK.NET_DVR_CID_ALARM(); netDvrCidAlarm.write(); Pointer pCIDInfo = netDvrCidAlarm.getPointer(); pCIDInfo.write(0, pAlarmInfo.getByteArray(0, netDvrCidAlarm.size()), 0, netDvrCidAlarm.size()); netDvrCidAlarm.read(); //CIDäºä»¶å String sCIDCode = ByteUtils.bytesToStringZh(netDvrCidAlarm.sCIDCode);//CIDäºä»¶å //CIDäºä»¶å //String sCIDDescribe = ByteUtils.bytesToStringZh(netDvrCidAlarm.sCIDDescribe);//CIDäºä»¶å int position = ByteUtils.findIndexOfDoubleZero(netDvrCidAlarm.sCIDDescribe); String sCIDDescribe; if (position != -1) { byte[] result = new byte[position]; System.arraycopy(netDvrCidAlarm.sCIDDescribe, 0, result, 0, position); sCIDDescribe = ByteUtils.bytesToStringZh(result); } else { sCIDDescribe = ByteUtils.bytesToStringZh(netDvrCidAlarm.sCIDDescribe); } //è§¦åæ¥è¦çæ¶é´ç¹ String struTriggerTime = DateUtils.convertDate(parseAlarmTime(netDvrCidAlarm.struTriggerTime), "yyyy-M-d H:m:s"); //ä¸ä¼ æ¥è¦çæ¶é´ç¹ String struUploadTime = DateUtils.convertDate(parseAlarmTime(netDvrCidAlarm.struUploadTime), "yyyy-M-d H:m:s"); //æ¥åç±»å String byReportType = ""; switch (netDvrCidAlarm.byReportType) { case 1: byReportType = "é²åºæ¥è¦"; break; case 2: byReportType = "è§é¢æ¥è¦"; break; case 3: byReportType = "软é²åºæ¥è¦"; break; case 4: byReportType = "æææ¥è¦"; break; case 5: byReportType = "鲿æ¥è¦ "; break; case 6: byReportType = "æä½æ¥å "; break; case 7: byReportType = "å¼å¸¸æ¥å "; break; } //åç³»ç»å· Integer bySubSysNo = Integer.valueOf(netDvrCidAlarm.bySubSysNo); //é²åºå· èµ·å§0 Integer wDefenceNo = Integer.valueOf(netDvrCidAlarm.wDefenceNo); //é²åºåç§° String wDefenceName = ""; if (!bySubSysNo.equals(-1)) { CameraCmd cmd = new CameraCmd(); cmd.setCameraId(ardcamere.getId()); cmd.setWZoneIndex(wDefenceNo); wDefenceName = HikClientUtil.getDefenseZoneName(cmd); } if (sCIDDescribe.contains("æ¢å¤")) { return true; } ExternalAlarmEventInfo externalAlarmEventInfo = new ExternalAlarmEventInfo(); externalAlarmEventInfo.setAlarmId(sCIDCode); externalAlarmEventInfo.setAlarmName(sCIDDescribe); externalAlarmEventInfo.setDefenseId((wDefenceNo + 1) ); externalAlarmEventInfo.setDefenseName(wDefenceName); externalAlarmEventInfo.setSubSysNo(bySubSysNo); externalAlarmEventInfo.setAlarmType(byReportType); externalAlarmEventInfo.setAlarmTime(struTriggerTime); externalAlarmEventInfo.setCameraId(ardcamere.getId()); externalAlarmEventInfo.setCameraName(ardcamere.getName()); externalAlarmEventInfo.setCameraIp(ardcamere.getIp()); externalAlarmEventInfo.setCameraType(ardcamere.getGdtype()); publishMqtt(externalAlarmEventInfo); break; default: log.info("æªç¥æ¥è¦äºä»¶ç±»å:lCommand:" + Integer.toHexString(lCommand)); break; @@ -198,19 +283,48 @@ } /** * æå°æ¥å¿ * æå°éç¨å çµæ¥å¿ */ private void printLog(alarmEventInfo info) { log.info("ãè§åã" + info.getAlarmName() +"ãè§åidã" + info.getRuleId() + "ãç±»åã" + info.getAlarmType() + log.info("ãè§åã" + info.getAlarmName() + "ãè§åidã" + info.getRuleId() + "ãç±»åã" + info.getAlarmType() + "ãæ¶é´ã" + info.getAlarmTime() + "ãç¸æºidã" + info.getCameraId() + "ãç¸æºã" + info.getCameraName() + "ãIPã" + info.getCameraIp() + "ãééã" + info.getCameraChannel() +"ãåå·ã" + info.getCameraType() + "ãIPã" + info.getCameraIp() + "ãééã" + info.getCameraChannel() + "ãåå·ã" + info.getCameraType() + "ãå¾çã" + info.getPicUrl() + "ãåæ ã" + info.getLongitude() + "," + info.getLatitude()); } /** * æ¨émqtt * æå°å¤èæ¥è¦æ¥å¿ */ private void printLog(ExternalAlarmEventInfo info) { log.info("ãæ¥è¦IDã" + info.getAlarmId() + "ãæ¥è¦åç§°ã" + info.getAlarmName() + "ãé²åºIDã" + info.getDefenseId() + "ãé²åºåç§°ã" + info.getDefenseName() + "ãç±»åã" + info.getAlarmType() + "ãæ¶é´ã" + info.getAlarmTime() + "ãç¸æºIDã" + info.getCameraId() + "ãç¸æºã" + info.getCameraName() + "ãIPã" + info.getCameraIp() + "ãåå·ã" + info.getCameraType()); } /** * éç¨å çµæ¥è¦æ¨émqtt */ private void publishMqtt(alarmEventInfo info) { // printLog(info); // printLog(info); MqttConsumer.publish(2, false, "camera", JSON.toJSONString(info)); } /** * å¤èæ¥è¦æ¨émqtt */ private void publishMqtt(ExternalAlarmEventInfo info) { printLog(info); MqttConsumer.publish(2, false, "camera", JSON.toJSONString(info)); } /** * æ¶é´æ ¼å¼å */ private String parseAlarmTime(HCNetSDK.NET_DVR_TIME_EX netDvrTimeEx) { short wYear = netDvrTimeEx.wYear; byte byMonth = netDvrTimeEx.byMonth; byte byDay = netDvrTimeEx.byDay; byte byHour = netDvrTimeEx.byHour; byte byMinute = netDvrTimeEx.byMinute; byte bySecond = netDvrTimeEx.bySecond; return wYear + "-" + byMonth + "-" + byDay + " " + byHour + ":" + byMinute + ":" + bySecond; } } src/main/java/com/ard/utils/hiksdk/service/impl/HikClientUtil.java
@@ -2,11 +2,13 @@ import com.ard.alarm.camera.domain.ArdCameras; import com.ard.alarm.camera.domain.CameraCmd; import com.ard.utils.ByteUtils; import com.ard.utils.hiksdk.common.GlobalVariable; import com.ard.utils.hiksdk.util.hikSdkUtil.HCNetSDK; import com.ard.utils.hiksdk.util.minio.MinioUtils; import com.sun.jna.Native; import com.sun.jna.Platform; import com.sun.jna.Pointer; import com.sun.jna.ptr.IntByReference; import lombok.extern.slf4j.Slf4j; @@ -124,7 +126,6 @@ * @å建æ¶é´ 2023/1/17 16:12 * @ä¿®æ¹äººåå ¶å®ä¿¡æ¯ */ public static void login(ArdCameras camera) { // åå§å if (!hCNetSDK.NET_DVR_Init()) { @@ -186,7 +187,7 @@ Thread.sleep(100); login(camera); String ip = camera.getIp(); cameraMap.put(ip,camera); cameraMap.put(ip, camera); } } catch (Exception ex) { log.error("åå§åç»å½ç¸æºå¼å¸¸ï¼" + ex.getMessage()); @@ -254,7 +255,7 @@ HCNetSDK.NET_DVR_SETUPALARM_PARAM m_strAlarmInfo = new HCNetSDK.NET_DVR_SETUPALARM_PARAM(); m_strAlarmInfo.dwSize = m_strAlarmInfo.size(); // æºè½äº¤éå¸é²ä¼å 级ï¼0 - ä¸ç级ï¼é«ï¼ï¼1 - äºç级ï¼ä¸ï¼ï¼2 - ä¸ç级ï¼ä½ï¼ m_strAlarmInfo.byLevel = 1; m_strAlarmInfo.byLevel = 2; // æºè½äº¤éæ¥è¦ä¿¡æ¯ä¸ä¼ ç±»åï¼0 - èæ¥è¦ä¿¡æ¯ï¼NET_DVR_PLATE_RESULTï¼, 1 - æ°æ¥è¦ä¿¡æ¯(NET_ITS_PLATE_RESULT) m_strAlarmInfo.byAlarmInfoType = 1; // å¸é²ç±»å(ä» é对é¨ç¦ä¸»æºã人è¯è®¾å¤)ï¼0 - 客æ·ç«¯å¸é²(伿ç½ç»ä¼ )ï¼1 - 宿¶å¸é²(åªä¸ä¼ 宿¶æ°æ®) @@ -263,7 +264,6 @@ // å¸é²æåï¼è¿åå¸é²æåçæ°æ®ä¼ è¾ééå· lAlarmHandle = hCNetSDK.NET_DVR_SetupAlarmChan_V41(lUserID, m_strAlarmInfo); if (lAlarmHandle == -1) { log.error("设å¤å¸é²å¤±è´¥ï¼é误ç ==========ã" + hCNetSDK.NET_DVR_GetLastError()); log.error("设å¤å¸é²å¤±è´¥ï¼é误ç ==========ã" + hCNetSDK.NET_DVR_GetLastError()); // 注é éæ¾sdkèµæº logout(lUserID); @@ -287,6 +287,7 @@ // éæ¾sdkèµæº hCNetSDK.NET_DVR_Cleanup(); } /** * æå¾ * @@ -344,4 +345,38 @@ return ""; } } /** * è·åé²åºåç§° * ééå·==é²åºå· ä»0å¼å§ * åèä¹ * 2023/7/6 10:48 */ public static String getDefenseZoneName(CameraCmd cmd) { String name=""; try { String cameraId = cmd.getCameraId(); Integer channelNum = cmd.getWZoneIndex();//ééå·==é²åºå· if (!GlobalVariable.loginMap.containsKey(cameraId)) { return name; } Integer userId = GlobalVariable.loginMap.get(cameraId); HCNetSDK.NET_DVR_ALARMIN_PARAM netDvrAlarminParam = new HCNetSDK.NET_DVR_ALARMIN_PARAM(); Pointer point = netDvrAlarminParam.getPointer(); IntByReference ibrBytesReturned = new IntByReference(); netDvrAlarminParam.write(); boolean b = hCNetSDK.NET_DVR_GetDVRConfig(userId, HCNetSDK.NET_DVR_GET_ALARMIN_PARAM, channelNum, point, netDvrAlarminParam.size(), ibrBytesReturned); if (b) { netDvrAlarminParam.read(); name = ByteUtils.bytesToStringZh(netDvrAlarminParam.byName); } else { int error = hCNetSDK.NET_DVR_GetLastError(); log.info("è·åé²åºå称失败:" + error); } } catch (Exception ex) { log.error("è·åé²åºåç§°å¼å¸¸:" + ex.getMessage()); } return name; } } src/main/java/com/ard/utils/hiksdk/service/impl/LoginResultCallBack.java
@@ -1,6 +1,7 @@ package com.ard.utils.hiksdk.service.impl; import com.ard.alarm.camera.domain.ArdCameras; import com.ard.alarm.camera.domain.CameraCmd; import com.ard.utils.hiksdk.common.GlobalVariable; import com.ard.utils.hiksdk.util.hikSdkUtil.HCNetSDK; import com.sun.jna.Pointer; src/main/java/com/ard/utils/hiksdk/util/hikSdkUtil/HCNetSDK.java
@@ -530,9 +530,9 @@ public static final int NET_DVR_SET_DDNSCFG_EX = 275;//设置æ©å±DDNSåæ° public static final int NET_DVR_SET_PTZPOS = 292; //äºå°è®¾ç½®PTZä½ç½® public static final int NET_DVR_GET_PTZPOS = 293; //äºå°è·åPTZä½ç½® public static final int NET_DVR_SET_PTZLOCKCFG=3288;//设置äºå°éå®ä¿¡æ¯ public static final int NET_DVR_GET_PTZLOCKCFG=3287;//è·åäºå°éå®ä¿¡æ¯ public static final int NET_DVR_PTZ_INITIALPOSITIONCTRL=3283;//é¶æ¹ä½è§æ§å¶ public static final int NET_DVR_SET_PTZLOCKCFG = 3288;//设置äºå°éå®ä¿¡æ¯ public static final int NET_DVR_GET_PTZLOCKCFG = 3287;//è·åäºå°éå®ä¿¡æ¯ public static final int NET_DVR_PTZ_INITIALPOSITIONCTRL = 3283;//é¶æ¹ä½è§æ§å¶ public static final int NET_DVR_GET_PTZSCOPE = 294;//äºå°è·åPTZèå´ public static final int NET_DVR_SET_BASICPARAMCFG = 3271;//设置PTZåºæ¬åæ°ä¿¡æ¯ public static final int NET_DVR_COMPLETE_RESTORE_CTRL = 3420; //设置å®å ¨æ¢å¤åºåå¼ @@ -1162,7 +1162,7 @@ public static class NET_DVR_SCHEDTIME extends HIKSDKStructure { public byte byStartHour; //å¼å§æ¶é´ public byte byStartMin; public byte byStopHour; //ç»ææ¶é´ public byte byStopHour; //ç»ææ¶é´ public byte byStopMin; @@ -3150,6 +3150,66 @@ public NET_DVR_TIMEPOINT struEndPoint; //夿¶å¶åæ¢æ¶é´ } //é²åºåæ° public static class NET_DVR_ALARMIN_PARAM extends HIKSDKStructure { public int dwSize; public byte[] byName = new byte[NAME_LEN]; // public DETECTOR_TYPE wDetectorType; public byte byType; public byte byUploadAlarmRecoveryReport; public int dwParam; //public byte[][] struAlarmTime = new byte[MAX_DAYS][MAX_TIMESEGMENT]; public byte[] byAssociateAlarmOut = new byte[MAX_ALARMHOST_ALARMOUT_NUM]; public byte[] byAssociateSirenOut = new byte[8]; public byte bySensitivityParam; public byte byArrayBypass; public byte byJointSubSystem; public byte byModuleStatus; public short wModuleAddress; public byte byModuleChan; public byte byModuleType; public short wZoneIndex; public short wInDelay; public short wOutDelay; public byte byAlarmType; public byte byZoneResistor; public float fZoneResistorManual; public byte[] byDetectorSerialNo = new byte[128]; public byte byZoneSignalType; public byte byDisableDetectorTypeCfg; public byte byTimeOutRange; public byte[] byAssociateLampOut = new byte[8]; public short wTimeOut; public byte byDetectorSignalIntensity; public byte byTimeOutMethod; public byte[] byRes3 = new byte[8]; } enum DETECTOR_TYPE { PANIC_BUTTON, MAGNETIC_CONTACT, SMOKE_DETECTOR, ACTIVE_INFRARED_DETECTOR, PASSIVE_INFRARED_DETECTOR, GLASS_BREAK_DETECTOR, VIBRATION_DETECTOR, DUAL_TECHNOLOGY_PIR_DETECTOR, TRIPLE_TECHNOLOGY_PIR_DETECTOR, HUMIDITY_DETECTOR, TEMPERATURE_DETECTOR, COMBUSTIBLE_GAS_DETECTOR, DYNAMIC_SWITCH, CONTROL_SWITCH, SMART_LOCK, WATER_DETECTOR, DISPLACEMENT_DETECTOR, SINGLE_INFRARED_DETECTOR, SINGLE_ZONE_MODULE, CURTAIN_INFRARED_DETECTOR, DOORBELL_SWITCH, OTHER_DETECTOR } //å¾çè´¨é public static class NET_DVR_JPEGPARA extends HIKSDKStructure { /*注æï¼å½å¾åå缩å辨ç为VGAæ¶ï¼æ¯æ0=CIF, 1=QCIF, 2=D1æå¾ï¼ @@ -3781,19 +3841,22 @@ public short wTiltPos;//åç´åæ° public short wZoomPos;//åååæ° } //PTZéå®ä¿¡æ¯ public static class NET_DVR_PTZ_LOCKCFG extends HIKSDKStructure { public int dwSize;//ç»æä½å¤§å° public byte byWorkMode;//äºå°é宿§å¶ï¼0- è§£éï¼1- éå® public byte[] byRes = new byte[127]; } //é¶æ¹ä½è§æ§å¶ä¿¡æ¯ public static class NET_DVR_INITIALPOSITIONCTRL extends HIKSDKStructure { public int dwSize ;//ç»æä½å¤§å° public int dwSize;//ç»æä½å¤§å° public short dwChan;//设å¤ééå· public byte byWorkMode;//工使¨¡å¼ï¼0- 设置ï¼1- è°ç¨ï¼2- æ¸ é¤ public byte[] byRes = new byte[127]; } //çæºä½ç½®ä¿¡æ¯ public static class NET_DVR_PTZ_BASICPARAMCFG extends HIKSDKStructure { public short dwSize;//ç»æä½å¤§å° @@ -10244,14 +10307,16 @@ boolean NET_DVR_InquiryRecordTimeSpan(int lUserID, int dwChannel, NET_DVR_RECORD_TIME_SPAN_INQUIRY lpInquiry, NET_DVR_RECORD_TIME_SPAN lpResult); boolean NET_DVR_StartGetDevState(NET_DVR_CHECK_DEV_STATE pParams); //强å¶Iå¸§åæ°ç»æä½ã public static class NET_DVR_I_FRAME extends HIKSDKStructure{ public static class NET_DVR_I_FRAME extends HIKSDKStructure { public int dwSize; public byte[] sStreamID = new byte[32]; //æµIDs SDK ä¸å¯¹ STREAM_ID_LENè¿è¡äºå®ä¹ï¼èµå¼32 public int dwChannel;//ééå· public byte byStreamType; //ç æµç±»åï¼0-ä¸»ç æµï¼1-åç æµï¼2-ç æµ3ï¼3-èæç æµï¼ä»¥æ¤ç±»æ¨ public byte[] byRes = new byte[63]; //ä¿çï¼ç½®ä¸º0 æç §SDKè¦æ±è¿è¡å¯¹åºèµå¼ } //gpsç¸å ³ç»æå®ä¹ public static class TimeSegParam extends HIKSDKStructure { //GPSæ°æ®æ¥æ¾èµ·å§æ¶é´ @@ -10585,6 +10650,7 @@ public byte[] byRes = new byte[6]; } } //ææ¾åºå½æ°å£°æ,PlayCtrl.dll interface PlayCtrl extends Library { public static final int STREAME_REALTIME = 0; src/main/java/com/ard/utils/tcp/ClientHandler.java
@@ -297,15 +297,7 @@ // log.info("æ¥è¦ç±»å:" + alarmType); byte[] szName = Arrays.copyOfRange(data, index + 64, index + 96); int position = ByteUtils.findIndexOfDoubleZero(szName); String alarmPointName; if (position != -1) { byte[] result = new byte[position]; System.arraycopy(szName, 0, result, 0, position); alarmPointName = new String(result, "GBK"); } else { alarmPointName = new String(szName, "GBK"); } String alarmPointName = ByteUtils.bytesToStringZh(szName); // log.info("æå±åè¦åºååç§°:" + alarmPointName); byte[] afTx = Arrays.copyOfRange(data, index + 96, index + 100); afTx = ByteUtils.toLittleEndian(afTx); @@ -405,15 +397,7 @@ byte[] szName = Arrays.copyOfRange(data, index + 32, index + 64); //log.info("æå±åè¦åºååç§°:" + DatatypeConverter.printHexBinary(szName)); int position = ByteUtils.findIndexOfDoubleZero(szName); String alarmPointName; if (position != -1) { byte[] result = new byte[position]; System.arraycopy(szName, 0, result, 0, position); alarmPointName = new String(result, "GBK"); } else { alarmPointName = new String(szName, "GBK"); } String alarmPointName = ByteUtils.bytesToStringZh(szName); // log.info("æå±åè¦åºååç§°:" + alarmPointName); //log.info("æ¥è¦ä¿¡æ¯ï¼" + "ãidã" + id + "ãnameã" + alarmPointName + "ãalarmTypeã" + alarmType + "ãalarmTimeã" + alarmTime); ArdAlarmRadar ardAlarmRadar = new ArdAlarmRadar(); src/main/java/com/ard/utils/tcp/NettyTcpClientHandler.java
@@ -232,15 +232,7 @@ // log.info("æ¥è¦ç±»å:" + alarmType); byte[] szName = Arrays.copyOfRange(data, index + 64, index + 96); int position = ByteUtils.findIndexOfDoubleZero(szName); String alarmPointName; if (position != -1) { byte[] result = new byte[position]; System.arraycopy(szName, 0, result, 0, position); alarmPointName = new String(result, "GBK"); } else { alarmPointName = new String(szName, "GBK"); } String alarmPointName = ByteUtils.bytesToStringZh(szName); // log.info("æå±åè¦åºååç§°:" + alarmPointName); byte[] afTx = Arrays.copyOfRange(data, index + 96, index + 100); afTx = ByteUtils.toLittleEndian(afTx); @@ -340,15 +332,7 @@ byte[] szName = Arrays.copyOfRange(data, index + 32, index + 64); //log.info("æå±åè¦åºååç§°:" + DatatypeConverter.printHexBinary(szName)); int position = ByteUtils.findIndexOfDoubleZero(szName); String alarmPointName; if (position != -1) { byte[] result = new byte[position]; System.arraycopy(szName, 0, result, 0, position); alarmPointName = new String(result, "GBK"); } else { alarmPointName = new String(szName, "GBK"); } String alarmPointName = ByteUtils.bytesToStringZh(szName); // log.info("æå±åè¦åºååç§°:" + alarmPointName); //log.info("æ¥è¦ä¿¡æ¯ï¼" + "ãidã" + id + "ãnameã" + alarmPointName + "ãalarmTypeã" + alarmType + "ãalarmTimeã" + alarmTime); ArdAlarmRadar ardAlarmRadar = new ArdAlarmRadar(); src/main/resources/application.yml
@@ -1,3 +1,4 @@ spring: datasource: # 使ç¨druidæ°æ®åºè¿æ¥æ± @@ -29,7 +30,7 @@ port: 40000 enabled: true tcp: enabled: true enabled: false mqtt: host: tcp://192.168.1.15:1883 clientId: cc3 @@ -51,4 +52,6 @@ secretKey: xzx12345 logging: level: com.ard: info com.ard: info server: port: 8088