From 69962e25b95593a0138f7be2b49dd51fa76ab8d7 Mon Sep 17 00:00:00 2001 From: ‘liusuyi’ <1951119284@qq.com> Date: 星期六, 14 十月 2023 17:13:58 +0800 Subject: [PATCH] 增加大华sdk初始化环境 增加大华设备登录 增加大华ptz获取和云台控制接口 增加相机通用SDK接口 --- ard-work/src/main/java/com/ruoyi/device/hiksdk/service/impl/HikClientServiceImpl.java | 469 +++++++++++++++++++++++++++++++++++++++++++--------------- 1 files changed, 344 insertions(+), 125 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 12c8cc8..5a3e96a 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 @@ -1,14 +1,20 @@ package com.ruoyi.device.hiksdk.service.impl; +import com.ruoyi.alarm.global.domain.GuidePriorityQueue; +import com.ruoyi.alarm.global.domain.GuideTask; import com.ruoyi.common.annotation.SdkOperate; import com.ruoyi.common.utils.file.FileUtils; import com.ruoyi.common.utils.file.MimeTypeUtils; +import com.ruoyi.common.utils.spring.SpringUtils; import com.ruoyi.common.utils.uuid.IdUtils; import com.ruoyi.device.camera.domain.CameraCmd; import com.ruoyi.device.camera.service.IArdCamerasService; import com.ruoyi.device.channel.domain.ArdChannel; +import com.ruoyi.device.channel.service.IArdChannelService; import com.ruoyi.device.hiksdk.common.GlobalVariable; import com.ruoyi.device.camera.domain.ArdCameras; +import com.ruoyi.media.domain.Vtdu; +import com.ruoyi.media.service.IVtduService; import com.ruoyi.utils.gis.GisUtil; import com.ruoyi.device.hiksdk.sdk.HCNetSDK; import com.ruoyi.device.hiksdk.service.IHikClientService; @@ -30,6 +36,7 @@ import java.nio.ByteBuffer; import java.text.DecimalFormat; import java.util.*; +import java.util.concurrent.PriorityBlockingQueue; import static com.ruoyi.device.hiksdk.sdk.HCNetSDK.*; @@ -44,10 +51,12 @@ @Service public class HikClientServiceImpl implements IHikClientService { - @Value("${minio.endpoint}") - private static String endpoint; @Resource private IArdCamerasService ardCamerasService; + @Resource + private IArdChannelService ardChannelService; + @Resource + private IVtduService vtduService; private static HCNetSDK hCNetSDK; @@ -56,7 +65,7 @@ try { log.debug("寮�濮嬪姞杞絪dk搴撴枃浠惰矾寰�"); if (Platform.isWindows()) { - String WIN_PATH = System.getProperty("user.dir") + File.separator + "lib" + File.separator + "HCNetSDK.dll"; + String WIN_PATH = System.getProperty("user.dir") + File.separator + "lib\\hikDll\\HCNetSDK.dll"; log.debug("褰撳墠Windows骞冲彴鐨剆dk搴撹矾寰勶細" + WIN_PATH); hCNetSDK = (HCNetSDK) Native.loadLibrary(WIN_PATH, HCNetSDK.class); } else { @@ -92,6 +101,7 @@ } } + @Override /** * @鎻忚堪 娉ㄥ唽鐧诲綍 鍙敮鎸佸悓姝ョ櫥闄嗭紝涓斿畼鏂逛笉寤鸿鐩存帴鍦ㄦ鎺ュ彛涓嬪啓鑰楁椂鎿嶄綔 * @鍙傛暟 [dvrLogin] @@ -100,14 +110,13 @@ * @鍒涘缓鏃堕棿 2023/1/17 16:12 * @淇敼浜哄拰鍏跺畠淇℃伅 */ - public ArdCameras login1(ArdCameras camera) { + public void syncLogin(ArdCameras camera) { // 鍒濆鍖� if (!hCNetSDK.NET_DVR_Init()) { log.error("SDK鍒濆鍖栧け璐�"); } //鎵撳嵃娴峰悍sdk鏃ュ織 if (Platform.isWindows()) { - String WIN_PATH = System.getProperty("user.dir") + File.separator + "ardLog" + File.separator + "logs" + File.separator; hCNetSDK.NET_DVR_SetLogToFile(3, WIN_PATH, true); } else { @@ -121,18 +130,84 @@ hCNetSDK.NET_DVR_SetConnectTime(2000, 1); hCNetSDK.NET_DVR_SetReconnect(100000, true); //璁惧淇℃伅, 杈撳嚭鍙傛暟 - 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); + HCNetSDK.NET_DVR_DEVICEINFO_V40 m_strDeviceInfo = new HCNetSDK.NET_DVR_DEVICEINFO_V40(); + HCNetSDK.NET_DVR_USER_LOGIN_INFO m_strLoginInfo = new HCNetSDK.NET_DVR_USER_LOGIN_INFO(); + + // 娉ㄥ唽璁惧-鐧诲綍鍙傛暟锛屽寘鎷澶囧湴鍧�銆佺櫥褰曠敤鎴枫�佸瘑鐮佺瓑 + m_strLoginInfo.sDeviceAddress = new byte[HCNetSDK.NET_DVR_DEV_ADDRESS_MAX_LEN]; + System.arraycopy(m_sDeviceIP.getBytes(), 0, m_strLoginInfo.sDeviceAddress, 0, m_sDeviceIP.length()); + m_strLoginInfo.sUserName = new byte[HCNetSDK.NET_DVR_LOGIN_USERNAME_MAX_LEN]; + System.arraycopy(m_sUsername.getBytes(), 0, m_strLoginInfo.sUserName, 0, m_sUsername.length()); + m_strLoginInfo.sPassword = new byte[HCNetSDK.NET_DVR_LOGIN_PASSWD_MAX_LEN]; + System.arraycopy(m_sPassword.getBytes(), 0, m_strLoginInfo.sPassword, 0, m_sPassword.length()); + m_strLoginInfo.wPort = m_sPort; + m_strLoginInfo.byVerifyMode = 0; + m_strLoginInfo.byLoginMode = 0; + //鏄惁寮傛鐧诲綍锛�0- 鍚︼紝1- 鏄� windowsSDK閲屾槸true鍜宖alse + m_strLoginInfo.bUseAsynLogin = false; + m_strLoginInfo.write(); + //鍚屾鐧诲綍 + int lUserID = hCNetSDK.NET_DVR_Login_V40(m_strLoginInfo, m_strDeviceInfo); if (lUserID < 0) { - //閲婃斁SDK璧勬簮 - hCNetSDK.NET_DVR_Cleanup(); + int errorCode = hCNetSDK.NET_DVR_GetLastError(); + log.error("鐧诲綍寮傚父锛�" + errorCode); + + log.debug(camera.getIp() + ":" + camera.getPort() + "鐧诲綍澶辫触"); + camera.setChanNum(0); camera.setLoginId(-1); + camera.setState("0"); + } else { + + if (GlobalVariable.loginMap.containsKey(camera.getId())) { + GlobalVariable.loginMap.remove(camera.getId()); + } + //鍒犻櫎绠$悊閫氶亾 + ardChannelService.deleteArdChannelByDeviceId(camera.getId()); + GlobalVariable.loginMap.put(camera.getId(), lUserID); + log.debug(camera.getIp() + ":" + camera.getPort() + "鐧诲綍鎴愬姛"); + + camera.setLoginId(lUserID); + camera.setState("1"); + camera.setChanNum((int) m_strDeviceInfo.struDeviceV30.byChanNum); + camera.setStartDChan((int) m_strDeviceInfo.struDeviceV30.byStartDChan); + //鑾峰彇鏈�鏂伴�氶亾 + List<ArdChannel> cameraChannelList = getCameraChannelList(camera); + if (cameraChannelList.size() > 0) { + for (ArdChannel channel : cameraChannelList) { + channel.setId(IdUtils.simpleUUID()); + ardChannelService.insertArdChannel(channel); + } + //娣诲姞鍒版祦濯掍綋 + for (ArdChannel channel : cameraChannelList) { + String name = camera.getId() + "_" + channel.getChanNo(); + String rtspSource = "rtsp://" + camera.getUsername() + ":" + camera.getPassword() + "@" + camera.getIp() + ":" + camera.getRtspPort() + "/h264/ch" + channel.getChanNo() + "/main/av_stream"; + Vtdu vtdu = vtduService.selectVtduByName(name); + if (vtdu == null) { + //娣诲姞鍒版祦濯掍綋 + vtdu = new Vtdu(); + vtdu.setRtspSource(rtspSource); + vtdu.setName(camera.getId() + "_" + channel.getChanNo()); + vtdu.setIsCode("0");//榛樿涓嶈浆鐮� + vtdu.setMode("1");//榛樿CPU杞В鐮� + vtdu.setCameraId(camera.getId()); + vtduService.insertVtdu(vtdu); + } else { + if (!rtspSource.equals(vtdu.getRtspSource())) { + //鏇存柊rtsp鍦板潃 + vtdu.setRtspSource(rtspSource); + vtduService.updateVtdu(vtdu); + } + } + } + } + //鍒涘缓寮曞闃熷垪 + if (!GuidePriorityQueue.cameraQueueMap.containsKey(camera.getId())) { + Comparator<GuideTask> comparator = GuidePriorityQueue.getComparator(); + PriorityBlockingQueue<GuideTask> priorityQueue = new PriorityBlockingQueue<>(1000, comparator); + GuidePriorityQueue.cameraQueueMap.put(camera.getId(), priorityQueue); + } + ardCamerasService.updateArdCameras(camera); } - GlobalVariable.loginMap.remove(camera.getId()); - GlobalVariable.loginMap.put(camera.getId(), lUserID); - camera.setLoginId(lUserID); - camera.setStartDChan((int) m_strDeviceInfo.byStartChan); - return camera; } /** @@ -144,7 +219,7 @@ * @淇敼浜哄拰鍏跺畠淇℃伅 */ @Override - public void login(ArdCameras camera) { + public void asyncLogin(ArdCameras camera) { // 鍒濆鍖� if (!hCNetSDK.NET_DVR_Init()) { log.error("SDK鍒濆鍖栧け璐�"); @@ -187,6 +262,7 @@ int errorCode = hCNetSDK.NET_DVR_GetLastError(); log.error("鐧诲綍寮傚父锛�" + errorCode); } + } /** @@ -201,10 +277,13 @@ public void loginAll() { try { log.debug("鍔犺浇lib瀹屾垚锛�"); - List<ArdCameras> ardCameras = ardCamerasService.selectArdCamerasListNoDataScope(new ArdCameras()); + ArdCameras ardCamera = new ArdCameras(); + ardCamera.setFactory("1"); + List<ArdCameras> ardCameras = ardCamerasService.selectArdCamerasListNoDataScope(ardCamera); for (ArdCameras camera : ardCameras) { Thread.sleep(500); - login(camera); + //寮傛鐧诲綍 + asyncLogin(camera); } } catch (Exception ex) { log.error("鍒濆鍖栫櫥褰曠浉鏈哄紓甯革細" + ex.getMessage()); @@ -220,11 +299,11 @@ * @淇敼浜哄拰鍏跺畠淇℃伅 */ @Override - public boolean loginOut(String cameraId) { + public boolean logout(String cameraId) { if (!GlobalVariable.loginMap.containsKey(cameraId)) { return false; } - Integer userId = GlobalVariable.loginMap.get(cameraId); + Integer userId = (Integer)GlobalVariable.loginMap.get(cameraId); boolean b = hCNetSDK.NET_DVR_Logout(userId); if (b) { GlobalVariable.loginMap.remove(cameraId); @@ -239,12 +318,17 @@ */ @Override public boolean isOnLine(CameraCmd cmd) { - String cameraId = cmd.getCameraId(); - if (!GlobalVariable.loginMap.containsKey(cameraId)) { + try { + String cameraId = cmd.getCameraId(); + if (!GlobalVariable.loginMap.containsKey(cameraId)) { + return false; + } + Integer userId = (Integer)GlobalVariable.loginMap.get(cameraId); + return hCNetSDK.NET_DVR_RemoteControl(userId, NET_DVR_CHECK_USER_STATUS, null, 0); + } catch (Exception ex) { + log.error("妫�娴嬪湪绾垮紓甯革細" + ex.getMessage()); return false; } - Integer userId = GlobalVariable.loginMap.get(cameraId); - return hCNetSDK.NET_DVR_RemoteControl(userId, HCNetSDK.NET_DVR_CHECK_USER_STATUS, null, 0); } /** @@ -268,7 +352,7 @@ if (!GlobalVariable.loginMap.containsKey(cameraId)) { return false; } - Integer userId = GlobalVariable.loginMap.get(cameraId); + Integer userId = (Integer)GlobalVariable.loginMap.get(cameraId); int dwStop; if (enable) { dwStop = 0;//寮�鍚� @@ -354,13 +438,13 @@ return false; } // 鑾峰彇鍙傛暟 - Integer userId = GlobalVariable.loginMap.get(cameraId); + Integer userId = (Integer)GlobalVariable.loginMap.get(cameraId); HCNetSDK.NET_DVR_STD_CONFIG struStdCfg = new HCNetSDK.NET_DVR_STD_CONFIG(); HCNetSDK.NET_DVR_GIS_INFO struGisInfo = new HCNetSDK.NET_DVR_GIS_INFO(); - struGisInfo.struPtzPosEx.dwFocus=dwFocusPos; + struGisInfo.struPtzPosEx.dwFocus = dwFocusPos; struStdCfg.read(); IntByReference lchannel = new IntByReference(channelNum); - struStdCfg.lpInBuffer= struGisInfo.getPointer(); + struStdCfg.lpInBuffer = struGisInfo.getPointer(); struStdCfg.lpCondBuffer = lchannel.getPointer(); struStdCfg.dwCondSize = 4; struStdCfg.dwInSize = struGisInfo.size(); @@ -388,7 +472,7 @@ return new HashMap<>(); } // 鑾峰彇鍙傛暟 - Integer userId = GlobalVariable.loginMap.get(cameraId); + Integer userId = (Integer)GlobalVariable.loginMap.get(cameraId); HCNetSDK.NET_DVR_STD_CONFIG struStdCfg = new HCNetSDK.NET_DVR_STD_CONFIG(); HCNetSDK.NET_DVR_GIS_INFO struGisInfo = new HCNetSDK.NET_DVR_GIS_INFO(); struStdCfg.read(); @@ -406,7 +490,7 @@ } else { struGisInfo.read(); Map<String, Object> map = new HashMap<>(); - map.put("dwFocus",struGisInfo.struPtzPosEx.dwFocus); + map.put("dwFocus", struGisInfo.struPtzPosEx.dwFocus); return map; } } @@ -425,7 +509,7 @@ if (!GlobalVariable.loginMap.containsKey(cameraId)) { return false; } - Integer userId = GlobalVariable.loginMap.get(cameraId); + Integer userId = (Integer)GlobalVariable.loginMap.get(cameraId); boolean bool = hCNetSDK.NET_DVR_PTZPreset_Other(userId, channelNum, SET_PRESET, PresetIndex); if (!bool) { int code = hCNetSDK.NET_DVR_GetLastError(); @@ -448,7 +532,7 @@ if (!GlobalVariable.loginMap.containsKey(cameraId)) { return false; } - Integer userId = GlobalVariable.loginMap.get(cameraId); + Integer userId = (Integer)GlobalVariable.loginMap.get(cameraId); boolean bool = hCNetSDK.NET_DVR_PTZPreset_Other(userId, channelNum, GOTO_PRESET, PresetIndex); if (!bool) { int code = hCNetSDK.NET_DVR_GetLastError(); @@ -458,7 +542,7 @@ } /** - * @鎻忚堪 鑾峰彇鍒嗚鲸鐜� + * @鎻忚堪 鑾峰彇閫氶亾鍘嬬缉鍙傛暟 * @鍙傛暟 [cameraId, channelNum] * @杩斿洖鍊� java.lang.String * @鍒涘缓浜� 鍒樿嫃涔� @@ -466,92 +550,227 @@ * @淇敼浜哄拰鍏跺畠淇℃伅 */ @Override - public String getVideoResolution(CameraCmd cmd) { + public Map<String, String> getVideoCompressionCfg(CameraCmd cmd) { String cameraId = cmd.getCameraId(); - Integer channelNum = cmd.getChanNo(); + Integer chanNo = cmd.getChanNo(); if (!GlobalVariable.loginMap.containsKey(cameraId)) { - return " "; + return null; } - Integer userId = GlobalVariable.loginMap.get(cameraId); + Integer userId = (Integer)GlobalVariable.loginMap.get(cameraId); - String ResResolution = ""; - NET_DVR_COMPRESSIONCFG_V30 resolution = new NET_DVR_COMPRESSIONCFG_V30(); - resolution.write(); - Pointer pioint = resolution.getPointer(); + Map<String, String> map = new HashMap<>(); + NET_DVR_COMPRESSIONCFG_V30 compressioncfg = new NET_DVR_COMPRESSIONCFG_V30(); + compressioncfg.write(); + Pointer pioint = compressioncfg.getPointer(); IntByReference ibrBytesReturned = new IntByReference(0); try { - boolean bool = hCNetSDK.NET_DVR_GetDVRConfig(userId, HCNetSDK.NET_DVR_GET_COMPRESSCFG_V30, channelNum, pioint, resolution.size(), ibrBytesReturned); + boolean bool = hCNetSDK.NET_DVR_GetDVRConfig(userId, HCNetSDK.NET_DVR_GET_COMPRESSCFG_V30, chanNo, pioint, compressioncfg.size(), ibrBytesReturned); if (bool) { - resolution.read(); - //瑙嗛杈撳嚭鍙e垎杈ㄧ巼锛�0- 1024x768锛�1- 1280x720锛�2-1280x1024锛�3- 1680x1050锛�4- 1920x1080锛�5- 3840*2160 -// byte byStreamType = resolution.struNormHighRecordPara.byStreamType; -// int dwVideoBitrate = resolution.struNormHighRecordPara.dwVideoBitrate; - int byResolution = resolution.struNormHighRecordPara.byResolution; - switch (byResolution) { + compressioncfg.read(); + //鐮佹祦绫诲瀷锛�0-瑙嗛娴侊紝1-澶嶅悎娴侊紝0xfe- 鑷姩锛堝拰婧愪竴鑷达級 + String streamType = ""; + switch (compressioncfg.struNormHighRecordPara.byStreamType) { case 0: - ResResolution = "DCIF(528*384/528*320)"; + streamType = "瑙嗛娴�"; break; case 1: - ResResolution = "CIF(352*288/352*240)"; - break; - case 2: - ResResolution = "QCIF(176*144/176*120)"; - break; - case 3: - ResResolution = "4CIF(704*576/704*480)"; - break; - case 4: - ResResolution = "2CIF(704*288/704*240)"; - break; - case 6: - ResResolution = "QVGA(320*240)"; - break; - case 7: - ResResolution = "QQVGA(160*120)"; - break; - case 16: - ResResolution = "VGA(640*480)"; - break; - case 17: - ResResolution = "UXGA(1600*1200)"; - break; - case 18: - ResResolution = "SVGA(800*600)"; - break; - case 19: - ResResolution = "HD720P(1280*720)"; - break; - case 20: - ResResolution = "XVGA(1280*960)"; - break; - case 21: - ResResolution = "HD900P(1600*900)"; - break; - case 22: - ResResolution = "1360*1024"; - break; - case 23: - ResResolution = "1536*1536"; - break; - case 24: - ResResolution = "1920*1920"; - break; - case 27: - ResResolution = "1920*1080p"; - break; - case 28: - ResResolution = "2560*1920"; - break; - case 29: - ResResolution = "1600*304"; - break; - case 30: - ResResolution = "2048*1536"; + streamType = "澶嶅悎娴�"; break; default: - ResResolution = "涓嶅湪褰撳墠鍒嗚鲸鐜囩储寮曪紝璇疯仈绯荤鐞嗗憳娣诲姞"; + streamType = "鏈煡"; break; } + //瑙嗛缂栫爜绫诲瀷锛�0-绉佹湁264锛�1-鏍囧噯h264锛�2-鏍囧噯mpeg4锛�7-M-JPEG锛�8-MPEG2锛�9-SVAC锛�10-鏍囧噯h265锛�0xfe- 鑷姩锛堝拰婧愪竴鑷达級锛�0xff-鏃犳晥 + String videoEncType = ""; + switch (compressioncfg.struNormHighRecordPara.byVideoEncType) { + case 0: + videoEncType = "绉佹湁264"; + break; + case 1: + videoEncType = "鏍囧噯h264"; + break; + case 2: + videoEncType = "鏍囧噯mpeg4"; + break; + case 7: + videoEncType = "M-JPEG"; + break; + case 8: + videoEncType = "MPEG2"; + break; + case 9: + videoEncType = "SVAC"; + break; + case 10: + videoEncType = "鏍囧噯h265"; + break; + default: + videoEncType = "鏈煡"; + break; + } + //瑙嗛鐮佺巼 + String videoBitrate = ""; + switch (compressioncfg.struNormHighRecordPara.dwVideoBitrate) { + case 0: + videoBitrate = "淇濈暀"; + break; + case 1: + videoBitrate = "16K(淇濈暀)"; + break; + case 2: + videoBitrate = "32K"; + break; + case 3: + videoBitrate = "48k"; + break; + case 4: + videoBitrate = "64k"; + break; + case 5: + videoBitrate = "80k"; + break; + case 6: + videoBitrate = "96k"; + break; + case 7: + videoBitrate = "128k"; + break; + case 8: + videoBitrate = "160k"; + break; + case 9: + videoBitrate = "192k"; + break; + case 10: + videoBitrate = "224k"; + break; + case 11: + videoBitrate = "256K"; + break; + case 12: + videoBitrate = "320K"; + break; + case 13: + videoBitrate = "384K"; + break; + case 14: + videoBitrate = "448K"; + break; + case 15: + videoBitrate = "512K"; + break; + case 16: + videoBitrate = "640K"; + break; + case 17: + videoBitrate = "768K"; + break; + case 18: + videoBitrate = "896K"; + break; + case 19: + videoBitrate = "1024K"; + break; + case 20: + videoBitrate = "1280K"; + break; + case 21: + videoBitrate = "1536K"; + break; + case 22: + videoBitrate = "1792K"; + break; + case 23: + videoBitrate = "2048K"; + break; + case 24: + videoBitrate = "3072K"; + break; + case 25: + videoBitrate = "4096K"; + break; + case 26: + videoBitrate = "8192K"; + break; + case 27: + videoBitrate = "16384K"; + break; + default: + videoBitrate = "鍏朵粬"; + break; + } + //瑙嗛杈撳嚭鍙e垎杈ㄧ巼锛�0- 1024x768锛�1- 1280x720锛�2-1280x1024锛�3- 1680x1050锛�4- 1920x1080锛�5- 3840*2160 + String resolution = ""; + switch (compressioncfg.struNormHighRecordPara.byResolution) { + case 0: + resolution = "DCIF(528*384/528*320)"; + break; + case 1: + resolution = "CIF(352*288/352*240)"; + break; + case 2: + resolution = "QCIF(176*144/176*120)"; + break; + case 3: + resolution = "4CIF(704*576/704*480)"; + break; + case 4: + resolution = "2CIF(704*288/704*240)"; + break; + case 6: + resolution = "QVGA(320*240)"; + break; + case 7: + resolution = "QQVGA(160*120)"; + break; + case 16: + resolution = "VGA(640*480)"; + break; + case 17: + resolution = "UXGA(1600*1200)"; + break; + case 18: + resolution = "SVGA(800*600)"; + break; + case 19: + resolution = "HD720P(1280*720)"; + break; + case 20: + resolution = "XVGA(1280*960)"; + break; + case 21: + resolution = "HD900P(1600*900)"; + break; + case 22: + resolution = "1360*1024"; + break; + case 23: + resolution = "1536*1536"; + break; + case 24: + resolution = "1920*1920"; + break; + case 27: + resolution = "1920*1080p"; + break; + case 28: + resolution = "2560*1920"; + break; + case 29: + resolution = "1600*304"; + break; + case 30: + resolution = "2048*1536"; + break; + default: + resolution = "涓嶅湪褰撳墠鍒嗚鲸鐜囩储寮曪紝璇疯仈绯荤鐞嗗憳娣诲姞"; + break; + } + map.put("resolution", resolution); + map.put("videoBitrate", videoBitrate); + map.put("videoEncType", videoEncType); + map.put("streamType", streamType); + } else { int code = hCNetSDK.NET_DVR_GetLastError(); log.error("鎺у埗澶辫触,璇风◢鍚庨噸璇�" + code); @@ -559,7 +778,7 @@ } catch (Exception ex) { log.error(ex.getMessage()); } - return ResResolution; + return map; } /** @@ -577,7 +796,7 @@ if (!GlobalVariable.loginMap.containsKey(cameraId)) { return null; } - Integer userId = GlobalVariable.loginMap.get(cameraId); + Integer userId = (Integer)GlobalVariable.loginMap.get(cameraId); NET_DVR_PTZPOS m_ptzPosCurrent = new NET_DVR_PTZPOS(); Pointer pioint = m_ptzPosCurrent.getPointer(); @@ -629,7 +848,7 @@ if (!GlobalVariable.loginMap.containsKey(cameraId)) { return false; } - Integer userId = GlobalVariable.loginMap.get(cameraId); + Integer userId = (Integer)GlobalVariable.loginMap.get(cameraId); NET_DVR_PTZPOS m_ptzPosCurrent = new NET_DVR_PTZPOS(); m_ptzPosCurrent.wAction = 1; try { @@ -661,7 +880,7 @@ if (!GlobalVariable.loginMap.containsKey(cameraId)) { return false; } - Integer userId = GlobalVariable.loginMap.get(cameraId); + Integer userId = (Integer)GlobalVariable.loginMap.get(cameraId); NET_DVR_PTZPOS m_ptzPosCurrent = new NET_DVR_PTZPOS(); m_ptzPosCurrent.wAction = 1; try { @@ -748,7 +967,7 @@ if (!GlobalVariable.loginMap.containsKey(cameraId)) { return -1; } - Integer userId = GlobalVariable.loginMap.get(cameraId); + Integer userId = (Integer)GlobalVariable.loginMap.get(cameraId); NET_DVR_PTZ_LOCKCFG netDvrPtzLockcfg = new NET_DVR_PTZ_LOCKCFG(); Pointer point = netDvrPtzLockcfg.getPointer(); IntByReference ibrBytesReturned = new IntByReference(0); @@ -780,7 +999,7 @@ if (!GlobalVariable.loginMap.containsKey(cameraId)) { return false; } - Integer userId = GlobalVariable.loginMap.get(cameraId); + Integer userId = (Integer)GlobalVariable.loginMap.get(cameraId); NET_DVR_INITIALPOSITIONCTRL initialpositionctrl = new NET_DVR_INITIALPOSITIONCTRL(); initialpositionctrl.dwSize = initialpositionctrl.size(); @@ -812,7 +1031,7 @@ if (!GlobalVariable.loginMap.containsKey(cameraId)) { return new HashMap<>(); } - Integer userId = GlobalVariable.loginMap.get(cameraId); + Integer userId = (Integer)GlobalVariable.loginMap.get(cameraId); NET_DVR_PTZSCOPE m_ptzPosCurrent = new NET_DVR_PTZSCOPE(); Pointer point = m_ptzPosCurrent.getPointer(); IntByReference ibrBytesReturned = new IntByReference(0); @@ -861,7 +1080,7 @@ if (!GlobalVariable.loginMap.containsKey(cameraId)) { return false; } - Integer userId = GlobalVariable.loginMap.get(cameraId); + Integer userId = (Integer)GlobalVariable.loginMap.get(cameraId); NET_DVR_CAMERAPARAMCFG_EX struCameraParam = new NET_DVR_CAMERAPARAMCFG_EX(); Pointer point = struCameraParam.getPointer(); IntByReference ibrBytesReturned = new IntByReference(0); @@ -907,7 +1126,7 @@ if (!GlobalVariable.loginMap.containsKey(cameraId)) { return false; } - Integer userId = GlobalVariable.loginMap.get(cameraId); + Integer userId = (Integer)GlobalVariable.loginMap.get(cameraId); NET_DVR_CAMERAPARAMCFG_EX struDayNigh = new NET_DVR_CAMERAPARAMCFG_EX(); Pointer point = struDayNigh.getPointer(); IntByReference ibrBytesReturned = new IntByReference(0); @@ -955,7 +1174,7 @@ if (!GlobalVariable.loginMap.containsKey(cameraId)) { return false; } - Integer userId = GlobalVariable.loginMap.get(cameraId); + Integer userId = (Integer)GlobalVariable.loginMap.get(cameraId); NET_DVR_FOCUSMODE_CFG struFocusMode = new NET_DVR_FOCUSMODE_CFG(); Pointer point = struFocusMode.getPointer(); IntByReference ibrBytesReturned = new IntByReference(0); @@ -998,7 +1217,7 @@ if (!GlobalVariable.loginMap.containsKey(cameraId)) { return ""; } - Integer userId = GlobalVariable.loginMap.get(cameraId); + Integer userId = (Integer)GlobalVariable.loginMap.get(cameraId); NET_DVR_FOCUSMODE_CFG struFocusMode = new NET_DVR_FOCUSMODE_CFG(); Pointer point = struFocusMode.getPointer(); IntByReference ibrBytesReturned = new IntByReference(0); @@ -1028,7 +1247,7 @@ if (!GlobalVariable.loginMap.containsKey(cameraId)) { return false; } - Integer userId = GlobalVariable.loginMap.get(cameraId); + Integer userId = (Integer)GlobalVariable.loginMap.get(cameraId); int dwStop; if (enable) { dwStop = 0;//寮�鍚� @@ -1061,7 +1280,7 @@ if (!GlobalVariable.loginMap.containsKey(cameraId)) { return false; } - Integer userId = GlobalVariable.loginMap.get(cameraId); + Integer userId = (Integer)GlobalVariable.loginMap.get(cameraId); NET_DVR_DEVSERVER_CFG struDeicing = new NET_DVR_DEVSERVER_CFG(); Pointer point = struDeicing.getPointer(); IntByReference ibrBytesReturned = new IntByReference(0); @@ -1098,7 +1317,7 @@ if (!GlobalVariable.loginMap.containsKey(cameraId)) { return ""; } - Integer userId = GlobalVariable.loginMap.get(cameraId); + Integer userId = (Integer)GlobalVariable.loginMap.get(cameraId); NET_DVR_WORKSTATE_V30 devwork = new NET_DVR_WORKSTATE_V30(); if (!hCNetSDK.NET_DVR_GetDVRWorkState_V30(userId, devwork)) { // 杩斿洖Boolean鍊硷紝鍒ゆ柇鏄惁鑾峰彇璁惧鑳藉姏 @@ -1141,7 +1360,7 @@ if (!GlobalVariable.loginMap.containsKey(cameraId)) { return ""; } - Integer userId = GlobalVariable.loginMap.get(cameraId); + Integer userId = (Integer)GlobalVariable.loginMap.get(cameraId); //鍥剧墖淇℃伅 NET_DVR_JPEGPARA jpeg = new NET_DVR_JPEGPARA(); //璁剧疆鍥剧墖鍒嗚鲸鐜� @@ -1205,7 +1424,7 @@ if (!GlobalVariable.loginMap.containsKey(cameraId)) { return ""; } - Integer userId = GlobalVariable.loginMap.get(cameraId); + Integer userId = (Integer)GlobalVariable.loginMap.get(cameraId); //寮哄埗I甯х粨鏋勪綋瀵硅薄 HCNetSDK.NET_DVR_I_FRAME netDvrIFrame = new HCNetSDK.NET_DVR_I_FRAME(); //鏂板缓缁撴瀯浣撳璞� netDvrIFrame.read(); @@ -1266,7 +1485,7 @@ if (!GlobalVariable.loginMap.containsKey(cameraId)) { return; } - Integer userId = GlobalVariable.loginMap.get(cameraId); + Integer userId = (Integer)GlobalVariable.loginMap.get(cameraId); //寮哄埗I甯х粨鏋勪綋瀵硅薄 HCNetSDK.NET_DVR_I_FRAME netDvrIFrame = new HCNetSDK.NET_DVR_I_FRAME(); //鏂板缓缁撴瀯浣撳璞� netDvrIFrame.read(); @@ -1321,7 +1540,7 @@ if (!GlobalVariable.loginMap.containsKey(cameraId)) { return ""; } - Integer userId = GlobalVariable.loginMap.get(cameraId); + Integer userId = (Integer)GlobalVariable.loginMap.get(cameraId); //region 寮哄埗I甯� HCNetSDK.NET_DVR_I_FRAME netDvrIFrame = new HCNetSDK.NET_DVR_I_FRAME(); //鏂板缓缁撴瀯浣撳璞� netDvrIFrame.read(); @@ -1374,7 +1593,7 @@ if (!GlobalVariable.loginMap.containsKey(cameraId)) { return; } - Integer userId = GlobalVariable.loginMap.get(cameraId); + Integer userId = (Integer)GlobalVariable.loginMap.get(cameraId); //寮哄埗I甯х粨鏋勪綋瀵硅薄 HCNetSDK.NET_DVR_I_FRAME netDvrIFrame = new HCNetSDK.NET_DVR_I_FRAME(); //鏂板缓缁撴瀯浣撳璞� netDvrIFrame.read(); @@ -1459,7 +1678,7 @@ return new HashMap<>(); } // 鑾峰彇鍙傛暟 - Integer userId = GlobalVariable.loginMap.get(cameraId); + Integer userId = (Integer)GlobalVariable.loginMap.get(cameraId); HCNetSDK.NET_DVR_STD_CONFIG struStdCfg = new HCNetSDK.NET_DVR_STD_CONFIG(); HCNetSDK.NET_DVR_GIS_INFO struGisInfo = new HCNetSDK.NET_DVR_GIS_INFO(); struStdCfg.read(); @@ -1478,7 +1697,7 @@ struGisInfo.read(); Map<String, Object> map = new HashMap<>(); map.put("p", struGisInfo.struPtzPos.fPanPos); - map.put("t", struGisInfo.struPtzPos.fTiltPos<0?struGisInfo.struPtzPos.fTiltPos+360:struGisInfo.struPtzPos.fTiltPos); + map.put("t", struGisInfo.struPtzPos.fTiltPos < 0 ? struGisInfo.struPtzPos.fTiltPos + 360 : struGisInfo.struPtzPos.fTiltPos); map.put("z", struGisInfo.struPtzPos.fZoomPos); map.put("fHorFieldAngle", struGisInfo.fHorizontalValue);// 姘村钩瑙嗗満瑙� map.put("fVerFieldAngle", struGisInfo.fVerticalValue);// 鍨傜洿瑙嗗満瑙� -- Gitblit v1.9.3