From 444c6f9820a29b374a6a0a8948614a45786a2ca5 Mon Sep 17 00:00:00 2001 From: ‘liusuyi’ <1951119284@qq.com> Date: 星期五, 02 六月 2023 09:11:57 +0800 Subject: [PATCH] 优化巡检 --- ard-work/src/main/java/com/ruoyi/device/hiksdk/service/impl/HikClientServiceImpl.java | 342 +++++++++++++++++++++++++++++++++++++------------------- 1 files changed, 226 insertions(+), 116 deletions(-) diff --git a/ard-work/src/main/java/com/ruoyi/device/hiksdk/service/impl/HikClientServiceImpl.java b/ard-work/src/main/java/com/ruoyi/device/hiksdk/service/impl/HikClientServiceImpl.java index 5c9c6fc..aaf30b3 100644 --- a/ard-work/src/main/java/com/ruoyi/device/hiksdk/service/impl/HikClientServiceImpl.java +++ b/ard-work/src/main/java/com/ruoyi/device/hiksdk/service/impl/HikClientServiceImpl.java @@ -8,13 +8,14 @@ import com.ruoyi.constant.sdkPriority; import com.ruoyi.device.camera.domain.CameraCmd; import com.ruoyi.device.camera.mapper.ArdCamerasMapper; -import com.ruoyi.device.hiksdk.common.global.globalVariable; +import com.ruoyi.device.hiksdk.common.GlobalVariable; import com.ruoyi.device.camera.domain.ArdCameras; +import com.ruoyi.device.hiksdk.config.MinioClientSingleton; import com.ruoyi.device.hiksdk.domain.recordInfo; import com.ruoyi.device.hiksdk.util.hikSdkUtil.GisUtil; import com.ruoyi.device.hiksdk.util.hikSdkUtil.HCNetSDK; import com.ruoyi.device.hiksdk.service.IHikClientService; -import com.ruoyi.device.hiksdk.util.minioUtil.MinioUtil; +import com.ruoyi.device.hiksdk.util.minio.MinioUtils; import com.ruoyi.system.mapper.SysUserMapper; import com.sun.jna.Native; import com.sun.jna.Platform; @@ -40,14 +41,11 @@ * @Description: 娴峰悍鎿嶄綔瀹㈡埛绔疄鐜扮被 * @Author: Administrator * @Date: 2023骞�01鏈�17鏃� 11:25 - * @Version: 1.0 + * @Version: 1.2 **/ @Slf4j(topic = "hikSdk") @Service public class HikClientServiceImpl implements IHikClientService { - - @Resource - private MinioUtil minioUtil; @Resource ArdCamerasMapper ardCamerasMapper; @@ -56,7 +54,6 @@ SysUserMapper sysUserMapper; private static HCNetSDK hCNetSDK; - private static Map<Integer, recordInfo> user_real_Map = new HashMap<>(); @Override public void loadHCNetSDKLib() { @@ -75,20 +72,20 @@ //璁剧疆HCNetSDKCom缁勪欢搴撴墍鍦ㄨ矾寰� //libhcnetsdk.so String strPathCom = "/home/hiklib"; - HCNetSDK.NET_DVR_LOCAL_SDK_PATH struComPath = new HCNetSDK.NET_DVR_LOCAL_SDK_PATH(); + NET_DVR_LOCAL_SDK_PATH struComPath = new NET_DVR_LOCAL_SDK_PATH(); System.arraycopy(strPathCom.getBytes(), 0, struComPath.sPath, 0, strPathCom.length()); struComPath.write(); hCNetSDK.NET_DVR_SetSDKInitCfg(2, struComPath.getPointer()); //璁剧疆libcrypto.so鎵�鍦ㄨ矾寰� - HCNetSDK.BYTE_ARRAY ptrByteArrayCrypto = new HCNetSDK.BYTE_ARRAY(256); + BYTE_ARRAY ptrByteArrayCrypto = new BYTE_ARRAY(256); String strPathCrypto = "/home/hiklib/libcrypto.so.1.1"; System.arraycopy(strPathCrypto.getBytes(), 0, ptrByteArrayCrypto.byValue, 0, strPathCrypto.length()); ptrByteArrayCrypto.write(); hCNetSDK.NET_DVR_SetSDKInitCfg(3, ptrByteArrayCrypto.getPointer()); //璁剧疆libssl.so鎵�鍦ㄨ矾寰� - HCNetSDK.BYTE_ARRAY ptrByteArraySsl = new HCNetSDK.BYTE_ARRAY(256); + BYTE_ARRAY ptrByteArraySsl = new BYTE_ARRAY(256); String strPathSsl = "/home/hiklib/libssl.so.1.1"; System.arraycopy(strPathSsl.getBytes(), 0, ptrByteArraySsl.byValue, 0, strPathSsl.length()); ptrByteArraySsl.write(); @@ -128,18 +125,17 @@ hCNetSDK.NET_DVR_SetConnectTime(2000, 1); hCNetSDK.NET_DVR_SetReconnect(100000, true); //璁惧淇℃伅, 杈撳嚭鍙傛暟 - HCNetSDK.NET_DVR_DEVICEINFO_V30 m_strDeviceInfo = new HCNetSDK.NET_DVR_DEVICEINFO_V30(); - int lUserID = hCNetSDK.NET_DVR_Login_V30(m_sDeviceIP,m_sPort,m_sUsername,m_sPassword, m_strDeviceInfo); + NET_DVR_DEVICEINFO_V30 m_strDeviceInfo = new NET_DVR_DEVICEINFO_V30(); + int lUserID = hCNetSDK.NET_DVR_Login_V30(m_sDeviceIP, m_sPort, m_sUsername, m_sPassword, m_strDeviceInfo); if (lUserID < 0) { //閲婃斁SDK璧勬簮 hCNetSDK.NET_DVR_Cleanup(); camera.setLoginId(-1); } - if(globalVariable.loginMap.containsKey(camera.getId())) - { - globalVariable.loginMap.remove(camera.getId()); + if (GlobalVariable.loginMap.containsKey(camera.getId())) { + GlobalVariable.loginMap.remove(camera.getId()); } - globalVariable.loginMap.put(camera.getId(), lUserID); + GlobalVariable.loginMap.put(camera.getId(), lUserID); camera.setLoginId(lUserID); camera.setChannel((int) m_strDeviceInfo.byStartChan); @@ -197,13 +193,13 @@ */ @Override public boolean loginOut(String cameraId) { - if (!globalVariable.loginMap.containsKey(cameraId)) { + if (!GlobalVariable.loginMap.containsKey(cameraId)) { return false; } - Integer userId = globalVariable.loginMap.get(cameraId); + Integer userId = GlobalVariable.loginMap.get(cameraId); boolean b = hCNetSDK.NET_DVR_Logout(userId); if (b) { - globalVariable.loginMap.remove(cameraId); + GlobalVariable.loginMap.remove(cameraId); } return b; } @@ -216,13 +212,14 @@ @Override public boolean isOnLine(CameraCmd cmd) { String cameraId = cmd.getCameraId(); - if (!globalVariable.loginMap.containsKey(cameraId)) { + if (!GlobalVariable.loginMap.containsKey(cameraId)) { return false; } - Integer userId = globalVariable.loginMap.get(cameraId); + Integer userId = GlobalVariable.loginMap.get(cameraId); boolean isOnLine = hCNetSDK.NET_DVR_RemoteControl(userId, HCNetSDK.NET_DVR_CHECK_USER_STATUS, null, 0); return isOnLine; } + /** * @鎻忚堪 甯﹂�熷害鐨勪簯鍙版帶鍒舵搷浣� * Code:1-宸︿笂 2-涓� 3-鍙充笂 4-宸� 5-宸¤埅 6-鍙� 7-宸︿笅 8-涓� 9-鍙充笅 10-鐒﹁窛鍙樺ぇ 11-鐒﹁窛鍙樺皬 @@ -240,41 +237,72 @@ boolean enable = cmd.isEnable(); Integer channelNum = cmd.getChannelNum(); Integer speed = cmd.getSpeed(); - Integer code=cmd.getCode(); - if (!globalVariable.loginMap.containsKey(cameraId)) { + Integer code = cmd.getCode(); + if (!GlobalVariable.loginMap.containsKey(cameraId)) { return false; } - Integer userId = globalVariable.loginMap.get(cameraId); + Integer userId = GlobalVariable.loginMap.get(cameraId); Integer dwStop; if (enable) { dwStop = 0;//寮�鍚� } else { dwStop = 1;//鍏抽棴 } - Integer dwPTZCommand=-1; - switch (code) - { + Integer dwPTZCommand = -1; + switch (code) { /*鏂瑰悜*/ - case 1:dwPTZCommand=HCNetSDK.UP_LEFT;break; - case 2:dwPTZCommand=HCNetSDK.TILT_UP;break; - case 3:dwPTZCommand=HCNetSDK.UP_RIGHT;break; - case 4:dwPTZCommand=HCNetSDK.PAN_LEFT;break; - case 5:dwPTZCommand=HCNetSDK.RUN_SEQ;break; - case 6:dwPTZCommand=HCNetSDK.PAN_RIGHT;break; - case 7:dwPTZCommand=HCNetSDK.DOWN_LEFT;break; - case 8:dwPTZCommand=HCNetSDK.TILT_DOWN;break; - case 9:dwPTZCommand=HCNetSDK.DOWN_RIGHT;break; + case 1: + dwPTZCommand = HCNetSDK.UP_LEFT; + break; + case 2: + dwPTZCommand = HCNetSDK.TILT_UP; + break; + case 3: + dwPTZCommand = HCNetSDK.UP_RIGHT; + break; + case 4: + dwPTZCommand = HCNetSDK.PAN_LEFT; + break; + case 5: + dwPTZCommand = HCNetSDK.RUN_SEQ; + break; + case 6: + dwPTZCommand = HCNetSDK.PAN_RIGHT; + break; + case 7: + dwPTZCommand = HCNetSDK.DOWN_LEFT; + break; + case 8: + dwPTZCommand = HCNetSDK.TILT_DOWN; + break; + case 9: + dwPTZCommand = HCNetSDK.DOWN_RIGHT; + break; /*鐒﹁窛*/ - case 10:dwPTZCommand=HCNetSDK.ZOOM_IN;break; - case 11:dwPTZCommand=HCNetSDK.ZOOM_OUT;break; + case 10: + dwPTZCommand = HCNetSDK.ZOOM_IN; + break; + case 11: + dwPTZCommand = HCNetSDK.ZOOM_OUT; + break; /*鐒︾偣*/ - case 12:dwPTZCommand=HCNetSDK.FOCUS_NEAR;break; - case 13:dwPTZCommand=HCNetSDK.FOCUS_FAR;break; + case 12: + dwPTZCommand = HCNetSDK.FOCUS_NEAR; + break; + case 13: + dwPTZCommand = HCNetSDK.FOCUS_FAR; + break; /*鍏夊湀*/ - case 14:dwPTZCommand=HCNetSDK.IRIS_OPEN;break; - case 15:dwPTZCommand=HCNetSDK.IRIS_CLOSE;break; + case 14: + dwPTZCommand = HCNetSDK.IRIS_OPEN; + break; + case 15: + dwPTZCommand = HCNetSDK.IRIS_CLOSE; + break; /*闆ㄥ埛*/ - case 16:dwPTZCommand=HCNetSDK.WIPER_PWRON;break; + case 16: + dwPTZCommand = HCNetSDK.WIPER_PWRON; + break; } boolean bool = hCNetSDK.NET_DVR_PTZControlWithSpeed_Other(userId, channelNum, dwPTZCommand, dwStop, speed); if (!bool) { @@ -295,10 +323,10 @@ String cameraId = cmd.getCameraId(); Integer channelNum = cmd.getChannelNum(); Integer dwFocusPos = cmd.getDwFocusPos(); - if (!globalVariable.loginMap.containsKey(cameraId)) { + if (!GlobalVariable.loginMap.containsKey(cameraId)) { return false; } - Integer userId = globalVariable.loginMap.get(cameraId); + Integer userId = GlobalVariable.loginMap.get(cameraId); NET_DVR_FOCUSMODE_CFG focusmodeCfg = new NET_DVR_FOCUSMODE_CFG(); Pointer point = focusmodeCfg.getPointer(); @@ -322,10 +350,10 @@ String cameraId = cmd.getCameraId(); Integer channelNum = cmd.getChannelNum(); - if (!globalVariable.loginMap.containsKey(cameraId)) { + if (!GlobalVariable.loginMap.containsKey(cameraId)) { return new HashMap<>(); } - Integer userId = globalVariable.loginMap.get(cameraId); + Integer userId = GlobalVariable.loginMap.get(cameraId); NET_DVR_FOCUSMODE_CFG focusmodeCfg = new NET_DVR_FOCUSMODE_CFG(); Pointer point = focusmodeCfg.getPointer(); @@ -356,10 +384,10 @@ String cameraId = cmd.getCameraId(); Integer channelNum = cmd.getChannelNum(); Integer PresetIndex = cmd.getPresetIndex(); - if (!globalVariable.loginMap.containsKey(cameraId)) { + if (!GlobalVariable.loginMap.containsKey(cameraId)) { return false; } - Integer userId = globalVariable.loginMap.get(cameraId); + Integer userId = GlobalVariable.loginMap.get(cameraId); boolean bool = hCNetSDK.NET_DVR_PTZPreset_Other(userId, channelNum, SET_PRESET, PresetIndex); if (!bool) { int code = hCNetSDK.NET_DVR_GetLastError(); @@ -379,10 +407,10 @@ String cameraId = cmd.getCameraId(); Integer channelNum = cmd.getChannelNum(); Integer PresetIndex = cmd.getPresetIndex(); - if (!globalVariable.loginMap.containsKey(cameraId)) { + if (!GlobalVariable.loginMap.containsKey(cameraId)) { return false; } - Integer userId = globalVariable.loginMap.get(cameraId); + Integer userId = GlobalVariable.loginMap.get(cameraId); boolean bool = hCNetSDK.NET_DVR_PTZPreset_Other(userId, channelNum, GOTO_PRESET, PresetIndex); if (!bool) { int code = hCNetSDK.NET_DVR_GetLastError(); @@ -403,13 +431,13 @@ public String getVideoResolution(CameraCmd cmd) { String cameraId = cmd.getCameraId(); Integer channelNum = cmd.getChannelNum(); - if (!globalVariable.loginMap.containsKey(cameraId)) { + if (!GlobalVariable.loginMap.containsKey(cameraId)) { return " "; } - Integer userId = globalVariable.loginMap.get(cameraId); + Integer userId = GlobalVariable.loginMap.get(cameraId); String ResResolution = ""; - HCNetSDK.NET_DVR_COMPRESSIONCFG_V30 resolution = new HCNetSDK.NET_DVR_COMPRESSIONCFG_V30(); + NET_DVR_COMPRESSIONCFG_V30 resolution = new NET_DVR_COMPRESSIONCFG_V30(); resolution.write(); Pointer pioint = resolution.getPointer(); IntByReference ibrBytesReturned = new IntByReference(0); @@ -509,12 +537,12 @@ public Map<String, Object> getPtz(CameraCmd cmd) { String cameraId = cmd.getCameraId(); Integer channelNum = cmd.getChannelNum(); - if (!globalVariable.loginMap.containsKey(cameraId)) { + if (!GlobalVariable.loginMap.containsKey(cameraId)) { return null; } - Integer userId = globalVariable.loginMap.get(cameraId); + Integer userId = GlobalVariable.loginMap.get(cameraId); - HCNetSDK.NET_DVR_PTZPOS m_ptzPosCurrent = new HCNetSDK.NET_DVR_PTZPOS(); + NET_DVR_PTZPOS m_ptzPosCurrent = new NET_DVR_PTZPOS(); Pointer pioint = m_ptzPosCurrent.getPointer(); IntByReference ibrBytesReturned = new IntByReference(0); m_ptzPosCurrent.write(); @@ -560,12 +588,12 @@ public boolean setPtz(CameraCmd cmd) { String cameraId = cmd.getCameraId(); Integer channelNum = cmd.getChannelNum(); - Map<String,Double> ptz = cmd.getPtzMap(); - if (!globalVariable.loginMap.containsKey(cameraId)) { + Map<String, Double> ptz = cmd.getPtzMap(); + if (!GlobalVariable.loginMap.containsKey(cameraId)) { return false; } - Integer userId = globalVariable.loginMap.get(cameraId); - HCNetSDK.NET_DVR_PTZPOS m_ptzPosCurrent = new HCNetSDK.NET_DVR_PTZPOS(); + Integer userId = GlobalVariable.loginMap.get(cameraId); + NET_DVR_PTZPOS m_ptzPosCurrent = new NET_DVR_PTZPOS(); m_ptzPosCurrent.wAction = 1; try { String p = String.valueOf((int) ((double) ptz.get("p") * 10)); @@ -593,19 +621,19 @@ public boolean setTargetPosition(CameraCmd cmd) { String cameraId = cmd.getCameraId(); Integer channelNum = cmd.getChannelNum(); - if (!globalVariable.loginMap.containsKey(cameraId)) { + if (!GlobalVariable.loginMap.containsKey(cameraId)) { return false; } - Integer userId = globalVariable.loginMap.get(cameraId); - HCNetSDK.NET_DVR_PTZPOS m_ptzPosCurrent = new HCNetSDK.NET_DVR_PTZPOS(); + Integer userId = GlobalVariable.loginMap.get(cameraId); + NET_DVR_PTZPOS m_ptzPosCurrent = new NET_DVR_PTZPOS(); m_ptzPosCurrent.wAction = 1; try { double[] cameraPositon = cmd.getCamPosition(); double[] targetPositions = cmd.getTargetPosition(); double[] cameraPTZ = GisUtil.getCameraPTZ(cameraPositon, targetPositions, 20, 150); - String p = String.valueOf((int) ( cameraPTZ[0] * 10)); - String t = String.valueOf((int) ( cameraPTZ[1] * 10)); - String z = String.valueOf((int) (cameraPTZ[2]* 10)); + String p = String.valueOf((int) (cameraPTZ[0] * 10)); + String t = String.valueOf((int) (cameraPTZ[1] * 10)); + String z = String.valueOf((int) (cameraPTZ[2] * 10)); m_ptzPosCurrent.wPanPos = (short) (Integer.parseInt(p, 16)); m_ptzPosCurrent.wTiltPos = (short) (Integer.parseInt(t, 16)); m_ptzPosCurrent.wZoomPos = (short) (Integer.parseInt(z, 16)); @@ -622,6 +650,7 @@ return false; } } + /** * @鎻忚堪 鎿嶆帶閿佸畾 * @鍙傛暟 [userId, channelNum] @@ -638,31 +667,27 @@ return false;//鎵句笉鍒扮浉鏈烘嫆缁濇搷鎺� } Integer expired = cmd.getExpired();//鐢宠鎺у埗鏃堕暱 - String operator=cmd.getOperator();//鐢宠鑰� + String operator = cmd.getOperator();//鐢宠鑰� String currentOperator = ardCameras.getOperatorId();//鐩告満褰撳墠鎺у埗鑰� Date currentExpired = ardCameras.getOperatorExpired();//鐩告満褰撳墠杩囨湡鏃堕棿 - if(currentExpired==null) - { + if (currentExpired == null) { //璁剧疆褰撳墠鎿嶄綔鐢ㄦ埛ID ardCameras.setOperatorId(operator); //璁剧疆褰撳墠杩囨湡鏃堕棿 Date now = new Date(); - now.setTime(now.getTime() + expired * 1000*60); + now.setTime(now.getTime() + expired * 1000 * 60); ardCameras.setOperatorExpired(now); ardCamerasMapper.updateArdCameras(ardCameras); - } - else { + } else { //濡傛灉杩囨湡鏃堕棿鏈夊�� //濡傛灉鏄湰浜虹洿鎺ヤ慨鏀� - if(currentOperator.equals(operator)) - { + if (currentOperator.equals(operator)) { //璁剧疆褰撳墠杩囨湡鏃堕棿 Date now = new Date(); - now.setTime(now.getTime() + expired * 1000*60); + now.setTime(now.getTime() + expired * 1000 * 60); ardCameras.setOperatorExpired(now); ardCamerasMapper.updateArdCameras(ardCameras); - } - else { + } else { //濡傛灉闈炴湰浜烘瘮杈冧紭鍏堢骇 Integer currentLevel = 0;//褰撳墠鎿嶄綔鑰呯殑浼樺厛绾� if (sdkPriority.priorityMap.containsKey(currentOperator)) { @@ -710,10 +735,10 @@ public int getPTZLockInfo(CameraCmd cmd) { String cameraId = cmd.getCameraId(); Integer channelNum = cmd.getChannelNum(); - if (!globalVariable.loginMap.containsKey(cameraId)) { + if (!GlobalVariable.loginMap.containsKey(cameraId)) { return -1; } - Integer userId = globalVariable.loginMap.get(cameraId); + Integer userId = GlobalVariable.loginMap.get(cameraId); NET_DVR_PTZ_LOCKCFG netDvrPtzLockcfg = new NET_DVR_PTZ_LOCKCFG(); Pointer point = netDvrPtzLockcfg.getPointer(); IntByReference ibrBytesReturned = new IntByReference(0); @@ -743,11 +768,11 @@ public boolean setZeroPtz(CameraCmd cmd) { String cameraId = cmd.getCameraId(); Integer channelNum = cmd.getChannelNum(); - if (!globalVariable.loginMap.containsKey(cameraId)) { + if (!GlobalVariable.loginMap.containsKey(cameraId)) { return false; } - Integer userId = globalVariable.loginMap.get(cameraId); - HCNetSDK.NET_DVR_INITIALPOSITIONCTRL initialpositionctrl = new HCNetSDK.NET_DVR_INITIALPOSITIONCTRL(); + Integer userId = GlobalVariable.loginMap.get(cameraId); + NET_DVR_INITIALPOSITIONCTRL initialpositionctrl = new NET_DVR_INITIALPOSITIONCTRL(); initialpositionctrl.dwSize = initialpositionctrl.size(); initialpositionctrl.byWorkMode = 0; @@ -775,10 +800,10 @@ public Map<String, Object> getPtzScope(CameraCmd cmd) { String cameraId = cmd.getCameraId(); Integer channelNum = cmd.getChannelNum(); - if (!globalVariable.loginMap.containsKey(cameraId)) { + if (!GlobalVariable.loginMap.containsKey(cameraId)) { return new HashMap<>(); } - Integer userId = globalVariable.loginMap.get(cameraId); + Integer userId = GlobalVariable.loginMap.get(cameraId); NET_DVR_PTZSCOPE m_ptzPosCurrent = new NET_DVR_PTZSCOPE(); Pointer point = m_ptzPosCurrent.getPointer(); IntByReference ibrBytesReturned = new IntByReference(0); @@ -824,10 +849,10 @@ String cameraId = cmd.getCameraId(); boolean enable = cmd.isEnable(); Integer channelNum = cmd.getChannelNum(); - if (!globalVariable.loginMap.containsKey(cameraId)) { + if (!GlobalVariable.loginMap.containsKey(cameraId)) { return false; } - Integer userId = globalVariable.loginMap.get(cameraId); + Integer userId = GlobalVariable.loginMap.get(cameraId); NET_DVR_CAMERAPARAMCFG_EX struCameraParam = new NET_DVR_CAMERAPARAMCFG_EX(); Pointer point = struCameraParam.getPointer(); IntByReference ibrBytesReturned = new IntByReference(0); @@ -871,10 +896,10 @@ String cameraId = cmd.getCameraId(); boolean enable = cmd.isEnable(); Integer channelNum = cmd.getChannelNum(); - if (!globalVariable.loginMap.containsKey(cameraId)) { + if (!GlobalVariable.loginMap.containsKey(cameraId)) { return false; } - Integer userId = globalVariable.loginMap.get(cameraId); + Integer userId = GlobalVariable.loginMap.get(cameraId); NET_DVR_CAMERAPARAMCFG_EX struDayNigh = new NET_DVR_CAMERAPARAMCFG_EX(); Pointer point = struDayNigh.getPointer(); IntByReference ibrBytesReturned = new IntByReference(0); @@ -920,10 +945,10 @@ String cameraId = cmd.getCameraId(); boolean enable = cmd.isEnable(); Integer channelNum = cmd.getChannelNum(); - if (!globalVariable.loginMap.containsKey(cameraId)) { + if (!GlobalVariable.loginMap.containsKey(cameraId)) { return false; } - Integer userId = globalVariable.loginMap.get(cameraId); + Integer userId = GlobalVariable.loginMap.get(cameraId); NET_DVR_FOCUSMODE_CFG struFocusMode = new NET_DVR_FOCUSMODE_CFG(); Pointer point = struFocusMode.getPointer(); IntByReference ibrBytesReturned = new IntByReference(0); @@ -937,7 +962,7 @@ if (enable) { struFocusMode.byFocusMode = 1;//鎵嬪姩鑱氱劍 } else { - struFocusMode.byAutoFocusMode=1; + struFocusMode.byAutoFocusMode = 1; struFocusMode.byFocusMode = 2;//鑷姩鑱氱劍 } struFocusMode.byFocusDefinitionDisplay = 1; @@ -967,10 +992,10 @@ String cameraId = cmd.getCameraId(); boolean enable = cmd.isEnable(); Integer channelNum = cmd.getChannelNum(); - if (!globalVariable.loginMap.containsKey(cameraId)) { + if (!GlobalVariable.loginMap.containsKey(cameraId)) { return false; } - Integer userId = globalVariable.loginMap.get(cameraId); + Integer userId = GlobalVariable.loginMap.get(cameraId); Integer dwStop; if (enable) { dwStop = 0;//寮�鍚� @@ -1001,10 +1026,10 @@ String cameraId = cmd.getCameraId(); boolean enable = cmd.isEnable(); Integer channelNum = cmd.getChannelNum(); - if (!globalVariable.loginMap.containsKey(cameraId)) { + if (!GlobalVariable.loginMap.containsKey(cameraId)) { return false; } - Integer userId = globalVariable.loginMap.get(cameraId); + Integer userId = GlobalVariable.loginMap.get(cameraId); NET_DVR_DEVSERVER_CFG struDeicing = new NET_DVR_DEVSERVER_CFG(); Pointer point = struDeicing.getPointer(); IntByReference ibrBytesReturned = new IntByReference(0); @@ -1039,10 +1064,10 @@ public String captureJPEGPicture(CameraCmd cmd) { String cameraId = cmd.getCameraId(); Integer channelNum = cmd.getChannelNum(); - if (!globalVariable.loginMap.containsKey(cameraId)) { + if (!GlobalVariable.loginMap.containsKey(cameraId)) { return ""; } - Integer userId = globalVariable.loginMap.get(cameraId); + Integer userId = GlobalVariable.loginMap.get(cameraId); NET_DVR_WORKSTATE_V30 devwork = new NET_DVR_WORKSTATE_V30(); if (!hCNetSDK.NET_DVR_GetDVRWorkState_V30(userId, devwork)) { // 杩斿洖Boolean鍊硷紝鍒ゆ柇鏄惁鑾峰彇璁惧鑳藉姏 @@ -1063,7 +1088,7 @@ BASE64Encoder encoder = new BASE64Encoder(); - String png_base64 = encoder.encodeBuffer(jpegBuffer);//杞崲鎴恇ase64涓� + String png_base64 = encoder.encodeBuffer(jpegBuffer);//杞崲鎴恇ase64涓� png_base64 = png_base64.replaceAll("\n", "").replaceAll("\r", "");//鍒犻櫎 \r\n log.info("-----------澶勭悊瀹屾垚鎴浘鏁版嵁----------"); return png_base64; @@ -1111,10 +1136,10 @@ public String picCutCate(CameraCmd cmd) { String cameraId = cmd.getCameraId(); Integer channelNum = cmd.getChannelNum(); - if (!globalVariable.loginMap.containsKey(cameraId)) { + if (!GlobalVariable.loginMap.containsKey(cameraId)) { return ""; } - Integer userId = globalVariable.loginMap.get(cameraId); + Integer userId = GlobalVariable.loginMap.get(cameraId); //鍥剧墖淇℃伅 NET_DVR_JPEGPARA jpeg = new NET_DVR_JPEGPARA(); //璁剧疆鍥剧墖鍒嗚鲸鐜� @@ -1147,9 +1172,9 @@ InputStream input = new ByteArrayInputStream(array); String url = ""; try { - boolean b = minioUtil.putObject(BucketName, ObjectName, input, input.available(), ContentType); + boolean b = MinioUtils.uploadObject(BucketName, ObjectName, input, input.available(), ContentType); if (b) { - url = minioUtil.presignedGetObject(BucketName, ObjectName, 5); + url = MinioUtils.getBucketObjectUrl(BucketName, ObjectName); log.info("涓婁紶鏂囦欢鎴愬姛!" + url); } } catch (IOException ex) { @@ -1177,10 +1202,10 @@ String cameraId = cmd.getCameraId(); Integer channelNum = cmd.getChannelNum(); boolean enable = cmd.isEnable(); - if (!globalVariable.loginMap.containsKey(cameraId)) { + if (!GlobalVariable.loginMap.containsKey(cameraId)) { return ""; } - Integer userId = globalVariable.loginMap.get(cameraId); + Integer userId = GlobalVariable.loginMap.get(cameraId); String path = ""; //棰勮鍙傛暟 NET_DVR_PREVIEWINFO previewinfo = new NET_DVR_PREVIEWINFO(); @@ -1194,7 +1219,7 @@ previewinfo.write(); int lRealHandle; if (enable) { - if (!user_real_Map.containsKey(userId)) { + if (!GlobalVariable.user_real_Map.containsKey(userId)) { lRealHandle = hCNetSDK.NET_DVR_RealPlay_V40(userId, previewinfo, null, null); if (lRealHandle == -1) { int iErr = hCNetSDK.NET_DVR_GetLastError(); @@ -1223,20 +1248,19 @@ recordInfo info = new recordInfo(); info.setLRealHandle(lRealHandle); info.setRecordPath(path); - user_real_Map.put(userId, info); + GlobalVariable.user_real_Map.put(userId, info); } - recordInfo info = user_real_Map.get(userId); + recordInfo info = GlobalVariable.user_real_Map.get(userId); if (!hCNetSDK.NET_DVR_SaveRealData_V30(info.getLRealHandle(), 1, info.getRecordPath())) { log.error("淇濆瓨瑙嗛鏂囦欢鍒颁复鏃舵枃浠跺す澶辫触 閿欒鐮佷负: " + hCNetSDK.NET_DVR_GetLastError()); - return "淇濆瓨瑙嗛鏂囦欢鍒颁复鏃舵枃浠跺す澶辫触 閿欒鐮佷负:" + hCNetSDK.NET_DVR_GetLastError(); + return "淇濆瓨瑙嗛鏂囦欢鍒颁复鏃舵枃浠跺す澶辫触 閿欒鐮佷负:" + hCNetSDK.NET_DVR_GetLastError(); } log.info("褰曞儚寮�濮�"); //return info.getRecordPath(); return ""; } else { - recordInfo info = user_real_Map.get(userId); - if(StringUtils.isNull(info)) - { + recordInfo info = GlobalVariable.user_real_Map.get(userId); + if (StringUtils.isNull(info)) { return ""; } hCNetSDK.NET_DVR_StopRealPlay(info.getLRealHandle()); @@ -1245,7 +1269,7 @@ String BucketName = "record"; String uuid = UUID.randomUUID().toString().replace("-", ""); String time = new SimpleDateFormat("yyyyMMdd").format(new Date()); - String ObjectName = time + "/" + uuid + ".mp4"; + String ObjectName = cameraId + "/" + time + "/" + uuid + ".mp4"; String ContentType = "video/MP4"; FileInputStream stream = null; try { @@ -1255,16 +1279,102 @@ } String url = ""; try { - boolean b = minioUtil.putObject(BucketName, ObjectName, stream, stream.available(), ContentType); + boolean b = MinioUtils.uploadObject(BucketName, ObjectName, stream, stream.available(), ContentType); if (b) { - url = minioUtil.presignedGetObject(BucketName, ObjectName, 5); + url = MinioUtils.getBucketObjectUrl(BucketName, ObjectName); log.info("涓婁紶鏂囦欢鎴愬姛!" + url); } } catch (IOException ex) { log.error("涓婁紶鏂囦欢寮傚父锛�" + ex.getMessage()); } - user_real_Map.remove(userId); + GlobalVariable.user_real_Map.remove(userId); return url; } } + + @Override + public void recordToMinio(CameraCmd cmd) { + try { + String cameraId = cmd.getCameraId(); + Integer channelNum = cmd.getChannelNum(); + boolean enable = cmd.isEnable(); + if (!GlobalVariable.loginMap.containsKey(cameraId)) { + return; + } + Integer userId = GlobalVariable.loginMap.get(cameraId); + String path = ""; + //寮哄埗I甯х粨鏋勪綋瀵硅薄 + HCNetSDK.NET_DVR_I_FRAME netDvrIFrame = new HCNetSDK.NET_DVR_I_FRAME(); //鏂板缓缁撴瀯浣撳璞� + netDvrIFrame.read(); + netDvrIFrame.dwChannel = channelNum; //鍥犱负涓婃枃浠g爜涓缃簡閫氶亾鍙凤紝鎸夌収涓婃枃涓殑璁剧疆 + netDvrIFrame.byStreamType = 0; + netDvrIFrame.dwSize = netDvrIFrame.size(); + netDvrIFrame.write(); + + if(!hCNetSDK.NET_DVR_RemoteControl(userId,3402,netDvrIFrame.getPointer(),netDvrIFrame.dwSize)){ + log.error("寮哄埗I甯� 閿欒鐮佷负: " + hCNetSDK.NET_DVR_GetLastError()); + } + //棰勮鍙傛暟 + NET_DVR_PREVIEWINFO previewinfo = new NET_DVR_PREVIEWINFO(); + previewinfo.read(); + previewinfo.lChannel = channelNum; + previewinfo.dwStreamType = 0;//鐮佹祦绫诲瀷锛�0-涓荤爜娴侊紝1-瀛愮爜娴侊紝2-涓夌爜娴侊紝3-铏氭嫙鐮佹祦锛屼互姝ょ被鎺� + previewinfo.dwLinkMode = 0;//杩炴帴鏂瑰紡锛�0-TCP鏂瑰紡锛�1-UDP鏂瑰紡锛�2-澶氭挱鏂瑰紡锛�3-RTP鏂瑰紡锛�4-RTP/RTSP锛�5-RTP/HTTP锛�6-HRUDP锛堝彲闈犱紶杈擄級锛�7-RTSP/HTTPS锛�8-NPQ + previewinfo.hPlayWnd = null;//鎾斁绐楀彛鐨勫彞鏌勶紝涓篘ULL琛ㄧず涓嶈В鐮佹樉绀恒�� + previewinfo.bBlocked = 0;//0- 闈為樆濉炲彇娴侊紝1-闃诲鍙栨祦 + previewinfo.byNPQMode = 0;//NPQ妯″紡锛�0-鐩磋繛妯″紡锛�1-杩囨祦濯掍綋妯″紡 + previewinfo.write(); + int lRealHandle; + if (enable) { + if (!GlobalVariable.user_real_Map.containsKey(userId)) { + lRealHandle = hCNetSDK.NET_DVR_RealPlay_V40(userId, previewinfo, null, null); + if (lRealHandle == -1) { + log.error("鍙栨祦澶辫触" + hCNetSDK.NET_DVR_GetLastError()); + return; + } + log.info("鍙栨祦鎴愬姛"); + File file = new File("D:/recordTemp/" + cameraId + ".mp4"); + if (!file.exists()) { + File fileParent = file.getParentFile(); + if (!fileParent.exists()) { + fileParent.mkdirs(); + } + file.createNewFile(); + } + path = file.getCanonicalPath(); + recordInfo info = new recordInfo(); + info.setLRealHandle(lRealHandle); + info.setRecordPath(path); + GlobalVariable.user_real_Map.put(userId, info); + } + recordInfo info = GlobalVariable.user_real_Map.get(userId); + if (!hCNetSDK.NET_DVR_SaveRealData_V30(info.getLRealHandle(), 2, info.getRecordPath())) { + log.error("淇濆瓨瑙嗛鏂囦欢鍒颁复鏃舵枃浠跺す澶辫触 閿欒鐮佷负: " + hCNetSDK.NET_DVR_GetLastError()); + return; + } + log.info("褰曞儚寮�濮�"); + } else { + recordInfo info = GlobalVariable.user_real_Map.get(userId); + if (StringUtils.isNull(info)) { + return; + } + hCNetSDK.NET_DVR_StopRealPlay(info.getLRealHandle()); + log.info("褰曞儚鍋滄"); + if(cmd.isUploadMinio()) { + //瀛樺叆minio + String BucketName = cmd.getRecordBucketName(); + String ObjectName = cmd.getRecordObjectName(); + String ContentType = "video/MP4"; + FileInputStream stream = new FileInputStream(info.getRecordPath()); + boolean b = MinioUtils.uploadObject(BucketName, ObjectName, stream, stream.available(), ContentType); + if (b) { + log.info("涓婁紶鏂囦欢鎴愬姛!" + MinioClientSingleton.domainUrl + "/" + BucketName + "/" + ObjectName); + GlobalVariable.user_real_Map.remove(userId); + } + } + } + } catch (Exception ex) { + log.error("褰曞儚寮傚父" + ex.getMessage()); + } + } } \ No newline at end of file -- Gitblit v1.9.3