From 0a12bfc2e9594345a0a6cf136bcf234c62450d9d Mon Sep 17 00:00:00 2001 From: aijinhui <aijinhui> Date: 星期六, 14 十月 2023 16:31:19 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- ard-work/src/main/java/com/ruoyi/device/hiksdk/service/impl/HikClientServiceImpl.java | 511 ++++++++++++++++++++++++++++++++++++++++--------------- 1 files changed, 368 insertions(+), 143 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 d03fb83..e803ca0 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; @@ -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); } + } /** @@ -204,7 +280,8 @@ List<ArdCameras> ardCameras = ardCamerasService.selectArdCamerasListNoDataScope(new ArdCameras()); for (ArdCameras camera : ardCameras) { Thread.sleep(500); - login(camera); + //寮傛鐧诲綍 + asyncLogin(camera); } } catch (Exception ex) { log.error("鍒濆鍖栫櫥褰曠浉鏈哄紓甯革細" + ex.getMessage()); @@ -239,12 +316,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 = 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); } /** @@ -262,7 +344,7 @@ public boolean pTZControlWithSpeed(CameraCmd cmd) { String cameraId = cmd.getCameraId(); boolean enable = cmd.isEnable(); - Integer channelNum = cmd.getChannelNum(); + Integer channelNum = cmd.getChanNo(); Integer speed = cmd.getSpeed(); Integer code = cmd.getCode(); if (!GlobalVariable.loginMap.containsKey(cameraId)) { @@ -348,23 +430,31 @@ @SdkOperate public boolean setFocusPos(CameraCmd cmd) { String cameraId = cmd.getCameraId(); - Integer channelNum = cmd.getChannelNum(); + Integer channelNum = cmd.getChanNo(); Integer dwFocusPos = cmd.getDwFocusPos(); if (!GlobalVariable.loginMap.containsKey(cameraId)) { return false; } + // 鑾峰彇鍙傛暟 Integer userId = GlobalVariable.loginMap.get(cameraId); - - NET_DVR_FOCUSMODE_CFG focusmodeCfg = new NET_DVR_FOCUSMODE_CFG(); - Pointer point = focusmodeCfg.getPointer(); - IntByReference ibrBytesReturned = new IntByReference(0); - focusmodeCfg.dwFocusPos = dwFocusPos; - boolean bool = hCNetSDK.NET_DVR_GetDVRConfig(userId, NET_DVR_GET_FOCUSMODECFG, channelNum, point, focusmodeCfg.size(), ibrBytesReturned); + 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; + struStdCfg.read(); + IntByReference lchannel = new IntByReference(channelNum); + struStdCfg.lpInBuffer = struGisInfo.getPointer(); + struStdCfg.lpCondBuffer = lchannel.getPointer(); + struStdCfg.dwCondSize = 4; + struStdCfg.dwInSize = struGisInfo.size(); + struStdCfg.write();//璁剧疆鍓嶄箣鍓嶈write() + boolean bool = hCNetSDK.NET_DVR_SetSTDConfig(userId, NET_DVR_GET_GISINFO, struStdCfg); if (!bool) { int code = hCNetSDK.NET_DVR_GetLastError(); - log.error("璁剧疆鑱氱劍鍊煎け璐�,璇风◢鍚庨噸璇�" + code); + log.error("璁剧疆GIS淇℃伅鏁版嵁澶辫触,璇风◢鍚庨噸璇�" + code); + return false; + } else { + return true; } - return bool; } /** @@ -375,31 +465,31 @@ @Override public Map<String, Object> getFocusPos(CameraCmd cmd) { String cameraId = cmd.getCameraId(); - Integer channelNum = cmd.getChannelNum(); - + Integer channelNum = cmd.getChanNo(); if (!GlobalVariable.loginMap.containsKey(cameraId)) { return new HashMap<>(); } + // 鑾峰彇鍙傛暟 Integer userId = GlobalVariable.loginMap.get(cameraId); - - NET_DVR_FOCUSMODE_CFG focusmodeCfg = new NET_DVR_FOCUSMODE_CFG(); - Pointer point = focusmodeCfg.getPointer(); - IntByReference ibrBytesReturned = new IntByReference(0); - focusmodeCfg.byFocusMode = 1; - focusmodeCfg.byAutoFocusMode = 0; - focusmodeCfg.write(); - boolean bool = hCNetSDK.NET_DVR_GetDVRConfig(userId, NET_DVR_GET_FOCUSMODECFG, channelNum, point, focusmodeCfg.size(), ibrBytesReturned); - if (bool) { - focusmodeCfg.read(); - Map<String, Object> map = new HashMap<>(); - map.put("dwFocusPos", focusmodeCfg.dwFocusPos); - map.put("byFocusDefinitionDisplay ", focusmodeCfg.byFocusDefinitionDisplay); - map.put("dwRelativeFocusPos", focusmodeCfg.dwRelativeFocusPos); - return map; - } else { + 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(); + IntByReference lchannel = new IntByReference(channelNum); + struStdCfg.lpCondBuffer = lchannel.getPointer(); + struStdCfg.dwCondSize = 4; + struStdCfg.lpOutBuffer = struGisInfo.getPointer(); + struStdCfg.dwOutSize = struGisInfo.size(); + struStdCfg.write();//璁剧疆鍓嶄箣鍓嶈write() + boolean bool = hCNetSDK.NET_DVR_GetSTDConfig(userId, NET_DVR_GET_GISINFO, struStdCfg); + if (!bool) { int code = hCNetSDK.NET_DVR_GetLastError(); - log.debug("鑾峰彇鑱氱劍鍊煎け璐�,璇风◢鍚庨噸璇�" + code); + log.error("鑾峰彇GIS淇℃伅鏁版嵁澶辫触,璇风◢鍚庨噸璇�" + code); return new HashMap<>(); + } else { + struGisInfo.read(); + Map<String, Object> map = new HashMap<>(); + map.put("dwFocus", struGisInfo.struPtzPosEx.dwFocus); + return map; } } @@ -412,7 +502,7 @@ @SdkOperate public boolean setPreset(CameraCmd cmd) { String cameraId = cmd.getCameraId(); - Integer channelNum = cmd.getChannelNum(); + Integer channelNum = cmd.getChanNo(); Integer PresetIndex = cmd.getPresetIndex(); if (!GlobalVariable.loginMap.containsKey(cameraId)) { return false; @@ -435,7 +525,7 @@ @SdkOperate public boolean gotoPreset(CameraCmd cmd) { String cameraId = cmd.getCameraId(); - Integer channelNum = cmd.getChannelNum(); + Integer channelNum = cmd.getChanNo(); Integer PresetIndex = cmd.getPresetIndex(); if (!GlobalVariable.loginMap.containsKey(cameraId)) { return false; @@ -450,7 +540,7 @@ } /** - * @鎻忚堪 鑾峰彇鍒嗚鲸鐜� + * @鎻忚堪 鑾峰彇閫氶亾鍘嬬缉鍙傛暟 * @鍙傛暟 [cameraId, channelNum] * @杩斿洖鍊� java.lang.String * @鍒涘缓浜� 鍒樿嫃涔� @@ -458,92 +548,227 @@ * @淇敼浜哄拰鍏跺畠淇℃伅 */ @Override - public String getVideoResolution(CameraCmd cmd) { + public Map<String, String> getVideoCompressionCfg(CameraCmd cmd) { String cameraId = cmd.getCameraId(); - Integer channelNum = cmd.getChannelNum(); + Integer chanNo = cmd.getChanNo(); if (!GlobalVariable.loginMap.containsKey(cameraId)) { - return " "; + return null; } Integer userId = 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); @@ -551,7 +776,7 @@ } catch (Exception ex) { log.error(ex.getMessage()); } - return ResResolution; + return map; } /** @@ -565,7 +790,7 @@ @Override public Map<String, Object> getPtz(CameraCmd cmd) { String cameraId = cmd.getCameraId(); - Integer channelNum = cmd.getChannelNum(); + Integer channelNum = cmd.getChanNo(); if (!GlobalVariable.loginMap.containsKey(cameraId)) { return null; } @@ -616,7 +841,7 @@ @SdkOperate public boolean setPtz(CameraCmd cmd) { String cameraId = cmd.getCameraId(); - Integer channelNum = cmd.getChannelNum(); + Integer channelNum = cmd.getChanNo(); Map<String, Double> ptz = cmd.getPtzMap(); if (!GlobalVariable.loginMap.containsKey(cameraId)) { return false; @@ -649,7 +874,7 @@ @SdkOperate public boolean guideTargetPosition(CameraCmd cmd) { String cameraId = cmd.getCameraId(); - Integer channelNum = cmd.getChannelNum(); + Integer channelNum = cmd.getChanNo(); if (!GlobalVariable.loginMap.containsKey(cameraId)) { return false; } @@ -736,7 +961,7 @@ @Override public int getPTZLockInfo(CameraCmd cmd) { String cameraId = cmd.getCameraId(); - Integer channelNum = cmd.getChannelNum(); + Integer channelNum = cmd.getChanNo(); if (!GlobalVariable.loginMap.containsKey(cameraId)) { return -1; } @@ -768,7 +993,7 @@ @SdkOperate public boolean setZeroPtz(CameraCmd cmd) { String cameraId = cmd.getCameraId(); - Integer channelNum = cmd.getChannelNum(); + Integer channelNum = cmd.getChanNo(); if (!GlobalVariable.loginMap.containsKey(cameraId)) { return false; } @@ -800,7 +1025,7 @@ @Override public Map<String, Object> getPtzScope(CameraCmd cmd) { String cameraId = cmd.getCameraId(); - Integer channelNum = cmd.getChannelNum(); + Integer channelNum = cmd.getChanNo(); if (!GlobalVariable.loginMap.containsKey(cameraId)) { return new HashMap<>(); } @@ -849,7 +1074,7 @@ public boolean controlDefogcfg(CameraCmd cmd) { String cameraId = cmd.getCameraId(); boolean enable = cmd.isEnable(); - Integer channelNum = cmd.getChannelNum(); + Integer channelNum = cmd.getChanNo(); if (!GlobalVariable.loginMap.containsKey(cameraId)) { return false; } @@ -895,7 +1120,7 @@ public boolean controlInfrarecfg(CameraCmd cmd) { String cameraId = cmd.getCameraId(); boolean enable = cmd.isEnable(); - Integer channelNum = cmd.getChannelNum(); + Integer channelNum = cmd.getChanNo(); if (!GlobalVariable.loginMap.containsKey(cameraId)) { return false; } @@ -943,7 +1168,7 @@ public boolean controlFocusMode(CameraCmd cmd) { String cameraId = cmd.getCameraId(); boolean enable = cmd.isEnable(); - Integer channelNum = cmd.getChannelNum(); + Integer channelNum = cmd.getChanNo(); if (!GlobalVariable.loginMap.containsKey(cameraId)) { return false; } @@ -986,7 +1211,7 @@ */ public String getFocusMode(CameraCmd cmd) { String cameraId = cmd.getCameraId(); - Integer channelNum = cmd.getChannelNum(); + Integer channelNum = cmd.getChanNo(); if (!GlobalVariable.loginMap.containsKey(cameraId)) { return ""; } @@ -1016,7 +1241,7 @@ public boolean controlPTHeateRpwron(CameraCmd cmd) { String cameraId = cmd.getCameraId(); boolean enable = cmd.isEnable(); - Integer channelNum = cmd.getChannelNum(); + Integer channelNum = cmd.getChanNo(); if (!GlobalVariable.loginMap.containsKey(cameraId)) { return false; } @@ -1049,7 +1274,7 @@ public boolean controlCameraDeicing(CameraCmd cmd) { String cameraId = cmd.getCameraId(); boolean enable = cmd.isEnable(); - Integer channelNum = cmd.getChannelNum(); + Integer channelNum = cmd.getChanNo(); if (!GlobalVariable.loginMap.containsKey(cameraId)) { return false; } @@ -1086,7 +1311,7 @@ */ public String captureJPEGPicture(CameraCmd cmd) { String cameraId = cmd.getCameraId(); - Integer channelNum = cmd.getChannelNum(); + Integer channelNum = cmd.getChanNo(); if (!GlobalVariable.loginMap.containsKey(cameraId)) { return ""; } @@ -1129,7 +1354,7 @@ @SdkOperate public String picCutCate(CameraCmd cmd) { String cameraId = cmd.getCameraId(); - Integer channelNum = cmd.getChannelNum(); + Integer channelNum = cmd.getChanNo(); if (!GlobalVariable.loginMap.containsKey(cameraId)) { return ""; } @@ -1191,7 +1416,7 @@ public String record(CameraCmd cmd) { try { String cameraId = cmd.getCameraId(); - Integer channelNum = cmd.getChannelNum(); + Integer channelNum = cmd.getChanNo(); String path = FileUtils.createFile("D:/recordTemp/" + cameraId + ".mp4"); boolean enable = cmd.isEnable(); if (!GlobalVariable.loginMap.containsKey(cameraId)) { @@ -1253,7 +1478,7 @@ public void recordStart(CameraCmd cmd) { try { String cameraId = cmd.getCameraId(); - Integer channelNum = cmd.getChannelNum(); + Integer channelNum = cmd.getChanNo(); String path = FileUtils.createFile("D:/recordTemp/" + cameraId + ".mp4"); if (!GlobalVariable.loginMap.containsKey(cameraId)) { return; @@ -1308,7 +1533,7 @@ String url = ""; try { String cameraId = cmd.getCameraId(); - Integer channelNum = cmd.getChannelNum(); + Integer channelNum = cmd.getChanNo(); String path = FileUtils.createFile("D:/recordTemp/" + cameraId + ".mp4"); if (!GlobalVariable.loginMap.containsKey(cameraId)) { return ""; @@ -1362,7 +1587,7 @@ public void recordStopNotToMinio(CameraCmd cmd) { try { String cameraId = cmd.getCameraId(); - Integer channelNum = cmd.getChannelNum(); + Integer channelNum = cmd.getChanNo(); if (!GlobalVariable.loginMap.containsKey(cameraId)) { return; } @@ -1446,7 +1671,7 @@ @Override public Map<String, Object> getGisInfo(CameraCmd cmd) { String cameraId = cmd.getCameraId(); - Integer channelNum = cmd.getChannelNum(); + Integer channelNum = cmd.getChanNo(); if (!GlobalVariable.loginMap.containsKey(cameraId)) { return new HashMap<>(); } @@ -1470,7 +1695,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