From dd07cafb1604f528fbb7a04a79fc89b55198e080 Mon Sep 17 00:00:00 2001 From: zhangnaisong <2434969829@qq.com> Date: 星期一, 08 七月 2024 16:24:15 +0800 Subject: [PATCH] 电子围栏挂接bug修改提交 --- ard-work/src/main/java/com/ruoyi/utils/sdk/dhsdk/service/impl/DahuaSDK.java | 354 +++++++++++++++++++++++++++------------------------------- 1 files changed, 166 insertions(+), 188 deletions(-) diff --git a/ard-work/src/main/java/com/ruoyi/utils/sdk/dhsdk/service/impl/DahuaSDK.java b/ard-work/src/main/java/com/ruoyi/utils/sdk/dhsdk/service/impl/DahuaSDK.java index 74f78c8..ec6c8a3 100644 --- a/ard-work/src/main/java/com/ruoyi/utils/sdk/dhsdk/service/impl/DahuaSDK.java +++ b/ard-work/src/main/java/com/ruoyi/utils/sdk/dhsdk/service/impl/DahuaSDK.java @@ -4,7 +4,10 @@ import com.ruoyi.alarm.global.domain.GuideTask; import com.ruoyi.alarm.global.service.impl.QueueHandler; import com.ruoyi.common.annotation.SdkOperate; +import com.ruoyi.common.config.ARDConfig; +import com.ruoyi.common.constant.Constants; import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.file.FileUtils; import com.ruoyi.common.utils.file.MimeTypeUtils; import com.ruoyi.common.utils.spring.SpringUtils; @@ -13,6 +16,7 @@ import com.ruoyi.device.camera.domain.ArdCameras; import com.ruoyi.device.camera.domain.CameraCmd; import com.ruoyi.device.camera.service.IArdCamerasService; +import com.ruoyi.device.camera.service.ICameraSdkService; import com.ruoyi.device.channel.domain.ArdChannel; import com.ruoyi.device.channel.service.IArdChannelService; import com.ruoyi.media.domain.Vtdu; @@ -71,6 +75,9 @@ private IArdChannelService ardChannelService; @Resource private IVtduService vtduService; + + @Resource + ICameraSdkService cameraSdkService; @Value("${minio.endpoint}") private String minioEndPoint; @Resource @@ -103,78 +110,26 @@ //鍒犻櫎绠$悊閫氶亾 ardChannelService.deleteArdChannelByDeviceId(camera.getId()); log.error("璁惧[" + camera.getIp() + ":" + camera.getPort() + "]鐧诲綍澶辫触:" + getErrorCodePrint()); - return AjaxResult.error(ErrorCode.getErrorCode(LoginModule.netsdk.CLIENT_GetLastError())); + return AjaxResult.warn(ErrorCode.getErrorCode(LoginModule.netsdk.CLIENT_GetLastError())); } - if (GlobalVariable.loginMap.containsKey(camera.getId())) { - GlobalVariable.loginMap.remove(camera.getId()); - } - //鍒犻櫎绠$悊閫氶亾 - ardChannelService.deleteArdChannelByDeviceId(camera.getId()); +// if (GlobalVariable.loginMap.containsKey(camera.getId())) { +// GlobalVariable.loginMap.remove(camera.getId()); +// } camera.setState("1"); camera.setChanNum(m_stDeviceInfo.byChanNum); camera.setStartDChan(1); camera.setLoginId((int) loginId.longValue()); - ardCamerasService.updateArdCameras(camera); GlobalVariable.loginMap.put(camera.getId(), loginId); - //鑾峰彇鏈�鏂伴�氶亾 - for (int i = 1; i < m_stDeviceInfo.byChanNum + 1; i++) { - ArdChannel channel = new ArdChannel(); - NetSDKLib.AV_CFG_ChannelName av_cfg_channelName = new NetSDKLib.AV_CFG_ChannelName(); - boolean b = ConfigModule.GetNewDevConfig(loginId, i - 1, CFG_CMD_CHANNELTITLE, av_cfg_channelName); - if (b) { - String chanName = null; - try { - chanName = new String(av_cfg_channelName.szName, "GBK").trim(); - } catch (UnsupportedEncodingException e) { - e.printStackTrace(); - } - channel.setName(chanName); - } else { - channel.setName("閫氶亾" + i); - } - channel.setDeviceId(camera.getId()); - channel.setChanNo(i); - ardChannelService.insertArdChannel(channel); + List<ArdChannel> ardChannelList = getChannels(camera); + if (ardChannelList.size() > 0) { + camera.setChanNum(ardChannelList.size()); + ardCamerasService.updateArdCameras(camera); + //閰嶇疆鍒版祦濯掍綋 + addVtdu(camera); } - //閰嶇疆鍒版祦濯掍綋 - for (int i = 1; i < m_stDeviceInfo.byChanNum + 1; i++) { - String name = camera.getId() + "_" + i; - String rtspSource = "rtsp://" + camera.getUsername() + ":" + camera.getPassword() + "@" + camera.getIp() + ":" + camera.getRtspPort() + "/cam/realmonitor?channel=" + i + "&subtype=0"; - Vtdu vtdu = vtduService.selectVtduByName(name); - if (vtdu != null) { - vtduService.deleteVtduByName(name); - } - //娣诲姞鍒版祦濯掍綋 - CameraCmd cmd = new CameraCmd(camera.getId(), i); - Map<String, Object> videoCompressionCfg = getVideoCompressionCfg(cmd); - vtdu = new Vtdu(); - if (videoCompressionCfg.get("videoEncType") != null) { - if (videoCompressionCfg.get("videoEncType").equals("鏍囧噯h264")) { - vtdu.setIsCode("0");//榛樿涓嶈浆鐮� - } else { - vtdu.setIsCode("1");//榛樿杞爜 - } - } else { - vtdu.setIsCode("0");//榛樿涓嶈浆鐮� - } - vtdu.setRtspSource(rtspSource); - vtdu.setName(camera.getId() + "_" + i); - vtdu.setMode("1");//榛樿CPU杞В鐮� - vtdu.setCameraId(camera.getId()); - vtduService.insertVtdu(vtdu); - } - //鍒涘缓寮曞闃熷垪 - if (camera.getCamAlarmGuideEnable() != null && camera.getCamAlarmGuideEnable() == 1) { - if (!GuidePriorityQueue.cameraQueueMap.containsKey(camera.getId())) { - Comparator<GuideTask> comparator = GuidePriorityQueue.getComparator(); - PriorityBlockingQueue<GuideTask> priorityQueue = new PriorityBlockingQueue<>(1000, comparator); - GuidePriorityQueue.cameraQueueMap.put(camera.getId(), priorityQueue); - } - //鍚姩闃熷垪澶勭悊鍣� - queueHandler.process(camera.getId()); - } + createGuideQueue(camera); return AjaxResult.success("璁惧鐧诲綍鎴愬姛"); } catch (Exception ex) { log.error("璁惧鐧诲綍寮傚父:" + ex.getMessage()); @@ -197,13 +152,11 @@ //鍒犻櫎绠$悊閫氶亾 ardChannelService.deleteArdChannelByDeviceId(camera.getId()); log.error("璁惧[" + camera.getIp() + ":" + camera.getPort() + "]鐧诲綍澶辫触:" + getErrorCodePrint()); - return AjaxResult.error(ErrorCode.getErrorCode(LoginModule.netsdk.CLIENT_GetLastError())); + return AjaxResult.warn(getErrorCodePrint()); } - if (GlobalVariable.loginMap.containsKey(camera.getId())) { - GlobalVariable.loginMap.remove(camera.getId()); - } - //鍒犻櫎绠$悊閫氶亾 - ardChannelService.deleteArdChannelByDeviceId(camera.getId()); +// if (GlobalVariable.loginMap.containsKey(camera.getId())) { +// GlobalVariable.loginMap.remove(camera.getId()); +// } camera.setState("1"); camera.setChanNum(m_stDeviceInfo.byChanNum); camera.setStartDChan(1); @@ -212,27 +165,13 @@ GlobalVariable.loginMap.put(camera.getId(), loginId); //鑾峰彇鏈�鏂伴�氶亾 - for (int i = 1; i < m_stDeviceInfo.byChanNum + 1; i++) { - ArdChannel channel = new ArdChannel(); - NetSDKLib.AV_CFG_ChannelName av_cfg_channelName = new NetSDKLib.AV_CFG_ChannelName(); - boolean b = ConfigModule.GetNewDevConfig(loginId, i - 1, CFG_CMD_CHANNELTITLE, av_cfg_channelName); - if (b) { - String chanName = null; - try { - chanName = new String(av_cfg_channelName.szName, "GBK").trim(); - } catch (UnsupportedEncodingException e) { - e.printStackTrace(); - } - channel.setName(chanName); - } else { - channel.setName("閫氶亾" + i); - } - channel.setDeviceId(camera.getId()); - channel.setChanNo(i); - ardChannelService.insertArdChannel(channel); + List<ArdChannel> ardChannelList = getChannels(camera); + if (ardChannelList.size() > 0) { + camera.setChanNum(ardChannelList.size()); + ardCamerasService.updateArdCameras(camera); + //閰嶇疆鍒版祦濯掍綋 + addVtdu(camera); } - //閰嶇疆鍒版祦濯掍綋 - addVtdu(camera); //鍒涘缓寮曞闃熷垪 createGuideQueue(camera); return AjaxResult.success("鐧诲綍鎴愬姛"); @@ -274,17 +213,49 @@ //鍒涘缓寮曞闃熷垪 private void createGuideQueue(ArdCameras camera) { - if (camera.getCamAlarmGuideEnable() != null) { - if (camera.getCamAlarmGuideEnable() == 1) { - if (!GuidePriorityQueue.cameraQueueMap.containsKey(camera.getId())) { - Comparator<GuideTask> comparator = GuidePriorityQueue.getComparator(); - PriorityBlockingQueue<GuideTask> priorityQueue = new PriorityBlockingQueue<>(1000, comparator); - GuidePriorityQueue.cameraQueueMap.put(camera.getId(), priorityQueue); - //鍚姩闃熷垪澶勭悊鍣� - queueHandler.process(camera.getId()); - } + if (camera.getGdtype().equals("1")) { + if (!GuidePriorityQueue.cameraQueueMap.containsKey(camera.getId())) { + Comparator<GuideTask> comparator = GuidePriorityQueue.getComparator(); + PriorityBlockingQueue<GuideTask> priorityQueue = new PriorityBlockingQueue<>(1000, comparator); + GuidePriorityQueue.cameraQueueMap.put(camera.getId(), priorityQueue); + //鍚姩闃熷垪澶勭悊鍣� + queueHandler.process(camera.getId()); } } + } + + //鑾峰彇閫氶亾 + public List<ArdChannel> getChannels(ArdCameras camera) { + ardChannelService.deleteArdChannelByDeviceId(camera.getId()); + LLong loginId = new LLong(camera.getLoginId()); + List<ArdChannel> ardChannelList = new ArrayList<>(); + for (int i = 1; i < camera.getChanNum() + 1; i++) { + ArdChannel channel = new ArdChannel(); + NetSDKLib.AV_CFG_ChannelName av_cfg_channelName = new NetSDKLib.AV_CFG_ChannelName(); + boolean b = ConfigModule.GetNewDevConfig(loginId, i - 1, CFG_CMD_CHANNELTITLE, av_cfg_channelName); + if (!b) { + log.error("鑾峰彇閰嶇疆澶辫触,璇风◢鍚庨噸璇�" + getErrorCodePrint()); + // return AjaxResult.warn(ErrorCode.getErrorCode(LoginModule.netsdk.CLIENT_GetLastError())); + } + String chanName = ""; + try { + chanName = new String(av_cfg_channelName.szName, "GBK").trim(); + } catch (UnsupportedEncodingException e) { + e.printStackTrace(); + } + channel.setName(chanName.equals("") ? "閫氶亾" + i : chanName); + channel.setDeviceId(camera.getId()); + channel.setChanNo(i); + if (camera.getGdtype().equals("2")) { + //NVR杩囨护涓嶅湪绾跨殑閫氶亾 + if (!ConfigModule.queryCameraState(loginId, camera.getChanNum(), i)) { + continue; + } + } + ardChannelList.add(channel); + ardChannelService.insertArdChannel(channel); + } + return ardChannelList; } /** @@ -343,7 +314,7 @@ Integer speed = cmd.getSpeed(); Integer code = cmd.getCode(); if (!GlobalVariable.loginMap.containsKey(cameraId)) { - return AjaxResult.error("璁惧鏈櫥褰�"); + return AjaxResult.warn("璁惧鏈櫥褰�"); } NetSDKLib.LLong loginId = (NetSDKLib.LLong) GlobalVariable.loginMap.get(cameraId); int dwStop; @@ -410,7 +381,7 @@ boolean bool = PtzControlModule.ptzControl(loginId, chanNo - 1, dwPTZCommand, speed, speed, 0, dwStop); if (!bool) { log.error("鎺у埗澶辫触,璇风◢鍚庨噸璇�" + getErrorCodePrint()); - return AjaxResult.error(ErrorCode.getErrorCode(LoginModule.netsdk.CLIENT_GetLastError())); + return AjaxResult.warn(ErrorCode.getErrorCode(LoginModule.netsdk.CLIENT_GetLastError())); } return AjaxResult.success("浜戝彴鎺у埗鎴愬姛"); } @@ -425,7 +396,7 @@ Map<String, Object> ptzMap = new HashMap<>(); String cameraId = cmd.getCameraId(); if (!GlobalVariable.loginMap.containsKey(cameraId)) { - return AjaxResult.error("璁惧鏈櫥褰�"); + return AjaxResult.warn("璁惧鏈櫥褰�"); } NetSDKLib.LLong loginId = (NetSDKLib.LLong) GlobalVariable.loginMap.get(cameraId); NetSDKLib.NET_PTZ_LOCATION_INFO dh_ptz_location_info = new NetSDKLib.NET_PTZ_LOCATION_INFO(); @@ -433,16 +404,16 @@ if (!b) { int code = netsdk.CLIENT_GetLastError(); log.error("璁剧疆ptz澶辫触:" + getErrorCodePrint()); - return AjaxResult.error("璁剧疆ptz澶辫触:" + getErrorCodePrint()); + return AjaxResult.warn("璁剧疆ptz澶辫触:" + getErrorCodePrint()); } DecimalFormat df = new DecimalFormat("0.0");//璁剧疆淇濈暀浣嶆暟 String nPTZPan = df.format((float) dh_ptz_location_info.nPTZPan / 10); float t = (float) dh_ptz_location_info.nPTZTilt / 10 * -1; String nPTZTilt = df.format(t < 0 ? t + 360 : t); String nPTZZoom = df.format((float) dh_ptz_location_info.nPTZZoom); - ptzMap.put("p", nPTZPan); - ptzMap.put("t", nPTZTilt); - ptzMap.put("z", nPTZZoom); + ptzMap.put("p" , nPTZPan); + ptzMap.put("t" , nPTZTilt); + ptzMap.put("z" , nPTZZoom); return AjaxResult.success(ptzMap); } @@ -476,12 +447,12 @@ Integer chanNo = cmd.getChanNo(); Map<String, Double> ptz = cmd.getPtzMap(); if (!GlobalVariable.loginMap.containsKey(cameraId)) { - return AjaxResult.error("璁惧鏈櫥褰�"); + return AjaxResult.warn("璁惧鏈櫥褰�"); } LLong loginId = (LLong) GlobalVariable.loginMap.get(cameraId); try { if (ptz.get("p") == null || ptz.get("t") == null || ptz.get("z") == null) { - return AjaxResult.error("ptz鍙傛暟涓嶈兘涓虹┖"); + return AjaxResult.warn("ptz鍙傛暟涓嶈兘涓虹┖"); } int p = (int) (ptz.get("p") * 10); int t = (int) (ptz.get("t") * 10); @@ -491,7 +462,7 @@ boolean bool = netsdk.CLIENT_DHPTZControlEx(loginId, chanNo - 1, NetSDKLib.NET_EXTPTZ_ControlType.NET_EXTPTZ_EXACTGOTO, p, t, z, 0); if (!bool) { log.error("璁剧疆ptz澶辫触:" + getErrorCodePrint()); - return AjaxResult.error("璁剧疆ptz澶辫触:" + getErrorCodePrint()); + return AjaxResult.warn("璁剧疆ptz澶辫触:" + getErrorCodePrint()); } return AjaxResult.success("璁剧疆ptz鎴愬姛"); } catch (Exception ex) { @@ -514,13 +485,13 @@ String cameraId = cmd.getCameraId(); Integer chanNo = cmd.getChanNo(); if (!GlobalVariable.loginMap.containsKey(cameraId)) { - return AjaxResult.error("璁惧鏈櫥褰�"); + return AjaxResult.warn("璁惧鏈櫥褰�"); } 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, 0, 0); if (!bool) { log.error("璁剧疆闆舵柟浣嶈澶辫触:" + getErrorCodePrint()); - return AjaxResult.error("璁剧疆ptz澶辫触:" + getErrorCodePrint()); + return AjaxResult.warn("璁剧疆ptz澶辫触:" + getErrorCodePrint()); } return AjaxResult.success("璁剧疆闆舵柟浣嶈鎴愬姛"); } @@ -560,26 +531,27 @@ String cameraId = cmd.getCameraId(); Integer chanNo = cmd.getChanNo(); if (!GlobalVariable.loginMap.containsKey(cameraId)) { - return AjaxResult.error("璁惧鏈櫥褰�"); + return AjaxResult.warn("璁惧鏈櫥褰�"); } LLong loginId = (LLong) GlobalVariable.loginMap.get(cameraId); - String imagePath = FileUtils.createFile("D:/LocalCaptureTemp/" + cameraId + ".jpeg"); + // 鏈湴涓存椂褰曞儚鍦板潃 + String tempPath = ARDConfig.getProfile() + Constants.LOCAL_RECORD_TEMP_PREFIX; + String imagePath = FileUtils.createFile(tempPath + "/" + cameraId + ".jpeg"); fCaptureReceiveCB1 m_CaptureReceiveCB = new fCaptureReceiveCB1(imagePath); CapturePictureModule.setSnapRevCallBack(m_CaptureReceiveCB); boolean b = CapturePictureModule.remoteCapturePicture(loginId, chanNo - 1); - if (b) { - Thread.sleep(200); - byte[] imageBytes = Files.readAllBytes(Paths.get(imagePath)); - //OutputStream outputStream = response.getOutputStream(); - //outputStream.write(imageBytes); - // 鍒涘缓ByteBuffer骞跺皢瀛楄妭鏁扮粍鍐欏叆鍏朵腑 - //ByteBuffer jpegBuffer = ByteBuffer.wrap(imageBytes); - //Base64.Encoder decoder = Base64.getEncoder(); - //String png_base64 = decoder.encodeToString(jpegBuffer.array());//杞崲鎴恇ase64涓� - return AjaxResult.success(imageBytes); - } else { - return AjaxResult.error("鏈湴鎶撳浘澶辫触"); + if (!b) { + return AjaxResult.warn("鏈湴鎶撳浘澶辫触"); } + Thread.sleep(200); + byte[] imageBytes = Files.readAllBytes(Paths.get(imagePath)); + //OutputStream outputStream = response.getOutputStream(); + //outputStream.write(imageBytes); + // 鍒涘缓ByteBuffer骞跺皢瀛楄妭鏁扮粍鍐欏叆鍏朵腑 + //ByteBuffer jpegBuffer = ByteBuffer.wrap(imageBytes); + //Base64.Encoder decoder = Base64.getEncoder(); + //String png_base64 = decoder.encodeToString(jpegBuffer.array());//杞崲鎴恇ase64涓� + return AjaxResult.success(imageBytes); } catch (Exception ex) { return AjaxResult.error("鏈湴鎶撳浘寮傚父:" + ex); } @@ -589,61 +561,60 @@ @Override public AjaxResult localRecordStart(CameraCmd cmd) { try { + String operator = cmd.getOperator(); String cameraId = cmd.getCameraId(); Integer chanNo = cmd.getChanNo(); - String path = FileUtils.createFile("D:/LocalRecordTemp/" + cameraId + ".mp4"); + if (!GlobalVariable.loginMap.containsKey(cameraId)) { - return AjaxResult.error("璁惧鏈櫥褰�"); + return AjaxResult.warn("璁惧鏈櫥褰�"); } LLong loginId = (LLong) GlobalVariable.loginMap.get(cameraId); - LLong lRealHandle; - if (GlobalVariable.previewMap.containsKey(cameraId)) { - lRealHandle = new LLong(GlobalVariable.previewMap.get(cameraId)); - RealPlayModule.stopRealPlay(lRealHandle); - GlobalVariable.previewMap.remove(cameraId); - log.debug("鍋滄褰撳墠褰曞儚"); - } - lRealHandle = RealPlayModule.startRealPlay(loginId, chanNo - 1, path); + //if (GlobalVariable.previewMap.containsKey(cameraId)) { + // lRealHandle = new LLong(GlobalVariable.previewMap.get(cameraId)); + // RealPlayModule.stopRealPlay(lRealHandle); + // GlobalVariable.previewMap.remove(cameraId); + // log.debug("鍋滄褰撳墠褰曞儚"); + //} + + // 鏈湴涓存椂褰曞儚鍦板潃 + String tempPath = ARDConfig.getProfile() + Constants.LOCAL_RECORD_TEMP_PREFIX; + String path = FileUtils.createFile(tempPath + "/" + operator + "/" + cameraId + ".mp4"); + LLong lRealHandle = RealPlayModule.startRealPlay(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()); + //GlobalVariable.previewMap.put(cameraId, lRealHandle.intValue()); + //GlobalVariable.threadMap.put(cameraId, Thread.currentThread().getName()); //if (!netsdk.CLIENT_SaveRealData(lRealHandle, path)) { // log.error("淇濆瓨瑙嗛鏂囦欢鍒颁复鏃舵枃浠跺す澶辫触 閿欒鐮佷负: " +getErrorCodePrint()); // return false; //} log.debug("鏈湴褰曞儚寮�濮�"); - return AjaxResult.success("鏈湴褰曞儚寮�濮�,褰曞儚ID:"+lRealHandle); + return AjaxResult.success("鏈湴褰曞儚寮�濮�" , lRealHandle); } catch (Exception ex) { log.error("鏈湴褰曞儚寮�濮嬪紓甯�" + ex.getMessage()); return AjaxResult.error("鏈湴褰曞儚寮�濮嬪紓甯�" + ex.getMessage()); } } + //鏈湴褰曞儚鍋滄 @Override public AjaxResult localRecordStop(CameraCmd cmd) { try { + String operator = cmd.getOperator(); String cameraId = cmd.getCameraId(); + LLong lRealHandle = new LLong(cmd.getRecordId()); if (!GlobalVariable.loginMap.containsKey(cameraId)) { - return AjaxResult.error("璁惧鏈櫥褰�"); + return AjaxResult.warn("璁惧鏈櫥褰�"); } - LLong lRealHandle; - if (GlobalVariable.previewMap.containsKey(cameraId)) { - lRealHandle = new LLong(GlobalVariable.previewMap.get(cameraId)); - RealPlayModule.stopRealPlay(lRealHandle); - GlobalVariable.previewMap.remove(cameraId); - log.debug("鏈湴褰曞儚鍋滄"); - String recordPath = FileUtils.createFile("D:/LocalRecordTemp/" + cameraId + ".mp4"); - byte[] imageBytes = Files.readAllBytes(Paths.get(recordPath)); - // OutputStream outputStream = response.getOutputStream(); - // outputStream.write(imageBytes); - return AjaxResult.success(imageBytes); - } - else { - return AjaxResult.error("璁惧鏈紑濮嬪綍鍍�"); - } + RealPlayModule.stopRealPlay(lRealHandle); + log.debug("鏈湴褰曞儚鍋滄"); + // 鏈湴涓存椂褰曞儚鍦板潃 + String tempPath = ARDConfig.getProfile() + Constants.LOCAL_RECORD_TEMP_PREFIX; + String recordPath = FileUtils.createFile(tempPath + "/" + operator + "/" + cameraId + ".mp4"); + byte[] imageBytes = Files.readAllBytes(Paths.get(recordPath)); + return AjaxResult.success(imageBytes); } catch (Exception ex) { log.error("鏈湴褰曞儚鍋滄寮傚父" + ex.getMessage()); return AjaxResult.error("鏈湴褰曞儚鍋滄寮傚父" + ex.getMessage()); @@ -664,7 +635,9 @@ String url = ""; String cameraId = cmd.getCameraId(); Integer chanNo = cmd.getChanNo(); - String path = FileUtils.createFile("D:/recordTemp/" + cameraId + ".mp4"); + // 鏈湴涓存椂褰曞儚鍦板潃 + String tempPath = ARDConfig.getProfile() + Constants.LOCAL_RECORD_TEMP_PREFIX; + String path = FileUtils.createFile(tempPath + "/" + cameraId + ".mp4"); boolean enable = cmd.isEnable(); if (!GlobalVariable.loginMap.containsKey(cameraId)) { return ""; @@ -703,7 +676,9 @@ try { String cameraId = cmd.getCameraId(); Integer chanNo = cmd.getChanNo(); - String path = FileUtils.createFile("D:/recordTemp/" + cameraId + ".mp4"); + // 鏈湴涓存椂褰曞儚鍦板潃 + String tempPath = ARDConfig.getProfile() + Constants.LOCAL_RECORD_TEMP_PREFIX; + String path = FileUtils.createFile(tempPath + "/" + cameraId + ".mp4"); if (!GlobalVariable.loginMap.containsKey(cameraId)) { return false; } @@ -739,7 +714,9 @@ String url = ""; try { String cameraId = cmd.getCameraId(); - String path = FileUtils.createFile("D:/recordTemp/" + cameraId + ".mp4"); + // 鏈湴涓存椂褰曞儚鍦板潃 + String tempPath = ARDConfig.getProfile() + Constants.LOCAL_RECORD_TEMP_PREFIX; + String path = FileUtils.createFile(tempPath + "/" + cameraId + ".mp4"); if (!GlobalVariable.loginMap.containsKey(cameraId)) { return ""; } @@ -789,10 +766,6 @@ return result; } - @Override - public List<ArdChannel> getIPChannelInfo(ArdCameras camera) { - return null; - } /** * 寮曞鐩爣浣嶇疆 @@ -804,7 +777,7 @@ String cameraId = cmd.getCameraId(); Integer chanNo = cmd.getChanNo(); if (!GlobalVariable.loginMap.containsKey(cameraId)) { - return AjaxResult.error("璁惧鏈櫥褰�"); + return AjaxResult.warn("璁惧鏈櫥褰�"); } LLong loginId = (LLong) GlobalVariable.loginMap.get(cameraId); try { @@ -812,15 +785,18 @@ double[] cameraPositon = new double[]{cameras.getLongitude(), cameras.getLatitude(), cameras.getAltitude()}; double[] targetPositions = cmd.getTargetPosition(); double[] cameraPTZ = GisUtil.getCameraPTZ(cameraPositon, targetPositions, 20, 150); + //淇淇话 + double correctPitch = cameraSdkService.correctPitch(cmd); + double newt = cameraPTZ[1] + correctPitch; int p = (int) (cameraPTZ[0] * 10); - int t = (int) (cameraPTZ[1] * 10); + int t = (int) (newt * 10); 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("璁剧疆ptz澶辫触:" + getErrorCodePrint()); - return AjaxResult.error("璁剧疆ptz澶辫触:" + getErrorCodePrint()); + return AjaxResult.warn("璁剧疆ptz澶辫触:" + getErrorCodePrint()); } - return AjaxResult.success("寮曞鐩爣浣嶇疆鎴愬姛"); + return AjaxResult.success("寮曞鐩爣浣嶇疆鎴愬姛",correctPitch); } catch (Exception ex) { log.error("寮曞鐩爣浣嶇疆寮傚父:" + ex.getMessage()); return AjaxResult.error("寮曞鐩爣浣嶇疆寮傚父:" + ex.getMessage()); @@ -834,14 +810,14 @@ Integer chanNo = cmd.getChanNo(); Integer PresetIndex = cmd.getPresetIndex(); if (!GlobalVariable.loginMap.containsKey(cameraId)) { - return AjaxResult.error("璁惧鏈櫥褰�"); + return AjaxResult.warn("璁惧鏈櫥褰�"); } 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 AjaxResult.error("杞嚦棰勭疆鐐瑰け璐�:" + getErrorCodePrint()); + return AjaxResult.warn("杞嚦棰勭疆鐐瑰け璐�:" + getErrorCodePrint()); } return AjaxResult.success("杞嚦棰勭疆鐐规垚鍔�"); } catch (Exception ex) { @@ -857,14 +833,14 @@ Integer chanNo = cmd.getChanNo(); Integer PresetIndex = cmd.getPresetIndex(); if (!GlobalVariable.loginMap.containsKey(cameraId)) { - return AjaxResult.error("璁惧鏈櫥褰�"); + return AjaxResult.warn("璁惧鏈櫥褰�"); } 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 AjaxResult.error("璁剧疆棰勭疆鐐瑰け璐�:" + getErrorCodePrint()); + return AjaxResult.warn("璁剧疆棰勭疆鐐瑰け璐�:" + getErrorCodePrint()); } return AjaxResult.success("璁剧疆棰勭疆鐐规垚鍔�"); } catch (Exception ex) { @@ -880,7 +856,7 @@ Integer chanNo = cmd.getChanNo(); boolean enable = cmd.isEnable(); if (!GlobalVariable.loginMap.containsKey(cameraId)) { - return AjaxResult.error("璁惧鏈櫥褰�"); + return AjaxResult.warn("璁惧鏈櫥褰�"); } LLong loginId = (LLong) GlobalVariable.loginMap.get(cameraId); try { @@ -905,7 +881,7 @@ boolean bool = ConfigModule.SetDevConfig(loginId, chanNo - 1, NetSDKLib.CFG_CMD_VIDEOIN_FOCUS, cfg_video_in_focus); if (!bool) { log.error("鍒囨崲鑱氱劍妯″紡澶辫触:" + getErrorCodePrint()); - return AjaxResult.error("鍒囨崲鑱氱劍妯″紡澶辫触:" + getErrorCodePrint()); + return AjaxResult.warn("鍒囨崲鑱氱劍妯″紡澶辫触:" + getErrorCodePrint()); } return AjaxResult.success("鍒囨崲鑱氱劍妯″紡鎴愬姛"); } catch (Exception ex) { @@ -921,7 +897,7 @@ String cameraId = cmd.getCameraId(); Integer chanNo = cmd.getChanNo(); if (!GlobalVariable.loginMap.containsKey(cameraId)) { - return AjaxResult.error("璁惧鏈櫥褰�"); + return AjaxResult.warn("璁惧鏈櫥褰�"); } LLong loginId = (LLong) GlobalVariable.loginMap.get(cameraId); try { @@ -930,7 +906,7 @@ boolean bool = ConfigModule.GetConfig(loginId, chanNo - 1, emCfgOpType, focusModeInfo); if (!bool) { log.error("鑾峰彇鑱氱劍妯″紡澶辫触:" + getErrorCodePrint()); - return AjaxResult.error("鑾峰彇鑱氱劍妯″紡澶辫触:" + getErrorCodePrint()); + return AjaxResult.warn("鑾峰彇鑱氱劍妯″紡澶辫触:" + getErrorCodePrint()); } //System.out.println("閰嶇疆绫诲瀷:" + focusModeInfo.emCfgType); // 鍏蜂綋淇℃伅锛屽弬鑰冨簱閲岀殑鏋氫妇 //System.out.println("鑱氱劍妯″紡:" + focusModeInfo.emFocusMode); @@ -981,7 +957,7 @@ Integer chanNo = cmd.getChanNo(); boolean enable = cmd.isEnable(); if (!GlobalVariable.loginMap.containsKey(cameraId)) { - return AjaxResult.error("璁惧鏈櫥褰�"); + return AjaxResult.warn("璁惧鏈櫥褰�"); } LLong loginId = (LLong) GlobalVariable.loginMap.get(cameraId); try { @@ -990,7 +966,7 @@ boolean bool = ConfigModule.SetDevConfig(loginId, chanNo - 1, command, netVideoinDefogInfo); if (!bool) { log.error("鍒囨崲閫忛浘澶辫触:" + getErrorCodePrint()); - return AjaxResult.error("鍒囨崲閫忛浘澶辫触:" + getErrorCodePrint()); + return AjaxResult.warn("鍒囨崲閫忛浘澶辫触:" + getErrorCodePrint()); } return AjaxResult.success("鍒囨崲閫忛浘鎴愬姛"); } catch (Exception ex) { @@ -1004,7 +980,7 @@ String cameraId = cmd.getCameraId(); Integer chanNo = cmd.getChanNo(); if (!GlobalVariable.loginMap.containsKey(cameraId)) { - return AjaxResult.error("璁惧鏈櫥褰�"); + return AjaxResult.warn("璁惧鏈櫥褰�"); } LLong loginId = (LLong) GlobalVariable.loginMap.get(cameraId); try { @@ -1012,7 +988,7 @@ boolean bool = ConfigModule.SetDevConfig(loginId, chanNo - 1, CFG_CMD_INFRARED_CONFIG, cfg_infrared_info); if (!bool) { log.error("鍒囨崲绾㈠澶辫触:" + getErrorCodePrint()); - return AjaxResult.error("鍒囨崲绾㈠澶辫触:" + getErrorCodePrint()); + return AjaxResult.warn("鍒囨崲绾㈠澶辫触:" + getErrorCodePrint()); } return AjaxResult.success("鍒囨崲绾㈠鎴愬姛"); } catch (Exception ex) { @@ -1028,7 +1004,7 @@ String cameraId = cmd.getCameraId(); Integer chanNo = cmd.getChanNo(); if (!GlobalVariable.loginMap.containsKey(cameraId)) { - return AjaxResult.error("璁惧鏈櫥褰�"); + return AjaxResult.warn("璁惧鏈櫥褰�"); } LLong loginId = (LLong) GlobalVariable.loginMap.get(cameraId); NET_PTZ_LOCATION_INFO net_ptz_location_info = new NET_PTZ_LOCATION_INFO(); @@ -1036,7 +1012,7 @@ boolean bool = ConfigModule.queryDevState(loginId, NET_DEVSTATE_PTZ_LOCATION, net_ptz_location_info); if (!bool) { log.error("鑾峰彇鑱氱劍鍊煎け璐�:" + getErrorCodePrint()); - return AjaxResult.error("鑾峰彇鑱氱劍鍊煎け璐�:" + getErrorCodePrint()); + return AjaxResult.warn("鑾峰彇鑱氱劍鍊煎け璐�:" + getErrorCodePrint()); } result = net_ptz_location_info.nFocusMapValue; return AjaxResult.success(result); @@ -1054,7 +1030,7 @@ Integer chanNo = cmd.getChanNo(); boolean enable = cmd.isEnable(); if (!GlobalVariable.loginMap.containsKey(cameraId)) { - return AjaxResult.error("璁惧鏈櫥褰�"); + return AjaxResult.warn("璁惧鏈櫥褰�"); } LLong loginId = (LLong) GlobalVariable.loginMap.get(cameraId); try { @@ -1068,7 +1044,7 @@ boolean bool = ConfigModule.SetDevConfig(loginId, chanNo - 1, CFG_CMD_LIGHTING, cfg_lighting_info); if (!bool) { log.error("璁剧疆鑱氱劍鍊煎け璐�:" + getErrorCodePrint()); - return AjaxResult.error("璁剧疆鑱氱劍鍊煎け璐�:" + getErrorCodePrint()); + return AjaxResult.warn("璁剧疆鑱氱劍鍊煎け璐�:" + getErrorCodePrint()); } return AjaxResult.success("璁剧疆鑱氱劍鍊兼垚鍔�"); } catch (Exception ex) { @@ -1134,10 +1110,10 @@ int nHeight = cfg_encode_info.stuMainStream[0].stuVideoFormat.nHeight; String resolution = nWidth + "*" + nHeight; float nFrameRate = cfg_encode_info.stuMainStream[0].stuVideoFormat.nFrameRate; - map.put("resolution", resolution);//鍒嗚鲸鐜� - map.put("videoBitrate", String.valueOf(nBitRate));//姣旂壒鐜� - map.put("videoEncType", videoEncType);//缂栫爜 - map.put("nFrameRate", String.valueOf(nFrameRate));//甯х巼 + map.put("resolution" , resolution);//鍒嗚鲸鐜� + map.put("videoBitrate" , String.valueOf(nBitRate));//姣旂壒鐜� + map.put("videoEncType" , videoEncType);//缂栫爜 + map.put("nFrameRate" , String.valueOf(nFrameRate));//甯х巼 } } catch (Exception ex) { log.error("鍙栫爜娴佸帇缂╁弬鏁板紓甯�:" + ex.getMessage()); @@ -1152,20 +1128,20 @@ String cameraId = cmd.getCameraId(); Integer chanNo = cmd.getChanNo(); if (!GlobalVariable.loginMap.containsKey(cameraId)) { - return AjaxResult.error("璁惧鏈櫥褰�"); + return AjaxResult.warn("璁惧鏈櫥褰�"); } LLong loginId = (LLong) GlobalVariable.loginMap.get(cameraId); DH_OUT_PTZ_VIEW_RANGE_STATUS dh_out_ptz_view_range_status = new DH_OUT_PTZ_VIEW_RANGE_STATUS(); boolean b = ConfigModule.queryDevState(loginId, NET_DEVSTATE_PTZ_VIEW_RANGE, dh_out_ptz_view_range_status); if (!b) { log.error("鑾峰彇浜戝彴鍙鍩熷け璐�:" + getErrorCodePrint()); - return AjaxResult.error("鑾峰彇浜戝彴鍙鍩熷け璐�:" + getErrorCodePrint()); + return AjaxResult.warn("鑾峰彇浜戝彴鍙鍩熷け璐�:" + getErrorCodePrint()); } float nAngelH = (float) dh_out_ptz_view_range_status.nAngelH / 10; float nAngelV = (float) dh_out_ptz_view_range_status.nAngelV / 10; Map<String, Object> map = getPtz(cmd);//鑾峰彇ptz - map.put("fHorFieldAngle", nAngelH);// 姘村钩瑙嗗満瑙� - map.put("fVerFieldAngle", nAngelV);// 鍨傜洿瑙嗗満瑙� + map.put("fHorFieldAngle" , nAngelH);// 姘村钩瑙嗗満瑙� + map.put("fVerFieldAngle" , nAngelV);// 鍨傜洿瑙嗗満瑙� return AjaxResult.success(map); } catch (Exception ex) { log.error("鑾峰彇浜戝彴鍙鍩熷紓甯�" + ex.getMessage()); @@ -1222,9 +1198,11 @@ // 鎶撳浘鎺ユ敹鍥炶皟:褰撴姄鍥炬垚鍔燂紝sdk浼氳皟鐢ㄨ鍑芥暟 public static class fCaptureReceiveCB1 implements NetSDKLib.fSnapRev { private String picPath; + public fCaptureReceiveCB1(String picPath) { this.picPath = picPath; } + public void invoke(LLong lLoginID, Pointer pBuf, int RevLen, int EncodeType, int CmdSerial, Pointer dwUser) { if (pBuf != null && RevLen > 0) { byte[] buf = pBuf.getByteArray(0, RevLen); -- Gitblit v1.9.3