From 8dcb6801a19f08af6c7baaf6a1b9105c8b4dc58b Mon Sep 17 00:00:00 2001 From: liusuyi <13324259@qq.com> Date: 星期三, 31 五月 2023 21:31:38 +0800 Subject: [PATCH] 增加手动巡检 --- ard-work/src/main/java/com/ruoyi/device/hiksdk/service/impl/HikClientServiceImpl.java | 55 ++++++++++++++++++++++++++++++------------------------- 1 files changed, 30 insertions(+), 25 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 c2faf7b..8ffb5d9 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 @@ -10,11 +10,12 @@ import com.ruoyi.device.camera.mapper.ArdCamerasMapper; import com.ruoyi.device.hiksdk.common.global.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; @@ -47,9 +48,6 @@ public class HikClientServiceImpl implements IHikClientService { @Resource - private MinioUtil minioUtil; - - @Resource ArdCamerasMapper ardCamerasMapper; @Resource @@ -75,20 +73,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,7 +126,7 @@ 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(); + 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璧勬簮 @@ -440,7 +438,7 @@ 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); @@ -545,7 +543,7 @@ } 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(); @@ -596,7 +594,7 @@ return false; } 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(); m_ptzPosCurrent.wAction = 1; try { String p = String.valueOf((int) ((double) ptz.get("p") * 10)); @@ -628,7 +626,7 @@ return false; } 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(); m_ptzPosCurrent.wAction = 1; try { double[] cameraPositon = cmd.getCamPosition(); @@ -775,7 +773,7 @@ return false; } Integer userId = globalVariable.loginMap.get(cameraId); - HCNetSDK.NET_DVR_INITIALPOSITIONCTRL initialpositionctrl = new HCNetSDK.NET_DVR_INITIALPOSITIONCTRL(); + NET_DVR_INITIALPOSITIONCTRL initialpositionctrl = new NET_DVR_INITIALPOSITIONCTRL(); initialpositionctrl.dwSize = initialpositionctrl.size(); initialpositionctrl.byWorkMode = 0; @@ -1175,9 +1173,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) { @@ -1272,7 +1270,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 { @@ -1282,9 +1280,9 @@ } 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) { @@ -1296,7 +1294,6 @@ } @Override - @SdkOperate public void recordToMinio(CameraCmd cmd) { try { String cameraId = cmd.getCameraId(); @@ -1307,6 +1304,17 @@ } 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(); @@ -1322,8 +1330,7 @@ if (!user_real_Map.containsKey(userId)) { lRealHandle = hCNetSDK.NET_DVR_RealPlay_V40(userId, previewinfo, null, null); if (lRealHandle == -1) { - int iErr = hCNetSDK.NET_DVR_GetLastError(); - log.error("鍙栨祦澶辫触" + iErr); + log.error("鍙栨祦澶辫触" + hCNetSDK.NET_DVR_GetLastError()); return; } log.info("鍙栨祦鎴愬姛"); @@ -1342,7 +1349,7 @@ user_real_Map.put(userId, info); } recordInfo info = user_real_Map.get(userId); - if (!hCNetSDK.NET_DVR_SaveRealData_V30(info.getLRealHandle(), 1, info.getRecordPath())) { + if (!hCNetSDK.NET_DVR_SaveRealData_V30(info.getLRealHandle(), 2, info.getRecordPath())) { log.error("淇濆瓨瑙嗛鏂囦欢鍒颁复鏃舵枃浠跺す澶辫触 閿欒鐮佷负: " + hCNetSDK.NET_DVR_GetLastError()); return; } @@ -1359,11 +1366,9 @@ String ObjectName = cmd.getRecordObjectName(); String ContentType = "video/MP4"; FileInputStream stream = new FileInputStream(info.getRecordPath()); - String url = ""; boolean b = MinioUtils.uploadObject(BucketName, ObjectName, stream, stream.available(), ContentType); if (b) { - url = BucketName + ObjectName; - log.info("涓婁紶鏂囦欢鎴愬姛!" + url); + log.info("涓婁紶鏂囦欢鎴愬姛!" + MinioClientSingleton.domainUrl + "/"+ BucketName + "/" + ObjectName); user_real_Map.remove(userId); } } -- Gitblit v1.9.3