From 64a30dbd08914a5f68c136769bb79f2372b2c06d Mon Sep 17 00:00:00 2001 From: zhangnaisong <2434969829@qq.com> Date: 星期一, 29 四月 2024 16:45:55 +0800 Subject: [PATCH] 视频标签修改提交 --- ard-work/src/main/java/com/ruoyi/utils/sdk/dhsdk/service/impl/DahuaSDK.java | 227 ++++++++++++++++++++++++++++++++++++++++++++------------ 1 files changed, 177 insertions(+), 50 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 e7ce57e..15cd216 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 @@ -23,12 +23,14 @@ import com.ruoyi.utils.sdk.common.SdkErrorCodeEnum; import com.ruoyi.utils.sdk.dhsdk.common.ErrorCode; import com.ruoyi.utils.sdk.dhsdk.lib.NetSDKLib; +import com.ruoyi.utils.sdk.dhsdk.lib.ToolKits; import com.ruoyi.utils.sdk.dhsdk.lib.enumeration.EM_NEW_CONFIG; import com.ruoyi.utils.sdk.dhsdk.lib.enumeration.NET_EM_CFG_OPERATE_TYPE; import com.ruoyi.utils.sdk.dhsdk.lib.structure.CFG_INFRARED_INFO; import com.ruoyi.utils.sdk.dhsdk.lib.structure.CFG_VIDEO_IN_FOCUS; import com.ruoyi.utils.sdk.dhsdk.lib.structure.DH_OUT_PTZ_VIEW_RANGE_STATUS; import com.ruoyi.utils.sdk.dhsdk.module.*; +import com.sun.jna.Native; import com.sun.jna.Pointer; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Value; @@ -36,12 +38,14 @@ import org.springframework.stereotype.Service; import javax.annotation.Resource; +import javax.servlet.ServletOutputStream; +import javax.servlet.http.HttpServletResponse; import java.io.*; +import java.nio.ByteBuffer; +import java.nio.file.Files; +import java.nio.file.Paths; import java.text.DecimalFormat; -import java.util.Comparator; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.concurrent.PriorityBlockingQueue; import static com.ruoyi.utils.sdk.dhsdk.lib.NetSDKLib.*; @@ -99,7 +103,7 @@ //鍒犻櫎绠$悊閫氶亾 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()); @@ -193,7 +197,7 @@ //鍒犻櫎绠$悊閫氶亾 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()); @@ -270,16 +274,12 @@ //鍒涘缓寮曞闃熷垪 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 (!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()); } } @@ -339,7 +339,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; @@ -406,7 +406,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("浜戝彴鎺у埗鎴愬姛"); } @@ -421,7 +421,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(); @@ -429,7 +429,7 @@ 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); @@ -472,12 +472,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); @@ -487,7 +487,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) { @@ -510,13 +510,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("璁剧疆闆舵柟浣嶈鎴愬姛"); } @@ -550,6 +550,109 @@ } + @Override + public AjaxResult localCapture(CameraCmd cmd) { + try { + String cameraId = cmd.getCameraId(); + Integer chanNo = cmd.getChanNo(); + if (!GlobalVariable.loginMap.containsKey(cameraId)) { + return AjaxResult.warn("璁惧鏈櫥褰�"); + } + LLong loginId = (LLong) GlobalVariable.loginMap.get(cameraId); + String imagePath = FileUtils.createFile("D:/LocalCaptureTemp/" + cameraId + ".jpeg"); + fCaptureReceiveCB1 m_CaptureReceiveCB = new fCaptureReceiveCB1(imagePath); + CapturePictureModule.setSnapRevCallBack(m_CaptureReceiveCB); + boolean b = CapturePictureModule.remoteCapturePicture(loginId, chanNo - 1); + 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); + } + } + + //鏈湴褰曞儚寮�濮� + @Override + public AjaxResult localRecordStart(CameraCmd cmd) { + try { + String cameraId = cmd.getCameraId(); + Integer chanNo = cmd.getChanNo(); + + if (!GlobalVariable.loginMap.containsKey(cameraId)) { + return AjaxResult.warn("璁惧鏈櫥褰�"); + } + LLong loginId = (LLong) GlobalVariable.loginMap.get(cameraId); + //if (GlobalVariable.previewMap.containsKey(cameraId)) { + // lRealHandle = new LLong(GlobalVariable.previewMap.get(cameraId)); + // RealPlayModule.stopRealPlay(lRealHandle); + // GlobalVariable.previewMap.remove(cameraId); + // log.debug("鍋滄褰撳墠褰曞儚"); + //} + String path = FileUtils.createFile("D:/LocalRecordTemp/" + 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()); + //if (!netsdk.CLIENT_SaveRealData(lRealHandle, path)) { + // log.error("淇濆瓨瑙嗛鏂囦欢鍒颁复鏃舵枃浠跺す澶辫触 閿欒鐮佷负: " +getErrorCodePrint()); + // return false; + //} + log.debug("鏈湴褰曞儚寮�濮�"); + return AjaxResult.success("鏈湴褰曞儚寮�濮�", lRealHandle); + } catch (Exception ex) { + log.error("鏈湴褰曞儚寮�濮嬪紓甯�" + ex.getMessage()); + return AjaxResult.error("鏈湴褰曞儚寮�濮嬪紓甯�" + ex.getMessage()); + } + } + + //鏈湴褰曞儚鍋滄 + @Override + public AjaxResult localRecordStop(CameraCmd cmd) { + try { + String cameraId = cmd.getCameraId(); + LLong lRealHandle = new LLong(cmd.getRecordId()); + if (!GlobalVariable.loginMap.containsKey(cameraId)) { + return AjaxResult.warn("璁惧鏈櫥褰�"); + } + + RealPlayModule.stopRealPlay(lRealHandle); + 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); + //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("璁惧鏈紑濮嬪綍鍍�"); + //} + } catch (Exception ex) { + log.error("鏈湴褰曞儚鍋滄寮傚父" + ex.getMessage()); + return AjaxResult.error("鏈湴褰曞儚鍋滄寮傚父" + ex.getMessage()); + } + } /** * @鎻忚堪 鐭椂褰曞儚 @@ -705,7 +808,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 { @@ -719,7 +822,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("寮曞鐩爣浣嶇疆鎴愬姛"); } catch (Exception ex) { @@ -735,15 +838,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) { @@ -759,14 +861,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) { @@ -782,7 +884,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 { @@ -807,7 +909,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) { @@ -823,7 +925,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 { @@ -832,7 +934,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); @@ -875,10 +977,6 @@ return AjaxResult.success("璇ュ姛鑳芥湭瀹炵幇"); } - @Override - public AjaxResult captureJPEGPicture(CameraCmd cmd) { - return AjaxResult.success("璇ュ姛鑳芥湭瀹炵幇"); - } //鍒囨崲閫忛浘 @Override @@ -887,7 +985,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 { @@ -896,7 +994,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) { @@ -910,7 +1008,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 { @@ -918,7 +1016,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) { @@ -934,7 +1032,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(); @@ -942,7 +1040,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); @@ -960,7 +1058,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 { @@ -974,7 +1072,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) { @@ -1058,14 +1156,14 @@ 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; @@ -1125,4 +1223,33 @@ } } + // 鎶撳浘鎺ユ敹鍥炶皟:褰撴姄鍥炬垚鍔燂紝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); + //瀛樺偍鍒版湰鍦� + InputStream input = new ByteArrayInputStream(buf); + OutputStream output = null; + try { + output = new FileOutputStream(picPath); + byte[] buffer = new byte[1024]; + int bytesRead; + while ((bytesRead = input.read(buffer)) != -1) { + output.write(buffer, 0, bytesRead); + } + input.close(); + output.close(); + } catch (Exception e) { + e.printStackTrace(); + } + } + } + } } -- Gitblit v1.9.3