‘liusuyi’
2024-03-07 38eaaa87743252da53851047bd15b089ccf9697b
SDK云台控制和setptz增加错误码返回
增加部门和相机按角色数据权限查询
已添加2个文件
已修改13个文件
271 ■■■■ 文件已修改
ard-work/src/main/java/com/ruoyi/alarm/radar/service/impl/ArdRadarServiceImpl.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/device/camera/controller/ArdCamerasController.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/device/camera/controller/CameraSdkController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/device/camera/domain/DeptAndCamerasDto.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/device/camera/factory/CameraSDK.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/device/camera/service/IArdCamerasService.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/device/camera/service/ICameraSdkService.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/device/camera/service/impl/ArdCamerasServiceImpl.java 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/device/camera/service/impl/CameraSdkServiceImpl.java 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/utils/sdk/common/SdkErrorCodeEnum.java 73 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/utils/sdk/dhsdk/controller/DhSdkController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/utils/sdk/dhsdk/lib/ToolKits.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/utils/sdk/dhsdk/service/impl/DahuaSDK.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/utils/sdk/hiksdk/controller/HikSdkController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/utils/sdk/hiksdk/service/impl/HikvisionSDK.java 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/alarm/radar/service/impl/ArdRadarServiceImpl.java
@@ -4,6 +4,7 @@
import com.ruoyi.alarm.radar.domain.ArdAlarmRadar;
import com.ruoyi.alarm.radar.domain.RadarAlarmData;
import com.ruoyi.alarm.radar.service.ArdRadarService;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.device.camera.domain.ArdCameras;
import com.ruoyi.device.camera.domain.CameraCmd;
@@ -69,12 +70,7 @@
                    ptzMap.put("t", t);
                    ptzMap.put("z", cameraPTZ[2]);
                    cmd.setPtzMap(ptzMap);
                    boolean res = iCameraSdkService.setPtz(cmd);
                    if (res) {
                        log.debug("强制引导成功");
                    } else {
                        log.debug("强制引导失败");
                    }
                    iCameraSdkService.setPtz(cmd);
                } else {
                    log.debug("未获取到雷达塔上的光电");
                }
ard-work/src/main/java/com/ruoyi/device/camera/controller/ArdCamerasController.java
@@ -7,6 +7,7 @@
import com.ruoyi.common.constant.CameraConstants;
import com.ruoyi.device.camera.domain.ArdCameras;
import com.ruoyi.device.camera.domain.CameraCmd;
import com.ruoyi.device.camera.domain.DeptAndCamerasDto;
import com.ruoyi.device.camera.service.IArdCamerasService;
import com.ruoyi.device.camera.service.ICameraSdkService;
import com.ruoyi.common.utils.poi.ExcelUtil;
@@ -193,7 +194,12 @@
        Map deptAndCamera = ardCamerasService.getChildDeptAndCamera(true);
        return AjaxResult.success(deptAndCamera);
    }
    @GetMapping("/getDeptAndCamera1")
    @ApiOperation("获取部门和相机1")
    public AjaxResult getDeptAndCamera1() {
        List<DeptAndCamerasDto> deptAndCamera = ardCamerasService.getChildDeptAndCamera();
        return AjaxResult.success(deptAndCamera);
    }
    @GetMapping("/getDeptAndCameraWithCheckBox")
    @ApiOperation("获取部门和相机(开启复选框)")
    public AjaxResult getDeptAndCameraWithCheckBox() {
ard-work/src/main/java/com/ruoyi/device/camera/controller/CameraSdkController.java
@@ -94,7 +94,7 @@
    public @ResponseBody
    AjaxResult PTZControlWithSpeed(@RequestBody CameraCmd cmd) {
        cmd.setOperator(SecurityUtils.getUserId());
        return toAjax(cameraSdkService.pTZControl(cmd));
        return cameraSdkService.pTZControl(cmd);
    }
    @ApiOperation("调用预置点")
@@ -167,7 +167,7 @@
    public @ResponseBody
    AjaxResult setPTZ(@RequestBody CameraCmd cmd) {
        cmd.setOperator(SecurityUtils.getUserId());
        return toAjax(cameraSdkService.setPtz(cmd));
        return cameraSdkService.setPtz(cmd);
    }
    @ApiOperation("指向目标")
ard-work/src/main/java/com/ruoyi/device/camera/domain/DeptAndCamerasDto.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
package com.ruoyi.device.camera.domain;
import com.ruoyi.common.core.domain.entity.SysDept;
import lombok.Data;
import java.util.List;
/**
 * @Description:
 * @ClassName: deptAndCamerasDto
 * @Author: åˆ˜è‹ä¹‰
 * @Date: 2024å¹´03月05日8:21:22
 **/
@Data
public class DeptAndCamerasDto {
    SysDept sysDept;
    List<ArdCameras> ardCamerasList;
}
ard-work/src/main/java/com/ruoyi/device/camera/factory/CameraSDK.java
@@ -1,5 +1,6 @@
package com.ruoyi.device.camera.factory;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.device.camera.domain.ArdCameras;
import com.ruoyi.device.camera.domain.CameraCmd;
import com.ruoyi.device.channel.domain.ArdChannel;
@@ -26,7 +27,7 @@
    boolean isOnLine(CameraCmd cmd);
    //云台控制
    boolean pTZControl(CameraCmd cmd);
    AjaxResult pTZControl(CameraCmd cmd);
    //设置聚焦值
    boolean setFocusPos(CameraCmd cmd);
@@ -78,10 +79,10 @@
    Map<String, Object> getPtzScope(CameraCmd cmd);
    //设置ptz1(不支持2通道的Z值设置和获取)
    boolean setPtz1(CameraCmd cmd);
    AjaxResult setPtz1(CameraCmd cmd);
    //设置ptz(高精度ptz设置)
    boolean setPtz(CameraCmd cmd);
    AjaxResult setPtz(CameraCmd cmd);
    //设置零方位角
    boolean setZeroPtz(CameraCmd cmd);
ard-work/src/main/java/com/ruoyi/device/camera/service/IArdCamerasService.java
@@ -8,6 +8,7 @@
import com.ruoyi.alarmpoints.well.domain.ArdAlarmpointsWell;
import com.ruoyi.device.camera.domain.ArdCameras;
import com.ruoyi.device.camera.domain.CameraCmd;
import com.ruoyi.device.camera.domain.DeptAndCamerasDto;
import com.ruoyi.scheduling.domian.SchedulingParam;
/**
@@ -106,7 +107,7 @@
     * @修改人和其它信息
     */
    public Map getChildDeptAndCamera(Boolean disabled);
    public List<DeptAndCamerasDto> getChildDeptAndCamera();
    public TreeMap getNearCamerasBycoordinate(CameraCmd cmd);
ard-work/src/main/java/com/ruoyi/device/camera/service/ICameraSdkService.java
@@ -19,7 +19,7 @@
    boolean isOnLine(CameraCmd cmd);
    //云台控制
    boolean pTZControl(CameraCmd cmd);
    AjaxResult pTZControl(CameraCmd cmd);
    //设置聚焦值
    boolean setFocusPos(CameraCmd cmd);
@@ -76,7 +76,7 @@
    Map<String, Object> getPtzScope(CameraCmd cmd);
    //设置ptz
    boolean setPtz(CameraCmd cmd);
    AjaxResult setPtz(CameraCmd cmd);
    //设置零方位角
    boolean setZeroPtz(CameraCmd cmd);
ard-work/src/main/java/com/ruoyi/device/camera/service/impl/ArdCamerasServiceImpl.java
@@ -17,10 +17,12 @@
import com.ruoyi.common.utils.spring.SpringUtils;
import com.ruoyi.common.utils.uuid.IdUtils;
import com.ruoyi.device.camera.domain.CameraCmd;
import com.ruoyi.device.camera.domain.DeptAndCamerasDto;
import com.ruoyi.device.channel.domain.ArdChannel;
import com.ruoyi.device.channel.mapper.ArdChannelMapper;
import com.ruoyi.media.service.IVtduService;
import com.ruoyi.scheduling.domian.SchedulingParam;
import com.ruoyi.system.service.ISysDeptService;
import com.ruoyi.utils.gis.GisUtil;
import com.ruoyi.utils.tools.ArdTool;
import com.ruoyi.device.camera.domain.ArdCameras;
@@ -52,7 +54,8 @@
    private SysDeptMapper sysDeptMapper;
    @Resource
    private RedisCache redisCache;
    @Autowired
    private ISysDeptService deptService;
    @Resource
    private ArdChannelMapper ardChannelMapper;
    @Resource
@@ -306,7 +309,6 @@
     * @创建时间 2023/6/2 10:58
     * @修改人和其它信息
     */
    @Override
    public Map getChildDeptAndCamera(Boolean disabled) {
        Long deptId = SecurityUtils.getDeptId();
@@ -315,6 +317,11 @@
        return map;
    }
    @Override
    public List<DeptAndCamerasDto> getChildDeptAndCamera() {
        List<SysDept> depts = deptService.selectDeptList(new SysDept());
        return fetchChildDepartments(depts);
    }
    /**
     * @描述 é€’归查询
     * @参数 [sysDept]
@@ -354,7 +361,26 @@
        }
        map.put("children", childList);
        return map;
    }
    /**
     * èŽ·å–æ‰€æœ‰éƒ¨é—¨åŠéƒ¨é—¨ä¸‹çš„ç›¸æœº
     * åˆ˜è‹ä¹‰
     * 2024/3/4 14:45:03
     */
    public List<DeptAndCamerasDto> fetchChildDepartments(List<SysDept> sysDepts) {
        List<DeptAndCamerasDto> deptAndCamerasList = sysDepts.stream()
                .map(sysDept -> {
                    List<ArdCameras> ardCameras = ardCamerasMapper.selectArdCamerasByDeptId(sysDept.getDeptId());
                    DeptAndCamerasDto deptAndCamerasDto = new DeptAndCamerasDto();
                    deptAndCamerasDto.setSysDept(sysDept);
                    deptAndCamerasDto.setArdCamerasList(ardCameras);
                    return deptAndCamerasDto;
                })
                .collect(Collectors.toList());
        return deptAndCamerasList;
    }
    /**
ard-work/src/main/java/com/ruoyi/device/camera/service/impl/CameraSdkServiceImpl.java
@@ -130,20 +130,15 @@
    //云台控制
    @Override
    public boolean pTZControl(CameraCmd cmd) {
        try {
            boolean result = false;
    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);
                result = cameraSDK.pTZControl(cmd);
            }
            return result;
        } catch (Exception ex) {
            log.error("ptz控制异常:" + ex.getMessage());
            return false;
            return cameraSDK.pTZControl(cmd);
        } else {
            return AjaxResult.error("摄像头不存在");
        }
    }
@@ -403,9 +398,7 @@
                String gdtype = ardCamera.getGdtype();
                if (gdtype.equals("1")) {
                    map = cameraSDK.getPtz(cmd);
                }
                else
                {
                } else {
                    map = cameraSDK.getPtz1(cmd);
                }
            }
@@ -435,27 +428,27 @@
    //设置ptz
    @Override
    public boolean setPtz(CameraCmd cmd) {
        boolean result = false;
    public AjaxResult setPtz(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);
            if (ardCamera == null) {
                return AjaxResult.error("摄像头不存在");
            }
            CameraSDK cameraSDK = cameraSDKFactory.createCameraSDK(ardCamera.getFactory());
                String gdtype = ardCamera.getGdtype();
                if (gdtype.equals("1")) {
                    //大光电使用高精度ptz设置
                    result = cameraSDK.setPtz(cmd);
                return cameraSDK.setPtz(cmd);
                } else {
                    result = cameraSDK.setPtz1(cmd);
                return cameraSDK.setPtz1(cmd);
                }
            }
        } catch (Exception ex) {
            log.error("设置ptz异常:" + ex.getMessage());
            AjaxResult.error("设置ptz异常:" + ex.getMessage());
        }
        return result;
        return AjaxResult.success();
    }
    //设置零方位角
@@ -529,8 +522,7 @@
            cmd.setCameraId(cameraId);
            //获取最近相机的对象
            Optional<ArdWellGuideCamera> first = ardWellGuideCameraList.stream().filter(s -> s.getCameraId().equals(cameraId)).findFirst();
            if(first.isPresent())
            {
            if (first.isPresent()) {
                ArdWellGuideCamera ardWellGuideCamera = first.get();
                Map<String, Double> ptzMap = null;
                //通过通道获取预置位
@@ -557,11 +549,7 @@
                if (ptzMap != null) {
                    //使用ptz引导
                    cmd.setPtzMap(ptzMap);
                    boolean res = setPtz(cmd);
                    if (!res) {
                        return AjaxResult.error("ptz引导失败", "cameraId:" + cameraId);
                    }
                    return AjaxResult.success("ptz引导成功", "cameraId:" + cameraId);
                    return setPtz(cmd);
                }
            }
ard-work/src/main/java/com/ruoyi/utils/sdk/common/SdkErrorCodeEnum.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,73 @@
package com.ruoyi.utils.sdk.common;
import com.ruoyi.common.utils.StringUtils;
/**
 * sdk错误码枚举
 * åˆ˜è‹ä¹‰
 * 2024/3/7 10:50:52
 */
public enum SdkErrorCodeEnum {
    NET_DVR_PASSWORD_ERROR(1, "用户名密码错误。注册时输入的用户名或者密码错误"),
    NET_DVR_NOINIT(3, "SDK未初始化"),
    NET_DVR_NETWORK_FAIL_CONNECT(7, "连接设备失败。设备不在线或网络原因引起的连接超时等");
    /**
     * æžšä¸¾ç 
     */
    private Integer code;
    /**
     * æžšä¸¾æè¿°
     */
    private String desc;
    private SdkErrorCodeEnum(Integer code, String desc) {
        this.code = code;
        this.desc = desc;
    }
    public Integer getCode() {
        return code;
    }
    public String getDesc() {
        return desc;
    }
    /**
     * æ ¹æ®æžšä¸¾ç èŽ·å–æžšä¸¾
     *
     * @param code æžšä¸¾ç 
     * @return æžšä¸¾
     */
    public static final SdkErrorCodeEnum getByCode(Integer code) {
        if (StringUtils.isNull(code)) {
            return null;
        }
        for (SdkErrorCodeEnum item : SdkErrorCodeEnum.values()) {
            if (item.getCode() == code) {
                return item;
            }
        }
        return null;
    }
    /**
     * æ ¹æ®æžšä¸¾ç èŽ·å–æžšä¸¾æè¿°
     *
     * @param code æžšä¸¾ç 
     * @return æžšä¸¾æè¿°
     */
    public static final String getDescByCode(Integer code) {
        if (StringUtils.isNull(code)) {
            return "错误码为空";
        }
        for (SdkErrorCodeEnum item : SdkErrorCodeEnum.values()) {
            if (item.getCode() == code) {
                return item.getDesc();
            }
        }
        return "找不到错误码对应的错误描述,请联系管理员";
    }
}
ard-work/src/main/java/com/ruoyi/utils/sdk/dhsdk/controller/DhSdkController.java
@@ -47,7 +47,7 @@
    public @ResponseBody
    AjaxResult pTZControl(@RequestBody CameraCmd cmd) {
        cmd.setOperator(SecurityUtils.getUserId());
        return toAjax(sdk.pTZControl(cmd));
        return sdk.pTZControl(cmd);
    }
    @ApiOperation("获取PTZ")
@@ -79,7 +79,7 @@
    public @ResponseBody
    AjaxResult setPTZ(@RequestBody CameraCmd cmd) {
        cmd.setOperator(SecurityUtils.getUserId());
        return toAjax(sdk.setPtz(cmd));
        return sdk.setPtz(cmd);
    }
    @ApiOperation("设置零方位角")
ard-work/src/main/java/com/ruoyi/utils/sdk/dhsdk/lib/ToolKits.java
@@ -469,8 +469,8 @@
     * @return
     */
    public static String getErrorCodePrint() {
        return "\n{error code: (0x80000000|" + (LoginModule.netsdk.CLIENT_GetLastError() & 0x7fffffff) +").参考  NetSDKLib.java }"
                + " - {error info:" + ErrorCode.getErrorCode(LoginModule.netsdk.CLIENT_GetLastError()) + "}\n";
        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
@@ -4,6 +4,7 @@
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.core.domain.AjaxResult;
import com.ruoyi.common.utils.file.FileUtils;
import com.ruoyi.common.utils.file.MimeTypeUtils;
import com.ruoyi.common.utils.spring.SpringUtils;
@@ -19,6 +20,7 @@
import com.ruoyi.utils.gis.GisUtil;
import com.ruoyi.utils.minio.MinioUtil;
import com.ruoyi.utils.sdk.common.GlobalVariable;
import com.ruoyi.utils.sdk.dhsdk.common.ErrorCode;
import com.ruoyi.utils.sdk.dhsdk.lib.NetSDKLib;
import com.ruoyi.utils.sdk.dhsdk.lib.enumeration.EM_NEW_CONFIG;
import com.ruoyi.utils.sdk.dhsdk.lib.enumeration.NET_EM_CFG_OPERATE_TYPE;
@@ -317,14 +319,14 @@
     */
    @Override
    @SdkOperate
    public boolean pTZControl(CameraCmd cmd) {
    public AjaxResult pTZControl(CameraCmd cmd) {
        String cameraId = cmd.getCameraId();
        boolean enable = cmd.isEnable();
        Integer chanNo = cmd.getChanNo();
        Integer speed = cmd.getSpeed();
        Integer code = cmd.getCode();
        if (!GlobalVariable.loginMap.containsKey(cameraId)) {
            return false;
            return AjaxResult.error("设备未登录");
        }
        NetSDKLib.LLong loginId = (NetSDKLib.LLong) GlobalVariable.loginMap.get(cameraId);
        int dwStop;
@@ -391,8 +393,9 @@
        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 bool;
        return AjaxResult.success();
    }
    /**
@@ -429,7 +432,7 @@
    }
    @Override
    public boolean setPtz1(CameraCmd cmd) {
    public AjaxResult setPtz1(CameraCmd cmd) {
        return setPtz(cmd) ;
    }
@@ -443,12 +446,12 @@
     */
    @Override
    @SdkOperate
    public boolean setPtz(CameraCmd cmd) {
    public AjaxResult setPtz(CameraCmd cmd) {
        String cameraId = cmd.getCameraId();
        Integer chanNo = cmd.getChanNo();
        Map<String, Double> ptz = cmd.getPtzMap();
        if (!GlobalVariable.loginMap.containsKey(cameraId)) {
            return false;
            return AjaxResult.error("设备未登录");
        }
        LLong loginId = (LLong) GlobalVariable.loginMap.get(cameraId);
        try {
@@ -460,11 +463,12 @@
            boolean bool = netsdk.CLIENT_DHPTZControlEx(loginId, chanNo - 1, NetSDKLib.NET_EXTPTZ_ControlType.NET_EXTPTZ_EXACTGOTO, p, t, z, 0);
            if (!bool) {
                log.error("控制失败,请稍后重试" + getErrorCodePrint());
                return AjaxResult.error(ErrorCode.getErrorCode(LoginModule.netsdk.CLIENT_GetLastError()));
            }
            return bool;
            return AjaxResult.success();
        } catch (Exception ex) {
            log.error(ex.getMessage());
            return false;
            return AjaxResult.error(ex.getMessage());
        }
    }
ard-work/src/main/java/com/ruoyi/utils/sdk/hiksdk/controller/HikSdkController.java
@@ -85,7 +85,7 @@
    public @ResponseBody
    AjaxResult PTZControlWithSpeed(@RequestBody CameraCmd cmd) {
        cmd.setOperator(SecurityUtils.getUserId());
        return toAjax(sdk.pTZControl(cmd));
        return sdk.pTZControl(cmd);
    }
    @ApiOperation("调用预置点")
@@ -158,7 +158,7 @@
    public @ResponseBody
    AjaxResult setPTZ(@RequestBody CameraCmd cmd) {
        cmd.setOperator(SecurityUtils.getUserId());
        return toAjax(sdk.setPtz(cmd));
        return sdk.setPtz(cmd);
    }
    @ApiOperation("指向目标")
ard-work/src/main/java/com/ruoyi/utils/sdk/hiksdk/service/impl/HikvisionSDK.java
@@ -4,6 +4,7 @@
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.core.domain.AjaxResult;
import com.ruoyi.common.utils.file.FileUtils;
import com.ruoyi.common.utils.file.MimeTypeUtils;
import com.ruoyi.common.utils.spring.SpringUtils;
@@ -19,6 +20,7 @@
import com.ruoyi.utils.gis.GisUtil;
import com.ruoyi.utils.minio.MinioUtil;
import com.ruoyi.utils.sdk.common.GlobalVariable;
import com.ruoyi.utils.sdk.common.SdkErrorCodeEnum;
import com.ruoyi.utils.sdk.hiksdk.lib.ExceptionCallBack;
import com.ruoyi.utils.sdk.hiksdk.lib.HCNetSDK;
import com.sun.jna.NativeLong;
@@ -220,7 +222,10 @@
            //同步登录
            int lUserID = hCNetSDK.NET_DVR_Login_V40(m_strLoginInfo, m_strDeviceInfo);
            if (lUserID < 0) {
                log.debug("Login Failed ã€ " + camera.getIp() + ":" + camera.getPort() + " ã€‘,Error Code:" + hCNetSDK.NET_DVR_GetLastError());
                int errorCode = hCNetSDK.NET_DVR_GetLastError();
                log.debug("Login Failed ã€ " + camera.getIp() + ":" + camera.getPort() + " ã€‘," +
                        "Error Code:" + errorCode + " " +
                        "Error Info:" + SdkErrorCodeEnum.getDescByCode(errorCode));
                camera.setChanNum(0);
                camera.setLoginId(-1);
                camera.setState("0");
@@ -376,14 +381,14 @@
     */
    @Override
    @SdkOperate
    public boolean pTZControl(CameraCmd cmd) {
    public AjaxResult pTZControl(CameraCmd cmd) {
        String cameraId = cmd.getCameraId();
        boolean enable = cmd.isEnable();
        Integer channelNum = cmd.getChanNo();
        Integer speed = cmd.getSpeed();
        Integer code = cmd.getCode();
        if (!GlobalVariable.loginMap.containsKey(cameraId)) {
            return false;
            return AjaxResult.error("相机未登录");
        }
        Integer userId = (Integer) GlobalVariable.loginMap.get(cameraId);
        int dwStop;
@@ -452,8 +457,9 @@
        if (!bool) {
            int errorCode = hCNetSDK.NET_DVR_GetLastError();
            log.error("控制失败,请稍后重试" + errorCode);
            return AjaxResult.error("errorCode:" + errorCode + "errorInfo:" + SdkErrorCodeEnum.getDescByCode(errorCode));
        }
        return bool;
        return AjaxResult.success();
    }
    /**
@@ -992,12 +998,12 @@
     */
    @Override
    @SdkOperate
    public boolean setPtz1(CameraCmd cmd) {
    public AjaxResult setPtz1(CameraCmd cmd) {
        String cameraId = cmd.getCameraId();
        Integer channelNum = cmd.getChanNo();
        Map<String, Double> ptz = cmd.getPtzMap();
        if (!GlobalVariable.loginMap.containsKey(cameraId)) {
            return false;
            return AjaxResult.error("设备未登录");
        }
        Integer userId = (Integer) GlobalVariable.loginMap.get(cameraId);
        NET_DVR_PTZPOS m_ptzPosCurrent = new NET_DVR_PTZPOS();
@@ -1013,13 +1019,14 @@
            m_ptzPosCurrent.write();
            boolean bool = hCNetSDK.NET_DVR_SetDVRConfig(userId, NET_DVR_SET_PTZPOS, channelNum, point, m_ptzPosCurrent.size());
            if (!bool) {
                int code = hCNetSDK.NET_DVR_GetLastError();
                log.error("设置PTZ参数失败,请稍后重试:" + code);
                int errorCode = hCNetSDK.NET_DVR_GetLastError();
                log.error("设置PTZ参数失败,请稍后重试:" + errorCode);
                return AjaxResult.error("errorCode:" + errorCode + "errorInfo:" + SdkErrorCodeEnum.getDescByCode(errorCode));
            }
            return bool;
            return AjaxResult.success();
        } catch (Exception ex) {
            log.error(ex.getMessage());
            return false;
            return AjaxResult.error("设置PTZ参数异常:" + ex.getMessage());
        }
    }
@@ -1033,13 +1040,13 @@
     */
    @Override
    @SdkOperate
    public boolean setPtz(CameraCmd cmd) {
    public AjaxResult setPtz(CameraCmd cmd) {
        try {
            String cameraId = cmd.getCameraId();
            Integer chanNo = cmd.getChanNo();
            Map<String, Double> ptz = cmd.getPtzMap();
            if (!GlobalVariable.loginMap.containsKey(cameraId)) {
                return false;
                return AjaxResult.error("设备未登录");
            }
            Integer lUserID = (Integer) GlobalVariable.loginMap.get(cameraId);
            IntByReference pchannel = new IntByReference(chanNo);
@@ -1071,14 +1078,15 @@
            lpConfigParam6697.write();
            boolean bool = hCNetSDK.NET_DVR_SetSTDConfig(lUserID, NET_DVR_SET_PTZABSOLUTEEX, lpConfigParam6697);
            if (!bool) {
                int code = hCNetSDK.NET_DVR_GetLastError();
                log.error("设置高精度PTZ参数失败,请稍后重试:" + code);
                int errorCode = hCNetSDK.NET_DVR_GetLastError();
                log.error("设置高精度PTZ参数失败,请稍后重试:" + errorCode);
                return AjaxResult.error("errorCode:" + errorCode + "errorInfo:" + SdkErrorCodeEnum.getDescByCode(errorCode));
            }
            return bool;
            return AjaxResult.success();
        } catch (Exception ex) {
            log.error("设置高精度PTZ参数异常", ex);
            return false;
            return AjaxResult.error("设置高精度PTZ参数异常:" + ex);
        }
    }