‘liusuyi’
2024-03-14 650b127a6a671a87034db5e027379e740aa56364
ard-work/src/main/java/com/ruoyi/device/camera/service/impl/CameraSdkServiceImpl.java
@@ -145,75 +145,78 @@
    //设置聚焦值
    @Override
    public boolean setFocusPos(CameraCmd cmd) {
        boolean result = false;
    public AjaxResult setFocusPos(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);
                result = cameraSDK.setFocusPos(cmd);
                return cameraSDK.setFocusPos(cmd);
            } else {
                return AjaxResult.error("摄像头不存在");
            }
        } catch (Exception ex) {
            log.error("设置聚焦值异常:" + ex.getMessage());
            return AjaxResult.error("设置聚焦值异常:" + ex.getMessage());
        }
        return result;
    }
    //获取聚焦值
    @Override
    public int getFocusPos(CameraCmd cmd) {
        int result = 0;
    public AjaxResult getFocusPos(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);
                result = cameraSDK.getFocusPos(cmd);
                return cameraSDK.getFocusPos(cmd);
            } else {
                return AjaxResult.error("摄像头不存在");
            }
        } catch (Exception ex) {
            log.error("获取聚焦值异常:" + ex.getMessage());
            return AjaxResult.error("获取聚焦值异常:" + ex.getMessage());
        }
        return result;
    }
    //设置预置位
    @Override
    public boolean setPreset(CameraCmd cmd) {
        boolean result = false;
    public AjaxResult setPreset(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);
                result = cameraSDK.setPreset(cmd);
                return cameraSDK.setPreset(cmd);
            } else {
                return AjaxResult.error("摄像头不存在");
            }
        } catch (Exception ex) {
            log.error("设置预置位异常:" + ex.getMessage());
            return AjaxResult.error("设置预置位异常" + ex.getMessage());
        }
        return result;
    }
    //调用预置位
    @Override
    public boolean gotoPreset(CameraCmd cmd) {
        boolean result = false;
    public AjaxResult gotoPreset(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);
                result = cameraSDK.gotoPreset(cmd);
                return cameraSDK.gotoPreset(cmd);
            } else {
                return AjaxResult.error("摄像头不存在");
            }
        } catch (Exception ex) {
            log.error("调用预置位异常:" + ex.getMessage());
            return AjaxResult.error("调用预置位异常" + ex.getMessage());
        }
        return result;
    }
    //获取码流压缩参数
@@ -236,128 +239,138 @@
    //透雾开关
    @Override
    public boolean controlDefogcfg(CameraCmd cmd) {
        boolean result = false;
    public AjaxResult controlDefogcfg(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);
                result = cameraSDK.controlDefogcfg(cmd);
                return cameraSDK.controlDefogcfg(cmd);
            } else {
                return AjaxResult.error("摄像头不存在");
            }
        } catch (Exception ex) {
            log.error("操控透雾异常:" + ex.getMessage());
            return AjaxResult.error("操控透雾异常" + ex.getMessage());
        }
        return result;
    }
    //红外开关
    @Override
    public boolean controlInfrarecfg(CameraCmd cmd) {
        boolean result = false;
    public AjaxResult controlInfrarecfg(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);
                result = cameraSDK.controlInfrarecfg(cmd);
                return cameraSDK.controlInfrarecfg(cmd);
            } else {
                return AjaxResult.error("摄像头不存在");
            }
        } catch (Exception ex) {
            log.error("操控红外异常:" + ex.getMessage());
            return AjaxResult.error("操控红外异常:" + ex.getMessage());
        }
        return result;
    }
    //手动/自动聚焦
    @Override
    public boolean controlFocusMode(CameraCmd cmd) {
        boolean result = false;
    public AjaxResult controlFocusMode(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);
                result = cameraSDK.controlFocusMode(cmd);
                return cameraSDK.controlFocusMode(cmd);
            } else {
                return AjaxResult.error("摄像头不存在");
            }
        } catch (Exception ex) {
            log.error("操控聚焦模式异常:" + ex.getMessage());
            return AjaxResult.error("操控聚焦模式异常:" + ex.getMessage());
        }
        return result;
    }
    //获取聚焦模式
    @Override
    public String getFocusMode(CameraCmd cmd) {
        String result = "";
    public AjaxResult getFocusMode(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);
                result = cameraSDK.getFocusMode(cmd);
                return cameraSDK.getFocusMode(cmd);
            } else {
                return AjaxResult.error("摄像头不存在");
            }
        } catch (Exception ex) {
            log.error("获取聚焦模式异常:" + ex.getMessage());
            return AjaxResult.error("获取聚焦模式异常:" + ex.getMessage());
        }
        return result;
    }
    //云台加热
    @Override
    public boolean controlPTHeateRpwron(CameraCmd cmd) {
        boolean result = false;
    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);
                result = cameraSDK.controlPTHeateRpwron(cmd);
                return cameraSDK.controlPTHeateRpwron(cmd);
            } else {
                return AjaxResult.error("摄像头不存在");
            }
        } catch (Exception ex) {
            log.error("操控云台加热异常:" + ex.getMessage());
            return AjaxResult.error("操控云台加热异常:" + ex.getMessage());
        }
        return result;
    }
    //镜头加热
    @Override
    public boolean controlCameraDeicing(CameraCmd cmd) {
        boolean result = false;
    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);
                result = cameraSDK.controlCameraDeicing(cmd);
                return cameraSDK.controlCameraDeicing(cmd);
            } else {
                return AjaxResult.error("摄像头不存在");
            }
        } catch (Exception ex) {
            log.error("操控云台加热异常:" + ex.getMessage());
            return AjaxResult.error("操控云台加热异常:" + ex.getMessage());
        }
        return result;
    }
    //获取云台锁定信息
    @Override
    public int getPTZLockInfo(CameraCmd cmd) {
        int result = 99;
    public AjaxResult getPTZLockInfo(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);
                result = cameraSDK.getPTZLockInfo(cmd);
                return cameraSDK.getPTZLockInfo(cmd);
            } else {
                return AjaxResult.error("摄像头不存在");
            }
        } catch (Exception ex) {
            log.error("获取云台锁定信息异常:" + ex.getMessage());
            log.error("获取云台锁定信息异常:" + ex.getMessage());
            return AjaxResult.error("获取云台锁定信息异常:" + ex.getMessage());
        }
        return result;
    }
    @Override
@@ -388,7 +401,7 @@
    //获取ptz
    @Override
    public Map<String, Object> getPtz(CameraCmd cmd) {
    public AjaxResult getPtz(CameraCmd cmd) {
        Map<String, Object> map = new HashMap<>();
        try {
            String cameraId = cmd.getCameraId();
@@ -398,33 +411,36 @@
                CameraSDK cameraSDK = cameraSDKFactory.createCameraSDK(factory);
                String gdtype = ardCamera.getGdtype();
                if (gdtype.equals("1")) {
                    map = cameraSDK.getPtz(cmd);
                    return cameraSDK.getPtzHigh(cmd);
                } else {
                    map = cameraSDK.getPtz1(cmd);
                    return cameraSDK.getPtz(cmd);
                }
            } else {
                return AjaxResult.error("摄像头不存在");
            }
        } catch (Exception ex) {
            log.error("获取ptz异常:" + ex.getMessage());
            return AjaxResult.error("获取ptz异常:" + ex.getMessage());
        }
        return map;
    }
    //获取ptz范围
    @Override
    public Map<String, Object> getPtzScope(CameraCmd cmd) {
        Map<String, Object> map = new HashMap<>();
    public AjaxResult getPtzScope(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);
                map = cameraSDK.getPtzScope(cmd);
                return cameraSDK.getPtzScope(cmd);
            } else {
                return AjaxResult.error("摄像头不存在");
            }
        } catch (Exception ex) {
            log.error("获取ptz范围异常:" + ex.getMessage());
            return AjaxResult.error("获取ptz范围异常:" + ex.getMessage());
        }
        return map;
    }
    //设置ptz
@@ -440,52 +456,53 @@
            String gdtype = ardCamera.getGdtype();
            if (gdtype.equals("1")) {
                //大光电使用高精度ptz设置
                return cameraSDK.setPtz(cmd);
                return cameraSDK.setPtzHigh(cmd);
            } else {
                return cameraSDK.setPtz1(cmd);
                return cameraSDK.setPtz(cmd);
            }
        } catch (Exception ex) {
            log.error("设置ptz异常:" + ex.getMessage());
            AjaxResult.error("设置ptz异常:" + ex.getMessage());
           return AjaxResult.error("设置ptz异常:" + ex.getMessage());
        }
        return AjaxResult.success();
    }
    //设置零方位角
    @Override
    public boolean setZeroPtz(CameraCmd cmd) {
        boolean result = false;
    public AjaxResult setZeroPtz(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);
                result = cameraSDK.setZeroPtz(cmd);
                return cameraSDK.setZeroPtz(cmd);
            } else {
                return AjaxResult.error("摄像头不存在");
            }
        } catch (Exception ex) {
            log.error("设置零方位角异常:" + ex.getMessage());
            return AjaxResult.error("设置零方位角异常:" + ex.getMessage());
        }
        return result;
    }
    //引导指向目标
    @Override
    public boolean guideTargetPosition(CameraCmd cmd) {
        boolean result = false;
    public AjaxResult guideTargetPosition(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);
                result = cameraSDK.guideTargetPosition(cmd);
                return cameraSDK.guideTargetPosition(cmd);
            } else {
                return AjaxResult.error("摄像头不存在");
            }
        } catch (Exception ex) {
            log.error("引导指向目标异常:" + ex.getMessage());
            log.error("引导指向目标异常:" + ex.getMessage());
            return AjaxResult.error("引导指向目标异常:" + ex.getMessage());
        }
        return result;
    }
    //引导指向井
@@ -569,7 +586,7 @@
            return AjaxResult.error("井位置属于相机禁止引导区域");
        }
        //按井坐标开始引导
        if (!guideTargetPosition(cmd)) {
        if (!guideTargetPosition(cmd).get("code").equals(200)) {
            return AjaxResult.error("井坐标引导失败", "cameraId:" + cameraId);
        }
        return AjaxResult.success("井坐标引导成功", "cameraId:" + cameraId);
@@ -669,14 +686,18 @@
     */
    @Override
    @SdkOperate
    public boolean controlLock(CameraCmd cmd) {
    public AjaxResult controlLock(CameraCmd cmd) {
        String cameraId = cmd.getCameraId();//申请锁的相机
        ArdCameras ardCameras = ardCamerasService.selectArdCamerasById(cameraId);
        if(ardCameras==null)
        {
            return AjaxResult.error("设备未登录");
        }
        Date now = new Date();
        now.setTime(now.getTime() + cmd.getExpired() * 1000);
        ardCameras.setOperatorExpired(now);//设置当前过期时间
        ardCamerasService.updateArdCameras(ardCameras);
        return true;
        return AjaxResult.success("操控锁定成功");
    }
    /**
@@ -688,10 +709,14 @@
     * @修改人和其它信息
     */
    @Override
    public boolean controlUnLock(CameraCmd cmd) {
    public AjaxResult controlUnLock(CameraCmd cmd) {
        String cameraId = cmd.getCameraId();//申请解锁的相机
        String operator = cmd.getOperator();//申请者
        ArdCameras ardCameras = ardCamerasService.selectArdCamerasById(cameraId);
        if(ardCameras==null)
        {
            return AjaxResult.error("设备未登录");
        }
        if (ardCameras.getOperatorId().equals(operator)) {
            //如果解锁相机的当前用户是申请者,则清空该相机的过期时间
            ardCameras.setOperatorExpired(null);
@@ -700,7 +725,8 @@
                log.debug(cameraId + "--解锁成功");
            }
        }
        return true;
        return AjaxResult.success("操控解锁成功");
    }
    //录像
@@ -778,20 +804,20 @@
    //获取相机架设参数
    @Override
    public Map<String, Object> getGisInfo(CameraCmd cmd) {
        Map<String, Object> map = new HashMap<>();
    public AjaxResult getGisInfo(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);
                map = cameraSDK.getGisInfo(cmd);
                return cameraSDK.getGisInfo(cmd);
            } else {
                return AjaxResult.error("相机不存在");
            }
        } catch (Exception ex) {
            log.error("获取相机架设参数异常:" + ex.getMessage());
            return AjaxResult.error("获取相机架设参数异常:" + ex.getMessage());
        }
        return map;
    }
}