‘liusuyi’
2023-10-24 5addedcb92fcd56239825f301502aabbeaf5e325
ard-work/src/main/java/com/ruoyi/device/dhsdk/service/impl/DhClientServiceImpl.java
@@ -1,6 +1,7 @@
package com.ruoyi.device.dhsdk.service.impl;
import com.ruoyi.common.annotation.SdkOperate;
import com.ruoyi.common.utils.Threads;
import com.ruoyi.common.utils.file.FileUtils;
import com.ruoyi.common.utils.file.MimeTypeUtils;
import com.ruoyi.common.utils.uuid.IdUtils;
@@ -58,7 +59,7 @@
    private IVtduService vtduService;
    @Value("${minio.endpoint}")
    private String minioEndPoint;
    private final Object lock = new Object();
    // 设备断线通知回调
    private static DisConnect disConnect = new DisConnect();
@@ -76,8 +77,14 @@
        LoginModule.init(disConnect, haveReConnect);
        NetSDKLib.NET_DEVICEINFO_Ex m_stDeviceInfo = new NetSDKLib.NET_DEVICEINFO_Ex();
        LLong loginId = LoginModule.login(camera.getIp(), camera.getPort(), camera.getUsername(), camera.getPassword(), m_stDeviceInfo);
        if (loginId.longValue() > 0) {
            //log.debug(camera.getIp() + ":" + camera.getPort() + "登录成功");
        if (loginId.longValue() <= 0) {
            camera.setChanNum(0);
            camera.setLoginId(-1);
            camera.setState("0");
            ardCamerasService.updateArdCameras(camera);
            return false;
        }
        synchronized (lock) {
            if (GlobalVariable.loginMap.containsKey(camera.getId())) {
                GlobalVariable.loginMap.remove(camera.getId());
            }
@@ -109,16 +116,17 @@
                channel.setDeviceId(camera.getId());
                channel.setChanNo(i);
                ardChannelService.insertArdChannel(channel);
                //配置到流媒体
                String name = camera.getId() + "_" + channel.getChanNo();
                String rtspSource = "rtsp://" + camera.getUsername() + ":" + camera.getPassword() + "@" + camera.getIp() + ":" + camera.getRtspPort() + "/cam/realmonitor?channel=" + channel.getChanNo() + "&subtype=0";
            }
            //配置到流媒体
            for (int i = 1; i < m_stDeviceInfo.byChanNum + 1; i++) {
                String name = camera.getId() + "_" + i;
                String rtspSource = "rtsp://" + camera.getUsername() + ":" + camera.getPassword() + "@" + camera.getIp() + ":" + camera.getRtspPort() + "/cam/realmonitor?channel=" + i + "&subtype=0";
                Vtdu vtdu = vtduService.selectVtduByName(name);
                if (vtdu != null) {
                    vtduService.deleteVtduByName(name);
                }
                //添加到流媒体
                CameraCmd cmd = new CameraCmd(camera.getId(), channel.getChanNo());
                CameraCmd cmd = new CameraCmd(camera.getId(), i);
                Map<String, Object> videoCompressionCfg = getVideoCompressionCfg(cmd);
                vtdu = new Vtdu();
                if (videoCompressionCfg.get("videoEncType").equals("标准h264")) {
@@ -127,18 +135,11 @@
                    vtdu.setIsCode("1");//默认转码
                }
                vtdu.setRtspSource(rtspSource);
                vtdu.setName(camera.getId() + "_" + channel.getChanNo());
                vtdu.setName(camera.getId() + "_" + i);
                vtdu.setMode("1");//默认CPU软解码
                vtdu.setCameraId(camera.getId());
                vtduService.insertVtdu(vtdu);
            }
        } else {
            //log.debug(camera.getIp() + ":" + camera.getPort() + "登录失败");
            camera.setChanNum(0);
            camera.setLoginId(-1);
            camera.setState("0");
            ardCamerasService.updateArdCameras(camera);
            return false;
        }
        return true;
    }