package com.ard.device.component.sdk.service; import com.ard.common.constant.CacheConstants; import com.ard.common.core.domain.AjaxResult; import com.ard.common.core.redis.RedisCache; import com.ard.device.camera.domain.ArdCamera; import com.ard.device.camera.domain.CameraCmd; import com.ard.device.channel.domain.ArdChannel; import com.ard.device.channel.domain.VideoCompressionCfg; import com.ard.device.component.sdk.common.GlobalVariable; import com.ard.device.component.sdk.factory.CameraSDKFactory; import lombok.extern.slf4j.Slf4j; import org.springframework.scheduling.annotation.Async; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.ArrayList; import java.util.Date; import java.util.List; /** * @Description: 相机sdk业务 * @ClassName: CameraSdkServiceImpl * @Author: 刘苏义 * @Date: 2023年10月16日15:21:01 **/ @Service @Slf4j public class CameraSDKService implements CameraSDK { @Resource private RedisCache redisService; @Resource private CameraSDKFactory cameraSDKFactory; //异步登录 @Async @Override public void login(ArdCamera ardCamera) { try { if (ardCamera == null) { log.warn("设备不存在"); return; } String factory = ardCamera.getFactory(); CameraSDK cameraSDK = cameraSDKFactory.createCameraSDK(factory); cameraSDK.login(ardCamera);//异步登录 } catch (Exception ex) { log.error("登录异常:{}", ex.getMessage()); } } //注销 @Override public void logout(ArdCamera ardCamera) { try { String factory = ardCamera.getFactory(); CameraSDK cameraSDK = cameraSDKFactory.createCameraSDK(factory); cameraSDK.logout(ardCamera); } catch (Exception ex) { log.error("注销异常:{}", ex.getMessage()); } } //在线检测 @Override public boolean isOnLine(ArdCamera ardCamera) { try { String factory = ardCamera.getFactory(); CameraSDK cameraSDK = cameraSDKFactory.createCameraSDK(factory); return cameraSDK.isOnLine(ardCamera); } catch (Exception ex) { log.error("检测在线异常:{}", ex.getMessage()); return false; } } @Override //获取码流压缩参数 public VideoCompressionCfg getVideoCompressionCfg(ArdCamera ardCamera) { try { String factory = ardCamera.getFactory(); CameraSDK cameraSDK = cameraSDKFactory.createCameraSDK(factory); return cameraSDK.getVideoCompressionCfg(ardCamera); } catch (Exception ex) { log.error("获取码流压缩参数异常:{}", ex.getMessage()); return null; } } //获取通道列表 @Override public List getChannels(ArdCamera camera) { try { CameraSDK cameraSDK = cameraSDKFactory.createCameraSDK(camera.getFactory()); return cameraSDK.getChannels(camera); } catch (Exception ex) { log.error("获取相机通道异常:{}", ex.getMessage()); return null; } } }