From a3d274cc185968709ff240cd77a11a31df045183 Mon Sep 17 00:00:00 2001 From: zhangnaisong <2434969829@qq.com> Date: 星期一, 27 五月 2024 14:25:29 +0800 Subject: [PATCH] 设备健康获取某油井一段时间的测量趋势修改提交 --- ard-work/src/main/java/com/ruoyi/utils/sdk/hiksdk/service/impl/HikvisionSDK.java | 69 +++++++++++++++++++--------------- 1 files changed, 38 insertions(+), 31 deletions(-) diff --git a/ard-work/src/main/java/com/ruoyi/utils/sdk/hiksdk/service/impl/HikvisionSDK.java b/ard-work/src/main/java/com/ruoyi/utils/sdk/hiksdk/service/impl/HikvisionSDK.java index 5c9587f..cd34865 100644 --- a/ard-work/src/main/java/com/ruoyi/utils/sdk/hiksdk/service/impl/HikvisionSDK.java +++ b/ard-work/src/main/java/com/ruoyi/utils/sdk/hiksdk/service/impl/HikvisionSDK.java @@ -149,26 +149,29 @@ camera.setLoginId(lUserID); camera.setState("1"); - camera.setChanNum((int) m_strDeviceInfo.struDeviceV30.byChanNum); - camera.setStartDChan((int) m_strDeviceInfo.struDeviceV30.byStartDChan); + int chanNum = m_strDeviceInfo.struDeviceV30.byChanNum; + int startDchan = m_strDeviceInfo.struDeviceV30.byStartDChan + 1; + if (camera.getGdtype().equals("2")) { + chanNum = m_strDeviceInfo.struDeviceV30.byIPChanNum; + startDchan = m_strDeviceInfo.struDeviceV30.byStartDChan; + } + camera.setChanNum(chanNum); + camera.setStartDChan(startDchan); //鑾峰彇鏈�鏂伴�氶亾 List<ArdChannel> cameraChannelList = getIPChannelInfo(camera); if (cameraChannelList.size() > 0) { camera.setChannelList(cameraChannelList); + camera.setChanNum(cameraChannelList.size()); for (ArdChannel channel : cameraChannelList) { channel.setId(IdUtils.simpleUUID()); ardChannelService.insertArdChannel(channel); } + ardCamerasService.updateArdCameras(camera); //娣诲姞鍒版祦濯掍綋 addVtdu(camera); } //鍒涘缓寮曞闃熷垪 - 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); + createGuideQueue(camera); return AjaxResult.success("璁惧鐧诲綍鎴愬姛"); } catch (Exception ex) { log.error("璁惧鐧诲綍寮傚父", ex); @@ -260,8 +263,14 @@ camera.setLoginId(lUserID); camera.setState("1"); - camera.setChanNum((int) m_strDeviceInfo.struDeviceV30.byChanNum); - camera.setStartDChan((int) m_strDeviceInfo.struDeviceV30.byStartDChan); + int chanNum = m_strDeviceInfo.struDeviceV30.byChanNum; + int startDchan = m_strDeviceInfo.struDeviceV30.byStartDChan + 1; + if (camera.getGdtype().equals("2")) { + chanNum = m_strDeviceInfo.struDeviceV30.byIPChanNum; + startDchan = m_strDeviceInfo.struDeviceV30.byStartDChan; + } + camera.setChanNum(chanNum); + camera.setStartDChan(startDchan); //鑾峰彇鏈�鏂伴�氶亾 List<ArdChannel> cameraChannelList = getIPChannelInfo(camera); @@ -272,10 +281,11 @@ channel.setId(IdUtils.simpleUUID()); ardChannelService.insertArdChannel(channel); } + ardCamerasService.updateArdCameras(camera); + //娣诲姞鍒版祦濯掍綋 + addVtdu(camera); } - ardCamerasService.updateArdCameras(camera); - //娣诲姞鍒版祦濯掍綋 - addVtdu(camera); + //鍒涘缓寮曞闃熷垪 createGuideQueue(camera); return AjaxResult.success("璁惧鐧诲綍鎴愬姛"); @@ -1249,8 +1259,8 @@ @Override public AjaxResult controlDefogcfg(CameraCmd cmd) { String cameraId = cmd.getCameraId(); + Integer chanNo=cmd.getChanNo(); boolean enable = cmd.isEnable(); - Integer channelNum = cmd.getChanNo(); if (!GlobalVariable.loginMap.containsKey(cameraId)) { return AjaxResult.warn("璁惧鏈櫥褰�"); } @@ -1258,10 +1268,10 @@ NET_DVR_CAMERAPARAMCFG_EX struCameraParam = new NET_DVR_CAMERAPARAMCFG_EX(); Pointer point = struCameraParam.getPointer(); IntByReference ibrBytesReturned = new IntByReference(0); - boolean b_GetCameraParam = hCNetSDK.NET_DVR_GetDVRConfig(userId, NET_DVR_GET_CCDPARAMCFG_EX, channelNum, point, struCameraParam.size(), ibrBytesReturned); + boolean b_GetCameraParam = hCNetSDK.NET_DVR_GetDVRConfig(userId, NET_DVR_GET_CCDPARAMCFG_EX, chanNo, point, struCameraParam.size(), ibrBytesReturned); if (!b_GetCameraParam) { int code = hCNetSDK.NET_DVR_GetLastError(); - log.error("鑾峰彇鍓嶇鍙傛暟澶辫触: errorCode" + code + " errorInfo" + SdkErrorCodeEnum.getDescByCode(code)); + log.error("鑾峰彇鍓嶇鍙傛暟澶辫触: errorCode:" + code + " errorInfo:" + SdkErrorCodeEnum.getDescByCode(code)); return AjaxResult.warn("鑾峰彇鍓嶇鍙傛暟澶辫触:" + SdkErrorCodeEnum.getDescByCode(code) + "(" + code + ")"); } struCameraParam.read(); @@ -1276,10 +1286,10 @@ } struCameraParam.struDefogCfg = defogcfg; struCameraParam.write(); - boolean bool = hCNetSDK.NET_DVR_SetDVRConfig(userId, NET_DVR_SET_CCDPARAMCFG_EX, channelNum, point, struCameraParam.size()); + boolean bool = hCNetSDK.NET_DVR_SetDVRConfig(userId, NET_DVR_SET_CCDPARAMCFG_EX, chanNo, point, struCameraParam.size()); if (!bool) { int code = hCNetSDK.NET_DVR_GetLastError(); - log.error("鍒囨崲閫忛浘澶辫触: errorCode" + code + " errorInfo" + SdkErrorCodeEnum.getDescByCode(code)); + log.error("鍒囨崲閫忛浘澶辫触: errorCode:" + code + " errorInfo:" + SdkErrorCodeEnum.getDescByCode(code)); return AjaxResult.warn("鍒囨崲閫忛浘澶辫触:" + SdkErrorCodeEnum.getDescByCode(code) + "(" + code + ")"); } log.debug("鍒囨崲閫忛浘鎴愬姛"); @@ -1610,7 +1620,7 @@ public String record(CameraCmd cmd) { try { String cameraId = cmd.getCameraId(); - Integer channelNum = cmd.getChanNo(); + Integer chanNo = cmd.getChanNo(); String path = FileUtils.createFile("D:/recordTemp/" + cameraId + ".mp4"); boolean enable = cmd.isEnable(); if (!GlobalVariable.loginMap.containsKey(cameraId)) { @@ -1620,7 +1630,7 @@ //寮哄埗I甯х粨鏋勪綋瀵硅薄 HCNetSDK.NET_DVR_I_FRAME netDvrIFrame = new HCNetSDK.NET_DVR_I_FRAME(); //鏂板缓缁撴瀯浣撳璞� netDvrIFrame.read(); - netDvrIFrame.dwChannel = channelNum;//鍥犱负涓婃枃浠g爜涓缃簡閫氶亾鍙凤紝鎸夌収涓婃枃涓殑璁剧疆 + netDvrIFrame.dwChannel = chanNo;//鍥犱负涓婃枃浠g爜涓缃簡閫氶亾鍙凤紝鎸夌収涓婃枃涓殑璁剧疆 netDvrIFrame.byStreamType = 0; netDvrIFrame.dwSize = netDvrIFrame.size(); netDvrIFrame.write(); @@ -1630,7 +1640,7 @@ //棰勮鍙傛暟 NET_DVR_PREVIEWINFO previewinfo = new NET_DVR_PREVIEWINFO(); previewinfo.read(); - previewinfo.lChannel = channelNum; + previewinfo.lChannel = chanNo; 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琛ㄧず涓嶈В鐮佹樉绀恒�� @@ -1653,6 +1663,7 @@ return ""; } log.debug("褰曞儚寮�濮�"); + } else { if (GlobalVariable.previewMap.containsKey(cameraId)) { Integer lRealHandle = GlobalVariable.previewMap.get(cameraId); @@ -1835,14 +1846,9 @@ //鑾峰彇IP閫氶亾 public List<ArdChannel> getIPChannelInfo(ArdCameras camera) { - //鑾峰彇閫氶亾 List<ArdChannel> channelList = new ArrayList<>(); try { - if (camera.getGdtype().equals("3")) { - camera.setChanNum(64);//瓒呰剳鑾峰彇鍦ㄧ嚎閫氶亾鏁� - camera.setStartDChan(0);//瓒呰剳鍒濆閫氶亾涓�0 - } IntByReference ibrBytesReturned = new IntByReference(0);//鑾峰彇IP鎺ュ叆閰嶇疆鍙傛暟 HCNetSDK.NET_DVR_IPPARACFG_V40 m_strIpparaCfg = new HCNetSDK.NET_DVR_IPPARACFG_V40(); m_strIpparaCfg.write(); @@ -1853,12 +1859,12 @@ //log.debug("璧峰鏁板瓧閫氶亾鍙凤細" + m_strIpparaCfg.dwStartDChan);//m_strIpparaCfg.dwDChanNum for (int iChannum = 0; iChannum < camera.getChanNum(); iChannum++) { ArdChannel ardChannel = new ArdChannel(); - int channum = iChannum + camera.getStartDChan() + 1; + int chanNo = iChannum + camera.getStartDChan(); HCNetSDK.NET_DVR_PICCFG_V40 strPicCfg = new HCNetSDK.NET_DVR_PICCFG_V40(); strPicCfg.dwSize = strPicCfg.size(); strPicCfg.write(); Pointer pStrPicCfg = strPicCfg.getPointer(); - NativeLong lChannel = new NativeLong(channum); + NativeLong lChannel = new NativeLong(chanNo); IntByReference pInt = new IntByReference(0); boolean b_GetPicCfg = hCNetSDK.NET_DVR_GetDVRConfig(camera.getLoginId(), HCNetSDK.NET_DVR_GET_PICCFG_V40, lChannel.intValue(), pStrPicCfg, strPicCfg.size(), pInt); @@ -1872,11 +1878,12 @@ m_strIpparaCfg.struStreamMode[iChannum].uGetStream.struChanInfo.read(); int channel = m_strIpparaCfg.struStreamMode[iChannum].uGetStream.struChanInfo.byIPID + m_strIpparaCfg.struStreamMode[iChannum].uGetStream.struChanInfo.byIPIDHigh * 256; String channelName = new String(strPicCfg.sChanName, "GBK").trim(); + channelName = channelName.equals("") ? "閫氶亾" + chanNo : channelName; ardChannel.setDeviceId(camera.getId()); ardChannel.setName(channelName); - ardChannel.setChanNo(channum); - if (camera.getGdtype().equals("3")) { - //瓒呰剳鍙幏鍙栧湪绾块�氶亾 + ardChannel.setChanNo(chanNo); + if (camera.getGdtype().equals("3") || camera.getGdtype().equals("2")) { + //NVR鍙幏鍙栧湪绾块�氶亾 if (m_strIpparaCfg.struStreamMode[iChannum].uGetStream.struChanInfo.byEnable == 1) { //log.debug("IP閫氶亾" + channum + "鍦ㄧ嚎"); channelList.add(ardChannel); -- Gitblit v1.9.3