ard-work/src/main/java/com/ruoyi/device/camera/service/impl/CameraSdkServiceImpl.java
@@ -61,24 +61,21 @@ @Override public void run(ApplicationArguments args) { try { // 从ardCamerasService中获取ArdCameras列表 List<ArdCameras> ardCameras = ardCamerasService.selectArdCamerasListNoDataScope(new ArdCameras()); for (ArdCameras camera : ardCameras) { asyncLogin(camera); } } catch (Exception ex) { // 初始化登录相机异常,记录错误日志 log.error("初始化登录相机异常:" + ex.getMessage()); } } //同步登录 @Override public AjaxResult login(ArdCameras ardCamera) { try { if (ardCamera == null) { return AjaxResult.error("登录相机失败,相机不存在"); return AjaxResult.warn("设备不存在"); } String factory = ardCamera.getFactory(); CameraSDK cameraSDK = cameraSDKFactory.createCameraSDK(factory); @@ -93,7 +90,7 @@ public AjaxResult asyncLogin(ArdCameras ardCamera) { try { if (ardCamera == null) { return AjaxResult.error("登录相机失败,相机不存在"); return AjaxResult.warn("设备不存在"); } String factory = ardCamera.getFactory(); CameraSDK cameraSDK = cameraSDKFactory.createCameraSDK(factory); @@ -146,13 +143,12 @@ public AjaxResult pTZControl(CameraCmd cmd) { String cameraId = cmd.getCameraId(); ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId); if (ardCamera != null) { String factory = ardCamera.getFactory(); CameraSDK cameraSDK = cameraSDKFactory.createCameraSDK(factory); return cameraSDK.pTZControl(cmd); } else { return AjaxResult.error("摄像头不存在"); if (ardCamera == null) { AjaxResult.warn("设备不存在"); } String factory = ardCamera.getFactory(); CameraSDK cameraSDK = cameraSDKFactory.createCameraSDK(factory); return cameraSDK.pTZControl(cmd); } //设置聚焦值 @@ -161,13 +157,12 @@ try { String cameraId = cmd.getCameraId(); ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId); if (ardCamera != null) { String factory = ardCamera.getFactory(); CameraSDK cameraSDK = cameraSDKFactory.createCameraSDK(factory); return cameraSDK.setFocusPos(cmd); } else { return AjaxResult.error("摄像头不存在"); if (ardCamera == null) { return AjaxResult.warn("设备不存在"); } String factory = ardCamera.getFactory(); CameraSDK cameraSDK = cameraSDKFactory.createCameraSDK(factory); return cameraSDK.setFocusPos(cmd); } catch (Exception ex) { log.error("设置聚焦值异常:" + ex.getMessage()); return AjaxResult.error("设置聚焦值异常:" + ex.getMessage()); @@ -180,13 +175,12 @@ try { String cameraId = cmd.getCameraId(); ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId); if (ardCamera != null) { String factory = ardCamera.getFactory(); CameraSDK cameraSDK = cameraSDKFactory.createCameraSDK(factory); return cameraSDK.getFocusPos(cmd); } else { return AjaxResult.error("摄像头不存在"); if (ardCamera == null) { return AjaxResult.warn("设备不存在"); } String factory = ardCamera.getFactory(); CameraSDK cameraSDK = cameraSDKFactory.createCameraSDK(factory); return cameraSDK.getFocusPos(cmd); } catch (Exception ex) { log.error("获取聚焦值异常:" + ex.getMessage()); return AjaxResult.error("获取聚焦值异常:" + ex.getMessage()); @@ -199,13 +193,12 @@ try { String cameraId = cmd.getCameraId(); ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId); if (ardCamera != null) { String factory = ardCamera.getFactory(); CameraSDK cameraSDK = cameraSDKFactory.createCameraSDK(factory); return cameraSDK.setPreset(cmd); } else { return AjaxResult.error("摄像头不存在"); if (ardCamera == null) { return AjaxResult.warn("设备不存在"); } String factory = ardCamera.getFactory(); CameraSDK cameraSDK = cameraSDKFactory.createCameraSDK(factory); return cameraSDK.setPreset(cmd); } catch (Exception ex) { log.error("设置预置位异常:" + ex.getMessage()); return AjaxResult.error("设置预置位异常" + ex.getMessage()); @@ -218,13 +211,12 @@ try { String cameraId = cmd.getCameraId(); ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId); if (ardCamera != null) { String factory = ardCamera.getFactory(); CameraSDK cameraSDK = cameraSDKFactory.createCameraSDK(factory); return cameraSDK.gotoPreset(cmd); } else { return AjaxResult.error("摄像头不存在"); if (ardCamera == null) { return AjaxResult.warn("设备不存在"); } String factory = ardCamera.getFactory(); CameraSDK cameraSDK = cameraSDKFactory.createCameraSDK(factory); return cameraSDK.gotoPreset(cmd); } catch (Exception ex) { log.error("调用预置位异常:" + ex.getMessage()); return AjaxResult.error("调用预置位异常" + ex.getMessage()); @@ -238,11 +230,12 @@ try { String cameraId = cmd.getCameraId(); ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId); if (ardCamera != null) { String factory = ardCamera.getFactory(); CameraSDK cameraSDK = cameraSDKFactory.createCameraSDK(factory); map = cameraSDK.getVideoCompressionCfg(cmd); if (ardCamera == null) { return new HashMap<>(); } String factory = ardCamera.getFactory(); CameraSDK cameraSDK = cameraSDKFactory.createCameraSDK(factory); map = cameraSDK.getVideoCompressionCfg(cmd); } catch (Exception ex) { log.error("获取码流压缩参数异常:" + ex.getMessage()); } @@ -255,13 +248,12 @@ try { String cameraId = cmd.getCameraId(); ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId); if (ardCamera != null) { String factory = ardCamera.getFactory(); CameraSDK cameraSDK = cameraSDKFactory.createCameraSDK(factory); return cameraSDK.controlDefogcfg(cmd); } else { return AjaxResult.error("摄像头不存在"); if (ardCamera == null) { return AjaxResult.warn("设备不存在"); } String factory = ardCamera.getFactory(); CameraSDK cameraSDK = cameraSDKFactory.createCameraSDK(factory); return cameraSDK.controlDefogcfg(cmd); } catch (Exception ex) { log.error("操控透雾异常:" + ex.getMessage()); return AjaxResult.error("操控透雾异常" + ex.getMessage()); @@ -274,13 +266,12 @@ try { String cameraId = cmd.getCameraId(); ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId); if (ardCamera != null) { String factory = ardCamera.getFactory(); CameraSDK cameraSDK = cameraSDKFactory.createCameraSDK(factory); return cameraSDK.controlInfrarecfg(cmd); } else { return AjaxResult.error("摄像头不存在"); if (ardCamera == null) { return AjaxResult.warn("设备不存在"); } String factory = ardCamera.getFactory(); CameraSDK cameraSDK = cameraSDKFactory.createCameraSDK(factory); return cameraSDK.controlInfrarecfg(cmd); } catch (Exception ex) { log.error("操控红外异常:" + ex.getMessage()); return AjaxResult.error("操控红外异常:" + ex.getMessage()); @@ -293,13 +284,12 @@ try { String cameraId = cmd.getCameraId(); ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId); if (ardCamera != null) { String factory = ardCamera.getFactory(); CameraSDK cameraSDK = cameraSDKFactory.createCameraSDK(factory); return cameraSDK.controlFocusMode(cmd); } else { return AjaxResult.error("摄像头不存在"); if (ardCamera == null) { return AjaxResult.warn("设备不存在"); } String factory = ardCamera.getFactory(); CameraSDK cameraSDK = cameraSDKFactory.createCameraSDK(factory); return cameraSDK.controlFocusMode(cmd); } catch (Exception ex) { log.error("操控聚焦模式异常:" + ex.getMessage()); return AjaxResult.error("操控聚焦模式异常:" + ex.getMessage()); @@ -312,13 +302,12 @@ try { String cameraId = cmd.getCameraId(); ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId); if (ardCamera != null) { String factory = ardCamera.getFactory(); CameraSDK cameraSDK = cameraSDKFactory.createCameraSDK(factory); return cameraSDK.getFocusMode(cmd); } else { return AjaxResult.error("摄像头不存在"); if (ardCamera == null) { return AjaxResult.warn("设备不存在"); } String factory = ardCamera.getFactory(); CameraSDK cameraSDK = cameraSDKFactory.createCameraSDK(factory); return cameraSDK.getFocusMode(cmd); } catch (Exception ex) { log.error("获取聚焦模式异常:" + ex.getMessage()); return AjaxResult.error("获取聚焦模式异常:" + ex.getMessage()); @@ -328,38 +317,33 @@ //云台加热 @Override public AjaxResult controlPTHeateRpwron(CameraCmd cmd) { try { String cameraId = cmd.getCameraId(); ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId); if (ardCamera != null) { String factory = ardCamera.getFactory(); CameraSDK cameraSDK = cameraSDKFactory.createCameraSDK(factory); return cameraSDK.controlPTHeateRpwron(cmd); } else { return AjaxResult.error("摄像头不存在"); if (ardCamera == null) { return AjaxResult.warn("设备不存在"); } String factory = ardCamera.getFactory(); CameraSDK cameraSDK = cameraSDKFactory.createCameraSDK(factory); return cameraSDK.controlPTHeateRpwron(cmd); } catch (Exception ex) { log.error("操控云台加热异常:" + ex.getMessage()); return AjaxResult.error("操控云台加热异常:" + ex.getMessage()); } } //镜头加热 @Override public AjaxResult controlCameraDeicing(CameraCmd cmd) { try { String cameraId = cmd.getCameraId(); ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId); if (ardCamera != null) { String factory = ardCamera.getFactory(); CameraSDK cameraSDK = cameraSDKFactory.createCameraSDK(factory); return cameraSDK.controlCameraDeicing(cmd); } else { return AjaxResult.error("摄像头不存在"); if (ardCamera == null) { return AjaxResult.warn("设备不存在"); } String factory = ardCamera.getFactory(); CameraSDK cameraSDK = cameraSDKFactory.createCameraSDK(factory); return cameraSDK.controlCameraDeicing(cmd); } catch (Exception ex) { log.error("操控云台加热异常:" + ex.getMessage()); return AjaxResult.error("操控云台加热异常:" + ex.getMessage()); @@ -372,13 +356,12 @@ try { String cameraId = cmd.getCameraId(); ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId); if (ardCamera != null) { String factory = ardCamera.getFactory(); CameraSDK cameraSDK = cameraSDKFactory.createCameraSDK(factory); return cameraSDK.getPTZLockInfo(cmd); } else { return AjaxResult.error("摄像头不存在"); if (ardCamera == null) { return AjaxResult.warn("设备不存在"); } String factory = ardCamera.getFactory(); CameraSDK cameraSDK = cameraSDKFactory.createCameraSDK(factory); return cameraSDK.getPTZLockInfo(cmd); } catch (Exception ex) { log.error("获取云台锁定信息异常:" + ex.getMessage()); return AjaxResult.error("获取云台锁定信息异常:" + ex.getMessage()); @@ -391,15 +374,12 @@ try { String cameraId = cmd.getCameraId(); ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId); if (ardCamera != null) { String factory = ardCamera.getFactory(); CameraSDK cameraSDK = cameraSDKFactory.createCameraSDK(factory); return cameraSDK.localCapture(cmd); if (ardCamera == null) { return AjaxResult.warn("设备不存在"); } else { return AjaxResult.error("摄像头不存在"); } String factory = ardCamera.getFactory(); CameraSDK cameraSDK = cameraSDKFactory.createCameraSDK(factory); return cameraSDK.localCapture(cmd); } catch (Exception ex) { log.error("手动抓图异常:" + ex.getMessage()); return AjaxResult.error("手动抓图异常:" + ex.getMessage()); @@ -434,17 +414,16 @@ try { String cameraId = cmd.getCameraId(); ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId); if (ardCamera != null) { String factory = ardCamera.getFactory(); CameraSDK cameraSDK = cameraSDKFactory.createCameraSDK(factory); String gdtype = ardCamera.getGdtype(); if (gdtype.equals("1")) { return cameraSDK.getPtzHigh(cmd); } else { return cameraSDK.getPtz(cmd); } if (ardCamera == null) { return AjaxResult.warn("设备不存在"); } String factory = ardCamera.getFactory(); CameraSDK cameraSDK = cameraSDKFactory.createCameraSDK(factory); String gdtype = ardCamera.getGdtype(); if (gdtype.equals("1")) { return cameraSDK.getPtzHigh(cmd); } else { return AjaxResult.error("摄像头不存在"); return cameraSDK.getPtz(cmd); } } catch (Exception ex) { log.error("获取ptz异常:" + ex.getMessage()); @@ -458,13 +437,12 @@ try { String cameraId = cmd.getCameraId(); ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId); if (ardCamera != null) { String factory = ardCamera.getFactory(); CameraSDK cameraSDK = cameraSDKFactory.createCameraSDK(factory); return cameraSDK.getPtzScope(cmd); } else { return AjaxResult.error("摄像头不存在"); if (ardCamera == null) { return AjaxResult.warn("设备不存在"); } String factory = ardCamera.getFactory(); CameraSDK cameraSDK = cameraSDKFactory.createCameraSDK(factory); return cameraSDK.getPtzScope(cmd); } catch (Exception ex) { log.error("获取ptz范围异常:" + ex.getMessage()); return AjaxResult.error("获取ptz范围异常:" + ex.getMessage()); @@ -478,7 +456,7 @@ String cameraId = cmd.getCameraId(); ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId); if (ardCamera == null) { return AjaxResult.error("摄像头不存在"); return AjaxResult.warn("设备不存在"); } CameraSDK cameraSDK = cameraSDKFactory.createCameraSDK(ardCamera.getFactory()); String gdtype = ardCamera.getGdtype(); @@ -488,7 +466,6 @@ } else { return cameraSDK.setPtz(cmd); } } catch (Exception ex) { log.error("设置ptz异常:" + ex.getMessage()); return AjaxResult.error("设置ptz异常:" + ex.getMessage()); @@ -501,13 +478,12 @@ try { String cameraId = cmd.getCameraId(); ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId); if (ardCamera != null) { String factory = ardCamera.getFactory(); CameraSDK cameraSDK = cameraSDKFactory.createCameraSDK(factory); return cameraSDK.setZeroPtz(cmd); } else { return AjaxResult.error("摄像头不存在"); if (ardCamera == null) { return AjaxResult.warn("设备不存在"); } String factory = ardCamera.getFactory(); CameraSDK cameraSDK = cameraSDKFactory.createCameraSDK(factory); return cameraSDK.setZeroPtz(cmd); } catch (Exception ex) { log.error("设置零方位角异常:" + ex.getMessage()); return AjaxResult.error("设置零方位角异常:" + ex.getMessage()); @@ -520,13 +496,12 @@ try { String cameraId = cmd.getCameraId(); ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId); if (ardCamera != null) { String factory = ardCamera.getFactory(); CameraSDK cameraSDK = cameraSDKFactory.createCameraSDK(factory); return cameraSDK.guideTargetPosition(cmd); } else { return AjaxResult.error("摄像头不存在"); if (ardCamera == null) { return AjaxResult.warn("设备不存在"); } String factory = ardCamera.getFactory(); CameraSDK cameraSDK = cameraSDKFactory.createCameraSDK(factory); return cameraSDK.guideTargetPosition(cmd); } catch (Exception ex) { log.error("引导指向目标异常:" + ex.getMessage()); return AjaxResult.error("引导指向目标异常:" + ex.getMessage()); @@ -544,7 +519,7 @@ //获取井 ArdAlarmpointsWell well = ardAlarmpointsWellService.selectArdAlarmpointsWellById(cmd.getWellId()); if (well == null) { return AjaxResult.error("井不存在"); return AjaxResult.warn("井不存在"); } GuidePoint guidePoint = new GuidePoint().setLongitude(well.getLongitude()).setLatitude(well.getLatitude()); cmd.setTargetPosition(new double[]{guidePoint.getLongitude(), guidePoint.getLatitude()}); @@ -607,15 +582,15 @@ String cameraId = getCameraByNear(new double[]{well.getLongitude(), well.getLatitude()}); cmd.setCameraId(cameraId); if ("".equals(cameraId)) { return AjaxResult.error("未找到引导相机"); return AjaxResult.warn("未找到引导相机"); } //判断禁引区 if (isInPolygon(cameraId, new Double[]{well.getLongitude(), well.getLatitude()})) { return AjaxResult.error("井位置属于相机禁止引导区域"); return AjaxResult.warn("井位置属于相机禁止引导区域"); } //按井坐标开始引导 if (!guideTargetPosition(cmd).get("code").equals(200)) { return AjaxResult.error("井坐标引导失败", "cameraId:" + cameraId); return AjaxResult.warn("井坐标引导失败", "cameraId:" + cameraId); } return AjaxResult.success("井坐标引导成功", "cameraId:" + cameraId); @@ -718,7 +693,7 @@ String cameraId = cmd.getCameraId();//申请锁的相机 ArdCameras ardCameras = ardCamerasService.selectArdCamerasById(cameraId); if (ardCameras == null) { return AjaxResult.error("设备未登录"); return AjaxResult.warn("设备不存在"); } Date now = new Date(); now.setTime(now.getTime() + cmd.getExpired() * 1000); @@ -741,7 +716,7 @@ String operator = cmd.getOperator();//申请者 ArdCameras ardCameras = ardCamerasService.selectArdCamerasById(cameraId); if (ardCameras == null) { return AjaxResult.error("设备未登录"); return AjaxResult.warn("设备不存在"); } if (ardCameras.getOperatorId().equals(operator)) { //如果解锁相机的当前用户是申请者,则清空该相机的过期时间 @@ -834,13 +809,12 @@ try { String cameraId = cmd.getCameraId(); ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId); if (ardCamera != null) { String factory = ardCamera.getFactory(); CameraSDK cameraSDK = cameraSDKFactory.createCameraSDK(factory); return cameraSDK.getGisInfo(cmd); } else { return AjaxResult.error("相机不存在"); if (ardCamera == null) { return AjaxResult.warn("设备不存在"); } String factory = ardCamera.getFactory(); CameraSDK cameraSDK = cameraSDKFactory.createCameraSDK(factory); return cameraSDK.getGisInfo(cmd); } catch (Exception ex) { log.error("获取相机架设参数异常:" + ex.getMessage()); return AjaxResult.error("获取相机架设参数异常:" + ex.getMessage()); @@ -853,33 +827,30 @@ try { String cameraId = cmd.getCameraId(); ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId); if (ardCamera != null) { String factory = ardCamera.getFactory(); CameraSDK cameraSDK = cameraSDKFactory.createCameraSDK(factory); return cameraSDK.localRecordStart(cmd); } else { return AjaxResult.error("相机不存在"); if (ardCamera == null) { return AjaxResult.warn("设备不存在"); } String factory = ardCamera.getFactory(); CameraSDK cameraSDK = cameraSDKFactory.createCameraSDK(factory); return cameraSDK.localRecordStart(cmd); } catch (Exception ex) { log.error("本地录像开始异常:" + ex.getMessage()); return AjaxResult.error("本地录像开始异常:" + ex.getMessage()); } } //本地录像停止 @Override public AjaxResult localRecordStop(CameraCmd cmd) { try { String cameraId = cmd.getCameraId(); ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId); if (ardCamera != null) { String factory = ardCamera.getFactory(); CameraSDK cameraSDK = cameraSDKFactory.createCameraSDK(factory); return cameraSDK.localRecordStop(cmd); if (ardCamera == null) { return AjaxResult.warn("设备不存在"); } else { return AjaxResult.error("相机不存在"); } String factory = ardCamera.getFactory(); CameraSDK cameraSDK = cameraSDKFactory.createCameraSDK(factory); return cameraSDK.localRecordStop(cmd); } catch (Exception ex) { log.error("本地录像停止异常:" + ex.getMessage()); return AjaxResult.error("本地录像停止异常:" + ex.getMessage()); ard-work/src/main/java/com/ruoyi/utils/sdk/dhsdk/lib/ToolKits.java
@@ -469,8 +469,9 @@ * @return */ public static String getErrorCodePrint() { return "Error Code: (0x80000000|" + (LoginModule.netsdk.CLIENT_GetLastError() & 0x7fffffff) +")" + " Error Info:" + ErrorCode.getErrorCode(LoginModule.netsdk.CLIENT_GetLastError()) + ""; return ErrorCode.getErrorCode(LoginModule.netsdk.CLIENT_GetLastError()) + "("+(LoginModule.netsdk.CLIENT_GetLastError() & 0x7fffffff)+")"; //return "Error Code: (0x80000000|" + (LoginModule.netsdk.CLIENT_GetLastError() & 0x7fffffff) +")" // + " Error Info:" + ErrorCode.getErrorCode(LoginModule.netsdk.CLIENT_GetLastError()) + ""; } /** ard-work/src/main/java/com/ruoyi/utils/sdk/dhsdk/service/impl/DahuaSDK.java
@@ -103,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()); @@ -197,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()); @@ -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("设置零方位角成功"); } @@ -556,26 +556,25 @@ 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"); 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());//转换成base64串 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());//转换成base64串 return AjaxResult.success(imageBytes); } catch (Exception ex) { return AjaxResult.error("本地抓图异常:" + ex); } @@ -589,7 +588,7 @@ Integer chanNo = cmd.getChanNo(); if (!GlobalVariable.loginMap.containsKey(cameraId)) { return AjaxResult.error("设备未登录"); return AjaxResult.warn("设备未登录"); } LLong loginId = (LLong) GlobalVariable.loginMap.get(cameraId); //if (GlobalVariable.previewMap.containsKey(cameraId)) { @@ -611,12 +610,13 @@ // return false; //} log.debug("本地录像开始"); return AjaxResult.success("本地录像开始",lRealHandle); return AjaxResult.success("本地录像开始", lRealHandle); } catch (Exception ex) { log.error("本地录像开始异常" + ex.getMessage()); return AjaxResult.error("本地录像开始异常" + ex.getMessage()); } } //本地录像停止 @Override public AjaxResult localRecordStop(CameraCmd cmd) { @@ -624,7 +624,7 @@ String cameraId = cmd.getCameraId(); LLong lRealHandle = new LLong(cmd.getRecordId()); if (!GlobalVariable.loginMap.containsKey(cameraId)) { return AjaxResult.error("设备未登录"); return AjaxResult.warn("设备未登录"); } RealPlayModule.stopRealPlay(lRealHandle); @@ -808,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 { @@ -822,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) { @@ -838,14 +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) { @@ -861,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) { @@ -884,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 { @@ -909,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) { @@ -925,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 { @@ -934,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); @@ -985,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 { @@ -994,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) { @@ -1008,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 { @@ -1016,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) { @@ -1032,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(); @@ -1040,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); @@ -1058,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 { @@ -1072,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) { @@ -1156,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; @@ -1226,9 +1226,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); ard-work/src/main/java/com/ruoyi/utils/sdk/hiksdk/service/impl/HikvisionSDK.java
@@ -80,7 +80,7 @@ try { // 初始化 if (!hCNetSDK.NET_DVR_Init()) { log.error("SDK初始化失败"); log.debug("SDK初始化失败"); } //打印海康sdk日志 if (Platform.isWindows()) { @@ -123,8 +123,8 @@ //删除管理通道 ardChannelService.deleteArdChannelByDeviceId(camera.getId()); ardCamerasService.updateArdCameras(camera); log.error("设备[" + camera.getIp() + ":" + camera.getPort() + "]登录失败: errorCode:" + errorCode + " errorInfo:" + SdkErrorCodeEnum.getDescByCode(errorCode)); return AjaxResult.error("设备登录失败: errorCode:" + errorCode + " errorInfo:" + SdkErrorCodeEnum.getDescByCode(errorCode)); log.debug("设备[" + camera.getIp() + ":" + camera.getPort() + "]登录失败: " + SdkErrorCodeEnum.getDescByCode(errorCode) + "(" + errorCode + ")"); return AjaxResult.warn("设备[" + camera.getIp() + ":" + camera.getPort() + "]登录失败: " + SdkErrorCodeEnum.getDescByCode(errorCode) + "(" + errorCode + ")"); } log.debug("Login Success [ " + camera.getIp() + ":" + camera.getPort() + " ]"); @@ -191,7 +191,7 @@ // 初始化 if (!hCNetSDK.NET_DVR_Init()) { log.error("SDK初始化失败"); return AjaxResult.error("SDK初始化失败"); return AjaxResult.warn("SDK初始化失败"); } //打印海康sdk日志 if (Platform.isWindows()) { @@ -234,8 +234,8 @@ //删除管理通道 ardChannelService.deleteArdChannelByDeviceId(camera.getId()); ardCamerasService.updateArdCameras(camera); log.error("设备[" + camera.getIp() + ":" + camera.getPort() + "]登录失败: errorCode:" + errorCode + " errorInfo:" + SdkErrorCodeEnum.getDescByCode(errorCode)); return AjaxResult.error("设备登录失败: errorCode:" + errorCode + " errorInfo:" + SdkErrorCodeEnum.getDescByCode(errorCode)); log.error("设备[" + camera.getIp() + ":" + camera.getPort() + "]登录失败: " + SdkErrorCodeEnum.getDescByCode(errorCode) + "(" + errorCode + ")"); return AjaxResult.warn("设备[" + camera.getIp() + ":" + camera.getPort() + "]登录失败: " + SdkErrorCodeEnum.getDescByCode(errorCode) + "(" + errorCode + ")"); } log.debug("Login Success 【 " + camera.getIp() + ":" + camera.getPort() + " 】"); synchronized (_lock) { @@ -387,7 +387,7 @@ Integer speed = cmd.getSpeed(); Integer code = cmd.getCode(); if (!GlobalVariable.loginMap.containsKey(cameraId)) { return AjaxResult.error("设备未登录"); return AjaxResult.warn("设备未登录"); } Integer userId = (Integer) GlobalVariable.loginMap.get(cameraId); int dwStop; @@ -456,7 +456,7 @@ if (!bool) { int errorCode = hCNetSDK.NET_DVR_GetLastError(); log.error("控制失败: errorCode:" + errorCode + " errorInfo:" + SdkErrorCodeEnum.getDescByCode(errorCode)); return AjaxResult.error("控制失败: errorCode:" + errorCode + " errorInfo:" + SdkErrorCodeEnum.getDescByCode(errorCode)); return AjaxResult.warn("控制失败:" + SdkErrorCodeEnum.getDescByCode(errorCode) + "(" + errorCode + ")"); } return AjaxResult.success("控制成功"); } @@ -472,7 +472,7 @@ Integer channelNum = cmd.getChanNo(); Integer dwFocusPos = cmd.getDwFocusPos(); if (!GlobalVariable.loginMap.containsKey(cameraId)) { return AjaxResult.error("设备未登录"); return AjaxResult.warn("设备未登录"); } // 获取参数 Integer userId = (Integer) GlobalVariable.loginMap.get(cameraId); @@ -490,7 +490,7 @@ if (!bool) { int code = hCNetSDK.NET_DVR_GetLastError(); log.error("设置GIS信息数据失败,请稍后重试" + code); return AjaxResult.error("设置GIS信息数据失败: errorCode:" + code + " errorInfo:" + SdkErrorCodeEnum.getDescByCode(code)); return AjaxResult.warn("设置GIS信息数据失败:" + SdkErrorCodeEnum.getDescByCode(code) + "(" + code + ")"); } return AjaxResult.success("设置GIS信息数据成功"); } @@ -522,7 +522,7 @@ if (!bool) { int code = hCNetSDK.NET_DVR_GetLastError(); log.error("获取聚焦值失败: errorCode:" + code + " errorInfo:" + SdkErrorCodeEnum.getDescByCode(code)); return AjaxResult.error("获取聚焦值失败: errorCode:" + code + " errorInfo:" + SdkErrorCodeEnum.getDescByCode(code)); return AjaxResult.warn("获取聚焦值失败:" + SdkErrorCodeEnum.getDescByCode(code) + "(" + code + ")"); } struGisInfo.read(); int result = struGisInfo.struPtzPosEx.dwFocus; @@ -547,7 +547,7 @@ if (!bool) { int code = hCNetSDK.NET_DVR_GetLastError(); log.error("预置点设置失败: errorCode:" + code + " errorInfo:" + SdkErrorCodeEnum.getDescByCode(code)); return AjaxResult.error("预置点设置失败: errorCode:" + code + " errorInfo:" + SdkErrorCodeEnum.getDescByCode(code)); return AjaxResult.warn("预置点设置失败:" + SdkErrorCodeEnum.getDescByCode(code) + "(" + code + ")"); } return AjaxResult.success("预置点设置成功"); } @@ -570,7 +570,7 @@ if (!bool) { int code = hCNetSDK.NET_DVR_GetLastError(); log.error("调用预置点失败: errorCode:" + code + " errorInfo:" + SdkErrorCodeEnum.getDescByCode(code)); return AjaxResult.error("调用预置点失败: errorCode:" + code + " errorInfo:" + SdkErrorCodeEnum.getDescByCode(code)); return AjaxResult.warn("调用预置点失败:" + SdkErrorCodeEnum.getDescByCode(code) + "(" + code + ")"); } return AjaxResult.success("调用预置点成功"); } @@ -899,7 +899,7 @@ String cameraId = cmd.getCameraId(); Integer channelNum = cmd.getChanNo(); if (!GlobalVariable.loginMap.containsKey(cameraId)) { return AjaxResult.error("设备未登录"); return AjaxResult.warn("设备未登录"); } Integer userId = (Integer) GlobalVariable.loginMap.get(cameraId); @@ -911,7 +911,7 @@ if (!bool) { int code = hCNetSDK.NET_DVR_GetLastError(); log.error("获取ptz失败: errorCode:" + code + " errorInfo:" + SdkErrorCodeEnum.getDescByCode(code)); return AjaxResult.error("获取ptz失败: errorCode:" + code + " errorInfo:" + SdkErrorCodeEnum.getDescByCode(code)); return AjaxResult.warn("获取ptz失败:" + SdkErrorCodeEnum.getDescByCode(code) + "(" + code + ")"); } m_ptzPosCurrent.read(); // DecimalFormat df = new DecimalFormat("0.0");//设置保留位数 @@ -949,7 +949,7 @@ String cameraId = cmd.getCameraId(); Integer chanNo = cmd.getChanNo(); if (!GlobalVariable.loginMap.containsKey(cameraId)) { return AjaxResult.error("设备未登录"); return AjaxResult.warn("设备未登录"); } IntByReference pchannel = new IntByReference(chanNo); Pointer pChannelNum = pchannel.getPointer(); @@ -966,8 +966,8 @@ boolean res = hCNetSDK.NET_DVR_GetSTDConfig(lUserID, HCNetSDK.NET_DVR_GET_PTZABSOLUTEEX, lpConfigParam6696); if (!res) { int code = hCNetSDK.NET_DVR_GetLastError(); log.error("获取高精度PTZ绝对位置配置失败: errorCde" + code + " errorInfo:" + SdkErrorCodeEnum.getDescByCode(code)); return AjaxResult.error("获取高精度PTZ绝对位置配置失败: errorCde" + code + " errorInfo:" + SdkErrorCodeEnum.getDescByCode(code)); log.error("获取高精度PTZ失败: errorCode" + code + " errorInfo:" + SdkErrorCodeEnum.getDescByCode(code)); return AjaxResult.warn("获取高精度PTZ失败:" + SdkErrorCodeEnum.getDescByCode(code) + "(" + code + ")"); } lpPTZAbsoluteEX_cfg.read(); //log.debug("P:" + lpPTZAbsoluteEX_cfg.struPTZCtrl.fPan + " T:" + lpPTZAbsoluteEX_cfg.struPTZCtrl.fTilt + " Z:" + lpPTZAbsoluteEX_cfg.struPTZCtrl.fZoom @@ -1002,7 +1002,7 @@ Integer channelNum = cmd.getChanNo(); Map<String, Double> ptz = cmd.getPtzMap(); if (!GlobalVariable.loginMap.containsKey(cameraId)) { return AjaxResult.error("设备未登录"); return AjaxResult.warn("设备未登录"); } Integer userId = (Integer) GlobalVariable.loginMap.get(cameraId); NET_DVR_PTZPOS m_ptzPosCurrent = new NET_DVR_PTZPOS(); @@ -1018,9 +1018,9 @@ m_ptzPosCurrent.write(); boolean bool = hCNetSDK.NET_DVR_SetDVRConfig(userId, NET_DVR_SET_PTZPOS, channelNum, point, m_ptzPosCurrent.size()); if (!bool) { int errorCode = hCNetSDK.NET_DVR_GetLastError(); log.error("设置PTZ参数失败:" + errorCode); return AjaxResult.error("设置PTZ参数失败: errorCode:" + errorCode + " errorInfo:" + SdkErrorCodeEnum.getDescByCode(errorCode)); int code = hCNetSDK.NET_DVR_GetLastError(); log.error("设置PTZ参数失败: errorCode" + code + " errorInfo:" + SdkErrorCodeEnum.getDescByCode(code)); return AjaxResult.warn("设置PTZ参数失败:" + SdkErrorCodeEnum.getDescByCode(code) + "(" + code + ")"); } return AjaxResult.success("设置PTZ参数成功"); } catch (Exception ex) { @@ -1045,7 +1045,7 @@ Integer chanNo = cmd.getChanNo(); Map<String, Double> ptz = cmd.getPtzMap(); if (!GlobalVariable.loginMap.containsKey(cameraId)) { return AjaxResult.error("设备未登录"); return AjaxResult.warn("设备未登录"); } Integer lUserID = (Integer) GlobalVariable.loginMap.get(cameraId); IntByReference pchannel = new IntByReference(chanNo); @@ -1077,9 +1077,9 @@ lpConfigParam6697.write(); boolean bool = hCNetSDK.NET_DVR_SetSTDConfig(lUserID, NET_DVR_SET_PTZABSOLUTEEX, lpConfigParam6697); if (!bool) { int errorCode = hCNetSDK.NET_DVR_GetLastError(); log.error("设置高精度PTZ参数失败:" + errorCode); return AjaxResult.error("设置高精度PTZ参数失败: errorCode:" + errorCode + " errorInfo:" + SdkErrorCodeEnum.getDescByCode(errorCode)); int code = hCNetSDK.NET_DVR_GetLastError(); log.error("设置高精度PTZ失败:" + code); return AjaxResult.warn("设置高精度PTZ失败:" + SdkErrorCodeEnum.getDescByCode(code) + "(" + code + ")"); } return AjaxResult.success("设置高精度PTZ参数成功"); @@ -1095,7 +1095,7 @@ String cameraId = cmd.getCameraId(); Integer chanNo = cmd.getChanNo(); if (!GlobalVariable.loginMap.containsKey(cameraId)) { return AjaxResult.error("设备未登录"); return AjaxResult.warn("设备未登录"); } Integer userId = (Integer) GlobalVariable.loginMap.get(cameraId); NET_DVR_PTZPOS m_ptzPosCurrent = new NET_DVR_PTZPOS(); @@ -1117,7 +1117,7 @@ if (!bool) { int code = hCNetSDK.NET_DVR_GetLastError(); log.error("设置ptz失败,请稍后重试" + code); return AjaxResult.error("设置ptz失败: errorCode:" + code + " errorInfo:" + SdkErrorCodeEnum.getDescByCode(code)); return AjaxResult.warn("设置ptz失败:" + SdkErrorCodeEnum.getDescByCode(code) + "(" + code + ")"); } return AjaxResult.success("引导坐标成功"); } catch (Exception ex) { @@ -1139,7 +1139,7 @@ String cameraId = cmd.getCameraId(); Integer channelNum = cmd.getChanNo(); if (!GlobalVariable.loginMap.containsKey(cameraId)) { return AjaxResult.error("设备未登录"); return AjaxResult.warn("设备未登录"); } Integer userId = (Integer) GlobalVariable.loginMap.get(cameraId); NET_DVR_PTZ_LOCKCFG netDvrPtzLockcfg = new NET_DVR_PTZ_LOCKCFG(); @@ -1149,8 +1149,8 @@ boolean bool = hCNetSDK.NET_DVR_GetDVRConfig(userId, NET_DVR_GET_PTZLOCKCFG, channelNum, point, netDvrPtzLockcfg.size(), ibrBytesReturned); if (!bool) { int code = hCNetSDK.NET_DVR_GetLastError(); log.error("获取ptz锁定信息失败: errorCode:" + code + " errorInfo:" + SdkErrorCodeEnum.getDescByCode(code)); return AjaxResult.error("获取ptz锁定信息失败: errorCode:" + code + " errorInfo:" + SdkErrorCodeEnum.getDescByCode(code)); log.error("获取ptz锁定失败: errorCode:" + code + " errorInfo:" + SdkErrorCodeEnum.getDescByCode(code)); return AjaxResult.warn("获取ptz锁定失败:" + SdkErrorCodeEnum.getDescByCode(code) + "(" + code + ")"); } else { netDvrPtzLockcfg.read(); int byWorkMode = netDvrPtzLockcfg.byWorkMode; @@ -1187,7 +1187,7 @@ if (!bool) { int code = hCNetSDK.NET_DVR_GetLastError(); log.error("设置零方位角失败:" + code); return AjaxResult.error("设置零方位角失败: errorCode:" + code + "errorInfo:" + SdkErrorCodeEnum.getDescByCode(code)); return AjaxResult.warn("设置零方位角失败:" + SdkErrorCodeEnum.getDescByCode(code) + "(" + code + ")"); } return AjaxResult.success(); } @@ -1216,7 +1216,7 @@ if (!bool) { int code = hCNetSDK.NET_DVR_GetLastError(); log.error("获取ptz范围失败: errorCode:" + code + " errorInfo:" + SdkErrorCodeEnum.getDescByCode(code)); return AjaxResult.error("获取ptz范围失败: errorCode:" + code + " errorInfo:" + SdkErrorCodeEnum.getDescByCode(code)); return AjaxResult.warn("获取ptz范围失败:" + SdkErrorCodeEnum.getDescByCode(code) + "(" + code + ")"); } else { m_ptzPosCurrent.read(); DecimalFormat df = new DecimalFormat("0.0");//设置保留位数 @@ -1252,7 +1252,7 @@ boolean enable = cmd.isEnable(); Integer channelNum = cmd.getChanNo(); if (!GlobalVariable.loginMap.containsKey(cameraId)) { return AjaxResult.error("设备未登录"); return AjaxResult.warn("设备未登录"); } Integer userId = (Integer) GlobalVariable.loginMap.get(cameraId); NET_DVR_CAMERAPARAMCFG_EX struCameraParam = new NET_DVR_CAMERAPARAMCFG_EX(); @@ -1262,7 +1262,7 @@ if (!b_GetCameraParam) { int code = hCNetSDK.NET_DVR_GetLastError(); log.error("获取前端参数失败: errorCode" + code + " errorInfo" + SdkErrorCodeEnum.getDescByCode(code)); return AjaxResult.error("获取前端参数失败: errorCode" + code + " errorInfo" + SdkErrorCodeEnum.getDescByCode(code)); return AjaxResult.warn("获取前端参数失败:" + SdkErrorCodeEnum.getDescByCode(code) + "(" + code + ")"); } struCameraParam.read(); log.debug("是否开启透雾:" + struCameraParam.struDefogCfg.byMode); @@ -1280,7 +1280,7 @@ if (!bool) { int code = hCNetSDK.NET_DVR_GetLastError(); log.error("切换透雾失败: errorCode" + code + " errorInfo" + SdkErrorCodeEnum.getDescByCode(code)); return AjaxResult.error("切换透雾失败: errorCode" + code + " errorInfo" + SdkErrorCodeEnum.getDescByCode(code)); return AjaxResult.warn("切换透雾失败:" + SdkErrorCodeEnum.getDescByCode(code) + "(" + code + ")"); } log.debug("切换透雾成功"); return AjaxResult.success("切换透雾成功"); @@ -1300,7 +1300,7 @@ boolean enable = cmd.isEnable(); Integer chanNo = cmd.getChanNo(); if (!GlobalVariable.loginMap.containsKey(cameraId)) { return AjaxResult.error("设备未登录"); return AjaxResult.warn("设备未登录"); } Integer userId = (Integer) GlobalVariable.loginMap.get(cameraId); NET_DVR_CAMERAPARAMCFG_EX struDayNigh = new NET_DVR_CAMERAPARAMCFG_EX(); @@ -1310,7 +1310,7 @@ if (!b_GetCameraParam) { int code = hCNetSDK.NET_DVR_GetLastError(); log.error("获取前端参数失败: errorCode:" + code + " errorInfo:" + SdkErrorCodeEnum.getDescByCode(code)); return AjaxResult.error("获取前端参数失败: errorCode:" + code + " errorInfo:" + SdkErrorCodeEnum.getDescByCode(code)); return AjaxResult.warn("获取前端参数失败:" + SdkErrorCodeEnum.getDescByCode(code) + "(" + code + ")"); } struDayNigh.read(); String current = struDayNigh.struDayNight.byDayNightFilterType == 1 ? "开启" : "关闭"; @@ -1330,7 +1330,7 @@ if (!bool) { int code = hCNetSDK.NET_DVR_GetLastError(); log.error("切换红外失败 ErrorCode:{},ErrorInfo:{}", code, SdkErrorCodeEnum.getDescByCode(code)); return AjaxResult.error("切换红外失败: errorCode" + code + " errorInfo" + SdkErrorCodeEnum.getDescByCode(code)); return AjaxResult.warn("切换红外失败:" + SdkErrorCodeEnum.getDescByCode(code) + "(" + code + ")"); } log.debug("切换红外成功"); return AjaxResult.success("切换红外成功"); @@ -1350,7 +1350,7 @@ boolean enable = cmd.isEnable(); Integer channelNum = cmd.getChanNo(); if (!GlobalVariable.loginMap.containsKey(cameraId)) { return AjaxResult.error("设备未登录"); return AjaxResult.warn("设备未登录"); } Integer userId = (Integer) GlobalVariable.loginMap.get(cameraId); NET_DVR_FOCUSMODE_CFG struFocusMode = new NET_DVR_FOCUSMODE_CFG(); @@ -1360,7 +1360,7 @@ if (!b_GetCameraParam) { int code = hCNetSDK.NET_DVR_GetLastError(); log.error("获取前端参数失败: errorCode" + code + " errorInfo" + SdkErrorCodeEnum.getDescByCode(code)); return AjaxResult.error("获取前端参数失败: errorCode" + code + " errorInfo" + SdkErrorCodeEnum.getDescByCode(code)); return AjaxResult.warn("获取前端参数失败:" + SdkErrorCodeEnum.getDescByCode(code) + "(" + code + ")"); } struFocusMode.read(); log.debug("当前聚焦模式:" + struFocusMode.byFocusMode); @@ -1378,7 +1378,7 @@ if (!bool) { int code = hCNetSDK.NET_DVR_GetLastError(); log.error("设置聚焦模式失败: errorCode" + code + " errorInfo" + SdkErrorCodeEnum.getDescByCode(code)); return AjaxResult.error("设置聚焦模式失败: errorCode" + code + " errorInfo" + SdkErrorCodeEnum.getDescByCode(code)); return AjaxResult.warn("设置聚焦模式失败:" + SdkErrorCodeEnum.getDescByCode(code) + "(" + code + ")"); } log.debug("设置聚焦模式成功"); return AjaxResult.success("设置聚焦模式成功"); @@ -1396,7 +1396,7 @@ String cameraId = cmd.getCameraId(); Integer channelNum = cmd.getChanNo(); if (!GlobalVariable.loginMap.containsKey(cameraId)) { return AjaxResult.error("设备未登录"); return AjaxResult.warn("设备未登录"); } Integer userId = (Integer) GlobalVariable.loginMap.get(cameraId); NET_DVR_FOCUSMODE_CFG struFocusMode = new NET_DVR_FOCUSMODE_CFG(); @@ -1405,8 +1405,8 @@ boolean b_GetCameraParam = hCNetSDK.NET_DVR_GetDVRConfig(userId, NET_DVR_GET_FOCUSMODECFG, channelNum, point, struFocusMode.size(), ibrBytesReturned); if (!b_GetCameraParam) { int code = hCNetSDK.NET_DVR_GetLastError(); log.error("获取前端参数失败: errorCode" + code + " errorInfo" + SdkErrorCodeEnum.getDescByCode(code)); return AjaxResult.error("获取前端参数失败: errorCode" + code + " errorInfo" + SdkErrorCodeEnum.getDescByCode(code)); log.error("获取聚焦模式失败: errorCode" + code + " errorInfo" + SdkErrorCodeEnum.getDescByCode(code)); return AjaxResult.warn("获取聚焦模式失败:" + SdkErrorCodeEnum.getDescByCode(code) + "(" + code + ")"); } struFocusMode.read(); log.debug("当前聚焦模式:" + struFocusMode.byFocusMode); @@ -1427,7 +1427,7 @@ boolean enable = cmd.isEnable(); Integer channelNum = cmd.getChanNo(); if (!GlobalVariable.loginMap.containsKey(cameraId)) { return AjaxResult.error("设备未登录"); return AjaxResult.warn("设备未登录"); } Integer userId = (Integer) GlobalVariable.loginMap.get(cameraId); int dwStop; @@ -1440,7 +1440,7 @@ if (!bool) { int code = hCNetSDK.NET_DVR_GetLastError(); log.error("设置云台加热失败: errorCode" + code + " errorInfo" + SdkErrorCodeEnum.getDescByCode(code)); return AjaxResult.error("设置云台加热失败: errorCode" + code + " errorInfo" + SdkErrorCodeEnum.getDescByCode(code)); return AjaxResult.warn("设置云台加热失败:" + SdkErrorCodeEnum.getDescByCode(code) + "(" + code + ")"); } log.debug("设置云台加热成功"); return AjaxResult.success("设置云台加热成功"); @@ -1460,7 +1460,7 @@ boolean enable = cmd.isEnable(); Integer channelNum = cmd.getChanNo(); if (!GlobalVariable.loginMap.containsKey(cameraId)) { return AjaxResult.error("设备未登录"); return AjaxResult.warn("设备未登录"); } Integer userId = (Integer) GlobalVariable.loginMap.get(cameraId); NET_DVR_DEVSERVER_CFG struDeicing = new NET_DVR_DEVSERVER_CFG(); @@ -1470,7 +1470,7 @@ if (!b_GetCameraParam) { int code = hCNetSDK.NET_DVR_GetLastError(); log.error("获取前端参数失败: errorCode" + code + " errorInfo" + SdkErrorCodeEnum.getDescByCode(code)); return AjaxResult.error("获取前端参数失败: errorCode" + code + " errorInfo" + SdkErrorCodeEnum.getDescByCode(code)); return AjaxResult.warn("获取前端参数失败:" + SdkErrorCodeEnum.getDescByCode(code) + "(" + code + ")"); } struDeicing.read(); log.debug("是否开启除冰:" + struDeicing.byEnableDeicing); @@ -1485,7 +1485,7 @@ if (!bool) { int code = hCNetSDK.NET_DVR_GetLastError(); log.error("设置镜头除冰失败: errorCode" + code + " errorInfo" + SdkErrorCodeEnum.getDescByCode(code)); return AjaxResult.error("设置镜头除冰失败: errorCode" + code + " errorInfo" + SdkErrorCodeEnum.getDescByCode(code)); return AjaxResult.warn("设置镜头除冰失败:" + SdkErrorCodeEnum.getDescByCode(code) + "(" + code + ")"); } log.debug("设置镜头除冰成功"); return AjaxResult.success("设置镜头除冰成功"); @@ -1502,14 +1502,14 @@ String cameraId = cmd.getCameraId(); Integer channelNum = cmd.getChanNo(); if (!GlobalVariable.loginMap.containsKey(cameraId)) { return AjaxResult.error("设备未登录"); return AjaxResult.warn("设备未登录"); } 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)) { int code = hCNetSDK.NET_DVR_GetLastError(); log.error("获取设备工作状态失败: errorCode" + code + " errorInfo" + SdkErrorCodeEnum.getDescByCode(code)); return AjaxResult.error("获取设备工作状态失败: errorCode" + code + " errorInfo" + SdkErrorCodeEnum.getDescByCode(code)); return AjaxResult.warn("获取设备工作状态失败:" + SdkErrorCodeEnum.getDescByCode(code) + "(" + code + ")"); } //图片质量 NET_DVR_JPEGPARA jpeg = new NET_DVR_JPEGPARA(); @@ -1695,7 +1695,8 @@ netDvrIFrame.dwSize = netDvrIFrame.size(); netDvrIFrame.write(); if (!hCNetSDK.NET_DVR_RemoteControl(userId, 3402, netDvrIFrame.getPointer(), netDvrIFrame.dwSize)) { log.error("强制I帧 错误码为: " + hCNetSDK.NET_DVR_GetLastError()); int code = hCNetSDK.NET_DVR_GetLastError(); log.error("设置强制I帧错误:" + SdkErrorCodeEnum.getDescByCode(code) + "(" + code + ")"); } //预览参数 NET_DVR_PREVIEWINFO previewinfo = new NET_DVR_PREVIEWINFO(); @@ -1904,7 +1905,7 @@ String cameraId = cmd.getCameraId(); Integer channelNum = cmd.getChanNo(); if (!GlobalVariable.loginMap.containsKey(cameraId)) { return AjaxResult.error("设备未登录"); return AjaxResult.warn("设备未登录"); } // 获取参数 Integer userId = (Integer) GlobalVariable.loginMap.get(cameraId); @@ -1921,7 +1922,7 @@ if (!bool) { int code = hCNetSDK.NET_DVR_GetLastError(); log.error("获取GIS信息数据失败: errorCode:" + code + " errorInfo:" + SdkErrorCodeEnum.getDescByCode(code)); return AjaxResult.error("获取GIS信息数据失败: errorCode:" + code + " errorInfo:" + SdkErrorCodeEnum.getDescByCode(code)); return AjaxResult.warn("获取GIS信息数据失败:" + SdkErrorCodeEnum.getDescByCode(code) + "(" + code + ")"); } struGisInfo.read(); Map<String, Object> map = new HashMap<>(); @@ -1942,7 +1943,7 @@ Integer channelNum = cmd.getChanNo(); String path = FileUtils.createFile("D:/LocalRecordTemp/" + cameraId + ".mp4"); if (!GlobalVariable.loginMap.containsKey(cameraId)) { return AjaxResult.error("设备未登录"); return AjaxResult.warn("设备未登录"); } Integer userId = (Integer) GlobalVariable.loginMap.get(cameraId); //强制I帧结构体对象 @@ -1975,7 +1976,7 @@ if (lRealHandle == -1) { int code = hCNetSDK.NET_DVR_GetLastError(); log.error("本地录像取流失败" + hCNetSDK.NET_DVR_GetLastError()); return AjaxResult.error("本地录像取流失败: errorCode:" + code + " errorInfo:" + SdkErrorCodeEnum.getDescByCode(code)); return AjaxResult.warn("本地录像取流失败:" + SdkErrorCodeEnum.getDescByCode(code) + "(" + code + ")"); } log.debug("本地录像取流成功"); //GlobalVariable.threadMap.put(cameraId, Thread.currentThread().getName()); @@ -1983,7 +1984,7 @@ if (!hCNetSDK.NET_DVR_SaveRealData_V30(lRealHandle, 2, path)) { int code = hCNetSDK.NET_DVR_GetLastError(); log.error("保存视频文件到临时文件夹失败 错误码为: " + hCNetSDK.NET_DVR_GetLastError()); return AjaxResult.error("本地录像取流失败: errorCode:" + code + " errorInfo:" + SdkErrorCodeEnum.getDescByCode(code)); return AjaxResult.warn("本地录像取流失败:" + SdkErrorCodeEnum.getDescByCode(code) + "(" + code + ")"); } log.debug("本地录像开始"); return AjaxResult.success("录像开始", lRealHandle); @@ -2002,7 +2003,7 @@ Integer lRealHandle = cmd.getRecordId().intValue(); if (!GlobalVariable.loginMap.containsKey(cameraId)) { return AjaxResult.error("设备未登录"); return AjaxResult.warn("设备未登录"); } Integer userId = (Integer) GlobalVariable.loginMap.get(cameraId); //region 强制I帧