‘liusuyi’
2024-01-13 9775ffc356e1ed822f7367619ce7a9907cb49bc0
ard-work/src/main/java/com/ruoyi/device/camera/service/impl/CameraSdkServiceImpl.java
@@ -7,8 +7,8 @@
import com.ruoyi.device.camera.domain.CameraCmd;
import com.ruoyi.device.camera.service.IArdCamerasService;
import com.ruoyi.device.camera.service.ICameraSdkService;
import com.ruoyi.device.camera.strategy.SdkStrategy;
import com.ruoyi.device.camera.strategy.SdkStrategyFactory;
import com.ruoyi.device.camera.factory.CameraSDK;
import com.ruoyi.device.camera.factory.CameraSDKFactory;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
@@ -34,7 +34,7 @@
    @Resource
    private RedisCache redisCache;
    @Resource
    private SdkStrategyFactory sdkStrategyFactory;
    private CameraSDKFactory cameraSDKFactory;
    /**
     * 启动线程方法,用于执行初始化登录相机的逻辑
@@ -64,9 +64,9 @@
        try {
            if (ardCamera != null) {
                String factory = ardCamera.getFactory();
                SdkStrategy sdkStrategy = sdkStrategyFactory.getSdkStrategy(factory);
                CameraSDK cameraSDK = cameraSDKFactory.createCameraSDK(factory);
                //sdkStrategy.login(ardCamera);//同步登录
                sdkStrategy.asyncLogin(ardCamera);//异步登录
                cameraSDK.asyncLogin(ardCamera);//异步登录
                result=true;
            }
        } catch (Exception ex) {
@@ -84,8 +84,8 @@
            ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId);
            if (ardCamera != null) {
                String factory = ardCamera.getFactory();
                SdkStrategy sdkStrategy = sdkStrategyFactory.getSdkStrategy(factory);
                result = sdkStrategy.logout(cameraId);
                CameraSDK cameraSDK = cameraSDKFactory.createCameraSDK(factory);
                result = cameraSDK.logout(cameraId);
            }
        } catch (Exception ex) {
            log.error("注销异常:" + ex.getMessage());
@@ -103,8 +103,8 @@
            ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId);
            if (ardCamera != null) {
                String factory = ardCamera.getFactory();
                SdkStrategy sdkStrategy = sdkStrategyFactory.getSdkStrategy(factory);
                onLine = sdkStrategy.isOnLine(cmd);
                CameraSDK cameraSDK = cameraSDKFactory.createCameraSDK(factory);
                onLine = cameraSDK.isOnLine(cmd);
            }
            return onLine;
        } catch (Exception ex) {
@@ -123,8 +123,8 @@
            ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId);
            if (ardCamera != null) {
                String factory = ardCamera.getFactory();
                SdkStrategy sdkStrategy = sdkStrategyFactory.getSdkStrategy(factory);
                result = sdkStrategy.pTZControl(cmd);
                CameraSDK cameraSDK = cameraSDKFactory.createCameraSDK(factory);
                result = cameraSDK.pTZControl(cmd);
            }
            return result;
        } catch (Exception ex) {
@@ -142,8 +142,8 @@
            ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId);
            if (ardCamera != null) {
                String factory = ardCamera.getFactory();
                SdkStrategy sdkStrategy = sdkStrategyFactory.getSdkStrategy(factory);
                result = sdkStrategy.setFocusPos(cmd);
                CameraSDK cameraSDK = cameraSDKFactory.createCameraSDK(factory);
                result = cameraSDK.setFocusPos(cmd);
            }
        } catch (Exception ex) {
            log.error("设置聚焦值异常:" + ex.getMessage());
@@ -161,8 +161,8 @@
            ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId);
            if (ardCamera != null) {
                String factory = ardCamera.getFactory();
                SdkStrategy sdkStrategy = sdkStrategyFactory.getSdkStrategy(factory);
                result = sdkStrategy.getFocusPos(cmd);
                CameraSDK cameraSDK = cameraSDKFactory.createCameraSDK(factory);
                result = cameraSDK.getFocusPos(cmd);
            }
        } catch (Exception ex) {
            log.error("获取聚焦值异常:" + ex.getMessage());
@@ -180,8 +180,8 @@
            ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId);
            if (ardCamera != null) {
                String factory = ardCamera.getFactory();
                SdkStrategy sdkStrategy = sdkStrategyFactory.getSdkStrategy(factory);
                result = sdkStrategy.setPreset(cmd);
                CameraSDK cameraSDK = cameraSDKFactory.createCameraSDK(factory);
                result = cameraSDK.setPreset(cmd);
            }
        } catch (Exception ex) {
            log.error("设置预置位异常:" + ex.getMessage());
@@ -199,8 +199,8 @@
            ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId);
            if (ardCamera != null) {
                String factory = ardCamera.getFactory();
                SdkStrategy sdkStrategy = sdkStrategyFactory.getSdkStrategy(factory);
                result = sdkStrategy.gotoPreset(cmd);
                CameraSDK cameraSDK = cameraSDKFactory.createCameraSDK(factory);
                result = cameraSDK.gotoPreset(cmd);
            }
        } catch (Exception ex) {
            log.error("调用预置位异常:" + ex.getMessage());
@@ -217,8 +217,8 @@
            ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId);
            if (ardCamera != null) {
                String factory = ardCamera.getFactory();
                SdkStrategy sdkStrategy = sdkStrategyFactory.getSdkStrategy(factory);
                map = sdkStrategy.getVideoCompressionCfg(cmd);
                CameraSDK cameraSDK = cameraSDKFactory.createCameraSDK(factory);
                map = cameraSDK.getVideoCompressionCfg(cmd);
            }
        } catch (Exception ex) {
            log.error("获取码流压缩参数异常:" + ex.getMessage());
@@ -235,8 +235,8 @@
            ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId);
            if (ardCamera != null) {
                String factory = ardCamera.getFactory();
                SdkStrategy sdkStrategy = sdkStrategyFactory.getSdkStrategy(factory);
                result = sdkStrategy.controlDefogcfg(cmd);
                CameraSDK cameraSDK = cameraSDKFactory.createCameraSDK(factory);
                result = cameraSDK.controlDefogcfg(cmd);
            }
        } catch (Exception ex) {
            log.error("操控透雾异常:" + ex.getMessage());
@@ -253,8 +253,8 @@
            ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId);
            if (ardCamera != null) {
                String factory = ardCamera.getFactory();
                SdkStrategy sdkStrategy = sdkStrategyFactory.getSdkStrategy(factory);
                result = sdkStrategy.controlInfrarecfg(cmd);
                CameraSDK cameraSDK = cameraSDKFactory.createCameraSDK(factory);
                result = cameraSDK.controlInfrarecfg(cmd);
            }
        } catch (Exception ex) {
            log.error("操控红外异常:" + ex.getMessage());
@@ -271,8 +271,8 @@
            ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId);
            if (ardCamera != null) {
                String factory = ardCamera.getFactory();
                SdkStrategy sdkStrategy = sdkStrategyFactory.getSdkStrategy(factory);
                result = sdkStrategy.controlFocusMode(cmd);
                CameraSDK cameraSDK = cameraSDKFactory.createCameraSDK(factory);
                result = cameraSDK.controlFocusMode(cmd);
            }
        } catch (Exception ex) {
            log.error("操控聚焦模式异常:" + ex.getMessage());
@@ -289,8 +289,8 @@
            ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId);
            if (ardCamera != null) {
                String factory = ardCamera.getFactory();
                SdkStrategy sdkStrategy = sdkStrategyFactory.getSdkStrategy(factory);
                result = sdkStrategy.getFocusMode(cmd);
                CameraSDK cameraSDK = cameraSDKFactory.createCameraSDK(factory);
                result = cameraSDK.getFocusMode(cmd);
            }
        } catch (Exception ex) {
            log.error("获取聚焦模式异常:" + ex.getMessage());
@@ -307,8 +307,8 @@
            ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId);
            if (ardCamera != null) {
                String factory = ardCamera.getFactory();
                SdkStrategy sdkStrategy = sdkStrategyFactory.getSdkStrategy(factory);
                result = sdkStrategy.controlPTHeateRpwron(cmd);
                CameraSDK cameraSDK = cameraSDKFactory.createCameraSDK(factory);
                result = cameraSDK.controlPTHeateRpwron(cmd);
            }
        } catch (Exception ex) {
            log.error("操控云台加热异常:" + ex.getMessage());
@@ -325,8 +325,8 @@
            ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId);
            if (ardCamera != null) {
                String factory = ardCamera.getFactory();
                SdkStrategy sdkStrategy = sdkStrategyFactory.getSdkStrategy(factory);
                result = sdkStrategy.controlCameraDeicing(cmd);
                CameraSDK cameraSDK = cameraSDKFactory.createCameraSDK(factory);
                result = cameraSDK.controlCameraDeicing(cmd);
            }
        } catch (Exception ex) {
            log.error("操控云台加热异常:" + ex.getMessage());
@@ -343,8 +343,8 @@
            ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId);
            if (ardCamera != null) {
                String factory = ardCamera.getFactory();
                SdkStrategy sdkStrategy = sdkStrategyFactory.getSdkStrategy(factory);
                result = sdkStrategy.getPTZLockInfo(cmd);
                CameraSDK cameraSDK = cameraSDKFactory.createCameraSDK(factory);
                result = cameraSDK.getPTZLockInfo(cmd);
            }
        } catch (Exception ex) {
            log.error("获取云台锁定信息异常:" + ex.getMessage());
@@ -370,8 +370,8 @@
            if (ardCamera != null) {
                //获取摄像头工厂
                String factory = ardCamera.getFactory();
                SdkStrategy sdkStrategy = sdkStrategyFactory.getSdkStrategy(factory);
                url = sdkStrategy.picCutCate(cmd);
                CameraSDK cameraSDK = cameraSDKFactory.createCameraSDK(factory);
                url = cameraSDK.picCutCate(cmd);
            }
        } catch (Exception ex) {
            log.error("抓图异常:" + ex.getMessage());
@@ -388,8 +388,8 @@
            ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId);
            if (ardCamera != null) {
                String factory = ardCamera.getFactory();
                SdkStrategy sdkStrategy = sdkStrategyFactory.getSdkStrategy(factory);
                map = sdkStrategy.getPtz(cmd);
                CameraSDK cameraSDK = cameraSDKFactory.createCameraSDK(factory);
                map = cameraSDK.getPtz(cmd);
            }
        } catch (Exception ex) {
            log.error("获取ptz异常:" + ex.getMessage());
@@ -406,8 +406,8 @@
            ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId);
            if (ardCamera != null) {
                String factory = ardCamera.getFactory();
                SdkStrategy sdkStrategy = sdkStrategyFactory.getSdkStrategy(factory);
                map = sdkStrategy.getPtzScope(cmd);
                CameraSDK cameraSDK = cameraSDKFactory.createCameraSDK(factory);
                map = cameraSDK.getPtzScope(cmd);
            }
        } catch (Exception ex) {
            log.error("获取ptz范围异常:" + ex.getMessage());
@@ -425,8 +425,16 @@
            ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId);
            if (ardCamera != null) {
                String factory = ardCamera.getFactory();
                SdkStrategy sdkStrategy = sdkStrategyFactory.getSdkStrategy(factory);
                result = sdkStrategy.setPtz(cmd);
                CameraSDK cameraSDK = cameraSDKFactory.createCameraSDK(factory);
                String gdtype = ardCamera.getGdtype();
                if(gdtype.equals("1")) {
                    //大光电使用高精度ptz设置
                    result = cameraSDK.setPtz(cmd);
                }else
                {
                    result = cameraSDK.setPtz1(cmd);
                }
            }
        } catch (Exception ex) {
            log.error("设置ptz异常:" + ex.getMessage());
@@ -444,8 +452,8 @@
            ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId);
            if (ardCamera != null) {
                String factory = ardCamera.getFactory();
                SdkStrategy sdkStrategy = sdkStrategyFactory.getSdkStrategy(factory);
                result = sdkStrategy.setZeroPtz(cmd);
                CameraSDK cameraSDK = cameraSDKFactory.createCameraSDK(factory);
                result = cameraSDK.setZeroPtz(cmd);
            }
        } catch (Exception ex) {
            log.error("设置零方位角异常:" + ex.getMessage());
@@ -463,8 +471,8 @@
            ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId);
            if (ardCamera != null) {
                String factory = ardCamera.getFactory();
                SdkStrategy sdkStrategy = sdkStrategyFactory.getSdkStrategy(factory);
                result = sdkStrategy.guideTargetPosition(cmd);
                CameraSDK cameraSDK = cameraSDKFactory.createCameraSDK(factory);
                result = cameraSDK.guideTargetPosition(cmd);
            }
        } catch (Exception ex) {
            log.error("引导指向目标异常:" + ex.getMessage());
@@ -527,8 +535,8 @@
            ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId);
            if (ardCamera != null) {
                String factory = ardCamera.getFactory();
                SdkStrategy sdkStrategy = sdkStrategyFactory.getSdkStrategy(factory);
                url = sdkStrategy.record(cmd);
                CameraSDK cameraSDK = cameraSDKFactory.createCameraSDK(factory);
                url = cameraSDK.record(cmd);
            }
        } catch (Exception ex) {
            log.error("录像异常:" + ex.getMessage());
@@ -545,8 +553,8 @@
            ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId);
            if (ardCamera != null) {
                String factory = ardCamera.getFactory();
                SdkStrategy sdkStrategy = sdkStrategyFactory.getSdkStrategy(factory);
                result = sdkStrategy.recordStart(cmd);
                CameraSDK cameraSDK = cameraSDKFactory.createCameraSDK(factory);
                result = cameraSDK.recordStart(cmd);
            }
        } catch (Exception ex) {
            log.error("开始录像异常:" + ex.getMessage());
@@ -563,8 +571,8 @@
            ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId);
            if (ardCamera != null) {
                String factory = ardCamera.getFactory();
                SdkStrategy sdkStrategy = sdkStrategyFactory.getSdkStrategy(factory);
                url = sdkStrategy.recordStopToMinio(cmd);
                CameraSDK cameraSDK = cameraSDKFactory.createCameraSDK(factory);
                url = cameraSDK.recordStopToMinio(cmd);
            }
        } catch (Exception ex) {
            log.error("停止录像异常:" + ex.getMessage());
@@ -581,8 +589,8 @@
            ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId);
            if (ardCamera != null) {
                String factory = ardCamera.getFactory();
                SdkStrategy sdkStrategy = sdkStrategyFactory.getSdkStrategy(factory);
                result = sdkStrategy.recordStopNotToMinio(cmd);
                CameraSDK cameraSDK = cameraSDKFactory.createCameraSDK(factory);
                result = cameraSDK.recordStopNotToMinio(cmd);
            }
        } catch (Exception ex) {
            log.error("停止录像异常:" + ex.getMessage());
@@ -599,8 +607,8 @@
            ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId);
            if (ardCamera != null) {
                String factory = ardCamera.getFactory();
                SdkStrategy sdkStrategy = sdkStrategyFactory.getSdkStrategy(factory);
                map = sdkStrategy.getGisInfo(cmd);
                CameraSDK cameraSDK = cameraSDKFactory.createCameraSDK(factory);
                map = cameraSDK.getGisInfo(cmd);
            }
        } catch (Exception ex) {
            log.error("获取相机架设参数异常:" + ex.getMessage());