diff --git a/web/src/main/java/com/zhehekeji/web/controller/CameraControlController.java b/web/src/main/java/com/zhehekeji/web/controller/CameraControlController.java index 01c8535..c493d7c 100644 --- a/web/src/main/java/com/zhehekeji/web/controller/CameraControlController.java +++ b/web/src/main/java/com/zhehekeji/web/controller/CameraControlController.java @@ -43,13 +43,13 @@ public class CameraControlController { return Result.success(); } - private NetSDKLib.LLong cameraLogin(Integer cameraId){ + /*private NetSDKLib.LLong cameraLogin(Integer cameraId){ log.info("相机登录 cameraId:{}",cameraId); Camera camera = cameraMapper.selectById(cameraId); Assert.notNull(camera,"球机不存在"); NetSDKLib.LLong lLong = loginControlModule.login(cameraId,camera.getIp(),camera.getPort(),camera.getUser(),camera.getPassword()); return lLong; - } + }*/ @PostMapping("/up/{id}") @ApiOperation(value = "球机控制向上") @@ -314,9 +314,11 @@ public class CameraControlController { //checkLogin(id); plcService.cameraVideo(1,LocalDateTime.now().minusSeconds(id),LocalDateTime.now().plusSeconds(3)); plcService.cameraVideo(2,LocalDateTime.now().minusSeconds(id),LocalDateTime.now().plusSeconds(3)); - /*String path = PathUtil.createFileName("mp4",id); + String path = PathUtil.createFileName("mp4",id); String realPath = configProperties.getSavePath().getMp4Path() + path; - TaskDelayExecutor.addMp4DelayTask(id,realPath,LocalDateTime.now().minusMinutes(2),LocalDateTime.now().minusSeconds(7),12000L);*/ + TaskDelayExecutor.addMp4DelayTask(id,realPath,LocalDateTime.now().minusMinutes(3),LocalDateTime.now().minusMinutes(2),12000L); + /* + */ //cameraControlModule.downloadMp4(id,"D:\\work\\"+LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss"))+".mp4", LocalDateTime.now().minusMinutes(10),LocalDateTime.now().minusMinutes(8)); return Result.success(); } @@ -344,12 +346,12 @@ public class CameraControlController { } else { ok = JoywareLoginModuleImpl.connectStatus(CameraConnMap.getConnId(cameraId)); } - if (!ok) { + /* if (!ok) { { - CameraConnMap.disConn(cameraId); + //CameraConnMap.disConn(cameraId); cameraService.cameraLogin(camera); } - } + }*/ }else { Camera camera = cameraMapper.selectById(cameraId); cameraService.cameraLogin(camera); diff --git a/web/src/main/java/com/zhehekeji/web/lib/CameraConnMap.java b/web/src/main/java/com/zhehekeji/web/lib/CameraConnMap.java index c98e2ba..726e964 100644 --- a/web/src/main/java/com/zhehekeji/web/lib/CameraConnMap.java +++ b/web/src/main/java/com/zhehekeji/web/lib/CameraConnMap.java @@ -5,6 +5,7 @@ import com.zhehekeji.web.lib.joyware.NetSDKLib; import java.util.HashMap; import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; /** * camera login handler @@ -15,19 +16,18 @@ public class CameraConnMap { * key :cameraId * value: loginId */ - public static Map cameraMap = new HashMap<>(); - public static Map.Entry cameraMapEntry = new HashMap.SimpleEntry<>(0,null); + public static Map cameraMap = new ConcurrentHashMap<>(); /** * key :cameraId * value: loginId */ - public static Map cameraByIdMap = new HashMap<>(); + public static Map cameraByIdMap = new ConcurrentHashMap<>(); /** * key:loginId * value: cameraId */ - public static Map loginMap = new HashMap<>(); + public static Map loginMap = new ConcurrentHashMap<>(); public static void conn(Integer cameraId,NetSDKLib.LLong handlerId){ @@ -40,10 +40,16 @@ public class CameraConnMap { synchronized (cameraId.toString().intern()){ NetSDKLib.LLong lLong = cameraMap.get(cameraId); cameraMap.remove(cameraId); - loginMap.remove(lLong); + if(lLong!=null) { + loginMap.remove(lLong); + } } } + public static void main(String[] args) { + disConn(55); + } + public static NetSDKLib.LLong getConnId(Integer cameraId){ return cameraMap.get(cameraId); diff --git a/web/src/main/java/com/zhehekeji/web/lib/CameraControlModule.java b/web/src/main/java/com/zhehekeji/web/lib/CameraControlModule.java index 567d701..aae260e 100644 --- a/web/src/main/java/com/zhehekeji/web/lib/CameraControlModule.java +++ b/web/src/main/java/com/zhehekeji/web/lib/CameraControlModule.java @@ -137,7 +137,7 @@ public interface CameraControlModule { * @param ptzId * @param cameraId */ - void toPtz(Integer ptzId, Integer cameraId); + boolean toPtz(Integer ptzId, Integer cameraId); /** * 转至 预置点 diff --git a/web/src/main/java/com/zhehekeji/web/lib/TaskDelayExecutor.java b/web/src/main/java/com/zhehekeji/web/lib/TaskDelayExecutor.java index 01ce7f3..56ce236 100644 --- a/web/src/main/java/com/zhehekeji/web/lib/TaskDelayExecutor.java +++ b/web/src/main/java/com/zhehekeji/web/lib/TaskDelayExecutor.java @@ -6,6 +6,9 @@ import lombok.extern.slf4j.Slf4j; import java.time.LocalDateTime; import java.util.concurrent.*; +import java.util.function.Consumer; +import java.util.function.Function; +import java.util.function.Predicate; import static com.zhehekeji.web.lib.CameraConnMap.cameraMap; @@ -13,33 +16,34 @@ import static com.zhehekeji.web.lib.CameraConnMap.cameraMap; public class TaskDelayExecutor { - private static ExecutorService exec = Executors.newFixedThreadPool(20); private static DelayQueue queue = new DelayQueue<>(); public static void addMp4DelayTask(Integer cameraId, String path, LocalDateTime startTime, LocalDateTime endTime, Long delayTime) { - CameraDelayTask cameraDelayTask = new CameraDelayTask(cameraId, startTime, endTime,path, 0,delayTime); + CameraDelayTask cameraDelayTask = new CameraDelayTask(cameraId, startTime, endTime, path, 0, delayTime); queue.add(cameraDelayTask); } public static void addPicDelayTask(Integer cameraId, String path, Long delayTime) { - CameraDelayTask cameraDelayTask = new CameraDelayTask(cameraId, null, null,path, 1,delayTime); + CameraDelayTask cameraDelayTask = new CameraDelayTask(cameraId, null, null, path, 1, delayTime); queue.add(cameraDelayTask); } - public static void addGyrateCameraTask(Integer cameraId, Long delayTime,Integer ptzId){ - CameraDelayTask cameraDelayTask = new CameraDelayTask(cameraId, null, null,null, 2,delayTime); + public static void addGyrateCameraTask(Integer cameraId, Long delayTime, Integer ptzId) { + CameraDelayTask cameraDelayTask = new CameraDelayTask(cameraId, null, null, null, 2, delayTime); cameraDelayTask.setPtzId(ptzId); queue.add(cameraDelayTask); } + private static CameraService cameraService = SpringContextUtil.getBean(CameraService.class); - public static void runMp4DownloadExecutor(){ - exec.execute(new Consumer()); + public static void runMp4DownloadExecutor() { + + exec.execute(new ConsumerTask()); } - private static class Consumer implements Runnable { + private static class ConsumerTask implements Runnable { @Override public void run() { @@ -47,58 +51,60 @@ public class TaskDelayExecutor { try { CameraControlModule cameraControlModule = SpringContextUtil.getBean(CameraControlModule.class); + CameraDelayTask cameraDelayTask = queue.take(); - if(cameraDelayTask != null){ - ExecutorService executor = Executors.newSingleThreadExecutor(); - Future future ; - - if(cameraDelayTask.getType() == 0){ - future = executor.submit(() -> { - if(cameraControlModule.downloadMp4(cameraDelayTask.getCameraId(), cameraDelayTask.getPath(), cameraDelayTask.getStartTime(), cameraDelayTask.getEndTime())) { - log.info("录像成功"); - } // 录像线程任务 + if (cameraDelayTask != null) { + + if (cameraDelayTask.getType() == 0) { + + foreach(s->{ + return cameraControlModule.downloadMp4(cameraDelayTask.getCameraId(), cameraDelayTask.getPath(), cameraDelayTask.getStartTime(), cameraDelayTask.getEndTime()); }); - try { - future.get(15, TimeUnit.SECONDS); // 设置5秒超时 - } catch (TimeoutException e) { - future.cancel(true); // 超时时取消任务 - System.out.println("视频线程超时"); - } - - - }else if(cameraDelayTask.getType() == 1){ - future = executor.submit(() -> { - if(cameraControlModule.pic(cameraDelayTask.getCameraId(), 0, cameraDelayTask.getPath())){ - log.info("拍照成功"); - } + + + } else if (cameraDelayTask.getType() == 1) { +// +// if (cameraControlModule.pic(cameraDelayTask.getCameraId(), 0, cameraDelayTask.getPath())) { +// log.info("拍照成功"); +// } + foreach(s->{ + return cameraControlModule.pic(cameraDelayTask.getCameraId(), 0, cameraDelayTask.getPath()); }); - try { - future.get(15, TimeUnit.SECONDS); // 设置5秒超时 - } catch (TimeoutException e) { - future.cancel(true); // 超时时取消任务 - System.out.println("拍照线程超时"); - } - }else if(cameraDelayTask.getType() == 2){ - future = executor.submit(() -> { + } else if (cameraDelayTask.getType() == 2) { - cameraControlModule.toPtz(cameraDelayTask.getPtzId(),cameraDelayTask.getCameraId()); + foreach(s->{ + return cameraControlModule.toPtz(cameraDelayTask.getPtzId(), cameraDelayTask.getCameraId()); }); - try { - future.get(15, TimeUnit.SECONDS); // 设置5秒超时 - } catch (TimeoutException e) { - future.cancel(true); // 超时时取消任务 - System.out.println("云台线程超时"); - } + ; + } - } + } + + } catch (InterruptedException e) { + log.error("任务执行失败", e); + } catch (Exception e) { + log.error("队列失败", e); + } + } + } + } + public static void foreach(Predicate predicate){ + int i = 0; + while (i<5){ + if(predicate.test("")){ + try { + Thread.sleep(300); } catch (InterruptedException e) { - log.error("任务执行失败",e); - }catch (Exception e){ - log.error("队列失败",e); + throw new RuntimeException(e); } + log.info("任务成功"); + break; + } else { + System.out.printf("未成功"); } + i++; } } diff --git a/web/src/main/java/com/zhehekeji/web/lib/hik/HikCameraControlModuleImpl.java b/web/src/main/java/com/zhehekeji/web/lib/hik/HikCameraControlModuleImpl.java index f024028..0282645 100644 --- a/web/src/main/java/com/zhehekeji/web/lib/hik/HikCameraControlModuleImpl.java +++ b/web/src/main/java/com/zhehekeji/web/lib/hik/HikCameraControlModuleImpl.java @@ -462,7 +462,7 @@ public class HikCameraControlModuleImpl implements CameraControlModule { * @param ptzId * @param cameraId */ - public void toPtz(Integer ptzId, Integer cameraId) + public boolean toPtz(Integer ptzId, Integer cameraId) { int dwPTZCommand = HCNetSDK.GOTO_PRESET; Boolean ok = false; @@ -474,6 +474,9 @@ public class HikCameraControlModuleImpl implements CameraControlModule { } if(!ok){ log.error("toPtz error:{},cameraId:{}", HikLoginModuleImpl.hcNetsdk.NET_DVR_GetLastError(),cameraId); + return false; + }else { + return true; } } diff --git a/web/src/main/java/com/zhehekeji/web/lib/hik/HikLoginModuleImpl.java b/web/src/main/java/com/zhehekeji/web/lib/hik/HikLoginModuleImpl.java index 58d3f74..a9b838e 100644 --- a/web/src/main/java/com/zhehekeji/web/lib/hik/HikLoginModuleImpl.java +++ b/web/src/main/java/com/zhehekeji/web/lib/hik/HikLoginModuleImpl.java @@ -123,6 +123,7 @@ public class HikLoginModuleImpl implements CameraControlLoginModule { m_lUserID = hcNetsdk.NET_DVR_Login_V40(m_strLoginInfo,m_strDeviceInfo); tryTimes ++; } + if(m_lUserID >= 0){ log.info("hik login success"); //此id是用来保存视频的 且id不是固定的 diff --git a/web/src/main/java/com/zhehekeji/web/lib/joyware/JoywareCameraControlModuleImpl.java b/web/src/main/java/com/zhehekeji/web/lib/joyware/JoywareCameraControlModuleImpl.java index f528790..7a98215 100644 --- a/web/src/main/java/com/zhehekeji/web/lib/joyware/JoywareCameraControlModuleImpl.java +++ b/web/src/main/java/com/zhehekeji/web/lib/joyware/JoywareCameraControlModuleImpl.java @@ -341,12 +341,16 @@ public class JoywareCameraControlModuleImpl implements CameraControlModule { * @param ptzId * @param cameraId */ - public void toPtz(Integer ptzId, Integer cameraId) { + public boolean toPtz(Integer ptzId, Integer cameraId) { log.info("to ptz,ptzId:{},cameraId:{}",ptzId,cameraId); int dwPTZCommand = NetSDKLib.NET_PTZ_ControlType.NET_PTZ_POINT_MOVE_CONTROL; Boolean ok = JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx2(CameraConnMap.getConnId(cameraId), 0, dwPTZCommand, 0, ptzId, 0, 0, null); if (!ok) { - log.error("toPtz error, cameraId:{},ptzId:{},errorCode:{}", cameraId, ptzId,ToolKits.getErrorCodePrint()); + + log.error("toPtzSlow cameraId:{},error:{}", cameraId,ToolKits.getErrorCodePrint()); + return false; + }else { + return true; } } @@ -370,6 +374,7 @@ public class JoywareCameraControlModuleImpl implements CameraControlModule { if (!ok) { log.error("toPtzSlow cameraId:{},error:{}", cameraId,ToolKits.getErrorCodePrint()); + }else { } } diff --git a/web/src/main/java/com/zhehekeji/web/service/CameraService.java b/web/src/main/java/com/zhehekeji/web/service/CameraService.java index f91b8e4..497bfb7 100644 --- a/web/src/main/java/com/zhehekeji/web/service/CameraService.java +++ b/web/src/main/java/com/zhehekeji/web/service/CameraService.java @@ -58,11 +58,11 @@ public class CameraService { private CameraControlLoginModule cameraControlLoginModule; - public void setCameraControlModule(CameraControlModule cameraControlModule){ + public void setCameraControlModule(CameraControlModule cameraControlModule) { this.cameraControlModule = cameraControlModule; } - public void setCameraLoginModule(CameraControlLoginModule cameraControlLoginModule){ + public void setCameraLoginModule(CameraControlLoginModule cameraControlLoginModule) { this.cameraControlLoginModule = cameraControlLoginModule; } @@ -71,8 +71,8 @@ public class CameraService { camera.setPassword(configProperties.getCameraConfig().getCameraPassword()); camera.setPort(configProperties.getCameraConfig().getCameraPort()); camera.setUpdateTime(LocalDateTime.now()); - camera.setRtsp("rtsp://"+configProperties.getCameraConfig().getCameraUser()+":"+configProperties.getCameraConfig().getCameraPassword()+"@"+camera.getIp()+":554/h264/ch1/sub/av_stream"); - if(StringUtils.isEmpty(camera.getRtcServer())){ + camera.setRtsp("rtsp://" + configProperties.getCameraConfig().getCameraUser() + ":" + configProperties.getCameraConfig().getCameraPassword() + "@" + camera.getIp() + ":554/h264/ch1/sub/av_stream"); + if (StringUtils.isEmpty(camera.getRtcServer())) { camera.setRtcServer("127.0.0.1"); } camera.setRtcServerPort(8083); @@ -88,12 +88,12 @@ public class CameraService { public void edit(Camera camera) { camera.setUpdateTime(LocalDateTime.now()); camera.setPtzId(null); - if(StringUtils.isEmpty(camera.getRtcServer())){ + if (StringUtils.isEmpty(camera.getRtcServer())) { camera.setRtcServer("127.0.0.1"); } camera.setPort(configProperties.getCameraConfig().getCameraPort()); camera.setUser(configProperties.getCameraConfig().getCameraUser()); - camera.setRtsp("rtsp://"+configProperties.getCameraConfig().getCameraUser()+":"+configProperties.getCameraConfig().getCameraPassword()+"@"+camera.getIp()+":554/h264/ch1/sub/av_stream"); + camera.setRtsp("rtsp://" + configProperties.getCameraConfig().getCameraUser() + ":" + configProperties.getCameraConfig().getCameraPassword() + "@" + camera.getIp() + ":554/h264/ch1/sub/av_stream"); try { cameraMapper.updateById(camera); } catch (DuplicateKeyException e) { @@ -110,10 +110,10 @@ public class CameraService { public PageInfo cameras(StreetSearch streetSearch) { PageHelper.startPage(streetSearch.getPageNum(), streetSearch.getPageSize()); List cameras = cameraMapper.selectByMap(new HashMap<>(0)); - if(cameras.size() > 0){ + if (cameras.size() > 0) { CountDownLatch latch = new CountDownLatch(cameras.size()); cameras.forEach(camera -> { - StatusThread statusThread = new StatusThread(camera,latch); + StatusThread statusThread = new StatusThread(camera, latch); statusThread.start(); }); try { @@ -126,66 +126,69 @@ public class CameraService { return new PageInfo<>(cameras); } - public class StatusThread extends Thread{ + public class StatusThread extends Thread { private Camera camera; private CountDownLatch latch; - public StatusThread(Camera camera,CountDownLatch latch){ + + public StatusThread(Camera camera, CountDownLatch latch) { this.camera = camera; this.latch = latch; } + @Override public void run() { try { Boolean ok = false; - if(configProperties.getCameraConfig().getCameraType() == ConfigProperties.HIK_CAMERA){ + if (configProperties.getCameraConfig().getCameraType() == ConfigProperties.HIK_CAMERA) { ok = HikLoginModuleImpl.connectStatus(CameraConnMap.getConnId(camera.getId()).intValue()); - }else { + } else { ok = JoywareLoginModuleImpl.connectStatus(CameraConnMap.getConnId(camera.getId())); } - if(ok){ + if (ok) { camera.setStatus("连接正常"); - }else { - CameraConnMap.disConn(camera.getId()); + } else { + //CameraConnMap.disConn(camera.getId()); camera.setStatus("未连接"); } - }catch (Exception e){ + } catch (Exception e) { camera.setStatus("未连接"); - }finally { + } finally { latch.countDown(); } } } - public Camera detail(Integer id){ + public Camera detail(Integer id) { return cameraMapper.selectById(id); } - public List allCameras(){ + public List allCameras() { return cameraMapper.selectByMap(new HashMap<>()); } /** * HD01 - HD05 + * * @return */ - public List allCameras1(){ + public List allCameras1() { //Integer num = configProperties.getVideoStyleConfig().getVideoStyleRow() *configProperties.getVideoStyleConfig().getVideoStyleColumn(); Integer count = cameraMapper.selectCount(new QueryWrapper()); - List cameras = cameraMapper.selectList(new QueryWrapper().last("limit "+8)); + List cameras = cameraMapper.selectList(new QueryWrapper().last("limit " + 8)); return cameras; } - public List allCameras2(){ - Integer num = configProperties.getVideoStyleConfig().getVideoStyleRow() *configProperties.getVideoStyleConfig().getVideoStyleColumn(); + public List allCameras2() { + Integer num = configProperties.getVideoStyleConfig().getVideoStyleRow() * configProperties.getVideoStyleConfig().getVideoStyleColumn(); List cameras = cameraMapper.selectList(new QueryWrapper().last("limit 0,4")); return cameras; } - public List allCameras3(){ - Integer num = configProperties.getVideoStyleConfig().getVideoStyleRow() *configProperties.getVideoStyleConfig().getVideoStyleColumn(); + public List allCameras3() { + Integer num = configProperties.getVideoStyleConfig().getVideoStyleRow() * configProperties.getVideoStyleConfig().getVideoStyleColumn(); List cameras = cameraMapper.selectList(new QueryWrapper().last("limit 4,4")); return cameras; @@ -244,6 +247,7 @@ public class CameraService { /** * io列表 + * * @param cameraId * @return */ @@ -255,11 +259,12 @@ public class CameraService { /** * 球机新增、或修改预置点 * synchronized 设置为同步方法,防止出现同一个ptzId在同一个球机上 + * * @param IOId 存在修改,不存在 新增 * @param cameraId */ - @CacheEvict(value = "ptz",key = "#cameraId+'-'+#code") - public synchronized Integer ptz(Integer IOId, Integer cameraId, String name,Integer type,String code) { + @CacheEvict(value = "ptz", key = "#cameraId+'-'+#code") + public synchronized Integer ptz(Integer IOId, Integer cameraId, String name, Integer type, String code) { Camera camera = cameraMapper.selectById(cameraId); Assert.notNull(camera, "球机不存在"); CameraIO cameraIO = null; @@ -275,11 +280,11 @@ public class CameraService { cameraIO.setName(name); cameraIO.setPtzId(ptzId); cameraIO.setCode(code); - conver(cameraIO,0); + conver(cameraIO, 0); try { ioMapper.insert(cameraIO); - }catch (DuplicateKeyException e){ - Assert.isTrue(false,"code已存在:"+code); + } catch (DuplicateKeyException e) { + Assert.isTrue(false, "code已存在:" + code); } camera.setPtzId(ptzId); cameraMapper.updateById(camera); @@ -290,75 +295,67 @@ public class CameraService { //将ptzId赋值为旧的,不能用新的 ptzId = cameraIO.getPtzId(); cameraIO.setUpdateTime(LocalDateTime.now()); - conver(cameraIO,type); + conver(cameraIO, type); ioMapper.updateById(cameraIO); } boolean ok = cameraControlModule.connectStatus(cameraId); - if(!ok){ + if (!ok) { } - cameraControlModule.ptz(ptzId,cameraIO.getName(),cameraId); + cameraControlModule.ptz(ptzId, cameraIO.getName(), cameraId); log.info("设置 预置点 球机ID:{},预置点ID:{}", cameraId, ptzId); return cameraIO.getId(); } /** * 所有的根据code和caameraId获取预置点都使用此方法,有缓存 + * * @param code * @param cameraId * @return */ - @Cacheable(value = "ptz",key = "#cameraId+'-'+#code") - public Integer getPtzIdByCodeAndCameraId(String code,Integer cameraId){ - CameraIO cameraIO = ioMapper.getByCodeAndCameraId(code,cameraId); - if(cameraIO != null){ + @Cacheable(value = "ptz", key = "#cameraId+'-'+#code") + public Integer getPtzIdByCodeAndCameraId(String code, Integer cameraId) { + CameraIO cameraIO = ioMapper.getByCodeAndCameraId(code, cameraId); + if (cameraIO != null) { return cameraIO.getPtzId(); } return null; } - public Integer getPtzId(Integer ioId){ + public Integer getPtzId(Integer ioId) { CameraIO cameraIO = ioMapper.selectById(ioId); - Assert.notNull(cameraIO,"IO配置不存在"); + Assert.notNull(cameraIO, "IO配置不存在"); return cameraIO.getPtzId(); } - private void conver(CameraIO cameraIO,Integer type){ - if(type == 0){ + private void conver(CameraIO cameraIO, Integer type) { + if (type == 0) { cameraIO.setPosition("OK"); - }else if(type == 1){ + } else if (type == 1) { cameraIO.setFocusing("OK"); - }else if(type == 2){ + } else if (type == 2) { cameraIO.setMultiple("OK"); - }else if(type == 3){ + } else if (type == 3) { cameraIO.setAperture("OK"); } } - public void cameraConnectStatus(Integer cameraId){ - Boolean ok = cameraControlModule.connectStatus(cameraId); - if(!ok){ - log.error("camera unconnected,cameraId:{}",cameraId); - Camera camera = cameraMapper.selectById(cameraId); - cameraLogin(camera); - } - } - - public void cameraConnect(Integer cameraId){ + public void cameraConnect(Integer cameraId) { - log.error("camera unconnected,cameraId:{}",cameraId); - Camera camera = cameraMapper.selectById(cameraId); - cameraLogin(camera); + log.error("camera unconnected,cameraId:{}", cameraId); + Camera camera = cameraMapper.selectById(cameraId); + cameraLogin(camera); } - public void cameraLogin(Camera camera){ + public void cameraLogin(Camera camera) { - synchronized (camera.getId().toString().intern()){ - NetSDKLib.LLong lLong = cameraControlLoginModule.login(camera.getId(),camera.getIp(),camera.getPort(),camera.getUser(),camera.getPassword()); - if(lLong != null){ - log.info("camera login success,cameraId:{},ip:{}",camera.getId(),camera.getIp()); - CameraConnMap.conn(camera.getId(),lLong); - } + synchronized (camera.getId().toString().intern()) { + NetSDKLib.LLong lLong = cameraControlLoginModule.login(camera.getId(), camera.getIp(), camera.getPort(), camera.getUser(), camera.getPassword()); + if (lLong != null) { + log.info("camera login success,cameraId:{},ip:{}", camera.getId(), camera.getIp()); + CameraConnMap.conn(camera.getId(), lLong); + } } }