From 2c405f34c9bc32936957e45d1c38c55f5696fa46 Mon Sep 17 00:00:00 2001 From: zhangnaisong <2434969829@qq.com> Date: 星期四, 19 十月 2023 09:34:16 +0800 Subject: [PATCH] 三一车辆模型url更改提交 --- ard-work/src/main/java/com/ruoyi/device/dhsdk/service/impl/DhClientServiceImpl.java | 164 ++++++++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 146 insertions(+), 18 deletions(-) diff --git a/ard-work/src/main/java/com/ruoyi/device/dhsdk/service/impl/DhClientServiceImpl.java b/ard-work/src/main/java/com/ruoyi/device/dhsdk/service/impl/DhClientServiceImpl.java index 5e66b18..b7aadfb 100644 --- a/ard-work/src/main/java/com/ruoyi/device/dhsdk/service/impl/DhClientServiceImpl.java +++ b/ard-work/src/main/java/com/ruoyi/device/dhsdk/service/impl/DhClientServiceImpl.java @@ -13,6 +13,8 @@ import com.ruoyi.device.dhsdk.common.Res; import com.ruoyi.device.dhsdk.lib.NetSDKLib; import com.ruoyi.device.dhsdk.lib.NetSDKLib.LLong; +import com.ruoyi.device.dhsdk.lib.structure.CFG_VIDEO_IN_FOCUS; +import com.ruoyi.device.dhsdk.lib.structure.CFG_VIDEO_IN_FOCUS_UNIT; import com.ruoyi.device.dhsdk.module.CapturePictureModule; import com.ruoyi.device.dhsdk.module.ConfigModule; import com.ruoyi.device.dhsdk.module.LoginModule; @@ -38,6 +40,8 @@ import static com.ruoyi.device.dhsdk.lib.NetSDKLib.NET_DEVSTATE_ONLINE; import static com.ruoyi.device.dhsdk.lib.NetSDKLib.NET_DEVSTATE_PTZ_LOCATION; +import static com.ruoyi.device.dhsdk.lib.NetSDKLib.NET_PTZ_ControlType.NET_PTZ_POINT_MOVE_CONTROL; +import static com.ruoyi.device.dhsdk.lib.NetSDKLib.NET_PTZ_ControlType.NET_PTZ_POINT_SET_CONTROL; import static com.ruoyi.device.dhsdk.lib.ToolKits.getErrorCodePrint; import static com.ruoyi.device.dhsdk.module.LoginModule.netsdk; import static com.ruoyi.device.hiksdk.sdk.HCNetSDK.NET_DVR_SET_PTZPOS; @@ -66,7 +70,11 @@ // 缃戠粶杩炴帴鎭㈠ private static HaveReConnect haveReConnect = new HaveReConnect(); - + /** + * 鐧诲綍鎵�鏈夌浉鏈� + * 鍒樿嫃涔� + * 2023/10/17 8:28:13 + */ @Override public void loginAll() { try { @@ -83,11 +91,21 @@ } } + /** + * sdk鍒濆鍖� + * 鍒樿嫃涔� + * 2023/10/17 8:28:13 + */ @Override public Boolean init() { return LoginModule.init(disConnect, haveReConnect); // 鎵撳紑宸ョ▼锛屽垵濮嬪寲 } + /** + * 鐧诲綍 + * 鍒樿嫃涔� + * 2023/10/17 8:28:13 + */ @Override @Async public Boolean login(ArdCameras camera) { @@ -127,6 +145,11 @@ return true; } + /** + * 娉ㄩ攢 + * 鍒樿嫃涔� + * 2023/10/17 8:28:13 + */ @Override public Boolean logout(String cameraId) { if (!GlobalVariable.loginMap.containsKey(cameraId)) { @@ -136,6 +159,11 @@ return LoginModule.logout(loginId); } + /** + * 鏄惁鍦ㄧ嚎妫�娴� + * 鍒樿嫃涔� + * 2023/10/17 8:28:13 + */ @Override public boolean isOnLine(CameraCmd cmd) { try { @@ -156,6 +184,11 @@ return true; } + /** + * 浜戝彴鎺у埗 + * 鍒樿嫃涔� + * 2023/10/17 8:28:13 + */ @Override public boolean pTZControl(CameraCmd cmd) { String cameraId = cmd.getCameraId(); @@ -189,7 +222,7 @@ dwPTZCommand = NetSDKLib.NET_PTZ_ControlType.NET_PTZ_LEFT_CONTROL; break; case 5: - dwPTZCommand = HCNetSDK.RUN_SEQ; + dwPTZCommand = NetSDKLib.NET_PTZ_ControlType.NET_PTZ_POINT_LOOP_CONTROL; break; case 6: dwPTZCommand = NetSDKLib.NET_PTZ_ControlType.NET_PTZ_RIGHT_CONTROL; @@ -224,6 +257,9 @@ case 15: dwPTZCommand = NetSDKLib.NET_PTZ_ControlType.NET_PTZ_APERTURE_DEC_CONTROL; break; + case 16: + dwPTZCommand = NetSDKLib.NET_PTZ_ControlType.NET_PTZ_LAMP_CONTROL; + break; } boolean bool = netsdk.CLIENT_DHPTZControlEx(loginId, chanNo - 1, dwPTZCommand, speed, speed, 0, dwStop); if (!bool) { @@ -232,6 +268,11 @@ return bool; } + /** + * 鑾峰彇PTZ鍊� + * 鍒樿嫃涔� + * 2023/10/17 8:28:13 + */ @Override public Map<String, Object> getPtz(CameraCmd cmd) { Map<String, Object> ptzMap = new HashMap<>(); @@ -276,6 +317,9 @@ int p = (int) (ptz.get("p") * 10); int t = (int) (ptz.get("t") * 10); int z = ptz.get("z").intValue(); + if (z == 0) { + z = 1; + } boolean bool = netsdk.CLIENT_DHPTZControlEx(loginId, chanNo - 1, NetSDKLib.NET_EXTPTZ_ControlType.NET_EXTPTZ_EXACTGOTO, p, t, z, 0); if (!bool) { log.error("鎺у埗澶辫触,璇风◢鍚庨噸璇�" + getErrorCodePrint()); @@ -304,7 +348,7 @@ return false; } LLong loginId = (LLong) GlobalVariable.loginMap.get(cameraId); - boolean bool = NetSDKLib.NETSDK_INSTANCE.CLIENT_DHPTZControlEx(loginId, chanNo - 1, NetSDKLib.NET_EXTPTZ_ControlType.NET_EXTPTZ_RESETZERO, 0, 0, 1, 0); + boolean bool = NetSDKLib.NETSDK_INSTANCE.CLIENT_DHPTZControlEx(loginId, chanNo - 1, NetSDKLib.NET_EXTPTZ_ControlType.NET_EXTPTZ_RESETZERO, 0, 0, 0, 0); if (!bool) { log.error("鎺у埗澶辫触,璇风◢鍚庨噸璇�" + getErrorCodePrint()); } @@ -352,7 +396,7 @@ @Override public String record(CameraCmd cmd) { try { - String url=""; + String url = ""; String cameraId = cmd.getCameraId(); Integer chanNo = cmd.getChanNo(); String path = FileUtils.createFile("D:/recordTemp/" + cameraId + ".mp4"); @@ -392,6 +436,7 @@ return ""; } } + @Override public boolean recordStart(CameraCmd cmd) { try { @@ -401,25 +446,25 @@ if (!GlobalVariable.loginMap.containsKey(cameraId)) { return false; } - LLong loginId = (LLong)GlobalVariable.loginMap.get(cameraId); + LLong loginId = (LLong) GlobalVariable.loginMap.get(cameraId); LLong lRealHandle; if (GlobalVariable.previewMap.containsKey(cameraId)) { lRealHandle = new LLong(GlobalVariable.previewMap.get(cameraId)); - netsdk.CLIENT_StopSaveRealData(lRealHandle); + netsdk.CLIENT_StopRealPlayEx(lRealHandle); GlobalVariable.previewMap.remove(cameraId); log.debug("鍋滄褰撳墠褰曞儚"); } - lRealHandle = RealPlayModule.startRealPlay(loginId, chanNo-1, 0); + lRealHandle = RealPlayModule.startRealPlay1(loginId, chanNo - 1, path); if (lRealHandle.longValue() <= 0) { log.error("鍙栨祦澶辫触" + getErrorCodePrint()); } log.debug("鍙栨祦鎴愬姛"); GlobalVariable.previewMap.put(cameraId, lRealHandle.intValue()); GlobalVariable.threadMap.put(cameraId, Thread.currentThread().getName()); - if (!netsdk.CLIENT_SaveRealData(lRealHandle, path)) { - log.error("淇濆瓨瑙嗛鏂囦欢鍒颁复鏃舵枃浠跺す澶辫触 閿欒鐮佷负: " +getErrorCodePrint()); - return false; - } + //if (!netsdk.CLIENT_SaveRealData(lRealHandle, path)) { + // log.error("淇濆瓨瑙嗛鏂囦欢鍒颁复鏃舵枃浠跺す澶辫触 閿欒鐮佷负: " +getErrorCodePrint()); + // return false; + //} log.debug("褰曞儚寮�濮�"); return true; } catch (Exception ex) { @@ -427,6 +472,7 @@ return false; } } + @Override public String recordStopToMinio(CameraCmd cmd) { String url = ""; @@ -439,7 +485,7 @@ LLong lRealHandle; if (GlobalVariable.previewMap.containsKey(cameraId)) { lRealHandle = new LLong(GlobalVariable.previewMap.get(cameraId)); - netsdk.CLIENT_StopSaveRealData(lRealHandle); + netsdk.CLIENT_StopRealPlayEx(lRealHandle); GlobalVariable.previewMap.remove(cameraId); log.debug("鍋滄褰撳墠褰曞儚"); } @@ -459,6 +505,11 @@ } } + /** + * 寮曞鐩爣浣嶇疆 + * 鍒樿嫃涔� + * 2023/10/17 8:27:48 + */ @Override public boolean guideTargetPosition(CameraCmd cmd) { String cameraId = cmd.getCameraId(); @@ -466,7 +517,7 @@ if (!GlobalVariable.loginMap.containsKey(cameraId)) { return false; } - LLong loginId = (LLong)GlobalVariable.loginMap.get(cameraId); + LLong loginId = (LLong) GlobalVariable.loginMap.get(cameraId); try { ArdCameras cameras = ardCamerasService.selectArdCamerasById(cameraId); double[] cameraPositon = new double[]{cameras.getLongitude(), cameras.getLatitude(), cameras.getAltitude()}; @@ -474,7 +525,7 @@ double[] cameraPTZ = GisUtil.getCameraPTZ(cameraPositon, targetPositions, 20, 150); int p = (int) (cameraPTZ[0] * 10); int t = (int) (cameraPTZ[1] * 10); - int z = (int)(cameraPTZ[2]); + int z = (int) (cameraPTZ[2]); boolean bool = netsdk.CLIENT_DHPTZControlEx(loginId, chanNo - 1, NetSDKLib.NET_EXTPTZ_ControlType.NET_EXTPTZ_EXACTGOTO, p, t, z, 0); if (!bool) { log.error("鎺у埗澶辫触,璇风◢鍚庨噸璇�" + getErrorCodePrint()); @@ -486,22 +537,99 @@ } } - // 璁惧鏂嚎鍥炶皟: 閫氳繃 CLIENT_Init 璁剧疆璇ュ洖璋冨嚱鏁帮紝褰撹澶囧嚭鐜版柇绾挎椂锛孲DK浼氳皟鐢ㄨ鍑芥暟 + //杞嚦棰勭疆鐐� + @Override + public boolean gotoPreset(CameraCmd cmd) { + String cameraId = cmd.getCameraId(); + Integer chanNo = cmd.getChanNo(); + Integer PresetIndex = cmd.getPresetIndex(); + if (!GlobalVariable.loginMap.containsKey(cameraId)) { + return false; + } + LLong loginId = (LLong) GlobalVariable.loginMap.get(cameraId); + try { + + boolean bool = netsdk.CLIENT_DHPTZControlEx(loginId, chanNo - 1, NET_PTZ_POINT_MOVE_CONTROL, 0, PresetIndex, 0, 0); + if (!bool) { + log.error("鎺у埗澶辫触,璇风◢鍚庨噸璇�" + getErrorCodePrint()); + } + return bool; + } catch (Exception ex) { + log.error("杞嚦棰勭疆鐐瑰紓甯�:" + ex.getMessage()); + return false; + } + } + + @Override + //璁剧疆棰勭疆浣� + public boolean setPreset(CameraCmd cmd) { + String cameraId = cmd.getCameraId(); + Integer chanNo = cmd.getChanNo(); + Integer PresetIndex = cmd.getPresetIndex(); + if (!GlobalVariable.loginMap.containsKey(cameraId)) { + return false; + } + LLong loginId = (LLong) GlobalVariable.loginMap.get(cameraId); + try { + + boolean bool = netsdk.CLIENT_DHPTZControlEx(loginId, chanNo - 1, NET_PTZ_POINT_SET_CONTROL, 0, PresetIndex, 0, 0); + if (!bool) { + log.error("鎺у埗澶辫触,璇风◢鍚庨噸璇�" + getErrorCodePrint()); + } + return bool; + } catch (Exception ex) { + log.error("璁剧疆棰勭疆鐐瑰紓甯�:" + ex.getMessage()); + return false; + } + } + + //鍒囨崲鑱氱劍妯″紡 + @Override + public boolean controlFocusMode(CameraCmd cmd) { + String cameraId = cmd.getCameraId(); + Integer chanNo = cmd.getChanNo(); + boolean enable = cmd.isEnable(); + if (!GlobalVariable.loginMap.containsKey(cameraId)) { + return false; + } + LLong loginId = (LLong) GlobalVariable.loginMap.get(cameraId); + try { + CFG_VIDEO_IN_FOCUS cfg_video_in_focus = new CFG_VIDEO_IN_FOCUS(); + CFG_VIDEO_IN_FOCUS_UNIT[] stVideoInFocusUnit = new CFG_VIDEO_IN_FOCUS_UNIT[32]; + if (enable) { + stVideoInFocusUnit[0].nMode = 4;//鎵嬪姩鑱氱劍 + } else { + stVideoInFocusUnit[0].nMode = 2;//鎵嬪姩鑱氱劍 + } + cfg_video_in_focus.nChannelIndex = chanNo - 1; + cfg_video_in_focus.stVideoInFocusUnit = stVideoInFocusUnit; + boolean bool = ConfigModule.SetDevConfig(loginId, chanNo - 1, NetSDKLib.CFG_CMD_VIDEOIN_FOCUS, cfg_video_in_focus); + if (!bool) { + log.error("鎺у埗澶辫触,璇风◢鍚庨噸璇�" + getErrorCodePrint()); + } + return bool; + } catch (Exception ex) { + log.error("鍒囨崲鑱氱劍妯″紡寮傚父:" + ex.getMessage()); + return false; + } + } + + // 璁惧鏂嚎鍥炶皟: 褰撹澶囧嚭鐜版柇绾挎椂锛孲DK浼氳皟鐢ㄨ鍑芥暟 private static class DisConnect implements NetSDKLib.fDisConnect { public void invoke(LLong m_hLoginHandle, String pchDVRIP, int nDVRPort, Pointer dwUser) { System.out.printf("Device[%s] Port[%d] DisConnect!\n", pchDVRIP, nDVRPort); } } - // 缃戠粶杩炴帴鎭㈠锛岃澶囬噸杩炴垚鍔熷洖璋� - // 閫氳繃 CLIENT_SetAutoReconnect 璁剧疆璇ュ洖璋冨嚱鏁帮紝褰撳凡鏂嚎鐨勮澶囬噸杩炴垚鍔熸椂锛孲DK浼氳皟鐢ㄨ鍑芥暟 + // 缃戠粶杩炴帴鎭㈠鍥炶皟:璁惧閲嶈繛鎴愬姛鍥炶皟锛屽綋宸叉柇绾跨殑璁惧閲嶈繛鎴愬姛鏃讹紝SDK浼氳皟鐢ㄨ鍑芥暟 private static class HaveReConnect implements NetSDKLib.fHaveReConnect { @Override public void invoke(LLong lLoginID, String pchDVRIP, int nDVRPort, Pointer dwUser) { System.out.printf("ReConnect Device[%s] Port[%d]\n", pchDVRIP, nDVRPort); } } - // 鎶撳浘鎺ユ敹鍥炶皟 + + // 鎶撳浘鎺ユ敹鍥炶皟:褰撴姄鍥炬垚鍔燂紝sdk浼氳皟鐢ㄨ鍑芥暟 public static class fCaptureReceiveCB implements NetSDKLib.fSnapRev { private String minioEndPoint; private String ObjectName; -- Gitblit v1.9.3